Using Linux Commands Lab 3
Using the Shell in Linux Commands Syntax Options: could be added to the commands to change their behavior (-a , -la , --help) Argument: is an extra piece of information (ex.: a file name) Environment variables : where the shell stores information that may be useful to the user’s shell session. Examples of environment variables include $SHELL (which identifies the shell you are using )and$PS1 (which defines your shell prompt) Meta characters: that have special meaning to the shell (>) used to direct the output of a command to a file. ( | ) pipe the output to another command.
Getting Help with Using the Shell Use --help with the command (date --help) Use the man command man = manual To reading a manual and return to the shell prompt within the open terminal press q Shell manual pages : man bash or man command name Other : command - -help or help command name
Understanding file permission Why Keep users from accessing other users’ private files To protect important system files permissions bits rwx rwx rwx Owner’s| Group | Others r = read w = write x = execute $ ls –al -rw-rw-r-- 1 chris sales 1024 May 10 01:49 .. drwxr-xr-x 2 chris sales 2204 May 18 21:30 .bash_history
Understanding file permission For Files: "Read" means to be able to open and view the file "Write" means to overwrite or modify the file "eXecute" means to run the file as a binary files are executable only if they are programs and shell scripts, not useful for data files. For Directories: "Read" means to be able to view the contents of the directory "Write" means to be able to create new files/directories or delete files/directories within the directory "eXecute" means to be able to "Change Directory" (cd) into the directory = permission to access the directory. How to view the permission for a file or directory? $ ls -al
Understanding file permission 1 2 3 4 5 6 7 8 9 10 d ≡ directory - ≡ file Permission for the group Permission for the others Permission for the owner if the permission field is - the permission is not given.
Understanding file permission Only the owner of a file can change its permission. How to set file permission? Use the command chmod(change file mode bits). chmod has two notations: Numeric(octal) notation. Symbolic notation.
Change permission on a file - numeric the file permissions aren't represented by characters. Instead, they are represented by a three-digit octal number. 4 = read (r) 2 = write (w) 1 = execute (x) 0 = no permission (-) Octal# (421) Binary permission 0+0+0 000 --- 1 0+0+1 001 --x 2 0+2+0 010 -w- 3 0+2+1 011 -wx 4 4+0+0 100 r-- 5 4+0+1 101 r-x 6 4+2+0 110 rw- 7 4+2+1 111 rwx If the permission is 725 4+2+1 0+2+0 4+0+1 rwx -w- r-x
Change permission on a file – symbolic Permissions are represented by characters rwx This gives “who” the specified permissions for a given filename. The “who” is a list of letters re going to be giving permissions to. These may be specified in any order. + add the selected permission. - remove the selected permission. chmod who + permission filename - u The user who owns the file (this means “you.”) g The group the file belongs to. o The other users not in the file’s group. a all of the above (an abbreviation for ugo)
Change permission on a file For r, w, x octal value is 4,2,1 respectively $ chmod 777 file-name rwxrwxrwx $ chmod 755 file-name rwxr-xr-x owner(u) group(g) other(o) all(a) rwxrwxrwx $ chmod a-w file-name r-xr-xr-x $ chmod go-rwx file-name rwx------ 777 -- > 1. 7 for r which is 4+2+1 2. 7 for w which is 4+2+1 3. 7 for x which is 4+2+1 755 1. 7 for r which is 4+2+1 2. 5 for w which is 4+0+1 3. 5 for x which is 4+0+1 owner(u) group(g) other(o) all(a) --------- $ chmod u+rw file-name rw-------
Creating files and directories Use the command mkdir to create a new directory to the current working directory. $ mkdir directoryName
Creating files and directories Go to your home directory. Type cd. Make sure that you got to your home directory, type pwd Create a new directory called test in your home directory: Check the permissions of the directory by typing: Suppose that you want to prevent everyone else from using or viewing the files in this directory: Make the test directory your current directory : $ mkdir test $ ls –ld test drwxr-xr-x 2 chris sales 1024 May 18 21:30 test $ chmod 700 test $ cd test
Creating files and directories To create a directory(test) in the Desktop, we have two ways: mkdir /home/chris/Desktop/test cd /home/chris/Desktop mkdir test NOTE: The -d option tells ls not to list the contents of the test directory; just show us the listing for the directory itself. $ ls –ld test provide a long listing of the test directory, without showing the contents of the test directory.
Moving, copying, and deleting files The command mv moves or renames files. - The simplest form of use is: mv oldfilename newfilename. it will rename the file a.kwd to a new name b.kwd $ mv file1 file2 Renaming - It will also move a file to a directory. If you use it in the form: mv filename directoryname it will move the file into the named directory keeping its old name $ mv file2 \test or mv file2 test
Moving, copying, and deleting files To copy files, you use the cp command. The following will copy file to file2. Note that if file2 doesn't exist, it'll be created, but if it exists, it'll be overwritten: $ cp file file2 If you want to copy file into directory dir1: $ cp file dir1 To remove a file from the current directory rm filename $ rm file $ rm * * remove all files in the current directory
Using file-matching metacharacters Create empty files To create an empty file in the current directory use the command touch $ touch file1 file2 file3 $ touch apple banana grape grapefruit watermelon $ ls -l Using file-matching metacharacters Metacharacters help to match one or more files without typing each filename completely. * This matches any number of characters(zero or more characters). ? This matches any one(single) character. […] This matches any one of the characters between the brackets, which can include a dash-separated rang of letters or numbers.
Using file-matching metacharacters This matches any number of characters * $ ls a* apple $ ls g* grape grapefruit $ ls g*t grapefruit $ ls *e* apple grape grapefruit watermelon $ ls *n* banana watermelon
Using file-matching metacharacters This matches any one(single) character ? $ ls ????e Apple grape $ ls g???e* grape grapefruit
Using file-matching metacharacters This matches any one of the characters between the brackets […] $ ls [abw]* apple banana watermelon $ ls [agw] * [ne] apple grape watermelon $ ls [a-g] * apple banana grape grapefruit
Using file-redirection metacharacters < Direct the contents of a file to the command $ mail root < ~/.bashrc the contents of the .bashrc file in the home directory are sent in a mail message to the computer's root user. > Direct the output of a command to a file, overwriting any existing file $ echo “I finished the project on $(date)” > ~/projects >> Direct the output of a command to a file, adding the output to the end of existing file $ echo “I finished the project on $(date)” >> ~/projects
echo Command Use echo command to display text or value of variable. echo [options] [string, variables...]
Quotes "Double Quotes“ variables and command substitution(except \ and $). 'Single quotes‘ protects everything enclosed between two single quote marks. It is used to turn off the special meaning of all characters ( NO substitution of variables and commands). `Back quote` Used with commands only. To execute command.
command variable $echo “My working directory is `pwd`” Double “ “ Back ` ` $echo “My working directory is `pwd`” The output: My working directory is /home/nora/Desktop - Single ‘ ‘ $echo ‘My working directory is `pwd`’ My working directory is `pwd` Double “ ” $echo “My working directory is pwd” My working directory is pwd $echo “the home is $HOME” the home is /home/nora $echo ‘My working directory is pwd’ $echo ‘the home is $HOME’ the home is $HOME
echo Command Options -n Do not output the trailing new line. -e Enable interpretation of the following backslash escaped characters in the strings: \a alert (bell) \b backspace \n new line \t horizontal tab
Examples of quoting special characters ubuntu@ubuntu:~$ echo –n “operating system” operating system ubuntu@ubuntu:~$ $ echo –e “operating \t system” Operating system $ echo -e "An apple a day keeps away \a\t\tdoctor\n" An apple a day keeps away doctor
References http://www.podgrid.org/linux-bible/linux-bible-page109.html