Linux使用操作(二)

进程的管理_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
相关推荐
XMYX-017 分钟前
Linux命令行压力测试工具:基准测试与性能优化
linux·测试工具·性能优化
棉晗榜22 分钟前
Linux中.NET读取excel组件,不会出现The type initializer for ‘Gdip‘ threw an exception异常
linux·c#·.net·excel
小狮子安度因24 分钟前
Linux上的各种查询
linux·运维·服务器
IPFoxy66625 分钟前
如何生成谷歌临时邮箱?五个步骤轻松搞定!
服务器
Yz98761 小时前
Hive安装-内嵌模式
大数据·linux·数据仓库·hive·hadoop·hdfs·bigdata
多练项目1 小时前
公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
运维·git
cqbzcsq2 小时前
Nginx简易配置将内网网站ssh转发到外网
运维·nginx·ssh
SmallBambooCode2 小时前
【人工智能】阿里云PAI平台DSW实例一键安装Python脚本
linux·人工智能·python·阿里云·debian·脚本·模型训练
纯小白是我2 小时前
CentOS 7系统中更改YUM源为阿里云的镜像源
linux·阿里云·centos
嵌入式Linux,2 小时前
BUG: scheduling while atomic
linux·运维·服务器·bug