CHAPTER 1 UNIX FOR NONPROGRAMMERS By Uur Halc
CHAPTER 1 UNIX FOR NONPROGRAMMERS By Uğur Halıcı
Unix for non programmers 1 When you connected via terminal to a machine running Unix, you will have a window to enter you commands $ Terminal window Enter your command here system prompt
MANUAL 2 The man command is used to display the manual entry associated with word entered as argument. The -k option is used to display a list of manual entries that contain entered keyword. man [chapter] word man -k keyword
CREATING A FILE 3 Use editors vi, emacs, pico or the cat command $ cat >myfile # $ is system prompt
CREATING A FILE 4 Use editors vi, emacs, pico or the cat command $ cat >myfile command # $ is system prompt output redirection all characters that follow up # to a new line are comment
CREATING A FILE 5 Use editors vi, emacs, pico or the cat command $ cat >myfile # $ is system prompt Ali Ahmet Can ^D $ ^D is used to indicate end of input
CREATING A FILE 6 Use editors vi, emacs, pico or the cat command $ cat >myfile # $ is system prompt Ali Ahmet Can ^D $ system prompt appears to enter a new command A file with name “myfile” is created whose content is : Ali Ahmet Can
CREATING A FILE 7 Use editors vi, emacs, pico or the cat command $ cat >myfile # $ is system prompt Ali Ahmet Can ^D $ home 122 Current directory halici myfile Ali Ahmet Can
LISTING THE CONTENTS OF A DIRECTOTY : ls 8 ls –adgl. R {filename}* {directoryname}* note: * means zero or more and + means one or more Options are: a : list also hidden files, i. e. the filenames starting with. d : directories g : include info about file group l : long listing R: recursively list the contents of subdirectories
LISTING THE CONTENTS OF A DIRECTOTY : ls 9 $ ls myfile $ ls –l myfile r- rww-- rr -- -- rr- -- - 11 halici 14 15 11: 41 myfile 14 April 15
LISTING THE CONTENTS OF A DIRECTOTY : ls 10 $ ls myfile $ ls –l myfile r- rww-- rr -- -- rr- -- - 11 halici 14 15 11: 41 myfile 14 April 15 file name # of links file type and permissions length owner date time
file type and permissions 11 - rw- r-- file type permissions for owner permissions for group permissions for others
LISTING A FILE: cat/more/page/head/tail 12 cat more, page head tail : concatanate : to display in parts without scroll : first n lines, for default n=10 : last n lines, for default n=10 $ cat myfile Ali Ahmet Can $ head -2 myfile Ali Ahmet $ tail -2 myfile Ahmet Can $
RENAMING A FILE : mv 13 mv –i old. File new. File mv –i {file name}* directory. Name mv –i old. Directory new. Directory The mv command in the first form renames old. File as new. File. The second form moves collection files to a directory. The last form is used to move the files in old. Directoty to new. Directory. The option -i prompts confirmation if new. File. Name already exists
RENAMING A FILE : mv 14 $ mv myfile my. New. File $ ls my. New. File $ cat my. New. File Ali Ahmet Can $ home 122 Current directory halici myfile my. Newfile
MAKING A DIRECTORY: mkdir 15 mkdir new. Directory. Name $ mkdir class $ ls –l -rw-r--r-- 1 halici 14 April 15 11: 41 my. New. File drwxr-xr-x 2 halici 512 April 15 11: 50 class/ Current directory halici my. Newfile class
MAKING A DIRECTORY: mkdir 16 mkdir new. Directory. Name $ mkdir class $ ls –l -rw-r--r-- 1 halici 14 April 15 11: 41 my. New. File drwxr-xr-x 2 halici 512 April 15 11: 50 class/ $ mv my. New. File class $ ls class halici $ ls class my. New. File $ ls –R class my. Newfile class: my. New. File Current directory class my. Newfile
MOVING TO A DIRECTORY: cd, chdir 17 mkdir new. Directory. Name $ pwd # print working directory /home 122/halici Current directory halici class my. Newfile
MOVING TO A DIRECTORY: cd, chdir 18 mkdir new. Directory. Name $ pwd # print working directory /home 122/halici $ cd class $ pwd /home 122/halici/class $ Current directory halici class my. Newfile
COPYING A FILE : cp 19 cp –i old. File. Name new. File. Name cp –ir {file name}* directory. Name options: i: confirm r: recursively copy subdirectories $ cp my. New. File my. Second. File $ ls my. New. File my. Second. File $ Current directory halici class my. Newfile my. Secondfil e
DELETING A DIRECTORY: rmdir 20 Current directory $ pwd /home 122/halici/class halici class my. Newfile my. Secondfil e
DELETING A DIRECTORY: rmdir 21 $ pwd / home 122/halici/class $ cd. . # change to parent directory $ pwd / home 122/halici $ ls class $ rmdir class rmdir: class: directory not empty $ Current directory halici class my. Newfile my. Secondfil e
DELETING A DIRECTORY: rmdir 22 $ pwd / home 122/halici/class $ cd. . # change to parent directory $ pwd / home 122/halici $ ls class $ rmdir class rmdir: class: directory not empty $ An error message by the system is displayed. The directory is not deleted since it is not empty Current directory halici class my. Newfile my. Secondfil e
DELETING A FILE : rm 23 rm –fir {filename}* Current directory f: inhibit error messages i: inform each time r: recursivey (if filename is a directory) $ ls class my. New. File my. Second. File halici class my. Newfile my. Secondfil e
DELETING A FILE : rm 24 rm –fir {filename}* Current directory f: inhibit error messages i: inform each time r: recursivey (if filename is a directory) $ ls class my. New. File my. Second. File $rm class/* #remove all files in directory class $ls class halici class my. Newfile my. Secondfil e
DELETING A FILE : rm 25 rm –fir {filename}* Current directory f: inhibit error messages i: inform each time r: recursivey (if filename is a directory) halici $ ls class my. New. File my. Second. File $rm class/* #remove all files in directory class $ls class $ All the files under the directory class are deleted, nothing remains to list by ls class
PRINTING A FILE : lpr 26 $ cat >myclass Ali Amet Can ^D $ ls myclass $ cat myclass Ali Amet Can $ lpr myclass # send the content of the file class to printer
COUTING WORDS IN FILE: wc 27 wc -lwc {filename}* options: l: lines, w: words, $ wc –w myclass 3 $ wc –c myclass 14 $ wc myclass Ali Ahmet Can
COUTING WORDS IN FILE: wc 28 wc -lwc {filename}* options: l: lines, w: words, $ wc –w myclass 3 $ wc –c myclass 14 $ wc myclass Ali Ahmet Can no option is used, this is equivalent to –lwc all together
COUTING WORDS IN FILE: wc 29 wc -lwc {filename}* options: l: lines, w: words, $ wc –w myclass 3 $ wc –c myclass 14 $ wc myclass 3 3 14 $ myclass Ali Ahmet Can no option is used, this is equivalent to –lwc all together
COUTING WORDS IN FILE: wc 30 wc -lwc {filename}* myclass options: l: lines, w: words, Ali Ahmet Can $ wc –w myclass 3 $ wc –c myclass 14 $ wc myclass 3 3 14 $ l no option is used, this is equivalent to –lwc all together c w
FILE TYPES 31 d b c l p s regular file directory file buffered special file (such as disk drive) unbuffered special file (such as disk terminal) symbolic link pipe socket
FILE PERMISSIONS 32 rw– r-- user group others
FILE PERMISSIONS 33 r read w write regular file The process may read the contents The process may change the contents The process may x execute the file execute (which only makes sense if it is a program) directory The process can read the directory (i. e. list the names of the files that it contains) The process may add or remove files to/from the directory The process may access files in the directory or any of its subdirectories special file The process may read from the file using the read( ) system call The process may write to the file using the write( ) system call No meaning
CHANGING FILE’S PERMISSIONS: chmod 34 chmod –R change{, change}* filename+ R: recursively change modes if filename is a directory Change: cluster selection operation new permission u (user) + (add) r (read) g (group) - (remove) w (write) o (others) = (assign) x (execute) a (all)
CHANGING FILE’S PERMISSIONS: chmod 35 Examples for change{, change}* g+w add group write permission u-wx remove user write and execute permissions o+x add others execute permission u+w, g-r add write permission for user and remove read permission from group g=r give group just read permission
CHANGING FILE’S PERMISSIONS: chmod 36 $ ls –l myclass -rw-r--r-- 1 halici 14 April 15 12: 05 myclass $ chmod o-r myclass # remove read permission from others -rw-r----- 1 halici 14 April 15 12: 05 myclass
CHANGING FILE’S PERMISSIONS: chmod 37 The chmod utility allows you to specify the new permission setting of a file as an octal number setting binary octal user rwx 111 7 group rwx r-x 101 5 others rwx --000 0
CHANGING FILE’S PERMISSIONS: chmod 38 $ chmod 750 myclass $ ls –l myclass -rwxr-x--- 1 halici 14 April 15 12: 05 myclass $
CHANGING FILE’S PERMISSIONS: chmod 39 $ chmod 750 myclass $ ls –l myclass -rwxr-x--- 1 halici 14 April 15 12: 05 myclass $ Permission is set as desired
CHANGING FILE’S PERMISSIONS: chmod 40 $cat >a aaa ^D $ chmod u-w a # remove write permission from user $ ls –l a #see that it is removed -r--r--r-- 1 halici 4 April 15 12: 10 a $ rm a #delete the file a $ ls
CHANGING FILE’S PERMISSIONS: chmod 41 $cat >a aaa ^D $ chmod u-w a # remove write permission from user $ ls –l a #see that it is removed -r--r--r-- 1 halici 4 April 15 12: 10 a $ rm a #delete the file a $ ls $ The file is removed ! Deleting a file depends on not on the file’s write permission but the write permission of the directory that contains it (ie udating the content of the directory)
GROUPS 42 Suppose that I am a member of the group “ee” $ ls –lg myfile
GROUPS 43 Suppose that I am a member of the group “ee” option g stands for listing also file’s group $ ls –lg myfile
GROUPS 44 Suppose that I am a member of the group “ee” Group information $ ls –lg myfile -rw-r--r-- 1 halici 14 ee April 15 12: 20 myfile
GROUPS 45 Suppose that I am a member of the group “ee” Group information $ ls –lg myfile -rw-r--r-- 1 halici 14 ee April 15 12: 20 $ groups #list my group ee myfile
GROUPS 46 Suppose that I am a member of the group “ee” Group information $ ls –lg myfile -rw-r--r-- 1 halici 14 ee April 15 12: 20 $ groups #list my group ee myfile If I want to be added to a new group, say named “cls”, I should request the system administrator to do it.
CHANGING FILE’S GROUP : chgrp 47 chgrp –R group. Id {filename}* R: recursively changes the group of the files in a directory $ ls –lg myfile -rw-r--r-- 1 halici 14 ee April 15 12: 20 myfile $ chgrp cls myfile $ ls –lg myfile -rw-r--r-- 1 halici 14 cls April 15 12: 20 myfile
- Slides: 48