Comandos Básicos no Linux Material desenvolvido por Rafael Fernando Diorio Última revisão em 04/08/2013 www.diorio.com.br rafael@diorio.com.br
Tópicos Primeiros comandos Metacaracteres Paginação e filtros de arquivos Canalização e redirecionamento Empacotamento e compactação Localização de arquivos e conteúdos Ligações simbólicas e absolutas Tempo de uso e acesso ao sistema Utilizar a ajuda do sistema Comandos úteis
Primeiros comandos: Acessar e encerrar o sistema Assim como em outros sistemas operacionais, para acessar o Linux é necessário fornecer um login e uma senha de acesso... Uma vez logado no sistema, para encerrar sua sessão pode-se utilizar os comandos exit ou logout... Dica: É possível realizar essa mesma função combinando as teclas CTRL+D. Se objetivo é reiniciar o sistema, pode-se utilizar os comandos reboot ou shutdown -r now... Por fim, para desligar o sistema, pode-se utilizar os comandos shutdown -h now, halt ou poweroff.
Primeiros comandos: Listar arquivos e limpar a tela Para listar os arquivos dos diretórios do sistema utiliza-se o comando ls... Se nenhum diretório for especificado, o ls listará o conteúdo de seu diretório atual. Alguns parâmetros comuns ao ls são o -a (listar arquivos ocultos), -l (listagem em colunas) e -R (listagem recursiva), além de outros... Obs.: Também é possível listar conteúdos utilizando curingas como o * ( *.conf, arq*, etc.), dentre outros. Para limpar a tela do terminal, utiliza-se o comando clear... Dica: A combinação de teclas CTRL+L realiza a mesma função.
Primeiros comandos: Alternar entre diretórios Para navegar na estrutura de diretórios do sistema, utiliza-se o comando cd seguido do diretório desejado... Se nenhum diretório for especificado ou se especificado o parâmetro ~, o cd o levará para seu diretório pessoal; Quando utilizado,. refere-se ao diretório atual e.. refere-se a um nível acima de seu diretório atual. Para visualizar sua localização na estrutura de diretórios do sistema, utilize o comando pwd. Obs.: Por mais simples que pareça, inicialmente, a navegação entre diretórios do sistema gera muita dúvida... Ex.: cd dados ou cd /dados?
Primeiros comandos: Criar e remover arquivos A forma mais comum para criar e editar arquivos é a partir de um editor de textos (como o Vi, por exemplo)... Obs.: O Vi será discutido mais adiante. Para criar arquivos em branco, pode-se utilizar o comando touch seguido do(s) arquivo(s) desejado(s)... Ex.: touch arq1.txt /dados/arq2.txt /etc/arq3.txt Para remover esses (ou outros) arquivos, utiliza-se o comando rm... Ex.: rm arq1.txt /dados/arq2.txt /etc/arq3.txt Obs.: Também é possível remover arquivos utilizando curingas como o * ( *.conf, arq*, etc.), dentre outros.
Primeiros comandos: Criar e remover diretórios Para criar novos diretórios, utiliza-se o comando mkdir seguido do(s) novo(s) diretório(s)... Ex.: mkdir pasta001 /dados/pasta002 /etc/pasta003 Obs.: Para criar toda a estrutura de diretórios de uma única vez, pode-se utilizar o parâmetro -p... Ex.: mkdir -p /dados/pasta001/pasta001.1/pasta001.1.1 Para remover esses (ou outros) diretórios, pode-se utilizar o comando rm combinado aos parâmetros -rf... Ex.: rm -rf pasta001 /dados/pasta002 /etc/pasta003 Obs.: Mesmo sendo pouco utilizado, também é possível remover diretórios (apenas quando vazios) através do comando rmdir.
Primeiros comandos: Copiar arquivos e diretórios Para copiar arquivos do sistema, utiliza-se o comando cp seguido do arquivo que será copiado e de seu local de destino... Ex.: cp arq001.txt /dados Obs.: Durante a cópia, se desejado, pode-se alterar o nome do arquivo copiado... Ex.: cp arq001.txt /dados/arquivo001.txt Para copiar diretórios (e seus respectivos conteúdos), basta acrescentar o parâmetro -R ao cp... Ex.: cp -R pasta001 /dados
Primeiros comandos: Mover arquivos e diretórios Para mover arquivos e diretórios, utiliza-se o comando mv assim como o comando cp... Ex. 1: mv arq001.txt /dados Ex. 2: mv pasta001 /dados Observe que não é necessário utilizar o parâmetro -R para mover diretórios (como ocorre com o comando cp )... Se desejável, o comando mv também pode ser utilizado para renomear arquivos e diretórios... Ex. 1: mv arq1.txt arq001.txt Ex. 2: mv pasta1 pasta001
Metacaracteres Metacaracteres (ou caracteres curinga ) são símbolos que tornam algumas tarefas do sistema mais simples de serem realizadas... Tipicamente utilizados na listagem, cópia, movimentação e remoção de arquivos e diretórios. Os símbolos mais utilizados são:? (interrogação): substitui um único caractere; Ex. 1: rm -rf /etc/pasta00? Ex. 2: ls /etc/rc?.d E, * (asterisco): substitui um conjunto de caracteres. Ex. 1: ls /etc/*.conf Ex. 2: cp *.txt /dados
Metacaracteres (cont.) Outros símbolos que podem ser utilizados são: [ ] (colchetes): especificam faixas para substituição de caracteres; Ex. 1: ls /etc/rc[1-2,5].d Ex. 2: cp -R pasta00[1-5] /dados E, { } (chaves): especificam palavras para auxiliar na tarefa solicitada. Ex. 1: ls /etc/{cron,cups}* Ex. 2: ls /etc/*.{conf,db} Observe que é possível combinar um ou mais metacaracteres, como o asterisco com as chaves ou colchetes, por exemplo.
Paginação e filtros de arquivos: Concatenar arquivos Pode-se utilizar o comando cat para concatenar arquivos e listar o resultado na saída padrão... Ex.: cat arq001.txt arq002.txt Se apenas um arquivo for especificado, então somente ele será listado na tela do terminal... Obs.: Para numerar as linhas durante a concatenação, podese utilizar o parâmetro -n. Para inverter as linhas (da última para a primeira linha) dos arquivos concatenados, pode-se utilizar o comando tac... Ex.: tac arq001.txt arq002.txt
Paginação e filtros de arquivos: Filtrar a paginação de tela Pode-se visualizar os conteúdos de arquivos ou filtrar a paginação de telas através dos comandos less ou more... Ex. 1: less /etc/protocols Ex. 2: more /etc/protocols A principal diferença entre ambos é que o less possibilita a navegação de forma mais simplificada que o more. Obs.: Para visualizar o help do less ou do more, tecle h durante a utilização de um ou de outro.
Canalização e redirecionamento Canalizamos um comando quando direcionamos o resultado de sua saída para a entrada de um outro comando (utilizando o pipe )... Ex. 1: ls -l /etc less Ex. 2: cat /etc/passwd cut -d : -f 1 sort tee usuarios.txt Outra possibilidade é redirecionar resultados ou mensagens de erro para outro local (utilizando os sinais de > e >> )... Ex. 1: echo Rafael Fernando Diorio > nome.txt Ex. 2: cat /etc/protocols /etc/services nl >> arquivao.txt Ex. 3: cat /etc/shadow 2> /dev/null (execute como usuário comum )
Empacotamento e compactação: Empacotando arquivos O comando tar é utilizado para empacotar ( arquivar ) e desempacotar arquivos no Linux... Também é uma das ferramentas mais utilizadas para a realização de backups simples (tipicamente dos arquivos do sistema) no Linux... Permite empacotar ou desempacotar um sistema de arquivos inteiro em um único arquivo (.tar) ou diretamente em uma mídia de backup... Vale ressaltar que o comando tar não compacta os dados, somente empacota... Para obter este efeito, é necessário combiná-lo com algum compactador de arquivos;
Empacotamento e compactação: Empacotando arquivos (cont.) Exemplos: Empacotando arquivos: tar cvf dados.tar /dados tar cvf backup.tar /home /etc /dados tar cvf backup.tar /home /etc /dados --exclude /dados/tmp Exemplos: Listando arquivos empacotados: tar tvf dados.tar Exemplos: Desempacotando arquivos: tar xvf dados.tar tar xvf backup.tar -C /restore tar xvf dados.tar dados/arq1.txt tar xvf backup.tar -C /restore dados/arq1.txt
Empacotamento e compactação: Compactando arquivos Existem diversas ferramentas para compactar e descompactar arquivos no Linux: gzip/gunzip zip/unzip bzip2/bunzip2 outros A diferença básica entre elas está na velocidade e proporção de compactação e descompactação... Destas ferramentas, gzip/gunzip e bzip2/bunzip2 são algumas das mais utilizadas para compactar/descompactar arquivos no Linux.
Empacotamento e compactação: Compactando arquivos com gzip É praticamente o compactador padrão do Linux... Possui uma ótima taxa de compactação e velocidade... A extensão dos arquivos compactados pelo gzip é a.gz ; Exemplos: Compactando arquivos: gzip -r /dados/* gzip dados.tar gzip -9 dados.tar Exemplos: Descompactando arquivos: gunzip -r /dados/* gunzip dados.tar.gz gunzip dados.tgz
Empacotamento e compactação: Compactando arquivos com bzip2 É um dos compactadores mais utilizados do Linux... Possui taxa de compactação melhor que o gzip, porém requer mais recursos da máquina... A extensão dos arquivos compactados pelo bzip é a.bz2 ; Exemplos: Compactando arquivos: bzip2 dados/* bzip2 dados.tar bzip2-9 dados.tar Exemplos: Descompactando arquivos: bunzip2 /dados/* bunzip2 dados.tar.bz2
Empacotamento e compactação: Compactando arquivos com outros compactadores Conforme descrito anteriormente, há uma infinidade de compactadores de arquivos no Linux... Se, ao se deparar com algum arquivo compactado, você não souber com qual descompactador pode abri-lo, faça uma pesquisa no sistema/web pela extensão do arquivo compactado... Segue abaixo (e no próximo slide), outras extensões comuns para arquivos compactados no Linux e seu respectivo descompactador:.zip: Arquivo compactado pelo programa zip. Use o programa unzip para descompactá-lo;.rar: Arquivo compactado pelo programa rar. Use o programa unrar para descompactá-lo;
Empacotamento e compactação: Compactando arquivos com outros compactadores (cont.) Extensões e compactadores comuns (cont.).z: Arquivo compactado pelo programa compress. Use o programa uncompress para descompactá-lo; 7z: Arquivo compactado pelo programa 7-Zip. Use o programa p7zip para descompacta-lo;.tgz: Abreviação para.tar.gz. Para descompactá-lo, você pode usar o gunzip e depois o tar;.tar.z - Arquivo compactado pelo programa compress no utilitário de arquivamento tar. Para descompactá-lo, você pode usar o uncompress e depois o tar.
Empacotamento e compactação: Empacotando e compactando arquivos É possível combinar o empacotador tar com compactadores como o gzip e o bzip2, por exemplo, para empacotar e compactar arquivos de forma simultânea... Exemplos: Empacotando e compactando arquivos: tar cvfz backup.tar.gz /home /etc /dados tar cvfj backup.tar.bz2 /home /etc /dados Exemplos: Desempacotando e descompactando arquivos: tar xvfz backup.tar.gz tar xvfj backup.tar.bz2 Para consultar os arquivos empacotados/compactados, basta substituir o parâmetro x (acima) por t.
Localização de arquivos e conteúdos: Pesquisar na estrutura de diretórios Para realizar pesquisas na estrutura de diretórios do sistema, pode-se utilizar o comando find seguido do critério desejado... Ex. 1: find / -name arquivo.txt Ex. 2: find /home -user rafael.diorio Ex. 3: find /home -empty Ex. 4: find / -type f Ex. 5: find /home -name '*.tmp' -exec rm -f '{}' \; Ex. 6: find / -perm 777 Observe que o comando find é bastante flexível e, dependendo de seu critério de pesquisa, bastante eficiente.
Localização de arquivos e conteúdos: Pesquisar em bases de dados O comando updatedb cria uma base de dados de nomes de arquivos do sistema... O comando locate pesquisa por arquivos na base de dados criada pelo updatedb... Desta forma, basta utilizar ambos os comandos em sequência... Ex.: updatedb locate arquivo.txt Obs.: Em /etc/updatedb.conf são definidos alguns paths, sistemas de arquivos e tipos de arquivos que não serão considerados pelo updatedb.
Localização de arquivos e conteúdos: Localizar conteúdos em arquivos Para pesquisar conteúdos em arquivos pode-se utilizar o comando grep... Ex. 1: grep root /etc/passwd Ex. 2: grep -rl server = 172.17.0.1 /dados/sistema Também é possível combinar o grep com outros comandos do sistema... Ex. 1: ls -l /etc grep samba Ex. 2: cat /etc/passwd nl grep root Obs.: Para ignorar letras maiúsculas e minúsculas (o grep é case sensitive), acrescente o parâmetro -i ao grep.
Localização de arquivos e conteúdos: Localizar binários, fontes, manuais e o path Para pesquisar por arquivos executáveis, bem como seus fontes e suas páginas de manual, pode-se utilizar o comando whereis... Ex. 1: whereis ls Ex. 2: whereis shutdown Para exibir somente o path dos arquivos executáveis, além de seus aliases, caso existam, pode-se utilizar o comando which... Ex. 1: which ls Ex. 2: which shutdown Obs.: O comando type também pode ser utilizado para exibir informações de localização para binários do sistema e para seus aliases.
Ligações simbólicas e absolutas Utiliza-se o comando ln para criar ligações (links) em sistemas Linux... Essas ligações podem ser simbólicas (atalhos) ou absolutas (nome adicional para um arquivo)... Obs.: Ligações absolutas só funcionam para arquivos e no mesmo sistema de arquivos. Ligações simbólicas necessitam do parâmetro -s ao comando ln, enquanto ligações absolutas não necessitam de tal parâmetro... Ex. 1: ln -s arq001.txt /dados/atalho_arq001.txt Ex. 2: ln arq001.txt /dados/arq001.txt
Tempo de uso e acesso ao sistema Para visualizar o tempo de uso do sistema pode-se utilizar o comando uptime... Obs.: As informações de load average listadas se referem a média de carga do sistema nos últimos 1, 5 e 15 minutos. Para visualizar os usuários atualmente logados no sistema pode-se utilizar os comandos who ou w... Obs.: O comando w também mostra o que os usuários logados estão fazendo no sistema. Para visualizar a relação de todos os usuários que já se logaram ao sistema, pode-se utilizar o comando last.
Utilizar a ajuda do sistema Uma excelente fonte de ajuda está associada as páginas de manual de comandos e, quando disponíveis, arquivos do sistema... Para visualizar essas páginas de manual, basta utilizar o comando man seguido do comando/arquivo desejado... Ex. 1: man find Ex. 2: man smb.conf Para pesquisar páginas de manual com base em uma palavra-chave, pode-se utilizar o parâmetro -K do man... Ex. 3: man -K shutdown Outros comandos que podem ser utilizados para auxiliar na ajuda do sistema são os comandos help e info.
Comandos úteis Alguns comandos úteis do sistema são: Comando uname : para exibir informações do sistema; Ex.: uname -a Comando lsb_release : para exibir informações da distribuição Linux; Ex.: lsb_release -a Comando date : para exibir ou alterar data e hora do sistema; Ex.: date Comando history : para exibir o histórico de comandos digitados no sistema; Ex.: history
Comandos úteis (cont.) Alguns comandos úteis do sistema são (cont.): Comando sort : para ordenar linhas; Ex.: sort /etc/passwd Comando nl : para listar conteúdos numerando linhas (que não estejam em branco ); Ex.: nl /etc/services Comando wc : para contar linhas, palavras e caracteres; Ex.: wc /etc/services Comando tee : para copiar resultados da entrada padrão para a saída padrão e para arquivos adicionais; Ex.: ls -l tee listagem.txt
Comandos úteis (cont.) Alguns comandos úteis do sistema são (cont.): Comando head : para visualizar o início de um arquivo ; Ex.: head -5 /etc/services Comando tail : para visualizar o final de um arquivo ; Ex.: tail -5 /etc/services Ex.: tail -f /var/log/messages Comando tr : para, individualmente, alterar ou apagar caracteres de um arquivo ; Ex.: cat nome.txt tr a-z A-Z Ex.: cat nome.txt tr aeiou AEIOU Ex.: cat nome.txt tr '[:space:]' -
Comandos úteis (cont.) Alguns comandos úteis do sistema são (cont.): Comando cut : para exibir determinadas colunas (seções) de um arquivo ; Ex.: cut -c 1-5 nome.txt Ex.: cut -d : -f 1 /etc/passwd Comando paste : para fazer um merge das linhas de um arquivo ; Ex.: paste -s -d - nome.txt Comando join : para unir cada par de linha encontrada em dois arquivos distintos em uma única linha; Ex.: join lista001.txt lista002.txt
Comandos úteis (cont.) Alguns comandos úteis do sistema são (cont.): Comando diff : para comparar e exibir a diferença entre arquivos; Ex.: diff lista-v1.txt lista-v2.txt Comando split : para dividir um grande arquivo em arquivos menores (de tamanho fixo); Ex.: split -b 100k arquivao.txt arquivao.txt- Comando expand : para converter tabulações em espaços; Etc. Ex.: expand -t 10 nome.txt
Considerações... Outros comandos serão abordados para questões/funcionalidades específicas do sistema, tais como: Gerenciamento de pacotes, programas e processos; Gerenciamento de usuários e grupos; Gerenciamento de permissões e propriedades de arquivos; Gerenciamento de disco e sistemas de arquivos; Gerenciamento do ambiente shell; E, gerenciamento de rede, dentre outros. Para mais informações, vide tais materiais de aula.
Dúvidas e/ou sugestões? Participe... questione... sugira... pratique... Aprimore seus conhecimentos e ajude a melhorar as nossas aulas! :-)
Referências [1] CentOS Project em http://www.centos.org; [2] CentOS Documentation disponível em http://www.centos.org/docs; [3] Guia Foca/GNU Linux em http://www.guiafoca.org/; [4] Livro "Dominando Linux: Red Hat e Fedora" dos autores Bill Ball e Hoyt Duff. Editora Pearson - 2004; [5] Red Hat Enterprise Linux em http://www.redhat.com; [6] Red Hat Enterprise Linux Documentation disponível em http://www.redhat.com/docs/manuals/enterprise.