文本编辑器

vim 下

  ctrl + u 向上翻半屏
  ctrl + d 向下翻半屏
  ctrl + f 向上翻一屏
  ctrl + b 向下翻一屏

  非编辑的模式下   /err 回车查找 err

  chown: 修改目录的权限, root 下,chown payne:payne /opt/software /opt/module
  chmod: 修改执行权限, 7-- 可读可写可执行
  chmod 命令是 linux 上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符。
  777,第一个7代表文件所属者的权限,第二个7代表文件所属者所在组的权限,第三个7代表其它用户的权限 775 中 5表示读和执行 4 是读 2 写 1 执行,

  查找目录下 类型为 文件以 .log 文件名 结尾的文件 f 文件 d 目录
  find /var/log -type f -name "*.log"

  统计文件的行数
  wl -l /var/log/audit/audit.log

  查找两天以内修改过的以 .log 结尾的文件
  find /var/log -mtime -2 -name "*.log"
  find / -name kibana 查询根目录下名称为 kibana 的文件
  firewall-cmd --query -port=80/tcp 查看80端口是否开放
  firewall-cmd --permanent --add-port=80/tcp 添加端口
  firewall-cmd --reload 重启防火墙
  telnet 39.97.240.142 8081 测试端口是否畅通

  输出重定向: > 覆盖输出 >> 追加输出
  > : cat > test.txt 回车 输入文本
  echo 'hello' > test.txt 输出到文本中
  错误重定向输出: llll 2> test.txt 把错误输出重定向到 test.txt 文件中, 2标识错误输出
  如果不想要错误输出就放大到 /dev/null 里面 llll 2 > test.txt 把错误输出到 /dev/null 中

grep sed awk linux三剑客:

sed 命令: 用于文本 选取,新增,替换,删除,搜索
  sed -n 打印出匹配的行,输出打印到屏幕
  df -h | sed -n '2p' 打印出第二行,p是打印,2是匹配的第2行
  df -h | sed '2d' 删除第2行,只是打印出来的不显示第2行,df -h 的内容不会删除
  df -h | sed '2a 123456' 在第2行的下面打印 123456
  df -h | sed '2i 123456' 在第2行的上面打印 123456
  df -h | sed '2c 123456' 把第2行替换为 123456
  df -h | sed 's/centos-root/Centos7/g' s是开头,g是结尾,将 centos-root 替换为 Centos7 ,精确替换,用的最多的,不会对源文件进行修改
  df -h | sed 's/centos-root/Centos7/g' >> test.txt 替换后输出到 test.txt ,不会对源文件进行修改
  sed -i 's/centos-root/Centos7/g' df.txt 会对源文件修改,将 df.txt 文件中的 centos-root 修改为 Centos7,一定要慎重处理
  sed 's/Centos7/Centos8/g' df.txt
  sed -n '/tmpfs/p' df.txt 搜索出 df.txt 文件中包含 tmpfs 的行并且打印出来
  grep -w 'tmpfs' df.txt grep 会精准匹配

  修改多行数据,改掉 df.txt 文件中的 Centos8 为 Centos7 和 tmpfs 为 TMP,会修改 df.txt 文件,要慎重操作
  sed -i -e 's/Centos8/Centos7/g' -e 's/tmpfs/TMP/g' df.txt

  输出文件中改掉 Centos8 为 Centos7 和 tmpfs 为 TMP ,并输出到 123.txt
  sed -e 's/Centos8/Centos7/g' -e 's/tmpfs/TMP/g' df.txt > 123.txt

  sed -i 's/centos-root/Centos7/g' df.txt 和
  df -h | sed -i 's/centos-root/Centos7/g' 通过管道符过滤给 sed ,和直接使用文本意思差不多

awk 处理海量数据: 用于对数据进行列的提取,支持条件判断,数组,循环等功能
  printf #格式化输出,不会自动换行
  print #打印出内容,默认自动换行
  %s #字符串
   #制表符
   #换行符
  NR #行号
  $NF #最后一列
  BEGIN 是在执行进来之前执行
  END 是在执行结束后执行

  用制表符输出6个字符串然后换行
  printf '%s %s %s %s %s %s ' 1 2 3 4 5 6

  文件中的第1列,没有加条件会打印所有
  awk '{print $1}' /etc/passwd 打印 passwd

  执行过程: 获取第一行传递给awk,在 awk 获取到之前 BEGIN 读取条件 FS 以:分割,然后打印第一列
  cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}' 打印 passwd

  打印出第4行的第1列
  df -h | awk 'NR==4 {print $1}' //文件中已经有分列了
  df -h | awk '(NR>=2 && NR<=5) {print $1}'

  过滤掉 Filesystem 的这一行,输出第1列和第5列
  df -h | grep -v 'Filesystem' | awk '{printf $1} {printf "文件系统使用率: "} {print $5}'

  df -h | grep -v 'Filesystem' | awk 'BEGIN {printf "文件系统使用情况: "} {printf $1} {printf "文件系统使用率: "} {print $5} END {printf "一切正常 "}'

cut: 

  -d : 指定分隔符, 不加 -d 选项默认为制表符不是空格
  -f : 指定截取区域
  -c : 以字符为单位进行切割

  以 : 分割,截取 passwd 里的第一列和第3列打印出来
  cut -d ':' -f 1,3 /etc/passwd
  截取第1列到第3列打印出来
  cut -d ':' -f 1-3 /etc/passwd // 1- 是第1列以后的所有列,1-3是1到3列
  截取 passwd 文件第2到9个字符
  cut -c 2-9 /etc/passwd
  截取 linux 上所有可登录的普通用户, grep '/bin/bash' 过滤出含有 '/bin/bash'
  cat /etc/passwd | grep '/bin/bash' | cut -d ':' -f 1 | grep -v root

原文地址:https://www.cnblogs.com/moxiaodan/p/13777060.html