Menu Close

Linux的高级命令集锦

Linux的高级命令集锦


1.awk

基础知识

  • 变量与说明
    在这里插入图片描述

  • 查询 interventions.txt 文件的制定的第三个字段的类型
    awk -F'|' ' {if($3 ~"Drug|Other|Biological|Genetic") {print $2,$3 }}' interventions.txt OPS="\t" | less

  • 查询interventions.txt 的各个统计
    awk -F'|' 'NR!=1{a[$3]++;} END {for (i in a) print i ", " a[i];}' interventions.txt

  • 对文件的按.分隔后取第一个,去重后输出,源数据举例 dw.XXXXX dm.XXXXX
    awk -F'.' '{print $1}' hive_tables.txt | awk '!x[$0]++' | less

  • 对文件按.分隔够取第一个,去重后输出

  • 根据" 分割,取字段 :awk -F'"' '{print $6}' cartridge_msg | head -7

  • 看看统计每个用户的进程的占了多少内存(注:sum的RSS那一列)
    ps aux | awk 'NR!=1{a[$1]+=$6;} END { for(i in a) print i ", " a[i]"KB";}'

  • awk去重:awk '!x[$0]++' file1 > file2

  • sh脚本中杀死进程:ps -ef | grep java | grep -v consumer |awk '{print $2}' | xargs -p kill -9

  • 查询行数相关: awk 'FNR==16000' file

  • 查询需要的信息并且加上第一行:awk 'NR==1;/205613/{print}' Submissions.txt

  • 查看所有行的记录: awk '//{print}' passwd.txt

  • 过滤到localhost: awk '/localhost/{print}' /etc/hosts

  • ~ 分隔后,取field后,去重:awk -F'~' '!($12 in a){a[$12];print $12}' products_1.txt

  • ~ 分隔后,取field后,去重(去掉第一行): awk -F'~' '{if(NR!=1 && !($12 in a) ) {a[$12];print $12}}' products_1.txt
    funtions.awk:计算从1到100的和

passwd.awk:以: 分割,打印出想要的field,$NF表示选定每一行的最后一列

passwd.txt:文件截取,
执行命令: awk -f passwd.awk passwd.txt OR ./passwd.awk passwd.txt


2.sed

基础知识

  • 查看文件的第1到第5行:sed -n '1,5p' passwd.txt
  • 查看文件的第1到结尾:sed -n '1,$p' passwd.txt
  • 去除文件的空行:sed -i '/^$/d' passwd.txt 慎用 -i ,原地修改
  • 去除文件的空行:cat passwd.txt | awk '{if($0!="") print }'
  • 在文件的每行结尾处添加字符串:sed -i 's/$/_MODIFY/' file
  • 在文件的每行开头处添加字符串:sed -i 's/^/HEAD_/g' passwd.txt
  • 替换文件的_MODIFY_UPDATE sed -e 's/_MODIFY/_UPDATE/' passwd.txt > passwd_update.txt
  • 替换文件的字符串: sed -i "s/my/Hao Chen's/g" pets.txt 其中 /g 是全局模式表示每一行出现的符合规则的都被替换掉
  • 删除第2行到末尾行:sed '2,$d' my.txt

3.nl

  • NONE

9.查询文件(du)

  • 查找top10的文件或是文件夹

  • 查找大于固定值的大文件


10.net|port

  • 查看端口使用情况:lsof -i:8080

  • ping通ip地址:ping github.com

  • 测试ip对应的端口是否开启:telnet 140.82.113.3 22

  • 提示不是内部命令的报错信息的话,windows系统的话可能需要开启telnet服务

  • 命令查看正在运行状态的服务及端口:netstat -tunpl

  • 使用cmd命令查看端口号占用情况,例如查看端口 8014,可以看出进程号为10728;

  • netstat -nupl(UDP类型的端口)

  • netstat -ntpl (TCP类型的端口)

  • 使用 lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例:
    lsof -i:80

  • 查询端口占用:netstat -anonetstat -ano | grep 8080

  • 查询这个端口的PID被哪个进程占用:tasklist|findstr "9088"

  • 直接强制杀死指定端口:taskkill /pid 4136 -t -f

19.防火墙


20.Maven命令

  • 输出Maven项目的目录结构:tree >> D:/tree.txt

21.Xshell修改配色

  • 临时性修改grep结果,下面是部分配色:


50.番外

  • 输出文件的行数的几种方法:
    • awk 'END{print NR}' Applications.txt
    • wc -l test1.sh
    • sed -n '$=' Applications.txt
  • 清空文件:echo -n > file
  • 查询目录下文件的个数:ls -lh| grep -c "^-"
  • 比较 A,B文件的差集:awk 'NR==FNR{ a[$1]=$1 } NR>FNR{ if(a[$1] == ""){ print $1}}' delete_file_total_20200102_uniq result_total.txt> file2.txt

Reference

发表评论

电子邮件地址不会被公开。 必填项已用*标注

苏ICP备20029284号-1