Existem jogos que podem treinar pessoas para aprender comandos de terminal? [fechadas]


98

Parece-me que aprender a usar o terminal é um pré-requisito para aprender a usar o Ubuntu. Então, eu estou tentando descobrir a melhor maneira de aprender. Existe um cartão flash online do Quizlet definido? Uma maneira melhor?


4
Você já experimentou o Google?
Mdpc

27
Se você deseja um curso intensivo, "Como obter uma GUI de volta depois que acidentalmente derrubei os arquivos de configuração com tanta dificuldade que apenas o shell carregará" é sempre um vencedor. Esteja avisado de que, se você perder o jogo, as possíveis penalidades incluem comprar a um amigo de barba cinza um caso de sua bebida preferida ou reinstalar o sistema operacional.
Dan Neely

6
@fluffy: Isso não é mesmo difícil: rm -- '-rf ~/*'. Para um desafio real, tente excluir um arquivo cujo nome consiste inteiramente em caracteres de controle não imprimíveis. Pontos de bônus se apenas imprimir o nome atrapalhar o seu terminal.
Ilmari Karonen

3
Isso também não é muito difícil: P rm -i * e responda sim quando encontrar o arquivo certo.
OOA

5
A "vida real" conta como um jogo?
27413 Jonathan

Respostas:


132

Você pode adicionar a seguinte linha (comando) no final do seu ~/.bashrcarquivo:

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

Toda vez que você abrir o terminal, aprenderá algo sobre um comando aleatório.


Se você quiser se divertir, pode usar o cowsay"utilitário". Para instalá-lo, execute isto no terminal:

sudo apt-get install cowsay

Em seguida, adicione a seguinte linha no final do seu ~/.bashrcarquivo:

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

Ou você pode adicionar a linha acima como alias em ~/.bash_aliases. Eu adicionei:

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

Sempre que você se cansar, você pode digitar o terminal: ?(seguido por Enter). É como jogar dados sozinho.

insira a descrição da imagem aqui


2
Isso é extremamente legal, mas na minha distro (Ubuntu 13.04), usando o shell padrão, Did you know that: mkdir: nothing appropriate.sempre que inicio um shell (para ser pedanticamente claro, nem sempre vejo, mkdirmas sempre vejo nothing appropriate). whatisfunciona se eu colocar sua linha de código no topo, ~/.bashrcmas não no final. Não tenho certeza do que é que estraga tudo, mas acho que outras pessoas terão o mesmo problema.
precisa saber é

3
@ user606723 Eu escolhi apenas /binporque existem os comandos mais usados. Mas você pode usar echo "Did you know that:"; whatis $(ls /usr/share/man/man1 | shuf -n 1 | cut -d. -f1)para escolher uma página aleatória em todas as páginas de manual.
Radu Rădeanu

1
@ RaduRădeanu não analisa a saída de ls!
precisa

3
@ heinrich5991 é claro que você está correto em geral, mas se alguma coisa na sua /binconta com espaços ou novas linhas em seu nome, então você tem problemas maiores do que os hábitos de scripts ruins ...
evilsoup

1
@ snim2 Suspeito que o problema seja um alias para lsesses complementos -Fou alguma outra flag que afeta a saída. Mude ls /binpara /bin/ls /bin.
Gilles

37

Eu costumava brincar whatis. Não é exatamente um jogo, mas é uma maneira relativamente fácil de aprender.

Por exemplo, digite whatis sudo apt-get update e ele retorna:

insira a descrição da imagem aqui

Antes de executar qualquer comando, eu bati nele whatisprimeiro. Aprendo o que vou fazer, depois executarei o comando com confiança.

Se whatisnão fornecer muitas informações ou se não estiver claro para mim, irei ler o man.

Por exemplo man sudo,.

O Google fornece muitas informações aqui, fontes dentro do Ask Ubuntu e fora. Aqui, LMGTFY: melhor maneira de aprender comandos de terminal no Ubuntu


1
Eu recomendo seguir whatis somethingcom uma leitura completa de man somethingANTES de usar o comando "something" ^^. Especialmente para alguns (a maioria!) Comandos, ou seja, ddpor exemplo ... O homem, por exemplo, também explicaria o parâmetro "update" no exemplo que você fornece ... No seu exemplo, o que mostra o que é "apt-get" e, em seguida, tenta encontrar definição de comando "update", que não existe (mas poderia ter e ser algo completamente irrelevante)
Olivier Dulac

27

Sim, Terminus já foi um jogo que vai ajudar. Há uma versão ao vivo aqui , e o código está no github . É uma ideia interessante, embora eu prefira que o código seja mais facilmente extensível.


21

Eu não conheço nenhum jogo, no entanto, existem alguns utilitários de linha de comando úteis que ajudam.

O que um comando faz?

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

Como é que eu?

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

Alternativamente:

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

Como eu uso?

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

Ou, alguns utilitários suportam uma opção de ajuda, como:

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

Estes podem estar na forma de command -h, command --help, command -?.

Para informação:

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

Se você tem algo específico que precisa realizar, o Google é seu amigo. Caso contrário, existem muitos livros, como o livro Bash de O'Rielly .


1
Adicione apropose infoà lista. ;)
Johannes

3
eu evitaria usar <e >em tudo, como pessoas que precisam de direção para usar manpodem não saber o perigo de redirecionamento. Por exemplo: command <something> somethingelsecriará um somethingelsearquivo vazio (ou truncará um existente!) No diretório atual. É um mau hábito. Apenas usar man commandé bastante auto-explicativo. Ou man __some__command__ou qualquer coisa segura.
Olivier Dulac

hmm, na verdade, é seguro se o <somethingnão é um arquivo existente, caso contrário, o shell vai reclamar que ela não existe (aparentemente faz isso antes de criar o arquivo de saída) ... Mas, ainda assim, mau hábito
Olivier Dulac

1
Bom ponto. Acostumado a escrever documentação nesse formato. (edit) Removido eles.
26613 azz


13

O Ubuntu foi projetado para ser muito amigável. Aprender a usar o terminal não é um pré-requisito para aprender a usar o Ubuntu. É, no entanto, se você deseja se tornar um usuário avançado ou solucionar problemas sozinho.

Para responder à sua pergunta, não conheço nenhum jogo projetado para ajudar ou ensinar comandos de shell, mas recomendo os seguintes recursos relacionados à administração do sistema e do bash:

Observe que este tutorial usa o Red Hat (outra distribuição Linux) e faz referência a alguns diretórios que se aplicam apenas a estudantes da Universidade de Surrey.

Hospedado no The Linux Documentation Project ( http://www.tldp.org/ ), autor Mike G

Um wikibook da Wikipedia

Manual de Referência do GNU Bash

Advanced Bash-Scripting Guide ( http://linux.die.net/ ), autor Mendel Cooper


8

Você tem muitos jogos em http://overthewire.org . O mais fácil é o Bandit, "voltado para iniciantes absolutos".


Excelente link. Parece que existem muitos jogos de guerra lá. Banditparece ser o jogo para iniciantes absolutos como eu.
Sundeep


2

A ferramenta Memrise possui uma seção de linha de comando para unix e linux. É uma ótima ferramenta para aprender qualquer coisa de maneira perfurada.


Isso não é exatamente o que eu tinha em mente, mas parece um ótimo recurso de estudo que vou usar. Valeu!
capitalismo prevalece

Há também o curso ShellFu . Embora o Memrise não seja um jogo em si, ainda o acho muito interessante e joga com sua natureza competitiva.
ThomasH

Acabei de receber uma página de anúncios de memrise.com :(
Paddy Landau


1

Existe o jogo Uplink . Tem sido muito divertido e existem muitas semelhanças com um shell linux. Mas também tem seus próprios comandos.


1
Enquanto Uplink é um grande jogo, é linha de comando está limitada a cd, dir, deletee reboot. Bastante insuficiente. Lembro que há outro jogo de hackers em que você realmente precisa escrever scripts de shell, mas esqueci o nome. Provavelmente algo criativo como "hackers"
Tobias Kienzler 27/08

1

A melhor ferramenta que encontrei para memorização e aprendizado de longo prazo é Anki

http://www.ankisrs.net/

Eu uso criar cartões em Anki que exigem que eu digite a resposta, em vez de simplesmente um cartão flash. Constrói a memória muscular. Além disso, realizo 15 minutos de treinamento todas as manhãs e Anki classifica meus cartões com base nos que preciso revisar.


Parece uma boa ferramenta , mas também fornece os dados de treinamento para os comandos do terminal?
precisa saber é o seguinte

0

Nos primeiros dias do UNIX (v6 e v7) (sim antes do Linux), havia uma série de tutoriais muito simplistas sob o comando chamado learn. Devo admitir que iniciei meu treinamento lá .. ele tinha tutoriais sobre linha de comando, vi e um pouco de programação em C. Há muito que desapareceu. E, claro, isso foi antes da proliferação de livros sobre esse assunto, a alta quantidade de conectividade fácil à Internet, basicamente tudo o que você tinha eram basicamente as manpáginas.

Então agora é bem fácil, basicamente vá ao Google, ou encontre alguma documentação publicada. Ou use a amazon para encontrar um livro apropriado. A Amazon ainda tem classificações e resenhas em seus livros.


0

Bem, a maioria dos conceitos básicos que aprendi quando o Linux ainda era basicamente baseado em linha de comando e o SUSE era um dos poucos Linux com instalação baseada em GUI. Eu brinquei com o Gentoo agora ... basta instalar seu sistema com algumas ferramentas, como sensores de pm e outras coisas, logo você estará de volta ao terminal para algumas configurações

Não sei se ainda há uma distribuição instalada via linha de comando, pois parei de trabalhar com o Linux até um mês atrás, quando descobri que eles finalmente deram o passo para se tornarem interessantes e baseados em GUI para os usuários, ótimo obrigado a todos os programadores por aí, que tornaram muitos dos meus PCs antigos úteis novamente !!!

MS estúpido simplesmente é estúpido demais para manter seu melhor produto por mais tempo ... Windows XP ... uma empresa que faz isso, certamente não está pensando em obter um sistema operacional totalmente estável e seguro ... e, no caso do Win 7, eles podem ficou muito estável e seguro, mas é preciso muitos recursos para isso.

Realmente adoro a maneira Linux de controlar o hardware sem grandes compiladores, intérpretes ou outras coisas, como no Windows.

Mas se você quiser aprender mais sobre o Linux, o Gentoo é uma ótima maneira de criar seu próprio sistema, passo a passo e também aprender como o Linux funciona. O Gentoo também é capaz de rodar em quase tudo, não importa quão pequenos sejam os recursos de hardware, para que você possa usar outro PC antigo para esses momentos divertidos, de instalação e teste do Linux!


0

Não é exatamente um jogo, mas existe este site, onde você pode aprender vários comandos diferentes.



0

Não é um jogo, mas é útil quando você quer aprender algum comando e não há linux disponível: rextester


0

A matriz para o cubo do jogo é onde eu aprendi bastante (em relação aos meus 13 anos de idade) um pouco sobre o terminal UNIX. Havia um mini-jogo no qual você "invadia" a matriz para deixar as armas para pegar mais tarde, quando estiver jogando esse nível. Na verdade, barre um dos meus recursos favoritos de qualquer jogo de todos os tempos.


0

O inx (não é X) pode ser usado como live cd e ensina coisas de terminal de uma maneira divertida e interativa


0

Eu acho que o bandido é um dos melhores para aprender e entender mais sobre os comandos do Linux e saber mais sobre o linux para iniciantes. Você pode obter o link aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.