Linux常用命令

netstat:显示网络信息

# 或--tcp 显示TCP传输协议的连线状况
netstat -t

# 或--udp 显示UDP传输协议的连线状况
netstat -u

# 只显示监听端口
netstat -l   

# 以数字形式显示地址和端口号
netstat -n

# 显示正在使用Socket的程序识别码和程序名称。
netstat -p

# 列出所有 TCP 监听服务器端口
netstat -tlnp

top:动态监测CPU信息

查看系统和进程的整体信息。

常用参数

  1. -b 批次模式运行,通常用来将top的输出结果传送给其他程式或储存成文件。
  2. -d 指定每两次屏幕信息刷新之间的时间间隔。可以使用s交互命令来改变之。
  3. -p 监控指定进程。监控多个进程时,进程ID之间以逗号分隔,只能在命令行下使用。
  4. -q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
  5. -S 指定累计模式
  6. -s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
  7. -i 使top不显示任何闲置或者僵死进程。
  8. -c 显示整个命令行而不只是显示命令名
  9. -n top命令运行n次,一般与-b搭配使用
  10. -H 显示线程,当这个设定开启时, 将显示所有进程产生的线程。
  11. -I 显示空闲的进程。
# 可以单独查看某个进程的信息
top -p pid

# 显示一个进程中各个线程CPU的占用率
top -p pid -H

我们通过 top 命令的整体信息部分,就可以判断服务器的健康状态。如果 1 分钟、5 分钟、15分钟的平均负载高于CPU核数,说明系统压力较大。如果物理内存的空闲内存过小,则也证明系统压力较大。

如果一个总核数=8核心的CPU,理论上平均负载达到16,也还可以坚持很长一段时间。

如果1分钟、5分钟以及15分钟全部超过CPU的总核心数(必须引起警觉),这个时候就要查看底部的进程信息了。


执行top命令,前面几行信息如下所示:

top - 15:28:10 up 141 days,  3:52,  1 user,  load average: 0.01, 0.02, 0.05
Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3879592 total,   123704 free,  2393532 used,  1362356 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   999516 avail Mem 

第一行:系统负载情况

top - 15:28:10 up 141 days,  3:52,  1 user,  load average: 0.01, 0.02, 0.05
Tasks: 90 total系统中的进程总数
1 running正在运行的进程数
89 sleeping睡眠的进程数
0 stopped正在停止的进程数
0 zombie僵尸进程数。如果不是 0,则需要手工检查僵尸进程

第二行:系统进程情况

Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
内容说明
15:28:10系统当前时间
up 141 days系统的运行时间.本机己经运行141天了
1 user当前登录了1个用户
load average: 0.01, 0.02, 0.05系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载

第三行:系统CPU使用情况

%Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

如果多个CPU,想查看每一核心分别的负载情况,在top命令下,按数字键"1"可以切换查看

%Cpu0  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
内容说明
%Cpu(s): 0.5 us用户模式占用的 CPU 百分比
0.3 sy系统模式占用的 CPU 百分比
0.0 ni改变过优先级的用户进程占用的 CPU 百分比
99.2 ididle缩写,空闲 CPU 占用的 CPU 百分比
0.0 wa等待输入/输出的进程占用的 CPU 百分比
0.0 hi硬中断请求服务占用的 CPU 百分比
0.0 si软中断请求服务占用的 CPU 百分比
0.0 stst(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比

第四行:系统物理内存使用情况

KiB Mem :  3879592 total,   123704 free,  2393532 used,  1362356 buff/cache
内容说明
KiB Mem : 3879592 total物理内存的总量,单位为KB
123704 free空闲的物理内存数量
2393532 used己经使用的物理内存数量
1362356 buff/cache作为缓冲的内存数量

第五行:swap交换分区内存

KiB Swap:        0 total,        0 free,        0 used.   999516 avail Mem 

在Linux操作系统分区时,最少需要3个分区:

/boot分区 : 系统分区

swap交换分区 :一般情况下为内存的1~2倍,但是尽量不要超过2G

/分区 :根分区,所有文件都存放于此。

swap分区:就是当计算机的内存不足时,系统会自动从硬盘中划出一块区域充当内存使用。

内容说明
KiB Swap: 0 total交换分区(虚拟内存)的总大小
0 free空闲交换分区的大小
0 used已经使用的交换分区的大小
999516 avail Mem可用内存

系统的进程信息

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                          
 6389 root      20   0 3689916 807876   9668 S   0.3 20.8 640:00.33 java                                                                                                                             
15839 mysql     20   0 1883872 504880  11036 S   0.3 13.0 986:28.58 mysqld                                                                                                                           
16120 root      20   0 3586412 310108   8816 S   0.3  8.0 203:50.93 java   
......
 
PID进程的ID
USER该进程所属的用户
PR优先级,数值越小优先级越高
NINICE优先级,数值越小优先级越高,取值范围-20到19,默认都是0
VIRT该进程使用的虚拟内存的大小,单位为KB
RES该进程使用的物理内存的大小,单位为KB
SHR共享内存大小,单位为KB。计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR)
S进程状态。其中S 表示睡眠,R 表示运行
%CPU该进程占用CPU的百分比
%MEM该进程占用内存的百分比
TIME+该进程共占用的CPU时间
COMMAND进程名

top命令下,交互操作快捷键P(大写),表示将结果按照CPU使用率从高到低进行降序排列。

使用交互快捷键M(大写):表示将结果按照内存(MEM)从高到低进行降序排列。

按键盘上的q可以退出top命令。


free:查看物理内存使用情况

# free [选项]
-m : 用M显示内容使用情况
-h :显示带单位(MB或者GB)易读格式

命令默认的显示单位是KByte

无参数

[root@hecs-169625 ~]# free
              total        used        free      shared  buff/cache   available
Mem:        3879592     2393336      129408      189144     1356848     1007904
Swap:             0           0           0

用M显示内容使用情况

[root@hecs-169625 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3788        2337         126         184        1325         984
Swap:             0           0           0

显示带单位(MB或者GB)易读格式

[root@hecs-169625 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        2.3G        126M        184M        1.3G        984M
Swap:            0B          0B          0B

df:查看磁盘剩余空间

# df [选项]
-h :以较高的可读性显示磁盘剩余空间大小

# df -h => 显示磁盘剩余空间大小


举例说明:

[root@hecs-169625 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  185M  1.7G  10% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1        40G  7.3G   30G  20% /
tmpfs           379M     0  379M   0% /run/user/0

具体参数如下:

Filesystem磁盘名称
Size总大小
Used被使用的大小
Avail剩余大小
Use%使用百分比
Mounted on挂载路径(相当于Windows 的磁盘符)

ps:查看系统进程信息

top 动态查看系统进程的信息(每隔3s切换一次)

ps 静态查看系统进程的信息(只能查询运行ps命令瞬间,系统的进程信息)

# ps [选项]
选项说明:
	-e : 等价于"A" 表示列出全部(all)的进程
	-f : 表示full 显示全部的列(显示全字段)

# ps -ef  => 显示当前系统所有进程信息

ps 进程标题解释

[root@hecs-169625 ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 Jul02 ?        00:14:34 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2     0  0 Jul02 ?        00:00:00 [kthreadd]
......

UID该进程执行的用户ID
PID进程ID
PPID该进程的父级进程ID,如果找不到,则该进程就被称之为僵尸进程(Parent Process ID)
CCpu的占用率,其形式是百分数
STIME进程的启动时间
TTY终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起
TIME进程实际使用CPU的时间
CMD该进程的名称或者对应的路径

ps auxps -ef 命令的一种补充

[root@hecs-169625 ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 125520  3336 ?        Ss   Jul02  14:34 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Jul02   0:00 [kthreadd]
......
USER该 process 属于哪个使用者账号
PID该 process 的ID
%CPU该 process 使用掉的 CPU 资源百分比
%MEM该 process 所占用的物理内存百分比
VSZ该 process 使用掉的虚拟内存量 (Kbytes)
RSS该 process 占用的固定的内存量 (Kbytes)
TTY该 process 是在哪个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT该程序目前的状态,主要的状态有 R:该程序目前正在运作,或者是可被运作。S:该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。T:该程序目前正在侦测或者是停止了。Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START该 process 被触发启动的时间
TIME该 process 实际使用 CPU 运作的时间
COMMAND该程序的实际指令

kill:结束进程

kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。


根据PID编号结束进程

# kill [选项] PID进程编号
选项说明:
	-9 :杀死进程,即强制结束进程。
	-15 :正常结束进程,是 kill 命令的默认信号。
	经验:kill经常结合ps命令一起使用

文件查看命令

cat

cat 文件名称 : 查看文件内容, 多个文件使用空格隔开。不能用于文件夹。

# 查看单个文件
cat 1.txt

# 查看多个文件
cat 1.txt 2.txt 3.txt

# 多个文件合并到一个文件
cat 1.txt 2.txt 3.txt > 123.txt  

head:查看文件前n行

语法:head -n 行数 文件名

# 查看前3行
head -n 3 123.txt

# 查看第1行到倒数第3行
head -n -3 123.txt

tail:查看文件最后n行

语法:tail [选项] [数字] 文件名称

选项说明
-n查看多少行
-f该参数用于监视File文件增长,默认展示10行,CTRL+C退出。
# 查看倒数第3行
tail -n 3 123.txt

# 动态查看一个文件的输出信息
tail -f 123.txt

# 动态查看一个文件的输出信息
tail -100f 123.txt

more:分屏显示文件内容

语法:more 文件名称

分屏展示文件内容,且是把文件整个加载再进行展示,若文件过大会造成卡顿

# 分屏展示123.txt
more 123.txt
回车键向下移动一行
d向下移动半页
空格键向下移动一页
b向上移动一页
q退出more

lese:分屏显示文件内容

语法:less 文件名称

# 分屏展示123.txt
less 123.txt

# 展示行号输出
more -N 123.txt

分屏展示文件内容,且是边展示边加载,不会卡顿

回车键向下移动一行
d向下移动半页
空格键向下移动一页
b向上移动一页
/字符串搜索指定字符串
上下方向键向上与下平移动
q退出less

> 和 >> 区别

>>> 是两个常用的重定向符号,它们用于将命令的输出结果保存到文件中。

> 符号用于将命令的输出结果覆盖写入到指定文件中。如果文件不存在,则会创建一个新文件;如果文件已存在,则会清空文件内容并重新写入。

>> 符号用于将命令的输出结果追加写入到指定文件中。如果文件不存在,则会创建一个新文件;如果文件已存在,则会在文件末尾追加写入内容。

nohup命令

 nohup 是一个用于在后台运行命令的Unix命令。它的主要作用是运行指定的命令,即使用户退出登录或终端关闭,该命令也能够继续运行。通过使用 nohup 命令,可以确保程序在后台持续运行,而不会受到终端会话的影响。

当用nohup命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。

# 默认输出被重定向到nohup.out中
nohup ./test.sh &
# 指定输出文件
nohup ./test.sh > abc.log &

/dev/null2>&1

nohup ./test.sh > /dev/null 2>&1 &
nohup ./test.sh > xxx.log 2>&1 &
  1. nohup:表示要以 “no hang up” 的方式运行命令,即使终端关闭也不会中断该命令的执行。

  2. ./test.sh:表示要执行的Shell脚本。

  3. >:表示重定向标准输出。

  4. /dev/null:代表空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。

    xxx.log:将输出信息重定向到该文件

  5. 2>&1:表示将标准错误(文件描述符 2)重定向到标准输出的同一个地方(文件描述符 1),也就是 /dev/null或者xxx.log

  6. &:表示在后台运行命令。

scp文件上传与下载

下载文件或目录

语法:scp [选项] 用户名@远程主机地址:远程路径 本地文件路径

选项说明
-r递归操作,针对目录
-P大写,如果修改了ssh默认端口需要指定端口下载
# 将12.13.14.15主机的 '/lzc/test/123.txt' 文件下载到当前终端目录
scp root@12.13.14.15:/lzc/test/123.txt ./

# 将12.13.14.15主机的 '/lzc/test' 目录下载到当前终端目录
scp -r root@12.13.14.15:/lzc/test ./

上传文件或目录

语法:scp [选项] 本地文件路径 用户名@远程主机地址:远程路径

选项说明
-r递归操作,针对目录
-P大写,如果修改了ssh默认端口需要指定端口下载
# 将本地 'lzc.txt' 文件上传到12.13.14.15主机的 '/lzc/test' 目录下
scp /Users/lizhencheng/lzc/study/lzc.txt root@12.13.14.15:/lzc/test

# 将本地 'abc' 目录上传到12.13.14.15主机的 '/lzc/test' 目录下
scp -r /Users/lizhencheng/lzc/study/abc/ root@12.13.14.15:/lzc/test

grep和egrep


语法格式

grep [option][pattern][file1,file2,...]

grep默认不支持扩展正则表达式,只支持基础正则表达式,使用grep -E可以支持扩展表达式,使用egrep可以使用扩展正则表达式,与grep -E一样。


option常用选项

选项说明
-v不显示匹配行信息
-i搜索时忽略大小写
-n显示行号
-r递归搜索,用于搜索目录:grep -r 关键字 目录
-E支持扩展正则表达式
-F不按正则表达式匹配,按照字符串字面意思匹配
-C number匹配的上下文分别显示[number]行

不常用选项

选项说明
-c只显示匹配行总数
-w匹配整词
-x匹配整行
-l只显示文件名,不显示内容
-s不显示错误信息

awk

awk是一个文本处理工具,通常用来处理数据并生成报告

语法格式

awk 'BEGIN{}pattern{commands}END{}' filename
语法格式解释
BEGIN{}正式处理数据之前执行
pattern匹配模式
{commands}处理命令,可能多行
END{}处理完所有匹配数据执行

内置变量

例子

  1. 根据空格分割

    awk '{print $1,$2,$3}' filename.txt
    

    这个命令会读取 filename.txt 文件中的每一行,然后将每一行按照空格分割,并打印出前三个元素。$0打印整行。

  2. 根据特定分隔符分割字符串

    awk -F "," '{print $1,$2,$3}' 2.txt
    

    这个命令会读取 filename.txt 文件中的每一行,然后将每一行按照逗号 , 分割,并打印出前两个元素。

  3. 匹配值

    awk '$3=="333" && $4=="rrr" {print $0}' filename.txt
    

    这个命令会读取 filename.txt 文件中的每一行,然后将每一行按照空格分割,找到第三列为333并且第四列为rrr,最后打印出整行元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值