Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
Shell的分类:
Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。
C Shell: C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名.
Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。
2.1 echo命令
参数说明:-e表示支持反斜杠字符转换。
Linux中常见的字符:
控制字符 | 作 用 |
\\ | 输出\本身 |
\a | 输出警告音 |
\b | 退格键,也就是向左删除键 |
\c | 取消输出行末的换行符。和“-n”选项一致 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,也就是Tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数 |
\xhh | 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数 |
(1)history命令
[root@localhost ~]# history [选项] [历史命令保存文件]
选项:
-c: 清空历史命令
-w: 把缓存中的历史命令写入历史命令保存文件
~/.bash_history
历史命令默认会保存1000条,可以在/etc/profile中修改。
(2)alias 命令
给某个命令设置别名:
[root@localhost ~]# alias 别名='原命令 '
查询命令的别名:alias
(3)标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
键盘 | /dev/stdin | 0 | 标准输入 |
/dev/sdtout | 1 | 标准输出 | |
显示器 | /dev/sdterr | 2 | 标准错误输 出 |
(4)输出重定向
类 型 | 符 号 | 作用 | ||
标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。 | 命令 >> 文件 | 以追加的方式,把命令的正确输出输出到指定的文件或设备当中。 |
标准错误输出重定 向 | 错误命令 2>文件 | 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。 | 错误命令 2>>文件 | 以追加的方式,把命令的错误输出输出到指定的文件或设备当中。 |
正确输出和错误输 出同时保存 | 命令 > 文件 2>&1 | 以覆盖的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令 >> 文件 2>&1 | 以追加的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令 &>文件 | 以覆盖的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令 &>>文件 | 以追加的方式,把正确输 出和错误输出都保存到同 一个文件当中。 | 命令>>文件1 2>>文件2 | 把正确的输出追加到文件 1中,把错误的输出追加 到文件2中。 |
(5).输入重定向
使用wc命令:
wc 选项 文件名
选项:
-c | 统计字节数 |
-w | 统计单词数 |
-l | 统计行数 |
(6)多命令顺序执行
多命令执行 符 | 格式 | 作 用 |
; | 命令1 ;命令2 | 多个命令顺序执行 系 ,命令之间没有任何逻辑联 |
&& | 命令1 && 命令2 | 逻辑与当命令1正确执行,则命令2才会执行 当命令1执行不正确,则命令2不会执行 |
|| | 命令1 || 命令2 | 逻辑或当命令1 执行不正确,则命令2才会执行当命令1正确执行,则命令2不会执行 |
(7)管道符
命令格式:
[root@localhost ~]# 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
例如:ll -a /etc/ | more
netstat -an | grep "ESTABLISHED"
[root@localhost ~]# grep [选项] "搜索内容"
文件名
选项: -i: | 忽略大小写 |
-n: | 输出行号 |
-v: | 反向查找 |
--color=auto | 搜索出的关键字用颜色显示 |