Linux Commands Cheat Sheet - Master Linux Commands
Linux Commands Cheat Sheet - Master Linux Commands
Hilton
1 week ago
Linux-cheat-sheet
“Click :star:if you like the project. Pull Request are highly appreciated. Follow me @SudheerJonna for
technical updates.”
Table of Contents
No. Topic
1 User information
3 File permissions
4 Networking
5 Installing packages
6 Disk usage
8 Search Files
9 SSH
10 Vi/Vim-commands
User Information
1. who It is used to get information about currently logged in user on to system. If you don't provide any
option or arguments, the command displays the following information for each logged-in user.
Login name of the user
User terminal
$ who
sudheer :0 2019-08-04 01:21 (:0)
$ whoami
sudheer
3. id: It display the user identification(the real and effective user and group IDs) information
$ id
uid=1000(sj) gid=1000(sj) groups=1000(sj),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin)
4. groups: This command is used to display all the groups for which the user belongs to.
$ group
sj: sj, adm, cdrom, sudo, dip, plugdev, lpadmin, lxd, sambashare
5. finger: Used to check the information of any currently logged in users. i.e, It displays users login time, tty
(name), idle time, home directory, shell name etc.
$ finger
Login Name Tty Idle Login Time Office Office Phone
sj sj *:0 Aug 28 01:27 (:0)
This may not be available by default in many linux machines. In this case, you need to install it manually.
$ users
sj
7. grep: It is a powerful pattern searching tool to find information about a specific user from the system
accounts file: /etc/passwd.
$ grep -i sj /etc/passwd
sj:x:1000:1000:sj,,,:/home/sj:/bin/bash
8. W Command: It(W) is a command-line utility that displays information about currently logged in users and
what each user is doing.
w [OPTIONS] [USER]
Example:
w
18:45:04 up 2:09, 1 user, load average: 0.09, 0.07, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
sj :0 :0 01:27 ?xdm? 1:14 0.01s /usr/lib/gdm3/g
9. last or lastb: Displays a list of last logged in users on the system. You can pass user names to display their
login and hostname details.
Example:
last
sj :0 :0 Fri Aug 28 01:27 gone - no logout
reboot system boot 5.4.0-29-generic Fri Aug 28 01:27 still running
sj :0 :0 Wed Jul 29 11:46 - crash (29+13:40)
reboot system boot 5.4.0-29-generic Wed Jul 29 11:45 still running
sj :0 :0 Thu May 14 21:04 - crash (75+14:41)
reboot system boot 5.4.0-29-generic Thu May 14 21:03 still running
$ lastlog
1. pwd The pwd(Present Working Directory) command is used to print the name of the present/current
working directory starting from the root.
$ pwd
/home/sj/Desktop/Linux
2. ls: The `ls` command is used to list files or directories. It also accepts some flags or options that changes
how files or directories are listed in your terminal.
Syntax:
ls [flags] [directory]
Example:
$ ls
bin dev lib libx32 mnt
3. mkdir The mkdir(make directory) command allows users to create directories or folders.
$ mkdir ubuntu
$ ls
ubuntu
The option '-p' is used to create multiple directories or parent directories at once.
$ mkdir -p dir1/dir2/dir3
$ cd dir1/dir2/dir3
~/Desktop/Linux/dir1/dir2/dir3$
4. rmdir: The rmdir(remove directories) is used to remove empty directories. Can be used to delete multiple
empty directories as well. Safer to use compared to `rm -r FolderName`. This command can also be forced to
delete non-empty directories.
rmdir FolderName
Remove entire directory tree. This command is similar to `rmdir a/b/c a/b a`:
rmdir -p a/b/c
5. rm: The rm(remove) command is used to remove objects such as files, directories, symbolic links etc from
the file system.
rm file_name
Remove file forcefully: The rm command with -f option is used for removal of file without prompting for
confirmation.
rm -f filename
Remove directory: The rm command with -r option is used to remove the directory and its contents
recursively.
rm -r myDir
Remove directory forcefully: The rm command with -rf option is used to forcefully remove directory
recursively.
rm -rf myDir
6. touch: The touch command is is used to create, change and modify timestamps of a file without any content.
Create a new file: You can create a single file at a time using touch command. The file created is an empty
file.
touch file_name
Create multiple files: You can create the multiple numbers of files at the same time.
Change access time: The touch command with `a` option is used to change the access time of a file.
touch -a file_name
Change modification time: The touch command with `m` option is used to change the modified time.
touch -m file_name
Use timestamp of other file: The touch command with `r` option is used to get timestamp of another file.
Login
In the above example, we get the timestamp of file1 for file2.
Create file with Specific time: The touch command with 't' option is used to create a file with specified time.
7. cat: The cat command is used to create single or multiple files, view contain of file, concatenate files and
redirect output in terminal or files.
Create a file: Used to create a file with specific name, content and press exit using `CTRL + D`
cat > file_name1.txt
Hello, How are you?
View file contents: You can view contents of a single or more files by mentioning the filenames.
More & Less options: If a file having a large number of content that won’t fit in the output terminal then
`more` & `less` options can be used to indiate additional content.
File permissions
Since Linux is a multi-user operating system, it is necessary to provide security to prevent people from
accessing each other’s confidential files. So Linux divides authorization into 2 levels,
1. Ownership: Each file or directory has assigned with 3 types of owners i. User: Owner of the file who
created it. ii. Group: Group of users with the same access permissions to the file or directory. iii. Other:
Applies to all other users on the system
2. Permissions: Each file or directory has following permissions for the above 3 types of owners.
Read: Give you the authority to open and read a file and lists its content for a directory.
Write: Give you the authority to modify the contents of a file and add, remove and rename files stored in
the directory.
r = read permission
w = write permission
x = execute permission
\- = no permission
Change access: The `chmod` command is used to change the access mode of a file. This command is used to
set permissions (read, write, execute) on a file/directory for the owner, group and the others group.
Example
chmod ugo-rwx test.txt
1. Absolute mode: The file permissions will be represented in a three-digit octal number.
No Permission 0 ---
Execute 1 --x
Write 2 -w-
Read 4 r--
2. Symbolic mode: In the symbolic mode, you can modify permissions of a specific owner unlike absolute
mode.
Owner Description
u user/owner
g group
o other
a all
and the list of mathematical symbols to modify the file permissions as follows,
Operator Description
+ Adds permission
Changing Ownership and Group: It is possible to change the the ownership and group of a file/directory using
`chown` command.
Example:
chown John test.txt
chown John:Admin test.txt
Change group-owner only: Sometimes you may need to change group owner only. In this case, chgrp
command need to be used
Example:
sudo chgrp Administrator test.txt
Networking
1. Display network information: `ifconfig` command is used to display all network information(ip address,
ports etc)
ifconfig -a
2. Test connection to a remote machine: Send an echo request to test connection of a remote machine.
ping <ip-address> or hostname
Example:
ping 10.0.0.11
hostname -I
(OR)
ip addr show
netstat -pnltu
5. Find information about domain: `whois` command is used to find out information about a domain, such as
the owner of the domain, the owner’s contact information, and the nameservers used by domain.
whois [domain]
Example:
whois google.com
Installing packages
1. Install package:
2. Package description: The info command is used to display brief details about a package.
3. Uninstall package: The remove command is used to remove or uninstall package name.
yum remove package_name
rpm -i package_name.rpm
Disk usage
1. Synopsis: `du` command is used to check the information of disk usage of files and directories on a
machine
du [OPTION]... [FILE]...
2. Disk usage of a directory: To find out the disk usage summary of a /home/ directory tree and each of its sub
directories
du /home/
3. Disk usage in human readable format: To find out the disk usage in human readable format
du -h /home/
4. Total disk usage of a directory: To find out the total disk usage
du -sh /home/
5. Total disk usage of all files and directories: To find out the total disk usage of files and directories
du -ah /home/
6. Total disk usage of all files and directories upto certain depth: print the total for a directory only if it is N or
fewer levels below the command
7. Total disk usage with excluded files: To find out the total disk usage of files and directories, but excludes the
files that matches given pattern.
du --help
$ uname -a
$ uname -s
4. Print Architecture:
$ uname -m
$ uname -o
Search Files
Example:
grep "^hello" test.txt // Hello John
grep -i "hELLo" text.txt // Hello John
The `find` command is used to find or search files and directories by file name, folder name, creation date,
modification date, owner and permissions etc and perform subsequent operations on them.
Example:
find ./test -name test.txt // ./test/test.txt
ii. Search file with pattern:
Example:
find ./test -name *.txt // ./test/test.txt
Example:
find ./test -name test.txt -exec rm -i {} \; // Search file and delete it after confirmation
The find command is used to search all empty folders and files in the entered directory or sub-direc
find ./directory_name -empty Example: find ./test -empty //./test/test1 //./test/test2 //./test/test1.txt
The find command is used to find all the files in the mentioned directory or sub-directory with the given
permissions
Example:
find ./test -perm 664
Example:
find ./ -type f -name "*.txt" -exec grep 'World' {} \; // Hello World
3. Whereis to locate binary or source files for a command: The whereis command in Linux is used to locate
the binary, source, and manual page files for a command. i.e, It is used to It is used to find executables of a
program, its man pages and configuration files.
whereis command_name
Example:
whereis netstat //netstat: /bin/netstat /usr/share/man/man8/netstat.8.gz(i.e, executable and locati
4. Locate to find files: The locate command is used to find the files by name. This command is faster compared
to find command because it searches database for the filename instead of searching your filesystem.
Example:
locate "*.txt" -n 10 // 10 file search results ending with .txt extension
SSH
SSH (Secure Shell) is a network protocol that enables secure remote connections between two systems.
1. Connect remote machine using IP address or machine name: The remote server can be connected with
local user name using either host name or IP address
Example:
ssh 192.111.66.100
ssh test.remoteserver.com
2. Connect remote machine using username: It is also possible specify a user for an SSH connection.
ssh username@hostname_or_ip-address
Example:
ssh [email protected]
ssh [email protected]
3. :Connect remote machine using custom port By default, the SSH server listens for a connection on port 22.
But you can also specify the custom port.
Example:
ssh test.remoteserver.com -p 3322
4. Generate SSH keys using keygen: SSH Keygen is used to generate a key pair which consists of public and
private keys to improve the security of SSH connections.
ssh-keygen -t rsa
5. Copying SSH keys to servers: For SSH authentication, `ssh-copy-id` command will be used to copy public
key(id_rsa.pub) to server.
ssh-copy-id hostname_or_IP
6. Copy a File Remotely over SSH: SCP tool is used to securely copy files over the SSH protocol.
Example:
scp test.txt [email protected]:/home/john/Desktop
7. Edit SSH Config File SSH server options customized by editing the settings in `sshd_config` file.
8. Run commands on a remote server SSH commands can be executed on remote machine using the local
machine.
ssh test.remoteserver.com mkdir NewDirectoryName // Creating directory on remote machine
9. Restart SSH service: You need to restart the service in Linux after making changes to SSH configuration.
Vi/Vim-commands
Vi editor is the most popular text editor from the early days of Unix. Whereas Vim(Vi IMproved) is an improved
version of vi editor to be used in CLI (command line interface) for mainly text editing tasks in many
configuration files. Some of the other alternatives are Elvis, Nvi, Nano, Joe, and Vile. It has two main operation
modes,
2. Entry mode(Or Insert mode): It allows typed characters on the keyboard into the current file.
You can create a new file or open an existing file using `vi filename` command.
Example:
vi first.txt
Let's see how do you create file, enter the content and leave the CLI by saving the changes.
Move cursor
You can use arrow keys(left, right, up and down) to move the cursor on the terminal. But you can also other
keys for this behavior.
h # Move left
j # Move down
k # Move up
l # Move right
Move sides
Paging is used to moves the cursor up or down through the text a full screen at a time. Whereas Scrolling
happens line by line.
Inserting Text
These commands places vi in entry mode from command mode. First, you need to be in command mode to
use the below commands.
Insert
Append
Open a line
Editing Text
cc
Change line from specific character Change from cursor to end of line
Deleting Text
Deleting One Character: Position the cursor over the character to be deleted and type x
x
X //To delete one character before the cursor
Deleting a Word: Position the cursor at the beginning of the word and type dw
dw
Deleting a Line: Position the cursor anywhere on the line and type dd.
dd
Copy, Cut and Paste operations can be done in either Normal or visual Mode.
Copy There are various copy or yank commands based on amount of text to be copied. The `y` character
is used to perform this operation.
i. Copy an entire line: Just place the cursor at the beginning of the line and type `yy`
yy
ii.Copy three lines: Just place the cursor from where to start copying and type `3yy`
3yy
iii. Copy word with trailing whitespace: Place the cursor at the beginning of the word and type `yaw`
yaw
iv. Copy word without trailing whitespace: Place the cursor at the beginning of the word and type `yiw`.
yiw
v. Copy right of the cursor: Copy text right of the cursor to the end of line using `y$` command
y$
vi.Copy left of the cursor: Copy text left of the cursor to the end of line using `y^` command
y^
vii. Copy text between the cursor and character: Copy text between the cursor and specified character.
Cut There are various cutting or deleting commands based on amount of text to be deleted. The `d`
character is used to perform this operation.
i. Cut entire line: Cut the entire line where the cursor is located
dd
ii.Cut three lines: Cut the three lines starting from the place where cursor is located
3dd
iii.Cut right of the cursor: Cut the text from the right of the cursor till the end of line
d$
iii.Cut left of the cursor: Cut the text from the left of the cursor till the beginning of line
d^
Paste This operation is performed using `p` command to paste the selected text
Visual Mode In this mode, first select the text using below keys
Exiting
#linux
1.15 GEEK