shell中需要了解的一点小东西
shell脚本调用的两种方式
一种是赋予权限,使用绝对路径
另一种只需要拥有读权限,使用bash 调用脚本
history命令
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件当中,如果不手工指定历史命令保存文件,则放入默认历史命令保存文件~/.bash_history
历史命令默认会保存1000条,这是通过环境变量HISTSIZE来进行设置的,我们可以再环境变量配置文件/etc/profile中进行修改
因为历史命令是保存在~/.bash_history中的,而不是内存中,所以如果有需要可以将历史命令条数改大
每个用户的历史命令是单独保存的,每个用户的家目录,都有./bash_history这个历史命令文件
使用history命令查看的历史命令和~/.bash_history文件中保存的历史命令是不同的。那是因为当前登陆操作的命令并没有直接写入~/.bash_history文件中
而是保存在缓存中,需要等当前用户注销之后,缓存中的命令才会写入~/.bash_history文件中。
如果需要把内存中的命令直接写入到~/.bash_history文件中,而不等用户注销时再写入,就需要使用-w选项
历史命令的调用
1.使用上下箭头
2.使用 !n 重复执行第n条命令
3.使用 !! 重复执行上一条命令
4.使用 !$ 重复上一条命令的最后一个参数
多命令顺序执行
; 命令1;命令2 多条命令顺序执行,命令之间没有任何逻辑关系
&& 命令1&&命令2 如果命令1正确执行($?=0),则命令2才会执行,如果命令1执行不正确,命令2不会执行
|| 命令1||命令2 如果命令1执行不正确($?)则命令2会执行,如果命令1执行则命令2不会执行
行提取命令grep
grep 选项 搜索内容 文件名
-A 列出符合条件的行,并列出后续的n行
-B 列出符合条件的行,并列出前面的n行
-c 统计找到的符合条件的字符串的次数
-i 忽略大小写
-n 输出行号
-v 反向查找
总用的命令实例忽略
通配符
? 匹配一个任意字符,不能为空
* 匹配0个或多个任意字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符,例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c
[-] 匹配括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配不是一个数字的字符
例子就略了