Curso de extensão da Faculdade Ruy Barbosa Introdução a Administração de Sistemas GNU/Linux Dedicasse especial a Rogério Bastos e ao GRACO (Gestores da Rede Acadêmica de Computação) do DCC UFBA Paul Regnier
Shell (parte 2)
Histórico de Comandos O bash armazena numa lista os comando executados anteriormente O tamanho dessa lista é definido pelas variáveis HISTFILESIZE e HISTSIZE Normalmente, o histórico de comandos é armazenado no arquivo ~/.bash_history A função history exibe o histórico de comandos
Histórico de Comandos É possível repetir comando listados no histórico O comando atual é a última linha do histórico!! Executa o último comando!n Executa o n-ésimo comando (a partir do início da lista)!-n!string!?string ^string1^string2 Executa o n-ésimo comando (a partir do final da lista) Executa o último comando que inicia com string Executa o último comando que contém string Executa o último comando, substituíndo string1 por string2
Histórico de Comandos Algumas teclas de atalhos podem ser utilizadas para navegar pelo histórico Ctrl + p (seta para cima) Ctrl + n (seta para baixo) Ctrl + b (seta para esquerda) Ctrl + f (seta para a direita) Ctrl + a (tecla Home) Ctrl + e (tecla End) Ctrl + l Ctrl + k Ctrl + y Ctrl + rstring Comando anterior Próximo comando Caractere anterior Pŕoximo caractere Início da linha Final da linha Limpa a tela Recorta o que estiver a direita do cursor Cola o que foi recortado Busca string no histórico
Substituição de Comandos O bash permite substituir um comando pelo resultado da execução deste $(command) é substituído pela sua saída # SYSTEMSTRING=$(uname) # echo $SYSTEMSTRING Linux
Substituição de Comandos Uma outra forma de realizar substituição de comandos é com o uso de crases # SYSTEMSTRING=`uname` # echo $SYSTEMSTRING Linux Contudo, essa sintaxe possui regras especiais referentes aos metacaracteres do bash
Comandos
Comandos Recursivos Alguns programas possuem a habilidade de funcionar recursivamente (e.g. chmod) $ chmod -R g+w /home/usuario Para os programas não possuem esta funcionalidade é possível utilizar o comando find com a opção -exec para superar essa limitação $ find /home/usuario -name "*.c" -exec rm -f {} \;
Manpages Existem manuais para arquivos importantes, bibliotecas, shells, linguagens, dispositivos, comandos, etc Os manuais estão agrupados em seções: Seção Descrição 1 Programas 2 Funções do sistema 3 Funções de bibliotecas 4 Arquivos especiais 5 Formatos de arquivos e convenções 6 Games 7 Diversos 8 Administração do Sistema
Sintaxe man [options] [section] name Manpages Opções -a: exibe todos os manuais com o nome dado -k: busca por manpages contendo uma dada string -w: imprime a localização, invés de exibir o manual
Manpages Exemplo # man mkfifo # man -aw mkfifo /usr/share/man/man1/mkfifo.1.gz /usr/share/man/man3/mkfifo.3.gz
Gerenciamento de Arquivos O comando file exibe o tipo do arquivo Sintaxe file [options] [file] Exemplo $ file /etc/passwd /etc/passwd: ASCII text
Gerenciamento de Arquivos O comando touch atualiza o horário de acesso e/ou modificação de um arquivo ou diretório Sintaxe Opções touch [options] files -a: altera apenas o tempo de acesso -m: altera apenas o tempo de modificação -t timestamp: especifica o timestamp a ser utilizado
Gerenciamento de Arquivos Exemplo # touch file1 # touch dir1 # touch -a file2 # touch -m file3 # touch -t 200101121845 file5 (January 12, 2001, at 6:45 p.m.)
Gerenciamento de Arquivos O comando cp copia arquivos ou diretórios Sintaxe Opções cp [options] file1 file2 cp [options] files directory -a: preserva todas as propriedades (dono, grupo, permissão, etc) -d: preserva os links simbólicos -r: copia recursivamente
Gerenciamento de Arquivos Exemplo # cp file1 file2 # cp file1 /dir1 # cp /path/to/file1 /other/path/to/file2 # cp -r dir1 dir2 # cp -a dir3 dir4 # cp file1 file2 file3 file4 /path/to/dir1
Sintaxe mv [options] source target Gerenciamento de Arquivos O comando mv move ou renomeia arquivos e diretórios Exemplo # mv file1 file2 # mv file1 dir1 # mv dir1 dir2
Gerenciamento de Arquivos O comando rm remove um ou mais arquivos e/ou diretórios Sintaxe rm [options] files Opções -r: remove recursivamente -i: pergunta antes de remover cada arquivo
Gerenciamento de Arquivos Exemplo # rm file1 # rm -i file1 # rm -r dir1
Sintaxe mkdir [options] directories Gerenciamento de Arquivos O comando mkdir cria um ou mais diretórios Opções Exemplo -m: define as permissões em octal -p: cria todos os diretórios necessários # mkdir -m 444 personal # mkdir -p ~/dir1/dir2/dir3
Gerenciamento de Arquivos O comando rmdir remove diretórios vazios Sintaxe rmdir [option] directories Exemplo # rmdir emptydir
Gerenciamento de Arquivos O comando gzip (gunzip) compacta (descompacta) arquivos utilizando a codificação Lempel-Ziv Sintaxe Exemplo gzip [options] [filenames...] gunzip [options] [filenames...] # gzip /etc/largefile # gunzip /etc/largefile.gz
Gerenciamento de Arquivos O comando bzip2 (bunzip2) compacta (descompacta) arquivos utilizando o algoritmo de Burrows-Wheeler e a codificação de Huffman Sintaxe Exemplo bzip2 [options] [filenames...] bunzip2 [options] [filenames ] # bzip2-9 /etc/largefile # bunzip2 /etc/largefile.bz2