命令行乐趣:嘲讽输错 Bash 命令的用户 | Linux 中国
2018-03-30 00:00
921 查看
你可以通过配置 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 命令克隆一个仓库:
git clone https://github.com/hkbakke/bash-insulter.git bash-insulter
示例输出:
Cloning into 'bash-insulter'...
remote: Counting objects: 52, done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 52 (delta 12), reused 12 (delta 2), pack-reused 0
Unpacking objects: 100% (52/52), done.
用文本编辑器,比如说使用
vi,编辑你的
~/.bashrc或者
/etc/bash.bashrc文件:
$ vi ~/.bashrc
在其后追加这一行(具体了解请查看 if..else..fi 声明[1] 和 source 命令[2]):
if [ -f $HOME/bash-insulter/src/bash.command-not-found ]; then
source $HOME/bash-insulter/src/bash.command-not-found
fi
保存并关闭文件。重新登录,如果不想退出账号也可以手动运行它:
$ . $HOME/bash-insulter/src/bash.command-not-found
如何使用它?尝试键入一些无效命令:
$ ifconfigs
$ dates
示例输出:
一个有趣的 bash 钩子功能,嘲讽输入了错误命令的你。自定义你需要编辑
$HOME/bash-insulter/src/bash.command-not-found:
$ vi $HOME/bash-insulter/src/bash.command-not-found
示例代码:
command_not_found_handle () {
local INSULTS=(
"Boooo!"
"Don't you know anything?"
"RTFM!"
"Hahaha, n00b!"
"Wow! That was impressively wrong!"
"What are you doing??"
"Pathetic"
"...and this is the best you can do??"
"The worst one today!"
"n00b alert!"
"Your application for reduced salary has been sent!"
"lol"
"u suk"
"lol... plz"
"plz uninstall"
"And the Darwin Award goes to.... ${USER}!"
"ERROR_INCOMPETENT_USER"
"Incompetence is also competence"
"Bad."
"Fake it till you make it!"
"What is this...? Amateur hour!?"
"Come on! You can do it!"
"Nice try."
"What if... you type an actual command the next time!"
"What if I told you... it is possible to type valid commands."
"Y u no speak computer???"
"This is not Windows"
"Perhaps you should leave the command line alone..."
"Please step away from the keyboard!"
"error code: 1D10T"
"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."
"Pro tip: type a valid command!"
)
# 设置“随机”种子发生器
RANDOM=$(date +%s%N)
VALUE=$((${RANDOM}%2))
if [[ ${VALUE} -lt 1 ]]; then
printf "\n $(tput bold)$(tput setaf 1)$(shuf -n 1 -e "${INSULTS[@]}")$(tput sgr0)\n\n"
fi
echo "-bash: $1: command not found"
# 无效命令,常规返回已存在的代码
return 127
}
赠品:sudo 嘲讽编辑
sudoers文件:
$ sudo visudo
追加下面这一行:
Defaults insults
或者像下面尾行增加一句嘲讽语:
Defaults !lecture,tty_tickets,!fqdn,insults
这是我的文件:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
## If set, sudo will insult users when they enter an incorrect password. ##
Defaults insults
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL = (ALL:ALL) ALL
# Members of the admin group may gain root privileges
% admin ALL = (ALL) ALL
# Allow members of group sudo to execute any command
% sudo ALL = (ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
试一试:
$ sudo -k # 清除缓存,从头开始
$ sudo ls /root/
$ sudo -i
样例对话:
当输入错误密码时,你会被一个有趣的的 sudo 嘲讽语戏弄。赠品:你好 slsl 或是 UNIX 经典捣蛋软件[3] 游戏。当你错误的把
ls输入成
sl,将会有一辆蒸汽机车穿过你的屏幕。
$ 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中国 荣誉推出
相关文章推荐
- 命令行乐趣:嘲讽输错 Bash 命令的用户
- [linux学习笔记]第2天:时间管理,命令帮助信息,文本查看,权限及用户管理,BASH和变量,脚本
- 如何在 Linux 中轻松修正拼写错误的 Bash 命令 | Linux 中国
- linux学习入门1——bash命令基本操作(linuxcast.net)(bash部分快捷键、uname、history、通配符、切换用户、作业管理(前台、后台运行,暂停等操作))
- 解决找不到ifconfig命令,更改路径并重启系统后进入命令行界面以及各个命令无法执行Linux:-bash: ***: command not found
- Linux中的命令、bash特性、用户及权限笔记day03
- linux学习入门2-3——bash命令基本操作(linuxcast.net)(bash部分快捷键、uname、history、通配符、切换用户、作业管理(前台、后台运行,暂停等操作))
- 通过玩命令行游戏来测试你的 BASH 技能 | Linux 中国
- 如何在 Linux/Unix 的 Bash 中打开或关闭 ls 命令颜色显示 | Linux 中国
- bash命令快捷键,linux常用到的命令行
- Linux 基本操作(一)————认识命令行、基础命令、快捷键
- 实时监控Linux服务器用户操作命令
- LinuxStudyNote(28)-Linux常用命令(5)-用户管理命令useradd、passwd、who、w
- 14_Linux基础知识及命令――――创建、删除用户和组
- Linux查看所有用户用什么命令
- Linux用户管理用户提权命令sudo总结
- [添加用户]解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或目录的访问权限命令,linux修改用户密码
- Linux last(查看当前登录和过去登录的用户信息)命令
- Linux命令之for - Bash中的For循环
- linux常用bash命令介绍