Useful Linux Command

Find files older than 60 days

 find * -mtime +60

Delete files in backup folder which are older than 60 days

 rm -f `find /backup/ -mtime +60`

Search for a string inside files

 grep -H -r “search me” /var/www

Find files owned by apache user

find /var/www/ -user apache

Find directories owned by apache user

find /var/www/ -user apache -type d

Listing files in a directory

 ls -lh or
 ls -lh -a

Copy an entire directory (files + subdirectories)

 cp -R existingdir/ newdir/

Zip up an entire directory

 zip -r zipefilename foldername

Count total number of files in a directory

 ls -1 | wc -l
 find . -type f | wc -l

Get directory size

 du -hs /var/www

Get amount of free disk space available

 df -h

Get Linux version details

 uname -a
 cat /proc/version

Cannot delete oversized directories: /bin/rm: Argument list too long
If you’re trying to delete files inside a directory and the following command is not working

 /bin/rm -rf *
 /bin/rm: Argument list too long. Try this instead: find . -type f -delete

Use tar Command Through Network Over SSH Session

tar zcvf - /wwwdata | ssh root@ "cat > /backup/wwwdata.tar.gz"

How to know the OS Name (Use any of the following one)

cat /proc/version
cat /etc/os-release
lsb_release -a

Find the largest files in a directory

From the Terminal, if you want to quickly find out what the largest files are in a directory, try this variation of the ls command:

ls -lShr (It will show sorted list)

If you want the largest file in a directory of a certain type, simply specify the file type with a wildcard to show all files fitting that description:

ls -lShr *.rar

Show disk usage by current directory and all subdirectories

 du | less

Delete 10000 of files using rm command

 find . -name ‘*.mbox’ -print0 | xargs -0 rm

Mount an ISO File Temporary

 mount -t iso9660 -o loop /home/HsPS/disc/security.iso /mnt/cdrom

Mount NTFS

yum install ntfs-3g
mkdir /mnt/win
mount -t ntfs-3g /dev/sdb1 /mnt/win

Mount an ISO Permanently

vim /etc/fstab

create a new line at the end and enter

/home/HsPS/disc/security.iso /mnt/cdrom ro,loop,_netdiv defaults 0 0

IPVSADM commands

ipvsadm -L -n
 ipvsadm -L -nc
 ipvsadm -L -n --rate
 ipvsadm -L -n --stats

List Ethernet commands

$ lspci
 $ lspci | less
 $ lspci | grep -i eth

Chmod to change all the directories to 755 (-rwxr-xr-x):

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

Check OS Release Info

cat /etc/redhat-release
 ## Output ##
 CentOS release 6.6 (Final)

Following needs redhat-lsb package

 lsb_release -a
 ## Output ##
 LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
 Distributor ID: CentOS
 Description:    CentOS release 6.6 (Final)
 Release:        6.6
 Codename:       Final

Check if Machine supports Virtualization

 grep -E 'svm|vmx' /proc/cpuinfo

TAR Syntax

For compress

tar -cvf output.tar /dirname

For uncompress

tar -xvf /tmp/data.ta

Linux Standard Base (LSB)

To show the release number of installed distribution:

lsb_release -r

To show the distributor ID:

lsb_release -i

To show all of the above information:

lsb_release -a

Concatenated command:

lsb_release -ircd

To find Out the Kernel Version by using this command:

uname -mrs

Linux – Kernel name
3.2.0-24-generic – Kernel version
x86_64 – Kernel is 64-bit

Port Scanning

nmap -sT -O localhost
cat /etc/services | grep 834
netstat -anp | grep 834
lsof -i | grep 834

Add Default Route

route add default gw eth0

Excluding directory when creating a .tar.gz file

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp"

Display files by date (descending)

ls -utlr

Repeat a command every x interval of time in terminal

watch -n x <your command>

TCPDump Capture and Save Packets in a File

tcpdump -w /tmp/0001.pcap -i eth0


tcpdump -w 0001.pcap -i eth0 port 80

TCPDump Capture Packets from source IP

tcpdump -i eth0 src

TCPDump Capture Packets from destination IP

tcpdump -i eth0 dst

TCPDump Capture IP address Packets

tcpdump -n -i eth0

TCPDump Capture Only N Number of Packets

tcpdump -c 5 -i eth0

ARP Scan (Find Connected Systems in the network)

arp-scan -I wlan0

Check Hypervisor

tephenm@pc:~$ apt-cache search virt-what
virt-what - detect if we are running in a virtual machine

sudo apt-get install virt-what

sudo virt-what


sudo dmidecode | egrep -i 'manufacturer|product|vendor'


sudo egrep -i 'virtual|vbox' /var/log/dmesg

How to Find a Specific String or Word in Files and Directories

The command below will list all files containing a line with the text “check_root”, by recursively and aggressively searching the ~/bin directory.

grep -Rw ~/bin/ -e 'check_root'

You should use the sudo command when searching certain directories or files that require root permissions (unless you are managing your system with the root account).

sudo grep -Rw / -e 'check_root'

To ignore case distinctions employ the -i option as shown:

grep -Riw ~/bin/ -e 'check_root'

If you want to know the exact line where the string of text exist, include the -n option.

grep -Rinw ~/bin/ -e 'check_root'
grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

If you want to know the exact line where the string of text exist, include the -n option.

grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

View Bash History and delete it permanently!

To view histroy just type-


Dump History to a file

history > history.txt

to delete the history /root/.bash_hitory file use the command instead!-

cat /dev/null > ~/.bash_history && history -c && exit

Check Linux OS

uname -a
lsb_release -a
lsb_release -a
cat /etc/
cat /etc/debian_version

What is my IP

curl -s | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

Clear Cache in Linux

sync; echo 1 > /proc/sys/vm/drop_caches
sync; echo 2 > /proc/sys/vm/drop_caches
sync; echo 3 > /proc/sys/vm/drop_caches

Copy a folder keeping owners and permissions intact

cp -rp /home/my_home /media/backup/my_home

Change hostname in CentOS 7

hostnamectl set-hostname your-new-hostname

Finding free IPs from the range using nmap

sudo nmap -v -sn -n -oG - | awk '/Status: Down/{print $2}'

Linux system resource command


lshw -short

lshw -html > lshw.html

Recursively look for files with a specific extension

find $directory -type f -name "*.in"

Monitor Copy command progress

$ watch -n 0.1 du -h /opt/dump.tar.gz
$ watch -n 0.1 ls -h /opt/dump.tar.gz

verify the speed of my NIC

$ sudo ethtool eth0 | grep Speed
Speed: 1000Mb/s

Remount /etc/fstab Without Reboot in Linux

# mount -a

View file as uncommented 

grep -v "^#" your_file | grep -v "^$" | less

Make scp copy hidden files

scp -rp src/. user@server:dest/

Move all files with a certain extension from multiple subdirectories into one directory

find . -name '*.mkv' -exec mv {} /home/john/filter/ \;