十个鲜为人知的Linux命令-【4】
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_BIT32
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.comwww.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
今天这些就是全部。
十个鲜为人知的Linux命令-【4】相关推荐
- 十个鲜为人知的Linux命令 - Part 5
在前四篇 "鲜为人知的Linux命令" 系列文章受到高度赞赏之后,我们将为广大读者呈上此系列的最后一篇文章,虽然是最后一篇,但是其重要性毫不逊于前几篇. 前几篇文章的地址如下: 十 ...
- linux命令part,技术|十个鲜为人知的 Linux 命令-Part 3
我们继续"10个鲜为人知Linux命令系列"的第三部分.或许你已经知道了这些命令,那你无疑是一个有经验而喜欢探索的Linux用户. 22. ^foo^bar 命令 在一个实例中运行 ...
- 十个鲜为人知的 Linux 命令 - Part 3
我们继续"10个鲜为人知Linux命令系列"的第三部分.或许你已经知道了这些命令,那你无疑是一个有经验而喜欢探索的Linux用户. 22. ^foo^bar 命令 在一个实例中运行 ...
- 十个鲜为人知的Linux命令-【3】
22. ^foo^bar 命令 在一个实例中运行修改后的最后一个命令.假设我需要运行一个命令'ls -l'来详细列出'Desktop'目录下的内容.意外地,你打了'lls -l'.所以你需要重新打整个 ...
- 10 个鲜为人知的 Linux 命令
Linux命令行吸引了大多数Linux爱好者.一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务.Linux命令和它们的转换对于Linux用户.Shell脚本程序员和管理员来说是最有 ...
- Linux中part指令,10 个鲜为人知的 Linux 命令 - Part 2
继续上篇文章<11 个很有用但鲜有人知的 Linux 命令>.在本文中,我们将关注其他几个不为人知的Linux命令,有些在管理桌面和服务器方面被证明是非常有用的. 12. 命令 你在终端上 ...
- 鲜为人知的Linux命令续
12. <空格> 命令 你在终端上键入的每个命令都会记录到history,也能用history命令重新调用. 如何骗过history 命令呢?呵呵,你可以轻而易举地做到.在终端,只需要在键 ...
- 鲜为人知的Linux命令
Linux命令行吸引了大多数Linux爱好者.一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务.Linux命令和它们的转换对于Linux用户.Shell脚本程序员和管理员来说是最有 ...
- 十个有用的linux命令行技巧
我记得我第一次使用 Linux 的时候,我还习惯于 Windows 的图形界面,我真的很讨厌 Linux 终端.那时候我觉得命令难以记忆,不能正确使用它们.随着时间推移,我意识到了 Linux ...
最新文章
- LeetCode Linked List Cycle II
- bzoj1412[ZJOI2009]狼和羊的故事
- io类游戏快速开发 2
- django中csrftoken跨站请求伪造的几种方式
- java 模板引擎_SpringBoot入门系列(四)如何整合Thymeleaf模板引擎
- 新版XenCenter添加剪贴板共享功能
- 【C/C++】代码换行问题
- Android eMMC 分区详解(转载)
- springboot2.5.5配置druid数据源1.2.8与jdbc
- postman如何发送application/json类的post请求
- 华为鸿蒙战略泄天机,谷歌最强Fuchsia OS进入狗粮测试,华为害怕?鸿蒙战略超乎你想象...
- mysql,jdbc、连接池
- SLAM技术的应用及发展现状
- Starship Troopers(HDU 1011 树形DP)
- 云真机兼容性测试方案
- ccy 朴素版(顺序搜索)19ms
- 电脑连接上WIFI后,如何查看WIFI密码?
- 攀升笔记本电脑P1X Deepin20.3安装 RTL8821CE RTL8152无线网卡驱动
- (2-分类问题)Accuracy,Precision,Sensitivity,Specificity
- 怎么让蜘蛛喜欢你的网站