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. Here are a few commands that should make things easier for you

  • Check if remote port is open with bash:  echo >/dev/tcp/8.8.8.8/53 && 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/file.name
  • Substring for first 5 characters: ${variable:0:5}

  • SSH debug mode:  ssh -vvv [email protected]_address
  • SSH with pem key:  ssh [email protected]_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 http://www.funwithtricks.com
  • Modify time stamp of some file or directory (YYMMDDhhmm):  touch -t 0712250000 file
  • Download from ftp using wget:  wget -m ftp://username:[email protected]
  • 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” //dc.domain.com/share/test/dir
  • 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 ntp.ubuntu.com
  • 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 <
  • 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 [email protected]:name/app.git -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 172.20.0.0/16
  • Set git email:  git config –global user.email “[email protected]
  • 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 192.168.200.2 3000
  • Convert tabs to spaces:  expand test.txt > test1.txt
  • Skip bash history:  < >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” www.example.com -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’ “{}” \;
Like
Like Love Haha Wow Sad Angry

Pin It on Pinterest

SHARE

Why not Share with your friends?