Linux常用命令

写在前面

  • 这里主要记录一下Linux的一些常用命令;
  • 参考:
    • https://gnu-linux.readthedocs.io/zh/latest/TOC/Chapter01.html;

一、关于文件/目录处理的指令

1. mkdir

  • 作用:

    • 创建子目录(子文件夹);
  • 使用:

命令

# 在当前目录下建立一个子目录(子文件夹)
mkdir 子目录名

2. touch

  • 作用:

    • 新建一个或多个空文件;
    • 修改文件的访问和修改时间戳;
  • 使用:

Linux常用命令_第1张图片

# 修改f1的时间戳为当前时间,如果f1不存在,则创建f1
touch f1
# 修改f1的时间戳为指定时间
touch -d "xxxx-xx-xx" f1

3. cp

  • 作用:

    • 复制文件或者文件夹到指定文件夹中;
  • 使用:

Linux常用命令_第2张图片

# 复制一份f1文件并命名为f2
cp f1 f2
# 将f1文件复制一份同名文件到dir1中
cp f1 dir1
# 将dir1中的全部文件复制一份同名文件到dir2中
cp -r dir1 dir2

# 常用参数
-i:如果复制的目的路径下已有同名文件,则询问是否覆盖
-r:是否递归复制子目录

4. mv

  • 作用:

    • 将一个文件或者文件夹移动到另一个文件夹;
    • 或者更改文件或者文件夹名字;
  • 使用:

    • 如果是相同类型的移动:
      • 即将文件移动到文件或者将文件夹移动到文件夹;
      • 则将前者的路径改为后者的路径;
      • 改动包括当前文件或者文件夹的命名;
      • 因此包括移动和重命名的功能;
    • 如果是不同类型的移动:
      • 即将文件移动到文件夹;
      • 则直接移动;
      • 仅包含移动功能;

Linux常用命令_第3张图片

# 将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

  • 作用:

    • 删除一个文件或者一个文件夹;
  • 使用:

Linux常用命令_第4张图片

# 删除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加载上一行;
    • moreless中可以使用的其他一些指令如下:

      • :n:加载查看当前目录的上一个文件的内容;
      • :p:加载查看当前目录的下一个文件的内容;

Linux常用命令_第5张图片

8. chmod

  • 作用:

    • 修改文件或者文件夹的权限;
  • 使用:

    • 文件调用权限有三级:
      • (1) u:文件所有者;
        • 只有文件所有者系统管理员可以修改文件的权限;
      • (2) g:用户组;
      • (3) o:其他用户;
      • 此外还有a,相当于ugo
    • 每一级调用权限都有三种权限控制:
      • (1) r:是否可以读(4);
      • (2) w:是否可以写(2);
      • (3) x:是否可以执行(1);

Linux常用命令_第6张图片

# 为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
  • 参考:
    • https://www.runoob.com/linux/linux-comm-chmod.html;

9. chown

  • 作用:

    • 改变文件的拥有者;
    • 只有root权限可以执行该命令;
  • 使用:

# 将f1文件的所有权转移到指定用户上
chown [用户名 | 用户ID]:[组名 | 组ID] f1

# 常用参数
-v:显示命令执行过程
-R:递归处理子目录中的文件

10. find

  • 作用:

    • 在指定目录及其子目录下查找文件;
  • 使用:

Linux常用命令_第7张图片

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
  • 使用:

Linux常用命令_第8张图片

# 压缩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

  • 作用:

    • 在文件中查找一个指定的正则表达式,并把匹配行输出到标准输出;
    • 本质上是在字符串中进行查找:
      • 字符串可以是文件中的文本内容;
      • 字符串也可以是其他命令输出到控制台中的结果内容;
  • 使用:

    • 匹配的字符串可以加双引号也可以不加;

Linux常用命令_第9张图片

# 查看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

  • 作用:

    • 以行为单位排序文本内容;
  • 使用:

Linux常用命令_第10张图片

# 对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

  • 作用:

    • 查看系统中正在运行的进程信息;
  • 使用:

Linux常用命令_第11张图片

# 查看当前控制台下属于当前用户所有的进程
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:切换到查看线程信息;
    • 其他的一些指令如下:
      Linux常用命令_第12张图片
# 打开top窗口
top

4. jobs

  • 作用:

    • 显示当前shell终端中所有正在运行或者挂起的作业;
      • 作业指用户在终端中运行的进程(包括指令和可执行文件等);
  • 使用:

    • 在终端中,可以将一个指令或者程序放到后台运行;
      • 在指令或者程序的末尾加&即可;
    • 可以用bg %[作业号]让后台作业继续执行;
    • 可以用fg %[作业号]将后台作业调到前台终端执行;
    • 然后可以用jobs命令查看;
      • 当然pstop也可以查看;
# 查看当前终端的所有后台作业
jobs
# 将一个后台暂停的作业继续执行
bg %[jobnumber]
# 将一个后台作业调到前台(也就是当前终端中)执行
fg %[jobnumber]

# 常用参数
-l:显示作业编号、进程ID和命令行等详细信息
-n:仅显示上次调用jobs指令后状态发生改变的作业
-r:仅显示正在运行(Running)的作业
-s:仅显示被阻塞(Stopped)的作业

5. strace

  • 作用:

    • 用于跟踪进程的系统调用信号传递的命令;
    • 可以记录进程对系统资源(如文件、网络、进程等)的访问情况,以及与其他进程进行通信的情况;
  • 使用:

    • 参考:https://juejin.cn/post/6908630749641965575;
# 跟踪某个已有的进程
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

  • 作用:

    • 显示内存使用状态;
    • 包括实体内存、虚拟交换文件内存、共享内存以及内核使用的缓冲区等;
  • 使用:

Linux常用命令_第13张图片

# 显示当前的内存状态
free
# 额外显示内存之和,以易读的单位显示
free -t -h
# 每10s查询一次内存状态
free -s 10

七、关于网络处理的指令

1. ifconfig

  • 作用:

    • 查看和配置网络接口,如IP地址、子网掩码、MAC地址等;
    • 注意:
      • Windows上是ipconfig
  • 使用:

# 查看当前网络接口信息
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

  • 作用:

    • 用于显示计算机网络连接状态,可以显示各种网络统计信息,例如网络接口、协议和网络连接等;
  • 使用:

Linux常用命令_第14张图片

# 列出所有网络连接
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) 测试远程主机的端口是否可以访问
  • 使用:

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目录结构

  • 参考:
    • Linux 目录结构;

Linux常用命令_第15张图片

1. /proc

  • 作用:

    • 用于查看当前内核运行和硬件的状态信息;
    • 是一个虚拟目录,不存在于磁盘中,只存在于内存中;
  • 参考:

    • Linux /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_DMA0-16M的物理地址,用于只能寻址24位地址线的硬件设备的I/O传输(DMA映射);
        • ZONE_DMA3216M-4G的物理地址,用于普通硬件设备的I/O传输(DMA映射);
        • ZONE_NORMAL:高于4G的物理地址,通用内存,用于执行一般任务,可以使用整个物理地址空间,可用的内存数量相对较大;
    • 包括每个内存区域的大小、空闲内存、slab缓存的使用情况等;
    • 可以作为文件访问;
  • 参考:

    • Linux内存管理机制简析;
    • https://yalungdotblog.files.wordpress.com/2012/02/e58685e5ad98e7aea1e79086e79fa5e8af86e680bbe7bb93.pdf;
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 [命令名称]

你可能感兴趣的:(Linux,linux,服务器)