Introduction

To learn something we should start from basic. In this article we are going to learn most and useful basic linux commands or unix commands. I would suggest you should read this article if you are going to start learning linux or interested in linux. This article will give approximately all that basic linux commands which will make you linux more easier to understand. Not only basic you will get much more then that, I mean to say this article is useful also for experienced linux admins.

Download Free Linux eBook HERE! "Learn Linux in 5 Days" - A Free Linux eBooks for Beginners

So Let’s have a look at below linux commands or unix commands.

1. Operating System Related Linux Commands

If some one ask which operating system you are currently using or prove that you are using Linux Operating System then you can use uname command to prove the same.

[root@localhost ~]# uname # To check the Current Operating System Linux

uname command with option -a will give you some more useful information like Computer Name, Kernel Version, Operating System architecture etc….

[root@localhost ~]# uname -a # To check Linux Kernel Verison and OS details Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

2. List files and directories we can using ls command.

ls Linux Commands are used to list files and directories in Linux.

[root@localhost ~]# ls # List Files and Directories anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos

ls with option -l will give some more details about files and directories like Permissions, Owner of the files and dir’s, created and modifies date and time etc…

[root@localhost ~]# ls -l # List Files and Directories with more Advance Information total 8 -rw-------. 1 root root 1530 Feb 2 17:39 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Feb 2 22:05 Desktop drwxr-xr-x. 2 root root 6 Feb 2 22:05 Documents drwxr-xr-x. 2 root root 6 Feb 2 22:05 Downloads -rw-r--r--. 1 root root 1578 Feb 2 21:56 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 Feb 2 22:05 Music drwxr-xr-x. 2 root root 6 Feb 2 22:05 Pictures drwxr-xr-x. 2 root root 6 Feb 2 22:05 Public drwxr-xr-x. 2 root root 6 Feb 2 22:05 Templates drwxr-xr-x. 2 root root 6 Feb 2 22:05 Videos

To check the Hidden files and directories you can use ls command with option -a

[root@localhost ~]# ls -a # To check hidden Files and Directories . .bash_profile .dbus .ICEauthority Public .. .bashrc Desktop initial-setup-ks.cfg .tcshrc anaconda-ks.cfg .cache Documents .local Templates .bash_history .config Downloads Music Videos .bash_logout .cshrc .esd_auth Pictures

Also Read :

3. Directory Related Linux Commands

Directory Related Linux commands are like create, delete, change directories etc….

To create a directory in linux you can use mkdir (Referred as Make Directory) command and to Remove/Delete a directory use rmdir (Referred as Remove Directory). To go in to the directory use cd (Referred as Change Directory) command. To check you are currently in which directory or current directory path we can use pwd command. Refer the output below for directory related linux commands.

[root@localhost ~]# mkdir test # Create a Directory [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Videos Desktop Downloads Music Public test [root@localhost ~]# rmdir test # Delete a Directory [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos [root@localhost ~]# mkdir test [root@localhost ~]# cd test/ # Change Directory [root@localhost test]# pwd /root/test [root@localhost test]# cd .. [root@localhost ~]# pwd # Check the current Path /root [root@localhost ~]#

4. Files Operation Linux Commands

File operation linux commands are used to create, delete, list, display and edit the files.

To create a file we can use touch command, Follow the output below.

[root@localhost ~]# touch test.txt # Create a File [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates test.txt Desktop Downloads Music Public test Videos [root@localhost ~]# touch test/test.txt # Create a File under Directory [root@localhost ~]# ls test test.txt

One more useful command is there in linux is cat, We can use cat command to crate a new file and also to display the content of the file. Follow the output for cat linux commands.

[root@localhost ~]# cat > test.txt # Create a File using cat Welcome to ELinuxBook.com [root@localhost ~]# cat test.txt # Display the content of the file Welcome to ELinuxBook.com [root@localhost ~]# cat >> test.txt # Append/edit a File Here you can get quality Linux Tutorials [root@localhost ~]# cat test.txt # Confirm the edited text Welcome to ELinuxBook.com Here you can get quality Linux Tutorials

less linux commands help us to display long files in scrolling way. you can use up and down error to forward and backward the file i mean to say scroll the file.

[root@localhost ~]# less /etc/passwd # Display file using less command root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:998:997:User for polkitd:/:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin unbound:x:997:996:Unbound DNS resolver:/etc/unbound:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin libstoragemgmt:x:996:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin colord:x:995:994:User for colord:/var/lib/colord:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin /etc/passwd

We can see the content of the file using head command. head command will display first 10 Lines of the file.

[root@localhost ~]# head /etc/passwd # Display file using head command root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin

Like head command We can see the content of the file using tail command. tail command will display last 10 Lines of the file.

[root@localhost ~]# tail /etc/passwd # Display file using tail Command setroubleshoot:x:991:988::/var/lib/setroubleshoot:/sbin/nologin pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:990:985::/run/gnome-initial-setup/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin elinuxbook:x:1000:1000:ELinuxBook:/home/elinuxbook:/bin/bash

To check the manual page or help page of any command we can use man command.

[root@localhost ~]# man ls # check command help page LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file

To check already executed command use history command.

[root@localhost ~]# history # Checking Already executed Commands 1 clear 2 fdisk -l 3 ifconfig 4 fdisk -l 5 init 0 6 uname 7 uname -a 8 ls 9 ls -l 10 ls -a

locate command is used to find the path of any file.

[root@localhost ~]# locate chmod # Find the File Path using locate command /usr/bin/chmod /usr/share/man/man1/chmod.1.gz /usr/share/man/man1p/chmod.1p.gz /usr/share/man/man2/chmod.2.gz /usr/share/man/man2/fchmod.2.gz /usr/share/man/man2/fchmodat.2.gz /usr/share/man/man3p/chmod.3p.gz /usr/share/man/man3p/fchmod.3p.gz

To check the date, time, month and year of the linux system use date command.

[root@localhost ~]# date # Check Date and Time Thu Feb 16 02:40:58 IST 2017

To close the current terminal you can use exit command.

exit # Exit a Terminal

To clear the terminal screen use clear command.

clear # Clear the Terminal Screen

To run any command as root we can use sudo command. For example you are logged in as a normal user, and you want to install some package. In that case you have install it using sudo command.

sudo yum -y install vsftpd # Run a Command as root using sudo

vi command is used as a text editor in Linux Systems.

[root@localhost ~]# vi /etc/httpd/conf/httpd.conf # Edit a file using vi

Also you can use nano command as editor in linux.

[root@localhost ~]# nano /etc/httpd/conf/httpd.conf # Edit a File using nano

grep command is used as a search command in linux. For example here i am searching for word elinuxbook in file /etc/passwd.

[root@localhost ~]# cat /etc/passwd | grep elinuxbook # Search for Word elinuxbook:x:500:500:elinuxbook:/home/elinuxbook:/bin/bash

grep command with option -i will allow to search case insensitive words.

[root@localhost data]# cat file1.txt | grep -i bala # Search case insensitive Word BalamukundaSahu

Network Related Basic Linux Commands

To check IP Address in linux system we can use command ifconfig. This will list all connected NIC (Network Interface Card) OR LAN Card with loopback LAN.

[root@localhost ~]# ifconfig # Check IP Address ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.1 ether 00:0c:29:36:fd:a7 txqueuelen 1000 (Ethernet) RX packets 511 bytes 31797 (31.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback) RX packets 388 bytes 33748 (32.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 388 bytes 33748 (32.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:7d:e7:fe txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

To check the IP Address of a particular NIC execute the command ifconfig <NIC Name>. Refer the sample output below.

[root@localhost ~]# ifconfig ens33 # Check IP Address of a Particular LAN ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 00:0c:29:36:fd:a7 txqueuelen 1000 (Ethernet) RX packets 559 bytes 34677 (33.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

To check the hostname of linux system use the below command.

[root@localhost ~]# nano /etc/hostname # Check Hostname elinuxbook # OR you can use just hostname command to check the Hostname of the system. [root@localhost ~]# hostname elinuxbook

To set IP Address OR configure the NIC follow the below steps.

[root@localhost ~]# nano /etc/sysconfig/network-scripts/ifcfg-ens33 # Configure IP Address TYPE=Ethernet BOOTPROTO=none IPADDR=192.168.1.100 # IP Address NETMASK=255.255.255.0 # Subnet Mask GATEWAY=192.168.1.1 # Gateway DOMAIN="elinuxbook.com" # Domain DNS1=192.168.1.100 # DNS1 IP ADDRESS DNS2=192.168.1.101 # DNS2 IP ADDRESS DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=fbaafa25-25cd-461d-af14-c436b35c5d7e BOOTPROTO=dhcp

To Enable and Disable the NIC use ifup and ifdown command. Refer the sample output below.

[root@localhost ~]# ifdown ens33 # Disable a LAN Device Device 'ens33' successfully disconnected. [root@localhost ~]# ifup ens33 # Enable a LAN Device Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

To check the network connectivity we can use the command ping. For example if some website is not working then to diagnose the issue your first step would be ping to that website. Follow the output below.

[root@localhost ~]# ping elinuxbook.com # Check Network Connivicity using ping PING elinuxbook.com (111.118.215.222) 56(84) bytes of data. 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=1 ttl=58 time=8.19 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=2 ttl=58 time=7.68 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=3 ttl=58 time=7.47 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=4 ttl=58 time=8.04 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=5 ttl=58 time=8.74 ms

ping with option -c will ping three times to particular website.

[root@localhost ~]# ping -c 3 elinuxbook.com # ping 3 times PING elinuxbook.com (111.118.215.222) 56(84) bytes of data. 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=1 ttl=58 time=7.84 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=2 ttl=58 time=7.88 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=3 ttl=58 time=7.65 ms --- elinuxbook.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2011ms rtt min/avg/max/mdev = 7.657/7.794/7.880/0.097 ms

ping with option -i will take interval between two ping’s. Refer the below output where we have three ping which took 3 seconds between each ping.

[root@localhost ~]# ping -c 3 -i 3 elinuxbook.com # ping 3 time with 3 seconds of interval between each ping PING elinuxbook.com (111.118.215.222) 56(84) bytes of data. 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=1 ttl=58 time=6.22 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=2 ttl=58 time=7.90 ms 64 bytes from cp-in-9.webhostbox.net (111.118.215.222): icmp_seq=3 ttl=58 time=7.76 ms --- elinuxbook.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 6016ms rtt min/avg/max/mdev = 6.224/7.297/7.907/0.767 ms

To monitor inbound and outbound network there is nice tool available in linux is netstat.

[root@localhost ~]# netstat # Monitor Network using netstat

To list all TCP and UDP connections we can use the netstat command with option -a.

[root@localhost ~]# netstat -a

There are more network related linux commands are available for troubleshooting but will write a separate post for that.

System Utility Related Linux Commands

To Halt OR Shutdown the linux system we can use init command with runlevel 0, Refer the command below.

init 0 # Shutdown the System

To restart the linux system use command init with runlevel 6 OR you can use reboot command to do the same.

init 6 # Restart the System reboot

To check the Process Status we can use the command ps.

[root@localhost ~]# ps # Check Processing Status PID TTY TIME CMD 3219 pts/0 00:00:00 bash 3488 pts/0 00:00:00 cat 3559 pts/0 00:00:00 cat 4582 pts/0 00:00:00 ps

ps command with option -e and -f will display some more advance report like process use by the user i.e. UID, Process ID i.e. PID, Parent Process ID i.e PPID, Time, Command i.e. CMD etc…

[root@localhost ~]# ps -ef # To check the Processing Status completely page by page you can use below command. [root@localhost ~]# ps -ef | more UID PID PPID C STIME TTY TIME CMD root 1 0 0 09:35 ? 00:00:02 /usr/lib/systemd/systemd --switched-r oot --system --deserialize 21 root 2 0 0 09:35 ? 00:00:00 [kthreadd] root 3 2 0 09:35 ? 00:00:00 [ksoftirqd/0] root 7 2 0 09:35 ? 00:00:00 [migration/0] root 8 2 0 09:35 ? 00:00:00 [rcu_bh] root 9 2 0 09:35 ? 00:00:00 [rcu_sched] root 10 2 0 09:35 ? 00:00:00 [watchdog/0] root 12 2 0 09:35 ? 00:00:00 [khelper] root 13 2 0 09:35 ? 00:00:00 [kdevtmpfs] root 14 2 0 09:35 ? 00:00:00 [netns] root 15 2 0 09:35 ? 00:00:00 [khungtaskd] root 16 2 0 09:35 ? 00:00:00 [writeback] root 17 2 0 09:35 ? 00:00:00 [kintegrityd] root 18 2 0 09:35 ? 00:00:00 [bioset] root 19 2 0 09:35 ? 00:00:00 [kblockd] root 20 2 0 09:35 ? 00:00:00 [md] root 26 2 0 09:35 ? 00:00:00 [kswapd0] root 27 2 0 09:35 ? 00:00:00 [ksmd] root 28 2 0 09:35 ? 00:00:00 [khugepaged] root 29 2 0 09:35 ? 00:00:00 [fsnotify_mark] root 30 2 0 09:35 ? 00:00:00 [crypto] root 38 2 0 09:35 ? 00:00:00 [kthrotld] root 40 2 0 09:35 ? 00:00:00 [kmpath_rdacd] --More--

To kill or stop a process use the kill

Syntax : kill <process ID>

[root@localhost ~]# kill 40 # End a Process

Other Useful ps commands are :

ps -e

ps -eF

ps -ely

Linux Commands to Manage Users & Groups

To create a New User in linux we can use command useradd command and to set password for the user use passwd command.

Syntax :

To add a New User :

useradd <Username>

Set/Reset Password of any User

passwd <Username>

[root@localhost ~]# useradd helpdesk # Create a New User [root@localhost ~]# passwd helpdesk # Set Password for User Changing password for user helpdesk. New password: Retype new password: passwd: all authentication tokens updated successfully.

To confirm if user created successfully or not we can check /etc/passwd file. Refer the output below.

[root@localhost ~]# cat /etc/passwd | grep helpdesk # Confirm the Newly created User helpdesk:x:1001:1001::/home/helpdesk:/bin/bash

To add a new group use groupadd command.

Syntax : groupadd <GROUP NAME>

[root@localhost ~]# groupadd admins # Create a New Group [root@localhost ~]# cat /etc/group | grep admins # Confirm the Newly Created Group admins:x:1002:

Create a New User and add to a Group. Here I am creating a user named test2 and adding to group admins.

Syntax : useradd -g <GROUP NAME> <USER NAME>

[root@localhost ~]# useradd -g admins test2 # Create a New User and Add in to a Group [root@localhost ~]# cat /etc/passwd | grep test2 test2:x:1003:1002::/home/test2:/bin/bash

To add a Supplementary group to a existing user you have to use usermod command with options -a and -G, Refer the command below.

Note : Supplementary Group is also referred as Secondary Group.

[root@localhost ~]# usermod -a -G admins elinuxbook # Add a Secondary group to a existing User [root@localhost ~]# cat /etc/group | grep admins admins:x:1002:elinuxbook To add already existing user to multiple groups use below command, Here I am add user test to Multiple groups i.e.admins and coders

[root@localhost ~]# usermod -a -G admins,coders test # Add user to multiple Groups

To confirm the if users are added to respective groups or not we can use below command.

[root@localhost ~]# cat /etc/group admins:x:1002:elinuxbook,test coders:x:1003:test

As we can see above admins group has two users i.e. elinuxbook and test and coders group has one i.e. test that we have added now.

Also Read :

Disk Related Linux Commands

To List Available disks and partitions we can use fdisk command with option -l

[root@localhost ~]# fdisk -l # List the disks and partitions Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000c0d0d Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 41943039 19921920 8e Linux LVM

To check all mounted partitions or devices we can use df command with option -h, We can check File System Name, Total Size of the Disk, Used Disk Space, Mount Point by using df -h command. Refer the output below.

[root@localhost ~]# df -h # List mounted disks & partitions Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 17G 3.3G 14G 20% / devtmpfs 473M 0 473M 0% /dev tmpfs 489M 144K 489M 1% /dev/shm tmpfs 489M 7.1M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 1014M 173M 842M 18% /boot tmpfs 98M 12K 98M 1% /run/user/0 /dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64

Also you can use only df command to get disk and partition information.

[root@localhost ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 18208184 3007176 14269424 18% / tmpfs 506040 228 505812 1% /dev/shm /dev/sda1 289293 34673 239260 13% /boot

To check all mounted device you can use mount command. Refer the output below.

[root@localhost ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=484112k,nr_inodes=121028,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)

Compression and Archiving related Linux Commands

Compress a file using gzip command with option -c. Extension of gzip compressed file is .gz.

Where :

c – To create a gzip file

[root@localhost ~]# gzip -c test.txt > test.txt.gz # Create gzip file

UnCompress/Extract .gz file using command gunzip.

[root@localhost ~]# gunzip test.txt.gz # Extract a gzip file [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Videos Desktop Downloads Music Public test.txt

Compress a file using bzip2 command with option -c. Extension of bzip2 compressed file is .bz2.

[root@localhost ~]# bzip2 -c test.txt > test.txt.bz2 # Create a bzip2 file [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates test.txt.bz2 Desktop Downloads Music Public test.txt Videos

UnCompress/Extract .bz2 file using command gunzip.

[root@localhost ~]# bunzip2 test.txt.bz2 # Extract a bzip2 file [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Videos Desktop Downloads Music Public test.txt

Compress a file using zip command. Extension of bzip2 compressed file is .zip.

[root@localhost ~]# zip test.txt.zip test.txt # create zip file adding: test.txt (stored 0%) [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates test.txt.zip Desktop Downloads Music Public test.txt Videos

Compress a Directory using zip command.

[root@localhost ~]# zip data.zip data/ # Compress a Directory using zip command adding: data/ (stored 0%) [root@localhost ~]# ls anaconda-ks.cfg data.zip Documents initial-setup-ks.cfg Pictures Templates data Desktop Downloads Music Public Videos

Extract/Unzip a zip compressed file.

[root@localhost ~]# unzip test.txt.zip # Extract a zip file Archive: test.txt.zip extracting: test.txt [root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates test.txt.zip Desktop Downloads Music Public test.txt Videos

tar is used as a backup tool in Linux Systems. Extension of tar file is .tar. By using tar command we can archive both files and directories. So follow the below command to archive a directory.

Where :

c – To create a tar file

v – For Verbose

f – For file

[root@localhost ~]# tar -cvf data.tar data/ # Create a tar archive File data/ data/file1.txt data/file2.txt data/file3.txt data/file4.txt data/file5.txt [root@localhost ~]# ls anaconda-ks.cfg data.zip Downloads Pictures Videos data Desktop initial-setup-ks.cfg Public data.tar Documents Music Templates

To extract a tar file.

Where :

x – to extract a file

[root@localhost ~]# tar -xvf data.tar # Extract a tar archive file data/ data/file1.txt data/file2.txt data/file3.txt data/file4.txt data/file5.txt [root@localhost ~]# ls anaconda-ks.cfg data.tar Documents initial-setup-ks.cfg Pictures Templates data Desktop Downloads Music Public Videos

Create a tar archive with gzip compression.

Where :

z – for gzip compression

[root@localhost ~]# tar -czvf data.tar.gz data/ # Create a tar archive with gzip compression data/ data/file1.txt data/file2.txt data/file3.txt data/file4.txt data/file5.txt [root@localhost ~]# ls anaconda-ks.cfg data.tar.gz Documents initial-setup-ks.cfg Pictures Templates data Desktop Downloads Music Public Videos

Extract a tar archived with gzip compressed file.

[root@localhost ~]# tar -xzvf data.tar.gz # Extract a tar archived with gzip compressed file data/ data/file1.txt data/file2.txt data/file3.txt data/file4.txt data/file5.txt [root@localhost ~]# ls anaconda-ks.cfg data.tar.gz Documents initial-setup-ks.cfg Pictures Templates data Desktop Downloads Music Public Videos

Create a tar archive with bzip2 compression.

Where :

j – for bzip2 compression

[root@localhost ~]# tar -cjvf data.tar.bz2 data/ # Create a tar archive with bzip2 compression data/ data/file1.txt data/file2.txt data/file3.txt data/file4.txt data/file5.txt [root@localhost ~]# ls anaconda-ks.cfg data.tar.bz2 Documents initial-setup-ks.cfg Pictures Templates data Desktop Downloads Music Public Videos

Extract a tar archive with bzip2 compressed file

[root@localhost ~]# tar -xjvf data.tar.bz2 # Extract a tar archived with bzip2 compressed file data/ data/file1.txt data/file2.txt data/file3.txt data/file4.txt data/file5.txt [root@localhost ~]# ls anaconda-ks.cfg data.tar.bz2 Documents initial-setup-ks.cfg Pictures Templates data Desktop Downloads Music Public Videos

System Information Related Linux Commands

To check memory related information we can check /proc/meminfo file.

[root@localhost proc]# cat /proc/meminfo # Check Memory Information

To check disk statistics use below command.

[root@localhost proc]# cat /proc/diskstats # Check Disk Information

To know the RAID device status you can use the below command.

[root@localhost proc]# cat /proc/mdstat # Check RAID disks information

To check the CPU Information use the below command.

[root@localhost proc]# cat /proc/cpuinfo # Check CPU Information

To check your partition status you can use below command, the same result you can get by using command fdisk -l command.

[root@localhost proc]# cat /proc/partitions # Check Partition Information major minor #blocks name 8 0 20971520 sda 8 1 307200 sda1 8 2 18631680 sda2 8 3 2031616 sda3

/proc/mounts file will show you all mounted disks or devices. the same result you can get by using mount command.

[root@localhost proc]# cat /proc/mounts # Check mounted disks information

To check your system’s uptime use below command.

[root@localhost proc]# cat /proc/uptime # Check System UP Time 2163.72 1783.93

To check Server version. The same output you will get by uname -a command.

[root@localhost proc]# cat /proc/version # Check OS Information Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016

/proc/swaps will show you the swap partition information’s.

[root@localhost proc]# cat /proc/swaps # Check swap Partition Info. Filename Type Size Used Priority /dev/sda3 partition 2031612 8 -1

you can pull complete system information like disk report, raid device report..etc by using sosreport command.

[root@localhost ~]# sosreport # Pull System Information Report

After creating a new partition you have to mount that partition in /etc/fstab file, then only you can use that partition to store data. fstab referred as Filesystem Table. Refer the sample /etc/fstab file below.

[root@localhost ~]# cat /etc/fstab # Overview on Filesystem Table # # /etc/fstab # Created by anaconda on Sun Dec 25 03:05:56 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=25f0e1e0-0f54-42f3-b609-d95ce77c783f / ext4 defau$ UUID=51ea032d-f7af-4bb3-8aa9-8fa4428bc362 /boot ext4 defau$ UUID=e9cf7e2b-b945-4074-a63f-b114a3477f42 swap swap defau$ tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0

Permissions Related Linux Commands

There are two ways by which we can apply permission to files and directories in Linux. One is Alphabetical way and second is Numerical Way. Below explained Permission related Linux commands with examples.

Alphabetical Permission

Permission in Linux is looks something like this (Divided in to 10 Bits) :

– – – – – – – – – –

For our understanding let’s convert all 10 bit’s in Numbers.

– – – – – – – – – –

1 2 3 4 5 6 7 8 9 10

Out of which First Bit (i.e 1 ) is for File or Folder Identification (–) Where if first bit is “–” then it’s an file and if it’s “d” then it’s an directory. Next three bit (i.e 2 3 4) is for Owner (– – –) and Owner is Identified as alphabet “u“ Next three bit (i.e 5 6 7) is for Group (– – –) and Group is Identified as alphabet “g“ & Last three bit (i.e 8 9 10)is for Other (– – –) and Other is Identified as alphabet “o“

First have look at alphabetical permission :

r – Read

w – Write

e – Execute

To Add permission we have to use “+” Symbol and for Remove Permission we have to use “–” Symbol.

We can check permission of any file or directory by ls -l command.

Example : 1

In our first example the file named test.txt having permission “-rw-r–r–“, So let’s devide the permission bits of file test.txt.

First bit is “–” means it’s a File.

“r w –” – Means Owner having Read & Write Permission because 2nd bit contains r and 3rd bit contains w.

“r – –” – Means Group having Read Access.

“r – –” – Means Others having Read Access.

Now I am going to give full access to Everyone i.e. User, Group & Others by using chmod command.

[root@localhost data]# ls -l total 0 -rw-r--r--. 1 root root 0 Mar 8 09:56 test.txt # Now File having Permission i.e. -rw-w--w-- [root@localhost data]# chmod ugo+rwx test.txt # Giving Full Access to Everyone [root@localhost data]# ls -l total 0 -rwxrwxrwx. 1 root root 0 Mar 8 09:56 test.txt # Now File having Permission i.e. -rwxrwxrwx

Example : 2



Remove Write and Execute Permission from Group & Others

[root@localhost data]# chmod go-wx test.txt # Change Permission in Alphabatical Way [root@localhost data]# ls -l total 0 -rwxr--r--. 1 root root 0 Mar 8 09:56 test.txt

Example : 3

Add Write Permission to Group & Others

[root@localhost data]# chmod go+w test.txt [root@localhost data]# ls -l total 0 -rwxrw-rw-. 1 root root 0 Mar 8 09:56 test.txt

Numerical Permission

Numerical Permission in linux as shown below.

4 – Read

2 – Write

1 – Execute

Steps to apply permission to User, Group & Others

Suppose you want to give Full Permission to Owner i.e. Read+Write+Execute to the file text.txt then in Numerical way it’s like

4+2+1 = 7 Read+Write+Execute

& If you would like to give only Read access to Group and Others then it’s like

For Groups – 4

For Others – 4

So the overall command would be chmod 744 test.txt.

Now let’s take some example so that you can understand properly.

Example : 1

Giving Full access to File test.txt

[root@localhost data]# ls -l total 0 -rwxrw-rw-. 1 root root 0 Mar 8 09:56 test.txt [root@localhost data]# chmod 777 test.txt # Change Permission in Numerical Way [root@localhost data]# ls -l total 0 -rwxrwxrwx. 1 root root 0 Mar 8 09:56 test.txt

Example : 2

Giving Read & Write Permission to all (User, Group & Others).

[root@localhost data]# chmod 666 test.txt [root@localhost data]# ls -l total 0 -rw-rw-rw-. 1 root root 0 Mar 8 09:56 test.txt

Example : 3



Giving Full Access to Owner and Read Access to Group & Others.

[root@localhost data]# chmod 744 test.txt [root@localhost data]# ls -l total 0 -rwxr--r--. 1 root root 0 Mar 8 09:56 test.txt [root@localhost data]# chmod 755 test.txt

We can check the Owner of file by ls -l command, Currently owner of test.txt file is root (Highlighted in Red Color on output below). We can change the ownership of file by using chown command.

Ownership Format :

-rwxr-xr-x. 1 User Group 0 Mar 8 09:56 test.txt

[root@localhost data]# ls -l total 0 -rwxr-xr-x. 1 root root 0 Mar 8 09:56 test.txt

Here I am changing the Ownership of file from user root to user elinuxbook.

[root@localhost data]# chown elinuxbook:elinuxbook test.txt # Change Ownership of a File [root@localhost data]# ls -l total 0 -rwxr-xr-x. 1 elinuxbook elinuxbook 0 Mar 8 09:56 test.txt

Now lets change the ownership of directory with all its content Recursively. To do so we have to use chown command with option -R.

[root@localhost data]# ls database/ file1.txt file2.txt file3.txt file4.txt file5.txt [root@localhost data]# ls -l database/ total 0 -rw-r--r--. 1 root root 0 Mar 8 10:01 file1.txt -rw-r--r--. 1 root root 0 Mar 8 10:01 file2.txt -rw-r--r--. 1 root root 0 Mar 8 10:01 file3.txt -rw-r--r--. 1 root root 0 Mar 8 10:01 file4.txt -rw-r--r--. 1 root root 0 Mar 8 10:01 file5.txt [root@localhost data]# chown -R elinuxbook:elinuxbook database/ # Change Ownership of Directory Recursively [root@localhost data]# ls -l total 4 drwxr-xr-x. 2 elinuxbook elinuxbook 4096 Mar 8 10:01 database -rwxr-xr-x. 1 elinuxbook elinuxbook 0 Mar 8 09:56 test.txt [root@localhost data]# ls -l database/ total 0 -rw-r--r--. 1 elinuxbook elinuxbook 0 Mar 8 10:01 file1.txt -rw-r--r--. 1 elinuxbook elinuxbook 0 Mar 8 10:01 file2.txt -rw-r--r--. 1 elinuxbook elinuxbook 0 Mar 8 10:01 file3.txt -rw-r--r--. 1 elinuxbook elinuxbook 0 Mar 8 10:01 file4.txt -rw-r--r--. 1 elinuxbook elinuxbook 0 Mar 8 10:01 file5.txt

Package installation and Service Related Linux Commands

Install a package using rpm commands.

Where :

i – Install a Package

v – For Verbose

h – for # output

# rpm -ivh dhcp-3.0.5-23.el5.x86_64.rpm # Install Package using rpm command warning: dhcp-3.0.5-23.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186 Preparing... ########################################### [100%] 1:dhcp ########################################### [100%]

Install a Package using yum command. In case of yum when we try to install a package it retrieve the package information from yum repository package manager server and makes available to us.

[root@localhost ~]# yum -y install vsftpd # Install a Package using yum command Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * extras: mirrors.vinahost.vn * updates: mirrors.vonline.vn Resolving Dependencies --> Running transaction check ---> Package vsftpd.x86_64 0:2.2.2-21.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: vsftpd x86_64 2.2.2-21.el6 base 155 k Transaction Summary ================================================================================ Install 1 Package(s) Total download size: 155 k Installed size: 340 k Downloading Packages: vsftpd-2.2.2-21.el6.x86_64.rpm | 155 kB 00:02 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : vsftpd-2.2.2-21.el6.x86_64 1/1 Verifying : vsftpd-2.2.2-21.el6.x86_64 1/1 Installed: vsftpd.x86_64 0:2.2.2-21.el6 Complete!

Start/Restart/Stop a Service a Service.

[root@localhost ~]# /etc/init.d/vsftpd start # To start a Service [root@localhost ~]# service vsftpd status # Check the Service status vsftpd (pid 3168) is running... [root@localhost ~]# /etc/init.d/vsftpd restart # To Restart a Service [root@localhost ~]# /etc/init.d/vsftpd stop # To Stop a Service

Start a Service at startup.

chkconfig --level 35 vsftpd on # Start a Service on Startup

We tried to include all possible basic linux commands. If found this article useful then like us, share our articles OR Subscribe us for more Linux articles.