一、目录及文件操作命令
1、cd命令
- 英文原意:change directory。
- 执行权限:所有用户。
- 功能描述:切换所在目录。
a.快速理解命令提示符含义。
[root@aliyun-one ~]#
• []:这是提示符的分隔符号,没有特殊含义。
• root:显示的是当前的登录用户,这里使用 root用户登录。
•@:分隔符号,没有特殊含义。
• aliyun-one:当前系统的简写主机名。
•~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
•#:命令提示符,Linux用这个符号标识登录用户的权限等级。如果是超级用户,提示符就是#;如果是普通用户,提示符就是$。
b.家目录
登录系统后,首先看到的就是家目录:
•~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
不管在那个目录下,进入到家目录的命令有以下几种:
“cd~”命令可以快速回到用户的家目录,cd命令直接按 Enter键也会快速切换到家目录。
c.根目录
[root@aliyun-one /]#
/:代表用户当前所在的目录,此例中用户当前所在的目录是根目录。
不管在那个目录下,进入到根目录的命令有以下几种:
“cd /”命令可以快速回到根目录。
d.进入到指定目录
进入/usr/src
图片中已经从家目录进入到当前目录src中。
e. cd - 命令:允许你快速切换到你之前所在的工作目录
图片中有两个列子。第一个是从家目录到src目录,通过cd -命令就可以快速切换目录。同理,从home目录到src目录,通过cd -命令就可以快速切换目录。
f. cd . 和 cd …和cd …/…
cd . 进入当前目录。cd …进入上一级目录。cd …/… 返回上两级目录
2、pwd命令—打印当前所在目录。
3、ls-查看文件与目录。
ls 常用选项
- -l:列出的文件以长格式输出,一个文件显示一行(可简写为ll)。命令: ls -l 或者ll。
“-l”选项用于显示文件的详细信息,那么“-l”选项显示的这 7列分别是什么?
[root@aliyun-one src]# ls -l
total 8
drwxr-xr-x. 2 root root 4096 Apr 11 2018 debug
drwxr-xr-x. 3 root root 4096 Jun 28 2024 kernels
权限 引用计数 所有者 所属组 大小 文件修改时间 文件名
• 第一列:权限。具体权限的含义将在 4.5节中讲解。
• 第二列:引用计数。如果文件是普通文件:硬链接的个数(访问该文件的路径数),如果文件是目录:目录下的一级子目录的个数。
• 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
• 第四列:所属组。默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
• 第五列:大小。默认单位是字节。
• 第六列:文件最近一次修改时间。文件状态修改时间或文件数据修改时间都会更改这个时间,注意,这个时间不是文件的创建时间。
• 第七列:文件名。
第一字段第一位:
-rw-r--r--. 1 root root 46478 8月13 2018 install.log
第一位代表文件类型:
•“-”:代表普通文件
•“d”:代表目录
•“l”:链接文件(符号链接;小写的L)或软链接
•“c”:字符设备文件
•.“b”:块设备文件
•“s”:套接字文件
•“p”:命名管道文件
第 2~4位代表文件所有者的权限。
• r:代表 read,是读取权限。
• w:代表 write,是写权限。
• x:代表 execute,是执行权限。
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限。
第 5~7位代表文件所属组的权限,同样拥有“rwx”权限。
第 8~10位代表其他人的权限,同样拥有“rwx”权限。
如果文件权限最后一位是“.”,则表示这个文件受SELinux安全规则管理。
Linux绝对路径和相对路径
绝对路径:以根目录“/”开始的路径,表示从Linux目录结构的最顶点算起,特点是路径以“/”开头
相对路径:不以根目录“/”开始的路径,以当前目录作为起始点,特点是不以“/”开头
每个目录下都有”.”和”…”2个目录:
一个点“ . ”代表当前目录,写全了“ ./ ”
二个点“ … ”代表上一级目录,写全了“ …/ ”
-
-a:列出所有文件,包括以点(.)开头的隐藏文件。命令:ls -a.。
上图中ls -al 、ls -la 、ll -a 执行结果一样。 -
-h:以人类可读的格式显示文件大小(例如,K、M、G)。命令:ls -lh或者ls -hl或者 ll -h,结果都是一样的。选项h必须和选项l结合一起使用。
-
-
-d:示目录本身而不显示目录下的文件。命令:ls -d。
-
-
-i:显示文件的索引节点号。命令:ls -i。
-
-
以上图片显示选项都可以用命令ll结合选项展示出不同的结果。ls 结合选项(选项可以是一个也可以是多个组合在一起)。
简单说明一下:
ls -l # 以长数据串的形式列出当前目录下的数据文件和目录
ls -al # 以长数据串的形式列出当前目录下的数据文件和目录及隐藏文件(常用)
ls -lR # 以长数据串的形式列出当前目录下的所有文件
ls -aR # 列出当前目录所有文件,包括子目录
ls -al --block-size=m # 查看文件大小,其中k,m,g表示单位
3、 mkdir命令–创建空目录。
选项:-p:递归创建所需目录
4、touch命令–创建一个空文件,如果文件已经存在修改文件的修改日期
5、 cat命令—查看文本文件内容,将文本文件内容全部打印到标准输出
6、more 、less、tail
more 命令:分页显示文件内容。默认显示进度百分比,空格往下翻页,b往上翻页,f往下翻页,q退出。
less命令:分页显示文件内容。选项 -m 显示进度百分比,可以用“/”后跟关键字搜索文件内容,空格往下翻页,b往上翻页,f往下翻页,q退出。适合用于查看大型文件或需要频繁操作和搜索的场景。
tail命令:用于从文件尾部查看文件的内容。
选项;
- -n:行数。从文件结尾开始,显示指定行数。
- -f:监听文件新增内容。比如日志文件。
# 查看文件的后10行
tail -10 /etc/passwd 或 tail -n 10 /etc/passwd
# 不停地去读/var/log/messages文件最新的内容,这样有实时监视的效果,用Ctrl+c来终止!
tail -f /var/log/messages
# 显示文件 notes.log 的内容,从第 20 行至文件末尾:
tail +20 notes.log
# 显示文件 notes.log 的最后 10 个字符:
tail -c 10 notes.log
7、 rm-用于删除文件或目录,remove之意
它的常用选项如下:
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :交互删除,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
rm -i file # 删除文件file,在删除之前会询问是否进行该操作
rm -rf dir # 强制删除目录dir中的所有文件
8、cp-复制文件和目录
该命令用于复制文件,它还可以把多个文件一次性地复制到一个目录下,它的常用参数如下:
-a :将文件的特性一起复制
-p :连同文件的属性一起复制(包括所有者、所有组、权限、时间),而非使用默认方式,与-a相似,常用于备份
-i :询问。如果目标文件存在,则会询问是否覆盖。
-r :递归复制,用于复制目录
cp -a file1 file2 # 连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 dir #把文件file1、file2复制到目录dir中
如果复制的目标位置已经存在同名的文件,则会提示是否覆盖,因为 cp命令默认执行的是“cp-i”,如下图:
cp -p file1 file2 dir # 连同文件的所有特性把文件file1复制成文件file2 .与-a相似
cp -r dir1 dir2 # 把目录dir1复制到dir2中
9、mv- 移动文件或目录、给文件或目录改名
选项:
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
mv -f movie/ test/
-i :若目标文件已经存在,就会询问是否覆盖。如果文件存在,也会默认执行-i。
-u :若目标文件已经存在,且比目标文件新,才会更新
注: 该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目标文件一定要是“目录”。
10、将内容写入文件:echo 、vim
重定向:是一种将输出(标准输出或标准错误)从默认位置(通常是终端或屏幕)转移到其他位置(如文件或设备)的技术。重定向操作符主要有以下几种:
标准输出重定向 (> 和 >>):
-
将命令的标准输出重定向到指定文件。如果文件已存在,则覆盖文件内容;如果文件不存在,则创建新文件。
-
将命令的标准输出追加到指定文件的末尾。如果文件不存在,则创建新文件。
标准错误重定向 (2> 和 2>>):
- 2>:将命令的标准错误重定向到指定文件。如果文件已存在,则覆盖文件内容。
- 2>>:将命令的标准错误追加到指定文件的末尾。
同时重定向标准输出和标准错误 (&> 和 2>&1)
- &>:将命令的标准输出和标准错误都重定向到同一个文件(覆盖)。
-
file 2>&1:将命令的标准输出重定向到文件,然后将标准错误也重定向到同一个文件(追加或覆盖,取决于 > 或 >> 的使用)。
echo 命令可以将字符串输出到标准输出,并通过重定向符号 > 或 >> 写入文件。
# 覆盖文件内容
echo "Hello, World!" > filename.txt
# 追加内容到文件末尾
echo "Another line" >> filename.txt
vim文本编辑器
该命令主要用于文本编辑,它接一个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件。
a、使用 Vim 打开 demo.txt
vim demo.txt # 编辑demo.txt文件
b、Vim 的模式切换
- 普通模式:这是 Vim 的默认模式,用于浏览和编辑文件。
- 插入模式:在这个模式下,你可以输入和编辑文本,按 i 键进入插入模式。
- 命令模式:用于执行一些特殊的命令,比如保存文件或退出 Vim(完成编辑后,按 Esc 键返回到普通模式,在普通模式下,输入 :w 并按回车,以保存文件。完成编辑并保存文件后,你可以退出 Vim。在普通模式下,输入 :q 并按回车,以退出 Vim。你也可以通过一条命令同时保存并退出 Vim。在普通模式下,输入 :wq 并按回车。)。
完整流程总结
打开终端。
输入 vim demo.txt 并按回车。
按 i 进入插入模式。
输入或编辑文本。
按 Esc 返回到普通模式。
输入 :w 并按回车保存文件。
输入 :q 并按回车退出 Vim(或者 :wq 同时保存并退出)。
额外提示-----如果不想保存文件而直接退出,可以在普通模式下输入 :q! 并按回车。
11、grep-分析一行内容过滤筛选
grep命令是一种强大的文本搜索工具,它使用正则表达式搜索文本,并把匹配的行打印出来。分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等。
grep dock all_output.txt #在文件 'all_output.txt’中查找关键词以"dock"的字符串。
grep [0-9] all_output.txt #选择 ‘all_output.txt’ 文件中所有包含数字的行,并打印出匹配出的结果。
grep --color=auto 'root' /etc/passwd # 取出文件/etc/passwd中包含root的行,并把找到的关键字加上颜色
ls -l | grep -i txt# 把ls -l的输出中包含字母txt(不区分大小写)的内容输出
grep --color=auto 'kafka' smart*/smart*.properties # 查看以smart开头的目录下面以smart开头的properties配置文件是否包含kafka
rpm -qa | grep mysql #查看所有已安装rpm包中有没有mysql。
12、权限管理命令–chmod、chown、chgrp
在ls命令讲解时,就介绍了ls命令执行后显示的7列的含义,这里就不在讲述。
chmod—管理文件或目录的权限,文件或目录权限的控制分别以读取®、写入(w)、执行(x)3种
英文原意:change file mode bits.
选项:
-R:进行递归的持续更改,即连同子目录下的所有文件都会更改。
chmod命令的权限模式的格式是“[ugoa][[±=][perms]]”,也就是“[用户身份][[赋予方式][权限]]”的格式,我们来解释一下。
• 用户身份
➣ u:代表所有者(user)。
➣ g:代表所属组(group)。
➣ o:代表其他人(other)。
➣ a:代表全部身份(all)。
• 赋予方式
➣+:加入权限。
➣-:减去权限。
➣=:设置权限。
• 权限
➣ r:读取权限(read)。
➣ w:写权限(write)。
➣ x:执行权限(execute)。
另一种是包含数字的数字设定法。其中4表示读,2表示写,1表示可执行,因此7表示读写可执行,5表示读可执行
chmod 755 file # 把file的文件权限改变为-rxwr-xr-x
chmod a=rwx file 等价于 chmod 777 file
chmod ug=rwx,o=x file 等价于 chmod 771 file
chgrp-修改文件或目录的所属组
英文原意:change group ownership。
基本用法如下:chgrp [-R] dirname/filename
chown-修改文件所属用户、用户组
该命令用于改变文件的所有者,与chgrp命令的使用方法相同,只是修改的文件属性不同。
# 将文件 file1.txt 的拥有者设为 runoob,用户组组 runoobgroup :
chown runoob:runoobgroup file1.txt
# 将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
注意:执行chown user demo.txt命令以更改demo.txt文件的所有者为user之前,确实需要确保用户user已经存在于系统中。chown命令用于更改文件或目录的所有者和/或所属组,但它不会创建不存在的用户或组。
如果尝试将文件或目录的所有权更改为一个不存在的用户,系统会返回一个错误,指出无效的用户。
chown nonexistentuser demo.txt
# 输出类似于:chown: invalid user: ‘nonexistentuser’
13、帮助命令–man、–help
man–参看命令的详细信息
[root@aliyun-one ~]# man ls
[root@aliyun-one ~]# man cd
–help–输出的帮助信息基本上是 man命令的信息简要版
[root@aliyun-one ~]# ls --help
13、搜索命令–find 、locate、which、whereis
whereis :查找二进制命令、源文件和帮助文档的命令。
which命令:列出命令的所在路径。
find命令:在目录中搜索文件。
# 命令格式
find [PATH] [option] [action]
参数一:PATH–搜索路径。
参数二:action:搜索内容。
a、按照文件名搜索。
选项:
- -name:按照文件名称搜索。
- -iname:按照文件名搜索,不区分大小写。
- -inum:按照inode号搜索。
b、按照文件大小以及类型搜索
选项:
- -size [±]SIZE :找出比SIZE还要大(+)或小(-)的文件 。
find . -size +1k # 查找当前目录中大于1KB的文件,注意c表示byte
find . -size +1024c # 查找当前目录中大于1KB的文件
- -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p)。
c、按照修改时间搜索
# 与时间有关的参数:
-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件
-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名
-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名
-newer file : 列出比file还要新的文件名
# 例如:
find . -mtime 1 # 在当前目录下查找在1天之前的“一天内”被更改过的文件
find . -mtime +1 # 在当前目录下查找1天之前(不含n天本身)被更改过的文件名
find /root -newer xxx # 在当前root目录下查找比file还要新的文件名
d、按照权限搜索
find . -perm 0755 # 查找当前目录中文件权限的0755的文件, 第一个0,表示十进制
e、按照所有者和所属组搜索
# 与用户或用户组名有关的参数:
-user name : 列出文件所有者为name的文件
-group name : 列出文件所属用户组为name的文件
-uid n : 列出文件所有者为用户ID为n的文件
-gid n : 列出文件所属用户组为用户组ID为n的文件
locate
查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。当我们不知道某个文件放哪里了,能够通过他快速定位到文件目录,这是一条非常有用的命令
# 查找eureka-server-xxx.jar文件的位置
locate 'eureka-server-xxx.jar'
# 查询包含passwd的目录或文档
locate passwd
locate与find的不同:find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:locate -u
13、ps-查看进程运行情况
命令格式
ps [options] [--help]
options:
- -a : 显示除控制进程与无端进程外的所有进程。
- -A: 列出所有的进程。
- -w 显示加宽可以显示较多的资讯。
- -d :显示除控制进程外的所有进程。
- -e :显示所有进程。
- -g :显示会话或组ID在grplist列表中的进程。
- -p :显示PID在pidlist列表中的进程。
- -s :显示会话ID在sesslist列表中的进程。
- -t :显示终端ID在ttylist列表中的进程。
- -u :显示有效用户ID在userlist列表中的进程。
- -x :以用户为中心组织进程状态信息显示。
- -M :显示进程的安全信息。
- -f :显示完整格式的输出。
- -j :显示任务信息。
- -l :显示长列表。
- -o :仅显示由format指定的列。
- -y :不要显示进程标记。
- -L :显示进程中的线程。
其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:
ps -A #显示进程信息
ps -u root #显示root进程用户信息
ps aux # 查看系统所有的进程数据
ps ax # 查看不与终端(terminal)有关的所有进程
ps -lA # 查看系统所有的进程数据
ps axjf # 查看连同一部分进程树状态
ps –ef # 显示所有信息,连同命令行
ps -ef | grep 进程关键字 #查找指定进程格式:列子:# ps -ef | grep php #显示 php 的进程
ps aux命令输出结果解释:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
-
USER: 行程拥有者
-
PID: pid
-
%CPU: 占用的 CPU 使用率
-
%MEM: 占用的记忆体使用率
-
VSZ:占用的虚拟记忆体大小
-
RSS: 占用的记忆体大小
-
TTY: 终端的次要装置号码 (minor device number of tty)
-
STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程) - R: 正在执行中 - S: 静止状态 - T: 暂停执行 - Z: 不存在但暂时无法消除 - W:没有足够的记忆体分页可分配 <: 高优先序的行程 - N: 低优先序的行程 - L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
-
START: 行程开始时间
-
TIME: 执行的时间
-
COMMAND:所执行的指令
14、top-查看系统的整体运行情况
实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。它的常用参数如下:
- -b:以批处理模式操作;
- -c:显示完整的命令;
- -i不显示闲置(idle)或无用的进程。
- -u <用户名>:仅显示指定用户名的进程信息;
- -p <进程号>:仅显示指定进程ID的信息;
- -n <次数>:指定 top 命令运行的次数后自动退出。
- -S:累计显示进程的 CPU 使用时间。
top交互命令如下:
- h:显示帮助画面,给出一些简短的命令总结说明;
- k:终止一个进程;
- i:忽略闲置和僵死进程,这是一个开关式命令;
- q:退出程序;
- r:重新安排一个进程的优先级别;
- S:切换到累计模式;
- s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
- f或者F:从当前显示中添加或者删除项目;
- o或者O:改变显示项目的顺序;
- l:切换显示平均负载和启动时间信息;
- m:切换显示内存信息;
- t:切换显示进程和CPU状态信息;
- c:切换显示命令名称和完整命令行;
- M:根据驻留内存大小进行排序;
- P:根据CPU使用百分比大小进行排序;
- T:根据时间/累计时间进行排序;
- w:将当前设置写入~/.toprc文件中。
显示信息
top 命令的一些常用功能和显示信息:
总体系统信息:
- uptime:系统的运行时间和平均负载。
- tasks:当前运行的进程和线程数目。
- CPU:总体 CPU 使用率和各个核心的使用情况。
- 内存(Memory):总体内存使用情况、可用内存和缓存
。
进程信息:
- PID:进程的标识符。
- USER:运行进程的用户名。
- PR(优先级):进程的优先级。
- NI(Nice值):进程的优先级调整值。
- VIRT(虚拟内存):进程使用的虚拟内存大小。
- RES(常驻内存):进程实际使用的物理内存大小。
- SHR(共享内存):进程共享的内存大小。
- %CPU:进程占用 CPU 的使用率。
- %MEM:进程占用内存的使用率。
- TIME+:进程的累计 CPU 时间。
top # 显示系统中进程的资源占用状况
top -c # 显示系统中进程的资源占用状况,并显示完整的命令
top -u xxx # 查看xxx用户的进程的资源占用状况
top -b #以批处理模式显示程序信息 终端中按 Ctrl+C 来中断该命令
top -S #以累积模式显示程序信息
top -n 2 # 设置信息更新次数
top -d 3 #设置信息更新时间
top -p 139 #显示进程号为139的进程信息,CPU、内存占用率等
15、kill-根据进程ID杀死进程
kill 命令可以发送不同的信号给目标进程,来实现不同的操作,如果不指定信号,默认会发送 TERM 信号(15),即终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。它通常与ps和jobs命令一起使用,它的基本语法如下:
kill [options] <PID>
参数说明:
- -l:列出所有可用的信号
最常用的信号是:
- SIGKILL(信号9):立即结束进程,不能被捕获或忽略。
- SIGTERM(信号15):正常结束进程,可以被捕获或忽略。
- SIGSTOP(信号19):暂停进程,不能被捕获、忽略或结束。
- SIGCONT(信号18):继续执行被暂停的进程。
- SIGINT(信号2):通常是Ctrl+C产生的信号,可以被进程捕获或忽略。
kill PID #终止 PID 为 1234 的进程 如;kill 1234
kill -SIGTERM %1 # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程
kill -SIGHUP PID # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得
kill -9 1112 # 强制杀死进程号为1112的进程
kill -s SIGSTOP 1234 #向 PID 为 1234 的进程发送 SIGSTOP
kill -l 显示信号
kill -9 $(ps -ef | grep hnlinux) #方法一 过滤出hnlinux用户进程
kill -u hnlinux #方法二
kill -15 PID和kill -9 PID的区别:
kill -9 PID 是操作系统从内核级别强制杀死一个进程。
kill -15 PID 可以理解为操作系统发送一个通知告诉应用主动关闭。效果是正常退出进程,退出前可以被阻塞或回调处理。并且它是Linux缺省的程序中断信号。
尽量使用kill -15 PID而不要使用kill -9 PID。
kill -9 PID没有给进程留下善后的机会:
关闭socket链接
清理临时文件
将自己将要被销毁的消息通知给子进程
重置自己的终止状态
一些磁盘操作多的程序更是不要使用kill -9 PID,会导致数据的丢失,如ES,kafka等
16、file-辨识文件类型
该命令用于辨识文件类型,因为在Linux下文件的类型并不是以后缀为分的,所以这个命令对我们来说就很有用了,它的用法非常简单,基本语法如下:
file filename
查看test文件格式:
file ./test
18、free-显示内存的使用情况
显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参数说明:
- -b:以Byte为单位显示内存使用情况。
- -k:以KB为单位显示内存使用情况。
- -m :以MB为单位显示内存使用情况。
- -g :以GB为单位显示内存使用情况。
- -o :不显示缓冲区调节列。
- -s <间隔秒数>:持续观察内存使用状况。
- -t:显示内存总和列。
# 显示内存使用情况
free # 显示内存使用信息
# 以总和的形式显示内存的使用信息
free -gt # 以总和的形式查询内存的使用信息,以GB为单位
# 周期性的查询内存使用信息
free -g -s 10 # 每10s执行一次命令,以GB为单位
- total: 表示总的内存或交换空间大小(以千字节为单位,KB)。在这个例子中,总内存是 1798504 KB,总交换空间是
0 KB。 - used: 表示已经被系统、进程等使用的内存或交换空间大小。在这个例子中,已使用的内存是557604 KB,而交换空间尚未被使用(0 KB)。
- free: 表示未被使用,且也未被作为缓冲区/缓存的内存或交换空间大小。在这个例子中,空闲内存是70228 KB,空闲交换空间是0 KB。
- shared: 在较新版本的 Linux 中,这个字段通常不显示,因为它代表多个进程共享的内存大小。在一些系统上,它可能显示与 tmpfs 挂载点相关的内存使用情况。
- buff/cache: 表示被用作缓冲区和缓存的内存大小。Linux 系统会积极使用未分配的内存作为文件系统缓存,以提高性能。当需要更多内存给应用程序时,这部分内存可以被回收。
- available: 表示估计的、对于启动新应用程序而言可用的内存大小。这是一个比简单的“free”内存更有用的指标,因为它考虑了可回收的缓冲区/缓存内存。在这个例子中,可用的内存是1052996 KB。