写在前面
- 这里主要记录一下Linux的一些常用命令;
- 参考:
一、关于文件/目录处理的指令
1. mkdir
-
作用:
- 创建子目录(子文件夹);
-
使用:
# 在当前目录下建立一个子目录(子文件夹)
mkdir 子目录名
2. touch
-
作用:
- 新建一个或多个空文件;
- 修改文件的访问和修改时间戳;
-
使用:
# 修改f1的时间戳为当前时间,如果f1不存在,则创建f1
touch f1
# 修改f1的时间戳为指定时间
touch -d "xxxx-xx-xx" f1
3. cp
-
作用:
- 复制文件或者文件夹到指定文件夹中;
-
使用:
# 复制一份f1文件并命名为f2
cp f1 f2
# 将f1文件复制一份同名文件到dir1中
cp f1 dir1
# 将dir1中的全部文件复制一份同名文件到dir2中
cp -r dir1 dir2
# 常用参数
-i:如果复制的目的路径下已有同名文件,则询问是否覆盖
-r:是否递归复制子目录
4. mv
-
作用:
- 将一个文件或者文件夹移动到另一个文件夹;
- 或者更改文件或者文件夹名字;
-
使用:
- 如果是相同类型的移动:
- 即将文件移动到文件或者将文件夹移动到文件夹;
- 则将前者的路径改为后者的路径;
- 改动包括当前文件或者文件夹的命名;
- 因此包括移动和重命名的功能;
- 如果是不同类型的移动:
- 即将文件移动到文件夹;
- 则直接移动;
- 仅包含移动功能;
- 如果是相同类型的移动:
# 将f1文件重命名为f2文件
mv f1 f2
# 将dir1文件夹重命名为dir2文件夹
mv dir1 dir2
# 将dir1文件夹移动到dir2中并重命名为dir3
mv dir1 dir2/dir3
# 将f1文件移动到dir1文件夹中
mv f1 dir1
# 常用参数
-i:如果移动的目的路径下已有同名文件,则询问是否覆盖
-f:强制执行移动操作,不管是否有同名文件
5. rm
-
作用:
- 删除一个文件或者一个文件夹;
-
使用:
# 删除f1文件
rm f1
# 删除dir1文件夹
rm -r dir1
# 删除空文件夹dir1,如果文件夹dir1不为空则报错
rm -d dir1
# 等价于
rmdir dir1
# 常用参数
-i:删除前询问
-f:强制执行删除操作
-r:递归删除文件夹及其子文件夹,如果要删除的是文件夹的话则必须加上
-d:如果是空文件夹则删除
6. pwd
-
作用:
- 显示当前目录的路径;
-
使用:
pwd
# 输出:
/home/jeremy_wsl/linux_command_test
7. cat / more / less
-
作用:
- 用于查看文件内容;
-
使用:
-
(1)
cat
:直接将文件的全部内容打印到控制台中; -
(2)
more
:逐页将文件的内容打印到控制台中;- 页面大小取决于当前控制台的窗口大小;
- 常用的指令如下:
- 按
space
加载下一页; - 按
b
加载上一页;
- 按
-
(3)
less
:新开一个窗口打印文件内容;- 页面大小取决于当前控制台的窗口大小;
- 比
more
的功能更加强大,推荐使用:- 文件内容不是加载到控制台中,所以不会占用控制台的显示空间,将之前的信息挤上去;
- 可以搜索单字符的位置;
- 可以一行一行地加载文件内容,操作的粒度更小;
- 已经很接近vim的阅读模式了;
- 常用的指令如下:
- 按
space
加载下一页; - 按
b
加载上一页; - 按
?
反向搜索匹配的字符串; - 按
/
正向搜索匹配的字符串;- 按
n
可以跳转到下一个匹配的字符串; - 按
N
可以跳转到上一个匹配的字符串;
- 按
- 按
y
加载上一行;
- 按
-
more
和less
中可以使用的其他一些指令如下::n
:加载查看当前目录的上一个文件的内容;:p
:加载查看当前目录的下一个文件的内容;
-
8. chmod
-
作用:
- 修改文件或者文件夹的权限;
-
使用:
- 文件调用权限有三级:
- (1)
u
:文件所有者;- 只有文件所有者和系统管理员可以修改文件的权限;
- (2)
g
:用户组; - (3)
o
:其他用户; - 此外还有
a
,相当于ugo
;
- (1)
- 每一级调用权限都有三种权限控制:
- (1)
r
:是否可以读(4
); - (2)
w
:是否可以写(2
); - (3)
x
:是否可以执行(1
);
- (1)
- 文件调用权限有三级:
# 为u/g/o增加文件f1的可读权限r
chmod ugo+r f1
# 递归为所有用户增加当前目录下的文件的可读权限r
chmod -R a+r *
# 为u/g/o设置文件f1的可读、可写和可执行权限
chmod 777 f1 # 等价于 chmod a=rwx f1
9. chown
-
作用:
- 改变文件的拥有者;
- 只有
root
权限可以执行该命令;
-
使用:
# 将f1文件的所有权转移到指定用户上
chown [用户名 | 用户ID]:[组名 | 组ID] f1
# 常用参数
-v:显示命令执行过程
-R:递归处理子目录中的文件
10. find
-
作用:
- 在指定目录及其子目录下查找文件;
-
使用:
find [路径] [可选参数]
# 在当前目录查找f1文件
find ./ -name f1
# 在当前目录查找以.txt为后缀的文件
find ./ -name "*.txt"
# 在/home目录查找大于1MB
find /home -size +1M
# 在/var/log目录下查找7天内修改过的文件
find /var/log -mtime -7
# 在/var/log目录下查找3天前创建的文件
find /var/log -ctime +3
# 关于参数n的说明
+n:查找大于n的文件或目录
-n:查找小于n的文件或目录
n:查找等于n的文件或目录
11. file
- 作用:
- 查看文件或者目录类型;
file [文件名 | 文件目录名]
12. gzip
-
作用:
- 对文件进行压缩,以减少文件对磁盘空间的占用;
- 但不能将多个文件压缩到一个文件,这是归档的功能;
- 只能一个文件对应一个压缩文件输出;
- 是Linux上最流行的压缩工具;
- 但更标准的还是用
tar
命令作为归档命令; - 因为
gzip
只能压缩单个文件;
- 但更标准的还是用
- 压缩后缀名为
.gz
;
- 对文件进行压缩,以减少文件对磁盘空间的占用;
-
使用:
# 压缩f1文件
gzip f1
# 递归压缩dir1目录下的所有文件,每个文件对应一个压缩文件.gz
gzip -r dir1
# 查看压缩文件f1.gz的压缩率等信息
gzip -l fl.gz
# 解压缩当前目录下的所有.gz文件,同时输出解压缩过程信息
gzip -dv *
# 常用参数
-r:递归进行文件压缩
-l:查看压缩文件的压缩信息
-d:解压缩压缩文件
-v:输出指令执行过程
13. tar
-
作用:
- 压缩并归档文件;
- 相比
gzip
命令,这里可以一次性压缩和归档多个文件,功能更加强大; - 是Linux常用的压缩和归档工具;
- 相比
- 压缩并归档文件;
-
使用:
# 将当前目录的f1、f2等文件打包生成一个xxx.tar文件
tar -cvf xxx.tar f1 f2 ...
# 将xxx.tar文件解包到当前目录
tar -xvf xxx.tar
# 查看xxx.tar文件中的所有文件列表
tar -tvf xxx.tar
# 将当前目录的f1、f2等文件打包并压缩生成一个xxx.tar.gz文件
tar -czvf xxx.tar.gz f1 f2 ...
# 解压缩文件xxx.tar.gz
tar -xzvf xxx.tar.gz
# 将压缩文件xxx.tar.gz解压到指定文件夹/path/to/dest
tar -xzvf xxx.tar.gz -C /path/to/dest
# 常用参数
-c:建立新的归档文件
-v:显示指令执行过程
-f:指定归档文件名字
-x:从归档文件中还原文件
-t:列出归档文件的内容
-z:通过gzip命令压缩归档文件
-C:切换到指定的目录
二、关于字符串处理的指令
1. echo
-
作用:
- 在控制台中输出字符串;
-
使用:
-e
:翻译转义字符,如\t
、\n
等;- 字符串加不加双引号是一样的;
# 按照转义字符打印字符串
echo -e "hello world!\n"
# 打印变量
export name='jeremy' # 设置name变量,注意等号左右没有空格
echo "$name is now here"
2. grep
-
作用:
- 在文件中查找一个指定的正则表达式,并把匹配行输出到标准输出;
- 本质上是在字符串中进行查找:
- 字符串可以是文件中的文本内容;
- 字符串也可以是其他命令输出到控制台中的结果内容;
-
使用:
- 匹配的字符串可以加双引号也可以不加;
# 查看grep所有选项说明
grep --help
# 查找f1文件内容中匹配字符串的行
grep [匹配字符串] f1
# 递归查找dir1的所有文件内容中的匹配字符串的行,同时输出行号
grep -r -n [匹配字符串] dir1
# 查找其他命令输出结果中的匹配字符串,仅输出匹配的行数
[其他命令] | grep -c [匹配字符串]
# 按照文件中的多个匹配字符串查找f1文件中的匹配行
grep -f [匹配字符串所在文件名] f1
# 在当前目录下名字包含test字符串的文件中查找匹配的字符串,不区分大小写
# 不会递归查找,仅查找当前目录
grep -i [匹配字符串] *test*
# 在当前目录下的所有名字含dir字符串的文件夹中的所有文件查找匹配字符串
grep -r [匹配字符串] ./*dir*
# 在当前目录下所有名字包含test字符串的文件中查找匹配的字符串,递归查找
find ./ -name "*test*" | xargs grep -n [匹配字符串]
# 常用参数
-n:显示匹配行所在文件的行号
-c:仅显示查找到的匹配行的数量
-r:递归查找文件夹的子文件,如果查找的是文件夹则必须加上
-v:反向查找,显示所有不含匹配字符串的行
-i:查找匹配字符串时不区分大小写
3. sort
-
作用:
- 以行为单位排序文本内容;
-
使用:
# 对f1文件中的行进行排序,默认以第一列按ASCII码升序,排序结果输出到控制台
sort f1
# 按照第二列和第三列进行排序
sort -k 2,3 f1
# 常用参数
-k:指定排序的列,可以多个,列与列之间用空格分开
-r:按照倒序排序
-n:根据每行开头的数字值大小进行排序,除数字开头外的部分用ASCII码排序,非数字开头的行排在前面(注意数字值大小顺序并非字典顺序)
-b:忽略每行前面的空格字符
-u:去掉排序结果中的重复行
三、关于切换用户身份的指令
1. su
-
作用:
- 切换当前系统的用户身份;
-
使用:
- 切换时需要输入要切换到的用户的密码;
- 切换到目标用户的环境变量;
# 切换到root用户
su root
2. sudo
-
作用:
- 以系统管理者的身份执行指令;
- 是比
su
粒度更小且更安全的使用系统管理员身份的方式;
-
使用:
- 需要输入当前用户的密码;
- 仍使用当前用户的环境变量;
- 可以记录用户的
sudo
操作日志;
# 以系统管理者的身份执行指令
sudo 指令
四、关于进程处理的指令
1. ps
-
作用:
- 查看系统中正在运行的进程信息;
-
使用:
# 查看当前控制台下属于当前用户所有的进程
ps
# 查看系统上运行的所有进程
# -e:列出所有进程
# -f:以完整格式显示进程信息
# f:以树形结构显示进程之间的父子关系
ps -ef f
# 查看指定用户的进程
# -u:按照用户筛选进程
ps -u username
# 显示所有在内存中的进程详细信息,包括占用CPU百分比和内存百分比
# a:显示所有用户的进程
# u:按照用户导向的格式显示信息
# x:显示没有控制终端的进程
ps aux
# 查看指定pid进程的详细信息
ps -p [进程id]
# 查看指定进程名的详细信息
ps -ef | grep [进程名]
# 查看指定pid进程的线程信息
ps -T [进程id]
# 显示ps各个参数的详细命令
ps --help all
2. kill
-
作用:
- 向进程发送信号;
-
使用:
- 常用的信号包括:
1 (HUP)
:重新加载进程;9 (KILL)
:强制杀死一个进程;15 (TERM)
:通知进程终止(默认);
- 常用的信号包括:
# 发送KILL信号给gpid的进程组(也就是pid进程及其所产生的所有进程)
kill -9 [进程id]
# 发送TERM信号给gpid的进程组(也就是pid进程及其所产生的所有进程)
kill [进程id]
# 查看所有可以发送的信号
kill -l
3. top
-
作用:
- 实时监控进程的资源占用情况;
- 相当于任务管理器;
-
使用(注意大小写):
- q:退出top命令;
- h:查看top命令帮助;
- P:根据CPU占用率进行排序;
- M:根据内存占用率进行排序;
- T:根据进程占用CPU时间进行排序;
- F:可以添加或删除任务显示的列,
- 通过箭头上下键选择列名称;
- 通过箭头右键修改该列的显示优先顺序,然后用箭头左键或者
enter
键来确定修改; - 通过
space
键来修改是否显示该列(带*
即显示);
- H:切换到查看线程信息;
- 其他的一些指令如下:
# 打开top窗口
top
4. jobs
-
作用:
- 显示当前shell终端中所有正在运行或者挂起的作业;
- 作业指用户在终端中运行的进程(包括指令和可执行文件等);
- 显示当前shell终端中所有正在运行或者挂起的作业;
-
使用:
- 在终端中,可以将一个指令或者程序放到后台运行;
- 在指令或者程序的末尾加
&
即可;
- 在指令或者程序的末尾加
- 可以用
bg %[作业号]
让后台作业继续执行; - 可以用
fg %[作业号]
将后台作业调到前台终端执行; - 然后可以用
jobs
命令查看;- 当然
ps
和top
也可以查看;
- 当然
- 在终端中,可以将一个指令或者程序放到后台运行;
# 查看当前终端的所有后台作业
jobs
# 将一个后台暂停的作业继续执行
bg %[jobnumber]
# 将一个后台作业调到前台(也就是当前终端中)执行
fg %[jobnumber]
# 常用参数
-l:显示作业编号、进程ID和命令行等详细信息
-n:仅显示上次调用jobs指令后状态发生改变的作业
-r:仅显示正在运行(Running)的作业
-s:仅显示被阻塞(Stopped)的作业
5. strace
-
作用:
- 用于跟踪进程的系统调用和信号传递的命令;
- 可以记录进程对系统资源(如文件、网络、进程等)的访问情况,以及与其他进程进行通信的情况;
-
使用:
# 跟踪某个已有的进程
strace -p [进程id]
# 使用可执行文件创建进程并跟踪
strace [可执行文件路径]
# 将跟踪结果打印到磁盘文件中
strace -o [打印文件路径] [可执行文件路径]
# 仅跟踪信号传递信息
strace -e trace=signal [可执行文件路径]
# 一个例子
# strace.out是跟踪信息打印文件
# a.out是可执行文件
# 仅跟踪信号信息
strace -e trace=signal -o strace.out ./a.out
五、关于磁盘处理的指令
1. mount
-
作用:
- 将可移动存储媒体挂载到系统中,如光盘和U盘;
-
使用:
- 设备类型:
- 设备类型:
mount -t [设备类型] [设备名] [设备挂载点]
# 将U盘/dev/sdb1挂载到/media/disk目录
mount -t vfat /dev/sdb1 /media/disk
2. umount
-
作用:
- 将可移动设备卸载;
- 如果仍有程序访问,则不允许卸载;
-
使用:
umount [设备名 | 设备挂载点]
3. df
-
作用:
- 查看每个挂载设备中的磁盘空间使用情况;
-
使用:
# 查看磁盘使用情况,单位是块(1024Bytes = 1KB)
df
# 查看磁盘使用情况,单位是MB、GB等
df -h
4. du
-
作用:
- 显示每个目录或者文件所占用的磁盘空间;
- 按照目录或者文件的形式来显示,而不是按照磁盘设备来显示,可以看到每个文件或者目录的大小;
-
使用:
# 显示当前目录的文件夹所占空间,单位是MB、GB等
du -h # 等价于 du -h ./
# 显示当前目录所有文件的所占总空间
du -s ./
# 显示当前目录所有文件和文件夹所占的空间
du -a ./
# 常用参数
-h:用常见的单位显示各个文件或目录的大小
-s:显示某个目录下所有文件的总大小
-a:显示所有文件和文件夹的大小,而不是默认的只显示文件夹的大小
六、关于内存处理的指令
1. free
-
作用:
- 显示内存使用状态;
- 包括实体内存、虚拟交换文件内存、共享内存以及内核使用的缓冲区等;
-
使用:
# 显示当前的内存状态
free
# 额外显示内存之和,以易读的单位显示
free -t -h
# 每10s查询一次内存状态
free -s 10
七、关于网络处理的指令
1. ifconfig
-
作用:
- 查看和配置网络接口,如IP地址、子网掩码、MAC地址等;
- 注意:
- Windows上是
ipconfig
;
- Windows上是
-
使用:
# 查看当前网络接口信息
ifconfig
# 设置IP地址和子网掩码
sudo ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
2. ping
-
作用:
- 测试网络连通性,能够测试本机与其他主机之间的网络是否可达、延迟、丢包等情况;
- 底层使用ICMP协议;
-
使用:
# 测试通信是否正常,四次回复后结束
ping -c 4 www.google.com
3. traceroute
-
作用:
- 追踪数据包由本地主机到目标主机的路由路径,可用于网络故障排除;
- 底层使用ICMP协议;
-
使用:
traceroute www.google.com
4. netstat
-
作用:
- 用于显示计算机网络连接状态,可以显示各种网络统计信息,例如网络接口、协议和网络连接等;
-
使用:
# 列出所有网络连接
netstat -a
# 查看所有端口是否被占用
netstat -tupn
netstat -apn
# 常用参数
-a:显示所有连接中的socket
-t:显示TCP的连接状态;
-u:显示UDP的连接状态;
-p:显示正在占用socket的进程pid;
-n:直接使用ip地址,而不通过域名服务器;
5. route
-
作用:
- 查看和修改IP路由表,可用于添加、删除、修改和查看路由信息,设置默认网关等;
-
使用:
# 查看路由表
route -n
6. wget
-
作用:
- 从Internet上下载文件,如从HTTP/FTP服务器下载文件;
-
使用:
wget http://xxx.tar.gz
7. ssh
-
作用:
- 使用安全加密协议SSH建立远程终端登录,远程管理系统;
-
使用:
# 重新安装ssh
sudo apt install openssh-server -y
# 启动ssh服务
sudo service ssh start
# 查看ssh服务状态
sudo service ssh status
# 设置ssh开机自启动
sudo systemctl enable ssh
# 修改ssh配置
sudo vim /etc/ssh/sshd_config
# 打开防火墙的2000端口
sudo ufw allow 2000
# 重启ssh服务
sudo service ssh restart
# 重启防火墙
sudo ufw reload
# 客户端连接
ssh 用户名@xx.xx.xx.xx
8. ufw
-
作用:
- 简单防火墙工具,用于管理iptables规则;
-
使用:
# 启用ufw防火墙
sudo ufw enable
# 禁用ufw防火墙
sudo ufw disable
# 显示ufw状态,包括已启用或已禁用、所有允许和拒绝的规则
sudo ufw status numbered
# 允许SSH连接
sudo ufw allow ssh
# 允许Web服务器访问TCP端口80和443
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 要拒绝所有对TCP端口22的SSH连接
sudo ufw deny ssh
# 拒绝Web服务器访问TCP端口80和443
sudo ufw deny 80/tcp
sudo ufw deny 443/tcp
# 删除规则
sudo ufw delete allow 80
sudo ufw delete 2
9. telnet
-
作用:
- (1) 远程登录远程主机;
- 但因为没有加密,所以不太安全;
- 建议使用ssh进行远程登录;
- (2) 测试远程主机的端口是否可以访问;
- (1) 远程登录远程主机;
-
使用:
telnet [远程主机ip] [远程主机端口]
八、关于安装软件的命令
1. 从源码安装
- (1) 用
wget
下载:
wget http://xxx.tar.gz
- (2) 用
tar
解压:
tar -zxvf ./xxx.tar.gz -C /usr/local
- (3) 配置检查,确保有正确的编译器和库依赖:
./configure
- (4) 用
make
编译源码:
make
- (4) 用
make install
将软件安装在用户空间:
make install
2. apt安装 [Ubuntu-Debian]
- (1) 安装软件:
apt install xxx
- (2) 升级软件:
apt update xxx
- (3) 仅删除软件包,保留配置文件:
apt remove xxx
- (4) 删除软件包及配置文件:
apt purge xxx
- (5) 打印信息:
# 打印所有已安装包
apt list --installed
# 打印所有已安装包版本信息
apt list --all-versions
3. yum安装 [CentOS-RedHat]
- (1) 安装软件:
yum install xxx
- (2) 升级软件:
yum update xxx
- (3) 仅删除软件包,保留配置文件:
yum remove xxx
- (4) 删除软件包及配置文件:
yum erase xxx
- (5) 打印信息:
# 打印所有可安装软件
yum list
- (6) 清理所有缓存并重新生成:
yum clean all
yum makecache
八、Linux目录结构
- 参考:
1. /proc
-
作用:
- 用于查看当前内核运行和硬件的状态信息;
- 是一个虚拟目录,不存在于磁盘中,只存在于内存中;
-
参考:
1.1 进程相关文件
1.1.1 /proc/[pid]/cmdline
- 作用:
- 记录启动当前进程的完整命令;
- 可以作为文件访问;
cat /proc/[pid]/cmdline
1.1.2 /proc/[pid]/cwd
- 作用:
- 记录当前进程运行目录的指向;
- 可以作为目录访问;
ls /proc/[pid]/cmdline
1.1.3 /proc/[pid]/exe
- 作用:
- 记录启动当前进程的可执行文件的指向;
- 可以作为文件访问和执行;
1.1.4 /proc/[pid]/fd
- 作用:
- 一个记录当前进程所有打开的文件描述符的目录;
- 可以作为目录访问;
ll /proc/[pid]/fd
1.1.5 /proc/[pid]/maps
- 作用:
- 记录当前进程关联到的所有可执行文件和库文件,在内存中的映射区域,及其访问权限列表;
- 可以作为文件访问;
cat /proc/[pid]/maps
1.1.6 /proc/[pid]/status
- 作用:
- 记录当前进程的状态信息;
- 可以作为文件访问;
cat /proc/[pid]/status
1.1.7 /proc/[pid]/task
- 作用:
- 记录当前进程的所有线程信息;
- 可以作为目录访问;
ll /proc/[pid]/task
1.2 硬件相关文件
1.2.1 /proc/cpuinfo
- 作用:
- 记录CPU相关信息;
- 可以作为文件访问;
cat /proc/cpuinfo
1.2.2 /proc/devices
- 作用:
- 记录系统内核中所有已知设备的主设备号和次设备号;
- 可以作为文件访问;
cat /proc/devices
1.2.3 /proc/meminfo
- 作用:
- 记录当前内存使用状态信息;
- 可以作为文件访问;
cat /proc/meminfo
1.2.4 /proc/swaps
- 作用:
- 记录当前系统上的交换分区及其空间使用信息;
- 优先级数字越低,被使用到的可能性越大;
- 可以作为文件访问;
cat /proc/swaps
1.2.5 /proc/uptime
- 作用:
- 记录当前系统自启动以来的运行时间;
- 第一个数字是系统运行时间;
- 第二个数字是每个CPU核心空闲的累积时间;
- 单位是秒;
- 可以作为文件访问;
- 记录当前系统自启动以来的运行时间;
cat /proc/uptime
1.2.6 /proc/version
- 作用:
- 记录当前系统运行的内核版本号;
- 可以作为文件访问;
cat /proc/version
1.2.7 /proc/vmstat
- 作用:
- 记录当前系统虚拟内存的多种统计数据;
- 可以作为文件访问;
cat /proc/vmstat
1.2.8 /proc/zoneinfo
-
作用:
- 记录当前系统的每个内存区域(zone)的详细信息;
- 通常有三种zone:
ZONE_DMA
:0-16M
的物理地址,用于只能寻址24位地址线的硬件设备的I/O传输(DMA映射);ZONE_DMA32
:16M-4G
的物理地址,用于普通硬件设备的I/O传输(DMA映射);ZONE_NORMAL
:高于4G
的物理地址,通用内存,用于执行一般任务,可以使用整个物理地址空间,可用的内存数量相对较大;
- 通常有三种zone:
- 包括每个内存区域的大小、空闲内存、slab缓存的使用情况等;
- 可以作为文件访问;
- 记录当前系统的每个内存区域(zone)的详细信息;
-
参考:
cat /proc/zoneinfo
# 一些参数说明如下:
nr_inactive_anon: 未被访问过的匿名(非共享)页面数量,处于不活动状态。
nr_active_anon: 被访问过的匿名页面数量,处于活跃状态。
nr_inactive_file: 未被访问过的文件(共享)页面数量,处于不活跃状态。
nr_active_file: 被访问过的文件页面数量,处于活跃状态。
nr_unevictable: 不可换出页面数量,通常是因为它们被锁定了。
nr_slab_reclaimable: 可回收的 slab 页面数量,即可通过内存回收机制释放的页面数量。
nr_slab_unreclaimable: 不可回收的 slab 页面数量,即无法通过内存回收机制释放的页面数量。
nr_isolated_anon: 处于隔离状态的匿名页面数量。
nr_isolated_file: 处于隔离状态的文件页面数量。
workingset_nodes: 已经被扫描的 workingset 节点数量。
workingset_refault_anon: 在 workingset 内存中重新访问过的匿名页面数量。
workingset_refault_file: 在 workingset 内存中重新访问过的文件页面数量。
workingset_activate_anon: 被添加到 workingset 内存中的匿名页面数量。
workingset_activate_file: 被添加到 workingset 内存中的文件页面数量。
workingset_restore_anon: 从 swap 空间恢复的匿名页面数量。
workingset_restore_file: 从 swap 空间恢复的文件页面数量。
workingset_nodereclaim: 已经被扫描的 workingset 节点的数量。
nr_anon_pages: 匿名页面数量。
nr_mapped: 映射的页面数量。
nr_file_pages: 文件页面数量。
nr_dirty: 脏页面数量,即需要写回到磁盘的页面数量。
nr_writeback: 正在写回到磁盘的脏页面数量。
nr_writeback_temp: 临时写回到磁盘的页面数量。
nr_shmem: 共享内存页面数量。
nr_shmem_hugepages: 已分配的共享内存巨页数量。
nr_shmem_pmdmapped: 已映射的共享内存页面数量。
nr_file_hugepages: 已分配的文件巨页数量。
nr_file_pmdmapped: 已映射的文件页面数量。
nr_anon_transparent_hugepages: 已分配的匿名透明巨页数量。
nr_vmscan_write: 因内存压力而写回到磁盘的页面数量。
nr_vmscan_immediate_reclaim: 立即回收的页面数量。
nr_dirtied: 自上次内存回收以来脏页面数量增加的数量。
nr_written: 自上次内存回收以来写入磁盘的页面数量。
nr_kernel_misc_reclaimable: 可回收的内核杂项页面数量。
nr_foll_pin_acquired: 追随锁定的页面数量。
nr_foll_pin_released: 追随锁定已释放的页面数量。
nr_kernel_stack: 内核栈使用的页面数量。
nr_page_table_pages: 页表页面数量。
nr_swapcached: 已缓存到 swap 空间的页面数量。
pages free: DMA 区中当前空闲页面数量。
min: DMA 区中可用于内存回收的最小页面数。
low: DMA 区中内存压力水平的下限,低于此值时系统开始考虑执行内存回收操作。
high: DMA 区中内存压力水平的上限。
spanned: DMA 区总大小。
present: DMA 区中当前存在的页面数量。
managed: DMA 区管理的页面数量。
cma: 预留给连续内存分配器 (CMA) 的页面数量。
protection: DMA 区的访问权限。
2. /bin
- 作用:
- 存放系统命令,普通用户和root都可以执行;
3. /dev
- 作用:
- 存放外部设备文件;
4. /etc
- 作用:
- 存放所有默认安装软件或者服务的配置文件;
- 也包括系统配置文件,所以要谨慎修改;
4.1 /ect/passwd
- 作用:
- 记录系统的所有用户信息;
- 包括:
- 用户登录名;
- 用户密码(用
x
代替); - 用户ID;
- 用户所属的组ID;
- 用户的主目录;
- 用户登录时使用的shell;
- 可以作为文件访问;
cat /ect/passwd
5. /home
- 作用:
- 普通用户的主目录;
- 每个用户会在主目录下创建自己的用户目录作为主目录;
6. /root
- 作用:
- root用户的主目录;
7. /lib
- 作用:
- 系统调用的动态链接共享库保存位置;
- /bin和/sbin中的二进制可执行文件依赖这些库;
8. /usr
- 作用:
- 存放所有安装的软件和用户文件;
- 建议是在/usr中创建各自的文件夹安装不同的软件,不要在其他文件夹中安装;
9. /media
- 作用:
- 挂载自动识别的可移动存储设备;
- 例如U盘、CD-ROM等;
- 由系统自动管理,设备插拔会自动挂载和卸载;
- 挂载自动识别的可移动存储设备;
10. /mnt
- 作用:
- 用于手动挂载其他文件系统;
- 例如其他Linux分区、Samba网络共享等;
- 由用户手动管理;
- 用于手动挂载其他文件系统;
11. /var
- 作用:
- 存放在系统正常运行期间会不断更改的文件,例如日志(logs),假脱机文件(spool files)和临时电子邮件文件;
其他命令
1. man
-
作用:
- 在Linux已安装的手册页文档中查看相关命令的帮助文档信息;
-
使用:
- 用
?
或者/
可以在文档中快速查找字符串,并高亮显示;- 按
n
切换下一个符合的字符串; - 按
N
切换上一个符合的字符串;
- 按
- 用
man [命令名称]