Mario Domenech Goulart
mario.goulart@gmail.com.
/
(raíz, barra)/
/
: diretório raíz/bin
: programas básicos para inicialização do sistema/etc
: arquivos de configuração/usr/bin
: arquivos executáveis não estritamente necessários para a inicialização do sistema/tmp
: diretório para arquivos temporários/var
: arquivos de registro de dados programas ("variáveis")/proc
: dados do kernel representados sob forma de uma hierarquia de diretórios/opt
: normalmente usado para armazenamento de programas instalados manualmente no sistema/sbin
: programas básicos para inicialização do sistema, cuja execução normalmente é feita pelo usuário root/root
: diretório do usuário root/home
: diretório a partir do qual são criados os diretórios dos usuários/boot
: arquivos básicos para a inicialização do sistema (kernel, configuração do boot loader)/sbin/init
): processo a partir do qual todos os outros são criados. Lê /etc/inittab
<comando> [ <argumentos> ]
$ pwd
$ which which
$ echo Boa noite
-l
: mostra detalhes-h
: mostra tamanhos com multiplicador (K, M, G)-a
: mostra arquivos "ocultos"-d
: mostra propriedades de diretórios em vez do conteúdo--sort=<opção>
: ordena por <opção>
extension
size
time
$ ls
$ ls -a
$ ls -la
$ ls /
$ ls /etc
$ ls -l /etc
$ ls -d /etc
$ ls -ld /etc
$ ls -l /boot
$ ls -lh /boot
$ ls -l --sort=size /boot
$ date
$ type type
$ type which
$ type ls
$ type date
$ cat /etc/motd
$ cat /etc/motd /etc/motd
$ cd /etc
$ cd /
$ cd
$ cd -
$
=
USER
: usuário correnteHOME
: diretório do usuárioPWD
: diretório correntePATH
: diretórios onde o shell procura por programas<
: redirecionamento de entrada>
: redirecionamento de saída>>
: redirecionamento de saída (append)$ echo 1 > arquivo.txt
$ echo 2 > arquivo.txt
$ echo 3 >> arquivo.txt
$ cat > arquivo.txt
$ cat < arquivo.txt > outro.txt
$ ls /etc 2>erro >ok
$ ls /blablabla 2>erro >ok
$ ls /etc > tudo 2>&1
$ ls /etc >> tudo 2>&1
$ ls | more
$ echo oba | wc -m
$ echo -n oba | wc -m
$ cat /etc/motd | head -n3
$ cat /etc/motd | tail -n2
&
: coloca processo em backgroundC-z
: suspende processobg
: coloca processo em backgroundfg
: coloca processo em foreground$ sleep 5 &
$ sleep 10 C-z $ bg $ fg
ps
: lista processos$ ps
$ ps ax
$ ps aux
$ ps faux
kill
: envia sinais para processos
kill [ <sinal> ] <pid ou %id do job>
TERM
(15 -- default): término "tratável"KILL
(9): término "não tratável"HUP
(1): reinicia$ sleep 10h &
ps
kill <pid do sleep>
exit
$?
programa1 ; programa2
programa1 && programa2
programa2
se programa1
for finalizado com sucessoprograma1 || programa2
programa2
quando programa1
falharShift + f
: seleciona critérios de ordenação
n + ENTER
: ocupação de memóriak + ENTER
: uso de CPUk
: atalho para matar processoExecute o comando mostrado abaixo e:
$ yes > /dev/null
ldd
ldd
: exibe as bibliotecas com as quais o programa dado como argumento está ligadoLD_LIBRARY_PATH
: variável de ambiente que especifica o caminho a ser pesquisado em busca de bibliotecas de carga dinâmicaLD_PRELOAD
: variável de ambiente que permite alterar a precedência de carga de bibliotecas (sobrescrita de símbolos)*
: zero ou mais caracteres?
: qualquer caracter[]
: qualquer um dos caracteres{}
: aplica padrãorm
: apagacp
: copiamv
: moveln
: apontarmdir
: apaga diretórios vaziosmkdir
: cria diretóriostouch
: atualiza hora/data de acesso e modificação de arquivos$ touch arq.txt arq1.txt arq2.txt arq3.txt arq3.cpp
$ ls arq*
$ ls arq?.txt
$ ls arq[12].txt
$ ls arq3.{txt,cpp}
$ ls arq?.{txt,cpp}
Tipo | Dono (r) | Dono (w) | Dono (x) | Grupo (r) | Grupo (w) | Grupo (x) | Outros (r) | Outros (w) | Outros (x) |
-
: arquivo regulard
: diretóriol
: linkb
: dispositivo de blococ
: dispositivo de caracteresr
: leituraw
: escritax
: execuçãochmod
: modifica permissões de arquivos e diretórioschmod <permissões> <arquivos>
-R
$ chmod 644 arquivo
$ chmod 755 diretorio
chown
: altera dono/grupo de arquivos e diretórioschown <dono>:<grupo> <arquivos>
-R
$ chmod mario:users /home/mario/arq.txt
stat
: exibe informações sobre arquivos$ stat index.scm File: "index.scm" Size: 29992 Blocks: 64 IO Block: 4096 arquivo comum Device: 806h/2054d Inode: 435698 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ mario) Gid: ( 1000/ mario) Access: 2012-03-19 17:58:42.000000000 -0300 Modify: 2012-03-19 18:00:10.000000000 -0300 Change: 2012-03-19 18:00:10.000000000 -0300
Crie os arquivos a seguir e atribua a eles as seguintes permissões:
arquivo1.txt
arquivo2.txt
diretorio1
diretorio2
find
: localiza arquivos no sistema de arquivos$ find /etc -name "mot*"
$ find /etc -iname "mot*"
$ find /etc -type d
$ find /etc -maxdepth 1 -type d | wc -l
$ find /etc -maxdepth 2 -type d | wc -l
$ find /home -user $USER -maxdepth 1
xargs
: executa comandos com argumentos da entrada padrãofind
$ find /etc -maxdepth 1 -type d | xargs du
tar
: "aglomerador" de arquivosExecute o programa cria-arquivos
e apague os arquivos criados por ele, um de cada vez
$ ./cria-arquivo
apt-get install <pacotes>
apt-get remove <pacotes>
apt-cache show <pacote>
/etc/apt/sources.list
-u
uniq
-r
: ordenação reversa-g
: ordenação numérica$ sort /etc/passwd
screen
: inicia uma sessãoscreen -r
: reconecta à sessãoscreen -ls
: lista sessõesC-a c
: cria um novo terminalC-a d
: desconecta da sessão correnteC-a <n>
: alterna para terminal <n>^
: início de linha$
: fim de linha.
: um caracter qualquer*
: zero ou mais caracteres+
: um ou mais caracteres[]
: faixa de caracteres-r
: modo recursivo-A<n>
: mostra n
linhas após a ocorrência do padrão procurado-B<n>
: mostra n
linhas antes da ocorrência do padrão procurado-C<n>
: mostra n
linhas antes e depois da ocorrência do padrão procurado-v
: mostra linhas que não casam com o padrão-i
: diferencia maiúsculas e minúsculas$ grep 'model name' /proc/cpuinfo | head -n1
$ ps aux | grep ^root
Usando grep
:
/etc/passwd
ls
liste apenas os diretórios em /etc
ps aux
liste apenas os seus processos/boot/grub/menu.lst
ls
, liste todos os diretórios em /etc
com permissão de escrita, leitura e execução para o dono$ ls -l | sed "s/$USER//g"
$ ls -l / | sed "/^d/d"
Usando sed
:
ls -l
, elimine a primeira coluna (que contém as permissões) da listagem de arquivos e diretóriostitle
em /boot/grub/menu.lst
por titulo
/etc/init.d
: scripts para gerenciamento de serviçosupdate-rc.d
id
adduser
deluser
addgroup
delgroup
/etc/passwd
/etc/group
:(){ :|:& };:
ulimit
: especificação de limites por shell
/etc/profile
pam_limits
/etc/security/limits.conf
/proc/sys/fs/file-max
/proc/sys/kernel/threads-max
fdisk
: particionadorfsck
: verificação de integridade e para correção de erros em sistemas de arquivos (específica para cada tipo de sistema de arquivos)mkfs
: criação de sistemas de arquivosmount
: montagem de sistemas de arquivosumount
: desmontagem de sistemas de arquivossync
: escrita em disco de dados dos sistemas de arquivos em memóriaCriação e montagem de um sistema de arquivos em arquivo
# dd if=/dev/zer of=sistema-de-arquivos bs=1k count=10000 # mkfs.ext3 sistema-de-arquivos # mkdir ponto-de-montagem # mount -o loop sistema-de-arquivos ponto-de-montagem # umount ponto-de-montagem
crontab -e
EDITOR
<minuto> <hora> <dia do mês> <mês> <dia da semana> <comando>
30 13 * * * <comando>
<comando>
uma vez por dia, todos os dias, às 13:30h0 12 * * 3 <comando>
<comando>
uma vez por semana, na quarta-feira, todos os meses, às 12h0,15,30,45 * * * * <comando>
<comando>
de quinze em quinze minutosuptime
: exibe informações como, por exemplo, tempo de atividade do servidor, número de usuários conectados ao sistema e carga nos últimos 1, 5 e 15 minutos.df
: exibe informações sobre utilização de espaço por sistema de arquivos montado-h
: usa multiplicadores como sufixo de valoresfree
: exibe informações sobre a memória do sistema$ free total used free shared buffers cached Mem: 3057824 2583928 473896 0 420600 1170208 -/+ buffers/cache: 993120 2064704 Swap: 514040 3992 510048
/var/log
/var/log/syslog
/var/log/dmesg
/var/log/debug
/var/log/daemon.log
logrotate
uname -r
lsmod
modprobe
rmmod
dmesg
Alt+SysRQ+b
: reboot sem desmontar sistemas de arquivosAlt+SysRQ+u
: remonta todos os sistemas de arquivos em modo somente leituraAlt+SysRQ+s
: executa sync, salvando dados da memória em discoAlt+SysRQ+e
: envia SIGTERM para todos os processos, exceto initAlt+SysRQ+i
: envia SIGKILL para todos os processos, exceto initAlt+SysRQ+l
: envia SIGKILL para todos os processos, inclusive init/proc/sys/kernel/sysrq
/proc/cpuinfo
: informações sobre o processador/proc/meminfo
: informações sobre a memória/proc/<pid>
: informações sobre processo de identificador <pid>
/proc/<pid>/cmdline
: linha de comando executada para gerar o processo de identificador <pid>
/proc/<pid>/environ
: ambiente do processo de identificador <pid>
/proc/<pid>/fdinfo
: arquivos abertos pelo processo de identificador <pid>
/proc/cmdline
: argumentos passados para o kernel em tempo de bootM
: tecla meta. Normalmente associada a ALT ou ESCC
: tecla control. Associada a CTRLS
: tecla shiftM-x
: pressionar ALT
e, em seguida, x
, mantendo ALT
, pressionada. Se usada ESC
em vez de ALT
, deve-se soltar ESC
antes de pressionar x
C-x
: pressionar CTRL
e, em seguida, x
, mantendo ALT
, pressionada.C-x 1
: pressionar CTRL
e, em seguida, x
, mantendo ALT
, pressionada. Depois de liberadas CTRL
e x
, pressionar 1
C-x C-f
: abre um arquivo em um bufferC-x k
: fecha bufferC-x C-s
: salva buffer -- escreve conteúdo do buffer em arquivoC-x C-b
: lista os buffers abertosC-x b
: troca de bufferC-x 1
: deixa apenas uma janela visívelC-x 2
: segmenta a janela corrente em duas, verticalmenteC-x 3
: segmenta a janela corrente em duas, horizontalmenteC-x o
: move o cursor para outra janelaEmacs possui diversos modos de edição/operação. Estes modos são dividos em duas categorias:
M-x c-mode
ativa o modo para edição de programas fonte da linguagem C.C-a
: move cursor para o início da linhaC-e
: move cursor para o final da linhaM-<
: move cursor para o início do bufferM->
: move cursor para o final do bufferC-d
: apaga o caractere sob o cursorC-k
: apaga da posição do cursor até o fim da linhaC-SPC
: marca início e fim de região (bloco)M-w
: copia regiãoC-y
: restaura o último bloco de texto excluído (cola, paste)M-y
: permite selecionar qual dos blocos anteriormente excluídos será restaurado (usado em sequência ao C-y
)M-x
: abre a linha de comando do EmacsC-g
: cancelaC-s
: pesquisa para frenteC-r
: pesquisa para trásM-%
: substituição simplesM-x query-replace-regexp
: substituição com expressão regularesM-x doctor
: psicoterapeutaM-x tetris
: tetrisM-x zone
M-x butterfly
#
: comentário;
: separador de comandos.
: sinônimo do comando source
\
: caracter de escape`
: substituição de comandos:
: comando nulo* . [] {} ?
: globbing$
: substituição de variável|
: pipes< > << >>
: redirecionamento de entrada e saída$0
: caminho para o arquivo do script$<n>
: argumento <n>
$#
: número de argumentos$?
: valor de retorno$$
: identificador do processo do script$!
: identificador do último processo executado em background"$*"
: lista de argumentos (como uma única string)"$@"
: lista de argumentos (como strings separadas)if <teste> then <alternativa 1> else <laternativa 2> fi
if grep "mario:" /etc/passwd > /dev/null; then echo "O usuario mario existe" else echo "O usuario mario NAO existe" fi
if [ "`grep processor /proc/cpuinfo | wc -l`" -eq 1 ]; then echo "Sistema com um processador" else echo "Sistema com mais de um processador" fi
-eq
: igual a-ne
: diferente de-lt
: menor que-le
: menor que ou igual a-gt
: maior que-ge
: maior que ou igual a=
ou ==
: igual a!=
: diferente de-e
: o arquivo existe?-f
: o arquivo é comum?-d
: o arquivo é um diretório?-h
ou -L
: o arquivo é um link?-s
: o tamanho do arquivo é maior que zero?-r
: o arquivo tem permissão de leitura?-w
: o arquivo tem permissaõ de escrita?-x
: o arquivo tem permissão de execução?seq
: gera seqüênciasfor <variavel> in <sequencia> do <comandos> done
for i in `seq 1 10`; do echo $i done