进程管理命令
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 命令取消重启