第 8 章。查找关于系统的信息

目录
日期/时间/日历
查找关于分区的信息

time

如果您正在查找 如何更改 时间,请参考 这里的 date名为日期/时间/日历的章节

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 的工作强度...)。

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

uname

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

一些 uname 选项

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

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

  • -n --- 仅打印机器主机名。

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

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

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

命令语法

uname -options
xargs

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

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

使用 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 --- (tell)详细模式, 在执行 每个命令之前回显它

  • -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,因此不是很有用……但它有效。

日期/时间/日历

有一个命令可以更改 UNIX 类系统上的日期 和时间,即 date。还有一个简单的日历 实用程序 cal。如果您正在查找 更改文件上的时间戳 ,请参阅 第 8 章

date

告诉您日期(和时间),也用于设置 日期/时间。

要设置日期,请键入 date MM:DD:YYYY(美式日期格式),其中 MM 是月份, DD 是月份中的天数,YYYY 是年份。

例如,要将日期设置为 2000 年 1 月 1 日,您需要键入

date 01:01:2000

要设置时间(其中 -s 选项用于设置新 时间),请键入

date -s hh:mm:ss

您可以使用的另一个有用的选项是 --date=“string” (或 -d “string”)选项,用于显示 x 天前或 x 天后 (或 x 周、月、等等)的日期。请参阅以下示例。

示例

date --date="3 months 1 day ago"

将打印从当前日期起 3 个月零 1 天 前的日期。请注意,--date=”x month x day ago”-d “x month x day ago” 是等效的。

date -d "3 days"

上面的命令将打印从现在起 3 天后 的日期。

cal

键入 cal 将在屏幕上显示 当前月份的日历 ,以漂亮的 标准日历 格式显示。有各种选项 可以自定义 日历, 请参考 info/man 页面。

示例

cal -y year

将显示特定年份的日历 ,只需使用 cal -y 即可打印当前年份的日历。

cal 2 2004

这将显示 2004 年 2 月的日历