十个鲜为人知的 Linux 命令 - Part 4
创始人
2024-03-01 11:58:29
0

继续我们的"鲜为人知"系列,本系列的第四篇会让你了解一些有趣动态的命令。这里我们进入实际的教程,没有很多理论。

本系列的第四篇包含了另外的鲜为人知的Linux命令,这些值得去了解。也许你已经知道了这些命令,毫无疑问你是一个勇于探索的资深Linux用户。

32. strace Command

strace是一个调试工具并被主要用于Linux的故障排除。它可能在你的系统内没有默认安装,你可能需要apt 或者 yum 安装所需要的包。

使用strace命令追踪一个命令的执行。

root@tecmint [~]# strace pwd

示例输出

execve("/bin/pwd", ["pwd"], [/* 29 vars */]) = 0
brk(0)                                  = 0x728000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0df2000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=38427, ...}) = 0
mmap(NULL, 38427, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f29b0de8000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\355\1I;\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1922152, ...}) = 0
mmap(0x3b49000000, 3745960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3b49000000
mprotect(0x3b4918a000, 2093056, PROT_NONE) = 0
mmap(0x3b49389000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x3b49389000
mmap(0x3b4938e000, 18600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3b4938e000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de7000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29b0de5000
....

strace命令有大量的参数和选项,请参考man页来获取详细信息。

33. disown -a && exit 命令

大多数系统管理员使用screen 命令来控制运行在终端后台的作业。让我们假设一下如果你有一个长期运行的作业并想要将它从终端中脱离,你可以用screen命令来这么做。但是如果你不知道如何使用screen,那么disown可以用来救急。

disown命令可以在后台持续运行任务,即使你关闭了终端会话。disown命令的语法是:

root@tecmint [~]# Command; disown -a && exit

为了在终端中再次脱离一个已经长期运行的任务(译注:可能已经bg运行了,但是并没有脱离终端),使用jobs命令来找出任务号,接着使用disown %n,这里的**%n是作业号。为了验证作业确实在运行,使用ps** 或者 top 命令nohup命令也是一个disown命令的替代品。

34. getconf LONG_BIT 命令

上面的命令能显示你的机器架构是32 bit 或者 64 位?

root@tecmint [~]# getconf LONG_BIT

32

35. 终端上显示日期

下面的命令是几个命令的集合,确切地说是一个脚本。对于在shell或者终端下工作的人来说,没有GUI界面看到当前系统日期是一个乏味的工作。你可以用‘date‘命令查看今天的日期。

只要在提示符后输入如下的命令你就会在终端的右上角看到日期时间

root@tecmint [~]# while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &

在终端下显示日期

36. convert 命令

在写教程的时候,我经常需要生成输出,很多时候是图片格式的输出。上面的命令集合并不适合我。假设我需要tree命令的图片格式的输出(对 /etc/x11 目录 )。

root@tecmint:/etc/X11# tree | convert label:@- /home/avi/tree.png

上面命令的输出可以在一个特定的位置(这里是我的主目录)下看到,文件名是tree.png

37. watch -t -n1 “date +%T|figlet”

记住“figlet”命令在我们早期的文章“20 Funny Commands of Linux”中的描述。这个命令非常酷,这次我们会通过管道输出到‘figlet‘而在终端上显示一个动画电子钟。

你自己检查一下,记住你必须已经在系统上安装了figlet,用apt 或者 yum安装所需要的包。

root@tecmint [~]# watch -t -n1 "date +%T|figlet"

示例输出

 _  ___    ____   ___    _____ _  _                                                                                             Fri Nov 29 10:29:34 GMT 
/ |/ _ \ _|___ \ / _ \ _|___ /| || |
| | | | (_) __) | (_) (_) |_ \| || |_
| | |_| |_ / __/ \__, |_ ___) |__   _|
|_|\___/(_)_____|  /_/(_)____/   |_|

38. host 和 dig 命令

虽然“host” 和 “dig”命令不那么鲜为人知,仍然很少使用。host命令是一个DNS查询工具。

root@tecmint [~]# host www.google.com

www.google.com has address 173.194.66.147
www.google.com has address 173.194.66.105
www.google.com has address 173.194.66.99
www.google.com has address 173.194.66.104
www.google.com has address 173.194.66.106
www.google.com has address 173.194.66.103
www.google.com has IPv6 address 2a00:1450:400c:c03::68

(译注:事实上,我觉得dig命令是最强大的,自从有了dig,我就再也不用 nslookup 了。)

root@tecmint [~]# dig www.google.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<

39. dstat 命令

dstat是一个多用途的工具,它会依据系统资源生成统计。默认情况下你的系统可能没有安装‘dstat‘。在使用这个彩色的描述系统信息的生成器前使用apt 或者 yum来安装。

root@tecmint [~]# dstat

dstat 命令

40. bind -p 命令

bind -p‘会显示所有的BASH shell可用的快捷方式。

root@tecmint [~]# bind -p

"\C-g": abort 
"\C-x\C-g": abort 
"\e\C-g": abort 
"\C-j": accept-line
"\C-m": accept-line 
# alias-expand-line (not bound) 
# arrow-key-prefix (not bound) 
# backward-byte (not bound) 
"\C-b": backward-char 
"\eOD": backward-char 
"\e[D": backward-char 
"\e!": complete-command 
"\e/": complete-filename 
"\e@": complete-hostname 
"\e{": complete-into-braces 
"\e~": complete-username 
"\e$": complete-variable 
# copy-backward-word (not bound)
# copy-forward-word (not bound) 
# copy-region-as-kill (not bound)
....
....

41. touch /forcefsck

下面的命令会在root目录下创建一个空的文件夹’forcefsck’。这会强制Linux系统在下次启动时检查文件系统。

root@tecmint [~]# touch /forcefsck

今天这些就是全部。因为你们爱‘鲜为人知的命令‘ ,因此我们将继续这个系列,本系列的下一篇文章将很快发布。

不要走开继续关注Tecmint。不要忘记在评论栏里留下你们有价值的反馈。帮我们一个忙,喜爱、分享我们的文章,并帮我们传播。


via: http://www.tecmint.com/10-lesser-known-effective-linux-commands-part-iv/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

支招航天实时Linux厂家...
在航空航天领域,底层操作系统是测控系统、星载设备、机载控制等核心装...
2026-04-10 22:20:21
Linux系统车载平板:打...
随着汽车智能化和车联网的发展,车载平板不再只是简单的显示和导航工具...
2026-04-09 15:11:12
华为「融合开发引擎」上线鸿...
IT之家 4 月 1 日消息,由华为终端开发的「融合开发引擎」目前...
2026-04-02 19:22:22
一个月突变!Linux内核...
最近在做开源项目维护的开发者,可能会有一种奇怪的错觉:Bug 似乎...
2026-04-02 08:03:55
飞书 CLI 开源:AI ...
钛媒体App 3月28日消息,飞书官方在 GitHub 开源了命令...
2026-03-28 19:53:17
刚刚,飞书CLI开源,Cl...
大周末的,起床第一件事,就看到,飞书开源CLI了。。。 这个事情...
2026-03-28 18:55:55

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
在抛弃 Xorg 之前,请三思... LCTT 译注:之前翻译发布的《Wayland 真的毁掉一切了吗?》引来了很多讨论,为了使讨论更全面...
Wine 9.0 发布,实验性... Wine 的这个新版本正在为未来做好准备!Wine 是一款广受欢迎的开源兼容性层,可以轻松地 在 L...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...