This is Day to Day Work Linux Cheatsheet for Software Engineers.
Facebook: Link
Youtube: Link
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License .
Name
Command
Change Directory
cd /<directory_path>
Change Directory to Previous
cd ..
Create Directory
mkdir <directory_name>
Create Directory with Parent
mkdir -p <parent_directory_name>/<directory_name>
Remove Directory
rm -r <directory_name>
Remove Directory without prompt
rm -rf <directory_name>
Remove empty Directory
rmdir <directory_name>
Copy Directory
cp -r <directory_name> <destination_path>
Move Directory
mv <directory_name> <destination_path>
Name
Command
Search files in a directory
find <directory_name> -name <file_name_pattern>
Search files in a directory with case-insensitive
find <directory_name> -iname <file_name_pattern>
Search files in a directory and execute command on it
find <directory_name> -name <file_name_pattern> -exec <command>
Search text in file
grep <text>
<file_name>
Search text in file with line numbers
grep -n <text>
<file_name>
Search text in file with case-insensitive
grep -i <text>
<file_name>
Search text in file for all patterns given
grep -e <text>
<file_name>
Search multiple text with case-insensitive and all pattern given
grep -ie <text1>
<file_name> -ie <text2>
<file_name> -ie <text3>
<file_name> -ie <textn>
<file_name>
Search file for any lines that don't include the content
grep -v '<content_pattern>' <file_name>
Name
Command
Send stdout of cmd1 to cmd2
cmd1 |
cmd2
Send stderr of cmd1 to cmd2
cmd1 |&
cmd2
Name
Command
Show content of the file
cat <file_name>
Create a file with content
cat <<EOF >
<file_name> #!/bin/bash<content>
EOF
Create an empty file
touch <file_name>
Remove file
rm <file_name>
Remove file without prompt
rm -f <file_name>
Copy file
cp <file_name> <destination_path>
Move file
mv <file_name> <destination_path>
Show first n lines of file
head -n <file_name>
Show last n lines of file
tail -n <file_name>
Keep showing last 10 lines of file
tail -f <file_name>
Show total line in a file
cat <file_name> | wc -l
List files in current directory
ls
List files, hidden files in current directory
ls -a
List files in current directory with their permissions and sizes
ls -l
List files in current directory with their permissions, sizes, units
ls -lh
Paginate the content of file
cat <file_name> |
less
Create symbolic link to source file in current directory
ln -s <file_name>
Create symbolic link to source file in directory
ln -s <file_name>
Extract .tar.gz file
tar -zxvf <file_name>
See the differences between files
diff <file_a> <file_b>
File Permissions Commands
Name
Command
Change file permission with permission number
chmod 755 <file_name>
Change directory permission with permission number
chmod -R 755 <directory_name>
Change directory permission with letters
chmod -R u+rw,g+r,o+x <directory_name>
Change file owner
chown <file_name>
Change file owner with user's login group
chown : <file_name>
Change directory and its content owner recursively
chown -R <directory_name>
Name
Command
4
read (r)
2
write (w)
1
execute (x)
Name
Command
Shows processes for the current shell
ps
View all the running processes
ps -A or ps -e
View all processes associated with the terminal
ps -a
View all processes associated with the terminal and show user
ps -aux
Kill specific process id
kill -SIGTERM <process_id> ...
Lists signal
kill -l
Kill all processes with specifies name
pkill <process_name>
Kill all processes with case-insensitive
pkill -i <process_name>
Kill specific running command
pkill -f <running_command_pattern>
Kill all processes with specific signal
pkill --signal <signal>
<process_name>
Show dynamic real-time processes list of specific user
top -u <user>
To understand Vim well, we need to understand Vim editing modes. Vim has 6 basic modes which are:
Name
Description
Help page
normal
For navigation and manipulation of text. This is the default mode.
:help Normal-mode
insert
For inserting new text.
:help Insert-mode
visual
For manipulation of text selection.
:help Visual-mode
select
Similar to a visual mode, but with a more MS Windows-like behavior.
:help Select-mode
command-line
For entering editor commands - like the help commands (:help), quit (:q)
:help Command-line-mode
Ex-mode
Similar to a command-line mode but optimized for batch processing.
:help Ex-mode
Name
Command
Example
Edit a file
vi <file_name>
Enter an insert mode to insert new text
i
Insert a blank line under the current line and switch to an insert mode
o
Switch to an insert mode and move a cursor to the end of line (Append)
A
Copy the current line
yy
Paste copied text after the current cursor position
p
Delete the current line and switch to an insert mode (Change a line)
cc
Delete the current line and stay in an normal mode
dd
Delete from the current cursor position to the end of a word
dw
Delete before the current cursor position to the beginning of a word
db
Delete a character at the current cursor position and stay in a normal mode
x
Delete and switch to an insert mode from the current cursor postion to the end of line
C
Delete a character and switch to an insert mode (Substitute a character)
s
Move the cursor left
h
Move the cursor down
j
Move the cursor up
k
Move the cursor right
l
Go to the begining of the first line
gg
Go to the begining of the last line
G
Go to a line number
<row_number>
+ gg
Go to a column number
<column_number>
+ \
Search keyword
/ <keyword>
Search keyword with case-insensitive
/<keyword>
\c
Move to the next found keyword after searching
n
Move to the previous found keyword after searching (invert of n)
N
Visual selection a character at the current cursor position
v
Visual selection the current line
V
Tab right
shift + .
Tab left
shift + ,
Repeat a last change
.
Undo change
u
Redo change
ctrl + r
Save and quit
:wq
Quit (The most important Vi/Vim command)
:q
Name
Command
Show System
uname -a
Show Mounted File System
mount
Show System Date
date
Show Uptime
uptime
Show username
whoami
Show Manual Command
man <command>
Show History Command
history
Name
Command
Stop Current Command
CTRL + c
Sleep Program
CTRL + z
Search History
CTRL + r
Repeat Last Command
!!
Run the most recent command that matches with starting character(s) of string
!<string>
Name
Command
Show Environment Variables
env
Show Value of Variable
echo $<VariableName>
Set Value of Variable
export $<VariableName>
= <value>
Show Executable Search Path
$PATH
Show Home Directory
$HOME
Show Current Shell
$SHELL
Name
Command
Run command1 then command2
<command1> ; <command2>
Run command2 if command1 is successful
<command1> && <command2>
Run command2 if command1 is not successful
<command1> || <command2>
Name
Command
Display all network interfaces and IP addresses
ifconfig -a
Send echo requests to the target host to verify connectivity
ping <host>
Get who is information for domain
whois <domain>
Get DNS information for domain
dig <domain>
Reverse lookup host
dig -x <host>
Display name of server
hostname
Download file
wget <file>
Listing all listening connections ports
netstat -a
An A-Z Index of Linux command line: Link