目录
3.1 ftp(file transfer protocol)
3.2 tftp(trivial file transfer protocol)
5.2 查询进程状态:ps (process status)
【写在前面】
后文链接:Linux常用命令介绍二:系统设置,网络与通讯,磁盘管理,备份和压缩
1 用户管理命令
1.1 添加用户:adduser/useradd
(1)命令: adduser username
(2)常用参数:
-d:指定用户的目录,默认为/home/username。
(-d的用户上级目录必须是一个已存在的目录。)
-g:指定用户组
-G:指定用户附加组
-s:指定用户的默认shell
(3)举例:#adduser Sheryl -d /opt/www/Sheryl -g user -s /bin/bash
(4)补充:
新添加的用户必须先设置密码才能使用。
设置ID值时,0-499预留给特殊用途(bin,mail等账户),所以给用户设置ID要大于500。
1.2 设置用户密码:passwd
(1)命令: passwd username
(2)常用参数:输入上述命令后,会提示输入密码。
(3)补充:修改其他人用户密码时,必须有对应的权限。
1.3 添加用户组:groupadd
(1)命令: groupadd groupname
(2)常用参数:无
(3)举例:
1.4 修改用户账户信息:usermod
(1)命令: usermod [参数]
(2)常用参数:
-c<备注>:修改用户账号的备注文字
-d<登入目录>:修改用户登入时的目录
-e<有效期限>:修改账号的有效期限
-g<群组>:修改用户所属的群组
-G<群组>:修改用户所属的附加群组
-l<账号名称>:修改用户账号名称
-L:索引用户密码,使密码无效
-s<shell>:修改用户登入后所使用的shell
-u<uid>:修改用户ID
-U:解除密码锁定
(3)举例:#usermod -l newname oldname
(4)补充:
usermod 可用来修改用户账号的各项设定。
usermod不允许改变正在线上的使用者账号名称。
当usermod改变用户ID时,必须确认该user没在电脑上执行任何程序。
1.5 修改用户组:groupmod
(1)命令: groupmod -n 新群组名 旧群组名
(2)常用参数:-n <新群组名>:带新群组名
(3)举例:#groupmod -n newgroupname oldgroupname
1.6 删除用户:userdel
(1)命令: userdel [参数] 用户账号
(2)常用参数:
-r:删除用户以及其所有的文件/删除用户登入目录以及目录中的所有文件
-f:强制删除用户,即使用户正在登录
(3)举例:#userdel -r Sheryl
(4)补充:删除命令的遗留问题,比如目录和用户在别的地方新建的文件等
1.7 删除用户组:groupdel
(1)命令: groupdel 用户组账号
(2)常用参数:无
(3)举例:#groupdel user
(4)补充:删除用户组之前,必须确保该组不是任何用户的主组,否则删除失败。
1.8 用户信息文件:/etc/passwd
(1)文件内容格式:用户名:密码:用户ID:组ID:全名:用户主目录:shell
(2)常用参数:无
(3)补充:
shell的模式定义了该用户能否登陆。
如果用户的bash为/sbin/nologin,则表示该用户不可以登陆。
用户ID0表示超级管理员用户,uid 0-500是系统保留的ID。
1.9 以其他身份执行命令:sudo
(1)命令: sudo [参数]
(2)常用参数:
-b:在后台运行指令
-H:将HOME环境变量设为新身份的HOME环境变量
-k:结束密码的有效期限,即下次再执行sudo时需要密码
-l:列出目前用户可执行与无法执行的指令
-p:改变询问密码的提示符
-s<shell>:执行指定的shell
(3)举例:#sudo ls -l root //表示用户通过sudo的方式切换到root并执行命令 ls -l root
(4)补充:
确认系统安装了sudo:rpm -qa | grep sudo
在/etc/sudoers中,指明该用户有执行这个命令的权限。
1.10 普通用户授予特权:/etc/sudoers
(1)文件说明:
文件指明哪些用户能做什么操作,可以通过man 5 /etc/sudoers 查看。
只有root用户可以修改该文件,保存时要按 ! 强制保存。比如 :wq!
(2)常用配置:
允许Sheryl执行任何命令(root有这个权限): Sheryl ALL=(ALL)ALL (可见1.9中的截图)
允许用户执行命令且不需要密码 :Sheryl ALL=(ALL)NOPASSWD:ALL
用户机器=命令
允许sys组的成员执行NETWORKING SOFTWARE命令: %sys ALL=NETWORKING, SOFTWARE
(3)举例:无
1.11 用户切换:su
(1)命令: su [-] username
(2)实例:
su oracle, 不载入/home/oracle/.profile下的环境变量,切换后继续使用当前用户环境变量。
su -oracle, 载入/home/oracle/.profile 下的环境变量。
su - Sheryl; echo$PATH; pwd
su Sheryl; echo$PATH; pwd
(3)补充:
1) 限定用户组切换root用户
前提:默认情况下,任何用户都可以通过su获取root权限,对系统进行任何操作。
解决方案:为了加强系统安全,Linux提供一个管理员组wheel,属于这个组的用户才能使用su命令获得root权限。
如何操作:
先将用户添加到wheel组:usermod -G wheel username
然后修改 /etc/pam.d/su,添加auth required pam_wheel.so user_uid
2) 用户/系统环境变量文件
/etc/profile:全局配置,不管是哪个用户,登录时都会读取该文件
/etc/bashrc:全局配置, bash执行时,不管是何种方式,都会读取该文件
~/.bashrc:局部配置文件
~/.bash_profile:局部配置文件
注意:
登录时~/.bashrc和~/.bash_profile都会被加载。同一个变量分别在上述2个文件定义时,系统以读取~/.bash_profile为准。~/.bashrc再去给下面的环境变量赋值。
2 文件管理命令
2.1 用户和文件
Linux中,除了root之外,其他用户想要访问不是自己本用户的文件,需要先经过授权。
2.2 文件/目录许可权限
说明:
(1)d表示目录,r是读取权限4,w是修改权限2,x是执行权限1
(2)第1位:标识文件或目录。-表示文件,d表示目录,l表示链接
(3)第2-4位:该文件或目录的权限
(4)第5-7位:用户组的权限
(5)第8-10位:其他用户的权限
(6)文件第三域:文件或目录所属的用户
(7)文件第四域:文件或目录所属的用户组
(8)文件的第九域:文件或目录名称
2.3 修改文件/目录许可权限:chmod
#chomd 777 -R /var/abc //递归修改目录中文件的属性为777
#chmod user.Sheryl -R /var/abc //递归修改目录中文件的所属用户和用户组
#chmod u+x file //给file的属主增加执行权限
#chmod 751 file等同于#chmod u=rwx,g=rx,o=x file
#chmod 444 file 等同于 #chmod a-wx,a+r file
#chmod -R u+r directory //递归分配读权限
补充:
chmod是守则权限
setfacl是设置目录属性访问控制 !!! 深入学习一下
2.4 修改文件/目录所有者:chown
示例:chown -R user.Sheryl /var/abc //递归修改/var/abc的所有者信息
参考:#chmod user.Sheryl -R /var/abc //递归修改目录中文件的所属用户和用户组
2.5 目录和文件通配符
示例:
co*h:表示以co开头的文件
he*o*t.txt:以he开头,包含一个o,并且以t.txt结尾的文件
doc[0-9].html:名为doc0到doc9的.html文件
2.6 切换目录:cd
作用:让用户在不同的目录间切换,但是该用户必须拥有足够的权限。
示例:
cd ~:直接返回用户主目录
cd -:返回上一次用户所在目录
cd /root/:使用绝对路径
cd ../../root/:使用相对路径
2.7 创建文件或目录链接:ln
参数:-s 软链接
补充:硬链接和软链接的知识点
2.8 查看文件内容:cat
作用:cat file //查看文件内容
2.9 列出文件或目录:ls
示例:
ls -l /etc:以详细列表的方式显示/etc/目录下的所有文件和目录。
ls -lt /etc:以详细列表的方式,按照日期排序显示/etc目录下所有文件和目录。
2.10 创建目录 mkdir
示例:
mkdir newdir
mkdir -p /home/Sheryl/abc //新建目录abc,如果上一层目录不存在,则一并创建
mkdir -m 777 /home/Sheryl/abc //新建目录abc,设置目录权限为777
2.11 复制文件或目录:cp
示例:
cp /home/Sheryl/abc.txt /home/test //将abc.txt文件复制到 /home/test目录下
cp -r /home/Sheryl/abc /home/test //将abc目录递归复制到 /home/test目录下
2.12 移动或更名现有文件或目录:mv
示例:
mv -f /home/Sheryl/abc /home/test //将abc目录移到test目录下
mv -f /home/Sheryl/abc /home/test/abcd //将abc目录移到/test目录下并更名abcd
mv /home/Sheryl/abc.txt /home/test //将abc.txt文件移到/test目录下
2.13 删除目录或文件:rm
示例:
rm /home/Sheryl/abc.txt //删除文件
rm /home/Sheryl/abc //删除目录
当误删除某些文件,可以尝试用 extundelete 恢复。但也存在一定的不完整性。
2.14 比较文件差异:diff
(1)作用:
以逐行的方式,比较文本文件的异同处。
如果要指定目录,则diff会比较目录中相同文件名的文件,但不会比较其中的子目录。
(2)说明:
比较结果中,会说明两个文件中不同的地方,即需要修改它们的哪些行。
如果用-表示文件名,则表示标准输入。
如果是目录名,那么将对该目录中的同名文件进行比较。
(3)命令: vim diff -0 file1 file 2 //会同时打开两个文件在水平显示
2.15 搜索文件和目录:find
(1)命令格式:find [路径] [-type fdl] [-name 字符串] [-atime +/- 天数]
(2)参数说明:
路径:要搜索的路径
-type:确定搜索的范围。f是文件,d是目录,l是链接
-name:文件或目录名表达式
-atime:多少天内修改过
(3)实例:
find / -name "sheryl" //从根目录开始查找名字为sheryl的文件或目录
find / -type f -name "sheryl" //从根目录开始查找名字为sheryl的文件
find / -type f -name "*sheryl*" //从根目录开始查找名字里包含sheryl的文件
(4)补充知识点:
#find ... -exec ls {} \;
#find ... | xargs ls -rf
这两个命令都可以把find的查询结果打印出来。区别是前者把结果一次性传给exec选项,后者xargs命令会分批次的处理。
xargs的优点:因为是批处理的,所以执行效率比较高,因为用了缓冲。
xargs的缺点:可能参数数量过多,导致后面的命令执行失败。(如果是#find ... | xargs rm{} \;的话,无此问题,因为rm是逐个处理的)。
-exec 后面必须用分号;结尾。因为shell会处理分号;,所以用\;转义,防止被处理掉。
{}写成‘{}’,也是为了避免被处理掉。
(5)提升练习
1)在/tmp中查找所有*.h,并在这些文件中查找SYSCALL_VECTOR这个内容,最后打印出所有包含SYSCALL_VECTOR的文件名
find /tmp -name *.h | xargs -n 50 grep SYSCALL_VECTOR
grep SYSCALL_VECTOR /tmp/*.h | cut -d ":" -f1|uniq>filename
find /tmp -name *.h -exec SYSCALL_VECTOR '{}' \; -print
2)删除在/下所有名为filename的文件
find / -name filename -exec rm -rf '{}' \;
3)查找磁盘中大于3M的文件
find ./ -size +3000k -exec ls -ld '{}' \;
4)将find出来的内容拷贝到另一个地方
find /home -name sheryl -exec cp -rf '{}' /tmp \;
5)查找 2020-01-01 00:30:00时更改过的文件
find /home -name *.rpm | xargs ls -l | grep "2020-01-01 00:30:00"
3 文档传输
3.1 ftp(file transfer protocol)
(1)为什么要用ftp?
Linux很多软件实现FTP服务。常用的有vsftpd,Wu-ftpd,Proftp等。
CentOS中默认安装的是vsftpd。
访问FTP服务器时需要先验证,只有经过验证,用户才能访问和传输文件。
FTP是ARPANet的标准文件传输协议,该网络就是Internet的前身。
(2)命令格式:ftp [-dignv] [主机名或IP地址]
(3)参数说明:
-d:详细显示指令执行过程,偏于排错或分析程序执行的情形
-i:关闭互动模式,不询问任何问题
-g:关闭本地主机文件名称,支持特殊字符的扩充特性
-n:不使用自动登录
-v:显示指令执行过程
(4)实例:ftp 10.32.0.111
(5)延伸:
问题:有时候登录ftp服务会提示500 OOPS。这时需要考虑SELinux的安全问题。
解决方案: setsebool ftp_home_dir=1,然后重启vsftp服务即可解决问题。
3.2 tftp(trivial file transfer protocol)
(1)命令格式:tftp [主机名或IP地址]
(2)补充说明:
FTP让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。
TFTP是简单的文字模式FTP程序,所使用的指令和FTP类似。
(3)TFTP服务器/客户端的安装:
yum install tftp //安装tftp client
yum install tftp-server //安装 tftp server
yum install xinetd //安装tftp的超级服务守护进程
4 Linux文档编辑
4.1 文件编辑器:vi/vim
(1)vi/vim是常用的编辑器。 vim是vi的增强版,多了代码加亮的效果。
(2)常用模式: 命令模式,insert模式, 底部模式
(3)常用操作:略 (之后再补)
4.2 表达式运算:expr
(1)功能:expr命令是一个手工命令行计数器,用于在Linux下求表达式变量的值。
(2)使用格式:expr Expression
表示命令读入Expression参数,计算它的值,然后将结果写入到标准输出。
(3)参数规则:
用空格隔开每一项。
用\放在shell特定的字符前面。
对包含空格和其他特殊字符的字符串要用引号括起来。
(4)实例:
4.3 管道命令:|
(1)管道命令,仅能处理经由前面一个指令传出的正确输出信息,然后传递给下一个命令,作为标准输入standard input。能处理standard output的信息,不能处理standard error的信息。
(2)命令格式: command1 | command2 | command3
(3)注意:每个管道右边命令,必须能够接受标准输入流命令才行
4.4 匹配:grep
(1)命令格式: grep [-ivnE] 字符串文件
(2)参数:
-n:显示行号
-A:显示后几行
-B:显示前几行
-v:排除
-i:不区分大小写
-R:递归查找目录
-E:扩展查找
(3)实例:
#grep "Sheryl" /etc/passwd //查找passwd中包含Sheryl的行
#grep -n "Sheryl" /etc/passwd //查找passwd中包含Sheryl的行,显示行号
#grep -v "Sheryl" /etc/passwd //查找passwd中不包含Sheryl的行
#grep -R -E "Sheryl" /etc/passwd //递归查找passwd中包含Sheryl这个词的行
4.5 流编辑:sed
(1)作用:sed是一种在线编辑器,它一次处理一行内容。
处理时,把当前处理的行存储在临时缓冲器,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,不断重复直至文件末尾。
文件内容并没有改变,除非使用重定向存储输出。
Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,填写转换程序等。
(2)语法命令:sed [-hnV] [-e<script>] [-f<script文件>] [文本文件]
(3)参数:
-e <script>或者 --expression=<script>:以选项中指定的script来处理输入的文本
-f <script文件>或者 --file=<script文件>:直接修改读取的内容,不在屏幕上显示
-n或者--quiet或者--silent:仅显示script处理后的结果
-V或者--version:显示版本信息
(4)实例:
1)删除 d
删除example文件第二行:#sed '2d' example
删除example第二行到末尾所有行:#sed '2, $d' example
删除example文件所包含test的行:#sed '/test/d' example
2)替换 s
在整行范围内把test替换为mytest. 如果没有g,则只有每行第一个匹配的test被替换。
sed 's/test/mytest/g' example
&符号表示替换字符串中被找到的部分,所有以10.32.0.111开头的行都会被替换成10.32.0.111加上localhost,变成10.32.0.111localhost
sed 's/10.32.0.111/&localhost/' example
3)截图行号 n
从example第一行开始读,取4行:#sed -n '1,4p' example
所有在模板test和123所确定的范围内的行都被打印: #sed -n '/test/,/123/p' example
4.6 排序:sort
(1)作用:sort可针对文本文件的内容,以行尾单位来排序
(2)语法:sort [-bcdfimMnr] [-o <输出文件>] [-t <分隔字符>] [+<起始栏位>-<结束栏位>] [--help] [--version] [文件]
(3)参数:
-b:忽略每行前面开始处的空格字符
-d:排序时,处理英文字母,数字和空格字符外,忽略其他的字符
-f:排序时,将小写字母视为大写字母
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-m:将几个排序好的文件进行合并
-M:将前面3个字母依照月份的缩写进行排序
-n:依照数值的大小排序
-o<输出文件>:将排序后的结果存入指定的文件
-r:以相反的顺序来排序
(4)实例:对tmp文件按照数值大小的顺序进行排序:#cat 12345 | sort -n
4.7 重复:uniq
(1)作用:uniq可检查文本文件中重复出现的行列
(2)语法:uniq [-cdu] [-f<栏位>] [-s <字符位置>] [-w <字符位置>] [--help] [--version] [输入文件] [输出文件]
(3)参数:
-c或者 --count:在每列旁边显示该行重复出现的次数
-d或者 --repeated:仅显示重复出现的行列
-u或者 --unique:仅显示出现一次的行列
[输入文件]:指定已排序好的文本文件
[输出文件]:指定输出的文件
(4)实例:对tmp文件进行先排序再进行重复校验: #cat tmp | sort | uniq -c
5 系统管理
5.1 系统时间与日期:date
(1)系统时钟和硬件时钟的定义
Linux时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock)。
系统时钟:是指当前Linux Kernel中的时钟。
硬件时钟:则是主板上由电池供电的时钟,可以在BIOS中设置。
当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
(2)功能:显示或设置系统时间和日期
(3)语法:date [ ]...
(4)参数:
-d <字符串>:显示字符串所指的日期和时间,字符串前后必须加上双引号。
-s <字符串>:根据字符串来设置日期和时间,字符串前后必须加上双引号。
-u:显示GMT
--help:在线帮助
--version:显示版本
(5)实例:
(6)补充:
硬件时间可以用 “hwclow”来查询
关于时间同步和校准,可以考虑配置ntp同步
5.2 查询进程状态:ps (process status)
(1)作用:用来报告程序执行状况的指令,可以搭配kill指令随时终端,删除不必要的程序。
(2)语法: ps [ ]...
(3)参数:
a:显示现行终端机下的所有程序,包括其他用户的程序
e:列出程序时,显示每个程序所使用的环境变量
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示
s:采用程序信号的格式显示程序状况
u:以用户为主的格式来显示程序状况
x:显示所有程序,不以终端机来区分
S:列出程序时,包括已中断的子程序资料
-A/e:显示所有程序
-f:用ASCII字符显示树状结构,表达程序间的相互关系
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况
(4)实例:查询所有用户进程: #ps aux
(结果详情参数,进程状态介绍,状态详情等略,稍后补)
5.3 结束执行进程:kill/killall
(1)作用:kill可将指定信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
(2)语法:kill [-s <信息名称或编号>] [程序] 或者 kill [-l <信息编号>]
(3)参数:
-l <信息编号>:若不加信息编号选项,则-l参数会列出全部的信息名称
-s <信息名称或编号>:指定要送出的信息
(4)实例:
强制结束进程号为 17638的程序:#kill -9 17638
结束运行程序java:killall java
5.4 重启计算机:reboot
(1)作用:执行reboot指令可让系统停止运作,并重新开机。
(2)语法:reboot [-dfinw]
(3)参数:
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp,有-n的效果
-f:强制重新开机,不调用shutdown指令的功能
-i:在重开机之前,先关闭所有网络界面
-n:在重开机之前,不检查是否有未结束的程序
-w:仅做测试,并不真的将系统重开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
5.5 关闭计算机:shutdown
(1)作用:可以关闭所有程序,并依用户的需求,进行重新开机或关机的动作。
(2)语法:shutdown [-efFhknr] [-r 秒数] [时间] [警告信息]
(3)参数:
-c:当执行"shutdown -h 8:00"时,主要按+键,可中断关机指令
-f:重新启动时不执行fsck (检查文件系统并尝试修复错误)
-F:重新启动时执行fsck
-h:将系统关机
-k:只是送出信息给所有用户,但不会实际关机
-n:不调用init程序进行关机,而由shutdown自己进行
-r:shutdown之后重启
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒
[时间]:设置多久时间后执行shutdown指令
[警告信息]:要传送给所有登入用户的信息
(4)实例:立即重启系统: #shutdown -h now
5.6 多重视窗程序:screen
(1)作用:为多重视图管理程序。视窗,是指一个全屏幕的文字模式画面。
通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
(2)语法:screen ......
(3)参数:
-A:将所有的视窗都调整为目前终端机的大小
-d<作业名称>:将制定的screen作业离线
-m:即使目前已在作业中的screen作业,仍强制建立新的screen作业
-r<作业名称>:恢复离线的screen作业
-R:先试图恢复离线的作业,若找不到离线的作业,即建立新的screen作业
-s<shell>:制定建立新视窗时,所要执行的shell
-S<作业名称>:制定screen作业的名称
-x:恢复之前离线的screen作业
-ls 或 --list:显示目前所有的screen作业
(4)实例:
查询所有screen:#screen ls
新建一个screen:#screen -S SherylTest
5.7 休眠:sleep
(1)作用:sleep可以用来将目前动作延迟一段时间。
(2)语法:sleep ......
(3)参数:number:时间长度,后面可接s,m,h,d (秒,分,时,天)
(4)实例:显示目前时间后延迟1分钟,之后再次显示时间:date; sleep 1m; date
5.8 Linux CPU信息:/prop/cpuinfo
(1) 作用:提供了系统中CPU的提供商和相关配置信息比如CPU的普通型号(386,486,586,686等),以及能得到的更多信息(制造商,型号和版本)。文件还包含相应的标志。
(2)文件的格式:文件由多行构成,每行包括一个域名称,一个冒号,一个值。
(3)如下图,各输出项的详细信息略。
(4)/prop/cpuinfo能确定系统的CPU情况有哪些(略,之后补)
5.9 任务管理器:top
(1)作用:
执行top指令可显示目前正在系统中执行的程序,并通过它所提供的互动式界面用热键加以管理。
top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。
如果在前台执行该命令,它将独占前台,直到用户终止该程序。
确切的说,top命令提供了实时的对系统处理器的状态监视,监管系统中CPU最敏感的任务列表。
该命令可以按CPU使用。内存使用和执行时间对任务进行排序,而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。
(2)语法: top [bciqsS] [d <间隔秒数>] [n <执行次数>]
(3)参数:
b:使用批处理模式
c:列出程序时,显示每个程序的完整指令,包括指令名称,路径和参数等
d<间隔秒数>:设置top监控程序执行状况的间隔时间,单位是秒
i:执行top指令时,忽略闲置或是已成为Zombie的程序
n<执行次数>: 设置监控信息的更新次数
q:持续监控程序执行的状况
s:使用保密模式,消除互动模式下的潜在危机
S:使用累计模式,其效果类似ps指令的-S参数
(4)top命令的输出详解:
第一行任务队列信息: == uptime
第二,三行是进程和CPU信息: == mpstat -P ALL (什么是中断?)
第四,五行是内存信息: == free
第六,七行是进程信息: == ps aux
(5)延伸:
top默认3秒更新一次,用户可以按d设置更新频率。
当有多个CPU时,系统模式是显示平均cpu利用率,以通过按下1展开查看各个核cpu的信息,或者在help里面设置显示信息。
top命令可通过f去做设置。具体man top。
5.10 查询cpu: mpstat
(1)语法:mpstat [-P {<cpu> | ALL}] [-V]
(2)实例:
显示系统所有核的cpu信息: #mpstat -P ALL
查询corel的cpu信息: #mpstat -P 1
以间隔1s的时间不停查询corel的cpu信息:#mpstat -P 1 1
(3)信息详解:略,稍后补
5.11 查询内存:free
(1)语法:free [-b | -k | -m] [-o] [-s delay] [-t] [-V]
(2)参数:
(3)映射文件:/prop/meminfo
(4)详解:
输出一共有4行,第4行为交换区的信息,分别是交换的总量,使用量和有多少空闲的交换区。一般的剩余内存可看free cache。
第二行:从OS的角度看内存的总体,使用,剩余和cache。
公式: Total= used + free =(-buffers/cache) + cached + buffers + shared + free
第三行(?):(-/+ buffers/cache)
buffer和cache的区别:Cache能有效缩短了I/O系统调用的时间,buffer作为buffer cache的内存,是块设备的读写缓冲区。cache作为page cache的内存,文件系统的cache。
(5)延伸: swap
1)什么是swap:
Linux把物理内存划分作称为分页(Page)的内存区块。内存交换是一个内存分页被复制到一个预配置的称为swap空间的硬盘空间里的过程,以此来释放内存分页。物理内存与swap空间的共同大小称为可用的虚拟内存量。
2)swap的好处:
当物理内存不足以支撑系统和应用程序(进程)的运作时,这个swap空间可以用作临时存放使用率不高的内存分页,把腾出的内存交给急需的应用程序使用。
即使机器拥有足够多的物理内存,也有一些程序会在他们初始化时残留的极少再用到的内存分页内容转移到swap空间,以此让出物理内存空间。对于有发生内存泄漏几率的应用程序,swap空间跟重要,因为谁也不想看到由于物理内存不足导致系统崩溃。
5.12 系统信息:uname
(1)作用:uname可显示电脑以及操作系统的相关信息
(2)语法:uname [-amnrcv] [--help] [--version]
(3)参数:
-a, --all:显示全部信息
-m, --machine:显示电脑类型
-n, -nodename:显示在网络上的主机名称
-r, --release:显示操作系统的发行编号
-s, --sysname:显示操作系统名称
(4)实例:#uname -a