[Linux 命令] 酷命令 [迷你使用示例]

介绍
大家好,我
是系统解决方案部门的基础设施工程师 Wasshoi Man。
今天我将介绍一些很棒的 Linux 命令用法和选项!
“酷”是什么意思?这很大程度上取决于个人喜好,但就我个人而言,我想列举一些让你看到后会发出“哇!哇!哇!”惊叹的东西。
举个简单的例子:
$ ps auxwwf | grep httpd | grep -v "grep"
这很酷吧?
就是有点长,对吧?
$ ps auxwwf | grep http[d]
就是这样。
嗖!
不过,个子矮并不等于酷。
*顺便一提,“Ikashita”并不是一个死词。
真正死词包括“Ikeike”和“Batchugu”。
这是一篇介绍我最喜欢的一些命令的文章,希望大家喜欢,并把它当作一种放松的方式。
systemctl enable --now
很棒。
你可以使用 systemctl 同时启动和启用它。
$ systemctl start httpd $ systemctl enable httpd
把这些整合起来
$ systemctl enable --now httpd
这样挺好。
嗖!酥脆可口。
文件备份(带括号扩展)
大括号展开并非命令,而是 Bash 的一项特性,但如果使用得当,也能实现一些很酷的功能。
事实上,它就像一个宝库,蕴藏着无数巧妙的用法,但我这里只介绍其中一种。
# 带日期的副本 $ cp test.txt{,_$(date +%Y%m%d)} # .org 副本 $ cp test.txt{,.org}
这样,如果您输入字符串 A{,字符串 B},则会首先单独输出字符串 A,然后输出展开后的字符串 B。
这有点令人困惑,但
cp test.txt{,_$(date +%Y%m%d)}将
展开cp test.txt test.txt_20230114 (写于 2023 年 1 月 14 日)。
比较命令和结果,研究它们的工作原理,并尝试创建你自己的炫酷括号。
使用 lsof 进行文件恢复
糟糕,我把文件删了……
别放弃,或许还有机会。
rm 命令用于删除指向 inode 的链接。
如果所有指向 inode 的链接尚未消失,也就是说,如果仍有进程打开着该文件,那么还有一线希望。
以下是一个演示。
$ echo "hogehoge" > hoge.txt $ less hoge.txt # 暂停 less 进程 Ctrl + z # 删除 $ rm hoge.txt # 获取进程 ID $ lsof | grep "hoge.txt" less 92 takeda 4r REG 8,16 9 1994 /home/takeda/hoge.txt (已删除) # 使用 cp 命令恢复 $ cp /proc/92/fd/4 ./fuga.txt # 确认 $ cat fuga.txt hogehoge
关键在于从“/proc/{进程 ID}/fd/”中提取它。
在这种情况下,“有效的命令”是什么?
我不知道,
但能摆脱困境总是件好事,对吧?
awk 1
这通常用于合并中间证书。
使用 cat 命令合并证书时,末尾没有换行符。
—–证书开始—– 服务器证书文件内容 —–证书结束—–—–证书开始—– 中间证书文件内容 —–证书结束—–
难道这种情况从未发生过吗?
使用 awk 很容易实现。
以下是一个演示:
$ cat test.pem —–BEGIN CERTIFICATE—– 已颁发服务器证书文件的内容 —–END CERTIFICATE—– $ cat test.ca —–BEGIN CERTIFICATE—– 中间证书文件的内容 —–END CERTIFICATE—– $ awk 1 test.pem test.ca > test.chain $ cat test.chain —–BEGIN CERTIFICATE—– 已颁发服务器证书文件的内容 —–END CERTIFICATE—– —–BEGIN CERTIFICATE—– 中间证书文件的内容 —–END CERTIFICATE—–
这很酷!
awk命令的写法是
awk 'pattern {action}' 如果省略 action 参数,则会显示与模式匹配的记录。
通过这种方式,并传入模式“1 = true”,它会匹配所有行,并逐条(逐行)显示它们,从而使记录整齐地逐行输出。
这与著名的 SQL 注入示例“WHERE id='hoge' or 'A'='A'”中使用的技术相同。传递 true。(类比不当?)
概括
一点
巧妙的命令,明天你就能再次做到最好。
所以,我写下了一些命令使用技巧,希望它们能广为流传。如果
你也有类似的技巧,请私下告诉我。(或者写篇文章分享一下,我会阅读的。)
非常感谢。
12