获取帮助的方法:以[ls]为例
- [ls] --help
- info [ls]
- man [ls] --其中135 最常用
- man 1 用户命令 --ls/cp/mv..
- man 2 系统调用
- man 3 库调用
- man 4 特殊文件
- man 5 配置文件和文件格式 --fstab/hosts..
- man 6 游戏
- man 7 杂项
- man 8 系统管理命令 --mount/fsck..
其中模糊查询:
man -k pass
man -f passwd 查询显示对应章节
-type[ls]--检查并显示给定的命令类型
[root@localhost ~]# type ls
ls 是 `ls --color=auto' 的别名
[root@localhost ~]# type cat #外部命令显示命令的路径
cat 已被哈希 (/usr/bin/cat)
[root@localhost ~]# type cd #显示命令是一个内置命令
cd 是 shell 内嵌
对别名的补充说明:
alias查询当前系统中的所有别名
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'......
永久定义别名:
打开配置文件 /etc/bashrc结尾添加;
临时定义别名:
[root@localhost ~]# alias la="ls -lah"
释放别名:
[root@localhost ~]# unalias la
which查询命令对应的程序位置
[root@localhost ~]# which cat
/bin/cat
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@localhost ~]# which useradd
/usr/sbin/useradd
进程管理:
进程: 当可执行文件,运行后在系统中生成的记录,以及该进程所消耗的资源(cpu, 内存,磁盘,网络等), linux中的进程称之为守护进程
进程状态:(面试要点)
[root@client ~]# man ps #man ps 进入进程状态集 PROCESS STATE CODES
/STATE
PROCESS STATE CODES
Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a
process:
D uninterruptible sleep (usually IO) # 不可中断休眠态
R running or runnable (on run queue) # 运行态
S interruptible sleep (waiting for an event to complete) # 休眠态
T stopped by job control signal # 停止态
t stopped by debugger during the tracing # 调试中的停止态
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen) #死亡态
Z defunct ("zombie") process, terminated but not reaped by its parent #僵尸态
For BSD formats and when the stat keyword is used,
additional characters may be displayed:
< high-priority (not nice to other users) # 高优先级
N low-priority (nice to other users) # 低优先级
L has pages locked into memory (for real-time and custom IO) #锁内存页
s is a session leader # 进程领导者
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) # 多线程
+ is in the foreground process group #前台进程组
前后台切换-以钟表为例
[root@client ~]# xclock -update 1 & # &后台运行,stopped状态,后台运行也依赖终端进行
[root@client ~]# xclock -update 1 # 前台运行
Warning: Missing charsets in String to FontSet conversion
^Z # Ctrl +Z 前台进程调到后台,并且呈现停止态
[2]+ 已停止 xclock -update 1
[root@client ~]# xclock -update 2
Warning: Missing charsets in String to FontSet conversion
^Z
[3]+ 已停止 xclock -update 2
[root@client ~]# bg 1 # 进程编号2,后台运行,bg 加编号 后台运行
bash: bg: 任务 1 已在后台
[root@client ~]# fg 1 # 进程编号1,前台运行,fg +编号前台运行
nohup xclock -update 1
^Z
[1]+ 已停止 nohup xclock -update 1
[root@client ~]# jobs # jobs 查看后台进程状态 + 表示当前的第一个进程, —表示第二个
[1]+ 已停止 nohup xclock -update 1
[2] 已停止 xclock -update 1
[3]- 已停止 xclock -update 2
[root@client ~]# kill %1 # kill % 杀进程
[1]+ 已终止 nohup xclock -update 1
[root@client ~]# kill %2
[2] 已终止 xclock -update 1
[root@client ~]# kill %3
[3]- 已终止 xclock -update 2
[root@client ~]# nohup xclock -update 1 & #脱离终端运行
[1] 26008
nohup: 忽略输入并把输出追加到"nohup.out"
[root@client ~]# kill %1
[1]+ 已终止 nohup xclock -update 1
杀进程
[root@client ~]# kill -15 18344 #(进程id) 正常结束 ,正常关闭
[root@client ~]# kill -9 18332 # 强制杀进程 ,强制关闭(kill 最高级别
在使用kill命令来终止一个很消耗资源的进程时,最强信号值是9
[root@client ~]# pkill httpd #杀一组进程 (杀进程名 别杀系统进程,杀自己创建的进程; [root@client ~]# killall httpd #杀进程名
[root@client ~]# kill -l #进程通讯机制
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
查看进程号 ps -ef |grep vim
[root@client ~]# ps -ef |grep vim
root 26768 2509 0 20:42 pts/0 00:00:00 grep --color=auto vim
查询
静态查询
[root@client ~]# ps -ef # ?表示不依赖终端运行
UID PID PPID C STIME TTY TIME CMD
进程拥有者 进程编号 父进程编号 占用CPU的百分比 进程启动时间 运行终端 占用CPU时间 进程名
root 1 0 0 8月14 ? 00:00:22 /usr/lib/s
root 2 0 0 8月14 ? 00:00:00 [kthreadd]
root 4 2 0 8月14 ? 00:00:00 [kworker/0
root 6 2 0 8月14 ? 00:00:00 [ksoftirqd
root 7 2 0 8月14 ? 00:00:00 [migration
[root@client ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
进程拥有者 进程编号 占用CPU百分比 占用内存百分比 虚拟内存 实际消耗内存 运行终端 进程状态 进程运行时间 占用CPU时间 进程名
root 2 0.0 0.0 0 0 ? S 8月14 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 8月14 0:00 [kworker/0:0H]
root 676 0.0 0.0 201328 1272 ? Ssl 8月14 0:00 /usr/sbin/gssproxy -D
avahi 682 0.0 0.0 62156 400 ? S 8月14 0:00 avahi-daemon: chroot helper
root 706 0.0 0.1 52808 2736 ? Ss 8月14 0:00 /usr/sbin/smartd -n -q never
rtkit 708 0.0 0.0 198804 1772 ? SNsl 8月14 0:03 /usr/libexec/rtkit-daemon
其中STAT进程状态,参考上面提供的进程状态;上半部分,运行队列;下半部分,内存以配置为单位。
[root@client ~]# ps auc
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1279 0.0 4.5 395072 92540 tty1 Rsl+ 8月14 0:58 X
root 2509 0.0 0.1 116672 3396 pts/0 Ss 8月14 0:01 bash #Ss休眠态
root 26294 0.0 0.0 155372 1868 pts/0 R+ 20:06 0:00 ps
动态查询
[root@client ~]# top -d 0.1 # top查询指令,-d 查询秒,显示进程信息周期
top - 20:10:10 up 1 day, 8:49, 2 users, load average: 0.10, 0.06, 0.05
当前系统时间 运行时间 当前登录用户总数 平均负载 分钟
Tasks: 216 total, 1 running, 215 sleeping, 0 stopped, 0 zombie
进程总数 1运行 215 休眠 0 停止 0僵尸态
%Cpu(s): 25.0 us, 0.0 sy, 0.0 ni, 75.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
占用CPU% 用户消耗 系统消耗 nice值调整 空闲 等待硬盘 硬中断 软中断 偷取
KiB Mem : 2027968 total, 378336 free, 847844 used, 801788 buff/cache
内存总量 空闲内存 已使用内存 缓存
# buff记录文件位置,用户存储会有一个缓存段,buff元数据信息,cache存储真正的数据,buff比cache小得多;buff文件索引,
KiB Swap: 2097148 total, 2097148 free, 0 used. 929532 avail Mem
交换分区 空闲 已用 有效的可用内存
#交换分区大小,通常是物理内存2倍,但是很大的环境就不要添加这么大的交换分区,固态硬盘速度较慢。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
进程编号 优先级 虚拟内存 实际消耗内存 共享内存 进程状态 CPU使用率 内存使用率 占用CPU使用时间 进程名
2034 root 20 0 3586448 259400 76388 S 50.0 12.8 4:10.52 gnome-shell
2502 root 20 0 699412 34284 19696 S 10.0 1.7 0:33.66 gnome-termin+
1 root 20 0 194096 7256 4236 S 0.0 0.4 0:22.34 systemd
%Cpu(s) 指的是有多少CPU核心,展开就是每个CPU平均消耗
CPU(s)展开以后就是,1展开CPU信息, 再1合并CPU
%Cpu0 : 5.0 us, 2.1 sy, 0.0 ni, 92.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 4.9 us, 2.1 sy, 0.0 ni, 93.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
#上半部分用户态,下半部分内核,系统消耗,消耗比为3:1
P cpu排序,M 内存排序
%CPU %MEM
4.7 12.8
3.3 5.2
0.0 2.8
2.0 1.7
补充信息
查询当前内核版本uname
[root@client ~]# uname -r
3.10.0-1062.el7.x86_64
[root@client ~]# uname -a
Linux client.com 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
内存
cat /proc/meminfo 查看硬件信息
[root@client ~]# cat /proc/meminfo # 内存在系统中映射的文件
MemTotal: 2027968 kB
MemFree: 407992 kB
MemAvailable: 955868 kB
CPU采集数据-uptime-对应硬件文件cat /proc/cpuinfo
[root@client ~]# uptime # 获取CPU负载
20:34:21 up 1 day, 9:13, 2 users, load average: 0.00, 0.01, 0.05
[root@client ~]# cat /proc/cpuinfo # cpu硬件对应的文件
processor : 0
vendor_id : AuthenticAMD
cpu family : 25
[root@client ~]# lscpu # 一个简单指令集,其中缓存是CPU里的缓存,不是内存中的缓存,离CPU核心越近,存储越快。硬盘-内存-三级缓存(共享)-二级缓存-一级缓存-i 文件索引,d date 数据(通过这种方式降低成本
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 1
座: 2
NUMA 节点: 1
厂商 ID: AuthenticAMD
free 查看以MB为单位的内存信息
[root@client ~]# free
total used free shared buff/cache available
Mem: 2027968 826740 410440 75000 790788 958352
Swap: 2097148 0 2097148
[root@client ~]# free -m # 显示系统内存使用情况,包括交换分区
total used free shared buff/cache available
Mem: 1980 807 400 73 772 935
Swap: 2047 0 2047
CPU-mpstat 查看进程百分比
root@client ~]# mpstat
Linux 3.10.0-1062.el7.x86_64 (client.com) 2023年08月15日 _x86_64_ (2 CPU)
20时28分50秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
20时28分50秒 all 0.18 0.00 0.13 0.01 0.00 0.01 0.00 0.00 0.00 99.66
[root@client ~]# mpstat 1 2 # 查看进程百分比,一秒一次,检查两次
Linux 3.10.0-1062.el7.x86_64 (client.com) 2023年08月15日 _x86_64_ (2 CPU)
20时29分06秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
20时29分07秒 all 2.53 0.00 0.51 0.00 0.00 0.00 0.00 0.00 0.00 96.97
20时29分08秒 all 3.05 0.00 0.51 0.00 0.00 0.00 0.00 0.00 0.00 96.45
平均时间: all 2.78 0.00 0.51 0.00 0.00 0.00 0.00 0.00 0.00 96.71
[root@client ~]# mpstat -P 0 1 2 # mpstat -P 显示特定CPU的使用率,0核心的负载,一秒一次,采集两次
Linux 3.10.0-1062.el7.x86_64 (client.com) 2023年08月15日 _x86_64_ (2 CPU)
20时29分56秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
20时29分57秒 0 2.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00
20时29分58秒 0 4.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 96.00
平均时间: 0 3.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 96.50
[root@client ~]# mpstat -P ALL 1 2 #mpstat -P ALL 1 2 # 所有核心的使用率, 1秒一次,采集2次
Linux 3.10.0-1062.el7.x86_64 (client.com) 2023年08月15日 _x86_64_ (2 CPU)
20时30分18秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest 0.00 91.49
省略···
nice值调整–nice值调整(-20~19):值越小,优先级越高
root@client ~]# renice -n -20 -p 2346
2346 (进程 ID) 旧优先级为 0,新优先级为 -20
[root@client ~]# renice -n 0 -p 2346
2346 (进程 ID) 旧优先级为 -20,新优先级为 0
[root@client ~]# nice -n -20 xclock -update 1
[root@client ~]# nice -n -20 vim # 系统设置,但是vim不需要这么高优先级,CPU会自动调整优先级