Important linux Command


1. a. Eject CD ROM drive: eject or eject /dev/cdrom
   b. Insert CD Tray: mount /dev/cdrom

2. Copy file: cp <source location> <destination location>

3. Delete file: rm 'file location' such that: rm '/media/SOFTWARE/ubuntu 8.04(deb packages)/a.txt'

4. To remove a directory along with all of its contents: rm -fr 'directory location'

5. To uninstall packages: apt-get remove <package name>

6. To install packages: apt-get install <package name>]

7. The mkdir command will allow you to create directories. Example: mkdir '/home/rubel/Desktop/music' will create a directory called "music" on desktop.
 
8. The cd command will allow you to change directories. When you open a terminal you will be in your home directory. To move around the file system you will use cd. Examples:

    * To navigate into the root directory, use "cd /"
    * To navigate to your home directory, use "cd" or "cd ~"
    * To navigate up one directory level, use "cd .."
    * To navigate to the previous directory (or back), use "cd -"
    * To navigate through multiple levels of directory at once, specify the full directory path that you want to go to. For example, use, "cd /var/www" to go directly to the /www subdirectory of /var/. As another example, "cd ~/Desktop" will move you to the Desktop subdirectory inside your home directory. 


9. The mv command will move a file to a different location or will rename a file.
  a. rename a file: mv /home/rubel/Desktop/a.txt /home/rubel/Desktop/b.txt
  b. move a file: mv /home/rubel/Desktop/a.txt /home/rubel/a.txt

10. The df command displays filesystem disk space usage for all mounted partitions. "df -h" is probably the most useful - it uses megabytes (M) and gigabytes (G) instead of blocks to report. (-h means "human-readable") 

11. Searching and Editing Text Files:
   a. The grep command allows you to search inside a number of files for a particular search pattern and then print matching lines. Example:  grep easy /home/rubel/a.txt search easy from file a.txt
   b. The sed (or Stream EDitor) command allows search and replace of a particular string in a file. For example, sed s/easy/hard/g /home/rubel/a.txt which replace easy to hard from the file a.txt

12. Compression:
   a. zip -r name_of_file.zip files ; example: zip -r b.zip /home/rubel/Desktop/build.xml
   b. unzip filename.zip ; example: unzip /home/rubel/Desktop/a.txt.zip

13. To Create an ISO Image from a CD or DVD: cat /dev/cdrom > /home/rubel/slax.iso 

14. Burning a CD on the Command Line with wodim
    a. See where the CDROM/DVDROM is located: wodim --devices
    b. To burn an audio cd from wav files : wodim dev=/dev/cdrw driveropts=burnfree -v -audio [wav files...]
    c. Blanking a CD/RW :  wodim -vv dev=/dev/cdrw blank=all

15.Shutdown, Restart and Logout of a system:
            a. # init 0          shutdown system(2)
            b. # logout        leaving session
            c. # reboot        reboot(2)
            d. # shutdown -h now              shutdown system(1)
            e. # shutdown -h 16:30 &        planned shutdown of the system at 16:30
            f. # shutdown -c           cancel a planned shutdown of the system
            g. # shutdown -r now               reboot(1)
            h. # telinit 0      shutdown system(3)

16. System information:
            a. # arch            show architecture of machine(1)   [man]
            b. # cal 2009    show the timetable of 2009   [man]
            c. # cat /proc/cpuinfo show information CPU info   [man]
            d. # cat /proc/interrupts           show interrupts   [man]
            e. # cat /proc/meminfo            verify memory use   [man]
            f. # cat /proc/swaps     show file(s) swap   [man]
            g. # cat /proc/version   show version of the kernel   [man]
            h. # cat /proc/net/dev show network adpters and statistics   [man]
            i. # cat /proc/mounts    show mounted file system(s)   [man]
            j. # clock -w    save date changes on BIOS   [man]
            k. # date          show system date   [man]
            l. # date 041217002007.00     set date and time -MonthDayhoursMinutesYear.Seconds   [man]
            m. # dmidecode -q      show hardware system components - (SMBIOS / DMI)   [man]
            n. # hdparm -i /dev/hda           displays the characteristics of a hard-disk   [man]
            o. # hdparm -tT /dev/sda         perform test reading on a hard-disk   [man]
            p. # lspci -tv    display PCI devices   [man]
            q. # lsusb -tv    show USB devices   [man]
            r. # uname -m show architecture of machine(2)   [man]
            s. # uname -r    show used kernel version   [man] 

17. Files and Directory:
            1. # cd /home               enter to directory '/ home'   [man]
            2. # cd ..          go back one level   [man]
            3. # cd ../..       go back two levels   [man]
            4. # cd             go to home directory   [man]
            5. # cd ~user1             go to home directory   [man]
            6. # cd -           go to previous directory   [man]
            7. # cp file1 file2         copying a file   [man]
            8. # cp dir/* .   copy all files of a directory within the current work directory   [man]
            9. # cp -a /tmp/dir1 .    copy a directory within the current work directory   [man]
            10. # cp -a dir1 dir2    copy a directory   [man]
            11. # cp file file1         outputs the mime type of the file as text   [man]
            12. # iconv -l   lists known encodings   [man]
            13. # iconv -f fromEncoding -t toEncoding inputFile > outputFile   converting the coding of characters from one format to another   [man]
            14. # find . -maxdepth 1 -name *.jpg -print -exec convert     batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)   [man]
            15. # ln -s file1 lnk1    create a symbolic link to file or directory   [man]
            16. # ln file1 lnk1        create a physical link to file or directory   [man]
            17. # ls             view files of directory   [man]
            18. # ls -F        view files of directory   [man]
            19. # ls -l         show details of files and directory   [man]
            20. # ls -a         show hidden files   [man]
            21. # ls *[0-9]*            show files and directory containing numbers   [man]
            22. # lstree       show files and directories in a tree starting from root(2)   [man]
            23. # mkdir dir1          create a directory called 'dir1'   [man]
            24. # mkdir dir1 dir2   create two directories simultaneously   [man]
            25. # mkdir -p /tmp/dir1/dir2 create a directory tree   [man]
            26. # mv dir1 new_dir            rename / move a file or directory   [man]
            27. # pwd        show the path of work directory   [man]
            28. # rm -f file1           delete file called 'file1'   [man]
            29. # rm -rf dir1          remove a directory called 'dir1' and contents recursively   [man]
            30. # rm -rf dir1 dir2   remove two directories and their contents recursively   [man]
            31. # rmdir dir1           delete directory called 'dir1'   [man]
            32. # touch -t 0712250000 file1         modify timestamp of a file or directory - (YYMMDDhhmm)   [man]
            33. # tree        show files and directories in a tree starting from root(1)   [man] 

18. File search:
            i. # find / -name file1        search file and directory into root filesystem from '/'   [man]
            ii.# find / -user user1   search files and directories belonging to 'user1'   [man]
            iii.# find /home/user1 -name \*.bin     search files with '. bin' extension within directory '/ home/user1'   [man]
            iv. # find /usr/bin -type f -atime +100             search binary files are not used in the last 100 days   [man]
            v. # find /usr/bin -type f -mtime -10   search files created or changed within 10 days   [man]
            vi. # find / -name *.rpm -exec chmod 755 '{}' \;        search files with '.rpm' extension and modify permits   [man]
            vii. # find / -xdev -name \*.rpm          search files with '.rpm' extension ignoring removable partitions as cdrom, pen-drive, etc.…   [man]
            viii. # locate \*.ps        find files with the '.ps' extension - first run 'updatedb' command   [man]
            ix. # whereis halt         show location of a binary file, source or man   [man]
            x. # which halt            show full path to a binary / executable   [man]
19. Mounting a Filesystem:
            a. # fuser -km /mnt/hda2          force umount when the device is busy   [man]
            b. # mount /dev/hda2 /mnt/hda2         mount disk called hda2 - verify existence of the directory '/ mnt/hda2'   [man]
            c. # mount /dev/fd0 /mnt/floppy         mount a floppy disk   [man]
            d. # mount /dev/cdrom /mnt/cdrom    mount a cdrom / dvdrom   [man]
            e. # mount /dev/hdc /mnt/cdrecorder mount a cdrw / dvdrom   [man]
            f. # mount /dev/hdb /mnt/cdrecorder mount a cdrw / dvdrom   [man]
            g. # mount -o loop file.iso /mnt/cdrom           mount a file or iso image   [man]
            h. # mount -t vfat /dev/hda5 /mnt/hda5          mount a Windows FAT32 file system   [man]
            i. # mount /dev/sda1 /mnt/usbdisk      mount a usb pen-drive or flash-drive   [man]
            j. # mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share             mount a windows network share   [man]
            k. # umount /dev/hda2            unmount disk called hda2 - exit from mount point '/ mnt/hda2' first   [man]
            l. # umount -n /mnt/hda2        run umount without writing the file /etc/mtab - useful when the file is read-only or the hard disk is full   [man] 

20. Disk space:
            a. # df -h          show list of partitions mounted   [man]
            b. # dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n     show the used space by installed deb packages, sorting by size (debian, ubuntu and alike)   [man]
            c. # du -sh dir1            estimate space used by directory 'dir1'   [man]
            d. # du -sk * | sort -rn show size of the files and directories sorted by size   [man]
            e. # ls -lSr |more          show size of the files and directories ordered by size   [man]
            f. # rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n   show the used space by rpm packages installed sorted by size (fedora, redhat and alike)   [man] 


20. Users and Groups:
            a. # chage -E 2005-12-31 user1           set deadline for user password   [man]
            b. # groupadd [group]             create a new group   [man]
            c. # groupdel [group] delete a group   [man]
            d. # groupmod -n moon sun    rename a group from moon to sun   [man]
            e. # grpck        check correct syntax and file format of '/etc/group' and groups existence   [man]
            f. # newgrp - [group]   log into a new group to change default group of newly created files   [man]
            g. # passwd     change password   [man]
            h. # passwd user1        change a user password (only by root)   [man]
            i. # pwck         check correct syntax and file format of '/etc/passwd' and users existence   [man]
            j. # useradd -c "User Linux" -g admin -d /home/user1 -s /bin/bash user1       create a new user "user1" belongs "admin" group   [man]
            k. # useradd user1       create a new user   [man]
            l. # userdel -r user1      delete a user ( '-r' eliminates home directory)   [man]
            m. # usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1     change user attributes as description, group and other   [man] 


21. Permits on Files:
a. # chgrp group1 file1             change group of files   [man]
b. # chmod ugo+rwx directory1   set permissions reading (r), write (w) and (x) access to users owner (u) group (g) and others (o)   [man]
c. # chmod go-rwx directory1     remove permits reading (r), write (w) and (x) access to users group (g) and others (or   [man]
d. # chmod u+s /bin/file1        set SUID bit on a binary file - the user that running that file gets same privileges as owner   [man]
e. # chmod u-s /bin/file1         disable SUID bit on a binary file   [man]
f. # chmod g+s /home/public set SGID bit on a directory - similar to SUID but for directory   [man]
g. # chmod g-s /home/public   disable SGID bit on a directory   [man]
h. # chmod o+t /home/public set STIKY bit on a directory - allows files deletion only to legitimate owners   [man]
i. # chmod o-t /home/public    disable STIKY bit on a directory   [man]
j. # chown user1 file1 change owner of a file   [man]
k. # chown -R user1 directory1          change user owner of a directory and all the files and directories contained inside   [man]
l. # chown user1:group1 file1             change user and group ownership of a file   [man]
m. # find / -perm -u+s             view all files on the system with SUID configured   [man]
n. # ls -lh         show permits on files   [man]
o. # ls /tmp | pr -T5 -W$COLUMNS divide terminal into 5 columns   [man]

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

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

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


25. YUM packages tool (Fedora, RedHat and alike):
# yum -y install [package]        download and install a rpm package   [man]
# yum localinstall [package.rpm]        That will install an RPM, and try to resolve all the dependencies for you using your repositories.   [man]
# yum -y update          update all rpm packages installed on the system   [man]
# yum update [package]          upgrade a rpm package   [man]
# yum remove [package]         remove a rpm package   [man]
# yum list        list all packages installed on the system   [man]
# yum search [package]           find a package on rpm repository   [man]
# yum clean [package]            clean up rpm cache erasing downloaded packages   [man]
# yum clean headers    remove all files headers that the system uses to resolve dependency   [man]
# yum clean all            remove from the cache packages and headers files   [man]

26. DEB packages (Debian, Ubuntu and like):

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

27. APT packages tool (Debian, Ubuntu and alike):
# apt-cache search [package]               returns list of packages which corresponds string "searched-packages"   [man]
# apt-cdrom install [package] install / upgrade a deb package from cdrom   [man]
# apt-get install [package]       install / upgrade a deb package   [man]
# apt-get update          update the package list   [man]
# apt-get upgrade        upgrade all of the installed packages   [man]
# apt-get remove [package]     remove a deb package from system   [man]
# apt-get check            verify correct resolution of dependencies   [man]
# apt-get clean             clean up cache from packages downloaded   [man]

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

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

30. Character set and Format file conversion:
# dos2unix filedos.txt fileunix.txt       convert a text file format from MSDOS to UNIX   [man]
# recode ..HTML < page.txt > page.html       convert a text file to html   [man]
# recode -l | more        show all available formats conversion   [man]
# unix2dos fileunix.txt filedos.txt      convert a text file format from UNIX to MSDOS   [man]

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

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

33. Filesystem SWAP:
# mkswap /dev/hda3   create a swap filesystem   [man]
# swapon /dev/hda3    activating a new swap partition   [man]
# swapon /dev/hda2 /dev/hdb3           activate two swap partitions   [man]

34. Backup:
# find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2          find all files with '.log' extention and make an bzip archive   [man]
# find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents find and copy all files with '.txt' extention from a directory to another   [man]
# dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz'   make a backup of a local hard disk on remote host via ssh   [man]
# dd if=/dev/sda of=/tmp/file1           backup content of the harddrive to a file   [man]
# dd if=/dev/hda of=/dev/fd0 bs=512 count=1         make a copy of MBR (Master Boot Record) to floppy   [man]
# dd if=/dev/fd0 of=/dev/hda bs=512 count=1         restore MBR from backup copy saved to floppy   [man]
# dump -0aj -f /tmp/home0.bak /home            make a full backup of directory '/home'   [man]
# dump -1aj -f /tmp/home0.bak /home            make a incremental backup of directory '/home'   [man]
# restore -if /tmp/home0.bak   restoring a backup interactively   [man]
# rsync -rogpav --delete /home /tmp   synchronization between directories   [man]
# rsync -rogpav -e ssh --delete /home ip_address:/tmp           rsync via SSH tunnel   [man]
# rsync -az -e ssh --delete ip_addr:/home/public /home/local             synchronize a local directory with a remote directory via ssh and compression   [man]
# rsync -az -e ssh --delete /home/local ip_addr:/home/public             synchronize a remote directory with a local directory via ssh and compression   [man]
# tar -Puf backup.tar /home/user         make a incremental backup of directory '/home/user'   [man]
# ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' copy content of a directory on remote directory via ssh   [man]
# ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p'           copy a local directory on remote directory via ssh   [man]
# tar cf - . | (cd /tmp/backup ; tar xf - )           local copy preserving permits and links from a directory to another   [man]

35. CDROM:
# cd-paranoia -B          rip audio tracks from a CD to wav files   [man]
# cd-paranoia --           rip first three audio tracks from a CD to wav files   [man]
# cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force            clean a rewritable cdrom   [man]
# cdrecord -v dev=/dev/cdrom cd.iso             burn an ISO image   [man]
# gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -     burn a compressed ISO image   [man]
# cdrecord --scanbus   scan bus to identify the channel scsi   [man]
# dd if=/dev/hdc | md5sum    perform an md5sum on a device, like a CD   [man]
# mkisofs /dev/cdrom > cd.iso            create an iso image of cdrom on disk   [man]
# mkisofs /dev/cdrom | gzip > cd_iso.gz        create a compressed iso image of cdrom on disk   [man]
# mkisofs -J -allow-leading-dots -R -V          create an iso image of a directory   [man]
# mount -o loop cd.iso /mnt/iso          mount an ISO image   [man]

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

37. Microsoft Windows networks (samba)
# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share     mount a windows network share   [man]
# nbtscan ip_addr       netbios name resolution   [man]
# nmblookup -A ip_addr        netbios name resolution   [man]
# smbclient -L ip_addr/hostname       show remote shares of a windows host   [man]
# smbget -Rr smb://ip_addr/share       like wget can download files from a host windows via smb   [man]

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

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

40. Others useful commands:
# alias hh='history'       set an alias for a command - hh = history   [man]
# apropos ...keyword display a list of commands that pertain to keywords of a program , useful when you know what your program does, but you don't know the name of the command   [man]
# chsh change shell command   [man]
# chsh --list-shells        nice command to know if you have to remote into another box   [man]
# gpg -c file1   encrypt a file with GNU Privacy Guard   [man]
# gpg file1.gpg            decrypt a file with GNU Privacy Guard   [man]
# ldd /usr/bin/ssh         show shared libraries required by ssh program   [man]
# man ping      display the on-line manual pages for example on ping command - use '-k' option to find any related commands   [man]
# mkbootdisk --device /dev/fd0 `uname -r`    create a boot floppy   [man]
# wget -r www.example.com download an entire web site   [man]
# wget -c www.example.com/file.iso             download a file with the ability to stop the download and resume later   [man]
# echo 'wget -c www.example.com/files.iso' | at 09:00          start a download at any given time   [man]
# whatis ...keyword    displays description of what a program does   [man]
# who -a          show who is logged on, and print: time of last system boot, dead processes, system login processes, active processes spawned by init, current runlevel, last system clock change   [man]

Linux has 7 different run levels (or operating modes):
  • rc0.d - System Halted
  • rc1.d - Single User Mode
  • rc2.d - Single User Mode with Networking
  • rc3.d - Multi-User Mode - boot up in text mode
  • rc4.d - Not yet Defined
  • rc5.d - Multi-User Mode - boot up in X Windows
  • rc6.d - Shutdown & Reboot