第 8 章。查找系统信息

目录
8.1. 日期/时间/日历
8.2. 查找分区信息

time

如果您正在查找如何更改时间,请参考这里的 date 命令:第 8.1 节

time 是一个用于测量程序执行时间的实用工具。它还可以测量 CPU 使用率并显示统计信息。

使用 time -v(详细模式)可以显示有关特定程序的更详细的统计信息。

用法示例

time program_name options
/proc

/proc(进程信息伪文件系统)下的文件显示有关系统的各种信息。可以将其视为内核所用信息的窗口。

例如

cat /proc/cpuinfo

显示有关 CPU 的信息。

less /proc/modules 

使用上述命令查看有关系统上加载了哪些内核模块的信息。

dmesg

dmesg 可用于打印(或控制)“内核环缓冲区”。dmesg 通常用于打印内核显示的启动消息内容。这在调试问题时通常很有用。

只需输入

dmesg
df

显示有关已挂载文件系统空间的信息。使用 -h 选项使 df 以“人类可读”格式列出空间。例如,如果还剩 1024 千字节(大约),则 df 将显示还剩 1MB。

命令语法

df -options /dev/hdx

后一部分是可选的,您可以简单地使用带或不带选项的 df 来列出所有文件系统上的空间。

who

显示有关哪些用户已登录系统的信息,包括他们的登录时间。

命令语法

who
w

显示有关谁已登录系统以及他们在做什么的信息(即他们正在运行的进程)。它类似于 who,但显示的信息略有不同。

命令语法

w
users

who 非常相似,但它仅打印当前已登录的用户名。(不需要或接受任何选项)。

命令语法

users 
last

显示有关各个用户何时登录或注销的记录。这包括有关计算机何时重启的信息。

要执行此操作,只需输入

last
lastlog

显示用户列表以及他们登录系统的日期/时间。

只需输入

lastlog
whoami

告诉用户他们当前以哪个用户身份登录,这通常是他们登录时使用的用户名,但可以使用诸如 su 之类的命令更改)。whoami 不需要或接受任何选项。

只需输入

whoami
free

显示内存统计信息(总计、空闲、已用、缓存、交换)。使用 -t 选项显示所有内容的总计,使用 -m 以兆字节为单位显示内存。

示例

free -tm

这将显示内存使用情况,包括以兆字节为单位的总计。

uptime

打印计算机已“启动”多长时间,即计算机已运行多长时间。它还显示用户数量和处理器负载(CPU 的工作强度...)。

Tipw 命令
 

当您运行此命令时,w 命令会显示 uptime 命令的输出。您可以将 w 命令用作 uptime 的替代。

uname

uname 用于打印有关系统的信息,例如操作系统类型、内核版本等。

一些 uname 选项

  • -a --- 打印所有可用的信息。

  • -m --- 仅打印与计算机本身相关的信息。

  • -n --- 仅打印计算机主机名。

  • -r --- 打印当前内核的版本号。

  • -s --- 打印操作系统名称

  • -p --- 打印处理器类型。

命令语法

uname -options
xargs

请注意,xargs 是一个高级、令人困惑但功能强大的命令。xargs 是一个用于根据需要多次运行其他命令的命令,这样可以防止任何类型的过载... 当您运行一个命令然后添加 “| xargs 命令2” 时。command1 的结果将传递给 command2,可能是逐行传递或类似方式。

理解 xargs 往往非常困难,我的解释也不是最好的。请参考下面的示例或尝试 参考书目 中的 [6] 以获取另一个 xargs 教程。

Note使用 xargs 的替代方案
 

请注意,以下对 xargs 的解释不是最强的(在撰写本文时,我找不到更好的 :())。

替代方案可能包括编写一个简单的 bash 脚本来完成这项工作,这并非世界上最困难的任务。

示例

ls | xargs grep work

第一个命令很明显,它将列出当前目录中的文件。对于 ls 的每一行输出,xargs 将在该特定行上运行 grep 并查找字符串“work”。每次在新行上执行 grep 时,输出将如下所示

file_name: results_of_grep 

如果 grep 没有找到该单词,则不会有输出;如果它有错误,则会输出错误。显然,这不是很实用(您可以直接执行

grep 'word' *

这是一个简单的示例...

xargs 也接受各种选项

  • -nx --- 将前 x 个命令分组在一起

  • -lx --- xargs 将为每 x 行输入执行命令

  • -p --- 提示是否执行此特定字符串

  • -t --- (告知)详细模式,在执行每个命令之前回显它

  • -i --- 将使用类似于 find 的 -exec 选项的替换,它将在某些内容上执行某些命令。

示例

ls dir1 | xargs -i mv dir1/'{}' dir2/'{}'

{} 将被替换为当前输入(在本例中为目录中列出的当前文件/目录)。上面的命令会将 dir1 中列出的每个文件移动到 dir2。显然,此命令不是很有用,更简单的方法是转到 dir1 并键入 mv * ../dir2

这是一个更有用的示例

\ls *.wav | xargs -i lame -h '{}' '{}'.mp3

这将查找当前目录中的所有 wave 文件,并将它们转换为 mp3 文件(使用 lame 编码)并在文件名的末尾附加“.mp3”,不幸的是,它不会删除 .wav,因此它不是很有用……但它可以工作。