man builtin
查看内置命令source
执行 sh 文件unset
卸载函数alias
别名unalias
卸载别名hash
缓存命令路径touch {1..10}.txt
建立 10 个文件
1 | function test() { |
元字符
\
取命令的执行结果
1 | ls |
$()
同 `(两个) 弥补缺憾
1 | res=`echo `ls`` #嵌套使用后无法达到预想的效果:取echo 一堆文件名的效果。 |
~
家目录
1 | cd ~ |
[ ]
字符通配,匹配括号内之一
1 | ls [abc].txt # a.txt B.txt c.txt |
{ }
范围
括号内的开头和结尾必须是空格
1 | touch {1..10}.txt |
!
非,取反
1 | ls [!0-9].txt |
$?
上一条码命令是否执行成功
1 | ls |
$
1 | $ # 变量 |
& 后台运行
&& 与运算
固化命令的方式
1 | # 执行顺序 |
正则表达式
grep
-n
显示行号-o
只显示匹配的内容-i
忽略大小写-q
静默-v
取反,其它行-w
单词-l
过滤成功显示文件路径-A
显示匹配成功后的几行 <要加参数 n>-B
显示匹配成功前的几行 <要加参数 n>-C
显示匹配成功的附近几行 <要加参数 n>-c
显示匹配成功的数目
1 | grep 'root' /etc/passwd |
注:最好用 egrep
参考
sed
流式编辑器
-n
静默模式,不输出-e
指定多个规则,同grep
-i
对文件直接进行修改
文件形式规则pattern.sed
记录规则
1 | # 核心 |
注意:
- 正则分多个部分
- 不一定非得 /// 只要是无意义的三个(如:###)
awk
-F
执行分隔符,默认为空格或多个空格NF
分成几段内容$NF
取最后一段内容NR
行号
1 | awk -F: '{print $1}' /etc/passwd # 取第一个部分 |
- 示例
1 | # 获取网卡地址 |
shell 脚本
- 系统变量
env
系统环境变量set
所有变量PS1
shell 显示的用户
1 | export money=1000 # 定义全局变量 |
- 变量
1 | varname = value # 声明变量 |
if
1 |
|
while
1 | # 不停的看系统内存状态 |
1 | count=1 |
1 | while : |
for
1 | for i in {1..100} |
?shell 并发线程
1 | # 检测可用ip |
case
1 | ead -p "username: " -t 5 uname |
函数
1 | function abc(){ |
脚本接收参数
1 |
|
1 | #test.sh |
- 示例 nginx 进程自动重启
1 |
|
计划任务
1 | systemctl status crond |