日志

查看动态日志

  1. tail -f logs/catalina.out

查找日志

  1. less logs/catalina.out
  2. 进入后
  3. # g 到达第一行
  4. # G 到达最后一行
  5. # / 向下查询
  6. # ? 向上查询
  7. # n 向下翻页
  8. # N 向上翻页

清理 journalctl 日志

日志位置:

Linux常用命令 - 图1

清理命令如下:

  1. journalctl --vacuum-size=10M

参考: https://blog.csdn.net/weixin_36198878/article/details/116666419

进程管理

查看tomcat进程

  1. ps aux | grep tomcat

杀死进程

  1. kill -9 pid

通过进程ID查看文件路径

  1. ls -l /proc/进程ID
  2. pwdx PID
  3. ll /proc/PID/cwd

查看Linux每个进程的流量和带宽

  • 安装 iftop
  1. # 安装 iftop 类似于top的实时流量监控工具
  2. yum install iftop
  3. # 安装 lsof (https://www.jianshu.com/p/a3aa6b01b2e1)
  4. yum install lsof
  • 查看
    1. iftop -i eth0 -P
    image.png

找到 占用带宽高的 进程

  1. # 根据占用端口,查询到对应的进程
  2. [root@iZds6un5pg2k5aZ ~]# lsof -i:37050
  3. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
  4. java 14248 root 89u IPv4 389402700 0t0 TCP iZds6un5pg2k5aZ:us-cli->219.138.255.25:37050 (ESTABLISHED)
  5. # 查看进程id 对应文件的所在目录
  6. [root@iZds6un5pg2k5aZ ~]# pwdx 14248
  7. 14248: /usr/local/pro_tomcat/tomcat-8.0_manage/bin

端口管理

firewall

添加

  1. firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)
  2. firewall-cmd --zone=public --add-port=80/tcp --permanent
  3. firewall-cmd --zone=public --add-service=http --permanent
  4. firewall-cmd --reload # 重新载入,更新防火墙规则

查看

  1. firewall-cmd --zone= public --query-port=80/tcp

查看开启的端口

  1. firewall-cmd --list-ports

删除

  1. firewall-cmd --zone= public --remove-port=80/tcp --permanent

参数解释

  1. add-service #添加的服务
  2. zone #作用域
  3. add-port=80/tcp #添加端口,格式为:端口/通讯协议
  4. permanent #永久生效,没有此参数重启后失效

iptables

开放端口

  1. /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  2. # 保存
  3. /etc/rc.d/init.d/iptables save

查看打开的端口

  1. /etc/init.d/iptables status

查看指定的端口号的进程情况

  1. netstat -tunlp |grep 端口号

查看哪些端口被打开

  1. netstat -anp

查看服务占用的端口

  1. ss -nutlp | grep java

image.png

参考

https://www.cnblogs.com/heqiuyong/p/10460150.html

文件管理

文件浏览

  1. # ll 显示列表
  2. # linux 中 ll 命令显示 的大bai小 是以“字节du”为单位的。
  3. # ll显示的是字节,可以zhi使用-h参数来提高文件大小的可读性,另dao外ll不是命令,是ls -l的别名
  4. ls -alh = ll -h # 以kb显示

查找文件

  1. find / -iname "*redis*"

复制文件

  1. cp -r 不保存目录属性

移动文件

  1. mv abc/demo.txt cde/

强制覆盖: /bin/mv abc/demo.txt cde/

原理如下:

  1. vi ~/.bashrc


如果你看到如下内容,以下命令都会用别名执行了,就是说自动加了 -i 参数

alias rm=’rm -i’
alias cp=’cp -i’
alias mv=’mv -i’

加了 -i 就是说明,如果有相同的文件,需要输入 y 进行确认覆盖

直接使用原始命令 /bin/mv 就可以不用确认了

查看各文件夹大小

  1. du -h --max-depth=1du

查看文件夹个数

统计当前文件夹下文件的个数

  1. ls -lR|grep "^d"|wc -l
  1. ls -l |grep "^d"|wc -l

查看磁盘占用

  • 通过 df -h 命令查看磁盘情况
  1. df -lh

image.png

  • 获取硬盘设备名称
  1. fdisk -l

image.png

nginx

启动、关闭、重载

  1. # 关闭命令:相当于找到nginx进程kill。
  2. ./nginx -s stop
  3. # 退出命令:
  4. ./nginx -s quit
  5. # 等程序执行完毕后关闭,建议使用此命令。
  6. # 动态加载配置文件
  7. ./nginx -s reload
  8. # 可以不关闭nginx的情况下更新配置文件。

系统信息

查看linux系统版本

  1. lsb_release -a

查看系统运行时长

  1. # 查看最后一次系统启动的时间。
  2. who -b
  3. # 查看当前系统运行时间
  4. who -r
  5. # Linux系统历史启动的时间
  6. last reboot
  7. # 如果只需要查看最后一次Linux系统启动的时间
  8. last reboot | head -1

用户与权限

修改密码

  1. # 没有忘记自己的密码,进行修改:
  2. $ passwd //之后会提示输入新密码 输入之后修改成功!
  3. # 以root身份修改一般用户的密码:
  4. $ passwd username(要更改密码的用户名)

更改文件拥有者 (chown )

  1. # 对于目录权限修改之后,默认只是修改当前级别的权限
  2. sudo chown root html
  3. # 如果子目录也要递归需要加R参数
  4. sudo chown -R root html

改变文件的用户组用命令 chgrp

  1. [root@linux ~]# chgrp 组名 文件或目录

其他工具

带宽测试

  1. wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
  2. chmod +x speedtest.py
  3. ./speedtest.py

speedtest.py

通过公网IP查询ip所在位置信息

  1. curl http://ip-api.com/json/117.64.250.29?lang=zh-CN

返回数据格式如下:

  1. {
  2. "status": "success",
  3. "country": "中国",
  4. "countryCode": "CN",
  5. "region": "AH",
  6. "regionName": "安徽",
  7. "city": "蓉城",
  8. "zip": "",
  9. "lat": 30.6007,
  10. "lon": 117.925,
  11. "timezone": "Asia/Shanghai",
  12. "isp": "Chinanet",
  13. "org": "Chinanet AH",
  14. "as": "AS4134 CHINANET-BACKBONE",
  15. "query": "117.64.250.29"
  16. }

nmap常用的扫描命令

  1. # 安装 https://www.linuxprobe.com/10-nmap.html
  2. yum install nmap
  3. # 在网络寻找所有在线主机
  4. nmap-sP 10.42.0.0/24
  5. # 查询不在线主机
  6. nmap -v -sP 10.42.0.0/24 |grep down

jobs 查看后台运行服务

(1)fg命令
功能:将后台中的命令调至前台继续运行
如果后台中有多个命令,可以先用jobs查看job,然后用 fg %jobnum 将选中的命令调出。

测试磁盘的读写速率

  • 通过 df -h 命令查看磁盘情况
  1. df -lh

image.png

  • 获取硬盘设备名称
  1. fdisk -l

image.png

  • 通过 hdparm 测试读取速率
  1. hdparm -tT /dev/vda1

image.png

  • hdparm -h 查看帮助
  1. -a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
  2. -A<01> 启动或关闭读取文件时的快取功能。   
  3. -c<I/O模式> 设定IDE32I/O模式。   
  4. -C 检测IDE硬盘的电源管理模式。   
  5. -d<01> 设定磁盘的DMA模式。   
  6. -f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。   
  7. -g 显示硬盘的磁轨,磁头,磁区等参数。   
  8. -h 显示帮助。   
  9. -i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。   
  10. -I 直接读取硬盘所提供的硬件规格信息。   
  11. -k<01> 重设硬盘时,保留-dmu参数的设定。   
  12. -K<01> 重设硬盘时,保留-APSWXZ参数的设定。   
  13. -m<磁区数> 设定硬盘多重分区存取的分区数。   
  14. -n<01> 忽略硬盘写入时所发生的错误。   
  15. -p<PIO模式> 设定硬盘的PIO模式。   
  16. -P<磁区数> 设定硬盘内部快取的分区数。   
  17. -q 在执行后续的参数时,不在屏幕上显示任何信息。   
  18. -r<01> 设定硬盘的读写模式。   
  19. -S<时间> 设定硬盘进入省电模式前的等待时间。   
  20. -t 评估硬盘的读取效率。   
  21. -T 评估硬盘快取的读取效率。   
  22. -u<01> 在硬盘存取时,允许其他中断要求同时执行。   
  23. -v 显示硬盘的相关设定。   
  24. -W<01> 设定硬盘的写入快取。
  25. -X<传输模式> 设定硬盘的传输模式。   
  26. -y 使IDE硬盘进入省电模式。   
  27. -Y 使IDE硬盘进入睡眠模式。   
  28. -Z 关闭某些Seagate硬盘的自动省电功能。

https://www.cnblogs.com/sylar5/p/6651784.html

查看外网IP

  1. curl members.3322.org/dyndns/getip
  2. curl icanhazip.com
  3. curl ifconfig.me
  4. curl curlmyip.com
  5. curl ip.appspot.com
  6. curl ipinfo.io/ip
  7. curl ipecho.net/plain
  8. curl www.trackip.net/i

alias 别名

  1. # 查看所有别名
  2. alias
  3. # 新增别名
  4. alias dakai='cd'
  5. # 删除别名
  6. unalias dakai

上传与下载

  1. # 安装 lrzsz
  2. yum install -y lrzsz
  3. # 上传
  4. rz
  5. # 下载
  6. sz filename

查看关机时间

  1. last -x|grep shutdown

image.png

查看日历

  1. cal

image.png

检测网站是否应用了 CDN

  1. nslookup alibaba.com

image.png

SSH 远程操作

【例1】

将HOME/src/目录下面的所有文件,复制到远程主机的

  1. $ cd && tar czv src | ssh user@host 'tar xz'
  2. # tar 命令简介
  3. # c : create 建立新的备份文件
  4. # z : 通过gzip指令处理备份文件
  5. # v : 显示指令执行过程
  6. # x : 从备份文件中还原文件

【例2】

将远程主机$HOME/src/目录下面的所有文件,复制到用户的当前目录。

  1. $ ssh user@host 'tar cz src' | tar xzv

【例3】

查看远程主机是否运行进程httpd。

  1. $ ssh user@host 'ps ax | grep tomcat'

linux命令管道符

linux 多命令

  • ; 多个命令互相不影响
  • a && b a命令执行成功才执行b命令
  • a || b a成功不执行b a失败执行b
  1. # 可用来判断第一个命令是否成功
  2. ifconfig && echo "成功" || echo “失败”
  1. # 管道命令将第一个命令的执行结果给第二个命令
  2. # 查看etc文件内容是否包含pass,并输出
  3. ls /etc | grep pass

软件安装

Java

  1. yum install java-1.8.0-openjdk

宝塔

  1. yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

数据库安装(不用宝塔时安装)

https://oneinstack.com/auto/

image.png