进程的管理_ps
程序运行在计算机操作系统中,由操作系统进行管理。为了管理正在运行的程序,每个程序在运行时都被注册到操作系统中,形成进程
每个进程都有一个独特的进程ID(进程号),用来区别不同的进程。进程ID通常是唯一的,而且在同一时间内不会被其他进程使用。当操作系统需要对某个进程进行操作时,可以通过进程ID来定位到该进程,并进行相应的管理和控制
操作系统通过监控进程的运行状态,保证各个进程能够共享CPU、内存等资源,实现多任务的并发执行,提高计算机的效率和利用率。同时,操作系统还可以通过调度算法来控制进程的执行顺序,保证系统的稳定性和可靠性
语法
ps [options] [--help]
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
- -A 列出所有的进程
- -w 显示加宽可以显示较多的资讯
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的进程
内容信息
列名 | 含义 |
---|---|
USER | 进程所属的用户 |
PID | 进程的进程号ID |
%CPU | 占用的 CPU 使用率 |
%MEM | 占用的内存使用率 |
VSZ | 占用的虚拟内存大小 |
RSS | 占用的内存大小 |
TTY | 终端的次要装置号码 (minor device number of tty) |
STAT | 该行程的状态: S:静止状态 <:高优先序的行程 N:低优先序的行程 T:暂停执行 |
START | 行程开始时间 |
TIME | 执行的时间 |
COMMAND | 所执行的指令 |
查找制定进程
因为列的数据太多,因此需要筛选数据,这时就可以使用 管道与grep来进行过滤
ps -aux |grep python
提示
因为是字符串数据过滤,所以任何数据都可以用来过滤
关闭进程
在Linux中,可以通过kill命令关闭进程
语法
kill -9 进程ID
选项:
- -9,表示强制关闭进程
端口的查看_netstat
在计算机网络中,端口是一个用来区分不同应用程序或进程的数字标识符
在Linux系统中,端口号是一个16位的整数,取值范围是0~65535
-
公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用
- 如SSH服务的22端口,
- HTTPS服务的443端口
- 非特殊需要,不要占用这个范围的端口
-
注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
-
动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用
如果要使用某个服务,需要先打开相应的端口,以下是在Linux系统中操作端口的几种方法
语法
netstat [选项]
参数说明:
- -a或--all 显示所有连线中的Socket。
- -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
- -c或--continuous 持续列出网络状态。
- -C或--cache 显示路由器配置的快取信息。
- -e或--extend 显示网络其他相关信息。
- -F或--fib 显示路由缓存。
- -g或--groups 显示多重广播功能群组组员名单。
- -h或--help 在线帮助。
- -i或--interfaces 显示网络界面信息表单。
- -l或--listening 显示监控中的服务器的Socket。
- -M或--masquerade 显示伪装的网络连线。
- -n或--numeric 直接使用IP地址,而不通过域名服务器。
- -N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
- -o或--timers 显示计时器。
- -p或--programs 显示正在使用Socket的程序识别码和程序名称。
- -r或--route 显示Routing Table。
- -s或--statistics 显示网络工作信息统计表。
- -t或--tcp 显示TCP传输协议的连线状况。
- -u或--udp 显示UDP传输协议的连线状况。
- -v或--verbose 显示指令执行过程。
- -V或--version 显示版本信息。
- -w或--raw 显示RAW传输协议的连线状况。
- -x或--unix 此参数的效果和指定"-A unix"参数相同。
- --ip或--inet 此参数的效果和指定"-A inet"参数相同。
注意
如果不能使用,可以先安装下命令
yum -y install net-tools
提示
如果想要快速找到数据,可以结合管道与grep筛选
netstat -nptl | grep 端口号
查看系统资源使用情况_top
主机状态-系统资源占用情况
在Linux中,为了更好的管理系统,这时就需要可以了解服务器运行状态
可以通过top命令查看CPU、内存使用情况,类似Windows的任务管理器
默认每5秒刷新一次,语法:直接输入top即可,按q或ctrl + c退出
参数说明:
- d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
- q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
- c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
- S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
- s : 安全模式,将交谈式指令取消, 避免潜在的危机
- i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
- n : 更新的次数,完成后将会退出 top
- b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
系统状态
内容 | 含义 |
---|---|
top - 10:14:15 | 系统当前时间 |
up 9:44 | 系统到目前为止已运行的时间 |
1 user | 当前登录系统的用户数量 |
load average: 0.00, 0.01, 0.03 | 系统负载(任务队列的平均长度),3个数值分别为1分钟、5分钟、15分钟前到现在的平均值 |
提示
top给出的系统运行时间,反应了当前系统存活多久,对于某些应用而言,
系统需要保证7*24小时的高可用性,这个字段信息就能很好的衡量系统的高可用性
Task 进程状态
所有启动的进程数、正在运行的进程数、挂起的进程数、停止的进程数、僵尸进程数
提示
在linux操作系统中,一般有以下5种状态的进程信息:
- D:不可中断睡眠态(通常出现在IO阻塞)
- R:运行态
- S:睡眠态
- T:已停止
- z:僵尸态
CPU 状态
字段 | 含义 | 关注度 |
---|---|---|
us | 用户空间占用CPU百分比 | 重要 |
sy | 内核空间占用CPU百分比 | 重要 |
ni | 用户进程空间内改变过优先级的进程占用CPU百分比 | |
id | 空闲CPU百分比 | 重要 |
wa | 等待输入的CPU百分比 | 重要 |
hi | 硬中断占用CPU百分比 ,使用率过高时,表示当前硬件中断占用很大的百分比 | 重要 |
si | 软中断CPU百分比,Linux kernel通过用一种软件的方法(可延迟函数)来模拟硬件的中断模式,通常叫做软中断 | 重要 |
st | 虚拟CPU等待实际CPU的时间的百分比 | 重要 |
Mem内存信息(物理内存)
物理内存总量、空闲物理内存、已经使用的物理内存、内核缓存内存量
说明
buffer和cache的作用是所用I/O系统调用的时间,比如读写等
一般一个系统而言,如果cache的值很大,说明cache住的文件多
如果频繁访问文件都能被命中,很明显会比读取磁盘调用快,磁盘的IO必定会减小
提示
cache的命中率很关键,如果频繁访问的文件不能被命中,对于cache而言是个比较的大的资源浪费
此时应考虑drop cache并提升对应的cache的命中率
Swap交换内存(虚拟内存)
交换区总量、空闲交换区总量、已使用交互区总量、缓冲的交换区总量
进程信息
列名 | 含义 |
---|---|
PID | 进程的进程号ID |
USER | 进程所属的用户 |
PR | 进程优先级,越小越高 |
NI | nice值,负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA |
SHR | 共享内存大小,单位kb |
S | 进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态) |
%CPU | 占用的 CPU 使用率 |
%MEM | 占用的记忆体使用率 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 所执行的指令 |
查看磁盘使用情况_df
df命令
Linux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
df [选项]...
- -a, --all 包含所有的具有 0 Blocks 的文件系统
- --block-size={SIZE} 使用 {SIZE} 大小的 Blocks
- -h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)
- -H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
- -i, --inodes 列出 inode 资讯,不列出已使用 block
- -k, --kilobytes 就像是 --block-size=1024
- -l, --local 限制列出的文件结构
- -m, --megabytes 就像 --block-size=1048576
- --no-sync 取得资讯前不 sync (预设值)
- -P, --portability 使用 POSIX 输出格式
- --sync 在取得资讯前 sync
- -t, --type=TYPE 限制列出文件系统的 TYPE
- -T, --print-type 显示文件系统的形式
- -x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
- -v (忽略)
- --help 显示这个帮手并且离开
- --version 输出版本资讯并且离开
案例
# 显示文件系统的磁盘使用情况统计
df
# 显示所有的信息,包含一个额外的行,汇总的每一列
df --total
# 显示文件系统的磁盘使用情况统计,加上单位
df -h
环境变量的使用
环境变量是一种在操作系统(Windows、Mac、Linux)中存储的特殊字符串值,它们可以用于配置操作系统和应用程序的行为。
Linux系统中有许多环境变量,包括PATH、HOME、LANG等。
环境变量是一种KeyValue型结构
在Linux中,可以通过env
命令查看当前系统中记录的环境变量
环境变量:PATH
在Linux系统中,环境变量PATH是一个非常重要的变量。它是由一组用冒号(:)隔开的路径组成的字符串,这些路径告诉操作系统去哪里查找可执行文件
当我们在终端输入一个命令时,Linux会按照PATH变量中指定的路径顺序依次查找,直到找到对应的可执行文件为止。如果最终没有找到对应的可执行文件,就会提示“command not found”的错误信息
修改环境变量方式
在Linux中,设置环境变量的方式有多种,下面列举了2种常见的设置环境变量的方式:
说明
配置环境变量,通过
source 配置文件
,进行立刻生效,或者重新开启shell窗口
- 直接使用export命令设置环境变量
export MY_VAR=my_value
注意
此方法设置的环境变量只会在当前终端窗口中生效,关闭后失效
- 在
~/.bashrc
或~/.bash_profile
文件中添加环境变量 - 例如,在~/.bashrc文件末尾添加以下内容:
MY_VAR=my_value
提示
此方法设置的环境变量会在每次启动bash时自动加载,并对所有子进程可见
.bashrc
与.bash_profile
都是Bash shell的配置文件,它们位于用户主目录下,区别在于: .bashrc
当用户打开一个新的终端窗口时,Bash shell就会读取并执行这些命令。通常,在.bashrc
文件中设置一些环境变量、别名、函数等.bash_profile
只会在用户首次登录系统时被读取和执行一次。通常,.bash_profile
文件用来设置一些与用户账户相关的环境变量和别名等信息
网络请求_ping命令的使用
ping
ping命令用于测试主机之间的网络连接,可以用于检测网络连接是否正常,路由是否被正确配置,主机是否正在运行等
它的基本语法如下:
ping <选项> <主机名或IP地址>
常用选项说明:
- -c <次数>:设置ping的次数,默认是无限制的
- -i <间隔秒数>:设置ping的间隔时间,默认是1秒
- -t:一直ping,直到Ctrl+C停止
- -w <超时秒数>:设置ping的超时时间,默认是无限制的
- -q:静音模式,只输出最终的统计信息
- -v:详细输出模式,会输出来回的ICMP包信息
- -n:使用IP地址而不是主机名
- -4或-6:强制使用IPv4或IPv6
例如:
# ping www.baidu.com 5次
ping -c 5 www.baidu.com
# 每3秒ping一次ip地址
ping -i 3 -n 192.168.0.1
# 一直ping,通过Ctrl+C停止
ping -t www.bing.com
# 设置ping超时时间为5秒
ping -w 5 192.168.0.1
注意
有部分服务器,已经停止了ping服务。
所以ping不通,不一定服务器不通,可以使用其它命令再测试
网络请求_下载数据wget与curl
wget
wget是一个强大的命令行下载工具,可以非交互式地从web服务器上下载文件。它支持HTTP、HTTPS和FTP协议,可以使用代理,支持断点续传等功能。
wget命令用于在Linux中通过网络下载文件
它的基本语法如下:
wget [选项]... [URL]...
常用选项说明:
- -b:后台下载模式
- -c:继续之前的下载任务
- -q:安静模式,不打印进度条等信息
- -O <文件>:将下载的数据写入指定的文件中
- -t <次数>:设置重试次数,默认是20
- -w <秒数>:设置两次尝试之间等待的秒数,默认是0秒
- -nv:不详细显示下载进度
- -np:不检查/$HOME/.netrc认证
- -r:递归下载整个网站
- -l <级数>:指定递归下载的级数,默认是5层
- -A <后缀>:只下载指定后缀的文件
- -R <后缀>:排除下载指定后缀的文件
- -nd:不创建父目录
- -x:不创建父目录例子:
# 下载文件并命名为test.txt wget -O test.txt https://www.baidu.com # 后台下载文件 wget -b https://linux.org/ftp/linux/kernel/v1.0/linux-1.0.tar.gz
注意
无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。
安装
yum -y install wget
curl
在Linux中,curl是一个功能强大的命令行工具,可以下载/上传数据,支持多种协议(HTTP、FTP、POP3等)。
它常被用来测试网站接口、下载文件等
它的基本语法如下:
curl [选项] [URL]
常用选项说明:
-
-d/--data :POST方式传送数据
-
-o/--output :将输出写到文件中
# 使用指定的User-Agent字符串
curl -A 'Mozilla/5.0' https://www.example.com
# 保存cookie到文件
curl -c cookies.txt https://www.example.com
# 上传文件
curl -T file.txt https://www.example.com
# 使用代理连接
curl -x http://user:password@proxyserver:8080 https://www.example.com
压缩命令tar的使用
市面上有非常多的压缩格式
- zip格式:Linux、Windows、MacOS常用
- rar:Windows系统常用
- 7zip:Windows系统常用
- tar:Linux、MacOS常用
- gzip:Linux、MacOS常用
tar命令介绍
Linux和Mac系统常用有2种压缩格式,后缀名分别是:
- .tar,称之为tarball,归档文件,仅将文件封装成一个.tar文件,未压缩文件体积
- .gz,也常见为.tar.gz,使用gzip算法进行压缩,从而大幅减小压缩后的文件体积
针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作
语法
tar [选项] [压缩文件] [被压缩的文件1,被压缩的文件2,被压缩的文件3...]
选项
- -c,创建压缩文件,用于压缩模式
- -v,显示压缩、解压过程,用于查看进度
- -x,解压模式
- -f,要创建的文件,或要解压的文件
- -z,gzip模式,不使用-z就是普通的tarball格式
- -C,选择解压的目的地,用于解压模式
注意
- -f,必须在选项组合体的最后一位
- -z,建议在开头位置
- -C,选项单独使用,和解压所需的其它参数分开
tar 命令压缩
# 将1.txt 2.txt 3.txt 压缩到test.tar文件内
tar -cvf test.tar 1.txt 2.txt 3.txt
# 将1.txt 2.txt 3.txt 压缩到test.tar.gz文件内,使用gzip模式
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
tar 命令解压缩
# 解压test.tar,将文件解压至当前目录
tar -xvf test.tar
# 解压test.tar,将文件解压至当前目录
tar -xvf test.tar -C /home/bz
# 以Gzip模式解压test.tar.gz,将文件解压至指定目录
tar -zxvf test.tar -C /home/bz
压缩命令zip与unzip的使用
zip命令
在Linux中,可以使用zip命令,压缩文件为zip压缩包
语法
zip [选项] [压缩的文件名] [被压缩的文件1,被压缩的文件2,被压缩的文件3...]
选项
- -r,递归压缩
案例
# 将a.txt b.txt c.txt 压缩到test.zip文件内
zip test.zip a.txt b.txt c.txt
# 将test文件夹和a.txt文件,压缩到test.zip文件内
zip -r test.zip test a.txt
安装
yum -y install zip
unzip命令
在Linux中,可以使用unzip命令,压缩文件为zip压缩包
语法
unzip [选项] [压缩的文件名]
选项
- -d,指定要解压到哪个位置
案例
# 将test.zip解压到当前目录
unzip test.zip
# 将test.zip解压到指定文件夹内
unzip test.zip -d /opt
安装
yum -y install unzip