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?

O capitalismo prevalece
fonte
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

Radu Rădeanu
fonte
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

Achu
fonte
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.

snim2
fonte
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 .

azz
fonte
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
14

Dê uma olhada na linha de comando fu

Você pode procurar alguns trechos interessantes da linha de comando e, se quiser um entendimento mais profundo, pode ler os manuais dos comandos que eles usam.

Iftah
fonte
O climagic é um serviço semelhante, mas restringe o tamanho do comando para se encaixar bem nos tweets. Siga-os em @climagic .
precisa saber é o seguinte
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

Hugo Vieira
fonte
8

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

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

Há um jogo para aprender os comandos do VIM em http://vim-adventures.com/, que eu recomendo. Eu recebo meus aprendizes para jogar no primeiro dia :-)

Dogsbody
fonte
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.

Deworde
fonte
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.

Samoth
fonte
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.

BDubbs
fonte
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.

mdpc
fonte
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!

Starfox vermelho
fonte
0

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

Thiago Perrotta
fonte
0

Não é um jogo, mas dê uma olhada em http://www.stanford.edu/class/cs124/kwc-unix-for-poets.pdf

Ele cobre sed, awk e grep, além de outros, e mostra como contar, classificar, calcular ngrams etc. Ele possui exercícios e tudo. Eu me referi a ele novamente e novamente.

Himanshu
fonte
0

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

ren
fonte
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.

Colton
fonte
0

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

catch22
fonte
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

Vishnu NK
fonte