1.linux通配符
通配符 | 含义 |
* | 匹配任意长度的任意字符 |
? | 匹配任意单个字符 |
[ ] | 匹配指定范围内的任意单个字符 |
[^] | 匹配指定范围外的任意单个字符 |
[[:upper:]]: 所有大写字母。
[[:lower:]]: 所有小写字母。
[[:alpha:]]: 所有字母。
[[:digit:]]: 所有数字。
[[:alnum:]]: 所有数字和字母。
[[:space:]]: 所有空白字符。
[[:punct:]]: 所有标点符号。
2.grep 命令常见参数及使用方法
-i 忽略大小
-n 打印行号
-v 反向过滤内容
-r 目录递归搜索
-l 打印模式匹配到的文件
-w 精确匹配整个单词
-o 仅输出匹配到的内容
-A 打印匹配到行之后的多少行 其后加数字
-B 打印匹配到行之前的多少行 其后加数字
-C 打印匹配到行的前后多少行 其后加数字
-E 代表开启扩展正则表达式
3.硬件时钟和系统时钟。
硬件时钟是自己电脑的纯硬件时间,通常是主板时间 。
系统时钟是自己电脑的操作系统时间,这个时间在安装操作系统的时候就设置过了。
hwclock 是查询 linux 硬件时间
date 命令是获取系统时间
hwclock 常用修改参数
-s, 设置系统时间从硬件时间来
-w, 设置硬件时间从当前系统时间获取
4.su 指令
1)su命令和su - 命令最大的本质区别就是:
- 前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
- 而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。
例如:
[root@zcf ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@zcf ~]# su zcf
[zcf@zcf root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[zcf@zcf root]$ exit
exit
[root@zcf ~]# su - zcf
Last login: Mon Jul 18 17:55:00 CST 2022 on pts/0
[zcf@zcf ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/zcf/.local/bin:/hom e/zcf/bin
2)参数:-c :可以变更账户的使用者,然后执行对应的命令完成后切换回来。
[root@zcf ~]# su - zcf -c 'echo $HOME'
/home/zcf
5.who 命令
打印当前是哪些用户正在登录的详细信息
1)基本指令:who
2)参数:-b:指出最近系统启动时间和日期。
-r: 显示当前进程的运行级别。
[root@zcf ~]# who -b
system boot 2022-07-18 14:24
[root@zcf ~]# who -r
run-level 5 2022-07-18 14:24
6.w 命令
显示谁登录过系统并且现在在做什么。
[root@zcf ~]# w
19:50:32 up 2 min, 2 users, load average: 0.45, 0.45, 0.19
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
zcf :0 :0 19:48 ?xdm? 18.62s 0.17s /usr/libexec/gn
root pts/0 192.168.186.1 19:50 0.00s 0.03s 0.00s w
命令第一行:显示当前时间;上次启动到运行总共多长时间;当前登录用户个数;系统平均负载。
7.uname 命令
打印详细的系统信息。
-a:按下边的顺序打印所有信息
-s:打印内核名称
-n:打印网络节点主机名
-r: 打印内核发行编号
-v: 打印内核版本
-m:打印硬件名称
-p: 打印处理器类型
-i: 打印硬件平台
-o: 打印操作系统
[root@zcf ~]# uname
Linux
[root@zcf ~]# uname -a
Linux zcf 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@zcf ~]# uname -s
Linux
[root@zcf ~]# uname -n
zcf
[root@zcf ~]# uname -r
3.10.0-1160.el7.x86_64
[root@zcf ~]# uname -v
#1 SMP Mon Oct 19 16:18:59 UTC 2020
[root@zcf ~]# uname -m
x86_64
[root@zcf ~]# uname -p
x86_64
[root@zcf ~]# uname -i
x86_64
[root@zcf ~]# uname -o
GNU/Linux
8.uptime 命令
显示系统自运行以来多长时间
[root@zcf ~]# uptime
20:05:35 up 17 min, 2 users, load average: 0.03, 0.04, 0.09
9.last 命令
显示最近登录过的用户 通常用来排查定位哪些用户登录过系统
[root@zcf ~]# last
root pts/0 192.168.186.1 Mon Jul 18 19:50 still logged in
zcf :0 :0 Mon Jul 18 19:48 still logged in
reboot system boot 3.10.0-1160.el7. Mon Jul 18 19:48 - 20:06 (00:18)
root pts/0 192.168.186.1 Mon Jul 18 14:26 - crash (05:21)
zcf :0 :0 Mon Jul 18 14:25 - crash (05:22)
10.dmesg命令
[root@zcf ~]# dmesg
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro spectre_v2=retpoline rd.lvm.lv=centos/root rhgb quiet LANG=en_US.UTF-8
11.free命令
显示系统内存的使用情况。
1)参数:free -m和 free -h
[root@zcf ~]# free
total used free shared buff/cache available
Mem: 995676 711332 78220 16104 206124 125036
Swap: 2097148 46300 2050848
[root@zcf ~]# free -m
total used free shared buff/cache available
Mem: 972 694 75 15 202 122
Swap: 2047 45 2002
[root@zcf ~]# free -h
total used free shared buff/cache available
Mem: 972M 694M 75M 15M 202M 122M
Swap: 2.0G 45M 2.0G
12. ps 命令
打印当前系统进程情况的快照。
1)linux上进程有5种状态:
1.运行(正在运行或在运行队列中等待)。
2.中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)。
3.不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)。
4.僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)。
5.停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)。
2)ps工具标识进程的5种状态码:
R 运行 runnable (on run queue)
S 中断 sleeping
D 不可中断 uninterruptible sleep (usually IO)
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
ps 用于查看当前进程; ps -ef 用于查看当前所有的进程。
其他常用参数如下:
1.ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2.ps -A 显示所有程序。
3.ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4.ps -e 此参数的效果和指定"A"参数相同。
5.ps e 列出程序时,显示每个程序所使用的环境变量。
6.ps -a 列出所有运行中的进程。
7. ps -aux 使用BSD语法显示全部进程信息,包括无终端的(x)和针对用户(u)的进USER,PID,%CPU,%MEM等
[root@zcf ~]# ps -aux |head -n 5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.4 193968 4320 ? Ss 10:52 0:01 /usr/lib/systememd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 10:52 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 10:52 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 10:52 0:00 [ksoftirqd/0]
8.ps -ef和ps -eF 使用标准语法显示当前系统所有进程.
[root@zcf ~]# ps -ef | head -n5
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:52 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 10:52 ? 00:00:00 [kthreadd]
root 4 2 0 10:52 ? 00:00:00 [kworker/0:0H]
root 6 2 0 10:52 ? 00:00:00 [ksoftirqd/0]
[root@zcf ~]# ps -eF | head -n5
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 1 0 0 48492 4320 0 10:52 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 0 0 0 10:52 ? 00:00:00 [kthreadd]
root 4 2 0 0 0 0 10:52 ? 00:00:00 [kworker/0:0H]
root 6 2 0 0 0 0 10:52 ? 00:00:00 [ksoftirqd/0]
USER:表示用户名
UID:表示用户id
PID:表示进程id
PPID:表示父进程id
%CPU:表示cpu占用率
%MEM:表示内存占用率
VSZ:表示虚拟内存
RSS:表示实际内存
TTY:表示是在那个终端机上面运行,如与终端机无关,则显示?。
STAT:表示进程运行状态
START:启动时间
TIME:进程运行了多长时间
13.top命令
显示Linux进程信息。
1)基本命令:top[参数]
2)命令功能:显示当前系统正在执行的进程的相关信息
[root@zcf ~]# top
top - 13:40:46 up 2:25, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 211 total, 2 running, 209 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995676 total, 67480 free, 720900 used, 207296 buff/cache
KiB Swap: 2097148 total, 2029564 free, 67584 used. 108292 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4823 root 20 0 162248 2320 1572 R 0.7 0.2 0:00.09 top
745 root 20 0 295376 1772 1304 S 0.3 0.2 0:13.42 vmtoolsd
1 root 20 0 193968 4416 2436 S 0.0 0.4 0:02.28 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:00.28 ksoftirqd/0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:00.62 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.07 watchdog/0
第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:
13:40:46 — 当前系统时间
up 2:25 — 系统已经运行2小时25分钟
3users — 当前有3个用户登录系统
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
第二行,Tasks — 任务(进程),具体信息说明如下:
系统现在共有211个进程,其中处于运行中的有2个,209个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个.
第三行,cpu状态信息,具体属性说明如下:
0.0%us — 用户空间占用CPU的百分比。
0.3% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
99.7% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行,内存状态,具体信息如下:
995676 total — 物理内存总量
720900 used — 使用中的内存总量
67482 free — 空闲内存总量
207296 buffers — 缓存的内存量
第五行,swap交换分区信息,具体信息说明如下
2097148 total — 交换区总量
67584 used — 使用的交换区总量
2029564 free — 空闲交换区总量
108292 cached — 缓冲的交换区总量
第六行 空白
第七行 各进程(任务)的状态监控,项目列信息说明如下:
PID:进程ID
USER:用户名
PR:进程优先级
NI:nice值,负值优先级高,正值优先级低
VIRI:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:共享内存大小,单位kb
S :进程状态
%CPU:上次更新到现在的CPU时间占用百分比
%MEM: 进程使用的物理内存百分比
TIME+ :进程使用的CPU时间总计,单位1/100秒
COMMAND :进程名称(命令名/命令行)