管道符、重定向
- 管道符 "|":将前一个命令的标准输出当作后一个命令的标准输入
- 输入输出重定向:>与<
- 命令行通配符: *:匹配0或多个字符 ?:匹配任意单个字符 [0-9]:匹配范围内的数字 [abc]:匹配其中的字符
- PATH变量:负责告诉bath要执行的命令存放在哪里 查看当前PATH变量:echo $PATH
- 环境变量:除$PATH外,还有$HOME、$SHELL、$LANG、$RANDOM等等
Vim
- 命令模式:HJKL控制光标移动、dd删除(剪切)该行、yy复制该行、p粘贴、u撤销、/字符串:搜索字符串
- 输入模式:命令模式下按a、i、o进入输入模式,Esc回到命令模式
- 末行模式::w->保存、:q->退出、:q!->强制退出、:wq保存并退出、:set nu->显示行号
Shell
1、脚本声明:#!/bin/bash ->告知系统用何种解释器来解释 ps:解释器有bash、dash、等
2、注释信息:以#开头的为注释信息
3、可执行语句:
4、文件名以.sh结尾
- 执行shell脚本三种方法:
1、脚本文件路径:./Example.sh
2、sh 脚本文件:sh Example.sh
3、source 脚本文件:source Example.sh - 若直接访问脚本路径方式出错,则为脚本添加可执行权限:chmod u+x Example.sh
-
接收参数:./Example.sh one two three ...
-
Shell预定义变量:
-
$0->当前脚本名、$1-9->对应参数位置的变量、$#->参数总数、$*所有位置变量的值、$?->判断上条命令是否执行成功 0为成功 非0失败
-
测试语句:文件测试、逻辑测试、整数值比较、字符串比较
-
格式:[ 条件表达式 ] ps:两边要有空格
1、文件测试:[ 操作符 文件名或目录名 ]
- 参数:-d->是否为目录、-e->文件或目录是否存在、-f->是否为文件、-r、-w、-x->测试当前用户是否有读、写、执行权限
2、逻辑测试:[ 表达式1 ] 操作符 [ 表达式2 ]
- 操作符: &&->逻辑与 ||->逻辑或 !->逻辑非
- eg:[ $USER!=root ] && echo "user" || echo "root" :若当前用户不是root则打印user否则打印root
3、整数值比较:[ 整数1 操作符 整数2 ]
-
操作符:-eq->是否等于、-ne->是否不等于、-gt->是否大于、-lt->是否小于、-le->是否小于或等于、-ge->是否大于或等于
-
eg:FreeMem=
'free -m' | grep cache: | awk '{print $3}'
使用命令输出结果对变量赋值时要用反引号`
4、字符串比较:[ 字符串1 操作符 字符串2 ]
-
操作符: =->比较字符串内容是否相同 !=->不同 -z->是否为空 [-z $String]
-
条件测试:if、for、while
-
1、if 2、for 3、while 4、case
if [...] for 变量名 in 取值列表 while 条件测试操作 case 变量值 in then do do 模式1 ... ... ... 命令序列1... else done done ;; ... 模式2 fi 命令序列2... ;; *) esac
-
计划任务:一次性与长期
-
1、一次性计划任务:at指令
at <时间> :安排一次性任务 atq或at -l :查看任务列表 at -c 任务编号 :预览任务与设置环境 atrm 任务编号 :删除任务
-
2、长期性计划任务:cron指令
crontab -e [-u 用户名]:创建、编辑计划任务 crontab -l [-u 用户名]:查看计划任务 crontab -l [-u 用户名]:删除计划任务
网友评论