那些嚇人的 Linux 命令
哪些Linux命令會讓人聯(lián)想到妖魔鬼怪?不妨好好瞧一瞧!
是時候稍微關注一下Linux那嚇人的一面了。哪些Linux命令會讓人聯(lián)想到鬼、巫婆和僵尸?哪些命令又會助長惡作劇精神?
crypt
好吧,我們一直都有crypt。顧名思義,crypt不是存放垃圾文件的地宮或墓坑,而是加密文件內容的命令。如今,“crypt”通常作為一個腳本而實現(xiàn):通過調用一個名為mcrypt的二進制程序,模擬較舊的crypt命令,從而發(fā)揮其功用。直接使用mycrypt命令是一種更好的選擇。
- $ mcrypt x
- Enter the passphrase (maximum of 512 characters)
- Please use a combination of upper and lower case letters and numbers.
- Enter passphrase:
- Enter passphrase:
- File x was encrypted.
請注意:mcrypt命令會創(chuàng)建第二個文件,其擴展名是“.nc”。它并不覆蓋你在加密的文件。
mcrypt命令有密鑰大小和加密算法方面的選項。你還可以指定密鑰作為一個選項,不過mcrypt命令不鼓勵這么做。
kill
還有kill命令——當然這并不是指謀殺,而是指我們用來終止進程的命令,終止的方式有多強硬取決于需要什么來適當?shù)亟K止它們。當然,Linux并不就此止步。相反,它有各種各樣的kill命令來用于你的命令行。我們有kill、pkill、killall、killpg、rfkill、skill(參閱es-kill)、tgkill、tkill和xkill。
- $ killall runme
- [1] Terminated ./runme
- [2] Terminated ./runme
- [3]- Terminated ./runme
- [4]+ Terminated ./runme
shred
Linux系統(tǒng)還支持一種名為shred的命令。shred命令覆蓋文件以隱藏以前的內容,并確保無法使用硬盤恢復工具來恢復它們。請記住:rm命令基本上只是刪除目錄文件中的文件引用,但不一定從磁盤上擦除內容或覆蓋內容。shred命令才是覆蓋文件的內容。
- $ shred dupes.txt
- $ more dupes.txt
- ▒oΛ▒▒9▒lm▒▒▒▒▒o▒1־▒▒f▒f▒▒▒i▒▒h^}&▒▒▒{▒▒
zombies
雖然zombies(僵尸進程)不是一個命令,但它在Linux系統(tǒng)上卻根深蒂固。zombies基本上是沒有被完全清除的死亡進程的殘骸。進程不應該以這種方式運行——任由死亡進程逗留,而不是僅僅讓它們死亡、進入數(shù)字天堂,所以zombies的存在表明了留下它們的進程存在某種缺陷。
檢查你的系統(tǒng)是否有僵尸進程殘留下來,一個簡單的方法就是查看top命令的標題行。
- $ top
- top - 18:50:38 up 6 days, 6:36, 2 users, load average: 0.00, 0.00, 0.00
- Tasks: 171 total, 1 running, 167 sleeping, 0 stopped, 3 zombie <==
- %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
- KiB Mem : 2003388 total, 250840 free, 545832 used, 1206716 buff/cache
- KiB Swap: 9765884 total, 9765764 free, 120 used. 1156536 avail Mem
好嚇人!上面顯示有三個僵尸進程。
at midnight
死人的靈魂會從日落一直游蕩到深夜。Linux讓用戶可以借助“at midnight”命令跟蹤是否已離開。at用來安排下一次指定時間到來時就運行的任務,工作方式類似一次性計劃任務(cron)。
- $ at midnight
- warning: commands will be executed using /bin/sh
- at> echo 'the spirits of the dead have left'
- at> <EOT>
- job 3 at Thu Oct 31 00:00:00 2017
daemons
Linux系統(tǒng)還高度依賴守護進程(daemon)——這種進程在后臺運行,提供了系統(tǒng)的許多功能。許多守護進程的名稱以“d”結尾。這個“d”代表“daemon”,它表明該進程一直運行,支持某種重要功
能。另一些守護進程則將“daemon”這個單詞拼出來。
- $ ps -ef | grep sshd
- root 1142 1 0 Oct19 ? 00:00:00 /usr/sbin/sshd -D
- root 25342 1142 0 18:34 ? 00:00:00 sshd: shs [priv]
- $ ps -ef | grep daemon | grep -v grep
- message+ 790 1 0 Oct19 ? 00:00:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
- root 836 1 0 Oct19 ? 00:00:02 /usr/lib/accountsservice/accounts-daemon