Linux学习笔记
Linux学习
1 路径和特殊IP
1.1 基本路径
- 绝对路径:以
根目录为起点,描述路径的一种写法,路径描述以/开头 - 相对路径:以
当前目录为起点,描述路径的一种写法,路径不需要以/开头
1.2 特殊路径符
.:表示当前目录,比如cd ./Desktop表示切换到当前目录下的Desktop目录内,与cd Desktop效果一致..:表示上一级目录,比如cd ..即可切换到上一级目录,cd ../..切换到上二级的目录~:表示home目录,比如cd ~即可切换到home目录,cd ~/Desktop,切换到home内的Desktop目录
练习:
当前工作目录内有一个test文件夹,文件夹内有一个文件hello.txt,描述文件的相对路径:
test/hello.txt
在当前工作目录的上级目录有一个test文件夹,文件夹内有一个文件hello.txt,描述文件的相对路径:
../test/hello.txt
在home目录内有一个test文件夹,文件夹内有一个文件hello.txt,描述文件的相对路径:
~/test/hello.txt
1.3 特殊IP地选
127.0.0.1:指代本机0.0.0.0:- 可以用于指代本机
- 可以在端口绑定中来确定绑定关系
- 在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问
1.4 主机名
hostname:查看主机名hostnamectl set-hostname 新名字:修改主机名[更改主机名字,需要root]
2 Linux命令基础
2.1 ls(展示内容)
ls:展示当前工作目录(默认是home目录)下的内容(文件/文件夹)- 用法:
ls [-a -l -h] [Linux路径]-a:可以展示出隐藏的内容(以.开头的文件或文件夹默认被隐藏,需要-a才能显示出来)-l:以列表的形式展开内容,展示更多细节(存在缩写:ls -l<=>ll)-h:需要和-l选项搭配使用,以展示更加人性化的文件大小单位没有路径参数:显示当前工作目录下的内容 - 组合使用:命令的选项是可以组合使用的,比如
ls -lah,等同于ls -a -l -h
图例: 
2.2 cd(切换目录)
cd:可以切换当前目录- 用法:
cd [Linux路径]使用路径参数:切换到指定路径没有路径参数:切换工作目录到当前用户的home
2.3 pwd(显示路径)
pwd:输出当前所在的工作目录- 用法:
pwd(没有选项和参数)
图例:
2.4 mkdir(创建目录)
mkdir:可以创建新的目录(文件夹)- 用法:
mkdir [-p] Linux路径-p:表示自动创建不存在的父目录,适用于创建连续多级的目录Linux路径:即要创建的文件夹的路径 - 注意:普通用户下只有在自己的home目录下创建新目录的权限
图例:
2.5 touch(创建文件)
touch:可以创建新的文件- 用法:
touch Linux路径Linux路径:要创建的文件的路径
2.6 cat/more(查看文件)
2.6.1 cat
cat:可以查看文件里面的内容- 用法:
cat Linux路径
2.6.2 more
more:可以查看文件里面的内容- 用法:
more Linux路径 - 快捷键:
Space(空格键):下一页b:上一页\n(回车键):下一行q:退出
区别:
cat是直接将内容全部显示出来more支持翻页,如果文件内容过多,可以一页页的展示
2.7 cp(复制文件/文件夹)
cp:可以用于复制文件/文件夹- 用法:
cp [-r] 参数1 参数2-r:用于复制文件夹,表示递归参数1:Linux路径,表示被复制的文件/文件夹参数2:Linux路径,表示要复制去的地方
2.8 mv(移动文件/文件夹)
mv:可以用于移动文件/文件夹- 用法:
mv 参数1 参数2参数1:Linux路径,表示被移动的文件或文件夹参数2:Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
2.9 rm(删除文件/文件夹)
rm:可以用于删除文件/文件夹用法:
rm [-r -f] 参数1 参数2 …… 参数n-r:删除文件夹-f:强制删除(不会弹出提示确认信息)- 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
- 所以一般普通用户用不到
-f选项
参数1 参数2 …… 参数n:表示要删除的文件/文件夹路径,按照空格隔开支持通配符*:
用来做模糊匹配*:通配符,即匹配任意内容(包含空)test*表示匹配任何以test开头的内容*test表示匹配任何以test结尾的内容*test*表示匹配任何含有test的内容
图例:
2.10 which(查找命令的程序文件)
which:查看所使用的一系列命令的程序文件存放在哪里- 用法:
which 要查找的命令(cd,cp,pwd……)
2.11 find(查找文件)
find:可以搜索指定的文件- 用法:
①按文件名查找:find 起始路径 -name "被查找文件名"[文件名支持通配符]
②按文件大小查找:find 起始路径 -size +/- n[kMG]+,-:表示大于和小于n:表示大小数字kMG:表示单位大小,k(小写字母)表示kb,M表示MB,G表示GB
注意:
find命令存在权限问题,普通用户使用find命令时可能受到权限限制,无法搜索到部分目录或文件。
2.12 grep(过滤文件行)
grep:从文件中通过关键字过滤文件行- 用法:
grep [-n] "关键字" 文件路径-n:表示在结果中显示匹配的行的行号"关键字":表示要过滤的关键词,带有空格或其他特殊符号,建议使用” “将关键词包围起来文件路径:表示过滤内容的文件路径,可作为内容输入端口
2.13 wc(数量统计)
wc:可以统计文件的行数、单词数量等- 用法:
wc [-c -m -l -w] 文件路径-c:统计bytes数量-m:统计字符数量-l:统计行数-w:统计单词数量
没有输入选项:默认输出行数、单词数、字节数文件路径:可以作为内容输入的端口
2.14 | (管道符)
|:将管道符左边命令的结果,作为右边命令的输入- 用法:可以和
grep、wc……结合使用。
注意:
|可以多次嵌套使用。
下图例子:cat hello.txt | grep "lusy" | grep love
先通过cat hello.txt | grep "lusy"筛选出
lusy love you
lusy qq lus
wwsa lusy
再进行| grep love筛选出
lusy love
图例:
2.15 echo(输出内容)
echo:输出指定的内容[类似于C中的printf语句]- 用法:
echo "输出的内容"[带有空格或其他特殊符号,建议使用” “将关键词包围起来]
2.16 ` (反引号)
- 用法:被`包围的内容将会被当成命令执行,可以和echo搭配使用
2.17 >和>>(重定项符)
>/>>:修改文件内容- 用法:
>:将左侧命令的结果,覆盖写到符号右侧指定的文件中>>:将左侧命令的结果,追加写入符号右侧指定的文件中
2.18 tail(查看文件尾部)
tail:可以查看文件尾部内容,跟踪文件的最新更改- 用法:
tail [-f -n] Linux路径-f:表示持续跟踪,会实时更新[要退出持续跟踪,可以按Ctrl + C]-n:n是具体数字,表示要查看尾部多少行,不填默认10行
图例:

2.19 vi/vim(编辑文件)
vi/vim:编辑器,可以编辑文件内容[vim是vi的pro版本]- 用法:
vi/vim 文件路径- 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
- 如果文件路径表示的文件存在,那么此命令会用于编辑已有文件
- 注意:通过vi/vim命令编辑文件,会打开一个新的窗口,此时这个窗口是命令模式窗口,命令模式是vi/vim编辑器的入口和出口,如右图
- 进入vi/vim编辑器会进入命令模式
- 通过命令模式输入键盘指令
i、a、o[任选一个即可],可以进入输入模式 - 输入模式需要退回到命令模式,如何通过命令才可以进入底线命令模式
| 模式 | 命令 | 描述 | 模式 | 命令 | 描述 |
|---|---|---|---|---|---|
| 命令模式 | i | 在当前光标位置进入 输入模式 | 命令模式 | yy | 复制当前行 |
| 命令模式 | a | 在当前光标位置 之后 进入 输入模式 | 命令模式 | nyy | n是数字,复制当前行和下面的n行 |
| 命令模式 | o | 在当前光标下一行进入输入模式 | 命令模式 | p | 粘贴复制的内容 |
| 命令模式 | I | 在当前行的开头,进入输入模式 | 命令模式 | u | 撤销修改 |
| 命令模式 | A | 在当前行的结尾,进入输入模式 | 命令模式 | ctrl + r | 反向撤销修改 |
| 命令模式 | O | 在当前光标上一行进入输入模式 | 命令模式 | gg | 跳到首行 |
| 输入模式 | esc | 任何情况下输入esc都能回到命令模式 | 命令模式 | G | 跳到行尾 |
| 命令模式 | 键盘上、键盘k | 向上移动光标 | 命令模式 | dd | 删除光标所在行的内容 |
| 命令模式 | 键盘下、键盘j | 向下移动光标 | 命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
| 命令模式 | 键盘左、键盘h | 向左移动光标 | 命令模式 | dG | 从当前行开始,向下全部删除 |
| 命令模式 | 键盘右、键盘1 | 向后移动光标 | 命令模式 | dgg | 从当前行开始,向上全部删除 |
| 命令模式 | 0 | 移动光标到当前行的开头 | 命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
| 命令模式 | $ | 移动光标到当前行的结尾 | 命令模式 | de | 从当前光标开始,删除到本行的开头 |
| 命令模式 | pageup(PgUp) | 向上翻页 | 底线命令模式 | :wq | 保存并退出 |
| 命令模式 | pangdown(PgDn) | 向下翻页 | 底线命令模式 | :q! | 强制退出 |
| 命令模式 | / | 进入搜索模式 | 底线命令模式 | :w | 仅保存 |
| 命令模式 | n | 向下继续搜索 | 底线命令模式 | :set nu | 显示行号 |
| 命令模式 | N | 向上继续搜索 | 底线命令模式 | :set paste | 设置粘贴模式 |
3 root用户
3.1 root用户和普通用户
root用户(超级管理员):拥有最大的系统操作权限[而普通用户在许多地方的权限是受限的]普通用户:一般在其home目录内是不受限的,而一旦出了home目录,大多数地方普通用户仅有只读和执行权限,无修改权限
3.2 su和exit(切换用户)
3.2.1 su
su:用于账户的切换- 用法:
su [-] [用户名]-:表示是否在切换用户后加载环境变量,建议带上用户名:表示要切换的用户,如果没有填写,默认切换到root用户
3.2.2 exit
exit:退回上一个用户- 用法:切换用户后,可以通过
exit命令返回上一个用户,也可以使用快捷键Ctrl + d
注意:
- 使用普通用户,切换到其他用户需要输入密码,如切换到root用户(输入的密码要与切换到的用户的密码对应)
- 使用root用户切换到其他用户,无需密码,可以直接切换
3.3 sudo(获得权限)
sudo:可以为普通用户的命令授权,临时以root身份执行- 用法:
sudo 其它命令
注意:
- 在其它命令之前,带上
sudo,即可为这一条命令临时赋予root授权- 但并不是所有的用户都有权利使用
sudo,我们需要在此之前为普通用户配置sudo认证
- 配置sudo认证:
- 切换
root用户 - 执行
visudo命令,会自动通过vi编辑器打开:/etc/sudoers - 在文件的最后添加相关指令[如下]
- 通过
wq保存
- 切换
| 参数 | 含义 |
|---|---|
username | 表示将授权信息添加到指定用户的权限列表中 |
otheruser | 指定其他用户的身份。 |
%groupname | 指定要授权的用户组。 |
ALL | 表示将授权信息添加到所有用户或者组的权限列表中 |
(ALL) | 表示可以以任何用户的身份执行命令。 |
NOPASSWD | 表示授权用户在执行该命令时无需输入密码 |
PASSWD | 表示授权用户在执行该命令时需要输入密码 |
/path/ | 表示授权用户可以执行的命令路径,必须使用完整的命令路径 |
/file | 表示授权用户可以执行的文件路径,必须使用完整的文件路径 |
! | 表示阻止用户执行某些命令 |
# | 表示注释符号,后面的内容将被视为注释,不起实际作用 |
Defaults | 表示设置sudo的默认配置信息,包括日志路径、运行超时时间等 |
用户授权:
1
username ALL=(ALL) [NOPASSWD:] command
username:指定要授权的用户名。ALL:表示可以在任何主机上执行命令。(ALL):表示可以以任何用户的身份执行命令。NOPASSWD:表示无需输入密码。
例如,允许用户
john在任何主机上以任何用户的身份执行/bin/ls命令,并且无需输入密码:1
john ALL=(ALL) NOPASSWD: /bin/ls
用户组授权:
1
%groupname ALL=(ALL) [NOPASSWD:] command
%groupname:指定要授权的用户组。- 其他参数的含义同上。
例如,允许用户组
admins在任何主机上以任何用户的身份执行/bin/ls命令,并且无需输入密码:1
%admins ALL=(ALL) NOPASSWD: /bin/ls
指定可执行文件路径:
1
username ALL=(ALL) [NOPASSWD:] /path/to/command
这将限制用户只能执行指定路径下的命令。
禁止某些命令:
1
username ALL=(ALL) !/path/to/command
这将阻止用户执行指定的命令。
授权指定用户以其他用户的身份执行命令:
1
username ALL=(otheruser) [NOPASSWD:] /path/to/command
允许用户以
otheruser用户的身份执行命令。别名的使用:
你也可以定义别名来使配置文件更加清晰,例如:
1
2
3
4User_Alias ADMINS = user1, user2
Cmnd_Alias SYSTEM_CMDS = /bin/ls, /bin/cat
ADMINS ALL=(ALL) SYSTEM_CMDS这样,
ADMINS别名包含了user1和user2用户,SYSTEM_CMDS别名包含了/bin/ls和/bin/cat命令,然后ADMINS组可以执行SYSTEM_CMDS中的命令。
注意:
在编辑
sudoers文件时,一定要使用visudo命令,这样可以在保存文件时检查语法错误,以免导致系统无法启动。在
/etc/sudoers文件中配置了username ALL=(ALL) [NOPASSWD:] command这样的规则时,这意味着当用户username尝试执行command时,无论命令是否需要超级用户权限,只有在命令前加上sudo才会生效。另一方面,如果配置了阻止用户执行某些命令的规则,比如
username ALL=(ALL) !/path/to/command,即使用户尝试执行该命令时没有使用sudo,系统也会阻止命令的执行。所以,在配置了
sudoers文件后:
- 如果某个用户有权限执行某个命令,并且该命令不需要特权,那么用户可以在执行时不加
sudo。- 如果某个用户有权限执行某个命令,但是该命令需要特权,那么用户必须在执行时加上
sudo。- 如果某个用户被明确阻止执行某个命令,那么无论是否使用
sudo,该命令都不会被执行。
3.4 用户组管理
对一个用户组进行创建和删除操作,都需要root用户的权限[下图是用户与用户组中间的关系图]

3.4.1 创建用户组
- 命令:
groupadd 用户组名
3.4.2 删除用户组
- 命令:
groupdel 用户组名
3.5 用户管理
3.5.1 创建用户
- 命令:
useradd 用户名 [-g 用户组名 -d Linux路径]-g:指定用户的组,不指定-g,会创建一个同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g-d:指定用户home路径,不指定,home目录默认在:/home/用户名
3.5.2 删除用户
- 命令:
userdel [-r] 用户名-r:删除用户的home路径,不是用-r,删除用户时,home目录会被保留
3.5.3 查看用户所属组
- 命令:
id [用户名][用户名]:被查看的用户,如果不提供则查看自身
3.5.4 修改用户所属组
- 命令:
usermod -aG 用户组 用户名
将指定用户加入指定用户组
注意:
原有的所属组也会保留,如要将用户从所属组删除,可以通过下面的命令
1 sudo gpasswd -d 用户名 用户组名
3.6 查看用户/用户组
- 命令:
getent passwd
用于查看当前系统中有哪些用户
共有7份信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash) - 命令:
getent group
用于查看当前系统中有哪些用户组
共有3份信息,分别是:
组名称:组认证(显示为x):组ID
3.7 认知权限信息
可以通过ls -l或者ll命令,以列表的形式查看内容,并显示权限细节
- 序号1:表示文件/文件夹的权限控制信息
- 序号2:表示文件/文件夹所属用户
- 序号3:表示文件/文件夹所属用户组
序号1的权限细节总共分为10个槽位
第一个槽位表示所属类型:d表示文件夹,-表示文件,l表示软连接
后9个槽位分为3组,每组3个槽位,这三组依次是:所属用户权限,所属用户组权限,其他用户权限
每一组的三个槽位中,每个槽位依次是:r可读[查看文件夹内容],w可写[创建,删除,改名],x可执行[可更改工作目录到此文件夹],-没有这个功能的权限
举例:
drwxr-xr-x
- 这是一个文件夹,首字母
d表示- 所属用户的权限是:
rwx- 所属用户组的权限是:
r-x,表示有r无w有x- 其他用户的权限是:
r-x
3.8 chmod(修改权限)
chmod:修改文件、文件夹的权限信息[注意:只有文件、文件夹的所属用户或root用户可以修改]- 用法:
chomd [-R] 权限 文件/文件夹-R:对文件夹内的全部内容应用同样的操作权限:u=___,g=___,o=___
其中u表示user所属用户权限,g表示group组权限,o表示other其他用户权限。可以根据自己的需要修改相应权限
举例:
chmod u=rwx,g=rx,o=x hello.txt
将hello.txt这个文件修改为所属用户可读可写可执行,所属用户组可读可执行,其他用户只能执行,没有读写权限。
快捷写法:chmod u=rwx,g=rx,o=x hello.txt可以改写成chomd 751 hello.txt
在书写权限的可读、可写、可执行时,可以把r记为4,w记为2,x记为1。
所以rwx可以记为7,rx可以记为5,x可以记为1
3.9 chown(修改所属用户/用户组)
chown:修改文件、文件夹的所属用户和用户组[普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户]- 用法:
chown [-R] [用户][:][用户组] 文件或文件夹-R:对文件夹内的全部内容应用同样的操作用户:修改所属用户用户组:修改所属用户组::用于分隔用户和用户组[只有填写了用户组,才需要加上冒号,如果只是修改所属用户,不需要添加]
4 快捷键
| 命令 | 含义 |
|---|---|
ctrl+c | 强制停止程序,退出命令输入 |
ctrl+d | 退出或登出(不能用于vi/vim) |
history | 查看历史命令 |
history |grep ch | 在历史记录中过滤带有ch命令[ch可换成自己想要过滤的关键词] |
!+命令的前缀 | 自动匹配上一次匹配的前缀命令 |
ctrl+r | 输入内容去匹配历史命令 |
ctrl+a | 调到命令开头 |
ctrl+e | 跳到命令结尾 |
ctrl+键盘左键 | 向左跳一个单词 |
ctrl+键盘右键 | 向右跳一个单词 |
ctrl+l或者clear | 清空终端内容(清屏) |
5 基础操作
5.1 yum(软件安装)
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题- 用法:
yum [-y] [install | remove | search] 软件名称-y:自动确认,无需动手确认安装或卸载过程install:安装remove:卸载search:搜索
注意:
- yum命令需要
root权限- yum命令需要联网
5.2 systemctl(管理软件)
systemctl:启动、停止、开机自启能够被syatemctl管理的软件,一般也称之为服务- 用法:
systemctl start | stop | status | enable | disable 服务名start:启动stop:关闭status:查看状态enable:开启开机自启disable:关闭开机自启
常见的服务
NetworkManager:主网络服务network:副网络服务firewalld:防火墙服务sshd:ssh服务(FinalShell远程登录Linux使用的就是这个服务)
5.3 ln(软链接)
ln:在系统中创建软链接,可以将文件、文件夹链接到其它位置[类似于Windows中的”快捷方式”]- 用法:
ln -s 参数1 参数2-s:创建软链接参数1:被链接的文件或文件夹参数2:要链接去的目的地
删除软链接
要删除 Linux 中的软链接,可以使用rm命令,其语法为:
1 rm 软链接文件名
图例:
[注意:如果软链接出现爆红现象,那可能是被链接的文件或文件夹并不存在]
5.4 网络请求和下载
5.4.1 ping(检查服务器是否可联通)
ping:检查指定的网络服务器是否是可联通状态- 用法:
ping [-c num] ip或主机名-c num:检查的num次,如果不使用-c,将无限次持续检查[可用Ctrl + c退出]ip或主机名:被检查的服务器的IP地址或主机名地址
5.4.2 wget(文件下载)[要先下载过wget插件,若之前没有下载,可用yum命令下载]
wget:是一个非交互式的文件下载器,可以在命令行内下载网络文件- 用法:
wget [-b] url-b:后台下载,会将日志写入到当前工作目录的wget-log文件url:下载链接
在Linux中,yum 和 wget 是两个不同的工具,用途也不同:
yum:
yum 是一个包管理器,通常用于在基于 RPM 的发行版(如 CentOS、Fedora、Red Hat Enterprise Linux 等)上安装、更新和删除软件包。
它可以自动解决软件包之间的依赖关系,并下载并安装所有必需的软件包。
yum 通常用于管理系统上的软件包,包括安装新软件包、更新已安装的软件包、删除不再需要的软件包等。wget:
wget 是一个命令行工具,用于从网络上下载文件。它支持下载 HTTP、HTTPS 和 FTP 等协议下的文件。
wget 可以下载单个文件,也可以通过递归下载整个网站的内容。
它是一个简单而强大的工具,通常用于从命令行下载文件,比如下载软件包、下载网站内容、下载备份等。
简而言之,yum 是一个软件包管理器,用于管理系统上的软件包,而 wget 则是一个下载工具,用于从网络上下载文件。它们在功能和用途上有很大的区别,但在某些情况下可能会一起使用,比如使用 wget 下载软件包文件,然后使用 yum 安装这些软件包。
5.4.3 curl(网络请求)
curl:可以发送http网络请求,可以用于:下载文件,获取信息等- 用法:
curl [-O] url-O:用于下载文件,当url是下载链接时,可以用此选项进行保存文件url:要发起请求的网络地址
图例:
5.5 端口
Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用[如SSH服务的22端口,HTTPS服务的443端口],非特殊需要,不要占用这个范围的端口
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序/服务
- 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。[如发起访问时,发起方的临时端口]
5.5.1 nmap(查看暴露端口)[插件,需要yum命令下载]
nmap:可以查看指定IP的对外暴露端口- 用法:
nmap 被查看的ip地址
5.5.2 netstat(查看端口占用)[插件,yum -y install net-tools]
netstat:查看指定端口的占用情况- 用法:
netstat -anp [ | grep 端口号]| grep 端口号:用来筛选端口
图例:
5.6 进程管理
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程ID(进程号)
5.6.1 ps(查看进程)
ps:查看Linux系统中的进程信息- 用法:
ps [-e -f]-e:显示出全部的进程-f:以完全格式化的形式展开信息
一般来说,固定用法是:ps -ef列出全部进程的全部信息,并配合| grep 关键词使用。
- UID:进程所属的用户ID
- PID:进程的进程号ID
- PPID:进程的父ID(启用此进程的其它进程)
- C:此进程的CPU占用率(百分比)
- STIME:进程的启动时间
- TTY:启动此进程的终端序号,如显示?,表示非终端启动
- TIME:进程占用CPU的时间(累计使用CPU的时间)
- CMD:该进程对应的名字或启动路径或启动命令。

5.6.2 kill(关闭进程)
kill:关闭指定进程- 用法:
kill [-9] 进程ID-9:表示强制关闭进程
5.7 主机状态监控
5.7.1 top(查看任务管理器)
top:查看CPU、内存使用情况,类似windows的任务管理器- 用法:
top
默认每5秒刷新一次,可以按q或Ctrl + c退出

- 第一行:
top:命令名称,20:41:40:当前系统时间,up 1:29:启动了1小时29分钟,2 users:2个用户登录,load average:0.26,0.39,0.40:表示1,5,15分钟的平均负载 - 第二行:
Tasks:174 total:一共有174个进程,4 running:4个进程在运行,170 sleeping:170个进程睡眠,0 stopped:0个停止进程,0 zombie:-个僵尸进程 - 第三行:
%Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待CPU占用率 - 第四、五行:
Kib Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用

- PID:进程id
- USER:进程所属用户
- PR:进程优先级,越小越高
- NI:负值表示高优先级,正表示低优先级
- VIRT:进程使用虚拟内存,单位KB
- RES:进程使用物理内存,单位KB
- SHR:进程使用共享内存,单位KB
- S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,l空闲状态)
- %CPU:进程占用CPU率
- %MEM:进程占用内存率
- TIME+:进程使用CPU时间总计,单位10毫秒
- COMMAND:进程的命令或名称或程序文件路径
以下是top命令的常用选项及其功能:
| 选项 | 功能 |
|---|---|
-p | 只显示某个进程的信息 |
-d | 设置刷新时间,默认是5秒 |
-c | 显示产生进程的完整命令,而不是进程名 |
-n | 指定刷新次数,例如top -n 3刷新输出3次后退出 |
-b | 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,例如top -b -n 3 > /tmp/top.tmp |
-i | 不显示任何闲置(idle)或无用(zombie)的进程 |
-u | 查找特定用户启动的进程 |
以下是top交互式模式(非-b选项启动)中常用的按键及其功能:
| 按键 | 功能 |
|---|---|
| h | 显示帮助画面 |
| c | 显示产生进程的完整命令,等同于-c参数。再次按下c键,变为默认显示。 |
| f | 选择需要展示的项目 |
| M | 根据驻留内存大小(RES)排序 |
| P | 根据CPU使用百分比大小进行排序 |
| T | 根据时间/累计时间进行排序 |
| E | 切换顶部内存显示单位 |
| e | 切换进程内存显示单位 |
| 1 | 切换显示平均负载和启动时间信息 |
| i | 不显示闲置或无用的进程,等同于-i参数。再次按下,变为默认显示。 |
| t | 切换显示CPU状态信息 |
| m | 切换显示内存信息 |
5.7.2 df(磁盘信息监控)
df:可以查看磁盘的使用情况- 用法:
df [-h]-h:以更加人性化的单位显示
5.7.3 iostat(CPU,磁盘信息监控)
iostat:查看CPU、磁盘的相关信息- 用法:
iostat [-x] [num1] [num2]-x: 显示更多信息
[常用:rKB/s:每秒发送到设备的读取请求数,wKB/s:每秒发送到设备的写入请求数,%utill:磁盘利用率]num1: 刷新间隔num2: 刷新次数
5.7.4 sar(网络状态监控)[sar命令非常复杂,这里仅简单用于统计网络]
sar:查看网络的相关统计- 用法:
sar -n DEV num1 num2-n查看网络DEV查看网络接口num1刷新间隔num2查看次数 - [常用信息:
IFACE:本地网卡接口的名称,rxKB/s:每秒接收的数据包大小,txKB/s:每秒发送的数据包大小]
5.8环境变量
5.8.1 env(查看环境变量)
env:查看当前系统中记录的环境变量- 用法:
env
PATH(环境变量): PATH:记录了系统执行任何命令的搜索路径
[当在终端输入命令的时候,他会先从PATH中找这条命令所对应的程序,找不到就从当前路径下找]
5.8.2 $(取”变量”的值)
$:用于取”变量”的值- 用法:
echo $环境变量名
举例:
如果要在环境变量后面追加上打印的信息,环境变量要用花括号包围起来
5.8.3 export(设置环境变量)
export:可以自行设置环境变量- 用法:
临时生效:
export 变量名=变量值永久生效:
export 变量名=变量值- 针对当前用户生效,配置在当前用户的
~/bashrc文件中 - 针对所有用户生效,配置在系统的
/etc/profile文件中
并通过语法:
source 配置文件(~/bashrc或者/etc/profile),进行立即生效,或者重新启动系统- 针对当前用户生效,配置在当前用户的
5.8.4 自定义环境变量PATH
- 创建一个可以执行的文件[自定义想要添加的文件]
vim /etc/profile[编写这个文件]- 在最后面加上
export PATH=$PATH:自己要添加的搜索路径 source 配置文件(/etc/profile),进行立即生效,或者重新启动系统
5.9 上传/下载
可以通过FinalShell的下方窗体进行文件的传输,
也可以通过rz,sz命令进行文件的传输[插件,yum -y install lrzsz]
5.9.1 rz(上传)
rz:进行上传- 用法:
rz[会弹出可视窗口]
5.9.2 sz(下载)
sz:进行下载- 用法:
sz 要下载的文件
[文件会自动下载到桌面的:fsdownload文件夹中]
5.10 压缩/解压
- Linux和Mac系统常用的2种压缩方式
.tar:称为tarball,归档文件,简单的将文件组装成一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装.gz:也称为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内可以极大的减少压缩后的体积
5.10.1 tar(压缩/解压)
tar:可以针对上述的两种格式进行压缩和解压操作- 用法:
tar [-c -x -v -f -z -C] 参数1 参数2 …… 参数N-c:创建归档文件,用于压缩模式-x:解压模式-v:显示压缩,解压过程,用于查看进度-f:指定要创建的文件名或要解压的文件名,-f必须处于选项位最后一个(后面必须紧跟要创建的文件名或要解压的文件名)-z:gzip模式,不使用-z则是普通的tarball格式(如果要用的话,一般放在选项位第一位)-C:选择解压的目的地,用于解压模式。如果没有使用-C,默认解压到当前目录(建议单独使用,和解压所需的其它参数分开)
tar的常用组合:
tar -cvf 压缩的文件名 要压缩的文件
- eg: tar -cvf test.tar 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar文件内tar -zcvf 压缩的文件名 要压缩的文件
- eg: tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式tar -xvf 解压的文件名tar -xvf 解压的文件名 -C Linux路径tar -zxvf 解压的文件名 -C Linux路径
5.10.2 zip/unzip(压缩/解压)
zip:压缩为zip压缩包- 用法:
zip [-r] 参数1 参数2 …… 参数N-r:被压缩的包含文件夹时,需要使用参数:包含创建的压缩文件名 + 要压缩的文件 unzip:解压zip文件- 用法:
zip [-d] 参数1 参数2 …… 参数N-d:指定要解压去的位置,同tar的-C文件
注意:
以上的解压操作如果指定的解压文件名存在,原来文件中的内容会直接被替换(覆盖),要注意是否文件名已经存在或文件中的内容是否重要
补充命令 - scp
scp:是cp命令的升级版,即:ssh cp,通过SSH协议完成文件的复制。
其主要的功能就是:在不同的Linux服务器之间,通过SSH协议互相传输文件。
只要知晓服务器的账户和密码(或密钥),即可通过SCP互传文件。
语法:- 用法:
scp [-r] 参数1 参数2-r:选项用于复制文件夹使用,如果复制文件夹,必须使用-r参数1:本机路径 或 远程目标路径参数2:远程目标路径 或 本机路径
1 | scp -r /export/server/jdk root@node2:/export/server/ |
- Title: Linux学习笔记
- Author: Lu
- Created at : 2024-03-16 10:01:09
- Updated at : 2025-03-10 13:20:22
- Link: https://lusy.ink/2024/03/16/Linux/
- License: This work is licensed under CC BY-NC-SA 4.0.



