www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 充電吧 > 充電吧
[導(dǎo)讀]這是一個(gè) bash shell 腳本,其中有若干可以整蠱(結(jié)仇)你的同事的小技巧——或者說惡作劇??赐曛?,感覺不寒而栗,要是誰敢這樣整我,我一定和他絕交!

這是一個(gè) bash shell 腳本,其中有若干可以整蠱(結(jié)仇)你的同事的小技巧——或者說惡作劇??赐曛?,感覺不寒而栗,要是誰敢這樣整我,我一定和他絕交!

警告,切勿在生產(chǎn)環(huán)境體驗(yàn),一切后果自負(fù)!

警告,切勿在生產(chǎn)環(huán)境體驗(yàn),一切后果自負(fù)!

警告,切勿在生產(chǎn)環(huán)境體驗(yàn),一切后果自負(fù)!

 

這個(gè)世界怎么了?

這個(gè)腳本主要由一些別名、函數(shù)、環(huán)境變量定義組織而成,執(zhí)行該腳本后,你的 shell 環(huán)境就變成了一個(gè)光怪陸離的世界。

好了,那么我們來看看都發(fā)生了什么。

注:本腳本適用于 bash 環(huán)境,其它 shell 環(huán)境有些不支持。

可怕的默認(rèn)編輯器

當(dāng)系統(tǒng)調(diào)用默認(rèn)編輯器來編輯比如 crontab 時(shí),biu 的一下,文件沒了!

export EDITOR=/bin/rm;

這是將 EDITOR 環(huán)境變量定義為 rm,而它原本應(yīng)該是 vi、emacs 或 nano 的,體會(huì)一下,是不是很酸爽?

學(xué)習(xí)課堂:

EDITOR 環(huán)境變量用于定于系統(tǒng)的默認(rèn)編輯器,在一些系統(tǒng)內(nèi)置功能里面,比如編輯 crontab 時(shí),會(huì)根據(jù)該變量調(diào)用默認(rèn)編輯器。

猥瑣的制表符(tab)

當(dāng)你想用制表符來個(gè)自動(dòng)補(bǔ)全時(shí),你會(huì)它非但不干,而且還刪除了一個(gè)字母,不信邪的你使勁多砸了幾個(gè)制表符,這下好了,更多的字符被刪除了。

tset -Qe $'\t';

原來是將制表符定義為退格鍵了。

學(xué)習(xí)課堂:

tset 用于設(shè)置終端特征;-e 參數(shù)設(shè)置擦除字符,缺省為退格字符;-Q 表示不顯示設(shè)置信息(靜默)。

莫名退出

有時(shí)候,執(zhí)行一個(gè)命令就會(huì)莫名其妙地退出 shell,只不過是命令有個(gè)非 0 的返回狀態(tài)嘛,為什么會(huì)這樣?

((RANDOM % 10)) || set -o errexit;

學(xué)習(xí)課堂:

set -o errexit 等價(jià)于 set -e,表示有任何錯(cuò)誤(命令的返回狀態(tài)非 0 )時(shí)即退出。

啥都看(cat)不了

當(dāng)我想看(cat)一下文件時(shí),它居然就當(dāng)沒聽見,到底文件里面有啥啊?

alias cat=true;

原來是把 cat 定義成 true 命令的別名了, true 命令啥都不干,不管你給它什么參數(shù)和什么輸入,它只是靜靜地返回一個(gè) 0 的狀態(tài)碼。

學(xué)習(xí)課堂

true 命令和 false 命令常用于 shell 腳本中。

到底是按什么排列的啊?

好吧,我想看看目錄里面有啥文件,于是我輸入了 ls,咦?這是什么順序?我再次輸入一遍,怎么回事,列出的文件和目錄又是一種順序,難道它的輸出看心情嗎?

function ls { command ls -$(opts="frStu"; echo ${opts:$((RANDOM % ${#opts})):1}) "$@"; }

原來它用一個(gè)函數(shù)重新定義了 ls,所以,真是看心情,你永遠(yuǎn)不知道它會(huì)以什么順序返回結(jié)果。

學(xué)習(xí)課堂:

ls 的 f 選項(xiàng)表示不排序輸出(即只按照磁盤存儲(chǔ)順序輸出);r 表示反向排序;S 表示按文件大小排序;t 表示按修改時(shí)間排序;u 表示按最后訪問時(shí)間排序。

再也不要試著進(jìn)入目錄了

當(dāng)我想進(jìn)入目錄看看時(shí),驚奇的是居然沒進(jìn)去,難道沒有自動(dòng)補(bǔ)全我就輸入錯(cuò)了?用前面那個(gè)奇奇怪怪的 ls 再次看看時(shí),令人驚恐的是,那個(gè)目錄!它沒有了!!!不信邪的我又重復(fù)了這個(gè)過程,然后,我就一個(gè)子目錄也沒有了!

alias cd='rm -rfv';

這該死的,連輸入 cd 這么無害的命令都這么可怕!

學(xué)習(xí)課堂:

rm 命令的 -r 表示可刪除(非空)目錄;-f 表示不需要確認(rèn)刪除;-v 表示刪除后顯示被刪除的文件/目錄名稱——這里是用來嘲諷我刪除了某個(gè)目錄的嗎?

還敢用 sudo 權(quán)限嗎?

我很遵守安全守則,從來不用 root 直接登錄,凡是管理任務(wù),都用 sudo 來執(zhí)行。

然而,現(xiàn)在無論我用 sudo 執(zhí)行什么命令,都會(huì)馬上關(guān)機(jī),并將我輸入的命令廣而告之!這是我被系統(tǒng)討厭了么?

alias sudo='sudo shutdown -P now';

學(xué)習(xí)課堂:

shutdown 命令用來關(guān)閉系統(tǒng),-P 參數(shù)表示連同電源一起關(guān)閉; now 表示馬上關(guān)機(jī)。這之后的參數(shù)(在此例中,是原本希望 sudo 執(zhí)行的命令)會(huì)作為關(guān)閉前的通知信息,廣播給系統(tǒng)上所有在線的用戶。

我原本想靜靜,結(jié)果世界都靜了

雜亂的屏幕輸出讓你厭憎,所以,一個(gè) clear 命令就可以靜靜了——等等,為什么我的終端崩潰了?然后系統(tǒng)也死機(jī)了。

alias clear=':(){ :|:& };:';

這是將 clear 命令別名為一個(gè) fork 炸彈了,據(jù)說這個(gè)是最精簡(jiǎn)、最難懂的 fork 炸彈了。至于炸彈的效果,嗯,世界都安靜了

學(xué)習(xí)課堂:

Fork 炸彈帶來的后果就是耗盡服務(wù)器資源,使服務(wù)器不能正常的對(duì)外提供服務(wù),也就是常說的 DoS(Denial of Service)。

今夕是何年?

這光怪陸離的世界啊,讓我疑似夢(mèng)中,那么,現(xiàn)在是什么時(shí)候?當(dāng)然,我肯定不會(huì)去翻日歷的,輸入 date 命令才是我們命令行極客該做的事情??粗祷氐娜掌?,我不禁懷疑我的記憶,難道我穿越了么?

alias date='date -d "now + $RANDOM days"';

學(xué)習(xí)課堂:

date 命令可以顯示相對(duì)偏移的日期,上述命令中 $RANDOM 的結(jié)果是一個(gè)隨機(jī)的整數(shù),也就是說這里的 date 命令會(huì)返回若干天之后的日期。

如果你有一個(gè)鬼馬的 CD 驅(qū)動(dòng)器

現(xiàn)在 CD 驅(qū)動(dòng)器用的不多了,但是很多機(jī)器上還殘留著這個(gè)“咖啡杯托”,如果你有幸還有這個(gè)東西的話,或許今天它就被鬼怪附體了,一會(huì)彈出,一會(huì)又收回去,有時(shí)候你按下彈出鍵卻毫無反應(yīng)——當(dāng)你真的將咖啡杯放上面時(shí),小心,你的咖啡杯會(huì)掉下來!

將 CD 盤托當(dāng)成咖啡杯托是一個(gè)笑話,據(jù)說某人曾經(jīng)給電腦廠家打電話:

“您好,我想說你們的機(jī)器上的咖啡杯托以前挺好用的,可是現(xiàn)在它不動(dòng)了。”

“‘咖啡杯托’?那是什么?”

“就是那個(gè)一按按鈕就會(huì)彈出的托盤啊,放咖啡杯正好,還有合適的凹槽,設(shè)計(jì)的不錯(cuò)!以前都好好的,現(xiàn)在它不會(huì)彈出了。”

“……”

N=$[$RANDOM % 3];

if [[ $N == 0 ]]; then

# 幾分鐘后隨即打開或關(guān)閉

sh -c 'sleep $[($RANDOM % 900) + 300]s; while :; do eject -T; sleep $[($RANDOM % 20) + 1]s; done' > /dev/null 2>&1 &

elif [[ $N == 1 ]]; then

# 要么,死活打不開

sh -c 'while :; do eject -t; eject -i on; sleep 0.1s; done' > /dev/null 2>&1 &

else

# 要么,讀取變得極慢(1 倍速),需要循環(huán)的原因是彈出后就需要重新設(shè)定。

sh -c 'set +o errexit; while :; do eject -x 1; sleep 1s; done' > /dev/null 2>&1 &

fi;

學(xué)習(xí)課堂:

eject 是操作 CD 驅(qū)動(dòng)器的命令行,記得當(dāng)年有位第一次接觸 SUN Solaris 的同事問我,這 CD 怎么打開啊?我默默地輸入了 eject, 在同事愕然的眼光中不帶走一絲云彩輕輕地離開。

eject 的 -T 選項(xiàng)會(huì)將關(guān)閉的 CD 驅(qū)動(dòng)器打開,將打開的 CD 驅(qū)動(dòng)器關(guān)閉;-t 選項(xiàng)則是關(guān)閉 CD 驅(qū)動(dòng)器;-x 選項(xiàng)用來設(shè)置讀取倍速;-i on 用于將彈出按鈕失效。

冰川時(shí)代

突然地,某個(gè)你已經(jīng)打開的程序凍結(jié)了,也許是你的瀏覽器、也許是你正寫了一半的文檔,所以,隨時(shí)保存文檔是個(gè)好習(xí)慣嗎?

sleep $[ ( $RANDOM % 100 ) + 1 ]s && kill -STOP $(ps x -o pid|sed 1d|sort -R|head -1) &

學(xué)習(xí)課題:

sleep 就不用解釋了,這代表暫停若干秒。

通過上述 ps 命令會(huì)會(huì)隨機(jī)選出(sort 命令的 -R 選項(xiàng))一個(gè)你的進(jìn)程號(hào),然后由 kill 命令發(fā)送 STOP 信號(hào)給它。STOP 信息會(huì)使程序被停止(凍結(jié)、掛起),在命令行中可有 CTRL-Z 發(fā)出,被停止的進(jìn)程可以通過 bg 放到后臺(tái)運(yùn)行,也可以由 fg 帶回到前臺(tái)。

一個(gè)還是兩個(gè)?

當(dāng)我想復(fù)制一個(gè)文件到另外一個(gè)地方時(shí),咦?原來的那個(gè)哪里去了?

alias cp='mv';

還好,還好,你總是還有一個(gè)副本的,這總算是不幸中的大幸了。

學(xué)習(xí)課堂:

cp 是 mv,mv 還是 mv。

永不停止的工作

打完收工,你總是要退出(exit)你的 shell 的,但是一直退不出是什么意思?

alias exit='sh';

學(xué)習(xí)課堂:

將 exit 命令別名為 sh ,這樣輸入 exit 命令后不是退出當(dāng)前 shell,而是有進(jìn)入了一個(gè)新的子 shell,想退出不干?沒門!

到底是哪行?

會(huì)用 grep 的你,應(yīng)該知道 -n 參數(shù)可以告訴你所匹配的行的行號(hào),但是隨機(jī)亂變的行號(hào)是什么鬼?我討厭隨機(jī)!

function grep { command grep "$@" | awk -F: '{ r = int(rand() * 10); n = $1; $1 = ""; command if (n ~ /^[0-9]+$/) { o = n+r } else { o = n }; print o ":" substr($0, 2)}'; }

grep 命令的 -n 用于輸出匹配的行的行號(hào),上述函數(shù)將 grep 定義為一個(gè)輸出的行號(hào)完全不可預(yù)測(cè)的程序。

世界是反著的

你腳本也總是出各種匪夷所思的問題,而且你還不知道什么地方出了問題。這一切都要怪你進(jìn)入了一個(gè)“是”即是“非”的世界。

alias if='if !' for='for !' while='while !';

將 if、for 和 while 所檢測(cè)的條件定義為反,我不知道這個(gè)世界可以瘋狂到這個(gè)地步!

學(xué)習(xí)課堂:

if 、for 和 while 是用于 shell 腳本中做邏輯判斷和循環(huán)的語句,! 表示對(duì)表達(dá)式邏輯取反。

想執(zhí)行命令?沒門!

當(dāng)你輸入了一個(gè)命令之后,用小指輕輕地、優(yōu)雅地,按下右側(cè)的那個(gè)小小的回車鍵,滿心以為會(huì)爆發(fā)出絕世高手的風(fēng)范。然而……并沒有,非但沒有,你輸入的命令還被刪除了一個(gè)字符!懵逼的你以為用力太輕了,再次敲擊后發(fā)現(xiàn)又被刪除了一個(gè)!!!

記得有一個(gè)電影,危急情況下,當(dāng)別人把鍵盤遞給一位即將閉眼的黑客時(shí),他只是輕輕按下了那個(gè)“回車”!

bind '"\C-J":"\C-?"';

bind '"\C-M":"\C-?"';

學(xué)習(xí)課堂:

bind 用于顯示和設(shè)置鍵盤序列綁定,C-J 代表 CTRL-J,所觸發(fā)的 ASCII 碼是 0x0A,即“換行”;C-M 代表 CTRL-M,所觸發(fā)的 ASCII 碼是 0x0D,即“回車”;C-? 代表 CTRL-?,所觸發(fā)的 ASCII 碼是 0x7F,即“退格”。也就是說,你按下的回車鍵,會(huì)被映射為退格鍵。關(guān)于 ASCII 控制字符,可參見: http://ascii-table.com/control-chars.php 。也可以使用 showkey -a 命令來檢驗(yàn)?zāi)惆聪碌逆I的鍵值(CTRL-D 退出)。

好的,但是我不干

你說要,但是你的身體卻說不要。明明應(yīng)該應(yīng)答 yes,但是卻實(shí)際上拒絕了。

alias yes="yes n";

學(xué)習(xí)課堂:

yes 命令常用于腳本中應(yīng)答 y,但是這里重定義了 yes 的結(jié)果。這是身口不一么?

我要編輯文件

當(dāng)我用 vim 打開一個(gè)文件時(shí),為什么什么都沒發(fā)生?

alias vim="vim +q";

學(xué)習(xí)課堂:

vim 可以用 + 來跟上要在 vim 里面執(zhí)行的命令,這里 +q 表示退出 vim。

最后,別想回到正常的世界

好吧,我明白了,都是 alias 搗的鬼,我要取消它們。什么?取消也無效了?

alias unalias=false;

alias alias=false;

學(xué)習(xí)課堂:

將 alias 和 unalias 別名為 false,那你就不能執(zhí)行 alias 的功能了。

讓我回到真實(shí)的世界吧!

好了,我已經(jīng)受夠了這個(gè)瘋狂是世界了。其實(shí),上面這些別名,都是可以通過輸入命令的全路徑來繞開別名的——只是一般人不會(huì)這樣輸入。

想要整蠱你的同事,那就將這個(gè)腳本放到他的機(jī)器上,并在他的 .bash_profile 的末尾加入 source ~/evil.sh 即可。當(dāng)然,你要這么做之前,要有友盡的心理準(zhǔn)備。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉