- shell特殊符号cut命令
- sort_wc_uniq命令
- tee_tr_split命令
- shell特殊符号下
shell特殊符_cut命令
1. shell特殊符号
* #任意个任意字符
? #任意一个字符
# #注释字符
\ #脱义字符
| #管道符
2. 几个和管道有关的命令
- cut分割,-d分隔符 -f指定段号 -c指定要第几个字符
- sort排序,-n以数字排序 -r反序 -t分隔符 -kn1/-kn1,n2
- wc -l统计行数,-m统计字符数 -w统计词
- uniq去重,-c统计行数
- tee和>类似,重定向的同时还在屏幕显示
- tr替换字符,tr'a''b',大小写替换tr'[a-z]''[A-Z]'
- split切割,-b大小(默认单位字节),-l行数
3. cut用法
- cut分割,-d分隔符 -f指定段号 -c指定要第几个字符
4.sort排序
- sort排序,-n以数字排序 -r反序 -t分隔符 -kn1/-kn1,n2
- sort -n 文件以数字排序(字母符号为0)
- sort -nr 文件以数字排序-r 反序(字母符号为0)
5.wc命令
- wc -l统计行数
- wc -m统计字符数(注意:每行结尾有换行符)
- wc -w统计词
6.uniq命令
- uniq去重,-c统计行数
- sort /tmp/1.txt| uniq -c 先排序在去重,-c统计重复次数
7.tee命令
- tee和>类似,重定向的同时还在屏幕显示
- sort /tmp/1.txt| uniq -c |tee a.txt
- sort /tmp/1.txt| uniq -c |tee -a a.txt #追加
7.tr命令
- tr替换字符,tr'a''b',大小写替换tr'[a-z]''[A-Z]'
- echo "aminglinux"|tr '[al]' '[AL]'
8.Split命令
- split切割,-b大小(默认单位字节),-l行数
find /etc/ -type f -name "*.conf" -exec cat {} >> a.txt \;
du -sh a.txt
- split -b 10000 a.txt split -b 10000 a.txt abc 指定文件名
- split -l 10000 a.txt 指定10000行切割
9.特殊符号
1. $ 变量前缀,!$组合,正则里面表示行尾
2. ;多条命令写到一行,用分号分割
3. ~ 用户家目录,后面正则表达式表示匹配符
4. & 放到命令后面,会把命令丢到后台
5. > >> 2> 2>> &>
6. [ ] 指定字符中的一个,[0-9],[a-zA-Z],[abc]
7. || 用于命令之间 表示或的意思 前面执行成功则不执行后面的命令,如果前面执行不成功则在执行后面的命令
8. && 用于命令之间 表示前面命令执行成功,则执行后面的命令,前面命令执行不成功,则不执行后面的命令
Linux 系统添加操作记录审计
有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?
mkdir -p /usr/local/domob/records/
chmod 777 /usr/local/domob/records/
chmod +t /usr/local/domob/records/
vi /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'