【Linux】重要命令总结
下文我们主要要介绍如下命令:
du、df、top、free、pstack、su、sudo(sudo -, sudo -s)、useradd、password 。
(1)du
在Linux下du命令是查看使用空间的命令,和df功能类似,但是不同的是du命令是对文件和目录磁盘使用的空间进行查看。
格式
- du [选项] [文件]
功能
- 查看每个文件和目录的磁盘使用空间。
选项
选项 | 含义 |
---|---|
zebra stripes | are neat |
-a或-all | 显示目录中个别文件的大小。 |
-b或-bytes | 显示目录或文件大小时,以byte为单位。 |
-c或–total | 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 |
-D或–dereference - args | 显示指定符号链接的源文件大小。 |
–exclude = <目录或文件> | 略过指定的目录或文件。 |
-h或–human - readable | 以K,M,G为单位,提高信息的可读性。 |
-H或–si 与 - h | 参数相同,但是K,M,G是以1000为换算单位。 |
-l或–count - links | 重复计算硬件链接的文件。 |
-k或–kilobytes | 以KB(1024bytes)为单位输出。 |
-L<符号链接>或–dereference<符号链接> | 显示选项中所指定符号链接的源文件大小。 |
-m或–megabytes | 以MB为单位输出。 |
-s或–summarize | 仅显示总计,只列出最后加总的值。 |
-S或–separate - dirs | 显示个别目录的大小时,并不含其子目录的大小。 |
-x或–one - file - xystem | 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 |
-X<文件>或–exclude - from = <文件> | 在<文件>指定目录或文件。 |
运行截图
注意:
最左边的列显示的是每一个目录的大小,最后的196是当前目录的大小。
(2)df
df命令是用来查看Linux服务器的文件系统的磁盘占用情况(du是查看目录)可以用此命令来获取硬盘被占用了多少空间,目前还剩下多少空间。
格式
- df [选项] [文件]
功能
显示目前在Linux系统上的文件系统的磁盘使用情况统计。默认情况下将以1KB为单位进行显示。
选项
选项 | 含义 |
---|---|
-a | 全部文件系统列表 |
-h | 方便阅读方式显示 |
-H | 等于“ - h”,但是计算式,1K = 1000,而不是1K = 1024 |
-i | 显示inode信息 |
-k | 区块为1024字节 |
-l | 只显示本地文件系统 |
-m | 区块为1048576字节 |
–no - sync | 忽略 sync 命令 |
-P | 输出格式为POSIX |
–sync | 在取得磁盘信息前,先执行sync命令 |
-T | 文件系统类型 |
–block - size = <区块大小> | 指定区块大小 |
-t<文件系统类型> | 只显示选定文件系统的磁盘信息 |
-x<文件系统类型> | 不显示选定文件系统的磁盘信息 |
–help 显示帮助信息 | |
–version 显示版本信息 |
运行截图
注意
第一列是指定文件系统的名称,第二列给出分区包含的数据块(1024字节)的数目;第三、四列分别表示已用的和可用的数据块数目(第三列第四列块数之和不等于第二列的数值)。
(3)top
top命令是Linux系常用的性能分析工具,能够显示系统中各个进程资源占用的情况(类似于windows中任务管理器),这是必须要掌握的命令
格式
- top [参数]
功能
显示系统中各个进程资源占用的情况等信息。
选项
选项 | 含义 |
---|---|
-b | 批处理 |
-c | 显示完整的治命令 |
-I | 忽略失效过程 |
-s | 保密模式 |
-S | 累积模式 |
-i<时间> | 设置间隔时间 |
-u<用户名> | 指定用户名 |
-p<进程号> | 指定进程 |
-n<次数> | 循环显示的次数 |
运行截图
注意
我们观察到其中的数据有的会变,因为是实时显示的内容,所以当然会变。
内容分析
第一行:
23:14:36 up 1 day, 10:44, 2 users, load average: 0.00, 0.00, 0.00
- 23:14:36 :系统当前时间
- 1 day, 10:44:系统开机到现在经过了多少时间
- load average: 0.00, 0.00, 0.00:系统1分钟、5分钟、15分钟4. 的CPU负载信息
第二行:
Tasks: 139 total, 1 running, 138 sleeping, 0 stopped, 0 zombie
- Tasks:任务;
- 139 total:很好理解,就是当前有139个任务,也就是139个进程。
- 1 running:1个进程正在运行
- 138 sleeping:138个进程睡眠
- 0 stopped:停止的进程数
- 0 zombie:僵死的进程数
第三行:
Cpu(s): 1.0%us, 0.3%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
- Cpu(s):表示这一行显示CPU总体信息
- 1.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。
- 0.3%sy:内核占用CPU时间百分比
- 0.0%ni:改变过优先级的进程占用CPU的百分比
- 98.7%id:空闲CPU时间百分比
- 0.0%wa:等待I/O的CPU时间百分比
- 0.0%hi:CPU硬中断时间百分比
- 0.0%si:CPU软中断时间百分比
注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;
第四行:
Mem: 1030528k total, 833804k used, 196724k free, 120792k buffers
- Men:内存的意思
- 1030528k total:物理内存总量
- 833804k used:使用的物理内存量
- 196724k free:空闲的物理内存量
- 120792k buffers:用作内核缓存的物理内存量
第五行:
Swap: 2064376k total, 0k used, 2064376k free, 519520k cached
- Swap:交换空间
- 2064376k total:交换区总量
- 0k used:使用的交换区量
- 2064376k free:空闲的交换区量
- 519520k cached:缓冲交换区总量
进程信息:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID:进程的ID
- USER:进程所有者
- PR:进程的优先级别,越小越优先被执行
- NInice:值
- VIRT:进程占用的虚拟内存
- RES:进程占用的物理内存
- SHR:进程使用的共享内存
- S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
- %CPU:进程占用CPU的使用率
- %MEM:进程使用的物理内存和总内存的百分比
- TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
- COMMAND:进程启动命令名称
常用top操作命令
q:退出top命令
:立即刷新
s:设置刷新时间间隔
c:显示命令完全模式
t::显示或隐藏进程和CPU状态信息
m:显示或隐藏内存状态信息
l:显示或隐藏uptime信息
f:增加或减少进程显示标志
S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
u:指定显示用户进程
r:修改进程renice值
kkill:进程
i:只显示正在运行的进程
W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。
h:帮助命令。
q:退出
(4)free
格式
- free [选项]
功能
- free命令显示系统使用和空闲的内存情况
选项
选项 | 含义 |
---|---|
-b | 以Byte为单位显示内存使用情况。 |
-k | 以KB为单位显示内存使用情况。 |
-m | 以MB为单位显示内存使用情况。 |
-g | 以GB为单位显示内存使用情况。 |
-o | 不显示缓冲区调节列。 |
-s<间隔秒数> | 持续观察内存使用状况。 |
-t | 显示内存总和列。 |
-V | 显示版本信息。 |
运行截图
说明
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
从应用程序的角度来说:
可用内存=系统free memory+buffers+cached。
如本机情况的可用内存为:
836892=196188KB + 121112KB + 519592KB
(5)pstack
格式
- pstack pid
功能
-pstack命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。
选项
此命令只有一个参数就是pid
应用
(1)使用pstack确定进程挂起的位置。
(2)比如,同一程序的两个不同版本在运行时CPU的使用情况有明显的不同,则可分别收集它们的统计信息,再作比较(如从#0入手),从中找出两者函数调用情况的不同之处等。
(6)su
格式
- su
功能
- su是切换用户权限的命名,当我们从普通用户切换至超级用户时使用该命令
运行截图
- 如上图,我们发现当输入su时,会出现”Password:“
这时表示需要我们输入密码,密码是不显示出来的,所以当我们输入回车按键,就可看到用户由admin切换至root用户。
当我们需要退出超级用户时,采用ctrl+d命令推出超级用户。
(7)sudo(sudo -, sudo -s)
格式
- sudo [选项] [参数]
功能
- sudo命令用来以其他身份来执行命令,预设的身份为root,用户使用sudo时,必须要先输入密码,然后有五分钟有效期,超过期限必须重新输入密码
选项
选项 | 含义 |
---|---|
-b | 在后台执行指令 |
-h | 显示帮助 |
-H | 将HOME环境变量设为新身份的HOME环境变量 |
-k | 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码 |
-l | 列出目前用户可执行与无法执行的指令 |
-p | 改变询问密码的提示符号 |
-s | 执行指定的shell |
-u<用户> | 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份 |
-v | 延长密码有效期限5分钟 |
-V | 显示版本信息 |
关于sudo命令更多的请看http://man.linuxde.net/sudo
(8)useradd
格式
- useradd [选项] [参数]
功能
- 用于在Linux中创建新的系统用户,useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
选项
选项 | 含义 |
---|---|
-c<备注> | 加上备注文字。备注文字会保存在passwd的备注栏位中 |
-d<登入目录> | 指定用户登入时的启始目录 |
-D | 变更预设值 |
-e<有效期限> | 指定帐号的有效期限 |
-f<缓冲天数> | 指定在密码过期后多少天即关闭该帐号 |
-g<群组> | 指定用户所属的群组 |
-G<群组> | 指定用户所属的附加群组 |
-m | 自动建立用户的登入目录 |
-M | 不要自动建立用户的登入目录 |
-n | 取消建立以用户名称为名的群组 |
-r | 建立系统帐号 |
-s | 指定用户登入后所使用的shell |
-u | 指定用户id |
注意:
后面的参数是要创建的用户名
(9)password
格式
- password [选项] [参数]
功能
- 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
选项
选项 | 含义 |
---|---|
-d | 删除密码,仅有系统管理者才能使用 |
-f | 强制执行 |
-k | 设置只有在密码过期失效后,方能更新 |
-l | 锁住密码 |
-s | 列出密码的相关信息,仅有系统管理者才能使用 |
-u | 解开已上锁的帐号 |