有没有什么游戏可以训练人们学习终端命令?

Cap*_*ils 98 command-line games

在我看来,学习如何使用终端是学习如何使用 Ubuntu 的先决条件。所以我想找出最好的学习方法。那里有 Quizlet 在线闪存卡吗?更好的方法?

Rad*_*anu 130

您可以在~/.bashrc文件末尾添加以下行(命令):

echo "Did you know that:"; whatis $(ls /bin | shuf -n 1)
Run Code Online (Sandbox Code Playgroud)

每次打开终端时,您都会了解一些有关随机命令的信息。


如果你想要一些乐趣,你可以使用cowsay“实用程序”。要安装它,请在终端中运行它:

sudo apt-get install cowsay
Run Code Online (Sandbox Code Playgroud)

然后在~/.bashrc文件末尾添加以下行:

cowsay -f $(ls /usr/share/cowsay/cows | shuf -n 1 | cut -d. -f1) $(whatis $(ls /bin) 2>/dev/null | shuf -n 1)
Run Code Online (Sandbox Code Playgroud)

或者您可以在~/.bash_aliases. 我补充说:

alias ?='cowsay -f $(ls /usr/share/cowsay/cows | shuf -n 1 | cut -d. -f1) $(whatis $(ls /bin) 2>/dev/null | shuf -n 1)'
Run Code Online (Sandbox Code Playgroud)

每当您感到无聊时,您可以输入终端:(?后跟Enter)。这就像一个人在玩骰子。

在此处输入图片说明

  • @user606723 我只选择了`/bin`,因为那里有最常用的命令。但是你可以使用 `echo "Did you know that:"; whatis $(ls /usr/share/man/man1 | shuf -n 1 | cut -d. -f1)` 从所有手册页中随机选择一个页面。 (3认同)
  • @heinrich5991 当然,您总体上是正确的,但是如果您的`/bin` 中的任何内容在其名称中包含空格或换行符,那么您的问题就比不良的脚本习惯要大... (3认同)
  • 这非常酷,但在我的发行版 (Ubuntu 13.04) 上使用默认 shell,我每次启动 shell 时都会得到`你知道吗:mkdir:没有什么合适的。` `但我总是看到`没有合适的`)。如果我把你的代码行放在 `~/.bashrc` 的顶部而不是最后,`whatis` 会起作用。不知道是什么弄乱了它,但我想其他人会遇到同样的问题。 (2认同)

Ach*_*chu 37

我曾经玩过whatis。这不完全是一种游戏,但它是一种相对简单的学习方式。

例如,键入whatis sudo apt-get update 并返回:

在此处输入图片说明

在我执行任何命令之前,我先点击它whatis。我学会了我要做什么,然后我会自信地执行命令。

如果whatis没有提供太多信息或者我不清楚,我会去阅读man.

例如,man sudo

谷歌在这里为您提供了很多信息,Ask Ubuntu内部和外部的来源。在这里,LMGTFY:在 Ubuntu 上学习终端命令的最佳方式


sni*_*im2 27

是的,Terminus 曾经是这样一款可以提供帮助的游戏。有一个现场版本在这里,代码是在github。这是一个好主意,虽然我更希望代码更容易扩展。


azz*_*azz 21

我不知道任何游戏,但是有一些有用的命令行实用程序可以提供帮助。

命令有什么作用?

whatis command
# example:
$ whatis cut
cut (1)              - remove sections from each line of files
Run Code Online (Sandbox Code Playgroud)

我如何能?

man -k keyword
# example:
$ man -k "remove empty"
rmdir (1)            - remove empty directories
Run Code Online (Sandbox Code Playgroud)

或者:

apropos keyword  
# defaults to printing every result with at least one of the keywords supplied
#   use --and to only print results matching multiple keywords.
$ apropos zip --and extract
funzip (1)           - filter for extracting from a ZIP archive in a pipe
unzip (1)            - list, test and extract compressed files in a ZIP archive
unzipsfx (1)         - self-extracting stub for prepending to ZIP archives
uz (1)               - gunzips and extracts a gzip'd tar'd archive
Run Code Online (Sandbox Code Playgroud)

我如何使用?

man command
# example:
man tar
# use '?' key to search, and 'q' to quit.
Run Code Online (Sandbox Code Playgroud)

或者,某些实用程序支持帮助选项,例如:

$ umount --help
Usage: umount -h | -V
   umount -a [-d] [-f] [-r] [-n] [-v] [-t vfstypes] [-O opts]
   umount [-d] [-f] [-r] [-n] [-v] special | node...
Run Code Online (Sandbox Code Playgroud)

这些可以是在的形式command -hcommand --helpcommand -?

信息:

info command
# example:
$ info cat
# shows an information page
Run Code Online (Sandbox Code Playgroud)

如果您有特定的事情需要完成,Google 就是您的朋友。另外还有很多书,比如O'RiellyBash 书

  • 我完全避免使用 `<` 和 `>`,因为需要指导使用 `man` 的人可能不知道重定向的危险。例如:`command <something> somethingelse` 将在当前目录中创建一个 `somethingelse` 空文件(或截断现有文件!)。这是一个坏习惯。仅使用`man command` 就很容易解释了。或者`man __some__command__` 或任何安全的东西。 (3认同)

小智 14

看看 命令行 fu

你可以浏览一些很酷的命令行片段,如果你想更深入地理解,你可以阅读它们使用的命令的手册。


小智 13

Ubuntu 被设计为非常用户友好。学习如何使用终端并不是学习如何使用 Ubuntu 的先决条件。但是,如果您想成为高级用户或自己解决问题,则需要这样做。

为了回答您的问题,我不知道有任何旨在帮助或教授 shell 命令的游戏,但我强烈推荐以下与 bash 和系统管理相关的资源:

请注意,本教程使用 Red Hat(另一个 Linux 发行版)并引用了一些仅适用于萨里大学学生的目录。

托管在 Linux 文档项目 ( http://www.tldp.org/ ),作者 Mike G

来自维基百科的一本维基书

GNU Bash 参考手册

高级 Bash 脚本指南 ( http://linux.die.net/ ),作者 Mendel Cooper


116*_*684 8

http://overthewire.org上有大量游戏。最简单的是 Bandit,“针对绝对初学者”。


Dog*_*ody 5

我推荐在http://vim-adventures.com/上有一个学习VIM 命令的游戏。我让我的学徒在第一天玩它:-)