shell是什么
shell是一种脚本语言
可以使用逻辑判断、循环等语法
可以自定义函数
shell是系统命令的集合
shell脚本可以实现自动化运维,能大大增加我们的运维效率
shell的特点
1、记录历史命令
shell预设值可以记录1000条历史命令,这些命令保存在用户的家目录.bash_history文件中
!!:表示执行上一条指令
!n:表示执行第n条命令
!pw:则是表示执行历史命令中最近一次以pw开头的命令
2、命令和文件名补全
按Tab键可以帮我们补全一个指令、一个路径或者一个文件名。连续按两次Tab键,系统会把所有的命令或者文件名都列出来。
3、别名
执行alias命令可以查看系统预设的别名
unalias命令解除别名功能
通配符
在bash下,可以使用*来匹配0个或多个字符,用?匹配一个字符管道符
| 管道符用于将前一个指令的输出作为后一个指令的输入
作业控制
当运行进程时可以使用快捷键Ctrl+Z 暂停,然后使用fg命令恢复
也可以使用bg命令使它在后台运行,也可使用快捷键Ctrl+C组合键终止
命令 env
列出系统预设的全部系统变量 [env 命令显示的只是环境变量
命令 set
set命令与env命令类似,也可输出环境变量
在linux下设置自定义变量需要遵循以下规则
设置变量的格式为a=b,其中a为变量名,b为变量内容,等号两边不能有空格
变量名只能由字母、数字和下划线组成,而且不可以以数字开头
当变量内容带有特殊字符(如空格)时,需要加上单引号。
如果变量内容本身带有单引号,需要加上双引号
如果变量内容中需要用到其他命令,运行结果则可以使用反引号
pstree 命令
会把linux系统中的所有进程以树形结构显示出来
export 命令
声明变量 {如果要取消某个变量,只要输入unset 变量名即可
Linux shell 中的特殊符号
注释符号 # 表示单行注释
脱义字符 \ 用于把特殊字符转换为普通字符
特殊符号 ; 如果想在一行中运行多个命令就需要在命令之间加该符号
特殊符号~ 表示用户的家目录
特殊符号 & 如果想把一条命令放到后台执行则需要加上符号&
cut 命令
该命令用于截取某个字段,其格式为cut -d ’ 分割字符 ’ [cf] n
-d :后面跟分割字符
-c:后面接第几个字符
-f:后面接的是第几个区块
cut -c 选项后面可以是1个数字,也可以是一个区间
sort 命令
用作排序,其格式为sort [-t 分隔符] [ -kn1,n2] [-nru] 这里的n1和n2 指的是数字
-t:用作分隔符
-n:表示使用纯数字排序
-r:表示反向排序
-u:表示去重复
-kn1,n2:表示由1到2区间进行排序 可以只写-kn1,既对1字段进行排序
sort 不加任何选项 则从首字母向后依次按照ASCII码进行比较
命令 wc
用于统记文档的行数、字符数或词数
-l:统计行数
-m:统计字符数
-w:统计词数
uniq 命令
用于删除重复的行,使用该命令时需要先排序
-c :统计重复的行数
tee 命令
tee后跟文件名,其作用类似重定向> ,他把文件写入后面时,还会显示在屏幕上
tr 命令
用于替换字符
-d:表示删除某个字符,后面跟要删除的字符
-s:删除重复的字符
split 命令
用于切割文档
-b:按照大小来分割文档
-l:依据行数来分割文档