This document provides a summary of Linux command line cheat sheet covering topics such as:
- Simple commands like date, cal, df, free for displaying system information
- Navigation commands like cd, ls
- Exploring and manipulating files and directories using commands like cp, mv, mkdir, rm
- Finding files using locate, find
- Process commands like ps, top, kill
- Networking commands like ping, traceroute, netstat
- Archiving files using gzip, bzip2, tar, zip
- User permissions and ownership with chmod, chown, su
1 of 6
Download to read offline
More Related Content
Linux Command Line - By Ranjan Raja
1. Linux Command Line Cheat Sheet
by RANJAN RAJA (Ethical Hacker & Cyber Security Expert)
shell prompt
# Super User
$ normal user
simple commands
date display current date and time
cal display current month calendar
df displays disk usages
free display memory usage
Navigation
cd change the current diretcory
ls list the directory
cd - : change to previous working directory
cd ~username : change to home directory
Exploring Filesystem
file Determine file type
less view file contents
ls
-l diplay in long format
-h human readable
-a list all files even those hidden,
-d directory
-F option will append an indictor charactor
to the end of listed names
-r display result in reverse order
-S sort by file Size
-t modification time
Manipulating Files and Directories
cp copy the files
mv move the files from one folder to
other
mkdir creates a directory
rm remove files and directories
Manipulating Files and Directories (cont)
ln create Hard and symbolic link
* any character
? any single character
[ character] any character that is a member
of character
[ ! character] any character that is not a
member of character
[[:class:]] any character that is a member of
class
command Options : cp, mv
i interactive same
in mv
a copy files and directories of all
attributes, ownership and
permission
-
r recursively copies directories
and contents
same
in mv
u copy the files that don't exists same
in mv
v verbose, informative message same
in mv
Command Substitution
echo $(ls)
ls -l $(which cp) new method
ls -l which cp back tick, old method
Process
ps reports snap shot of current process
top diskplays task
jobs list active jobs
bg place a job in the background
fg place a job in the foreground
kill send a signal to process
killall kill process by name
Process commands
ps aux BSD style ouptut
fg %1 jobs
kill -1 13456 kill process id 13456
SIGNALS: HUP, INT, KILL, TERM,C
ONT,STOP,QUIT, SEGV, TSTP. WINCH
Find command
cmin match attributes/files/dir
modified, n minutes
cnewer match file/dir whose content or
attribute were last modified n*24
ago
ctime n match file or direct whose
content or attribute were
modified n*24 hrs ago
empty match empty files and direct
ories
group
name
match files or direc belonging to
group name
iname pattern like the iname test but
case insensitive
inum n match files with inode number
mmin n match files or dir whose content
were modified n minutes ago
mtime n match files or dir whose content
were modified n*24 hours ago
name
pattern
match files and dir with specified
wildcard pattern
nouser match files and dir that don't
belong to valid user
nogroup match files and dir that don't
belong to valid group
Published 27th June, 2022.
Page 1 of 6.
By - Educonf Technologies Pvt. Ltd.
www.educonftech.com
www.ethicalhackingpatna.com
EDUCONF
TECHNOLOGIES
2. Find command (cont)
perm
mode
match files and directories set to
specified mode
samefile
name
matches files that share the
same inode number as file name
size n match file size of n
type c match file type of c
user match file and directories belong
to user
find %test %action %options
find ~
find ~ | wc -l
find ~ -type d | wc -l
----------------------------
b block
c character special device
d directory
f regular file
l symbolic link
Find Logical Operator
and
or
not
find ~ ( -type f -not -perm 0600 ) -or ( -
type d -not -perm -700 )
find -actions
delete
ls
print
quite
find ~ -type f -name '*.BAR] -print
find ~ -type f -and -name '*.BAR -and -print
Userdefined actions
-exec comman{}
find ~ -type f -name 'foo*' -exec ls -l '{}' +
find ~ -type f -name 'foo*' -exec ls -l '{}' ';'
Find Options - scope
depth to process a directory files
before the dir itself
maxdepth max num of level that find will
descend into a directory when
performing test and action
mindepth min num of level that find will
descend into a directory when
performing test and action
mount direct find not to traverse
directories that mounter on
other filesystem
Tricks
clear clears the screen
history stores the history
script
file
capture all command execution in
a file
history: CTRL + {R, P }
!!number : command history number
!! : last command
!?string : history containing last string
!string : history containing last string
export HISTCONTROL=ignoredups
export HISTSIZE=10000
Working With Commands
type Indicate how command name is
interpreted
which display which executable
program will be executed
man Display manual page
apropos Display appropriate command
info Display command Info entry
whatis Display brief description of
command
Working With Commands (cont)
alias create an alias for command
man page options
1 User commands
2 Programming interface for system calls
3 Programming interface for C Library
4 Special files such devies nodes and
drivers
5 file formats
6 Games and screen savers
7 misc
8 system administrator commands
Redirection
cat concatenates files
sort sort the file
uniq report or omit repeated lines
grep print lines matching pattern
head prints first few lines of file
tail prints las few lines of file
tee reads stdin and send output to
stdout and file
wc count number of line, words, and
bytes
Redirection Operator
ls -l /usr/bin >file default stdout to file
ls -l /usr/bin 2>file redirects stderr to file
ls -l /usr/bin > ls-
output 2>&1
redirects stderr &
stdout to file
ls -l /usr/bin &> ls-
output
redirects stderr &
stdout to file
3. Redirection Operator (cont)
ls -l /usr/bin 2>
/dev/null
/dev/null
bitbucket
Pipelines
| pipelines
ls -l /usr/bin/ |
tee out | sort
tee reads stdin and writes
to files and stdout
view the world as SHELL viewed
echo * expands all files in the
path
echo D* expands all files with
starting D
$((expression)) Arithematic expression
echo
$(($((5*2))3))
75
ls -l which cp backtick instead of
expression
Braces Expansion
echo Front-{A,
B,C}-Back
Front-A-Back,
Front-B-Back,
Front-C-Back
echo {Z..A} Z Y X W V U .....A
mkdir {2009..20
11}-0{1..9}
{2009..2011}-{1
0..12}
creates a directory
for 12 months in
2009 to 2011
Environment
printenv Print part of all of the enviro
nment
set set shell options
export export environment to subseq
uently executed programs
Environment (cont)
alias create an alias for command
Login & Non Login Shell
Login Shells :
/etc/profile : global configuration
~/.bash_profile : personal startup efile
~/.bash_login. : if ~/.bash_profile is not
found, bash attempts to read this script
~/.profile : if neither ~/.bash_profile &
~/.bash_login bash reads this file
Non Login shells :
/etc/bash.bashrc : Global configuration
~/.bashrc : User configuration
Quoting
echo
This is a
test
This is a test; space is stripped
echo
"This is
a test"
This is a test
echo
'$(echo
foo)
$((2+2))'
$(echo foo) $((2+2))
echo the
total is
$500.00
$5 is undefined variable so it
supress the value, output will be
like the total is 00.00
" " : all special character looses its meaning,
exception ($, , `)
' ' : all special character looses its meaning,
and no exceptions
Searching For Files
locate find files by name
find search for files in a dir
xargs build and exec cmd lines from stdin
touch change the file times
Searching For Files (cont)
stat display file or filesystem status
Networking
Ping Send ICMP packets
traceroute Print route packets to a
network
netstat print network connection,
routing table, interface stats
ftp/lftp Internet file transfer program
wget Non Interactive network
downloader
ssh OpenSSH SSH Client (remote
login program)
scp secure copy
sftp Secure File transfer program
OpenSSH package includes two programs
that can make use of an SSH encrypted
tunnel to copy file across the network.
a) scp
b) sftp
SFTP doesn't require ftp server to connect,
it needs only SSH running in machines, any
machine that has ssh running, we can able
to transfer files to server
Archiving and Backup
gzip Compress or expand files
bzip2 A block sorting file compressor
tap tape archving utility
zip Package and compress files
rsync remote file and dir synchronization
unzip Unzip the gzip files
compression algorithm: Lossy and Lossless
4. Hacks
Examples:
ssh remote-sys 'tar cf - Document' | tar xf -
find playground -name 'file-A' | tar czf
playground.tgz -T -
find playground -name 'file-A' | tar cjf playgr
ound.tgz -T -
rsync -av --delete --rsh=ssh /etc /home
/usr/local remote-sys:/backup
- or Hyphen is the stdin and stdout
Text processing examples
cat -A $FILE To find any CTRL
character introduced
sort file1.txt file2.txt
file3.txt > final_sor
ted_list.txt
sort all files once
ls - l | sort -nr -k 5 key field 5th column
sort --key=1,1 --
key=2n distor.txt
key field 1,1 sort and
second column sort
by numeric
sort foo.txt | uniq -c to find repetition
cut -f 3 distro.txt cut column 3
cut -c 7-10 cut character 7 - 10
cut -d ':' -f 1 /etc/p
assword
delimiter :
sort -k 3.7nbr -k
3.1nbr -k 3.4nbr
distro.txt
3 rd field 7 the
character, 3rd field 1
character
paste file1.txt
file2.txt > newfil
e.txt
merge two files
join file1.txt file2.txt join on common two
fields
Text processing
cat concatenate files and print stdout
sort sort lines of text files
uniq report or omite repeated lines
cut remove section from each line of
files
paste merge lines of files
join join lines of two files on a common
field
comm compare two sorted files line by
line
diff compare files
patch apply a diff file to original
tr translate
sed stream editor
aspel interactive spell checker
Permissions
id display user identity
chmod change's file mode
umask set the default file permission
su Run a shell as another user
sudo Execute command as another
user
chown changes file's owner
chgrp change file groups owner
passwd change a user password
Read,Write, Execute
- | rwx | rw- | r-
-
type | owner | group |
world
type
- regular file
d directory
l symbolic link
c character device
b block device
File Mode [Octal]
000 ---
001 --x
010 -w-
011 -wx
100 r--
101 r-x
110 rw-
111 rwx
chmod 0600 file [ rw- is set for owner ]
Mode symbolic notation
ugo user, group, others
u+x giving exeute permission for
user
u=rw,o=x giveing user read write and
others execute perm
chmod u=rw,o=x file.txt
Packaging Ssystem
Debian
Style
(.dep)
Debain, ubuntu, xandros,
Linspire
RedHat
style(.rpm)
Fedora, CentOS, Redhat
Enterprise, OpenSUSE,
Mandriva, PCLinuxOS
Install from Repo
debian apt-get install package_name
redhat yum install package_name
Operation on Package File
Debian :
dpkg --install packagefile
apt-get remove package_name
apt-get update
dpkg --list
dpkg --status package_name
ch
5. Operation on Package File (cont)
apt-cache show package_name (info about
package)
dpkg --search file_name (finding which
package installed)
Redhat :
rpm -i packagefile
yum erase package_name
yum update
rpm -u packagefile
rpm -qa. (list)
rpm -q package_name (check package
installed)
yum info package_name
rpm -qf file_name (finding which package
installed)
storage media
mount mount a filesystem
ummount unmount a file system
fdisk partition table manipulator
fsck check and repair filesystem
fdformat format floppy disk
mkfs create a file system
dd write a block oriented data
directly to a device
geniso
image
create an ISO 9660 image file
wodim Write data to optical storage
device
md5sum calculate md5sum
dd if=/dev/cdrom of=ubuntu.iso (create
image file)
fsck /dev/sdb1 (check file system)
mkfs -t ext3 /dev/sdb1 (create ext3 file
system)
unmount /dev/sdb1 (unmount the file
system, before changing the partition table)
fdisk /dev/sdb (create a partition table )
POSIX charcter class
character class
alnum, word , alpha blank, cntrl, digit,
graph,lowe, punct, print, space, upper,
xdigit
format: [ :alnum: ]
echo $LANG
export LANG=POSIX
grep Options
i ignore case
v invert match
c print number of matches
l print the name of each file that contain
matches
L print only the names of files that don't
match
n print match line with the number
h for multiple output supress the output of
filename
grep [options] regex [file....]
metacharacters : ^ $ . [ ] {} - ? * + ( ) |
grep examples
grep -h '.zip' file.list . is any character
grep -h '^zip' file.list starts with zip
grep -h 'zip$'
file.list
ends with zip
grep -h '^zip$'
file.list
containing only zip
grep -h '[^bz]zip'
file.list
not containing b and
z
grep -h '^[A-Za-z0-
9]' file.list
file containing any
valid names
grep Quantifiers
? match element zero or one time
* match an element zero or more times
+ Match an element one or more times
{} match an element specfic number of
times
It always match the preceding element
{n} match the preceding element occurs n
times
{n,m} match the preceding element occurs
at least n times, but no more than m times
{n,} match the preceding element if it occurs
n or more times
{,m} match the preceding element if it
occurs no more than m times
grep hacks
grep -E '^([0-9]{3}).[0-9]{3}.[0-9]{3}$'
phone.txt
locate --regex 'bin/(bz|gz|zip)'
for i in {1..10}; do echo "(${RANDOM:0:3})-
${RANDOM:0:3}-${RANDOM:0:3}"; done
>>phone.txt
Text Processing Hacks
diff -c context format
diff -u unified format
diff -Naur oldfile newfile
> diff_file
write the diff to
diff file
patch < diff_file applied to oldfile
directly.
echo "secret text" | tr a-
zA-Z n-za-mN-ZA-M
frperg grkg |
ROT13
Encoding