美文网首页
常用Linux命令整理

常用Linux命令整理

作者: Huang远 | 来源:发表于2018-09-27 22:47 被阅读0次

    PS:整理一下日常工作中用到的linux命令,偶尔忘记了也可以快速回忆

    ssh

    登录远程服务器,shh 用户名@IP地址,例如 `ssh huangy@10.111.32.21`。登录之后,如果想退出,可以使用`logout`退出。
    常用参数:
    (1)-p : 指定远程服务器的端口
    

    tail

    从末尾查看文件,常用`tail -f XXXX`
    常用参数:
    (1)-f : 查看文件的新添加的内容
    (2)-n : n可以是任意数字,查看从末尾开始的n行
    

    head

    从头查看文件,常用`tail -100 XXXX`
    常用参数:
    (1)-n : n可以是任意数字,查看从头开始的n行
    

    ps

    查看名称对应的进程,常用`ps aux | grep XXX`,ps aux按照指定格式打印进程信息。
    ps aux输出格式:
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND<br>
    格式说明:
    USER: 行程拥有者
    PID: pid
    %CPU: 占用的 CPU 使用率
    %MEM: 占用的记忆体使用率
    VSZ: 占用的虚拟记忆体大小
    RSS: 占用的记忆体大小
    TTY: 终端的次要装置号码 (minor device number of tty)
    
    STAT: 该行程的状态,linux的进程有5种状态:
        D 不可中断 uninterruptible sleep (usually IO)
        R 运行 runnable (on run queue)
        S 中断 sleeping
        T 停止 traced or stopped
        Z 僵死 a defunct (”zombie”) process
            注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).
    
    START: 行程开始时间 
    TIME: 执行的时间 
    COMMAND:所执行的指令
    

    free

    查看内存使用情况,常用`free -m`
    真正未用到的内存数(可用内存):free+buffers+cached  的值,也就是+ buffers/cache。如果这个值太小,说明内存不足了。可以考虑把其他较小的项目内存弄小
    老版本的linux,没有+ buffers/cache字段,可以使用available字段观察
    

    top

    查看内存和CPU的使用情况
    

    lsof

    查看文件的打开情况
    

    scp

    下载文件到本地,常用 `scp 登录名@IP:路径 本地路径`
     另外,如果从线上机器下载文件的时候,线上机器一般不会开放22端口,因此,往往需要选择别的端口,这时候可以用到-P参数,指定端口。例如:`scp -P 50022 登录名@IP:路径 本地路径`
    

    zcat

    查看压缩包内容,常和grep一起使用,`zcat 文件名 | grep '查找的内容' --color`
    

    cat

    查看文件内容,常和grep一起使用,`cat 文件名 | grep '查找的内容' --color`
    

    grep

    1、匹配文本内容,常用grep -E '查找的内容' 文件名。更多用法参考:https://www.cnblogs.com/leo-li-3046/p/5690613.html
    参数:
    --color 把匹配的内容显示为红色
    -E 使用正则匹配
    -A10 显示匹配行后面10行
    -B10 显示匹配行前面10行
    -C10 显示匹配行前后10行
    -c 显示匹配行的计数
    2、grep实现and语义:grep 'pattern1' filename | grep 'pattern2',不过一般情况下,搜索日志需要搜索整个文件,因此使用cat和grep搭配使用:cat filename | grep 'pattern1' | grep 'pattern2'
    3、假如一页无法显示完,需要grep、cat、more结合使用,例如 cat install.log | grep “i686”| more
    (1)在more 文件名下,空格向后一页,ctrl + B往前一页。在cat install.log | grep “i686”| more情况下,无法使用ctrl + B往前一页
    (2)在这种情况下,推荐使用cat test.text | grep -C100 '2' | less,可以达到more一样的效果,d往后翻页,b往前翻页

    curl

    1、默认模拟get请求:curl -u username https://api.github.com/user?access_token=XXXXXXXXXX

    2、模拟post请求:curl -u username --data "param1=value1&param2=value" https://api.github.com

    iptables

    1、使用iptables -nvL查看防火墙开放的端口

    image.png

    如图: dpt:9001表示9001端口开放; dpts:31000:38000表示31000到38000之间的端口开放

    2、开放端口:

    // 开放22端口
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
    
    // 开放范围的端口
    iptables -A INPUT -p tcp --dport 4800:4900 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 4800:4900 -j ACCEPT
    
    // 保存配置:
    /etc/rc.d/init.d/iptables save
                   
    // 重启服务:
    /etc/init.d/iptables restart
    

    netstat

    1、使用netstat -anp |grep 端口号,如果对应端口显示情况如下:

    image.png
    如图,表示3306端已经被占用

    telnet

    1、登录远程:telnet ip port,比如说telnet localhost 8080

    剪切文本

    假如需要先进行正则匹配,然后再剪切出所需要的文本,该怎么做?
    只是利用grep,正则匹配返回的是一整行,如果我只想要其中某部分呢?
    我提供一个方法(网上各位大神肯定有更好的哈):
    zcat wechat-union-core-2018-09-19.*.log.zip | grep 'asyncLog upload, statParamMap' | cut -d { -f 2 | cut -d } -f 1
    (1)先利用grep筛选出满足条件的行
    (2)然后利用cut -d对行进行分割,文中是利用“{”及“}”做了2次分割
    (3)再利用-f参数,选择需要的部分,文中先选择了第2部分,在此基础上,再选择第1部分
    PS:这种方法的使用场景还是比较狭隘,望赐教

    参考:
    https://www.cnblogs.com/gbyukg/p/3326825.html
    https://www.cnblogs.com/zongfa/p/7967935.html

    相关文章

      网友评论

          本文标题:常用Linux命令整理

          本文链接:https://www.haomeiwen.com/subject/hkgyoftx.html