A criação de um arquivo de texto no vi irá alterar meu computador?

9

Eu sei que o Linux é um sistema operacional criado em arquivos de texto. O que eu gostaria de fazer é criar um arquivo usando vi de todos os vários comandos que aprendi. Dessa forma, eu poderia encontrar cada comando individual com muita facilidade usando o / in vi . Mas eu só quero fazer isso se não mudar a maneira que o meu computador funciona. Isso seria uma boa ideia?

    
por BJsgoodlife 20.02.2015 / 05:53

5 respostas

34

Escrever um arquivo de texto não vai "alterar o funcionamento do seu computador".

Em particular, para fazer algo assim, você teria que fazer um

  • substituir alguns arquivos importantes
  • escreva seu arquivo em um local protegido especial como um diretório * .d em / etc; você não terá permissão para fazer isso
  • marque o arquivo executável e coloque-o no seu caminho

Desde que você não vai fazer explicitamente algo assim, não há nada para se preocupar. Em particular, a outra resposta vai a comprimentos desnecessários, sugerindo que seus arquivos de texto precisam começar com hashes em cada linha. Claro que não. Apenas armazenar um arquivo de texto em algum lugar dentro de um diretório home normal não fará nada.

    
por thomasrutter 20.02.2015 / 06:21
15

Você pode salvar todos os comandos que aprendeu em um arquivo, mas alguns pontos importantes a serem observados:

  • Não torne o arquivo executável
  • Nunca source do arquivo
  • A melhor maneira seria colocar um # no início de todos os comandos para comentar todos os comandos para que eles não sejam executados acidentalmente. Desta forma, você pode realmente procurar o comando que você precisa e também seria livre de risco. Você pode adicionar # no início de cada linha pelo seguinte comando:

    sed -i 's/^/#/' <file_name>

EDIT: Eu dei o terceiro ponto como uma medida de segurança extrema, como "neon_overload" e "David Z" apontou que colocar hashes em todas as linhas é muito extenso e, portanto, não é necessário, Eu seria segundo com eles neste contexto. Também como apontado por "random832", uma alternativa muito melhor ao meu terceiro ponto seria iniciar o arquivo com exit , já que nenhum comando posterior será executado.

EDIT-2: "Rinzwind" mencionou dois pontos importantes:

  • Não substitua um arquivo existente

  • Armazene o arquivo no diretório pessoal do usuário ( /home/$USER/ ).

por heemayl 20.02.2015 / 06:02
7

neon_overload tem uma resposta muito boa.

Eu vou expandir um pouco em uma certa faceta da sua pergunta - eu faria um comentário, mas não tenho reputação suficiente aqui.

O Linux, como sistema operacional, não é muito baseado em arquivos de texto. Dito isso, posso ver de onde você vem. Para um observador externo, há muita coisa acontecendo com a edição e o lançamento de arquivos de "texto", especialmente em comparação ao Windows.

Isso tem várias razões, algumas das quais são:

  • Não há sistema de registro no Linux, como no Windows. Portanto, é comum que os aplicativos armazenem suas configurações em arquivos de texto e você será instruído a editá-los, em vez de editar o Registro, como no Windows.
  • O Linux é muito usado como um sistema de servidor, e muitos deles, que o usam em desktops, trabalham com sistemas de servidor. Ao contrário do Windows Server, os servidores Linux geralmente são executados sem uma interface gráfica. Portanto, espera-se que os produtos que devem rodar em servidores Linux e, de fato, seus usuários e administradores, funcionem sem uma interface gráfica. Produtos (e recursos do sistema, vale a pena dizer) que só são esperados para rodar no Windows são geralmente mais centrados na GUI (como, digamos, MS SQL)
  • O sistema de scripts Linux é um pouco mais comum e mais transparente que o Windows. Você veria scripts no Windows - mas eles seriam chamados de something.vbs ou another.bat. Você não precisaria perceber que são arquivos de texto - mas, considerando o que está no meu segundo ponto, é muito mais comum no Linux ir bisbilhotando arquivos .sh.
  • Por fim, muitos usuários do Linux estão acostumados a trabalhar sem interface gráfica e, em muitos casos, preferem editar os arquivos diretamente como fariam sem a GUI, em vez de se atrapalharem com ferramentas gráficas. Eu sei que quando quero fazer algo mais profundo no sistema, eu apenas inicio o terminal, e muitos dos meus colegas também.
por Fabo.sk 20.02.2015 / 20:39
1

A resposta curta é: não, você não vai mudar seu computador criando um arquivo de texto no vi. No entanto, se você não for cuidadoso, criar esse primeiro arquivo de texto pode mudar sua vida . Aprender o caminho Unix pode ser uma prática profundamente recompensadora.

    
por hackerb9 20.02.2015 / 22:25
0

vi é um editor de texto , portanto, se tudo que você quer é apenas armazenar alguns trechos de texto em um arquivo de texto e pesquisar por ele, então você pode fazer tudo diretamente do terminal com os comandos internos.

  1. Escreva uma nota em um arquivo de texto (criará o arquivo se ele não existir):

    echo note com dados importantes > > info.txt

IMPORTANTE: fique atento às aspas simples e duplas e prefixe-as com barras se desejar incluí-las.

  1. Pesquise no arquivo por algum texto (por exemplo, important ):

    grep --color -i importante info.txt

Para evitar digitar --color -i , isso deve ser aliado no seu ~/.bashrc .

Você também pode adicionar texto de várias linhas a arquivos de texto existentes ou inexistentes:

cat >> info2.txt

em seguida, digite ou cole o texto e, quando estiver pronto, pressione CTR + Z

Quanto a mudar o sistema, não, ele não mudará a maneira como seu sistema funciona, desde que você crie arquivos em sua própria pasta pessoal e não os execute (você pode executar um arquivo mesmo que não seja executável, por exemplo, com bash myFile ). Além disso, certifique-se de usar somente os privilégios de root estritamente quando precisar deles.

E, finalmente, sua interpretação do sistema baseado em arquivos enganou um pouco: a maioria dos sistemas operacionais tem arquivos que armazenam configurações importantes que afetam profundamente o funcionamento do sistema, mas estão localizados em locais predefinidos e normalmente são protegidos contra modificação por usuários comuns.

É possível filmar-se facilmente no pé, por exemplo, se como usuário comum você tiver uma pasta 'executável' local que você adicionou a PATH , e se nessa pasta você tiver arquivos executáveis que têm os mesmos nomes que os utilitários comuns internos ou as palavras-chave bash, como test , echo , cat , for , cut , etc.

    
por ccpizza 22.02.2015 / 11:43