| 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 directorycd ~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 |  
                                                                                            | 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 |  
                                                                                            |  | 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 |  top commands1 → show per-CPU stats.
 t → cycle task/CPU display.
 P → sort processes by CPU usage.
 T → sort by time.
 q → quit.
 Process commands
                        
                                                                                    
                                                                                            | ps aux | BSD style ouptut |  
                                                                                            | fg %1 | jobs |  
                                                                                            | kill -1 13456 | kill process id 13456 |  
                                                                                            | ps -eo pid,comm,cmd,start,etime | to get process elapsed time |  SIGNALS: HUP, INT, KILL, TERM,CONT,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 directories |  
                                                                                            | 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 |  
                                                                                            | 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 %optionsfind ~
 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
                        
                            find ~ \( -type f -not -perm 0600 \) -or \( -type d -not -perm -700 \) find -actions
                        
                            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 |  
                                                                                            | alias | create an alias for command |  system commands
                        
                                                                                    
                                                                                            | dmidecode | provides valueable inisights into system hardware configuration |  
                                                                                            | lscpu | provides detailed information about cpu |  |  | 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 |  
                                                                                            | 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 |  
                                                                                            |  | 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..2011}-0{1..9} {2009..2011}-{10..12} | creates a directory for 12 months in 2009 to 2011 |  Environment
                        
                                                                                    
                                                                                            | printenv | Print part of all of the environment |  
                                                                                            | set | set shell options |  
                                                                                            | export | export environment to subsequently executed programs |  
                                                                                            | 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 |  
                                                                                            | 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 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 playground.tgz -T -
 rsync -av --delete --rsh=ssh /etc /home /usr/local remote-sys:/backup
 
 To copy ssh public to remote machine
 ssh-copy-id -i xxxxx_ext_2023-08-22.pub username@hostname
 |  - 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_sorted_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/password | 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  > newfile.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 |  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
 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 |  
                                                                                            | genisoimage | 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 )
 Generate 1GB file using uurandom
 dd if=/dev/urandom of=sample.txt bs=64M count=16
 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 |  
                                                                                            | echo "frperg grkg" |  tr a-zA-Z n-za-mN-ZA-M | secret text | ROT13 Decoding |  -, +, ! : deleted, added, line changes.
 $diff -Naur file1.txt file2.txt > diff_file.txt
 $patch < diff_file.txt
 patching file file1.txt
 
 rotate by 13 places (ROT13)
 Inode cheats
                        
                                                                                    
                                                                                            | Backup of superblock | dumpe2fs /dev/sdX | grep -i superblock |  
                                                                                            | Restore of superblock | fsck -b 32768 /dev/sdX |  
                                                                                            | dumps ext2/ext3/ext4 filesystem info including inode locations | dumpe2fs /dev/sdX |  
                                                                                            | interactive tool to inspect inodes | debugfs /dev/sdX |  
                                                                                            | shows inode number and metadata | stat filename |  | 
            
Created By
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by Sathyanarayanan