Linux常用高级命令

2022-10-07 Linux

Linux除了常用命令,还有一些高阶命令,使Linux使用人员能够快速的完成某些功能,尤其是对文件的操作。这里只介绍常用操作,要求熟练并且灵活使用。

# wc操作文件命令

wc [-clw][文件...]

  • -c:只显示Bytes数/字节数。
  • -m:统计字符数,不能与-c同时使用
  • -l:显示行数。
  • -L:打印最长长度的行数
  • -w:只显示字数。

# sort对文件数据进行排序

sort [-命令][文件...]

  • -n:按照数值排序
  • sort:默认按字母进行排序
  • -r:对排序结果进行反转
  • -k 数字:根据某一列进行排序

# uniq文件去重

uniq [-命令][文件...]

  • uniq:默认会对文件去重,但是只去重相邻行
  • -c:显示重复出现次数
  • -u:返回文件不重复的行
  • sort 文件 | uniq:去除所有重复行(原理:先排序,通过管道将结果传给uniq命令)

# head获取前N条数据

  • head -3 文件名:返回前三行
  • sort -n 文件名 | head -3:排序后的前三行

# Linux日期操作

  • date +"%Y-%m-%d %H:%M:%S":格式化日期
  • date +%s:返回时间戳
  • 获取指定时间时间戳:date --date="2022-06-09 00:00:00" +%s
  • date --date="1 days ago":获取1天以前的时间 如何获取指定月份的天数? -- 答:获取下一月1号,然后获取改时间1天以前的时间,截取天数%d即是当月天数

# Linux进程管理相关命令

  • ps -ef:显示所有进程
  • ps -ef | grep java:查看java相关进程
  • netstat -ant:查看端口占用情况,安装命令➡yum install -y net-tools
  • netstat -ant | grep 22:查看占用端口22的应用程序
  • jps:显示当前用户已启用的java进程信息,只有安装配置jdk才能使用
  • top:动态显示当前占用内存、cup最多的进程信息
  • kill pid:根据pid关闭进程
  • kill -9 pid:根据pid强制关闭进程

# Linux三剑客之查找grep命令

-i:忽略大小写 -n:显示该行行号 -v:忽略包含指定字符串内容

  • 查看文件中包含abc的行:grep abc hello.txt
  • 正则表达式匹配a开头的行:grep ^a hello.txt
  • 查看文件中包含abc的行(不区分大小写):grep -i abc hello.txt

# Linux三剑客之编辑sed命令

sed:用来自动编辑一个或多个文件、简化对文件的反复操作

  1. 在文件的第二行下面添加内容:sed '2a\haha' hello.txt (此方法不会修改源文件,会返回修改后的结果)
  2. 在文件的第一行上面添加内容:sed '1i\haha' hello.txt (巧记:a是append,i是insert)
  3. 在文件的最后一行下面添加内容:sed '$i\haha' hello.txt ($代表最后一行)
  4. 删除第7行:sed '7d' hello.txt (巧记:d是delete)
  5. 每一行第一次出现的l改成i:sed 's/l/i/1' hello.txt
    • sed [address]s/pattern/replacement/flags
    • address:要操作的具体行,不写代表所有行
    • s:表示替换操作
    • pattern:需要替换的内容
    • replacement:要替换的新内容
    • flags:有多种用法
      1. 1~512任意数字,指在这一行出现的第几次才进行替换
      2. g,对所有匹配到的内容都进行替换
      3. 为空,在这一行出现的第一次进行替换
  6. 之前的操作都不会保存到源文件,测试后需要修改只需要加上 -i 即可,例如sed -i '2a\haha' hello.txt

# Linux三剑客之数据分析awk命令

基本格式:awk [option] programe file

  • 显示第2列内容:awk '{print $2}' hello.txt (默认用空格分割列)
  • 使用冒号(:)分割列:awk -F: '{print $2}' hello.txt
  • $0代表所有行
  • 使用正则表达式进行匹配:awk '/正则表达式/{print $0}' hello.txt
  • 根据第一列进行正则匹配,但是显示所有列:awk '($行号 ~ /正则表达式/){print $0}'

小归纳:awk是对列的查询,grep是对行的查询,sed用来编辑文件,使用管道”|“能达到意想不到的操作

上次更新: 1 年前