- 1. vi命令
- 1.1 vi常用命令
- 1.2 vi高级命令
- 2. date命令
- 3. 进程相关命令
- 4. 文件相关命令
- 5. Linux三剑客
- 5.1 grep 命令
- 5.2 shed命令
- 5.2.1 shed使用案例
- 5.3 awk命令
- 6. Shell 编程
- 6.1 本地变量
- 6.2 环境变量
- 6.3 位置变量
- 6.4 特殊变量
- 6.5 循环判断
- 6.5.1 for循环
- 6.5.2 while循环
- 6.5.3 if判断
- 6.6 Shell 扩展
- 7. Crontab定时器
【注意】
在使用vi编辑文件时未成功保存直接关闭程序,会默认在文件同级目录下产生一个临时文件,临时文件的文件名后缀为 .swp。以后再修改这些文件每次都会先出现一些提示信息,想要避免此问题,需要删除此.swp临时文件(使用ls -a命令可查看此临时文件)。
2. date命令
date命令默认显示当前时间
date 的基本格式: date +"%Y-%m-%d %H:%M:%S"
【注意】双引号不是必须的,中间没有空格则不需要双引号
grep 用来查找文件内符合条件的字符串,经常结合管道符 | 来实现数据过滤查找。
主动用来编辑一个或多个文件、简化对文件的反复 *** 作。
【注意】
flags 表示指定要替换的字符串在这一行中出现第几次时才进行替换,也可以直接表示为g,对所有匹配到的内容进行替换,若flags的值为空,则只会在第一次匹配成功时做替换
sed -i 's/abc/xyz/g' hello.txt
说明:此命令表示将hello.txt中的abc字符全部替换为xyz
1.-i表示直接修改文档内容;
2. s表示用一个字符替换另一个;
3. abc表示需要替换的源字符串;
4. xyz表示需要替换的目的字符串;
5. g表示对文件内的所有匹配数据进行替换,如果不加此参数,则只会替换第一个源字符串的数据
awk时一种处理文本文件的语言,是一个文本分析工具。
基本格式:awk [option] programe file
for ((i=0;i<10;i++)) do ... done6. Shell 编程
shell脚本第一行:!#/bin/bash
打印变量使用 echo $变量名
定义格式: VAR_NAME=VALUE
变量引用:${VAR_NAME}
export VAR_NAME=VALUE
想要环境变量永久有效则需在/etc/profile中添加此环境变量,然后执行source /etc/profile即可生效
$0:脚本自身
$1:脚本的第一个参数
$2:脚本的第二个参数
【注意】位置变量相当于Java中main函数的args参数,可在shell脚本中动态获取外部参数
使用格式: hello.sh abc xyz
#?:上一条命令的状态码,0为成功
$#:shell脚本所有参数的个数
【注意】:echo ' "$JAVA_HOME" '和" ' $JAVA_HOME' "的区别,单引号不解析变量,双引号解析变量,反引号执行并引用命令的执行结果
6.5 循环判断 6.5.1 for循环第一种写法:
for i in 0 1 2 3 4 5 do ... done
第二种写法:
while 测试条件 do 循环体 done6.5.2 while循环
while循环适用于循环次数未知,或不便于使用for直接生成较大列表的情况
【注意】测试条件中的test EXPR 或者[ EXPR ]中括号和表达式的空格不能少
整型测试:
字符串测试:
if 测试条件 then 分支 fi6.5.3 if判断
单分支
if 测试条件 then 分支1 else 分支2 fi
双分支
if 测试条件 then 分支1 elif 测试条件2 then 分支2 ... else 分支n fi
多分支
后台模式运行脚本
nohup hello.sh &
【注意】nohup会在当前执行的目录生成一个nohup.out日志文件
- 标准输出使用描述符1表示,可以省略不写
输出
- 标准错误输出,使用描述符2表示
- 重定向后面指定描述符的时候需要使用&来指定
重定向
- >: 普通重定向,会覆盖上一次重定向的内容
- >>:追加重定向,把本次重定向的内容追加到后面
实例:
nohup command >/dev/null 2>&1 &
- /dev/null表示是一个无底洞,数据丢进去就找不到了
2./dev/null前面省略了一个1,表示把标准输出重定向到无底洞当中 - 2>&1表示把标注错误输出重定向到了标准输出中
*:分钟(0-59) *:小时(0-23) *:一个月中的第几天(1-31) *:月份(1-12) *:星期几(0-6) (星期天为0) user-name:用户名,用哪个用户执行 command:具体需要指定的命令
crontab作用于周期性被执行的命令
格式:* * * * * user-name command
在/etc/crontab文件中进行定时任务的配置
crontab的日志在/var/log/cron文件中,可使用tail -f命令实时监控
crontab中任务是这样执行的,假设设置7分钟执行一次,那么就会在每个小时的第0、7、14、21、28…分钟执行。由于7分钟无法被60整除,那执行到这个小时的最后一次,下一次执行就是下一个小时的0分开始执行了,所以针对这种除不尽的到下一小时就开始重新计算了,不累计。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)