SHELL的使用
一: Shell的环境
Shell程序位于操作系统内核与用户之间,负责接收用户输入的命令,在对已输入的命令进行解释后,将需要执行的命令程序传递给操作系统内核执行,因此程序充当了一个 “命令解释器 ”的角色。如 OS中的 command.exe程序, windows中的 cmd.exe程序。
一: Shell的环境
Shell程序位于操作系统内核与用户之间,负责接收用户输入的命令,在对已输入的命令进行解释后,将需要执行的命令程序传递给操作系统内核执行,因此程序充当了一个 “命令解释器 ”的角色。如 OS中的 command.exe程序, windows中的 cmd.exe程序。
二、 Bash的主要功能
( 1) Bash功能为用户提供了方便的命令编辑环境。
( 2) Bash的命令和文件名补全功能为用户提供了快速输入命令和文件名的方式。
( 3) Bash的命令历史功能使用户可以重复执行已使用过的命令。
( 4) Bash的命令别名功能为用户提供了快速输入复杂命令的方法。
( 5) Bash支持对用户提交的作业进行控制,提供查看作业信息、调整作业成绩的运行方式等功能。
( 6) Bash允许用户将常用的命令序列定义为功能键,实现一键操作的效果。
( 7) Bash提供了丰富的变量类命令与控制结构,增强了 Shell脚本程序的灵活性。
三、
Shell变量
1、 环境变量
( 1)查看环境变量: set命令
如: set | more
( 2)显示字符串或 Shell变量的值: echo命令
如: echo $PATH
( 3)常用环境变量介绍
? USER 表示当前用户的登录名称
? UID 表示当前用户的用户号
? SHELL 表示当前用户的登录的 Shell
? HOME 表示当前用户的登录的宿主目录
? PWD 表示用户当前所在的目录
? PATH 表示当前用户的命令搜索路径
? PS1 表示当前用户的主提示符
? PS2 表示当前用户的辅助提示符
( 4)环境变量全局配置文件 “ profile ”和 “ bashrc ”
2、位置变量
3、预定义变量
4、用户自定义变量
( 1)自定义变量的设置
如: DAY=Sunday
( 2)自定义变量的查看与引用
如: echo $DAY
set | grep DAY
( 3) export 命令用于输出变量为 全局变量
如: export DAY=sunday
则变量名 DAY成为了全局变量,全局变量可以应用于所有的子 Shell
( 4)自定义变量的清除
如: unset DAY
四、 Bash常用功能
1、命令和文件名补全功能:按 Tab键
2、命令历史: history命令
命令历史查看保存文件: ~/.bash.history
命令历史清除: history -c
可以用以下方式快速地找到历史列表中的一个命令
$ history | grep cat
3、命令别名: alias
命令别名的显示: alias
命令别名的定义: alias ss=‘ls –l’
命令别名取消: alias=ss
Alias -a
1、 环境变量
( 1)查看环境变量: set命令
如: set | more
( 2)显示字符串或 Shell变量的值: echo命令
如: echo $PATH
( 3)常用环境变量介绍
? USER 表示当前用户的登录名称
? UID 表示当前用户的用户号
? SHELL 表示当前用户的登录的 Shell
? HOME 表示当前用户的登录的宿主目录
? PWD 表示用户当前所在的目录
? PATH 表示当前用户的命令搜索路径
? PS1 表示当前用户的主提示符
? PS2 表示当前用户的辅助提示符
( 4)环境变量全局配置文件 “ profile ”和 “ bashrc ”
2、位置变量
3、预定义变量
4、用户自定义变量
( 1)自定义变量的设置
如: DAY=Sunday
( 2)自定义变量的查看与引用
如: echo $DAY
set | grep DAY
( 3) export 命令用于输出变量为 全局变量
如: export DAY=sunday
则变量名 DAY成为了全局变量,全局变量可以应用于所有的子 Shell
( 4)自定义变量的清除
如: unset DAY
四、 Bash常用功能
1、命令和文件名补全功能:按 Tab键
2、命令历史: history命令
命令历史查看保存文件: ~/.bash.history
命令历史清除: history -c
可以用以下方式快速地找到历史列表中的一个命令
$ history | grep cat
3、命令别名: alias
命令别名的显示: alias
命令别名的定义: alias ss=‘ls –l’
命令别名取消: alias=ss
Alias -a
五、管道与重定向
1、标准输入输出
2、重定向:
( 1)输入重定向: <
( 2)输出重定向: >,>>(追加 )
将标准输出重定向到文件
$ ls /etc/ > etcdir
将标准输出重定向追加到文件
$ ls /etc/sysconfig/ >> etcdir
( 3)错误重定向: 2>, 2>>
将错误输出重定向到文件
$ nocmd 2> errfile
( 4) 输出与错误重定向的组合使用 :&>
将标准输出和错误输出重定向到文件
$ ls afile bfile &> errfile
3、管道
“ | ”符用于连接左右两个命令,将 “ | ”左边的命令执行结果(输出)作为 “ | ”右边命令的输入。(相当于加工处理)
使用方法:命令 1|命令 2|命令 3 …… |命令 n
使用举例 :$ ls – Rl /etc | more
$ cat /etc/passwd | wc
$ cat /etc/passwd | grep lrj
$ ps – aux |tail -2 | more
六、 Shell脚本
1、 shell脚本的特点:
( 1) shell脚本相当于 DOS中的批处理文件,是多个命令的集合
( 2) shell脚本保存在文本文件中,我们可以对其进行阅读和编辑
( 3) shell脚本由 Shell环境解释执行的,不需要在执行前进行编译
( 4) shell脚本执行 Shell程序时, Shell脚本文件需要具有可执行( X)的属性
2、基本脚本编程
( 1)建立 Shell文件
如: vi hello.sh
( 2)脚本运行环境设置
如: #!/bin/bash (注: “ #! ”与路径名之间没有空格)
( 3)注释行的使用
以 “ # ”符开始,只是起解释说明的作用
如: # This is my first HelloWorld program
( 4)脚本语句
脚本语句的内容就是我们根据需要实现某种功能而输入的一些命令集合
如: mkdir /root/aaa
touch /root/aaa/test
echo Hello!
3、脚本运行的方法(如: hello.sh为脚本文件)
( 1) bash hello.sh (不需要可执行属性)
( 2) . hello.sh (不需要可执行属性)
( 3) ./hello.sh (相对路径,需要可执行属性)
( 4) /root/hello.sh (绝对路径,需要可执行属性)
1、标准输入输出
2、重定向:
( 1)输入重定向: <
( 2)输出重定向: >,>>(追加 )
将标准输出重定向到文件
$ ls /etc/ > etcdir
将标准输出重定向追加到文件
$ ls /etc/sysconfig/ >> etcdir
( 3)错误重定向: 2>, 2>>
将错误输出重定向到文件
$ nocmd 2> errfile
( 4) 输出与错误重定向的组合使用 :&>
将标准输出和错误输出重定向到文件
$ ls afile bfile &> errfile
3、管道
“ | ”符用于连接左右两个命令,将 “ | ”左边的命令执行结果(输出)作为 “ | ”右边命令的输入。(相当于加工处理)
使用方法:命令 1|命令 2|命令 3 …… |命令 n
使用举例 :$ ls – Rl /etc | more
$ cat /etc/passwd | wc
$ cat /etc/passwd | grep lrj
$ ps – aux |tail -2 | more
六、 Shell脚本
1、 shell脚本的特点:
( 1) shell脚本相当于 DOS中的批处理文件,是多个命令的集合
( 2) shell脚本保存在文本文件中,我们可以对其进行阅读和编辑
( 3) shell脚本由 Shell环境解释执行的,不需要在执行前进行编译
( 4) shell脚本执行 Shell程序时, Shell脚本文件需要具有可执行( X)的属性
2、基本脚本编程
( 1)建立 Shell文件
如: vi hello.sh
( 2)脚本运行环境设置
如: #!/bin/bash (注: “ #! ”与路径名之间没有空格)
( 3)注释行的使用
以 “ # ”符开始,只是起解释说明的作用
如: # This is my first HelloWorld program
( 4)脚本语句
脚本语句的内容就是我们根据需要实现某种功能而输入的一些命令集合
如: mkdir /root/aaa
touch /root/aaa/test
echo Hello!
3、脚本运行的方法(如: hello.sh为脚本文件)
( 1) bash hello.sh (不需要可执行属性)
( 2) . hello.sh (不需要可执行属性)
( 3) ./hello.sh (相对路径,需要可执行属性)
( 4) /root/hello.sh (绝对路径,需要可执行属性)