• Linux实用命令整理


    说明

    点击标题可进入详细讲解的章节

    0. 基本命令

    linux 基本命令整理

    1. 压缩 解压

    tar -zcvf a.tar.gz a   #把a压缩成a.tar.gz
    tar -zxvf a.tar.gz     #把a.tar.gz解压成a
    zip -r a.zip a
    unzip a.zip

    2. vim小结

    2.1 vim替换

    :m,ns/word_1/word_2/gc  #把word_1用word_2替换,g表示替换所有的, c表示替换每一个时需要确认

    2.2 vim统计某一个字符串的个数

    :m,ns/word_1/&/gn       #统计从m行到n行之间word_1的个数, n表示只是统计个数不替换
    :1,$s/word_1/&/gn       #搜索整个文档中word_1的个数,和下面等价
    :%s/word_1/&/gn

    2.3 vim中删除某一字符串

    :m,ng/word_1/d         #从第m行到第n行删除所有的word_1

    3. 文件搜索

    3.1 locate——通过文件名查找

    locate /bin/zip   

    3.2 find——通过文件的各种属性在既定的目录下查找

    find /usr  -type f -name "*.png" -size +1M           #查找的目录范围是/usr,名字以.png结尾,大小大于1M(+1M,1M,-1M)
    find /usr  -type f -name "*.png" -size +1M  | wc -l  #统计符合条件的行数
    find /usr  -type f -name "*.png" -size +1M  -delete  #删除符合条件的

    3.3 找出目录dirs下含有字符串“hello”的所有文件的名字(个数)

    find .|xargs grep "IBM"      #xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
    find .|xargs grep "IBM" -l   #只打印出文件名

    4. 排序 sort

    cat file_name | sort -k2 -r            #按第二列(从一开始技术)排序,-r表示reverse,从大到小输出
    cat file_name | sort -k1 -n            #按第一列排序, -n按数字排序,默认为按字符串排序
    cat file_name | sort -k1 -nr | wc -l   #统计满足条件的个数

    5. 系统开销

    5.1 df——磁盘占用情况

    df     #列出各文件系统的磁盘空间占用情况(已用 未用)共五列:Size  Used Avail Use% Mounted on
    df -h  #以更易读的方式显示 (按KMG适当转换)
    df -sh dirname #

    5.2 du——文件大小

    du                 #列出本目录下,目录的大小(默认的计数单位是k)
    du -h filename     #以更易读的方式显示所查文件的大小
    du -sh dirname #查看目录dirname的总大小
    du -h --max-depth=1 #本目录下各文件、目录大小

    5.3 w——CPU负载度量(简单的说是进程队列的长度,最近一段时间1min,5min,15min的load度量)

    w

    6. 进程状态

    ps(Process Status)用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,如果想要动态的显示进程信息,就可以使用top命令。

    ps -ef

    ps -ef 和 ps aux区别:参考:http://doc.okbase.net/%E8%B6%B3%E8%87%B3%E8%BF%B9%E7%95%99/archive/118297.html

    7. awk命令

    cat file_name | awk '{print $1}'                           #输出第一列(默认以空格切分)
    cat file_name | awk  -F ':'  '{print $1"	"$3}'            #-F指定切割符号,输出第3列
    cat file_name | awk -F ':' 'BEGIN {print "name,id"} {print $1","$3} END {print "end_name,end_id"}'  #BEGIN指定开头输出,END指出结尾输出
    cat file_name | awk -F ':' '/keyWord/{print $1}'           # 输出一行中含有关键字keyWord的制定列
    cat file_name | awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF}'          #内置变量FILENAME文件名,NR已读记录数,NF列数
    cat file_name | awk '{count++} END {print "Count:" count}' #编程,最后输出总行数

    8. sed命令

    sed是stream editor(流式编辑器)的缩写,它可以对文本流、指定文件集或标准输入进行文本编辑。功能非常强大。

    sed -n '2p' del2                #查看第2行
    sed '1,2s/hello/NO/g' del2      #地1到2行的hello全部替换成NO(参数g表示替换全部)
    sed '2,3d' del2                 #删除第2到3行
    sed '2,3a mmm' del   #第2和3行后(a)插入mmm

    9. 编码转换

    iconv -f gbk -t utf-8 -c  text.txt -o text.out #-f:from -t:to -c从输出中忽略无效的输出 -o输出文件名字

    10. 文件属性

    chmod 属性 文件名        #更改文件属性r:4 w:2 x:1
    chown 用户名 文件名
    chgrp 组名 文件名
    chown 用户名:组名 文件名 #同时修改文件所属的用户和组
    chown -R 用户名 目录名 #递归把目录里面(包括目录自己)中的文件全部修改所属用户名

    11. 管道 |  重定向 >

    ls   -l   |grep   "^-"   |   wc   -l  #grep 正则匹配以'-'开头的, wc -l:统计满足条件的总的行数
    ls   -l   |grep   "^-"  >file_name1   #把满足结果的定位到file_name1,注:先清空再定位
    ls   -l   |grep   "^-"  >>file_name2  #把满足结果的输出到file_name2的后面,注:不清空,在原来基础上继续存储

    12. curl 文件传输下载、POST请求、GET请求

    curl http://www.cnblogs.com/kaituorensheng/                                                    #下载网页,默认只下载HTML文档; -l只显示头部; -i 显示全部
    curl http://e.hiphotos.baidu.com/image/pic/item/50da81cb39dbb6fd1e165c260a24ab18972b3764.jpg   #下载图片
    curl "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"                                   #获取表单,参数birthyear=1905,press=OK"

    请求

    curl  -X POST http://ip:port/test -d "id=1234&type=3"

    发送带参数的GET请求 (带参数,要把链接引起来)

    curl  "http://test.abc.com/api/test/create_test?flow_id=1&obj_id=3"

    13. 软链接

    ln -s src_name  ln_name   #建立软链接,这里的src_name可以是文件名也可以是目录名
    rm ln_name                #删除软链接

    14. xargs

    批量杀死多个进程,例如批量杀死所有的python进程

    ps -ef | grep python | awk '{print $2}' | xargs sudo kill -9

    批量解压,例如批量解压后缀为tar.gz的文件

    ls | grep tar.gz | xargs -n1 tar zxvf

    注:这里-n1意思是每次只传入一个参数。对比

    $echo 1 2 3 4 | xargs -n1 echo 
    1
    2
    3
    4
    
    $echo 1 2 3 4 | xargs -n2 echo 
    1 2
    3 4
    
    $echo 1 2 3 4 | xargs -n3 echo 
    1 2 3
    4

    15. tail -f

    可以得到新追加到文件中的信息,常用来跟踪日志文件

    tail -f RnLog

    16. lsof

    用途:查找出占用了某个端口的程序和其对应的PID

    sudo lsof -i:8087

    17. 通过关键字找文件

    grep -r "12.34.56.78" /var/log

    18. grep 或

     cat deldel | grep -E 'LoadRefData|afads'

     拓展:http://www.cnblogs.com/perfy/archive/2012/07/24/2606101.html

  • 相关阅读:
    数据结构(1)
    数据库知识(2)
    Leetcode每日一题(1)
    数据库知识(1)
    Redis之MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist………………
    mstsc远程连接本地的虚拟机步骤
    Spring Scurity入门--遇到的坑-01
    idea环境连接Oracle数据库步骤
    虚拟机oracle: ORA-12514,TNS:listener does not currently know of SID given in connect descriptor错误解决
    多模块Maven工程 install时 出现Compilation failure: Compilation failure: …………ProductServiceImpl.java:[3,26] 程序包com.ssm.dao不存在 的错误解决办法
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/3941580.html
Copyright © 2020-2023  润新知