歡迎光臨
每天分享高質量文章

命令列樂趣:嘲諷輸錯 Bash 命令的用戶 | Linux 中國

你可以通過配置 sudo 命令去嘲諷輸入錯誤密碼的用戶。但是現在,當用戶在 shell 輸錯命令時,就能嘲諷他了(濫用?)。
— Vivek Gite


致謝
編譯自 | https://www.cyberciti.biz/howto/insult-linux-unix-bash-user-when-typing-wrong-command/ 
 作者 | Vivek Gite
 譯者 | ChenYi (cyleft) ? ? ? 共計翻譯:23 篇 貢獻時間:73 天

你可以通過配置 sudo 命令去嘲諷輸入錯誤密碼的用戶。但是現在,當用戶在 shell 輸錯命令時,就能嘲諷他了(濫用?)。

你好 bash-insulter

來自 Github 頁面:

當用戶鍵入錯誤命令,隨機嘲諷。它使用了一個 bash4.x. 版本的全新內置錯誤處理函式,叫 command_not_found_handle

安裝

鍵入下列 git 命令克隆一個倉庫:

  1. git clone https://github.com/hkbakke/bash-insulter.git bash-insulter

示例輸出:

  1. Cloning into 'bash-insulter'...

  2. remote: Counting objects: 52, done.

  3. remote: Compressing objects: 100% (49/49), done.

  4. remote: Total 52 (delta 12), reused 12 (delta 2), pack-reused 0

  5. Unpacking objects: 100% (52/52), done.

用文本編輯器,比如說使用 vi,編輯你的 ~/.bashrc 或者 /etc/bash.bashrc 檔案:

  1. $ vi ~/.bashrc

在其後追加這一行(具體瞭解請查看 if..else..fi 宣告[1] 和 source 命令[2]):

  1. if [ -f $HOME/bash-insulter/src/bash.command-not-found ]; then

  2.    source $HOME/bash-insulter/src/bash.command-not-found

  3. fi

儲存並關閉檔案。重新登錄,如果不想退出賬號也可以手動運行它:

  1. $ . $HOME/bash-insulter/src/bash.command-not-found

如何使用它?

嘗試鍵入一些無效命令:

  1. $ ifconfigs

  2. $ dates

示例輸出:

一個有趣的 bash 鉤子功能,嘲諷輸入了錯誤命令的你。

自定義

你需要編輯 $HOME/bash-insulter/src/bash.command-not-found

  1. $ vi $HOME/bash-insulter/src/bash.command-not-found

示例代碼:

  1. command_not_found_handle () {

  2.    local INSULTS=(

  3.        "Boooo!"

  4.        "Don't you know anything?"

  5.        "RTFM!"

  6.        "Hahaha, n00b!"

  7.        "Wow! That was impressively wrong!"

  8.        "What are you doing??"

  9.        "Pathetic"

  10.        "...and this is the best you can do??"

  11.        "The worst one today!"

  12.        "n00b alert!"

  13.        "Your application for reduced salary has been sent!"

  14.        "lol"

  15.        "u suk"

  16.        "lol... plz"

  17.        "plz uninstall"

  18.        "And the Darwin Award goes to.... ${USER}!"

  19.        "ERROR_INCOMPETENT_USER"

  20.        "Incompetence is also competence"

  21.        "Bad."

  22.        "Fake it till you make it!"

  23.        "What is this...? Amateur hour!?"

  24.        "Come on! You can do it!"

  25.        "Nice try."

  26.        "What if... you type an actual command the next time!"

  27.        "What if I told you... it is possible to type valid commands."

  28.        "Y u no speak computer???"

  29.        "This is not Windows"

  30.        "Perhaps you should leave the command line alone..."

  31.        "Please step away from the keyboard!"

  32.        "error code: 1D10T"

  33.        "ACHTUNG! ALLES TURISTEN UND NONTEKNISCHEN LOOKENPEEPERS! DAS KOMPUTERMASCHINE IST NICHT FÜR DER GEFINGERPOKEN UND MITTENGRABEN! ODERWISE IST EASY TO SCHNAPPEN DER SPRINGENWERK, BLOWENFUSEN UND POPPENCORKEN MIT SPITZENSPARKEN. IST NICHT FÜR GEWERKEN BEI DUMMKOPFEN. DER RUBBERNECKEN SIGHTSEEREN KEEPEN DAS COTTONPICKEN HÄNDER IN DAS POCKETS MUSS. ZO RELAXEN UND WATSCHEN DER BLINKENLICHTEN."

  34.        "Pro tip: type a valid command!"

  35.    )

  36.    # 設置“隨機”種子發生器

  37.    RANDOM=$(date +%s%N)

  38.    VALUE=$((${RANDOM}%2))

  39.    if [[ ${VALUE} -lt 1 ]]; then

  40.        printf "\n  $(tput bold)$(tput setaf 1)$(shuf -n 1 -e "${INSULTS[@]}")$(tput sgr0)\n\n"

  41.    fi

  42.    echo "-bash: $1: command not found"

  43.    # 無效命令,常規傳回已存在的代碼

  44.    return 127

  45. }

贈品:sudo 嘲諷

編輯 sudoers 檔案:

  1. $ sudo visudo

追加下麵這一行:

  1. Defaults insults

或者像下麵尾行增加一句嘲諷語:

  1. Defaults !lecture,tty_tickets,!fqdn,insults

這是我的檔案:

  1. Defaults    env_reset

  2. Defaults    mail_badpass

  3. Defaults    secure_path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

  4. ## If set, sudo will insult users when they enter an incorrect password. ##

  5. Defaults    insults

  6. # Host alias specification

  7. # User alias specification

  8. # Cmnd alias specification

  9. # User privilege specification

  10. root ALL = (ALL:ALL) ALL

  11. # Members of the admin group may gain root privileges

  12. % admin ALL = (ALL) ALL  

  13. # Allow members of group sudo to execute any command

  14. % sudo ALL = (ALL:ALL) ALL  

  15. # See sudoers(5) for more information on "#include" directives:

  16. #includedir /etc/sudoers.d

試一試:

  1. $ sudo -k # 清除快取,從頭開始

  2. $ sudo ls /root/

  3. $ sudo -i

樣例對話:

當輸入錯誤密碼時,你會被一個有趣的的 sudo 嘲諷語戲弄。

贈品:你好 sl

sl 或是 UNIX 經典搗蛋軟體[3] 游戲。當你錯誤的把 ls 輸入成 sl,將會有一輛蒸汽機車穿過你的屏幕。

  1. $ sl

Linux / UNIX 桌面樂趣: 蒸汽機車


via: https://www.cyberciti.biz/howto/insult-linux-unix-bash-user-when-typing-wrong-command/

作者:Vivek Gite[5] 譯者:CYLeft 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

赞(0)

分享創造快樂

© 2020 知識星球   网站地图