Unix Basics Unix Shell Shell in unix acts as a command interpreter between user and Unix kernel as well as provides a strong scripting language .
Following are the different types of Unix shells , B shell , /bin/sh – This is the default Unix shell for many Unix operating systems . Bourne shell was written by S. R. Bourne and its more emphasis is to use it as a scripting language rather than an interactive shell . Some of the features are : Provided support for environment variables using parameters and exportable variables. Redirection of program output and error . Command substitution using back quotes: `command`. embed a file/commands using input redirector << “for ~ do ~ done” loops “case ~ in ~ esac” for selecting and responding to a data value . C-shell /bin/csh was designed to provide the interactive features lacking in b shell such as job control and aliasing . K shell /bin/ksh – was created by David Korn and has features of both B shell and C shell along with some additional features . Bash – the Bourne again shell was developed by GNU project .It is based on B shell language and has features of C and K shells. tcsh is the default shell of FreeBSD and its descendants. Essentially it is C shell with programmable command line completion, command-line editing, and a few other features. Zsh is a shell designed for interactive use and it has many of the useful features of bash, ksh, and tcsh along with many new features.
Unix Shells configuration files : b shell —————————————————– ——————————— ——————–
shell prompt : $ executable file : /bin/sh Read on interactive/non interactive login to bash /etc/profile ~/.profile
Temporary file system used to store temporary data of programs .
/usr/
user related command , programs , librar Binary commands for all users .
/usr/bin/ Include files required by programs.. /usr/include/ Libraries for the binaries in /usr/bin/ and /usr/sbin/. /usr/lib/ system binaries for users . /usr/sbin/ shared file system /usr/share/ Source code files /usr/src/ Optional user programs and packages are installed here . /usr/local/
/var/
Directory to store dynamic files such as logs . Most programs has /var as default location for writing writing log , lock and spool fies . Lock files.
/var/lock/
Log files. /var/log/ Users’ mailboxes. /var/mail/ Spool for tasks waiting to be processed (e.g. print queues /var/spool/
and unread mail).
Unix commands Unix commands are the first thing needed by a unix sysadmin who are starting to work in unix operating system . Unix operating systems comes with online manual system which can be used to see the command details ,syntax options and examples on while working on a unix system. Unix manual can be accessed using man <command name> Unix commands are listed in following sections based on command functionality and you can scroll down to see all the sections. Unix Command Sections : 1. Wild card, 2. dir level Operation 3. File – Listing , moving 4. File Create , edit , View 5. File operation 6. Process 7. User Admin 8. System System Status 9. Environment Variable 10. Connectivity 11. Backup and recovery 12. Find files and directories You can also download a one page pdf version of the unix commands listed below.
Wild Card Characters Single character and match all wild card characters which can be used in Unix commands to substitute one or more characters
*
The * wildcard character substitutes for one or more characters in a filename. For instance, to list all the files in your directory that end with .c, enter the command ls *.c
?
? (question mark) serves as wildcard character for any one character in a filename. For instance, if you have files named prog1, prog2, prog3, and prog3 in your directory, the Unix command: ls prog?
dir level Operatio Commands to Change , make , move and remove the directory entries . Change
cd dir Change to directory d
Make
mkdir dir Create new directory d
Move
mv dir1 dir2 Rename directory d1 as d2
Remove
rmdir dir Remove directory d
File – Listing , moving Commands to list ,copy , move , rename , delete and type the files . list , no details only names
ls filename , filename with wildcard character/s.
list , details
ls -1 filename , filename with wildcard character/s.
move mo ve to dire direct ctor ory y
mv file filena name me dirn dirnam amee (wil (wildc dcar ard d ch char arac acte ter/ r/ss supp suppor orte ted) d)
copy file to other/current
cp file directory/newfile or cp directory/oldfile .
directory Copy file file file1 file1 into file2 file2 cp file1 file1 file2 file2 move mo ve (r (ren enam amee ) fil filee
mv file file1 1 fil file2 e2 Rena Rename me file file file file1 1 as as fil file2 e2
Delete the file
rm file , rm -rf directory – Recursively remove files & directly without any warning.
Remove
rm file Delete (remove) file f
file
file filename , file command tries to determine the file type , text , executable etc after comparing the values in /etc/magic .
File Create , edit , View Command/s to to create new files , edit & view existing file . vi filename , Opens a existing file or creates a new one does not vi – vi full screen editor exists. ed – Line Text editor
ed filename
count – Line, word, & char
wc filename
Text content display – List contents of file at once
cat filename
Text content display by screen : List contents of more filename file screen by screen
Concatenate – file1 & file2 into file3
cat file1 file2 >file3
File operation Commands to change owner of file, compare files , sort a file , split large file , match a pattern in a file , list difference between two files . Change read/write/execute mode chmod mode file of fil chown
chown [-R] [-h] owner[:group] file
Compare two files
cmp file1 file2
Sort Alphabetically
sort file
Sort Numerically
sort -n file
Split f into n-line pieces split [-n] f match pattern
grep pattern file Outputs lines that
diff file1 file2 Lists file differences head f Output beginning head file of file
Output end of file
tail file
Process Commands to find the Status of a process , suspend the process , stop the process , interrupt a process & kill a process . status process status stats
ps
Suspend current process CTRL/z * Interrupt processes CTRL/c * Stop screen scrolling
CTRL/s *
Resume screen scrolling CTRL/q * Sleep for n seconds
User Admin command to add user and change password of a user . add a new user login to # useradd -u 655 -g 20 -d /home/ttes testlogin loginname the system -u is userid , if not specified system takes highest available . -g group id should be existing in /etc/group , if not specified other or user is assigned. -d home directory , default is to use user as the directory name under the home directory. loginname – new login name to be created . #useradd testlogin will create a user by the name ‘testlogin’ with all default values .
password Change
passwd <user>
alias (csh/tcsh) – Create alias name1 name2 command alias (ksh/bash) – Create alias name1=”name2″ alias command alias – Remove alias
unalias name1[na2...]
System System Status Command to find quota , date , users , logged in user , finger [username] and history of Unix commands issued . Display disk quota
quota
Print date & time
date
List logged in users
who
Display current user
whoami
Output user information
finger [username]
Display recent commands
history
Environment Variable command to set and export system environment variables .
set
set command alone displays the environment variables, it is used to set options in ksh like set -o vi
export
export variable , export makes variable visible in sub shells.
Set environment variable (csh/tcsh) to value v
sentenv name v
Set environment variable (ksh/bash) to value v
export name=v example : export TERM=vt100
Connectivity Commands for conneting to other systems using telnet ,ssh , ftp , sftp , ping Connecting to a remote $telnet hostname/ip address or $telnet Telnet brings up the login prompt of remote host and expects you to enter your user host name & password .Without argument it enters command mode (telnet>) and accepts command listed by ? at telnet> prompt. Communication is not encrypted between two hosts. Securely connecting to ssh username@hostname or ssh -l username hostname a remote host Depending on ssh setting for your account you may or may not be asked a password to login. Your login/passwd will be same login password as you would use with telnet connection. Communication is encrypted between two hosts so if someone intercepts your communication he will not be able to use it. Copy files from/to remote host
ftp hostname ftp expects you to enter your username/passwd or if it is ftp only account it will require ftp account password . put , mput (multipleput) command is used to transfer files files to remote host. get , mget (multipleput) command is used to transfer files from remote host. ftp allows some limited number of commands to be executed at ftp> prompt & summary of ftp command can be found by using ? at ftp> prompt
Securely copy files from/to remote host
sftp username@hostname:remotefile localfile Communication is encrypted between two hosts.
Test the tcp/ip connectivity between two hosts
ping hostname If you can ping a host the host is reachable from the machine that you are using. Router/firewall configuration may prevent ping to succeed .