Comandos Básicos do Linux

Segue abaixo uma lista de comandos do Linux, sempre alguem (como eu) esquece algum comando, então ...

Comandos básicos

ls [-al]: listagem do diretório.
cp [-ir]: copiar arquivos.
mv [-i]: mover ou renomear arquivos.
rm [--]: deletar arquivos.
mkdir/rmdir: cria/deleta diretórios.
ln -s path link: cria links simbólicos (symlinks) para arquivos ou diretórios.

Outros comandos

file: determina o tipo do arquivo (/etc/magic).
cat: exibe o conteúdo do arquivo na tela.
head / tail: exibe linhas no inicio / fim do arquivo.
less / more: lista o conteúdo do arquivo.
man filename: manual online do programa.
ctrl+alt+del/reboot: reinicia o sistema.
shutdown -h now/halt: desliga o computador.

Combinações

CTRL+C: sai (kill) do programa.
CTRL+ALT+BackSpace: sai (kill) do servidor X.
CTRL+L: limpa a tela.
CTRL+A / E: move o cursor para o início / fim da linha.
CTRL+U / K: deleta da posição do cursor até o início / fim da linha.
CTRL+H: deleta palavra anterior ao cursor.
CTRL+R: busca comando digitado no history do bash.
CTRL+D: logout (para isto altere ou unset a var. $IGNOREEOF).

Mais no terminal

stty -a: lista configurações do terminal.
reset: reseta o terminal (volta ao normal).
(SHIFT)PGUP/PGDN: barra de rolagem do bash.
TAB: auto-completa os comandos digitados no terminal.
MOUSE2/3: cola o texto selecionado (gpm).
CTRL+S (Scroll Lock): desabilita o vt.
CTRL+Q (Scroll Lock): habilita o vt (tente isto caso o terminal trave).
ALT+Fx: muda de console.
CTRL+ALT+Fx: muda de console em modo gráfico.

Usuários

w: informações gerais sobre usuários logados e seus processos.
who: informações dos usuários atuais (do utmp)
last: listagem do histórico de logins (/var/log/wtmp)
lastlog: retorna informações sobre últimos logins.

Processos

CTRL+Z: suspende o processo temporariamente.
top: os processos que consomem mais recursos do sistema.
jobs: lista as tarefas rodando em fore/background.
bg/fg: manda processo para o back/foreground.
nice/renice: altera prioridades.
ps -auxw: lista todos os processos do sistema:
PID (process id), TTY (terminal ou ? caso seja um daemon), STAT (estado do processo), TIME (tempo de CPU consumido), COMMAND (o comando executado).
pstree -p: idem.
time: calcula o tempo decorrente do início ao término de um processo.
# time updatedb
real 1m42.233s
user 0m0.490s
sys 0m10.290s

Matando processos

kill: as opções mais comuns são (onde id é o mesmo que PID):
kill -HUP id-do-processo: reinicia processo.
kill -9 id-do-processo: mata processo.
killall processo: mata processo pelo nome.
killall -HUP processo: reinicia processo pelo nome.

Sistema

df -h (espaço livre e ocupado nos discos)
du -sh(x) (espaço ocupado pelo diretório e seus subdiretórios)
Informações do sistema:
free: status da memória e swap.
vmstat: status da memória virtual (processos, cpu).
lsdev, lspci: listagem do hardware/dispositivos pci.
pnpdump: retorna configuração das placas ISA PnP.
lsmod / rmmod: lista/remove módulos na memória.
procinfo: cat /proc ;)
Informações do ambiente X:
xdpyinfo: recursos do servidor X.
showrgbq: retorna a database de cores rgb.
xlsfonts: lista as fontes reconhecidas pelo X.
xset m 5/2 1: ajusta a velocidade e acel. do mouse.

Rede

Listando processos listening na porta 80 e seus PIDs
lsof -n -i:80 (-i4: ipv4 e -n: sem resolver hostnames)
fuser -v 80/tcp (lista processos que escutam na porta tcp 80 em modo ps-like)

Pipes e Redirecionamentos...

Através de 'pipes', a saída de um comando (stdout [file descriptor 1]) é passada como a entrada (stdin) do outro. Em geral, a saída é o terminal e a entrada o teclado. Exemplos:
dmesg less ; ls -l more
echo "Broadcast Message" wall
Através de '<' e '>' é possível definir qual será o stdin e o stdout. Exemplos:
dmesg > dmesg.txt ; more <>> list.txt (concatena)
O sinal de maior é equivalente ao comando tee.
E para alterar o stderr (mensagens de erro [file descriptor 2]):
ls /admin > list.txt 2>erros.txt (se o diretório não existir, o stderr será o erros.txt e o stdout o list.txt)
ls /admin > list.txt 2>&1 listagem_e_erros.txt (se houver, erros serão repassados para o mesmo local que o stdout)

Operadores Lógicos

&&: 'e' (retorna true se todas as expressões forem verdadeiras)
pipe pipe: (simbolo que esta junto com a \ no teclado) 'ou' (retorna true se uma das expressões forem verdadeiras)
O sinal ';' executará ambas as expressões independente do retorno. Por exemplo:
make ; make install (os comandos serão executados em sequência)
make && make install (o segundo comando somente será executado se o primeiro não retornar erro)

Nenhum comentário: