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]代表匹配不是一个数字的字符

例子就略了

原文地址:https://www.cnblogs.com/yzandy/p/12178831.html