Top linux commands for beginners

As you spend more and more time working on Linux environment, you tend to learn some cool tricks that make your life easy and save you lot of time. I have been working on Linux command line for many years now and I have learned a lot of Linux command line tricks. Here in this article, I have posted most of the useful command that each beginner should know.

Top linux commands for beginners

  • Check if remote port is open with bash:  echo >/dev/tcp/ && echo "open"
  • Suspend process:  Ctrl + z
  • Move process to foreground:  fg
  • Generate random hex number where n is number of characters:  openssl rand -hex n
  • Execute commands from a file in the current shell:  source /home/user/
  • Substring for first 5 characters: ${variable:0:5}
  • SSH debug mode:  ssh -vvv user@ip_address
  • SSH with pem key:  ssh user@ip_address -i key.pem
  • Get complete directory listing to local directory with wget:  wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
  • Create multiple directories:  mkdir -p /home/user/{test,test1,test2}
  • List processes tree with child processes:  ps axwef
  • Create war file:  jar -cvf name.war file
  • Test disk write speed:  dd if=/dev/zero of=/tmp/output.img bs=8k count=256k conv=fdatasync; rm -rf /tmp/output.img
  • Test disk read speed:  hdparm -Tt /dev/sda
  • Get md5 hash from text:  echo -n "text" | md5sum
  • Check xml syntax:  xmllint --noout file.xml
  • Extract tar.gz in new directory:  tar zxvf package.tar.gz -C new_dir
  • Get HTTP headers with curl:  curl -I
  • Modify time stamp of some file or directory (YYMMDDhhmm):  touch -t 0712250000 file
  • Download from ftp using wget:  wget -m ftp://username:password@hostname
  • Generate random password (16 char long in this case):  LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
  • Quickly create a backup of a file:  cp some_file_name{,.bkp}
  • Access Windows share:  smbclient -U "DOMAIN\user" //
  • Run command from history (here at line 100):  !100
  • Unzip to directory:unzip package_name.  zip -d dir_name
  • Multiline text (CTRL + d to exit):  cat > test.txt
  • Create empty file or empty existing one:  > test.txt
  • Update date from Ubuntu NTP server:  ntpdate
  • netstat show all tcp4 listening ports:  netstat -lnt4 | awk '{print $4}' | cut -f2 -d: | grep -o '[0-9]*'
  • Convert image from qcow2 to raw:  qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \ precise-server-cloudimg-amd64-disk1.raw
  • Run command repeatedly, displaying it's output (default every two seconds):  watch ps -ef
  • List all users:  getent passwd
  • Mount root in read/write mode:  mount -o remount,rw /

  • Mount a directory (for cases when symlinking will not work):  mount --bind /source /destination
  • Send dynamic update to DNS server:  nsupdate < <EOF update add $HOST 86400 A $IP send EOF
  • Recursively grep all directories:  grep -r "some_text" /path/to/dir
  • List ten largest open files:  lsof / | awk '{ if($7 > 1048576) print $7/1048576 "MB "$9 }' | sort -n -u | tail
  • Show free RAM in MB:  free -m | grep cache | awk '/[0-9]/{ print $4" MB" }'
  • Open Vim and jump to end of file:  vim + some_file_name
  • Git clone specific branch (master):  git clone -b master
  • Git switch to another branch (develop):  git checkout develop
  • Git delete branch (myfeature):  git branch -d myfeature
  • Git delete remote branch:git push origin :  branchName
  • Git push new branch to remote:  git push -u origin mynewfeature
  • Print out the last cat command from history:  !cat:p
  • Run your last cat command from history:  !cat
  • Find all empty subdirectories in /home/user:  find /home/user -maxdepth 1 -type d -empty
  • Get all from line 50 to 60 in test.txt:  < test.txt sed -n '50,60p'
  • Run last command (if it was: mkdir /root/test, below will run:  sudo mkdir /root/test):sudo !!
  • Create temporary RAM filesystem - ramdisk (first create /tmpram directory):  mount -t tmpfs tmpfs /tmpram -o size=512m
  • Grep whole words:  grep -w "name" test.txt
  • Append text to a file that requires raised privileges:  echo "some text" | sudo tee -a /path/file
  • List all supported kill signals:  kill -l
  • Generate random password (16 characters long in this case):  openssl rand -base64 16
  • Do not log last session in bash history:  kill -9 $
  • Scan network to find open port:  nmap -p 8081
  • Set git email:  git config --global ""
  • To sync with master if you have unpublished commits:  git pull --rebase origin master
  • Move all files with "txt" in name to /home/user:  find -iname "*txt*" -exec mv -v {} /home/user \;
  • Put the file lines side by side:  paste test.txt test1.txt
  • Progress bar in shell:  pv data.log
  • Send the data to server with netcat:  echo "hosts.sampleHost 10 `date +%s`" | nc 3000
  • Convert tabs to spaces:  expand test.txt > test1.txt
  • Skip bash history:  < <space>>cmd
  • Go to the previous working directory:  cd -
  • Split large tar.gz archive (100MB each) and put it back:  split –b 100m /path/to/large/archive /path/to/output/files cat files* > archive
  • Get HTTP status code with curl:  curl -sL -w "%{http_code}\\n" -o /dev/null
  • When Ctrl + c not works:  Ctrl + \
  • Get file owner:  stat -c %U file.txt
  • List block devices:  lsblk -f
  • Find files with trailing spaces:  find . -type f -exec egrep -l " +quot; "{}" \;
  • Find files with tabs indentation:  find . -type f -exec egrep -l #39;\t' "{}" \;

Top linux commands for beginnersReviewed by Vinay Vernekar

Link your website with us for free!


About Author

I’m Vinay Vernekar , a young Entrepreneur and a Technology blogger, currently living in Kolhapur, Maharashtra, India. Founder and Main author of Fun With Tricks. I am also running web hosting services at Host With Us and King Of Web Host. if you like this article, pin it with social media, subscribe to our newsletter. Follow me on Google Plus, Facebook, Linkedin and Twitter.

Know more about me!

Mail me your quries at

Get Free Email Updates to your Inbox!

Post a Comment

You are always welcome to leave valuable feedback!