Liunx 操作系统笔记4

进程管理命令

ps命令:功能是显示当前系统的进程状态

使用ps命令可以查看到进程的所有信息,例如进程的号码,发起者,系统资源使用占比,运行状态等,ps命令可帮助我们及时发现哪些进程出现"僵死"或"不可中断"等异常情况。

ps命令经常会与kill命令搭配使用,以中断和删除不必要的服务进程,避免服务器的资源浪费

语法格式:ps 参数

常用参数:

-a 显示所有进程信息 -t 显示属于指定终端主机的程序状态

-c 不显示程序路径 -T 显示当前终端主机下的所有程序.

-d 不显示阶段作业程序 -u 使用用户为主的格式来显示程序状态

-e 显示环境变量信息 -U 显示属于指定用户的程序状态

-v 使用虚拟内存的格式显示程序状态 -f 用ASCII字符显示树状结构

-g 显示所有程序及其所属组的程序 -w 使用宽阔的格式显示程序状态

参考示例:

ps aux #显示系统中全部的进程信息,含详细信息

ps -ef l grep ssh #结合管道操作符,将当前系统运行状态中指定的进程信息过滤出来

ps -u root #将当前系统运行状态中指定用户的进程信息过滤出来

ps aux | sort -rnk 3 #结合管道操作符与sort命令,依据处理器使用量(第三列)情况降序排序ps -aux --sort -pcpu | less #通过cpu和内存使用来查看占用资源的进程

ps -aux --sort -pcpu,+pmem l head -n 10

#根据CPU使用来升序、内存使用 来升序 排序 并通过管道显示前10个结果

pstree 命令:

功能是用于树状图形式显示进程信息,帮助管理员更好地了解进程间的关系。Linux系统中常用ps命令查看进程状态信息,但是却无法了解进程之间的依赖关系,哪个是父进程,哪个是子进程?这些信息则可通过pstree命令进行查看

语法格式: pstree [参数]

常用参数:

-a 显示完整信息 -A 使用ASCII字符绘制树

-c 不使用精简标示法 -g 显示进程组ID

-G 使用VT100终端机的列绘图字符 -h 特别标明现在执行的程序

-I 使用长格式显示树状图 -n 依据PID排序上下级进程

参数示例:

pstree #以树状图的形式显示当前系统中全部进程(默认)

pstree -p #以树状图的形式显示当前系统中全部进程(带有进程号)

pstree -a #以更完整、更丰富的信息样式显示每个进程

top命令:

top是一个在Linux和其他类Unix系统上常用的实时系统监控工具

它提供了一个动态的,交互的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息

语法格式:

top [-] [d delay] [q]

参数说明:

-d<秒数>:指定 top 命令的刷新时间间隔,单位为秒。

-n<次数>:指定 top 命令运行的次数后自动退出。

-p<进程ID>:仅显示指定进程ID的信息。

-u<用户名>:仅显示指定用户名的进程信息。

-H:在进程信息中显示线程详细信息。

-i:不显示闲置(idle)或无用的进程。

-b:以批处理(batch)模式运行,直接将结果输出到文件,

-c:显示完整的命令行而不截断。

-S:累计显示进程的:CPU.使用时间

参考示例:

top #显示进程信息

top -c #显示完整命令

top -d 3 #设置信息更新时间为3秒

top -p 139 #显示进程号为139的进程信息,CPU、内存占用率等

补充:

在top命令下按以下大写字母,分别按不同的维度进行排序

M 根据内存使用情况排序

P 根据CPU使用情况排序

N 根据进程ID排序

T 根据进程使用CPU的时间排序

当然你也可以在命令启动时,直接对top加参数。比如以cpu使用情况排序

top -o %CPU

kill命令:

功能是杀死(结束)进程,在Linux系统中如需结束某个进程,既可以使用如service或systemctl这样的管理命令来结束服务,也可以使用kill命令直接结束进程信息。

如使用kill命令后进程并没有结束,则可以使用信号9进行强制杀死动作。

语法格式:kill 参数 进程号

常用参数:

-a 不限制命令名与进程号的对应关系 -p 不发送任何信号

-s 设置向进程发送的信号 -l 显示系统支持的信号列表

参考示例

kill -l #列出系统支持的全部信号列表

kill 518 #结束某个指定的进程(数字为对应的PID值)

kill -9 518 #强制结束某个指定的进程(数字为对应的PID值)

扩展: killall 命令

该命令非常强大,它通过支持进程名而不是PID来结束进程。Killall命令也支持通配符。

使用时候要小心,有可能结束的重要的系统进程,也可以批量结束进程。

磁盘管理命令:

lsblk命令:

lsblk命令来自英文词组list block devices的缩写,其功能是查看系统的磁盘使用情况。

语法格式:lsblk 参数

常用参数:

-a 显示所有设备信息 -m 显示权限信息

-b 显示以字节为单位的设备大小 -n 不显示标题

-e 排除指定设备 -o 输出列信息

参考示例:

lsblk #查看磁盘信息

#添加一个 20G 的 Sata 类型的磁盘一个 30G 的 NVME 类型的磁盘。

#注意:要添加磁盘,我们先关闭虚拟机。添加好上面的两个磁盘后,然后再查看磁盘信息:

sda:表示第一块 Sata 硬盘,如果是第二块则名称为 sdb,第三块为sdc,依次类推

sr0:表示第一块光盘,如果是 sr1 则表示第二块光盘

nvme0n1:表示第一块 nvme 类型的硬盘,nvme0n2 表示第二块 nvme类型的硬盘

lsblk -m #显示系统中磁盘设备的归属及权限信息:

lsblk -nl #以列表格式显示磁盘设备信息,并且不显示标题

df命令:

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:df [-ahikHTm] [目录或文件名]

选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3)也列出;

-i :不用硬盘容量,而以 inode 的数量来显示

参考示例:

df #将系统内所有的文件系统列出来!

df -h #将容量结果以易读的容量格式显示出来

df -aT #将系统内的所有特殊文件格式及名称都列出来

df -h /etc #将 /etc 底下的可用的磁盘容量以易读的容量格式显示

df -T #查看文件系统类型

扩展:

xfs是一个全64-bit的文件系统,可以支持上百万T字节的存储空间。对于特大文件及小尺寸文件的支持都表现很出众,支持特大数量的目录。最大可支持的文件大小为263=9x1018=9exabytes,最大文件系统尺寸为18exabytes。

xfs支持大文件和大分区。读写文件速度快。其中的ext4和xfs文件系统的区别:xfs的使用比ext4好。

硬盘文件系统:

xfs(主流)

ext4---centos6

ext3---centos5

网络文件系统:

nfs:network file system

tfs:taobao file system;淘宝内部使用的专门用来存放淘宝的图片和文件的文件系统,分布式的

gfs:google存放搜索数据存放的文件系统。分布式

hdfs:Hadoop file system

Linux中分区的查看:

scsi接口盘一般是以sd开头的。

ide接口的盘:hd开头。

虚拟云磁盘:vd开头。

du命令:

Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘

使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令。

语法:du [-ahskm] 文件或目录名称

选项与参数:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

-h :以人们较易读的容量格式 (G/M) 显示;

-s :仅显示指定目录或文件的总大小,而不显示其子目录的大小。

-S :包括子目录下的总计,与 -s 有点差别。

-k :以 KBytes 列出容量显示;

-m :以 MBytes 列出容量显示;

参考示例

du #只列出当前目录下的所有文件夹容量(包括隐藏文件夹)

du -a #将文件的容量也列出来

du -sm /* #检查根目录底下每个目录所占用的容量

du log2012.log #显示指定文件所占空间

du -h test #方便阅读的格式显示test目录所占空间情况

fdisk命令:

fdisk 是 Linux 的磁盘分区表操作工具。

语法: fdisk [-l] 装置名称

选项与参数:

-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

参考示例:

fdisk -l #列出所有分区信息

df /

fdisk /dev/hdc #找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息

mkfs命令

mkfs 磁盘格式化

磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令。

语法:mkfs [-t 文件系统格式] 装置文件名

选项与参数:

-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)

参考示例:

mkfs -t ext3 /dev/hdc6 #将分区 /dev/hdc6(可指定你自己的分区) 格式化为 ext3 文件系统:

扩展:

mkfs.ext4 -c /dev/sdb #检查指定的磁盘设备并进行ext4格式化操作

mkfs.ext4 -m 5 /dev/sdb #对指定的磁盘设备进行格式化操作,保留5%容量给管理员:

mkfs.ext4 -L 'Linuxflag' -b 2048 /dev/sdb #对磁盘设备进行格式化操作,添加卷标识,并修改块大小

mount 命令:

Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。

磁盘挂载语法: mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点

磁盘卸载命令 umount 语法:umount [-fn] 装置文件名或挂载点

-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;

-n :不升级 /etc/mtab 情况下卸除。

操作示例:

mount /dev/hdc6 /mnt/hdc6 #用默认的方式,将 /dev/hdc6挂载到 /mnt/hdc6 上面

umount /dev/hdc6 #卸载/dev/hdc6

mount #查看当前系统中已有的文件系统信息

mount -a #挂载/etc/fstab文件中所有已定义的设备文件

mount -t xfs /dev/sdb /Dir #强制以XFS文件系统挂载硬盘设备到指定目录

系统管理命令:

find命令:

find命令的功能是根据给定的路径和条件查找相关文件或目录,其参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员必须掌握的命令之一,find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate等有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,这会相对消耗较多的系统资源。

语法格式:find 路径 条件文件名

常用参数:

-name 匹配文件名 -nouser 匹配无所属主的文件

  • perm 匹配文件权限 -nogroup 匹配无所属组的文件

-user 匹配文件所属主 -newer 匹配比指定文件更新的文件

-group 匹配文件所属组 -type 匹配文件类型

-mtime 匹配最后修改文件内容时间 -size 匹配文件大小

操作示例:

find / -name *.conf #全盘搜索系统中所有以 .conf结尾的文件

find / -name *.conf | grep ssh #全盘搜索并从结果中展示有关ssh相关的内容

find / etc -size +1M #在/etc目录中搜索所有大于1MB的文件

find /home -user linuxprobe #在/home目录中搜索所有属于指定用户的文件

find . #列出当前工作目录中的所有文件、目录以及子文件信息

find /var/log -name "*.log" #在/var/log目录下搜索所有指定后缀的文件

find . -mtime +7 #搜索当前工作目录中所有近7天被修改过的文件

find / -type d -perm 1777 #全盘搜索系统中所有类型为目录,且权限为1777的目录文件

find / -type f -perm /a=x #全盘搜索系统中所有类型为普通文件,且可以执行的文件信息

find / -name "*.mp4" -exec rm -rf {} \;

#全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件

whereis命令:

whereis命令其功能是用于显示命令及相关文件的路径位置信息,能够找到命令(二进制程序)、命令源代码、man帮助手册等相关的文件路径位置信息,帮助我们更好地管理这些文件。

有别于find命令进行的全盘搜索,whereis命令查找速度非常快,因为它不是在磁盘中乱找,而是在指定数据库中查询,该数据库是Linux系统自动创建的,包含有本地所有文件的信息,每天自动更新一次。但正因为这样,whereis命令的搜索结果会不及时,比如刚添加的文件可能搜不到,原因就是该数据库文件没有被更新,管理人员则手动执行updatedb命令进行更新即可。

语法格式:whereis [参数] 命令名

常用参数:

-b 查找二进制程序或命令文件 -m 查找man帮助手册文件

-s 仅查找源代码文件 -u 查找可执行文件、源代码及帮助文档

参考示例:

whereis poweroff #查找指定命令程序及相关文件所在位置

whereis -b poweroff #仅查找指定命令程序文件所在位置

whereis -m poweroff #仅查找指定命令的帮助文件所在位置

which命令:

which命令的功能是用于查找命令文件,能够快速搜索二进制程序所对应的位置。如果我们既不关心同名文件(find与locate),也不关心命令所对应的源代码和帮助文件(whereis)仅仅是想找到命令本身所在的路径,那么这个which命令就太合适了。

语法格式:which [参数] 文件名

常用参数:

-a 显示PATH变量中所有匹配的可执行文件 -n 设置文件名长度(不含路径)

-p 设置文件名长度(含路径) -V 显示版本信息

-w 设置输出时栏位的宽度

参考示例:

which reboot #查找某个指定命令文件所在位置

which shutdown poweroff #查找多个指定命令文件所在位置

uname命令:

Linux uname(英文全拼: unix name)命令用于显示操作系统信息,例如内核版本、主机名、处理器类型等。

uname 可显示电脑以及操作系统的相关信息

语法: uname [-amnrsv] [--help] [--version]

参数说明:

-a 或--all 显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等。

-m 或 --machine 显示处理器类型。

-n 或 --nodename 显示主机名。

-r 或 --release 显示内核版本号。

-s 或 --sysname 显示操作系统名称。

-v 显示操作系统的版本

--help 显示帮助

操作示例:

uname -a #显示系统信息

uname -m #显示计算机类型

uname -n #显示计算机名

uname -r #显示操作系统发行编号

uname -s #显示操作系统名称

注意区别:发行版版本号

cat /etc/redhat-release 或者 cat /etc/issue

history命令:

history命令的功能是显示与管理历史命令记录。Linux系统默认会记录用户执行过的有命令,可以使用history命令查阅它们,也可以对其记录进行修改和删除操作。

语法格式: history 参数

常用参数:

-r 读取命令记录到缓冲区 -a 保存命令记录

-c 清空命令记录 -s 添加命令记录到缓冲区

-d 删除指定序号的命令记录 -w 将缓冲区信息写入历史文件

-n 读取命令记录

操作示例:

history #显示执行过的全部命令记录

history 5 #显示最近执行过的5条命令

history -w #将本次缓存区信息写入历史文件(~/.bash_history)

history -r #将历史文件中的信息读入当前缓冲区

history -c #清空本次缓冲区及历史文件中的信息

关机重启命令

重启命令:

1、reboot

2、shutdown -r now 立刻重启(root用户使用)

3、shutdown -r 10 过10分钟自动重启(root用户使用)

4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)

如果是通过shutdown命令设置重启的话,可以用 shutdown-c 命令取消重启

关机命令:

1、halt 立刻关机

2、poweroff 立刻关机

3、shutdown -h now 立刻关机(root用户使用)

4、shutdown -h 10 10分钟后自动关机

如果是通过shutdown命令设置关机的话,可以用shutdown -c 命令取消重启

相关推荐
我爱挣钱我也要早睡!10 小时前
Java 复习笔记
java·开发语言·笔记
汇能感知14 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun15 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao15 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾15 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT16 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
ST.J16 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin16 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
小憩-17 小时前
【机器学习】吴恩达机器学习笔记
人工智能·笔记·机器学习
UQI-LIUWJ17 小时前
unsloth笔记:运行&微调 gemma
人工智能·笔记·深度学习