Most useful and frequently used LINUX/UNIX commands with examples
Hi Geeks, This article will provide the most useful ad frequently used LINUX / UNIX commands along-with the example.
If I miss any command then don't forget to write them in comment.
- grep command: Searches for given string in files
- grep -i "search_text" file_name
- grep -ilrn "search_text" * (To search in all files)Attributes: i for ignore case, l for list names of files, r for searching recursively, n for line number where text is matched in the file
- find command: Finds files using file-name
- find -iname "MyTextFile.c"
- find -iname "MyTextFile.c" -exec md5sum {} \; :Executes commands on files found by the find command
- find ~ -empty :Finds all empty files in home directory
- pwd command: pwd is Present working directory. It prints the current directory.
- cd command: It is used to change the directory.
- Use “cd -” to toggle between the last two directories
- Use “shopt -s cdspell” to automatically correct mistype directory names on cd
- diff command: compares two files
- diff -w file1.txt file2.txt
- tar command examples:
- tar cvf archive_name.tar dirname/ :Creates a new tar archive
- tar xvf archive_name.tar : Extracts from existing tar archive
- tar tvf archive_name.tar : view an existing tar archive
- gzip command examples
- gzip file.txt : creates a *.gz compressed file
- gzip -d file.txt.gz : Uncompress a *.gz file
- gzip -l *.gz : Displays the compression ratio of the compressed file
- bzip2 command examples
- bzip2 file.txt : creates a *.bz2 compressed file
- bzip2 -d file.txt.bz2 : uncompresses a *.bz2 file
- unzip command examples
- unzip test.zip : Extracts the zipped file
- unzip -l test.zip : views the content of zipped file without unzipping
- ssh commands: It is used to work remotely
- ssh -l kamal remotehost.com : Login to remote gostssh -l kamal 10.201.42.12
- ssh -v -l kamal remotehost.com : Debug ssh client
- ssh -V : Display ssh client version
- ftp command examples
- ftp IP/hostname : connects to a remote server
- ftp> mget *.html : Download file from that server
- ftp> mls *.html - : views the file names located on the remote server
- wget command :
- wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz: to download any file from internet
- wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701 : Download and store it
- vim command examples
- vim +14 file.txt : Go to the 14th line of file
- vim +/search_text file.txt : goto the first match of the specified search text
- vim -R /etc/passwd : Opent he file in the read only mode
- sort command examples
- sort nameList.txt : Sorts a file in ascending order
- sort -r nameList.txt : Sorts a file in descending order
- sort -t: -k 3n /etc/passwd | more : Sorts passwd file by third field
- xargs command examples
- ls *.jpg | xargs -n1 -i cp {} /external-drive/directory : Copy all images to external drive
- find / -name *.jpg -type f -print | xargs tar -cvzf allImages.tar.gz : Search all jpg images in the system and archive it.
- cat url-list.txt | xargs wget –c : Downloads all the URLs mentioned in the url-list.txt file
- ls command examples
- ls -lh : Displays filesize in KB / MB
- ls -ltr : Orders Files Based on Last Modified Time
- ls -F : Visual Classification of Files
- sed command examples
- sed 's/.$//' filename :Converts the DOS file format to Unix file format (removes \r or \n)
- sed -n '1!G;h;$p' file.txt : Prints file content in reverse order
- sed '/./=' file.txt | sed 'N; s/\n/ /' : Adds line number for all non-empty-lines in the file
- awk command examples
- awk '!($0 in array) { array[$0]; print }' temp : Removes duplicate lines
- awk -F ':' '$3==$4' passwd.txt ; Prints all lines from /etc/passwd that has the same uid and gid
- awk '{print $2,$5;}' file.txt : Prints only specific field from a file.
- shutdown command examples
- shutdown -h now : Shutdown the system and turn the power off immediately.
- shutdown -h +10 : Shutdown the system after 10 minutes.
- shutdown -r now : Reboot the system
- shutdown -Fr now : Force the filesystem check during reboot.
- crontab command examples
- crontab -u kamal -l : View crontab entry for a specific user
- service command examples : Service commands are used to run the system V init scripts. i.e Instead of calling the scripts located in the /etc/init.d/ directory with their full path, we can use the service command.
- service ssh status : checks the service status
- service --status-all : Check the status of all the services.
- service ssh restart : Restart a service
- ps command : It is used to display information about the processes running in the system.
- ps -ef | more : view the current running processes
- ps -efH | more : To view current running processes in a tree structure. H means process hierarchy.
- free command: It is used to display the free, used, swap memory available in the system.
- free
- free -g : If you want to quickly check how many GB of RAM your system has use the -g option. -b option displays in bytes, -k in kilo bytes, -m in mega bytes.
- free -t : use this if you want to see a total memory ( including the swap)
- top command: It displays the top processes in the system, by default sorted by cpu usage. To sort top output by any column, press O (upper-case O) , which will display all the possible columns that you can sort by.
- top
- top -u oracle : To display only the processes that belong to a particular user use -u option. This command will show only the top processes that belongs to oracle user.
- df command:
- df -k : displays the file system disk space usage. By default df -k displays output in bytes.
- df -h : displays output in human readable form. i.e size will be displayed in GB’s.
- df -T : display type of file system.
- kill command: It is used to terminate a process. First get the process id using ps -efcommand, then use kill -9 to kill the running LINUX process. You can also use killall, pkill, xkill to terminate a unix process.
- ps -ef | grep vimkill -9 7243
- rm command : Removes a file
- rm -i filename.txt : Get confirmation before removing the file.
- rm -i file* : Print the filename and get confirmation before removing the file.
- rm -r example : It recursively removes all files and directories under the example directory. This also removes the example directory itself.
- cp command : Used for copying files from source to destination
- cp -p file1 file2 : Copy file1 to file2 preserving the mode, ownership and timestamp.
- cp -i file1 file2 : Copy file1 to file2. if file2 exists prompt for confirmation before overwritting it.
- mv command: used to rename a file / folder
- mv -i file1 file2 : Rename file1 to file2. if file2 exists prompt for confirmation before overwritting it.
- mv -f file1 file2 : Rename file1 to file2. if file2 exists overwrite it without prompting for confirmation
- mv -v file1 file2 : It will print what is happening during file rename, verbose output
- cat command : used to view the file
- cat file1
- cat file1 file2 : view multiple files at the same time. It prints the content of file1 followed by file2 to stdout.
- cat -n /etc/test.txt : It will prepend the line number to each line of the output while displaying the file.
- mount command
- To mount a file system, we should first create a directory and mount it:
- mkdir /newDir
- mount /dev/sdb1 /newDir
- We can also add this to the fstab for automatic mounting. i.e Anytime system is restarted, the filesystem will be mounted.
- /dev/sdb1 /newDir ext2 defaults 0 2
- chmod command: chmod command is used to change the permissions for a file or directory.
- chmod ug+rwx file.txt ; Give full access (read, write and execute) to user and group on a specific file.
- chmod g-rwx file.txt : Revoke all access (read, write and execute) for the group on a specific file.
- chmod -R ug+rwx file.txt : Apply the file permissions to all the files in the sub-directories.
- chown command: change the owner and group of a file
- chown oracle:dba dbora.sh : To change owner to oracle and group to db on a file. i.e Change both owner and group at the same time.
- chown -R oracle:dba /home/oracle : change the owner recursively
- passwd command : used to change the password through command line
- passwd : User can change their password using this command. It will ask for current password.
- passwd USERNAME : Super user can use passwd command to reset others password. This will not prompt for current password of the user.
- passwd -d USERNAME : Remove password for a specific user. Root user can disable password for a specific user. Once the password is disabled, the user can login without entering the password.
- uname command: It displays important information about the system such as — Kernel name, Host name, Kernel release number, Processor type, etc.
- uname -a
- su command
- su - USERNAME : Switch to a different user account using su command. Super user can switch to any other user without entering their password.
- su - raj -c 'ls' : Execute a single command from a different account name. In the following example, john can execute the ls command as raj username. Once the command is executed, it will come back to john’s account.
- su -s 'SHELLNAME' USERNAME : Login to a specified user account, and execute the specified shell instead of the default shell.
- mkdir command: to create directories
- mkdir ~/myDir : creates a directory called myDir under home directory.
- mkdir -p dir1/dir2/dir3/dir4/ : It creates nested directories using. If any of these directories exist already, it will not display any error. If any of these directories doesn’t exist, it will create them.
- ifconfig command: used to view or configure a network interface on the Linux system, same as ipconfig in windows.
- ifconfig -a : View all the interfaces along with status.
- Start or stop a specific interface using up and down command as below.
- ifconfig eth0 up
- ifconfig eth0 down
- ping command :
- ping google.com : Ping a remote host.
- ping -c 5 google.com : Ping a remote host by sending only 5 packets.
- whereis command
- whereis ls : When wewant to find out where a specific Unix command exists (for example, where does ls command exists?), we can execute this command.
- whereis -u -B /tmp -f lsmk : When you want to search an executable from a path other than the whereis default path, you can use -B option and give path as argument to it. This searches for the executable lsmk in the /tmp directory, and displays it, if it is available.
- whatis command : It displays a single line description about a command.
- whatis ls
- whatis ifconfig
- man command : Displays the man page (manual page) of a specific command
- man crontab
- locate command: Using locate command we can quickly search for the location of a specific file (or group of files). Locate command uses the database created by updatedb.
- locate crontab
- tail command
- tail file.txt : Print the last 10 lines of a file by default.
- tail -n N file.txt : Print N number of lines from the file named file.txt
- tail -f log-file : View the content of the file in real time using tail -f. This is useful to view the log files, that keeps growing. The command can be terminated using CTRL-C
- less command: less is very efficient while viewing huge log files, as it doesn't need to load the full file while opening. After opening file through less, following command is very useful:
- CTRL+F – forward one window
- CTRL+B – backward one window
- fg command : This command resumes execution of a suspended process
- date command :
- date -s "01/13/2015 13:55:14" : Set the system date
- Once you’ve changed the system date, you should syncronize the hardware clock with the system date as shown below.
- hwclock –systohc
- hwclock --systohc –utc
- mysql command
- mysql -u root -p -h 192.160.10.2 : To connect to a remote mysql database. This will prompt for a password.
- mysql -u root -p : To connect to a local mysql database. If you want to specify the mysql root password in the command line itself, enter it immediately after -p (without any space).
- yum command
- yum install httpd : To install apache using yum.
- yum update httpd : To upgrade apache using yum.
- yum remove httpd : To uninstall/remove apache using yum.
- rpm command
- rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm : To install apache using rpm.
- rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm : To upgrade apache using rpm.
- rpm -ev httpd : To uninstall/remove apache using rpm.