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 |