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的默认配置信息,包括日志路径、运行超时时间等 |
-
用户授权:
username ALL=(ALL) [NOPASSWD:] command
username
:指定要授权的用户名。ALL
:表示可以在任何主机上执行命令。(ALL)
:表示可以以任何用户的身份执行命令。NOPASSWD
:表示无需输入密码。
例如,允许用户
john
在任何主机上以任何用户的身份执行/bin/ls
命令,并且无需输入密码:john ALL=(ALL) NOPASSWD: /bin/ls
-
用户组授权:
%groupname ALL=(ALL) [NOPASSWD:] command
%groupname
:指定要授权的用户组。- 其他参数的含义同上。
例如,允许用户组
admins
在任何主机上以任何用户的身份执行/bin/ls
命令,并且无需输入密码:%admins ALL=(ALL) NOPASSWD: /bin/ls
-
指定可执行文件路径:
username ALL=(ALL) [NOPASSWD:] /path/to/command
这将限制用户只能执行指定路径下的命令。
-
禁止某些命令:
username ALL=(ALL) !/path/to/command
这将阻止用户执行指定的命令。
-
授权指定用户以其他用户的身份执行命令:
username ALL=(otheruser) [NOPASSWD:] /path/to/command
允许用户以
otheruser
用户的身份执行命令。 -
别名的使用:
你也可以定义别名来使配置文件更加清晰,例如:
User_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 用户组 用户名
将指定用户加入指定用户组
注意:
原有的所属组也会保留,如要将用户从所属组删除,可以通过下面的命令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
命令,其语法为: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
:远程目标路径 或 本机路径
scp -r /export/server/jdk root@node2:/export/server/
将本机上的jdk文件夹, 以root的身份复制到node2的/export/server/内
同SSH登陆一样,账户名可以省略(使用本机当前的同名账户登陆)
scp -r node2:/export/server/jdk /export/server/
将远程node2的jdk文件夹,复制到本机的/export/server/内
# scp命令的高级用法
cd /export/server
scp -r jdk node2:`pwd`/ # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下
scp -r jdk node2:$PWD # 将本机当前路径的jdk文件夹,复制到node2服务器的同名路径下