Linux Shell(写Shell脚本用的比较多的命令)
给历史命令加日期
vi /etc/profile 编辑历史命令所在的配置文件
source /etc/profile将修改过后的配置文件生效
echo $HISTSIZE 查看变量——历史命令保存数量
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "添加历史命令日期
或
HISTTIMEFORMAT="%F %T "
输入输出重定向
ls 1.txt > a.txt #将1写入到a
ls 1.txt >> a.txt #将1追加到a
ls 1.txt 2> a.txt #将错误信息写入a
ls 1.txt 2>> a.txt #将错误信息追加到a
ls 1.txt &> a.txt #将正确和错误的信息都写入到a
ls 1.txt &>> a.txt #追加
ls 1.txt > a.txt 2> b.txt#将正确和错误分开写入
环境变量
/etc/profile #用户环境变量,交互,登录才执行
/etc/bashrc 用户不用登录,执行shell就生效
cut 分隔符
cat /etc/passwd |head -2 |cut -d ":" -f 1,12 #截取以冒号为分割前两段
-d 分隔符
-f 指定段号
-c 指定第几个字符
sort排序
-n 以数字排序
-r 反序
-t 分隔符
sort /etc/passwd
sort -n 1.txt#以字母去排序
uniq 去重,-c统计行数
sort 2.txt |uniq -c #先排序再去重
tee 重定向并打印 ,-a追加
sort 2.txt |uniq -c |tee -a a.txt
tr 替换
echo "yardlinux" |tr '' '' #[]表示任选一个
echo "yardlinux" |tr 'y' 'Y'
echo "yardlinux" |tr '' ''
split 切割(例如,用于日志过大),-b大小,-l 行数
split -b 100M bigfile
split -b 100k a.txt abc
split -l 1000 a.txt #切割1000行一个文件
find /etc/ -type f -name "*conf" -exec cat {} >>a.txt \;
|| &&
ls 1.txt || wc -l 2.txt #前一条命令执行成功,后续不执行,若失败,执行下一条
ls 1.txt && wc -l w.txt#前一条命令执行成功,再执行下一条
例如:
判断一个目录存在不存在,若不存在就创建
[ -d yardlinux ] || mkdir yardlinux
grep 过滤文件中关键字
-c 行数
-i 不区分大小写
-n 显示行号
-v 取反
-r 遍历所有子目录
-A 后面跟数字,过滤出符合要求的行以及下面n行
-B 同上,过滤出符合要求的行以及上面n行
-C同上,同时过滤出符合要求的行以及上下各n行
grep nologin passwd
grep -c nologin passwd 查看多少行
grep -nA2 'root' passwd
页:
[1]