ouzhoudijie 发表于 2018-8-18 13:17:57

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]
查看完整版本: Linux Shell(写Shell脚本用的比较多的命令)