有没有可以训练人们学习终端命令的游戏?[关闭]


98

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


4
您至少尝试过Google吗?
mdpc

27
如果您想参加速成课程,“我意外地对配置文件进行了严重修改后如何取回GUI,只有外壳会加载”始终是赢家。请注意,如果您输掉了游戏,可能会受到的处罚包括购买灰胡子的朋友自己选择的饮料盒或重新安装操作系统。
Dan Neely 2013年

6
@fluffy:这并不难:rm -- '-rf ~/*'。对于真正的挑战,请尝试删除名称完全由不可打印的控制字符组成的文件。如果仅打印名称就会使您的终端混乱,这是加分点。
Ilmari Karonen 2013年

3
:P rm -i *也不太困难,只要遇到正确的文件就回答是。
ooa

5
“现实生活”算作游戏吗?
乔纳森

Answers:


132

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

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

每次打开终端时,您都会学到一些有关随机命令的知识。


如果您想找点乐子,可以使用cowsay“实用程序”。要安装它,请在终端中运行它:

sudo apt-get install cowsay

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

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

或者,您可以在中添加以上行作为别名~/.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)'

每当您感到无聊时,都可以输入终端:(?后跟Enter)。就像自己玩骰子一样。

在此处输入图片说明


2
这非常酷,但是在我的发行版(Ubuntu 13.04)上,我使用的是Did you know that: mkdir: nothing appropriate.每次启动外壳程序时都会得到的默认外壳程序(要明确地说,我并不总是看到,mkdir但我总是看到nothing appropriate)。whatis如果将您的代码行放在顶部~/.bashrc而不是末尾,则可以使用。不知道是什么使它搞砸了,但我想其他人也会遇到同样的问题。
snim2 2013年

3
@ user606723我之所以选择,仅/bin是因为那里有最常用的命令。但是您可以用来echo "Did you know that:"; whatis $(ls /usr/share/man/man1 | shuf -n 1 | cut -d. -f1)从所有手册页中选择一个随机页面。
RaduRădeanu13年

1
@RaduRădeanu不解析ls的输出!
heinrich5991

3
@ heinrich5991当然,您通常是正确的,但是如果您/bin的名字中有空格或换行符,那么您会遇到比不良脚本习惯大的问题……
evilsoup 2013年

1
@ snim2我怀疑问题是ls添加的别名-F或影响输出的其他标志。更改ls /bin/bin/ls /bin
吉尔斯2013年

37

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

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

在此处输入图片说明

在执行任何命令之前,我先打了一下whatis。我了解了我要做什么,然后我将充满信心地执行命令。

如果whatis没有提供太多信息,或者我不清楚,我将前往阅读man

例如,man sudo

Google在这里为您提供了很多信息,包括Ask Ubuntu内部和外部的资源。LMGTFY在这里:在Ubuntu上学习终端命令的最佳方法


1
我强烈建议您使用“ something”命令^^ whatis something仔细阅读以下man something内容。特别是对于某些(大多数!)命令,dd例如...,例如,Man还将在您提供的示例中解释“ update”参数...在您的示例中,whatis显示了“ apt-get”然后尝试查找“ update”命令的定义,该定义不存在(但可能具有并且完全不相关)
Olivier Dulac

27

是的,总站曾经是这样的游戏,将会有所帮助。有一个现场版本在这里,代码是在github。这是个好主意,尽管我希望代码更容易扩展。


21

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

命令的作用是什么?

whatis command
# example:
$ whatis cut
cut (1)              - remove sections from each line of files

我如何?

man -k keyword
# example:
$ man -k "remove empty"
rmdir (1)            - remove empty directories

或者:

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

如何使用?

man command
# example:
man tar
# use '?' key to search, and 'q' to quit.

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

$ 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...

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

有关信息:

info command
# example:
$ info cat
# shows an information page

如果您有特定的事情需要完成,则Google是您的朋友。否则,会有很多书,例如O'RiellyBash书


1
添加aproposinfo到列表中。;)
约翰内斯

3
我会避免使用<>所有的,因为谁需要向使用人man可能不知道重定向的危险。例如:command <something> somethingelsesomethingelse在当前目录中创建一个空文件(或截断现有文件!)。这是个坏习惯。只是使用man command是很容易解释的。或man __some__command__或任何安全。
Olivier Dulac

嗯,如果<something它不是现有文件,那实际上是安全的,否则外壳会抱怨它不存在(显然在创建输出文件之前是这样)……但是,这还是个坏习惯
Olivier Dulac

1
好点子。只是习惯于以这种格式编写文档。(编辑)将其删除。
azz


13

Ubuntu的设计非常友好。学习如何使用终端不是学习如何使用Ubuntu的先决条件。但是,如果您想自己成为高级用户或自己解决问题,那是一种方法。

要回答您的问题,我不知道有任何旨在帮助或教授Shell命令的游戏,但我强烈建议您使用以下与bash和系统管理相关的资源:

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

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

维基百科的Wikibook

GNU Bash参考手册

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


8

您可以在http://overthewire.org上找到大量的游戏。最简单的是“绝对初学者”专用的Bandit。


优秀的链接。好像那里有很多战争游戏。Bandit似乎是像我这样的绝对初学者的游戏。
2013年




1

有游戏上行链路。这非常有趣,并且threre与linux shell非常相似。但是它也有自己的命令。


1
虽然上行是一场伟大的比赛,它的命令行被限制为cddirdeletereboot。还不够。我记得还有另一个黑客游戏,实际上您必须编写Shell脚本,但我忘记了这个名称。可能是一些有创意的“黑客”
Tobias Kienzler 2013年

1

我发现长期记忆和学习的最佳工具是Anki

http://www.ankisrs.net/

我在Anki中使用需要我输入答案的创建卡,而不是简单的闪存卡。它建立了肌肉记忆。此外,我每天早上进行15分钟的训练,Anki会根据我需要检查的卡片对卡片进行排序。


听起来像是一个很好的工具,但它是否还提供了终端命令的训练数据
gertvdijk 2013年

0

在UNIX的早期(v6和v7)(在Linux之前是),在名为的命令下有一系列非常简单的教程learn。我必须承认,我在那里开始培训..它有关于命令行,vi和一些C编程的教程。它早已消失。当然,这是在有关该主题的书籍泛滥之前的,大量的便捷的互联网连接,基本上所有的man内容基本上都是页面。

因此,现在很容易,基本上可以去Google,找到发布的一些文档。或使用亚马逊找到合适的书。亚马逊甚至对其书有评级和评论。


0

好吧,我在Linux仍主要基于命令行并且SUSE是为数不多的基于GUI的Linux之一时学到的大多数基础知识。这次我和Gentoo一起玩...只是用pm-sensors之类的工具安装您的系统,很快您就会回到终端进行一些配置

我不知道是否还有通过命令行安装的发行版,因为直到一个月前我才停止使用Linux,当我发现他们终于迈出了获取基于GUI的一步并为用户带来了乐趣时,很棒感谢所有程序员,这使我的许多旧PC再次有用!!!

愚蠢的MS根本太愚蠢了,无法再继续维护其最佳产品... Windows XP ...这样做的公司肯定不会考虑让操作系统完全稳定和安全...如果使用Win 7,他们可能会使其非常稳定和安全,但是这样做需要大量资源。

真正喜欢Linux无需控制硬件而无需使用大型编译器,解释器或其他工具(例如Windows)的方法。

但是,如果您想了解有关Linux的更多信息,Gentoo是一种逐步构建您自己的系统的好方法,还可以了解Linux的工作方式。无论硬件资源多么小,Gentoo都几乎可以在所有设备上运行,因此您可以将另一台较旧的PC装在这些Linux上,以进行安装测试和娱乐!




0

不是游戏,但是当您想学习一些命令并且没有可用的linux时会派上用场:rextester


0

游戏多维数据集的矩阵是我相对于UNIX终端(相对于我13岁以前的知识)学到的东西。有一个迷你游戏,您可以在这个关卡中“闯入”自己的方式来放下枪支以备稍后拾取。实际上,到目前为止,这是我最喜欢的任何游戏功能之一。


0

inx(不是X)可以用作实时CD,并以一种有趣且互动的方式教授终端内容


0

我想匪徒 是学习和了解更多关于Linux命令以及对初学者了解更多关于Linux的最好的人之一。您可以从这里获取链接

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.