Presentation on theme: "Using Linux Commands Lab 4. Using the Shell in Linux Commands Syntax Options: could be added to the commands to change their behavior (-a, -la, --help)"— Presentation transcript:
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.
Use the man command man = manual To reading a manual and return to the shell prompt within the open terminal press q
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 = readw = writex = 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 12345678910 d ≡ directory - ≡ file Permission for the owner Permission for the group Permission for the others 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)Binarypermission 00+0+0000--- 10+0+1001--x 20+2+0010-w- 30+2+1011-wx 44+0+0100r-- 54+0+1101r-x 64+2+0110rw- 74+2+1111rwx 725 4+2+10+2+04+0+1 rwx-w- r-x If the permission is
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. chmodwho + permissionfilename - uThe user who owns the file (this means “you.”) gThe group the file belongs to. oThe 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------ owner(u) group(g) other(o) all(a) --------- $ chmod u+rw file-name rw-------
Creating directories (Exercise) cd. 1.Go to your home directory. Type cd. pwd 2.Make sure that you got to your home directory, type pwd 3.Create a new directory called test in your home directory: 4.Check the permissions of the directory by typing: ((The -d option tells ls not to list the contents of the test directory; just show us the listing for the directory itself)). 5.Suppose that you want to prevent everyone else from using or viewing the files in this directory: 6.Make the test directory your current directory : $ mkdir test $ chmod 700 test $ cd test 17 $ ls –ld test drwxr-xr-x 2 chris sales 1024 May 18 21:30 test
Creating 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. 19 $ ls –ld testprovide 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 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 20
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 23
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. 27
$ ls a* The first example matches any file that begins with a apple $ ls g* The second example matches any file that begins with g grape grapefruit $ ls g*t This example matches any file beginning with g and ending in t grapefruit $ ls *e* matches any file that contains e in the name apple grape grapefruit watermelon $ ls *n* matches any file that contains n in the name banana watermelon Using file-matching metacharacters Using file-matching metacharacters This matches any number of characters * 29
Using file-matching metacharacters Using file-matching metacharacters This matches any one(single) character? $ ls ????e The first example matches any five-character file that ends in e Apple grape $ ls g???e* The second matches any file that begins with g and has e as its fifth character grape grapefruit 30
Using file-matching metacharacters Using file-matching metacharacters This matches any one of the characters between the brackets […] $ ls [abw]* any file beginning with a,b or w is matched apple banana watermelon $ ls [agw] * [ne] any file that begins with a,g or w and also ends with either n or e is matched apple grape watermelon $ ls [a-g] * any filenames beginning with letter from a through g are matched apple banana grape grapefruit 31
Using file-redirection metacharacters $ 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. $ echo “I finished the project on $(date)” > ~/projects < Direct the contents of a file to the command overwriting > Direct the output of a command to a file, overwriting any existing file adding >> 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 33
echo Command Use echo command to display text or value of variable. echo [options] [string, variables...] 37
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. 38
commandvariable Double “ “ Back ` ` $echo “My working directory is `pwd`” The output: My working directory is /home/nora/Desktop - Single ‘ ‘ Back ` ` $echo ‘My working directory is `pwd`’ The output: My working directory is `pwd` - Double “ ” $echo “My working directory is pwd” The output: My working directory is pwd $echo “the home is $HOME” The output: the home is /home/nora Single ‘ ‘ $echo ‘My working directory is pwd’ The output: My working directory is pwd $echo ‘the home is $HOME’ The output: the home is $HOME 39
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 40
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 41