• Linux常用命令学习3


    awk 命令

    awk是一种处理文本文件的语言,是一个强大的文本分析工具。

    相比较屏幕处理的优点,awk在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息。 awk也是一个非常棒的数据处理工具!相较于sed常常作用于一整个行的处理, awk则比较倾向于一行当中分成数个字段来处理。

    awk处理过程: 依次对每一行进行处理,然后输出。

    命令的基本格式是:awk ‘{print($1)}’

    案例:

    cat 1.txt|awk '{print($2)}'                 #打印出文本中每行的第二个字段
    cat /etc/passwd |awk -F ":" '{print($1)}'  #-F指定分隔符,以“:”为分隔符,打印出文本中每行第一个字段
    1. cat /etc/passwd |awk -F ":" '{print($1,"+++",$3)}' #打印出第一个字段与第三个字段,并在其中间添加+++内容
    2. cat /etc/passwd |awk -F ":" '{print($1"+++"$3)}' #对比差异
    1. cat passwd | awk -F ":" '{print $NF}' #打印出文本中每行的最后一个字段
    2. cat passwd | awk -F ":" '{print $(NF-1)}' #打印出文本中每行的倒数第二个字段。$(NF-1)为倒数第二,依此类推。

     

    grep 命令

    grep这个名字来自于短语“global regular expression print”,所以我们能看出 grep 程序和正则表达式有关联。

    本质上,grep 程序会在文本文件中查找一个指定的正则表达式,并把匹配行输出到标准输出。

    命令格式: grep [options] [pattern] [filename]

    案例:

    1. cat passwd |grep root # 只显示带有root关键字的行
    2. grep -e root passwd # 匹配有root的行
    3. grep -v root passwd # 忽略匹配到的行
    4. cat passwd |grep -E "root|sshd" # 包含多个可能性的行
    5. cat passwd |grep -E '^r' # 以r开头的行
    6. cat passwd |grep -E 'n$' # 以n结尾的行
    7. grep “root” /etc/passwd /etc/shadow # 查询多个文件
    8. grep "passwd" /etc -rn # -r 为递归 -n 显示关键字出现在第几行 在多级目录中对文本进行递归查找

     

    find 命令

    find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    这是一个超级复杂的命令,最简单的模式为:find 路径 -name [名字]

    案例:

    1. find / -size 1000k #从根目录查找大小为1000K的文件
    2. find -name '1*' #在当前目录下查找文件名以1开始的文件
    3. find / -name '1*' #从根目录查找文件名以1开始的文件
    4. find / -user farmsec1 #从根目录查找属主为farmsec1的文件
    5. find / -group farmsec #从根目录查找属组为farmsec的文件
    6. find /etc -type f/d #按sock类型查找,f代表文件,d代表目录
    7. find . -type f -mtime -7 #搜索7天内当前目录下修改过的文件(-7代表7天内,7代表前7天那一天,+7代表7天前)
    8. find . -type f -mmin -10 #搜索10分钟内当前目录下修改过的文件
    9. find . -atime -1 -type f #搜索当前目录下一天内被访问的文件(-1代表1天内,1代表前1天那一天,+1代表1天前)
    10. find . -amin -10 -type f #搜索当前目录下10分钟内被访问的文件
    11. find . -ctime -1 -type f #搜索当前目录下一天内状态被改变(列如权限)的文件(-1代表1天内,1代表前1天那一天,+1代表1天前)
    12. find . -cmin -10 -type f #搜索当前目录下10分钟内状态被改变的文件
    13. find . -perm 777 #搜索处当前文件下符合777权限的文件
    • exec选项
    1. find 搜索路径 [选项] 搜索内容 -exec 命令2{}\;
    2. find . -type f -perm 644 -exec ls -l {} \;
    3. find / -exec grep "Hello" {} \;
    4. find / -name "*.tmp" -exec rm -f {} \; (危险)
    5. find / -name "*" -ctime +2 -exec rm -f {} \;(危险,别敲)

    ag 命令

    ag类似grepfind,但是执行效率比后两者高。

    最基本的用法为ag -g ,从当前目录寻找文件

    案例:

    1. ag -g <File Name> # 类似于 find . -name <File Name>
    2. ag -i PATTERN # 忽略大小写搜索含PATTERN文本
    3. ag -A [number] PATTERN #搜索含PATTERN文本,并显示匹配内容之后的n行文本,例如:ag -A 5 abc会显示搜索到的包含abc的行以及它之后5行的文本信息。
    4. ag -B [number] PATTERN #搜索含PATTERN文本,并显示匹配内容之前的n行文本
    5. ag -C [number] PATTERN #搜索含PATTERN文本,并同时显示匹配内容以及它前后各n行文本的内容。
    6. ag --ignore-dir <Dir Name> #忽略某些文件目录进行搜索。
    7. ag -w PATTERN #全匹配搜索,只搜索与所搜内容完全匹配的文本。
    8. ag --java PATTERN #在java文件中搜索含PATTERN的文本。
    9. ag --xml PATTERN #在XML文件中搜索含PATTERN的

     

    stat命令

    用于显示文件信息:

    用法:stat [文件或目录]

    stat /etc/passwd

     

    split 命令

    split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

    参数:

    • -b 按文件大小进行切割
    • -l 按行数来进行切割
    • -d 为使用数字为生成文件的后缀
    • -a 指定后缀的长度

    案例:

    1. split -b 30k messages # 按照每个文件30K大小切割messages文件。
    2. split -l 300 messages # 将messages文件切割为每3行一份。

    sort命令

    sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。

    1. cat 1.txt|sort #默认的排序方式,从首字母开始
    2. cat 1.txt|sort -t #按照字典进行排序
    3. cat 1.txt|sort -n #按照数字进行排序

     

    uniq 命令

    uniq用于报告或忽略文件中的重复行,一般与sort命令结合使用。

    要注意先排序,后去重。因为uniq命令只能消除相邻且相同的行。

    1. cat 1.txt |sort -n |uniq #排序去重
    2. cat 1.txt|sort -n |uniq -c #列出重复的次数
    3. cat 1.txt |sort -n |uniq -d #列出有哪些行是重复的

    以上系列命令可以用于日志分析:

    如统计IP地址的访问数量并按照数量进行排序: cat access_log |awk '{print($1)}'|sort|uniq -c |sort -nr |more

    针对访问量最大的IP分析其访问内容: cat access_log |grep 'IP地址'|head -n 100

     

    nl 命令

    nl命令用于显示文件内容行号。

    案例:

    cat /etc/passwd |nl

    ssh命令

    ssh命令是Linux的远程连接工具。

    ssh命令:Linux的远程连接工具

    例如ssh 192.168.0.149,以当前终端用户身份远程连接IP为192.168.0.149的计算机。

    • -l 为指定用户 如 ssh -l farmsec 192.168.0.149以farmsec用户远程登录,也可写成ssh farmsec@192.168.0.149
    • -p 为指定端口号

    执行ssh的默认情况下,会使用本地的用户名连接对方的用户名,例如本地的root连接对面服务器的root,如果两端用户名不一样,则需要使用-l username指定用户名。

    再确认密码后,方能登录成功,而同时变化的文件为:/root/.ssh/known_hosts 在第一次登录时,openssh将会提示不知道这台登录的主机,只要输入yes,就会把这台主机的“识别信息”添加到known_hosts文件中. 第二次登陆后,则无须此步骤,但是如果出现错误,例如主机产生变化,则需要删除/root/.ssh/known_hosts内容。

     Smb服务为网络文件共享协议,它允许应用程序和终端用户从远端的文件服务器访问文件资源 用法:在kali的文件–>其他位置-->连接到服务器处输入:smb://192.168.0.149/share

    rdesktop 命令

    rdesktop命令用于在linux下链接windows远程桌面。

    用法:rdesktop 192.168.0.178

    curl 命令

    curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

    用法:curl [选项] [url]

    参数:

    • -i 显示头部信息
    • -v 显示请求全过程解析
    • -O 下载

    案例:

    1. curl www.farmsec.com
    2. curl www.farmsec.com -i
    3. curl www.farmsec.com -v
    4. curl -O https://bootstrap.pypa.io/get-pip.py

    wget 命令

    wget命令:用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

    wget https://bootstrap.pypa.io/get-pip.py

     

    前面我们下载下的文件名都是乱码,所以我们需要给它自定义文件名 加入-O的参数即可指定文件名

    wget  https://bootstrap.pypa.io/get-pip.py -O 123.py

     如果文件比较大时,加入参数-b,进行后台下载,然后可使用使用tail -f wget-log查看进度。

    -c:继续执行上次终端的任务;可以在下载中断后再次使用。
  • 相关阅读:
    DELL远程控制卡 使用ipmitools设置ipmi
    大数据导论考察论文
    最新网站证书提示风险的原因和几个解决方法
    初识C++(五)
    【尚硅谷 Vue学习】P18姓名案例 P19 计算属性 p20计算属性_简写 P21天气案例
    spring-cloud-alibaba : nacos安装
    2021.06青少年软件编程(Python)等级考试试卷(二级)
    HarmonyOS hsp制作与引用
    力扣刷题Days3第二题(js)
    win10下yolov7 tensorrt模型部署
  • 原文地址:https://blog.csdn.net/m0_55772907/article/details/127429279