0% found this document useful (0 votes)
195 views

Linux Commands For CLI

This document provides commands and descriptions for system information, shutdown and restart, files and directories, file searching, mounting filesystems, disk space, and users and groups. Some key commands include uname -r to show the kernel version, shutdown -r now to reboot the system, ls to list files in a directory, find to search for files with specific attributes, mount to attach filesystems, and useradd/userdel to manage user accounts.

Uploaded by

Leon
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
195 views

Linux Commands For CLI

This document provides commands and descriptions for system information, shutdown and restart, files and directories, file searching, mounting filesystems, disk space, and users and groups. Some key commands include uname -r to show the kernel version, shutdown -r now to reboot the system, ls to list files in a directory, find to search for files with specific attributes, mount to attach filesystems, and useradd/userdel to manage user accounts.

Uploaded by

Leon
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
You are on page 1/ 9

COMMANDS DESCRIPTION

 
System information
arch show architecture of machine
uname -r show used kernel version
show hardware system components -
dmidecode -q
(SMBIOS / DMI)
hdaparm -i /dev/hda displays the characteristics of a hard-disk
hdparm -tT /dev/sda perform test reading on a hard-disk
cat /proc/cpuinfo show information CPU info
cat /proc/interrupts show interrupts
cat /proc/meminfo verify memory use
cat /proc/swaps show file(s) swap
cat /proc/version show version of the kernel
cat /proc/net/dev show network adpters and statistics
cat /proc/mounts show mounted file system(s)
lspci -tv display PCI devices
lsusb -tv show USB devices
date show system date
cal 2007 show the timetable of 2007
set date and time -
date 041217002007.00 
MonthDayhoursMinutesYear.Secondi

clock -w save changes on BIOS

Shutdown, Restart of a system and Logout


shutdown -h now shutdown system
init 0
shutdown -r hours:minutes &
shutdown -c cancel a planned shutdown of the system
shutdown -r now reboot
reboot
logout

Files and Directory


cd /home enter to directory '/ home'
cd .. go back one level
cd ../.. go back two levels
cd go to home directory
cd ~utente go to home directory
cd - go to previous directory
pwd show the path of work directory
ls view files of directory
ls -F view files of directory
ls -l show details of files and directory
ls -a show hidden files
ls *[0-9]* show files and directory containing numbers
show files and directories in a tree starting
lstree
from root
mkdir dir1 create a directory called 'dir1'
mkdir dir1 dir2 create two directories simultaneously
mkdir -p /tmp/dir1/dir2 create a directory tree
rm -f file1 delete file called 'file1'
rmdir dir1 delete directory called 'dir1'
remove a directory called 'dir1' and contents
rm -rf dir1
recursively
remove two directories and their contents
rm -rf dir1 dir2
recursively
mv dir1 new_dir rename / move a file or directory
cp file1 file2 copying a file
copy all files of a directory within the current
cp dir/* .
work directory
copy a directory within the current work
cp -a /tmp/dir1 .
directory
cp -a dir1 dir2 copy a directory
ln -s file1 lnk1  create a symbolic link to file or directory
ln file1 lnk1 create a physical link to file or directory
modify timestamp of a file or directory -
touch -t 0712250000 fileditest
(YYMMDDhhmm)

File search
search file and directory into root filesystem
find / -name file1
from '/'
search files and directories belonging to
find / -user user1
'user1'
search files with '. bin' extension within
find /home/user1 -name *.bin
directory '/ home/user1' 
search bynary files are not used in the last
find /usr/bin -type f -atime +100
100 days
search files created or changed within 10
find /usr/bin -type f -mtime -10
days
search files with '.rpm' extension and modify
find / -name *.rpm -exec chmod 755 {} ;
permits
search files with  '.rpm' extension ignoring
find / -name *.rpm -xdev removable partitions as cdrom, pen-drive,
etc.…
find files with the '.ps' extension - first run
locate *.ps
'updatedb' command
whereis halt show location of a binary file, source or man
which halt show full path to a binary / executable

Mounting a Filesystem
mount disk called hda2 - verify existence of
mount /dev/hda2 /mnt/hda2
the directory '/ mnt/hda2'
unmount disk called hda2 - exit from mount
umount /dev/hda2
point '/ mnt/hda2' first
fuser -km /mnt/hda2 force umount when the device is busy
run umount without writing the file
umount -n /mnt/hda2 /etc/mtab - useful when the file is read-only
or the hard disk is full
mount /dev/fd0 /mnt/floppy mount a floppy disk
mount /dev/cdrom /mnt/cdrom mount a cdrom / dvdrom
mount /dev/hdc /mnt/cdrecorder mount a cdrw / dvdrom
mount /dev/hdb /mnt/cdrecorder mount a cdrw / dvdrom
mount -o loop file.iso /mnt/cdrom mount a file or iso image
mount -t vfat /dev/hda5 /mnt/hda5 mount a Windows FAT32 file system
mount /dev/sda1 /mnt/usbdisk mount a usb pen-drive or flash-drive
mount -t smbfs -o username=user,password=pass
mount a windows network share
//winclient/share /mnt/share

Disk Space
df -h show list of partitions mounted
show size of the files and directories ordered
ls -lSr |more
by size
du -sh dir1 estimate space used by directory 'dir1'
show size of the files and directories sorted
du -sh * | sort -rn 
by size
show space used by rpm packages installed
rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n
sorted by size (fedora, redhat and like)
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | show space used by deb packages installed
sort -k1,1n sorted by size (ubuntu, debian and like)
Users and Groups
groupadd group_name create a new group
groupdel group_name delete a group
groupmod -n new_group_name old_group_name rename a group
useradd -c "Nome Cognome" -g admin -d /home/user1
create a new user belongs "admin" group
-s /bin/bash user1
useradd user1 create a new user
delete a user ( '-r' eliminates home
userdel -r user1
directory)
usermod -c "User FTP" -g system -d /ftp/user1 -s
change user attributes
/bin/nologin user1
passwd change password
passwd user1 change a user password (only by root)
chage -E 2005-12-31 user1 set deadline for user password
check correct syntax and file format of
pwck
'/etc/passwd'  and users existence
check correct syntax and file format of
grpck
'/etc/group'  and groups existence
log in to a new group to change default
newgrp group_name
group of newly created files

Permits on File - use "+" to set permissions and "-" to remove


ls -lh show permits
ls /tmp | pr -T5 -W$COLUMNS divide terminal into 5 columns
set permissions reading (r), write (w) and
chmod ugo+rwx directory1 (x) access to users owner (u) group (g) and
others (o)
remove permits reading (r), write (w) and
chmod go-rwx directory1
(x) access to users group (g) and others (or
chown user1 file1 change owner of a file
change user owner of a directory and all the
chown user1 -R directory1
files and directories contained inside
chgrp gruppo1 file1 change group of files
chown user1:gruppo1 file1 change user and group ownership of a file
view all files on the system with SUID
find / -perm -u+s
configured
set SUID bit on a binary file - the user that
chmod u+s /bin/file_eseguibile running that file gets same privileges as
owner
chmod u-s /bin/file_binario disable SUID bit on a binary file
set SGID bit on a directory - similar to SUID
chmod g+s /home/public
but for directory
chmod g-s /home/public disable SGID bit on a directory
set STIKY bit on a directory - allows files
chmod o+t /home/comune
deletion only to legitimate owners
chmod o-t /home/comune disable STIKY bit on a directory

Special Attributes on file - use "+" to set permissions and "-" to remove
allows write opening of a file only append
chattr +a file1
mode
allows that a file is compressed /
chattr +c file1
decompressed automatically by the kernel
makes sure that the program ignores Dump
chattr +d file1
the files during backup
makes it an immutable file, which can not be
chattr +i file1
removed, altered, renamed or linked
chattr +s file1 allows a file to be deleted safely
makes sure that if a file is modified changes
chattr +S  file1
are written in synchronous mode as with
sync
allows you to recover the contents of a file
chattr +u file1
even if it is canceled
lsattr show specials attributes

Archives and compressed files


bunzip2 file1.bz2 decompress a file called 'file1.bz2'
bzip2 file1 compress a file called 'file1'
gunzip file1.gz decompress a file called 'file1.gz'
gzip file1 compress a file called 'file1'
gzip -9 file1 compress with maximum compression
rar a file1.rar test_file create an archive rar called 'file1.rar'
compress 'file1', 'file2' and 'dir1'
rar a file1.rar file1 file2 dir1
simultaneously
rar x file1.rar decompress rar archive
unrar x file1.rar decompress rar archive
tar -cvf archive.tar file1 create a uncompressed tarball
create an archive containing 'file1', 'file2' and
tar -cvf archive.tar file1 file2 dir1
'dir1'
tar -tf archive.tar show contents of an archive
tar -xvf archive.tar extract a tarball
tar -xvf archive.tar -C /tmp extract a tarball into / tmp
tar -cvfj archive.tar.bz2 dir1 create a tarball compressed into bzip2
decompress a compressed tar archive in
tar -xvfj archive.tar.bz2
bzip2
tar -cvfz archive.tar.gz dir1 create a tarball compressed into gzip
tar -xvfz archive.tar.gz decompress a compressed tar archive in gzip
zip file1.zip file1 create an archive compressed in zip
compress in zip several files and directories
zip -r file1.zip file1 file2 dir1
simultaneously
unzip file1.zip decompress a zip archive

RPM Packages - Fedora, Red Hat and like


rpm -ivh package.rpm install a rpm package
install a rpm package ignoring dependencies
rpm -ivh --nodeeps package.rpm
requests
upgrade a rpm package without changing
rpm -U package.rpm
configuration files
upgrade a rpm package only if it is already
rpm -F package.rpm
installed
rpm -e package_name.rpm remove a rpm package
show all rpm packages installed on the
rpm -qa
system
show all rpm packages with the name
rpm -qa | grep httpd
"httpd"
obtain information on a specific package
rpm -qi package_name
installed
rpm -qg "System Environment/Daemons" show rpm packages of a group software
show list of files provided by a rpm package
rpm -ql package_name
installed
show list of configuration files provided by a
rpm -qc package_name
rpm package installed
show list of dependencies required for a rpm
rpm -q package_name --whatrequires
packet
rpm -q package_name --whatprovides show capability provided by a rpm package
show scripts started during installation /
rpm -q package_name --scripts
removal
rpm -q package_name --changelog show history of revisions of a rpm package
verify which rpm package belongs to a given
rpm -qf /etc/httpd/conf/httpd.conf
file
show list of files provided by a rpm package
rpm -qp package.rpm  -l
not yet installed
rpm --import /media/cdrom/RPM-GPG-KEY import public-key digital signature
rpm --checksig package.rpm verify the integrity of a rpm package
rpm -qa gpg-pubkey verify integrity of all rpm packages installed
check file size, permissions, type, owner,
rpm -V package_name
group, MD5 checksum and last modification
check all rpm packages installed on the
rpm -Va
system - use with caution
rpm -Vp package.rpm verify a rpm package not yet installed
rpm2cpio package.rpm | cpio --extract --make-directories 
extract executable file from a rpm package
*bin*
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm install a package built from a rpm source
rpmbuild --rebuild package_name.src.rpm build a rpm package from a rpm source

YUM packages updater - Fedora, RedHat and like


yum install package_name download and install a rpm package
update all rpm packages installed on the
yum update
system
yum update package_name upgrade a rpm package
yum remove package_name remove a rpm package
yum list list all packages installed on the system
yum search package_name find a package on rpm repository
clean up rpm cache erasing downloaded
yum clean packages
packages
remove all files headers that the system
yum clean headers
uses to resolve dependency
remove from the cache packages and
yum clean all
headers files

DEB packages - Debian, Ubuntu and like


dpkg -i package.deb install / upgrade a deb package
dpkg -r package_name remove a deb package from the system
show all deb packages installed on the
dpkg -l
system
show all rpm packages with the name
dpkg -l | grep httpd
"httpd"
obtain information on a specific package
dpkg -s package_name
installed on system
show list of files provided by a package
dpkg -L package_name
installed on system
show list of files provided by a package not
dpkg --contents package.deb
yet installed
dpkg -S /bin/ping verify which package belongs to a given file

APT packages updater - Debian, Ubuntu e like


apt-get install package_name install / upgrade a deb package
apt-cdrom install package_name install / upgrade a deb package from cdrom
apt-get update update all deb packages installed on system
apt-get remove package_name remove a deb package from system
apt-get check verify correct resolution of dependencies
apt-get clean clean up cache from packages downloaded

View file content


view the contents of a file starting from the
cat file1
first row
view the contents of a file starting from the
tac file1
last line
more file1 view content of a file along
similar to 'more' command but which allows
less file1 backward movement in the file as well as
forward movement
head -2 file1 view first two lines of a file
tail -2 file1 view last two lines of a file
tail -f /var/log/messages view in real time what is added to a file

Text Manipulation
cat file_test | [operation: sed, grep, awk, grep, etc] > syntax to elaborate the text of a file, and
result.txt write result to a new file
cat file_originale | [operazione: sed, grep, awk, grep, etc] syntax to elaborate the text of a file and
>> result.txt append result in existing file
look up words "Aug" on file
grep Aug /var/log/messages
'/var/log/messages'
look up words that begin with "Aug" on file
grep ^Aug /var/log/messages
'/var/log/messages'
select from file '/var/log/messages' all lines
grep [0-9] /var/log/messages
that contain numbers
search string "Aug" at directory '/var/log'
grep Aug -R /var/log/*
and below
grep Aug /var/log/messages write result of a search within a file
replace "string1" with "string2" in
sed 's/stringa1/stringa2/g' example.txt
example.txt
sed '/^$/d' example.txt remove all blank lines from example.txt
remove comments and blank lines from
sed '/ *#/d; /^ *$/d' example.txt
example.txt
echo 'esempio' | tr '[:lower:]' '[:upper:]' convert from lower case in upper case
sed -e '1d' result.txt eliminates the first line from file example.txt
view only lines that contain the word
sed -n '/stringa1/p'
"string1"
remove empty characters at the end of each
sed -e 's/ *$//' example.txt
row
remove only the word "string1" from text
sed -e 's/stringa1//g' example.txt
and leave intact all
sed -n '1,5p;5q' example.txt view from 1th to 5th row
sed -n '5p;5q' example.txt view row number 5
sed -e 's/00*/0/g' example.txt replace more zeros with a single zero
cat -n file1 number row of a file
cat example.txt | awk 'NR%2==1' remove all even lines from example.txt
echo a b c | awk '{print $1}' view the first column of a line
echo a b c | awk '{print $1,$3}' view the first and third column of a line
paste file1 file2 merging contents of two files for columns
merging contents of two files for columns
paste  -d  '+' file1 file2
with '+' delimiter on the center
sort file1 file2 sort contents of two files
sort contents of two files omitting lines
sort file1 file2 | uniq
repeated
sort contents of two files by viewing only
sort file1 file2 | uniq -u
unique line
sort contents of two files by viewing only
sort file1 file2 | uniq -d
duplicate line
compare contents of two files by deleting
comm -1 file1 file2
only unique lines from 'file1'
compare contents of two files by deleting
comm -2 file1 file2
only unique lines from 'file2'
compare contents of two files by deleting
comm -3 file1 file2
only the lines that appear on both files

Character set and Format file conversion


convert a text file format from MSDOS to
dos2unix filedos.txt fileunix.txt
UNIX
convert a text file format from UNIX to
unix2dos fileunix.txt filedos.txt
MSDOS
recode ..HTML < page.txt > page.html convert a text file to html
recode -l | more show all available formats conversion

Filesystem Analysis
badblocks  -v  /dev/hda1 check bad blocks in disk hda1
repair / check integrity of linux filesystem on
fsck  /dev/hda1
disk hda1
repair / check integrity of ext2 filesystem on
fsck.ext2  /dev/hda1
disk hda1
repair / check integrity of ext2 filesystem on
e2fsck  /dev/hda1
disk hda1
repair / check integrity of ext3 filesystem on
e2fsck -j /dev/hda1
disk hda1
repair / check integrity of ext3 filesystem on
fsck.ext3  /dev/hda1
disk hda1
repair / check integrity of fat filesystem on
fsck.vfat  /dev/hda1
disk hda1
repair / check integrity of dos filesystem on
fsck.msdos  /dev/hda1
disk hda1
repair / check integrity of dos filesystems on
dosfsck  /dev/hda1
disk hda1

Format a Filesystem
create a filesystem type linux on hda1
mkfs /dev/hda1
partition
create a filesystem type linux ext2 on hda1
mke2fs /dev/hda1
partition
create a filesystem type linux ext3 (journal)
mke2fs -j /dev/hda1
on hda1 partition
mkfs -t vfat 32 -F /dev/hda1 create a FAT32 filesystem
fdformat  -n /dev/fd0 format a floppy disk
mkswap /dev/hda3 create a swap filesystem

SWAP filesystem
mkswap /dev/hda3 create a swap filesystem
swapon /dev/hda3 activating a new swap partition
swapon /dev/hda2 /dev/hdb3  activate two swap partitions

Backup
dump -0aj -f /tmp/home0.bak /home  make a full backup of directory '/home'
make a incremental backup of directory
dump -1aj -f /tmp/home0.bak /home 
'/home'
restore -if /tmp/home0.bak restoring a backup interactively
rsync -rogpav --delete /home /tmp synchronization between directories
rsync -rogpav -e ssh --delete /home ip_address:/tmp  rsync via SSH tunnel
synchronize a local directory with a remote
rsync -az -e ssh --delete ip_addr:/home/public /home/local
directory via ssh and compression
synchronize a remote directory with a local
rsync -az -e ssh --delete /home/local ip_addr:/home/public
directory via ssh and compression
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd make a backup of a local hard disk on
of=hda.gz' remote host via ssh
make a incremental backup of directory
tar -Puf backup.tar /home/user
'/home/user'
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd copy content of a directory on remote
/home/share/ && tar x -p' directory via ssh
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup- copy a local directory on remote directory via
home && tar x -p'  ssh
local copy preserving permits and links from
tar cf - . | (cd /tmp/backup ; tar xf - )
a directory to another
find /home/user1 -name '*.txt' | xargs cp -av --target- find and copy all files with '.txt' extention
directory=/home/backup/ --parents from a directory to another
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > find all files with '.log' extention and make
log.tar.bz2 an bzip archive
make a copy of MBR (Master Boot Record) to
dd if=/dev/hda of=/dev/fd0 bs=512 count=1
floppy
restore MBR from backup copy saved to
dd if=/dev/fd0 of=/dev/hda bs=512 count=1
floppy
CDROM
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast
clean a rewritable cdrom
-force
mkisofs /dev/cdrom > cd.iso create an iso image of cdrom on disk
create a compressed iso image of cdrom on
mkisofs /dev/cdrom | gzip > cd_iso.gz
disk
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4
create an iso image of a directory
-o ./cd.iso data_cd
cdrecord -v dev=/dev/cdrom cd.iso burn an ISO image
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - burn a compressed ISO image
mount -o loop cd.iso /mnt/iso mount an ISO image
cd-paranoia -B rip audio tracks from a CD to wav files
rip first three audio tracks from a CD to wav
cd-paranoia -- "-3"
files
cdrecord --scanbus scan bus to identify the channel scsi

Networking - LAN and WiFi


show configuration of an ethernet network
ifconfig eth0
card
ifup eth0 activate an interface 'eth0'
ifdown eth0 disable an interface 'eth0'
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 configure IP Address
configure 'eth0' in promiscuous mode to
ifconfig eth0 promisc
gather packets (sniffing)
dhclient eth0 active interface 'eth0' in dhcp mode
route -n show routing table
route add -net 0/0 gw IP_Gateway configura default gateway
route add -net 192.168.0.0 netmask 255.255.0.0 gw configure static route to reach network
192.168.1.1 '192.168.0.0/16'
route del 0/0 gw IP_gateway remove static route
echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing
hostname show hostname
lookup hostname to resolve name to ip
host www.linuxguide.it
address and viceversa
ip link show show link status of all interfaces
mii-tool eth0 show link status of 'eth0'
ethtool eth0 show statistics of network card 'eth0'
show all active network connections and
netstat -tup
their PID
show all network services listening on the
netstat -tupl
system and their PID
tcpdump tcp port 80 show all HTTP traffic
iwlist scan show wireless networks
show configuration of a wireless network
iwconfig eth1
card

Microsoft Windows networks - SAMBA


nbtscan ip_addr netbios name resolution
nmblookup -A ip_addr netbios name resolution
smbclient -L ip_addr/hostname show remote shares of a windows host
like wget can download files from a host
smbget -Rr smb://ip_addr/share
windows via smb
mount -t smbfs -o username=user,password=pass
mount a windows network share
//winclient/share /mnt/share

IPTABLES - firewall
iptables -t filter -L show all chains of filtering table
iptables -t nat -L show all chains of nat table
iptables -t filter -F clear all rules from filtering table
iptables -t nat -F clear all rules from table nat
iptables -t filter -X delete any chains created by user
iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT allow telnet connections to input
iptables -t filter -A OUTPUT -p tcp --dport http -j DROP block HTTP connections to output
iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT allow POP3 connections to forward chain
logging sulla chain di input  Logging on chain
iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT"
input
configure a PAT (Port Address Traslation) on
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
eth0 masking outbound packets
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m redirect packets addressed to a host to
tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 another host

Monitoring and debugging


top display linux tasks using most cpu
ps -eafw displays linux tasks
ps -e -o pid,args --forest displays linux tasks in a hierarchical mode
mostra un albero dei processi sistema Shows
pstree 
a tree system processes
kill -9 ID_Processo force closure of the process and finish it
kill -1 ID_Processo force a process to reload configuration
lsof -p $$ display a list of files opened by processes
displays a list of open files in a given path
lsof /home/user1
system
display system calls made and received by a
strace -c ls >/dev/null
process
strace -f -e open ls >/dev/null display library calls
watch -n1 'cat /proc/interrupts' display interrupts in real-time
last reboot show history reboot
lsmod display kernel loaded
free -m displays status of RAM in megabytes
monitoring reliability of a hard-disk through
smartctl -A /dev/hda
SMART
smartctl -i /dev/hda check if SMART is active on a hard-disk
show events inherent to the process of
tail /var/log/dmesg
booting kernel
tail /var/log/messages show system events

Other useful commands


mkbootdisk --device /dev/fd0 `uname -r` create a boot floppy
gpg -c file1 encrypt a file with GNU Privacy Guard
gpg file1.gpg decrypt a file with GNU Privacy Guard
wget -r www.example.com download an entire web site
download a file with the ability to stop the
wget -c www.example.com/file.iso
download and resume later
echo 'wget -c www.example.com/files.iso' | at 09:00 start a download at any given time
show shared libraries required by ssh
ldd ssh
program
alias hh='history' set an alias for a command - hh = history

You might also like