Então, qual é a vantagem de usar o terminal? [fechadas]

61

Acabei de instalar o Ubuntu há alguns dias. Tanto quanto eu posso dizer o terminal é uma grande parte de qualquer distribuição Linux. Minha pergunta neste momento é por quê? Quando eu olho para qualquer coisa sobre isso, os comandos colocados no terminal são facilmente feitos através da GUI. Então, quais são as vantagens de usar o terminal?

Edit: Obrigado pelas respostas todos. Depois de um pouco bisbilhotando e com a ajuda de suas respostas, agora posso entender seu uso. Posso dizer com orgulho que, nos últimos três dias, tenho usado isso para praticamente tudo, e espero em breve ter uma melhor compreensão dos scripts.

    
por LurkDog 21.02.2012 / 01:49

16 respostas

79

O terminal no Unix é uma ferramenta maravilhosa e poderosa. Ao fazer a transição do mundo do Windows, é difícil apreciar isso porque o shell do Windows (cmd.exe) é, como eu digo, falta. A maioria dos shells padrão * nix ( bash , zsh , etc) tem várias vantagens:

  1. Ele é padronizado através do POSIX e da Única Especificação Unix, portanto, um script que você escreve para um computador provavelmente funcionará em todas as máquinas compatíveis com POSIX (supondo que você se restrinja aos comandos padrão, dos quais existem lotes ). A Microsoft tem o hábito de incluir ferramentas em algumas versões e não em outras, fazendo com que a programação em lote seja um sucesso ou um fracasso

  2. Como o Unix foi criado a partir do terminal, quase tudo é configurável a partir da linha de comando. O Windows era assim até certo ponto, mas eles optaram por largar o subsistema de 16 bits e o DOS com ele. Agora, a GUI é a única maneira de alterar algumas coisas no Windows.

  3. Porque é tão flexível. Os comandos podem ser canalizados juntos ( ls | grep filename ), eles podem ser capturados ( gcc program.c > ./standard_out 2> ./standard_error ) e podem ser substituídos ( ls /home/'whoami' ou ls /home/$(whoami) )

  4. Porque os utilitários UNIX são projetados para fazer uma coisa e fazer isso bem. Basta olhar para awk , grep , sed , wget ou uma série de outros. Por si só, eles conseguem uma única tarefa, mas recebem # 3 e # 2 e podem ser construídos em expressões poderosas.

  5. Devido à capacidade de automatizar tarefas. Os scripts cron e bash permitem que tarefas longas, complicadas e / ou repetitivas sejam simplificadas ou automatizadas completamente.

  6. Porque os seres humanos são propensos a erros. Scripts de shell relativamente curtos podem ser usados para alterar as configurações de uma maneira consistente. As verificações de segurança podem ser incorporadas aos scripts, em vez de depender dos usuários para saber quais comandos são seguros para serem executados em diferentes circunstâncias.

por Huckle 21.02.2012 / 02:02
36

Há uma infinidade de vantagens em usar o terminal. Argumentos variam de conveniência, produtividade a nostalgia. Aqui estão alguns:

  1. Existem algumas coisas que você (em vez de mim) simplesmente não consegue realizar usando uma GUI. Não é porque não é factível, é simplesmente porque ninguém se preocupou em escrever uma GUI para esses comandos. Por exemplo, se eu quisesse usar algum comando, digamos mdf2iso para converter vários arquivos em uma pasta. Eu posso canalizar a saída usando o operador | e fazer isso em um único traço.

  2. Para muitos de nós, é assim que as coisas deveriam ser. Tenha em mente que isso tem pouco a ver com experiência. Não sou especialista em Linux, sou apenas um usuário comum, mas prefiro usar a linha de comando sempre que possível. Não se trata tanto de um argumento sobre por que ele deve ser usado, mas também porque ele é usado.

  3. Scripts são uma coisa poderosa. Você pode usar as condições if e fazer loops de for etc. e fazer todo tipo de coisas combinando o poder acima. Não há limite para o poder do script. Você pode automatizar tarefas complexas que são adaptadas aos seus requisitos. Para isso, muitas vezes é difícil encontrar um aplicativo de GUI que corresponda à sua necessidade.

  4. Você pode executar tarefas por login remoto, mesmo em configurações de largura de banda muito baixa.

  5. Ajudar, escrever tutoriais, etc. é muito mais fácil se você puder especificar os comandos para a outra pessoa. Dessa forma, você não precisa fazer capturas de tela. Isso tem outra vantagem para a pessoa que está sendo ajudada também, o que nos leva ao próximo ponto.

  6. Usar a linha de comando geralmente fornece uma melhor compreensão do que você está fazendo e do que está acontecendo.

  7. E por último, é simplesmente mais rápido. É muito mais rápido digitar algumas letras e pressionar TAB do que clicar nas opções de menu sem fim. Você pode usar !mo para invocar o último comando executado com mo (por exemplo, mount) e assim por diante.

Tenho certeza de que há milhares de outras razões pelas quais falhei em mencionar.

    
por ste_kwr 21.02.2012 / 02:05
18

Eventualmente? Porque você começa a criar scripts, e a coisa maravilhosa sobre scripts é esta:

Em vez de mudar a maneira como você faz as coisas, você pode alterar o script que as faz.

Você pode escrever scripts para o terminal, e geralmente não pode para programas gráficos, e é por isso que as pessoas usam o terminal.

Mas eu sinto uma dica de "Por que eu deveria usar o terminal?" na sua pergunta. Eu não posso responder isso para você, você sendo você e eu não sendo você, mas essa questão relacionada pode oferecer-lhe algumas dicas:

Como e por que as pessoas acabam usando usuários de linha de comando?

Acho que você pode identificar três etapas: (1) uso relutante; (2) conhecer o mínimo necessário para o conforto; (3) encontrar um gosta de scripting. Pode-se usar o terminal em todos esses três níveis; descubra por si mesmo onde sua curiosidade pára. Além disso, pode-se passar por esses estágios muito rapidamente se alguém simplesmente decidir que quer aprender scripts de shell.

  1. “Eu preciso deste programa, então eu acho que vou usar a linha de comando.”

    Começa, geralmente, porque as pessoas acham que precisam de algo especializado ou complicado, e o programa que o Google / um fórum / um amigo recomenda para o resultado ser um programa de linha de comando. Então, eles abrem um terminal, e digite o que as instruções dizem-lhes para digitar, e é assim eles vêm usar o terminal. Exemplos de tais programas que fazem você usar a linha de comando:

    • LaTeX / TeX / ConTeXt (sabores diferentes do mesmo sistema) leva um texto arquivo e o transforma em um belo documento PDF. Veja este mostruário para exemplos; Eu prefiro "pp" e "LM-Volume-manuscript".
    • rename é um ótimo programa que permite renomear milhares de arquivos de acordo para um padrão. Um exemplo simples: rename s/myfile([0-9]+).txt/-myfile.txt/ transforma todos os arquivos com o nome 'bond007.txt' em '007-bond.txt', não importa o que O número é. Talvez você queira renomear alguns arquivos de álbuns de música, você vê.
    • Talvez você queira executar um website do seu computador e descubra se você quer dizer ao servidor para executar / halt / refresh sua configuração, você tem que emitir um comando de terminal.

    Observe que há front-ends gráficos para muitos desses sistemas, mas isso é irrelevante: a invocação da linha de comando é comum e tradicional muitos HOWTOs assumem isso e é assim que ele é iniciado. Porque:

  2. “Ok, estou um pouco mais confortável agora.”

    Uma vez dentro da linha de comando, as pessoas começam a pensar: Não seria fácil se eu pudesse apenas ..

    • ... muda os diretórios para olhar dentro de outro? ( cd mydir , para 'alterar diretório')
    • ... recebe um lembrete rápido dos arquivos de texto neste diretório? ( ls *.txt , para 'lista')
    • ... move / renomeia um arquivo? copiar um arquivo? excluir um arquivo? ( mv myfile newname , cp myfile mycopy e rm myfile , para 'move', 'copy' e 'remove')
    • ... abre este arquivo para edição / visualização? ( gedit myfile , ou leafpad , ou nano , ou vim , ou o que for.)

    Depois que as pessoas aprenderam esses cinco comandos, elas são essencialmente confortável na linha de comando: eles podem se mover, olhar e interagir. É até um pouco poderoso: você pode operar em grupos inteiros de arquivos uma vez com comandos como mv iceland-*.jpg My_Iceland_Pics/ e não é legal?

    Agora, muitas pessoas felizes param aqui. Eles sabem como usar o terminal, eles vão usá-lo quando precisarem, e isso é tudo. Este é o nível "o terminal é útil". As pessoas que preferem o terminal, no entanto, geralmente o fazem porque precisam / querem / sentem que não podem prescindir do poder espetacular que o scripting oferece. E isso geralmente começa assim:

  3. “Ei, um script é apenas alguns comandos em um arquivo!”

    Essa realização pode levar a várias outras mudanças, dependendo da pessoa. Muitos apenas vão 'meh', claro; Não adianta aprender o que você não precisa. De qualquer forma, coisas assim podem acontecer:

    • Você começa a usar pequenos scripts para automatizar coisas chatas. Alguns você escreva-se; alguns você recebe de outra pessoa; e eventualmente, você começa a modificar os scripts de outras pessoas.
    • Você descobre que uma enorme categoria de coisas que costumava fazer à mão, porque exigia pensar no meio, pode ser automatizado usando estas duas construções:
      • if something_is_true; then step1a; step2; else step1b; fi e
      • for file in list_of_files; do process1 $file; process2 $file; step3; done
    • Diante de uma tarefa chata ou complexa, você acha que prefere escrever um roteiro para ele do que fazer manualmente. Isso nem é para economizar tempo ou reutilização, necessariamente, mas simplesmente porque é mais divertido.
    • Você começa a usar muito o fluxo de trabalho "usar script no arquivo de origem", porque ele se ajusta à sua maneira de pensar.

Você pode não experimentar todas ou mesmo algumas dessas coisas.Quanto mais se aplicar a você, melhor será o terminal para você . Você descobrirá por si mesmo quanto você acaba usando. Divirta-se!

Post scriptum. Na programação, os fluxos de trabalho script -> run -> result e input -> process -> output são extremamente comuns, e o terminal é espetacularmente adequado para esses fluxos de trabalho. Acrescente a isso o fato de que o shell realmente não é nada além de outra linguagem de programação, e você verá por que existe uma enorme sobreposição entre os usuários de linha de comando e os programadores.

    
por Esteis 21.02.2012 / 19:06
15

Outro ponto a adicionar: É divertido usar a linha de comando! ;)

( link )

    
por red_trumpet 21.02.2012 / 02:11
12

Eu estava apenas respondendo a uma pergunta semelhante como esta no outro dia. Acontece que essa pessoa nunca usou atalhos de teclado para fazer nada, então acabou sendo uma longa discussão. Espero que você tenha alguma familiaridade com eles ... isso tornaria meus pontos mais compreensíveis.

Considere usar um processador de texto. Se você salvar um arquivo, poderá usar um atalho de teclado como ctrl-s. Alguém pode dizer: "Eu prefiro usar o menu. Não me poupa muito tempo usar o atalho. E se você tiver que salvar um novo arquivo, terá que navegar pelo sistema de arquivos até o diretório e digitar o arquivo." nome de qualquer maneira. " Portanto, este objetor está correto de que cada atalho de teclado, por si só, não economiza uma quantidade significativa de tempo. A verdadeira economia está no encadeamento de atalhos juntos, por exemplo, selecione tudo, corte, cole. Mesmo os fabricantes de processadores de texto perceberam isto e tornaram mais conveniente aceder à estrutura de ficheiros utilizando o teclado, e. ser capaz de acessar pastas / locais recentes usando as teclas de tabulação e seta.

É claro que selecionar partes de texto requer o mouse muitas vezes ... é por isso que programadores e pessoas que fazem muitas edições preferem usar um editor de texto que suporte o uso completo do teclado para que você nunca precise usar um mouse. Não só o mouse é lento , mas é propenso a erros - é particularmente fácil selecionar ou excluir o texto errado.

Agora, o que isso tem a ver com a linha de comando? Uma vantagem da linha de comando é que ela evita usar o mouse lento e propenso a erros. Em vez disso, você digita e faz isso de um local; você não precisa procurar por outro menu ou clicar ali e depois por aqui. É a mesma razão pela qual as pessoas gostam de usar atalhos de teclado do navegador (para abrir novas abas / janelas, usar o Gmail, etc.); eles vão ter que digitar a URL (ou e-mail ou qualquer outra coisa) de qualquer maneira ... por que mover sua mão para longe das teclas?

Mas o mais importante, assim como os atalhos de teclado são os mais poderosos quando você começa a usá-los juntos (ao invés de apenas um ou dois), você pode encadear comandos para fazer coisas mais poderosas que levam uma eternidade na GUI ou você nem imaginava fazer nada. Por exemplo, na linha de comando, você pode dizer ao seu navegador, eu quero continuar atualizando esta página a cada 30 segundos, procurar por um determinado texto e quando isso acontecer, enviar para mim e para um grupo de contatos um e-mail dizendo que o texto apareceu na página da Web. Como outro exemplo, você pode dizer ao seu computador, eu quero olhar através de todos os e-mails que eu escrevi, procurar por uma referência a este livro em particular, produzir uma lista de datas que eu mencionei e para quem, ordenar a lista de acordo com frequência, e coloco no e-mail que estou digitando agora.

    
por Chan-Ho Suh 21.02.2012 / 02:07
11

O CLI é rápido de usar quando você sabe exatamente o que você quer fazer e como fazê-lo. Pode ser muito mais eficiente do que usar um gui. Além disso, se você quiser se conectar remotamente à sua máquina, a CLI é muito mais fácil em um link lento. Se você estiver confortável com a CLI, também poderá aproveitar os scripts.

Se você usar o google cli vs gui, receberá toneladas de resultados, por exemplo:

link

A sua pergunta não é realmente específica para o Ubuntu, Linux ou mesmo para PCs - você tem um debate sobre este assunto a partir de qualquer sistema que suporte o gui e o cli, por exemplo. configurando roteadores Cisco.

    
por Amir 21.02.2012 / 02:01
10

Existem vários pontos positivos nas respostas, mas ainda tenho um ponto adicional a ser feito. Às vezes, após uma instalação ou atualização, um aplicativo GUI não é iniciado e deixa você sem nenhuma mensagem de erro. Nestes casos, pode ser muito útil abrir uma janela de terminal e iniciar o ap a partir da linha de comando. Quase sempre há mais informações fornecidas no terminal do que as apresentadas ao iniciar a interface gráfica.

    
por fragos 21.02.2012 / 10:21
8

Meu favorito é menos digitação . Como isso pode ser eu ouço você perguntar. Bem, eu login, pesquisa inversa ou seta para cima) para um comando que eu digitei na semana passada e bateu retorno de carro. A alternativa é muito mais cliques do mouse (e tentando lembrar).

Meu segundo favorito é facilitar a resposta a perguntas sobre estouro de pilha; Nenhuma captura de tela necessária, apenas texto.

    
por ctrl-alt-delor 21.02.2012 / 15:39
5

E quando você precisa fazer algo como "root"? Fazer o log-in via GUI como root é uma má idéia (e eu nem acho que o Ubuntu permitirá que você faça isso, por padrão).

Além disso, considere que o Linux GUI (X11) é simplesmente um programa em execução, assim como todo o resto. Se o X11 falhar, você ficará feliz em saber sua linha de comando.

    
por Aaron 21.02.2012 / 02:05
5

Eu só quero contribuir com um exemplo, que eu acho muito útil, a partir das instruções para adicionar o PPA para o VirtualBox. Quando você adiciona um PPA, você também deve registrar a chave pública, então o método GUI:

  • faça o download da chave com o Firefox (ou outro navegador)
  • abra o Synaptic (ou outro APT gui)
  • pesquisa pelo item de menu direito
  • procure o arquivo baixado
  • finalmente confirme

Explicar isso em um guia do usuário pode ser caro! Em vez disso, isso pode ser feito com um único & amp; linha de comando simples:

wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
    
por Pisu 21.02.2012 / 22:28
3

A linha de comando funciona muito bem como no windows - lembra que a caixa msdos de entrada de texto com o fundo preto?

Ele fornece ao usuário um meio de emitir comandos diretamente para o computador, sem o desperdício dos recursos do computador que uma GUI oferece. É também uma forma de emitir comandos poderosos para fazer coisas que não podem ser feitas através de uma GUI.

Não estou atrapalhando a utilidade do modo de funcionamento da GUI, mas nas mãos de um especialista, o modo de linha de comando pode ser extremamente rápido e eficiente. Nas mãos de um mago real, a linha de comando faz milagres. Eu mal arranhei a superfície das possibilidades, aprendo algo novo todos os dias. Eu nunca serei um mago - muito velho - mas eu gostaria de ser um op médio um dia ...

Bem vindo ao Ubuntu e ao Ubuntu. Este é um ótimo lugar !!

    
por Vic 21.02.2012 / 02:13
3

Para um iniciante, o terminal é uma tarefa a ser usada, mas se você começar a aprender como usá-lo, ficará mais fácil. Uma vez que você se sinta confortável com isso, isso lhe dá uma sensação de confiança de que você pode lidar com as coisas quando elas dão errado.

Por exemplo, quando um programa de gui se recusa a lançar, e você não tem idéia do que está errado, você pode executar o comando em um terminal e, muitas vezes, ver o motivo do problema na saída do terminal. Em seguida, você pode copiar parte disso em uma pesquisa e encontrar a resposta, se necessário.

Você pode digitar um comando com "--help" e obter uma lista de opções de linha de comando que podem ser úteis para alguns casos especiais.

Se algo der errado, e a GUI nem sequer rodar, você pode freqüentemente abrir um terminal virtual ou possivelmente apenas uma linha de comando a partir da inicialização, e corrigir o problema editando um arquivo de configuração ou executando um programa de linha de comando. .

    
por Marty Fried 21.02.2012 / 23:48
2

Simplificando, você tem mais de cem teclas que podem controlar / falar / ordenar o computador em vez de um único mouse com dois ou três botões. Quanto mais controles você tem, mais rápido você pode ser.

Para quem não sabe digitar, um teclado na tela pode ficar ótimo. Por mais rápido que você possa usar o mouse, você não pode digitar mais rápido do que usando o teclado.

Se você estiver usando mouse / windows, é como o computador controlando você e ditando o que você pode fazer. Quando você se acostumar com o mundo da linha de comando, poderá sentir todo o sistema sob seu controle aguardando seu pedido. Você precisa experimentá-lo para entender a diferença.

    
por balki 24.02.2012 / 18:35
1

Eu nem vejo o ponto de checar uma resposta lol. De qualquer forma. Terminal é como o seu CMD no Windows. De volta aos dias, antes da GUI aparecer, as pessoas programavam e trabalhavam sob o modo DOS, um terminal simples. A GUI é feita para tornar a tarefa mais simples e fácil, mas, às vezes, usar a GUI na verdade requer mais trabalho.

Por exemplo, como desenvolvedor, se eu quiser apenas compilar um programa C ++, não preciso usar o IDE sofisticado. IDE é uma interface GUI que possui muitos recursos avançados que um editor de texto simples não oferece. Então, ao invés de baixar um IDE realmente grande para uma tarefa simples, eu posso escrever o seguinte e ele irá executar o meu programa C ++, cujo arquivo executável é chamado main .

g++ -o main main.cpp
chmod 777 main
./main

Se você faz linguagem de intérprete como Python, você pode entrar no shell interativo do Python. Sim. Existem shells interativos que estão envoltos em uma boa interface gráfica, mas é mais lento e com bugs (pense em IDLE ...)

Às vezes, quando a GUI está quebrada, você pode tentar usar o Terminal para abri-lo. Às vezes, alguns softwares no Linux não oferecem boas interfaces gráficas ou é muito difícil encontrar onde o launcher da GUI é, basta ir ao Terminal e digitar, por exemplo:

xpdf homework.pdf

Isso abrirá o homework.pdf para você.

Em outras situações, a GUI não oferece energia e mágica suficientes para realizar sua tarefa. Algumas funções de pesquisa são muito básicas e você não pode aplicar a pesquisa detalhada ou o padrão de pesquisa complicado. Mas através do terminal, um comando pode ser emitido com um padrão realmente muito complicado e longo.

A GUI é legal, mas às vezes através de comandos você pode tornar as coisas mais simples também. Às vezes você simplesmente não tem escolha: você tem que usar comandos através de terminais.

    
por CppLearner 21.02.2012 / 22:38
1

Eu adicionaria um ponto de vista que parece não ser mencionado, mesmo que não seja uma vantagem real.

Pense no fato de que a GUI é como um "painel" que dá acesso às funções que o verdadeiro programa tem. Muitos softwares, especialmente se em uma versão inicial, não possuem uma GUI, e você pode executá-los somente a partir do terminal. E, como outros salientaram, até mesmo os aplicativos que possuem uma GUI, às vezes, não possuem interfaces para todas as funções; para essas funções, você tem que usar o terminal.

    
por clabacchio 23.02.2012 / 12:19
0

Todos descreveram bem as vantagens, gostaria apenas de acrescentar que, além da transparência, você pode ver todas as dependências listadas, sua velocidade. Após o desaparecimento do synaptic do Ubuntu, o centro de software é muito lento especialmente em máquinas mais lentas, aqui a instalação do terminal é muito mais rápida.

    
por Arup Roy Chowdhury 21.02.2012 / 15:44