1. 磁盘管理
- 当一个磁盘设备安装到系统后,先要进行分区,然后在分区中装入文件系统,最后将分区挂载到linux文件目录中。
lsblk -l list block ,列出块设备的挂载信息以及所用的文件系统mount /dev/sdb5 /mnt : 将/dev/sdb5这个块设备挂载到/mnt目录下unmount /mnt : 取消挂载在/mnt目录下的块设备unmount /dev/sdb5 :取消指定的块设备的挂载mount -o ro /dev/sdb5 /mnt : ro readonlymount -o noexec /dev/sdb5 /mnt : 禁止设备执行可执行文件free -m : 显示内存的使用情况,以m为单位echo 1 > /proc/sys/vm/drop_caches :释放cache的命令。echo 2 > /proc/sys/vm/drop_caches :清除目录缓存和inodes。echo 3 > /proc/sys/vm/drop_caches :清除内存页的缓存。
1.1 缓存和缓冲区的区别
cached : 缓存,用于读取数据时,加速使用的。如将磁盘内容缓存到内存buffers :缓冲区, 用于给写入数据加速使用的。如先将数据写入内存缓冲区,当到达一定数量在一次性写入磁盘。
1.2 swap交换分区
- swap是linux系统磁盘管理的一个特殊的分区。
- 当实际物理内存不足时,操作系统会从整个内存中,取出一部分暂时还没在使用的内存,拿出来放到交换分区,从而提供给当前正在运行的程序更多的内存空间。
2. 进程管理
2.1 ps命令
ljs@omnisky:/dev$ ps
PID TTY TIME CMD
33828 pts/8 00:00:00 ps
36758 pts/8 00:00:00 bash
PID : 进程id
TTY : 进程所属的控制台号码
TIME : 进程锁使用CPU的总时间
CMD : 正在执行的系统命令名称
ps -ef
- -e 列出全部的进程 等价于-A
- -f 显示全部的字段
- e 列出进程信息时,添加每个进程所在的环境变量(参数前不加-)
- f 以ASCII码字符显示进程间的关系(参数前不加-)
ljs@omnisky:/dev$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 4月12 ? 00:00:14 /sbin/init nosplash
systemd+ 1377 1 0 4月12 ? 00:00:00 /lib/systemd/systemd-timesyncd
root 1399 1 0 4月12 ? 00:00:00 /sbin/rpcbind -f -w
root 1445 2 0 4月12 ? 00:00:00 [UVM global queu]
root 3321 3277 0 4月12 ? 00:00:00 sh -c java $JAVA_OPTS -jar /app.jar
root 3364 2396 0 4月12 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 4444 -container-ip 172.17.0.6 -container-port 3306
3000 4180 4174 1 4月12 ? 02:06:16 /bin/java -server -Xms200000000 -Xmx200000000 -Xmn100000000 -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:Initiati
UID :用户id
PID :进程标识号
PPID : 进程的父进程标识号
C : 表示CPU资源使用的百分比
STIEM : 进程启动时间
TTY : 终端设备号,如果是? 表示该进程并不是由终端发起
TIME : 进程执行时间
CMD : 进程的名称或对应的路径,以及执行参数
ps aux
- a : 显示所有进程,包括其他用户的进程信息
- u : 显示进程被哪个用户所执行
- x : 显示所有进程
ljs@omnisky:/dev$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 225996 9644 ? Ss 4月12 0:14 /sbin/init nosplash
root 2 0.0 0.0 0 0 ? S 4月12 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? I< 4月12 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? I< 4月12 0:00 [mm_percpu_wq]
root 8 0.0 0.0 0 0 ? S 4月12 0:13 [ksoftirqd/0]
root 9 0.2 0.0 0 0 ? I 4月12 14:55 [rcu_sched]
root 10 0.0 0.0 0 0 ? I 4月12 0:00 [rcu_bh]
USER : 进程所属用户
PID: 进程pid号
%CPU :CPU使用百分比
%MEM :内存使用百分比
VSZ :该进程的swap内存单位
RSS : 进程所占用的内存量
TTY : 进程的终端信息
STAT :表示进程此时的状态
S:终端睡眠中,可以被唤醒
s:这个进程含有子进程,就会显示s
R: 这个进程运行中
D: 这个进程睡眠中,且不可中断
T: 进程已停止
Z: 进程是僵尸进程
+: 前台进程
N:低优先级进程
<:高优先级进程
L:该进程已被锁定
TIME:进程运行时间
CMD : 执行的命令
ps -u root
ps -eH
pstree
pgrep nginx
kill -l
- 列出所有的信号
- 1:挂起进程
- 2:结束进程信号,但不是强制性的。 如ctrl+c就是发送信号2。用于通知前台进程组终止进程
- 3:退出信号。 如用ctrl+\ 发送信号3。 意义上类似于程序错误信号
- 9:强制结束进程信号,该信号不可被阻塞、处理、忽略。
- 15:kill默认使用的信号,正常结束进程。 但该信号可以被阻塞或处理。即我们可以在程序中捕捉信号进行处理,从而不会退出程序。
- 20:暂停进程,ctrl+z就是发送20信号。 但是该信号可以被处理或忽略。
- 0 : 常用在shell脚本中。用于判断进程号是否存在,不做其他任何事情
kill -0 6273 。然后查看$?判断是否该进程号存在 killall vim
pkill vim
pkill -9 -t pts/2
2.2 top命令
是linux的资源管理器,实时监控系统处理器状态,以及其他硬件负载信息还有动态的进程信息 top -p 3049 : 监测指定pid的进程信息
进入top后可以输入如下指令
- z:打开/关闭颜色
- 1:查看linux逻辑cpu个数
- M: 按照内存使用百分比从大到小排序
- c:显示进程命令的绝对路径
- d: 设置刷新时间间隔
- n:设置刷新次数
- b: 在打开颜色后,按b会加粗一列的信息,然后可以通过
ljs@omnisky:~$ top
top - 09:54:13 up 4 days, 22:05, 5 users, load average: 46.18, 47.83, 48.57
Tasks: 965 total, 21 running, 632 sleeping, 0 stopped, 0 zombie
%Cpu(s): 64.3 us, 10.2 sy, 0.0 ni, 25.5 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 13165118+total, 24232436 free, 53671248 used, 53747500 buff/cache
KiB Swap: 31250428 total, 31247868 free, 2560 used. 76906944 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20880 wj 20 0 56.689g 0.035t 110756 R 2853 28.4 188891:06 python
27330 lee 20 0 51808 34640 3356 R 100.0 0.0 679:24.22 run
27410 lee 20 0 42236 25192 3320 R 100.0 0.0 678:23.31 run
27595 lee 20 0 45208 33452 3420 R 100.0 0.0 678:11.66 run
27654 lee 20 0 48800 36996 3376 R 100.0 0.0 679:09.84 run
27950 lee 20 0 58760 46480 3480 R 100.0 0.0 678:58.95 run
28054 lee 20 0 65548 53052 3320 R 100.0 0.0 678:25.62 run
28107 lee 20 0 68932 56500 3384 R 100.0 0.0 678:41.72 run
28246 lee 20 0 75708 62428 3356 R 100.0 0.0 678:40.50 run
28292 lee 20 0 79092 65756 3300 R 100.0 0.0 678:33.92 run
09:54:13 up 4 days, 22:05: 当前系统时间以及运行了多久
5 users : 当前机器有几个用户正在使用
load average: 46.18, 47.83, 48.57 显示系统的平均负载情况,分别是1分钟,5分钟,15分钟的平均值
Tasks: 任务的运行情况
%Cpu(s): cpu使用情况
us:用户使用cpu百分比
sy:系统内核空间使用cpu百分比
ni:用户进程空间使用cpu百分比
id: 空闲cpu百分比
wa:等待输入输出的cpu百分比
KiB Mem : 内存使用情况
KiB Swap: 交换空间使用情况
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID:进程号
USER:所属用户
PR:优先级
NI:nice值,越高表示优先级越高
VIRT:进程使用的虚拟内存总量 VIRT=swap+RES
RES:进程使用的物理内存大小
SHR:共享内存带下,单位是kb
S:进程的状态
2.3 nohup 与 & 命令
使用& 后台运行程序:
- 结果会输出到终端
- 使用
Ctrl + C 发送SIGINT 信号,程序免疫 - 关闭
session 发送SIGHUP 信号,程序关闭 - 后台运行
使用nohup 运行程序:
- 结果默认会输出到当前目录的
nohup.out 文件中 - 若当前目录禁止写入,则输出到
$HOME/nohup.out 文件中 - 使用
Ctrl + C 发送SIGINT 信号,程序关闭 - 关闭
session 发送SIGHUP 信号,程序免疫 - 还是前台运行
nohup ping baidu.com &
nohup ping baidu.com >& /dev/null &
2.4 进程前后台切换
ctrl+z :将进程暂停后台挂起。jobs : 查看所有暂停的进程bg [序号] :将暂停的进程后台运行fg [序号] :将暂停的进程或后台进程前台运行
2.5 runlevel 运行级别
- 0:关机
- 1:单用户模式
- 2:多用户单机模式
- 3:多用户网络模式
- 4:用户自定义的级别
- 5:图形化界面的多用户模式
- 6:重启机器
init 6
2.6 性能检测工具
安装 htop
yum install htop -y
安装 glances
pip3 install glances
yum install glances -y
3. 网络管理
3.1 ifconfig命令
ifconfig eno1 down : 关闭网卡eno1ifconfig eno1 up :启用网卡eno1ifconfig eno1:0 10.128.217.173 netmask 255.255.192.0 up :给网卡eno1添加一个新ip地址ifconfig eno1:1 10.128.217.173/24 up :给网卡eno1添加一个新的ip地址ifconfig eno1 hw ethor 08:be:ac:13:33:fd :修改网卡mac地址
通过ifconfig只是临时修改网络配置,永久修改需要修改配置文件
3.2 route 命令
route -n :查看路由表 -n表示不进行dns解析
ljs@omnisky:/etc$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.192.1 0.0.0.0 UG 600 0 0 wlx08beac1333fd
10.112.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eno1
10.128.192.0 0.0.0.0 255.255.192.0 U 600 0 0 wlx08beac1333fd
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
Destination 网络号。 全0表示默认网络,当无法匹配的时候就发往这个网络的网关。
Gateway: 网关地址。 表示目的地址属于该网络则发往这个网关地址。
Genmask:子网掩码地址的表示
Flags:路由标记,标记当前的网络状态
U:up运行状态
G:表示这是一个网关路由器
H: 表示这个网关是一个主机
!:
表示当前这个路由已经禁止
route del defualt : 删除默认网关route add default gw 10.128.192.1 :添加默认网关地址
3.3 ip命令
ip help ip addr show 查看,显示网络设备信息ip -s link show dev eno1 显示网络设备详细的数据包收发大小情况ip link set eno1 down 关闭网卡ip link set eno1 up 启动网卡ip link set eno1 address 08:be:ac:13:33:fd 设置mac地址ip address add 10.128.217.173/24 dev eno1 给网卡添加ip地址ip address del 10.128.217.173/24 dev eno1 给网卡删除ip地址
3.4 netstat命令
用于显示网络连接情况,路由表信息,端口状态,网络连接情况等信息
netstat -an
- -a 显示所有的套件字信息
- -n 显示数字地址而非主机名
netstat -an
1 Active Internet connections (servers and established)
2 Proto Recv-Q Send-Q Local Address Foreign Address State
3 tcp 0 0 127.0.0.1:9003 0.0.0.0:* LISTEN
4 tcp 0 0 127.0.0.1:41131 0.0.0.0:* LISTEN
5 tcp 0 0 127.0.0.1:41099 0.0.0.0:* LISTEN
6 tcp 0 0 127.0.0.1:40683 0.0.0.0:* LISTEN
proto : 套接字的协议是什么
recv-Q: 连接这个套接字的用户还未拷贝的字节数
send-Q:远程主机还未确认的字节数
local Address:套接字本地的地址和端口号
Foreign Address : 套接字远程主机地址和端口号
State: 套接字的运行情况
netstat -tunlp : 查看机器上正在运行的所有端口情况
- -t:显示出tcp的连接情况
- -u:显示出udp的连接情况
- -n:不进行dns解析
- -l:只显示正在监听的套接字情况
- -p:显示出套接字所属的进程id和进程名
netstat -rn : 显示系统路由表情况,等同于route -nnetstat -i : 显示所有网络接口的列表情况
[root@ljs ~]
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0 1500 2805630 0 0 0 2834847 0 0 0 BMRU
eth0 1500 130812340 0 0 0 124754495 0 0 0 BMRU
lo 65536 12750 0 0 0 12750 0 0 0 LRU
veth2d005c5 1500 854377 0 0 0 888622 0 0 0 BMRU
vetha7a633c 1500 1484136 0 0 0 1637679 0 0 0 BMRU
vethdb62ad0 1500 394449 0 0 0 283901 0 0 0 BMRU
vethe690758 1500 1586998 0 0 0 1613933 0 0 0 BMRU
iface: 网络设备的名字
MTU:最大传输单元,单位字节
RX-OK/TX-OK : 正确接收多少数据包,正确发送多少数据包
RX-ERR/TX-ERR:接收、发送数据包的时候,丢弃了多少数据包
RX-OVR/TX-OVR : 由于错误遗失了了多少数据包
Flg:标记
L:回环地址的含义
R: 这个网络接口正在运行中
U:接口正在处于活动的状态
B:设置了广播地址
M:接收所有的数据包
O:表示在接口上禁止arp
P:端对端的连接。
3.5 ping命令
ping -c 4 www.baidu.com : 指定发送次数
3.6 telnet命令
用于检测某个端口是否开放
telnet 123.296.16.61 3306
|