O Guia do Iniciante para o Script de Shell 3: Comandos e Cadeias Mais Básicas

Índice:

O Guia do Iniciante para o Script de Shell 3: Comandos e Cadeias Mais Básicas
O Guia do Iniciante para o Script de Shell 3: Comandos e Cadeias Mais Básicas

Vídeo: O Guia do Iniciante para o Script de Shell 3: Comandos e Cadeias Mais Básicas

Vídeo: O Guia do Iniciante para o Script de Shell 3: Comandos e Cadeias Mais Básicas
Vídeo: Como Deixar O Windows 8/8.1 Mais Rápido E Otimizado 2019 ( Tutorial Avançado ) - YouTube 2024, Novembro
Anonim
Você aprendeu como criar scripts, usar argumentos e criar loops. Agora, vamos dar uma olhada em alguns comandos mais básicos, manipulação de arquivos de texto e redirecionamento de entrada e saída para arquivos e outros comandos.
Você aprendeu como criar scripts, usar argumentos e criar loops. Agora, vamos dar uma olhada em alguns comandos mais básicos, manipulação de arquivos de texto e redirecionamento de entrada e saída para arquivos e outros comandos.

Alguns comandos úteis básicos

Já fornecemos a você um detalhamento básico de scripts de shell e um esboço de loops forex com base em exemplos, mas não deixe de conferir esses artigos caso tenha perdido o nosso guia de script de shell até o momento.

A linha de comando é maravilhosa por muitas razões, e o redirecionamento é um dos mais proeminentes. Se você tivesse que tomar nota e reproduzir a saída de todos os comandos para tomar mais providências ou usar isso para outra coisa, todos nós ficamos loucos há muito tempo. O redirecionamento nos permite usar essa saída e salvá-la ou usá-la imediatamente como uma entrada para outro comando. Também podemos usar arquivos como entradas para outros comandos.

Antes de continuarmos, vamos abordar alguns comandos básicos que podem ser úteis em muitos lugares diferentes.

eco - Este comando simplesmente imprime (exibe) a totalidade de seu argumento na linha de comando como saída

echo argument with spaces

Como você pode ver, os caracteres especiais precisam ser "escapados" para serem tratados normalmente. Isso é feito usando uma barra invertida () na frente do caractere. É uma ideia melhor usar aspas. O comando echo também funciona com variáveis.
Como você pode ver, os caracteres especiais precisam ser "escapados" para serem tratados normalmente. Isso é feito usando uma barra invertida () na frente do caractere. É uma ideia melhor usar aspas. O comando echo também funciona com variáveis.
Como você pode ver, aspas simples e duplas se comportam de maneira diferente. Para mais informações, confira Qual é a diferença entre aspas simples e duplas no Bash Shell?
Como você pode ver, aspas simples e duplas se comportam de maneira diferente. Para mais informações, confira Qual é a diferença entre aspas simples e duplas no Bash Shell?

gato - Este comando exibe o conteúdo dos arquivos de texto como saída.

cat file_to_be_read

Digamos que criamos este arquivo de texto em nano:

Quando usamos o comando cat no arquivo, podemos ver sua saída.
Quando usamos o comando cat no arquivo, podemos ver sua saída.
grep - Este é um dos comandos mais poderosos e úteis disponíveis no Linux. Significa impressão de expressão global / regular. Ele examina um arquivo e imprime qualquer linha que corresponda a um padrão específico. Como esse padrão é baseado em "expressão regular", uma linha concisa pode gerar uma infinidade de padrões a serem correspondidos. Para não, no entanto, você pode inserir um tern para pesquisar.
grep - Este é um dos comandos mais poderosos e úteis disponíveis no Linux. Significa impressão de expressão global / regular. Ele examina um arquivo e imprime qualquer linha que corresponda a um padrão específico. Como esse padrão é baseado em "expressão regular", uma linha concisa pode gerar uma infinidade de padrões a serem correspondidos. Para não, no entanto, você pode inserir um tern para pesquisar.

grep pattern file

Eu garanto que você pode fazer mais, mas por enquanto vamos nos ater ao material mais fácil.
Eu garanto que você pode fazer mais, mas por enquanto vamos nos ater ao material mais fácil.

Redirecionando Saídas

Para redirecionar a saída de um comando para um arquivo, fazemos uso de um caractere especial, o símbolo de maior que (>).

Vamos mudar a nossa lista, vamos? Digite o seguinte comando:

echo pepperoni > list

Você pode ver que o eco não exibe mais a linha e, quando olhamos para o conteúdo do arquivo "lista", vemos o que estamos repetindo lá.
Você pode ver que o eco não exibe mais a linha e, quando olhamos para o conteúdo do arquivo "lista", vemos o que estamos repetindo lá.

Também tome nota que o conteúdo anterior de "lista" foi removido. Tente de novo:

Isso pode ser útil quando você deseja reutilizar um arquivo, mas muitas vezes só queremos adicionar a um arquivo existente. Para isso, usamos dois símbolos maiores que consecutivos:
Isso pode ser útil quando você deseja reutilizar um arquivo, mas muitas vezes só queremos adicionar a um arquivo existente. Para isso, usamos dois símbolos maiores que consecutivos:

echo yellow peppers >> list

Fácil! Vamos usar esse comando para criar uma lista maior, certo?
Fácil! Vamos usar esse comando para criar uma lista maior, certo?
Aqui vamos nós. Eu acho que você pode ver porque tantos geeks usam a linha de comando para fazer listas de tarefas e coisas assim, mas fica ainda melhor.
Aqui vamos nós. Eu acho que você pode ver porque tantos geeks usam a linha de comando para fazer listas de tarefas e coisas assim, mas fica ainda melhor.

Vamos pegar a saída de um comando e colocá-lo em um arquivo:

ls –al / > ~/rootlist

Fazer listas de arquivos, editá-los e executar comandos naqueles que você deseja nunca foi tão simples. E, enquanto estamos fazendo essas funções básicas na linha de comando, elas funcionam bem em scripts também.
Fazer listas de arquivos, editá-los e executar comandos naqueles que você deseja nunca foi tão simples. E, enquanto estamos fazendo essas funções básicas na linha de comando, elas funcionam bem em scripts também.

Tubulação ou Encadeamento

Piping é assim chamado porque usa o pipe, (|; compartilhado com a tecla na maioria dos teclados). Essencialmente, ele pega a saída de um comando e o alimenta diretamente para outro. Você pode criar longas cadeias de comandos para obter uma saída desejada muito específica e é muito conveniente para comandos como o grep.

Ele age muito parecido com ">", mas pode ser encadeado várias vezes e seu efeito é mais geral, pois não precisa passar por um arquivo de texto.
Ele age muito parecido com ">", mas pode ser encadeado várias vezes e seu efeito é mais geral, pois não precisa passar por um arquivo de texto.

Como você pode ver, o grep faz distinção entre maiúsculas e minúsculas. Você pode usar o sinalizador "-i" para ignorar o caso.

Image
Image

Redirecionando Entradas

Você também pode obter entradas de arquivos para comandos usando o símbolo de menor que (<).

cat < list

"Isso não é diferente de usar um argumento!", Você pode dizer. Bem, você estaria correto neste caso. Onde o redirecionamento de entrada realmente é útil em encadear comandos juntos.
"Isso não é diferente de usar um argumento!", Você pode dizer. Bem, você estaria correto neste caso. Onde o redirecionamento de entrada realmente é útil em encadear comandos juntos.

Digamos que queremos filtrar qualquer palavra que tenha "interesse" em nosso arquivo "lista" atual para um novo arquivo chamado "revisões".

grep pep < list > revisions

Vamos refazer este comando e adicionar alguma classificação.
Vamos refazer este comando e adicionar alguma classificação.

grep pep < list | sort > revisions

Isso usará “pep” como o termo de pesquisa da “lista” do arquivo de entrada, classificá-lo em ordem alfabética (todos os termos maiúsculos seguidos por todos os termos minúsculos) e, em seguida, enviá-lo para o arquivo “revisions”.
Isso usará “pep” como o termo de pesquisa da “lista” do arquivo de entrada, classificá-lo em ordem alfabética (todos os termos maiúsculos seguidos por todos os termos minúsculos) e, em seguida, enviá-lo para o arquivo “revisions”.

Para ilustrar o comando sort, vamos ver o exemplo a seguir:

Como você pode ver, adicionar o sinalizador “-f” ao comando sort permite que você ignore o caso. Isso facilita a classificação de linhas em arquivos de texto e ignora a capitalização quando isso não importa.
Como você pode ver, adicionar o sinalizador “-f” ao comando sort permite que você ignore o caso. Isso facilita a classificação de linhas em arquivos de texto e ignora a capitalização quando isso não importa.

Um script simples

Vamos criar um script que tenha o seguinte formato:

script searchterm listfile

Ele pegará o termo e usará o grep para pesquisar em um arquivo de lista, classificar os resultados e, em seguida, enviá-los para outro arquivo.

Aqui está o diretório no qual testaremos o script:
Aqui está o diretório no qual testaremos o script:
E podemos criar uma lista do que aqui e depois executar o script.
E podemos criar uma lista do que aqui e depois executar o script.
Ai está! Quanto mais você aprende as regras das expressões regulares, mais precisamente você pode montar um comando de busca. E tudo o que é válido entre aspas pode ser substituído pelo seu primeiro argumento!
Ai está! Quanto mais você aprende as regras das expressões regulares, mais precisamente você pode montar um comando de busca. E tudo o que é válido entre aspas pode ser substituído pelo seu primeiro argumento!

Quanto à classificação, você pode fazer mais do que apenas ordenar alfabeticamente. Dê uma olhada na página man para alguns dos seguintes comandos:

  • tsort - uma função de classificação topológica mais avançada
  • tr - permite mapear caracteres específicos para outros personagens e transcrevê-los.
  • uniq - remove qualquer não-exclusivo (read: duplicate)
  • awk - uma linguagem / função de processamento de texto realmente avançada que pode ser usada para separar campos em nomes de arquivos
  • cut, paste / join - comandos úteis para isolar campos de arquivos de texto e adicionar novos dados em colunas
  • look - pesquisas como o grep, mas usa um arquivo de dicionário (que pode ser especificado pelo usuário) para a pesquisa
  • wc - permite obter contagem de palavras, contagem de linhas, contagem de caracteres e muito mais

Nós demos uma olhada em mais alguns conceitos básicos hoje que podem ser tão úteis na linha de comando quanto nos scripts. Os dados baseados em texto são muitas vezes o cerne das coisas que usamos diariamente, por isso poder trabalhar com ele, pesquisá-lo e manipulá-lo é fundamental.

Quais são alguns dos seus scripts favoritos? Tem algum script de uso especial para arquivos baseados em texto? Compartilhe o que você sabe nos comentários!

Recomendado: