Linux常用命令-Java web环境
阅读原文时间:2023年07月08日阅读:2

Linux 常用命令

大部分命令推荐sudo运行

  1. 端口和PID互查

    # 根据端口查询PID
    $ lsof -i:8080
    # 根据端口查询PID
    $ fuser -i 8080/tcp
    # 根据PID查占用端口
    $ lsof -Pan -p 4978 -i
    # 根据PID查占用端口
    $ netstat -plnt | grep 4978
  2. 查看已启动的java程序

    # ps命令, 常用参数
    # ps a   显示当前终端下执行的进程
    # ps c   显示进程的真实名称
    # ps e   列出程序所使用的环境变量
    # ps f   用ASCII字符显示树状结构,表达程序间的相互关系
    # ps x   显示所有进程,无论是否运行在终端上
    # ps u   显示用户相关的进程或者与用户相关的属性
    # ps r   只显示正在运行的进程
    $ ps aux | grep java
    # openjdk不支持, 需要单独安装(注意java版本)`sudo yum install java-1.8.0-openjdk-devel`
    $ jps -l
  3. 文件相关

    :'
    查看文件夹下的文件, ls命令比较理解, 就这么写了, find命令需要逐个示例
    a: 显示隐藏文件(`.`开头的文件)
    t: 根据最后修改时间排序
    r: 倒序
    l: 列表展示
    h: 文件大小格式化(如: 1K 234M 2G)
    --time-style: 日期显示格式, 我常用iso,另外支持`full-iso,long-iso,locale`
    也可以自己写, 如: --time-style=+"%Y-%m-%d %H:%M:%S %P"
    '
    $ ls -atrlh --time-style=long-iso
    # find命令格式:
    # find   path   -option   [   -print ]   [ -exec   -ok   command ]   {}
    # 以log结尾的文件(即文件名正则查询, `*`和`?`)
    $ find -name *.log
    # 空文件/目录
    $ find -empty
    # 3天内修改过的文件(改成`+`号表示3天前修改的文件)
    $ find -ctime -3
    # 删除3天前修改的日志文件(-exec/-ok后面跟对文件的命令, 区别是ok会再操作前询问, exec不会)
    $ find -name *.log -mtime +3 -ok rm {} \;
    # 列出大于1MB的文件
    # size 支持的单位: bcwkMG, 分别是:
    # 其中bcw不常用, 自行百度(注意b不是byte), k为KB, M为MB, G为GB
    $ find -size +1M -exec ls -l {} \;
    # 查找nginx.conf文件位置(走索引比较快, 需要安装mlocate)
    $ locate nginx.conf
  4. 查日志常用(文本文件)

    # 示例文件为log.log
    # 查看最后10行
    $ tail log.log
    # 查看文件并监听文件内容(会将文件变更内容持续输出到屏幕, Ctrl-C 结束)
    $ tail -f log.log
    # 查看最后10M文件内容
    $ tail -c 1M log.log
    # 查看文件, 并忽略前100行
    $ tail -n +100 log.log
    # 打印2-5行
    $ sed -n '2,5p' test.txt
    # 正则, 查到字符串"15:56:39.745"开始, 到第5行结束,
    $ sed -n "/15:56:39.745/,5p" log.log
    # 由于awk命令较为复杂, 不做展示
  5. grep 字符过滤, 支持正则

    # 查log.log文件中包含abcdef的行, -i表示忽略大小写
    $ grep "abcdef" log.log -i
    # 查当前目录包含"2021"的文件
    $ ls -trlh | grep 2021
  6. 临时启用/取消放行防火墙端口

     firewall-cmd --add-port 8082/tcp
     firewall-cmd --remove-port=****/tcp