常用基本命令
Shell可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以通过终端控制台来输入命令,由shell进行解释并最终交给内核执行。本章就将分类介绍常用的基本shell命令。
- 文件目录类
文件目录类命令 | 功能 |
---|---|
pwd | 显示当前的绝对路径 |
ls | 显示文件和目录 |
cd | 跳转到指定目录 |
mkdir | 创建目录 |
rmdir | 删除一个空的目录 |
touch | 创建空文件 |
rm | 删除文件或目录 |
cp | 复制文件或目录 |
mv | 移动或重命名文件或目录 |
cat | 查看文件内容 |
echo | 输出到控制台 |
more | 文件内容分屏查看 |
less | 文件内容分屏查看 |
head | 查看文件开头 |
tail | 查看文件结尾 |
>>以及> | 追加以及重定向 |
ln | 软链接,类似于windows中的快捷方式 |
history | 查看所有执行的命令 |
- 时间日期类命令
时间日期类命令 | 功能 |
---|---|
date | 显示或者设置时间 |
cal | 可以查看日历 |
- 用户管理类命令
用户管理类命令 | 功能 |
---|---|
useradd | 添加用户 |
passwd | 设置或修改密码 |
userdel | 删除用户[删除用户目录] |
id | 查看用户是否存在 |
su | 切换用户 |
sudo | 暂时给当前用户管理员权限 |
who | 查看当前用户 |
usermod | 切换用户所在的组 |
- 用户组管理命令
用户组管理命令 | 功能 |
---|---|
groupadd | 添加用户组 |
groupdel | 删除用户组 |
groupmod | 修改用户组组名 |
- 文件权限类命令
文件权限类命令 | 功能 |
---|---|
chmod | 改变权限 |
chown | 改变所属者 |
chgrp | 改变所属组 |
- 搜索查找类命令
搜索查找类命令 | 功能 |
---|---|
find | 查找文件或目录 |
locate | 快速定位文件路径 |
grep | 过滤查找 |
- 压缩和解压类命令
压缩和解压类命令 | 功能 |
---|---|
gzip/gunzip | 压缩/解压文件 |
zip/unzip | 压缩/解压文件或目录 |
tar | 打包 |
- 磁盘查看和分区类命令
磁盘查看和分区类命令 | 功能 |
---|---|
du | 查看文件和目录占用的磁盘空间 |
df | 查看磁盘空间使用情况 |
lsbk | 查看设备挂载情况 |
mount/umount | 挂载/卸载 |
fdisk | 分区 |
- 进程管理类命令
进程管理类命令 | 功能 |
---|---|
ps | 查看当前系统进程状态 |
kill | 终止进程 |
pstree | 查看进程树 |
top | 实时监控系统进程状态 |
netstat | 显示网络状态和端口占用信息 |
帮助命令
- man获取帮助信息
基本语法
man [命令或者配置文件] 功能描述:获得帮助信息
注意:man是manual的缩写
案例实操
使用命令 man ls
查看ls命令的帮助信息
使用命令 man -f exit
查看shell内置命令exit的帮助信息
- help获取shell内置命令的帮助信息
一部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动之后会随着shell一起被加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其他命令被称为“外部命令”。
基本语法
help 命令 功能描述:获得shell内置命令的帮助信息
案例实操
使用命令help cd
查看cd命令的帮助信息
- 使用–help获取外部命令帮助文档
基本语法
使用命令 外部命令 --help
获取外部命令的帮助信息
案例实操
使用 ls --help
查看ls的帮助文档
- 使用type区分内嵌还是外部命令
- 常用快捷键
常用快捷键 | 功能 |
---|---|
ctrl+c | 停止进程 |
ctrl+l | 清屏,等同于clear(向后翻一页);彻底清屏是reset |
tab键 | 提示(更重要的是可以防止敲错) |
上下键 | 查找执行过的命令 |
文件目录类命令
- pwd显示当前工作目录的绝对路径
pwd:print working directory 打印工作目录
基本语法
使用命令pwd
显示当前工作目录的绝对路径
案例实操
- ls列出目录的内容
ls:list 列出目录内容
基本语法
ls [选项] [目录或者文件]
选项说明
选项 | 功能 |
---|---|
-a | 全部的文件,连同隐藏挡(开头为.的文件)一起列出来 |
-l | 长数据串列出,包含文件的属性与权限等等数据;等价于ll |
案例实操
查看当前目录的所有内容信息
显示说明
每行列出的信息依次是:文件类型与权限 链接数 文件属主 文件属组 文件大小(byte) 创建或修改的最近时间 名称
- cd 切换目录
cd:Change Directory 切换路径
基本语法
使用命令cd [参数]
切换路径
参数说明
参数 | 功能 |
---|---|
cd 绝对路径 | 切换路径 |
cd 相对路径 | 切换路径 |
cd ~或者cd | 切换到自己的主文件夹下 |
cd - | 回到上一次所在的目录 |
cd … | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
案例实操
1.使用cd 绝对路径
切换到root目录
2.使用cd 相对路径
切换到"公共的"目录
3.使用cd ~
或者cd
回到主文件夹下(略)
4.使用cd -
回到上一次所在的目录(略)
5.使用cd ..
回到上一级目录(略)
- mkdir 创建新目录
mkdir :Make directory 建立目录
基本语法
mkdir [选项] 要创建的目录
选项说明
选项 | 功能 |
---|---|
-p | 创建多层目录 |
案例实操
使用命令mkdir 目录
创建一个目录
使用命令mkdir -p 目录/目录
创建一个多级目录
- rmdir 删除一个空的目录
rmdir:Remove Directory 移除目录
基本语法
使用命令 rmdir 要删除的空目录
来删除一个空的目录。
案例实操
- touch 创建空文件
基本语法
使用命令touch 文件名称
创建空文件
案例实操
- cp 复制文件或者目录
基本语法
使用命令cp [选项] source dest
复制source文件到dest
选项说明
选项 | 功能 |
---|---|
-r | 递归复制整个文件夹 |
参数说明
参数 | 功能 |
---|---|
source | 源文件 |
dest | 目标文件 |
经验技巧
强制覆盖不提示的方法:使用命令\cp
案例实操
source 和 dest都是文件
覆盖文件
soure是文件 dest是文件夹
复制文件
source 和 dest都是文件夹
递归复制整个文件夹
- rm 删除文件或者目录
基本语法
使用命令rm [选项] deleteFile
递归删除目录中所有的内容
选项说明
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不提示用于进行确认 |
-v | 显示指令的详细执行过程 |
案例实操
删除目录中的内容
递归删除目录中所有内容
- mv 移动文件与目录或重命名
基本语法
使用命令mv oldNameFile newNameFile
实现文件或文件夹重命名
使用命令mv /temp/movefile /targetFolder
实现文件的移动
案件实例
重命名
移动文件
- cat 查看文件内容
查看文件内容,从第一行开始
基本语法
cat [选项] 要查看的文件
选项说明
选项 | 功能描述 |
---|---|
-n | 显示所有行的行号,包括空行 |
经验技巧
一般查看比较小的文件,一屏幕能显示全。
案例实操
查看文件内容并显示行号
- more 文件内容分屏查看器
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明
基本操作
使用命令 more 要查看的文件
以全屏幕的方式按页显示文本文件的内容
操作说明
操作 | 功能说明 |
---|---|
空格键 | 向下翻页 |
Enter | 向下翻行 |
q | 代表立刻离开more,不再显示该文件内容 |
ctrl+f | 向下滚动一屏 |
ctrl+b | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前的行号 |
案例实操
使用命令more 文件名称
查看文件
- less 分屏显示文件内容
less指令用来分屏查看文件内容,它的功能和more指令类似,但是比more指令更加强大,支持各种显示终端。less指令显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法
使用命令 less 要查看的文件
操作说明
操作 | 功能说明 |
---|---|
空格键 | 向下翻动一页 |
pagedown | 向下翻动一页 |
pageup | 向上翻动一页 |
/字符串 | 向下搜寻该字符串,n:向下查找;N:向上查找 |
?字符串 | 向上搜寻该字符串,n:向上查找;N:向下查找 |
q | 离开less这个程序 |
案例实操
- echo
基本语法
echo [选项] [输出内容]
功能描述:输出内容到控制台
选项说明
选项 | 功能说明 |
---|---|
-e | 支持反斜线控制的字符转换 |
案例实操
- head 显示文件头部内容
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
基本语法
head 文件
功能描述:查看文件头10行内容
head -5 文件
功能描述:查看文件头5行内容,5可以是任意数字
选项说明
选项 | 功能 |
---|---|
-行数 | 显示指定行的内容 |
案例实操
- tail 输出文件尾部内容
tail用于输出文件的中尾部的内容,默认情况下tail指令显示文件的后10行内容。
基本语法
tail 文件 功能描述:查看文件尾部10行内容
tail -5 文件 功能描述:查看文件尾部5行内容
tail -f 文件 功能描述:实时追踪该文档的所有更新(使用ctrl+s暂停|ctrl+q继续|ctrl+c结束)
选项说明
选项 | 功能 |
---|---|
-数字 | 输出文件尾部数字行内容 |
-f | 显示文件最新追加的内容,监视文件的变化 |
案例实操
- >输出重定向和>>追加
基本语法
ls -l > 文件
功能描述:将ls -l显示的内容写入到文件中(覆盖写)
ls -al >> 文件
功能描述:将ls -al显示的内容追加到文件中
cat 文件1 > 文件2
功能描述:将文件1的内容覆盖到文件2
echo "内容" >> 文件
功能描述:将内容追加到文件中
案例实操
将ls查看的信息写入到文件中
将ls查看的信息追加到文件中
采用echo将hello单词追加到文件中
- ln软链接
软链接也称符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
基本语法
使用命令ln -s [原文件或目录] [软链接名]
给原文件创建一个软链接
经验技巧
删除软链接: rm -rf 软链接名
,而不是rm -rf 软链接名/
注意!!!如果使用rm -rf 软链接名/ 删除 ,会把软链接对应的真实目录下的内容删掉
查询:通过ll就可以查看,列表属性第一位是小写l,尾部会有位置指向。
案例实操
使用命令ln -s new1.txt test1
创建软链接
删除软链接
使用命令rm -rf test1
删除软链接文件
使用命令cd -P test2
进入软链接实际物理路径
可以使用pwd -P
显示当前真实目录 使用cd -P 软链接文件|目录
可以进入到真实文件或目录
- history查看已经执行过的历史命令
基本语法
使用命令history
查看已经执行过的历史命令
案例实操
使用命令history
查看已经执行过的历史命令
使用命令histroy -c
将历史命令清空
时间日期类命令
基本语法
date [选项]… [+FORMAT]
选项说明
选项 | 功能 |
---|---|
-d<时间字符串> | 显式指定的“时间字符串”表示的时间,而非当前时间 |
-s<日期时间> | 设置系统日期时间 |
参数说明
参数 | 功能 |
---|---|
<+时间字符串> | 指定显示使用的日期时间格式 |
date显示当前时间
基本语法
命令 | 功能 |
---|---|
date | 显示当前时间 |
date +%Y | 显示当前年份 |
date +%m | 显示当前月份 |
date +%d | 显示当前是哪一天 |
date “+%Y-%m-%d %H:%M:%S” | 显示年月日时分秒(有空格所以用双引号) |
date +%s | 显示当前的时间戳 |
date显示非当前时间
基本语法
命令 | 功能 |
---|---|
date -d “1 days ago” | 显示前一天时间 |
date -d “-1 days ago” | 显示后一天时间 |
date设置系统时间
基本语法
命令 | 功能 |
---|---|
date -s 字符串数字 | 设置系统当前时间 |
案例实操
使用命令date -s "2022-08-05 20:20:20"
设置系统的时间
cal查看日历
基本语法
使用命令cal [选项]
显示日历
选项说明
选项 | 功能 |
---|---|
具体某一年 | 显示这一年的日历 |
案例实操
使用命令cal
显示当前月的日历
使用命令cal 2022
查看2022年的日历
用户管理命令
- useradd添加新用户
基本语法
使用命令useradd 用户名
添加新用户
使用命令useradd -g 组名 用户名
添加新用户到某个组
案例实操
添加一个新用户
- passwd设置用户密码
基本语法
使用命令passwd 用户名
为用户设置或者修改密码
案例实操
- id查看用户是否存在
基本语法
使用命令id 用户名
查看用户是否存在
案例实操
- cat /etc/passwd 查看创建了哪些用户
案例实操
- su 切换用户
su是swich user的缩写即 切换用户
基本语法
su 用户名称 功能:切换用户,只能获取用户的执行权限,不能获得环境变量
su - 用户名称 功能:切换用户并获得该用户的环境变量以及执行权限
案例实操
- userdel 删除用户
基本语法
使用命令userdel 用户名
删除用户但保存用户主目录
使用命令userdel -r 用户名
用户和用户目录都删除
选项说明
选项 | 功能 |
---|---|
-r | 删除用户的同时,删除与用户相关的所有文件 |
案例实操
删除用户和用户主目录
- who 查看用户登录信息
基本语法
使用命令whoami
显示自身用户名称
使用命令who am i
显示登陆用户的用户名以及登录时间
- sudo设置普通用户具有root权限
添加hdr用户,并对其设置密码
修改配置文件
使用vim编辑器修改/etc/sudoers文件,跳转到第99行,并在root下面添加如下内容。
其中hdr用户使用sudo命令时不需要输入密码
实例操作
使用普通用户在/opt目录下创建一个文件夹
- usermod修改用户
基本语法
usermode -g 用户组 用户名
选项说明
选项 | 功能 |
---|---|
-g | 修改用户的初始登陆组,给定的组必须存在。默认组id是1 |
案例实操
使用命令usermod -g root zhubajie
将用户加入到用户组
用户组管理命令
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同。
如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
- groupadd 新增组
基本语法
使用命令groupadd 组名
新增组
案例实操
添加一个名为xxshdr的组
- groupdel 删除组
使用命令groupdel 组名
删除一个组
案例实操
删除名为xxshdr的组
- groupmod 修改组
基本语法
groupmod -n 新组名 老祖名
选项说明
选项 | 功能描述 |
---|---|
-n<新组名> | 指定工作组的新组名 |
案例实操
创建一个名为xxshdr的组然后修改组名为hdrsb
- cat /etc/group 查看创建了哪些组
文件权限类
- 文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不用的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll
或者ls-l
命令来显示一个文件的属性以及文件所属的用户和组
如果没有权限,就会出现减号-。
注意!w代表可写(write)可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写的权限,才能删除该文件。
- chmod 改变权限
基本语法
第一种方式变更权限
chmod [{ugoa}{±=}{rwx}] 文件或目录
第二种方式变更权限
chmod [mode=421 ] [文件或目录]
经验技巧
u:所属者
g:所属组
o:其他人
a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx =4+2+1=7
案例实操
(1)修改文件使其所属主用户具有执行权限
(2)修改文件使其所属组用户具有执行权限
(3)修改文件所属主用户执行权限,并使其他用户具有执行权限
(4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限
(5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限
- chown 改变所属者
基本语法
chown [选项] [最终用户] [文件或目录]
功能:改变文件或者目录的所有者
选项说明
选项 | 功能 |
---|---|
-R | 递归操作 |
案例实操
修改文件所有者
递归改变文件所有者和所有组
- chgrp 改变所属组
基本语法
chgrp [最终用户组] [文件或者目录]
功能:改变文件或目录所属的组
案例实操
搜索查找类
- find 查找文件或者目录
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
基本语法
find [搜索范围] [选项]
选项说明
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找文件 |
-user<用户名> | 查找属于指定用户名的所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
案例实操
按文件名查找
按拥有着查找
按文件大小查找
- locate 快速定位文件路径
locate指令利用事先建立的数据库(所有文件名称以及路径)实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
基本语法
使用命令locate 搜索文件
快速定位文件路径
经验技巧
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb
指令创建locate数据库。
案例实操
- grep 过滤查找以及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法
grep 选项 查找内容 源文件
选项说明
选项 | 功能 |
---|---|
-n | 显示匹配的同时,显示行号 |
案例实操
查找new1.txt中的root文本
查找new1.txt中的root文本同时显示文本行号
使用管道符“|”将命令ls得到的内容过滤
压缩和解压类
- gzip/gunzip 压缩
基本语法
使用命令gzip 文件
压缩文件,将文件压缩成.gz文件
使用命令gunzip 文件.gz
将被压缩的文件解压缩
经验技巧
1.只能压缩文件不能压缩目录
2.不保留原来的文件
3.同时多个文件会产生多个压缩包
案例实操
gzip压缩
gunzip解压缩文件
- zip/unzip压缩
基本语法
使用命令zip [选项] XXX.zip 将要压缩的内容
压缩文件或者目录
使用命令unzip [选项] XXX.zip
解压缩
选项说明
zip选项 | 功能 |
---|---|
-r | 压缩目录,不适用该命令只压缩一个空文件 |
unzip选项 | 功能 |
---|---|
-d<目录> | 指定解压后文件的存放位置 |
经验技巧
zip压缩命令在windows/linux都通用,可以压缩目录且保留源文件。
案例实操
压缩new1.txt文件并命名成new1.zip
压缩hdr目录并命令为hdr.zip
删除hdr目录后解压hdr.zip到桌面
解压new1.zip到hdr中
- tar 打包
基本语法
使用命令tar [选项] XXX.tar.gz 将要打包进去的内容
打包沐浴露,压缩后的文件格式.tar.gz
选项说明
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细详细 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
-C | 打包到指定目录 |
案例实操
使用命令tar -zcvf 压缩文件名.tar.gz 压缩文件1 压缩文件2 ...
压缩多个文件
压缩目录
使用命令tar -zcvf 压缩文件名.tar.gz 文件目录
压缩文件目录
解压到当前文件
解压到指定目录
磁盘查看和分区类
- du 查看文件和目录占用的磁盘空间
du:disk useage 磁盘占用情况
基本语法
使用命令du [选项] 目录/文件
显示目录下每个子目录的磁盘使用情况
选项说明
选项 | 功能 |
---|---|
-h | 以人们较易阅读的GBytes,MBytes,KBoytes等格式自行显示 |
-a | 不仅查看子目录大小,还要包括文件 |
-c | 显示所有的文件和子目录大小后,显示总和 |
-s | 只显示总和 |
–max-depth=n | 指定统计子目录的深度为n层 |
案例实操
查看当前用户主目录占用的磁盘空间大小
- df 查看磁盘空间使用情况
df :disk free 空余磁盘
基本语法
使用命令df 选项
列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况
选项说明
选项 | 功能 |
---|---|
-h | 以人们较易阅读的GBytes,MBytes,KBoytes等格式自行显示 |
案例实操
查看磁盘使用情况
- lsblk 查看设备挂载情况
基本语法
使用命令lsblk
查看设备挂载情况
选项说明
选项 | 功能 |
---|---|
-f | 查看详细的设备挂碍情况,显示文件系统信息 |
案例实操
- mount/umount 挂载/卸载
对于Linux用户来说,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,他在用一种叫做挂载的处理方式,他整个文件系统各种包含了一整套的文件和目录,并将一个分区和一个目录联系起来。
挂载前的准备(必须要有光盘或者已经链接的镜像文件并且还没有自动挂载)
基本语法
使用命令mount [-t vfstype] [-o options] device dir
挂载设备
使用命令 umount dir
卸载设备
参数说明
-t vfstype | **指定文件系统的类型,通常不必指定。**mount 会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS fat16 文件系统:msdosWindows 9x fat32 文件系统:vfatWindows NT ntfs 文件系统:ntfsMount Windows 文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs |
-o options | 主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接上系统ro:采用只读方式挂接设备rw:采用读写方式挂接设备iocharset:指定访问文件系统所用字符集 |
device | 要挂接(mount)的设备 |
dir | 设备在系统上的挂接点(mount point) |
案例实操
挂载光盘镜像文件
使用命令mount /dev/cdrom /mnt/cdrom/
卸载光盘镜像文件
使用命令 umount /mnt/cdrom
设置开机自动挂载
使用命令vi /etc/fstab
后添加如下内容
- fdisk 分区
针对硬盘进行分区
基本语法
使用命令 fdisk -l
查看磁盘分区详情
使用命令 fdisk 硬盘设备名
对新增硬盘进行分区操作
选项说明
选项 | 功能 |
---|---|
-l | 显示所有硬盘的分区列表 |
经验技巧
该目录必须在root用户下才能使用
功能说明
分区操作按键 | 功能 |
---|---|
m | 显示命令列表 |
p | 显示当前磁盘分区 |
n | 新增分区 |
w | 写入分区信息保存并退出 |
q | 不保存分区信息直接退出 |
进程管理类
进程是一个正在执行的程序或者命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
- ps查看当前系统进程状态
ps :process status 进程状态
基本语法
使用命令 ps aux | grep xxx 查看系统中所有的进程
使用命令 ps -ef | grep xxx 可以查看子父进程之间的关系
选项说明
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程 |
u | 面向用户友好的显示风格 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
-e | 列出所有进程 |
-f | 显示完整格式的进程列表 |
-u | 列出某个用户关联的所有进程 |
功能说明
ps aux 显示信息 | 说明 |
---|---|
USER | 产生进程的用户 |
PID | 进程的ID号 |
%CPU | 该进程占用CPU资源的百分比 |
%MEM | 该进程占用物理内存的百分比 |
VSZ | 该进程占用虚拟内存的大小,单位KB |
RSS | 该进程占用物理内存的大小,单位KB |
TTY | 该进程是在哪个终端运行的,对于CentOS来说,tty1是图形化终端,tty2-tty6是本地的字符界面终端。pts/0~255代表虚拟终端 |
STAT | 进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示 |
START | 该进程的启动时间 |
TIME | 该进程占用CPU的运行时间,不是系统时间 |
COMMAND | 产生该进程的命令 |
ps -ef显示信息 | 说明 |
---|---|
UID | 用户ID |
PID | 进程ID |
PPID | 父进程ID |
C | CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高。 |
STIME | 进程启动的时间 |
TTY | 完整的终端名称 |
TIME | CPU使用时间 |
CMD | 启动进程所用的命令和参数 |
经验技巧
如果想查看进程的CPU占用率和内存占用占用率,可以使用aux;如果想要查看进程的父进程PID可以使用-ef作为参数。
- kill终止进程
基本语法
使用命令 kill [选项] 进程号
通过进程号杀死进程
使用命令 killall 进程名称
通过进程名称杀死进程,也支持通配符,这在系统因复杂过大而变得很慢时很有用。
选项说明
选项 | 功能 |
---|---|
-9 | 表示强迫进程立刻停止 |
案例实操
杀死浏览器进程
通过进程名杀死进程
- pstree查看进程树
基本语法
使用命令 pstree [选项]
查看进程树
选项说明
选项 | 功能 |
---|---|
-p | 显示进程的PID |
-u | 显示进程的所属用户 |
案例实操
使用命令pstree -p
显示进程树并附带pid
使用命令pstree -u
显示进程树并附带所属用户
- top实时监控系统进程状态
基本命令
使用命令top [选项]
实时监控进程状态
选项说明
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新 |
-i | 使top不显示任何闲置或者僵死的进程 |
-p 进程号 | 通过指定监控进程ID来仅仅监控某个进程的状态 |
操作说明
操作 | 说明 |
---|---|
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
查询结果字段解释
- netstat 显示网络状态和端口占用信息
基本语法
使用命令netstat -anp | grep 进程号
查看该进程的网络信息
使用命令netstat -nlp |grep 端口号
查看网络端口号的占用情况
选项说明
选项 | 功能 |
---|---|
-a | 显示所有正在监听和未监听的套接字 |
-n | 拒绝显示别名,能显示数字的全都显示为数字 |
-l | 仅显示监听的服务状态 |
-p | 表示显示哪个进程在调用 |
案例实操
通过进程号查看sshd进程的网络信息
查看某网络端口号是否被占用
使用命令netstat -anp | grep 22 | less
学习总结
这一章我们学习了Linux的常用命令。我最大的感受是Linux的常用命令也太多了并且每个命令还有很多不同的参数。所幸,我们可以使用man来帮助我们了解每个命令。在这一章我们所学的命令主要分为以下几个部分:
- 帮助类命令
- 文件目录类命令
- 时间日期类命令
- 用户管理类命令
- 用户组管理类命令
- 文件权限类命令
- 文件查找类命令
- 压缩和解压类命令
- 进程管理类命令
- 磁盘查看和分区命令
这么多命令不可能一下子全都记住,必须在实践中不断的熟悉掌握以上命令。