shell特殊符号
*任意个任意字符
?任意一个字符
#注释字符,命令不生效
\脱义字符
|管道符
cut命令的使用
cut //分割、截取字符串
-d 指定分割符
-f 截取哪一段
-c 指定字符
sort_wc_uniq命令的使用
sort //排序
-t 分隔符 -kn1/-kn1,n2
head /etc/passwd > 1.txt //将/etc/passwd前10行的内容写入到1.txt里面
vim 1.txt //编辑1.txt,增加随意字符
sort 1.txt
-n //以数字排序,字母和符号都认为是0
-r 反序
wc -l //统计行数
wc -m //统计字符数
cat -A //查看文件的所有东西包括隐藏
wc -w //统计词
uniq //去重复,条件是要先排序
-c 统计重复次数
tee_tr_split命令的使用
tee和>类似,重定向的同时还在屏幕显示
tee -a //追加
tr //替换字符,相对字符来操作
split //切割
-b //指定大小(默认单位字节)
指定切割文件大小为100k,前缀名为abc
-l //指定行数
特殊符号
$变量前缀,!$组合,正则里面表示行尾
;多条命令写到一行,用分号分割
~用户家目录,后面正则表达式表示匹配符
&放在命令后面,会把命令丢到后台
>重定向 >>追加重定向 2>错误重定向 2>>追加错误重定向 &>正确和错误的信息重定向
[ ]指定字符中的一个,[0-9],[a-zA-Z],[abc]
||和&&,用于命令之间
|| //表示或者的意思,当前面这条命令执行成功,后面的命令不再执行
当前面这条命令执行不成功,就会执行后面这条命令
&& //前面这条命令执行成功,才会执行后面这条命令
前面这条命令执行不成功,后面的命令也不会执行
目录aaa不存在,则执行后面的命令
目录ccc不存在则不会执行后面的命令
Linux 系统添加操作记录审计
有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?
mkdir -p /usr/local/domob/records/ //创建目录
chmod 777 /usr/local/domob/records/ //更改目录权限
chmod +t /usr/local/domob/records/ //防删除位,防止其它用户删除自己的文件
vim /etc/profile 在最后添加下面的代码
if [ ! -d /usr/local/domob/records/${LOGNAME} ]
then
mkdir -p /usr/local/domob/records/${LOGNAME}
chmod 300 /usr/local/domob/records/${LOGNAME}
fi
export HISTORY_FILE="/usr/local/domob/records/${LOGNAME}/bash_history"
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'