Title: Quick UNIX Tutorial
1Quick UNIX Tutorial
2Outline
- Getting help while on the system
- The shell
- Working with files directories
- Wild card characters
- Security
- I/O redirection
- pipes
- process and job control commands
3Getting access to a Unix system
- From Web Browser
- telnet//gator.uhd.edu
4Logging in the first time
- Change your password
- passwd
- To logout
- logout or exit
- Note all Unix commands are case sensitive
5Getting Help from the System
- All Unix commands are described online in a
collection of files called man pages - man command
- For help on some topic
- man -k keyword
- For more information on using the man pages
- man man
6Getting Help from the System
- Once you know the man pages you need
- man section name
- e.g. man write
- The name may be used for a command, a system
call, a library function, etc. - Each is described in a different section of the
man pages - e.g write(1) is a command to send a msg
- write(2) is a library function that writes to
a file
7Getting Help from the System
- man 2 write
- displays the man pages of write(2)
- For more information on using the man pages
- man man
8General command format
- Command -options arguments
- options/flags generally identify some optional
capabilities - some parts of a command are optional. These are
indicated in the man pages with - case sensitive
9The shell
- The Unix process that interprets your commands is
called the shell - When you login, the login process, after it
verifies the users username and password,
creates a shell process. - The shell process displays a prompt on the screen
and waits. - When the user enters a command, the shell
examines it, interprets it and either executes it
or calls another program to do so. - After the command is executed, the shell displays
the command prompt and waits again.
10The shell
- There are several Unix shells
- The Bourne shell(sh) and the C shell(csh) are the
most popular. The TC shell (tcsh) is variation
of the C shell. Bourne Again Shell (bash) is the
default on gator - To display the shell youre using
- echo SHELL
- --gt /bin/tcsh
- To change to another shell
- chsh
11Files and Directories
- Home directory
- The actual path of your home directory may be
something like /home/student/username - Note the forward slashes
12Listing contents of a directory
- Ls (list files and directories)
- ls
- The ls command lists the contents of your current
working directory. - gt ls
- Mail courses jets.com News
cs4315 g.cc junk proj3
vhdl adsrc ddm
ga mail public_html bin
exam2.cc misc resch
13Listing contents of a directory
- To generate a detailed listing
- ls -l
- to display type of file
- ls -F
- May combine flags
- ls -lF
- To generate listing of a specific directory
- ls -lF pathname
- where pathname is the path of intended directory.
14Aliases
15Configuration Files
- ls lists all files except those starting with a
dot "." - Generally, files that start with a dot are
supposed to be program configuration files - to list all files and directories in current
directory, including hidden files - ls -a
16.files
- In your home directory there are two hidden files
.login and ".cshrc". - .login login configuration file
- .bash_profile the bash initialization file
- In every directory there are . and ..
- . points to the current working directory
- .. points to the parent directory of the
current working directory.
17Wildcards
- The characters will match against one or more
characters in a file or directory name. - ls proj
- The character ? Will match against any single
character - the brackets enclose a set of characters any
one of which may match a single character in that
position. - e.g cat proj125
- cat proj1-7
18Wildcards
- a tilde at the beginning of a word expands to
the name of your home directory. - e.g ls
- cat /proj1.cc
- if you append to a user name, it refers to that
users home directory. - e.g ls smith
- lists all files in home directory of user smith
19Making Directories
- mkdir (make directory)
- mkdir name
- creates a subdirectory in current working
directory - mkdir somepath/name
- creates a subdirectory in directory somepath
20Changing to a different directory
- cd (change directory)
- cd pathname
- change current working directory to pathname.
- cd by itself will make your home directory the
current working directory. - cd .. cd to parent of current directory
- cd cd to home directory
21Pathnames
- pwd (print working directory)
-
- gt pwd
- /home/student/smith
22Copying files
- cp (copy)
- cp file1 file2
- makes a copy of file1 and calls it file2. File1
and file2 are both in current working directory. - cp pathname1/file1 pathname2
- copies file1 to pathname2
- e.g cp /tutorial/science.txt .
23Moving files
- mv (move)
- mv file1 file2
- moves (or renames) file1 to file2
- use the -i option to prevent an existing file
from being destroyed - mv -i file1 file2
- if file2 already exist, mv will ask if you
really want to overwrite it.
24Removing files and directories
- rm (remove)
- rm file1 file2
- Use the -i option for interactive remove
- rm -i proj.
25Removing files and directories
- rmdir (remove directory)
- rmdir path
- will not remove your current working directory
- will not remove a directory that is not empty
- To remove a directory and any files and
subdirectories it contains use -r (recursively) - rmdir -r path
- rmdir -ir path
26Displaying the contents of a file on the screen
- cat (concatenate)
- cat myfile
- displays the contents of myfile on monitor
- cat file1 file2 file3
- more
- displays a file on the screen one page at a time.
Use space bar to display to next page. - Head -- displays first 10 lines
- tail -- displays last 10 lines
-
27Searching the contents of a file
- Searching using more
- For example, to search myfile for the word
science, type - more myfile
- then type
- / science
- Type n to search for the next occurrence of the
word
28Searching the contents of a file
- Searching using grep
- gt grep music myfile
- To ignore upper/lower case distinctions, use the
-i option - gt grep -i music myfile
- To search for a phrase or pattern, you must
enclose it in single quotes. For example to
search for the phrase operating systems, type - grep -i 'operating systems' myfile
- grep -i 'operating systems'
29Searching the contents of a file
- Some of the other options of grep are
-
- -v display those lines that do NOT match
- -n precede each matching line with the line
number - -c print only the total count of matched lines
30Other Useful Commands
- wc (word count)
- To do a word count on myfile, type
- wc -w myfile
- To find out how many lines the file has, type
- wc -l myfile
- To do both
- wc myfile
31Other Useful Commands
- who
- lists on the screen all the users currently
logged to the system - finger username
- lists information about a user
- sort
- takes it is input from the standard input
(keyboard) and sorts the lines in alphabetical
order.
32Redirecting Input and Output
- In general, Unix commands use the standard input
(keyboard) and output (screen). - lt redirect input
- gt and gtgt redirect output
- Example
- who gt namelist
- who gtgt namelist
- sort lt namelist
- sort lt namelist gt newnamelist
- sort lt namelist gt namelist
33Redirecting Input and Output
- Another example search for the word mysort in
all the c source files in the current directory
and write the output to file1. - grep mysort .c gt file1
34Using redirection to concatenate files
- Examples
- cat file1 gt file2
- copies file1 into file2
- To concatenate files
- cat file1 file2 gt file3
- or
- cat file2 gtgt file1
35Pipes
- A pipe is a way to use the output from one
command as the input to another command without
having to create intermediary files. - Example want to see who is logged in, and you
want the result displayed alphabetically - who gt namelist
- sort namelist
- Using a pipe
- who sort
36Pipes
- Example want to get a count of the users logged
in to the system - who wc -l
- If you want to display the output of any command
one screen at a time - command more
- example
- ls -alF more
37Protecting files and directories
- The ls -l command display detailed listing of a
file, including its protection mode -
- drwxrwxrwx owner size directoryname ..
- -rwxrwxrwx owner size filename
- the first character (d or -) indicates whether it
is a file or directory name. - The following 9 character indicate the protection
mode.
38Protecting files and directories
- rwx rwx rwx
- Each group of three characters describes the
access permission read , write and execute -
- the first three settings pertain to the access
permission of the owner of the file or directory,
the middle three pertain to the group to which
the owner belongs, and the last three pertain to
everyone else.
39Access rights on files.
- r (or -), indicates read permission, that is, the
presence or absence of permission to read and
copy the file - w (or -), indicates write permission that is,
the permission to change a file - x (or -), indicates execution permission that
is, the permission to execute a file, where
appropriate - example -rwxrw-r--
40Access rights on directories.
- r allows users to list files in the directory
- w means that users may delete files from the
directory or move files into it. - Never give write permission to others to your
home directory or any of its subdirectories. - x means the right to access files in the
directory. This implies that you may read files
in the directory if you have read permission on
the individual files. - example drwxrw-r--
41Changing file access permission
- chmod (changing protection mode)
- Consider each group of three to be a 3-bit number
- example you want to set permission to
- rwx r-- ---
- 111 100 000
- 7 4 0
- chmod 740 filename
42Process job control
- A process is an executing program with a unique
ID (PID). - To display information about your processes with
their PID and status - ps
- to display a list of all processes on the system
with full listing - ps -Af
43Process job control commands
- A process may be in the foreground, in the
background, or be suspended. In general the shell
does not return the UNIX prompt until the current
process has finished executing. - To run a program in the background, append a at
the end of the command - prog1
- 1 6259
- system returns the job number and PID
44Process job control commands
- To suspend a running process
- CTRL Z
- example prog
- CTRL Z
- To background a running process
- CTRL Z
- bg
- To bring a process to forground
- fg PID
45Process job control commands
- to kill a background process
- kill PID
- to suspend a running background process
- stop PID
46Process job control commands
- Background process can not use the standard I/O.
gt Need to redirect I/O - e.g grep mysort .c
- output will be lost
- grep mysort .c gt file1
47Process job control commands
- A job is a group of one or more processes
- To list all the jobs that are in the background
- jobs
- 1 Running
- 2 - Running
- To bring a background job to the foreground
- fg job-no
- e.g fg 2
48Process job control commands
- to kill a background job
- kill job-no
- to suspend a running background job
- stop job-no
49Process job control commands
- To run a process in the background, even after
logging out -
- nohup prog1
50Compiling C programs
- cc options file
- by the default, the resulting executable is a.out
- cc prog.c
- cc -o prog prog.c
- names the resulting executable prog instead of
a.out
51Editing files
- Available editors
- vi
- emacs
- pico
- Check references on web
52Example Writing a C program on Unix
- Write a program that counts the number of non
white-space characters in a text file. Program
takes as command argument the name of the input
file and displays the output on the standard
output.
53- // Character Count Basic Algorithm
- include ltstdio.hgt
- define BLANK ' '
- define NEWLINE '\n'
- int main(int argc, char argv)
- FILE infile
- char c
- int char_count0
- // count the number of charecters in infile
- while ( (c getc(infile)) ! EOF)
- if ((c ! BLANK) (c ! NEWLINE) )
- char_count
- printf("d characters\n", char_count)
- return 0
-
54Testing the of command arguments
- if (argc !2)
-
- fprintf(stderr, " s expects 1 argument but
was given d\n", argv0, argc-1) - fprintf(stderr, "Usage s inputfile \n",
argv0) - exit(1)
int printf( char format, arg1, arg2, .) int
fprintf( FILE stream, char format, arg1, arg2,
.)
55Opening input file
- if ( (infile fopen(argv1, "r")) NULL)
-
- fprintf(stderr,"s cannot open s \n", argv0,
argv1) - exit(1)
-
File fopen(char filename, char mode)
56file modes
- "r" open text file for reading
- " w" for writing
- "a" for appending
- "r" reading and writing
- "w" for reading and writing (discard
existing file) - "a" open text file for appending
57Count and return of chars
- // count the number of charecters in infile
- while ( (c getc(infile)) ! EOF)
- if ((c ! BLANK) (c ! NEWLINE) )
- char_count
- printf(" d characters\n ", char_count)
- return 0
-
58The End of Quick Unix Tutorial