Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
305 KB
Nội dung
Objectives In this lesson, you will learn to: • Define the role and features of the Linuxshell • Use the shell as a command interpreter • Create user-defined variables • Use shell environment variables • Create shell scripts in Linux Introduction to the Shell • A shell: • Is a utility program with the Linux system that serves as an interface between the user and the kernel • Plays an important role of command interpretation for the kernel • The adjacent figure shows the architecture of the Linux operating system. Features of a Shell • The shell has the following features: • Interactive processing • Background processing • Input/output redirection • Pipes • Shell scripts • Shell variables • Programming language constructs • Command history • Job control • File name completion • Command completion Shell as a Command Interpreter • The shell: • Reads the command • Locates the file in the directories containing utilities • Loads the utility into memory • Executes the utility Shell as a Command Interpreter (Contd.) The shell creates a child shell for the execution of a utility The shell requests the kernel for any hardware interaction Unix Shells • Some of the popular Unix Shells are: • Bourne Shell: sh is the executable filename for this shell • C Shell: csh is the executable filename for this shell • Korn Shell: The executable filename is ksh • Restricted Shell: Is typically used for guest logins Linux Shells • Some of the popular shells available in Linux are: • Bash: • Is an acronym for ‘Bourne Again Shell’ and is the default shell for most Linux systems • Uses the symbolic link sh • Tcsh: • Is an acronym for ‘Tom’s C shell’ also known as the TC shell • It is an enhancement of the C shell • Uses the symbolic link csh • Can be executed by using either csh or tcsh at the shell prompt • ASH: • Is usually suitable on machines that have very limited memory • Uses the symbolic link, bsh in Fedora Core 2 Changing the Default Shell • The default shell of the user is specified in the /etc/passwd file. • The chsh command can be used for changing the default shell for the user [steve@linuxpc1 /etc]$ chsh ↵ Changing shell for Steve. Password: New shell [/bin/bash]: /bin/csh Shell changed. • The full path for the new shell has to be given when changing the shell. • After the default shell has been changed from Bash to csh, the entry for the user, steve, in the passwd file changes as follows steve:x:503:513:steve walker:/home/steve:/bin/csh Shell Scripts • A Shell script: • Stores a sequence of frequently used Linux commands in a file • Enables the shell to read the file and execute the commands in it • Allows manipulation of variables, flow-of-control and iteration constructs that make programming possible The echo Command • The echo Command • Displays messages on the screen • Displays the text, enclosed within double-quotes • Puts a newline character at the end of the text by default $ echo "This is an example of the echo command" ↵ This is an example of the echo command $ _ [...]...Executing a Shell Script • A shell script can be executed: • In a new shell by 1 First granting the execute permission to the specified shell script 2 Then invoking its name at the $ prompt $ chmod u+x magic ↵ [Change File Access Permission] $ magic ↵ [Execute the shell script] • In the current shell by using the dot (.) command with the script name in the Bashshell $ magic ↵ [In the Bash shells] Creating... the shell prompt, $ • PS2: Sets the value of the secondary prompt • LOGNAME: Contains the user’s login name • SHLVL: Contains the shell level of the current shell • SHELL: Stores user’s default shell Objectives In this lesson, you will learn to: • • • • • • • Use the grave ascent, expr command, and test command Use conditional execution constructs Implement iteration constructs Use functions in shell. .. executable program • PS1: Contains the shell prompt, the $ symbol You can change the shell prompt by setting the value of this variable to the desired prompt • PS2: Sets a value for the secondary prompt, which is by default > • LOGNAME: Contains the user’s login name • SHLVL: Contains the shell level that you are currently working in • SHELL: Stores the user’s default shell The env Command • • The env Command... fi } echo "Enter a file name" read fname ftype • • Shell scripting also allows you to pass arguments to function The syntax to pass arguments to a function is: [ arg1 arg2 ] Debugging Shell Scripts • • Linux facilitates debugging of shell scripts by using the following two options: • The –v option: Echoes the statements written in a shell script on the terminal, before actually executing... value in the child shell without the parent shell knowing about it, as shown in the following example: $ continent=Africa $ echo "$continent" Africa $ bash [Creates a new shell] $ echo "$continent" [There is no response] $ continent=Asia [Gives new value Asia to continent] $ echo "$continent" Asia Press d $ exit [Displays exit and returns to parent shell] The export variable is a global variable... used, it should be preceded by a backslash (\), otherwise, the shell will interpret it as a wildcard character The if Construct • • • Linux provides the if Construct to perform decision making in shell scripts The if construct is usually used in conjunction with the test command if then [else ] fi Linux also provides the if elif construct, the syntax of which is... number of arguments for delete" else rm $* fi else echo "Invalid argument - must be 'c' or 'd'" fi The bash_ profile File • • • • • The bash_ profile file is used to set the environment variable that are not set automatically It is a special shell script that is executed as soon as the user logs in The bash_ profile file contains the standard settings for the user such as, the type and path of terminal... a shell script The syntax to use the read command is: $ read The read command, on execution, waits for the user to enter a value for the variable When the user presses key after entering the value, the remaining part of the shell script, if any, is executed Local and Global Shell Variables • • A local variable is a variable that can be given a different value in the child shell. .. the statements in the script preceded by a + symbol, if the statement has successfully been executed To debug the shell script, you can use the sh command with the –v and –x options at the shell prompt: $ sh –v or $ sh –x Sample Shell Scripts Writing a shell script to check whether or not a given string is a palindrome: echo "Enter string" read str len=`echo $str |... Variables in shell scripts: • are not declared as integers or characters • are treated as character strings • can be mathematically manipulated • do not have to be explicitly declared • can be created at any point of time by a simple assignment of value The syntax for creating a variable is: = Variables can be created: • In shell scripts: A variable created within a shell script