Uma vez que começamos a usar a linha de comando no computador, fica até difícil voltar para a interface gráfica. Não só a manipulação de arquivos se torna mais rápida e fácil, mas há tarefas e funcionalidades que só são possíveis pela linha de comando. Para aqueles que se intimidam com a mudança, esta é uma lista simples dos principais comandos usados no meu primeiro ano com o Linux. Ao lado dos comandos, antes de explicar o que eles fazem, eu adicionei o que eles significam; primeiro porque isso ajuda a recordar melhor os comandos, segundo para ver como não há segredo, eles são bem explicativos.
Navegação pelo sistema de arquivos
O Linux usa um Sistema de Arquivos Hierárquico (Filesystem Hierarchy Standard ou FHS) para armazenar seus objetos. Tudo começa no root “/” e os arquivos, sejam eles arquivos comuns, diretórios, links, etc, são organizados a partir daí, como uma árvore.
pwd→ Print name of Currently Working Directory → mostra “onde você está” no sistema de arquivos.ls→ List Directory Contents → mostra o que tem no diretório “onde você está”.ls [caminho]→ também é possível listar o conteúdo de outros diretórios, escrevendo seu caminho absoluto ou relativo- Exemplo:
ls ~/Desktop→ independente em qual diretório o seu terminal estiver aberto, ele irá listar os conteúdos do Desktop.- Obs.: o Linux mantém o símbolo “~” como atalho para HOME.
- Exemplo:
ls -a→ usar o comando ls com a opção-a(all) lista, também, os arquivos ocultos.ls -l→ com a opção-l(long format), o conteúdo do diretório é listado um abaixo do outro e com muito mais informações: tipo de arquivo, permissões, qual usuário criou o arquivo, seu tamanho em bytes, data e hora da última modificação, dentre outros.ls -la→ é possível também combinar mais de uma opção; nesse exemplo, o comando tanto tista todos os arquivos (-a) quando os lista em formato longo (-l).
cd [caminho]→ Change Directory → muda “onde você está” no sistema de arquivos ao usar o comando com o caminho, absoluto ou relativo, do diretório onde quer chegar.cd ..→ O .se refere ao diretório atual e o .. se refere ao diretório pai do ponto onde você está no sistema de arquivos.
$ cd ~/Desktop
$ pwd
/home/Desktop
$ cd ..
$ pwd
/home
Manipulação de arquivos e diretórios
mkdir [diretório]→ Make Directory → cria um novo diretório (uma nova pasta).touch [arquivo]→ cria um arquivo vazio.cp [original] [cópia]→ Copy → cria uma cópia do arquivo comum.cp -r→ cria uma cópia de um diretório.cp -i→ a opção de interativo (-i) pode ser usado como medida contra a sobrescrita de arquivos, pois ele dá o aviso e pede a confirmação se é mesmo essa a ação que deseja fazer.
$ ls
original.txt
$ cp original.txt copia.txt
$ ls
original.txt copia.txt
mv [origem] [destino]→ Move → move um arquivo ou diretório, também pode ser usado para renomear o arquivo ou diretório.
$ ls
texto-01.txt texto-02.txt dir/
$ mv texto-01.txt dir/
$ ls
texto-02.txt dir/
$ cd dir/
$ pwd
/home/dir
$ ls
texto-01.txt texto-A.txt texto-B.txt
$ mv texto-01.txt texto-C.txt
texto-A.txt texto-B.txt texto-C.txt
rm [arquivo]→ Remove → apaga arquivos.rm -r [diretório]→ apaga arquivos de forma recursiva (-r), usado para apagar diretórios.rm -rf [diretório]→ força (-f) a operação anterior.
Visualização e edição de arquivos
cat [arquivo]→ Concatenate files → exibe o conteúdo de um arquivo no terminal a partir da primeira linha.cat [arquivo fonte] > [arquivo destino]→ o output de cat arq-1.txt (o conteúdo do arq-1.txt) sobrescreve o conteúdo do arq-2.txt.
$cat arq-1.txt
Arquivo 1
$cat arq-2.txt
Arquivo 2
$cat arq-1.txt > arq-2.txt
$cat arq-1.txt
Arquivo 1
$cat arq-2.txt
Arquivo 1
-
cat [arquivo fonte] >> [arquivo destino]→ o output de cat arq-1.txt (o conteúdo do arq-1.txt) é adicionado ao conteúdo do arq-2.txt.
$cat arq-1.txt
Arquivo 1
$cat arq-2.txt
Arquivo 2
$cat arq-1.txt > arq-2.txt
$cat arq-1.txt
Arquivo 1
$cat arq-2.txt
Arquivo 2
Arquivo 1
-
bat [arquivo]→ funciona como o cat, mas faz uso de cores, tornando o conteúdo de um código, por exemplo, mais legível. Precisa ser instalado.
echo [texto ou variável]→ mostra uma linha de texto ou variável de ambiente.
$echo linha de teste
linha de teste
$echo $HOME
/Users/host
-
echo [conteúdo] > [arquivo]→ o output do comando sobrescreve o conteúdo do arquivo.- Se o arquivo não existir, ele o cria já com o conteúdo.
- Assim como com o
cat,echo [conteúdo] >> [arquivo]→ adiciona o conteúdo ao arquivo ao invés de o sobrescrever.
nano [arquivo]→ abre um editor de texto no terminal; se o arquivo não existir, ele o cria.
Permissões e usuários
chmod [permissões] [arquivo]→ Change Mode → muda as permissões de um arquivo- Notação simbólica
| u | User → refere-se ao dono do arquivo ou diretório |
| g | Group → refere-se ao grupo que é dono do arquivo ou diretório |
| o | Others → outros ou todos, público |
| a | All → refere-se a todos |
| + | Adiciona permissão |
| – | Remove permissão |
| r | Read → pode ler / ver o arquivo |
| w | Write → pode editar o arquivo |
| x | Execute → pode executar o arquivo |
Então, se você escreveu um programa em bash e quer torná-lo em um script:
$echo echo “Hello, World” > print.sh
$./print.sh
permission denied
$chmod u+x print.sh
$./print.sh
Hello, World
sudo [comando]→ os comandos são executados pelo super usuário
Gerenciamento de pacotes
Grande parte dos software do Linux são encontrados na Internet em pacotes de arquivos
apt→ é o gerenciador de pacotes do Linux atual, substituindo oapt-get.apt update→ atualiza a lista de pacotes disponíveis nos repositórios já instalados, mas não instala nada novo.apt upgrade→ atualiza os pacotes já instalados com suas versões mais recentes, sem apagar outros pacotes.apt full-upgrade→ além de atualizar os pacotes, instala ou apaga pacotes para resolver dependências, se necessário.apt install→ instala novos pacotes no sistema.apt remove→ remove pacotes instalados, mas mantém seus arquivos de configuração.apt purge→ remove pacotes instalados junto com seus arquivos de configuração.apt autoremove→ remove pacotes instalados automaticamente como dependências que não são mais necessários.apt autoclean→ limpa o cache de pacotes antigos e obsoletos.
Então uma rotina comum no meu primeiro ano de Linux era algo como:
$sudo apt-get update
$sudo apt full-upgrade
$sudo apt install [nome do pacote]
$sudo apt autoclean
$sudo apt autoremove
Busca
grep→ filtra ou pesquisa por uma sequência.grep [filtro] [arquivo]→ pesquisa por uma sequência em um arquivo.grep -r [filtro] [diretório]→ pesquisa recursivamente por uma sequência em um diretório- Normalmente eu uso o
grepcom o pipeline (|) → o pipeline separa dois comandos e indica que o output do primeiro será o input do segundo
![]()
whereis [programa]→ retorna o caminho de onde esse programa foi instalado.find [caminho] -name [arquivo]→ retorna caminho onde se encontra os arquivos com o nome procurado.find / -name arquivo.txt→ procura arquivos com o nome arquivo.txt a partir da pasta raíz.find . -name arquivo.txt→ procura arquivos com o nome arquivo.txt a partir do diretório atual.- Opções úteis:
-name→ diferencia letras maiúsculas e minúsculas (type sensitive).-iname→ não diferencia maiúsculas e minúsculas.-type f→ para retornar apenas arquivos comuns-type d→ para retornar apenas diretórios*→ funciona como um coringafind . -name "*.html"→ retorna qualquer arquivo de extensão “.html” achados a partir com diretório atual
Rede e conectividade
ifconfig(mais obsoleto) ouip addrouip a→ exibem informações sobre as interfaces de rede.ping [endereço]→ verifica a conectividade com outro host, enviando pacotes exibindo, no final, quantos pacotes conseguiram chegar e quantos foram perdidos.traceroute [endereço]→ exibe o caminho que os pacotes percorrem até o endereço de destino.curl [endereço]→ faz requisições HTTP/HTTPS para um endereço. Pode ser usado para baixar atualizações ou na construção de um webcrawler:
Compactação e descompactação
tar [opções] [arquivo]→ agrupa e comprime ou descomprime arquivos nos formatos “tar” ou “tar.gz”.-c→ cria o arquivo.-x→ extrai do arquivo compactado.-t→ lista os arquivos em um arquivo compactado.
zip [arquivo]eunzip [arquivo]→ compacta e descompacta arquivos no formato “zip”.
Gerenciamento de processos
lsof→ List Open Files → mostra arquivos abertos, isso inclui dispositivos que, como dito, também são vistos como arquivos.lsof -i -P | grep LISTEN | grep :[porta]→ esse é o comando que eu mais uso; ele lista os processos escutando na porta especificada:lsof -i→ filtra os resultados para incluir apenas conexões de rede (TCP/UDP); mostra processos que estão enviando ou recebendo dados pela rede.lsof -P→ exibe os números das portas em vez de seus nomes; exemplo: exibe “porta 80” ao invés de “http”.grep LISTEN→ seleciona apenas as portas que estão abertas, “ouvindo” a conexões, ao invés deESTABLISHED, que indica uma conexão ativa.grep :[porta]→ seleciona apenas as linhas com a porta que eu especifico.
kill -9 [id do processo]→ encerra forçadamente o processo com o ID passado, que normalmente obtenho com o comando anterior.top→ mostra quais processos estão em execução, seus IDs, quanto de memória estão usando e a quem eles pertencem.htop→ uma ferramenta que funciona como o top, mas seu output é mostrado com cores, deixando as informações mais legíveis. Assim como o bat, precisa ser instalado:
$sudo apt install htop
Outros
- ^ + C → interrompe o comando em execução.
- q, [ESC] → usado para sair de ferramentas.
- ^ + R → busca reversa no histórico de comandos.
man [comando]→ exibe o manual completo de um comando.[comando] --help→ exibe informações resumidas sobre um comando.
Fontes
- Guia com mais de 500 comandos do Linux (Explicados)
- The Linux Command Line Fifth Internet Edition by William Shotts
- Hierarquia de Diretórios no Linux [Guia Básico]
- Qual é a diferença entre APT e APT-GET?
- LS command in Unix
- Why does ‘mv’ not need ‘-r’ to work with directories, but ‘rm’ and ‘cp’ do?
- ifconfig vs ip Qual é a diferença e comparação da configuração de rede?
- Comando ip no Linux (manipula interface de rede) [Guia Básico]
- O que é .tar.gz e como abrir e compactar nesse formato de arquivo
- Manage Your Linux System Resources With These 7 Terminal Commands
Views: 1974

