it-swarm-pt.tech

Recursos ocultos do Linux

64
Chris Bunch

Para começar, acho tela essencial:

Quando a tela é chamada, ela cria uma única janela com um Shell (ou o comando especificado) e sai do seu caminho para que você possa usar o programa como faria normalmente. Em seguida, a qualquer momento, você pode criar novas janelas (em tela cheia) com outros programas (incluindo mais shells), eliminar a janela atual, exibir uma lista das janelas ativas, ativar e desativar o log de saída, copiar texto entre janelas, visualizar o histórico de rolagem, alternar entre janelas, etc. Todas as janelas executam seus programas completamente independentes umas das outras. Os programas continuam em execução quando a janela não está visível no momento e mesmo quando a sessão de tela inteira é desanexada do terminal do usuário.

52
Chris Bunch

Talvez eu não os use todos os dias, mas os uso com frequência:

  • strace Confira quais arquivos são carregados pelo processo.
  • htop Um top melhor.
  • mtr ping + traceroute combinados
  • lynx / links / w3m Caso você precise navegar pelo console
  • ettercap Ótimo sniffer de rede (eu prefiro o wireshark)
  • scriptbash Todo administrador do * nix deve saber disso.
  • Uma linguagem de programação. Para coisas mais complexas, fique longe do script do bash e use algo como python/Perl/Ruby/tcl/... (eu uso o LISP)
  • Midnight Commander pode ser ótimo para pessoas que gostaram de norton commander.
  • irssi Você nunca sabe quando só quer perguntar algo no IRC.
  • wget / curl Baixe o material da linha de comando.
  • scp Copiar itens sobre ssh
  • lftp / ncftp Bons clientes de FTP do console (com script).
  • iotop Verifique o que está estressando seus discos
  • nmap bom scanner de porta
45
Gert M

Fiquei surpreso ao descobrir que você pode executar aplicativos GUI remotos através de SSH, usando o parâmetro "-X". Por exemplo:

# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &

A janela do gedit aparece na minha máquina local, editando o arquivo "my.cnf" no servidor.

Suponho que isso funcione apenas se a sua máquina cliente tiver um ambiente X - em outras palavras, não no Windows. Mas funciona muito bem no meu Mac!

33
Matt Solnit

muitas vezes é ignorado, é uma ferramenta muito útil. lsof permite visualizar uma lista de todos os arquivos abertos no sistema, quem/o que está usando, etc.

Por exemplo:

[email protected]:~ # umount /mnt/hardy
umount: /mnt/hardy: device is busy
umount: /mnt/hardy: device is busy
[email protected]:~ # lsof | grep /mnt/hardy
bash       5966       root  cwd       DIR      253,2     1024          2 /mnt/hardy
[email protected]:~ #

Agora vejo que estou logado no Shell em outro terminal e/mnt/hardy é o meu diretório de trabalho atual. Assim, eu posso matar esse Shell ou ir para o outro terminal e sair desse diretório para que ele possa ser desmontado.

Esse é realmente um exemplo trivial, é muito útil para limpar ocasionalmente a infestação de 'bot'. As opções são amplas, consulte man lsof para mais.

33
Tim Post

Para mudar para o último diretório em que você estava:

cd -
31
dkaylor

A pilha de rede pode ser deixada em execução após uma parada do sistema. Não sei se isso é atual com a série 2.6.x de kernels, mas em versões mais antigas, você pode configurar o firewall/roteamento e interromper o sistema sem um desligamento, deixando apenas a rede pilha em execução. Isso permitiria que você criasse um firewall barato (embora estático) que "não possa ser invadido" - porque não há nada para hackear, pois não há programas ou serviços, apenas a parte da pilha de rede do kernel passando pacotes para frente e para trás ...

26
Avery Payne

Eu gosto de "localizar" - uma maneira muito mais fácil de encontrar arquivos do que o "encontrar. -Name xxxx -print". Observe que você precisa usar o comando updatedb para um índice do seu arquivo atualizado; consulte as páginas do manual para obter detalhes.

24
gareth_bowles

Acho que o "ngrep" é realmente útil para depurar o código de rede em servidores remotos sem ter que usar arquivos tcpdump:

ngrep -d any -W byline port 80

por exemplo, mostrará solicitações e respostas HTTP ativas.

Outra coisa que achei útil com frequência é a opção "-e" para rastrear:

strace -p <pid> -e trace=open

mostrará todos os syscalls abertos () para um determinado pid e

strace -p <pid> -e trace=\!rt_sigprocmask

excluirá todas as chamadas para rt_sigprocmask () da saída (útil para depurar o código RoR, que parece fazer uma enorme quantidade dessas chamadas quando criadas para usar pthreads).

19
Jon Topper
apropos

DESCRIÇÃO Cada página de manual possui uma breve descrição disponível. apropos pesquisa nas descrições por instâncias da palavra-chave.

[email protected]:~/bin$ apropos ettercap
etter.conf (5)       - Ettercap configuration file
ettercap (8)         - (unknown subject)
ettercap_curses (8)  - (unknown subject)
ettercap_plugins (8) - (unknown subject)
17
Gareth

Felizmente, eu só precisei algumas vezes, mas o tecla Magic SysRq ainda permanece um dos meus recursos ocultos favoritos de todos os tempos.

Alt + SysRq + RSEIUB

15
gharper
NAME
 units -- conversion program

DESCRIPTION
 The units program converts quantities expressed in various scales to their 
equivalents in other scales.  The units program can only handle multiplicative
scale changes.  It cannot convert Celsius to Fahrenheit, for example.
It works interactively by prompting the user for input:

     You have: meters
     You want: feet
             * 3.2808399
             / 0.3048

     You have: cm^3
     You want: gallons
             * 0.00026417205
             / 3785.4118

     You have: meters/s
     You want: furlongs/fortnight
             * 6012.8848
             / 0.00016630952

     You have: 1|2 inch
     You want: cm
             * 1.27
             / 0.78740157
13
Gareth

Não é realmente tão oculto, mas pode ser assim para quem não tem experiência, mas eu realmente gosto de poder dar listas e deixar o bash expandi-las como em:

cp arq{,.bak}

que é o mesmo que digitar

cp arq arq.bak

Também uso os atalhos do histórico (não acho que seja o termo certo, mas ...) como

!! 

repetir o último comando ou

^foo^bar 

substituir foo por bar no último comando

12
Flávio Amieiro

ssh-copy-id para transferir chaves ssh. O jeito antigo era colocar a chave sobre o ssh e ainda mais antigo era colocar a chave na chave e depois colocar a chave na chave. Se você estiver usando uma porta ssh não padrão, isso fará o truque para você.

ssh-copy-id -i/path/to/key '-p nome de host não padrão do porto'

De outra forma..

ssh-copy-id -i/caminho/para/nome do host da chave

12
bobbyrcox

Consoles virtuais. A maioria das pessoas sabe como usar (Ctrl-) Alt-F1 para chegar ao primeiro console etc., mas e se você tiver mais de 12 anos? Você pode usar Alt-Esquerda e Alt-Direita para percorrer o restante deles. :-D

11
Chris Jester-Young

Eu gosto do pacote debian-goodies:

Descrição: Pequenos utilitários no estilo caixa de ferramentas para sistemas Debian 
 Esses programas foram projetados para integrar-se às ferramentas padrão do Shell, 
 Estendendo-os para operar no sistema de empacotamento Debian. 
. 
 dgrep - Pesquise todos os arquivos nos pacotes especificados para um regex 
 dglob - Gere uma lista de nomes de pacotes que correspondem a um padrão 
. 
 Estes também estão incluídos, porque são úteis e não justifique 
 seus próprios pacotes: 
. 
 debget - Busque um .deb para um pacote no banco de dados do APT 
 dpigs - Mostra quais pacotes instalados ocupam o most space 
 debman - Exibe facilmente as páginas de manual de um .deb binário sem extrair 
 debmany - Selecione as páginas de manual dos pacotes instalados ou desinstalados 
 checkrestart - Ajuda para encontrar e reiniciar processos que estão usando versões antigas 
 dos arquivos atualizados (como bibliotecas) 
 popbugs - Exibe um bug crítico ao lançamento personalizado lista com base nos pacotes 
 que você usa (usando dados de concursos de popularidade)

e também moreutils, que são basicamente ferramentas de tubo impressionantes sobre rodas:

 Descrição: utilitários unix adicionais 
 Esta é uma coleção crescente de ferramentas unix que ninguém pensou em 
 Escrever há trinta anos. 
. 
 até agora, inclui os seguintes utilitários: 
 - esponja: absorve a entrada padrão e grava em um arquivo 
 - ifdata: obtém informações da interface de rede sem analisar a saída ifconfig 
 - ifne: run um programa se a entrada padrão não estiver vazia 
 - vidir: edite um diretório em seu editor de texto 
 - vipe: insira um editor de texto em um canal 
 - ts: timestamp input standard 
 - combine: combina as linhas em dois arquivos usando operações booleanas 
 - pee: tee entrada padrão para pipes 
 - zrun: descompacta automaticamente argumentos para comandar 
 - erro de digitação : canaliza dois comandos, retornando o status de saída do primeiro 
 - isutf8: verifica se um arquivo ou entrada padrão é utf-8 
 - lckdo: executa um programa com um bloqueio pressionado 
 Página inicial: http://kitenet.net/~joey/code/moreut ils /
11
jldugger

Talvez um dos grandes recursos do Linux, ao contrário do Windows, seja o fato de não haver quase nenhum recurso oculto por design. Felizmente, se algum recurso não documentado for importante o suficiente para saber sobre a comunidade, ele faz seu trabalho.

8
Cawflands

Um ótimo "recurso" que eu uso todos os dias no trabalho: a capacidade de ouvir o SSH na porta 443 para criar um túnel que ignora meu firewall de trabalho, permitindo que eu execute um proxy SOCKS local em túnel através do SSH para o servidor Linux voltado para a Internet .

Eu posso ignorar completamente meu firewall corporativo.

8
WerkkreW

Eu sempre gostei de "man hier" por ajudar as pessoas que são novas no sistema.

8
Matt Simmons

Aqui estão alguns que eu usei regularmente:

  • sar - mostra a atividade do sistema
  • vmstat - estatísticas de memória virtual
  • iostat - estatísticas io
  • pkill - como pgrep, mas permite eliminar o ID do processo retornado
  • xargs -I<string> - permite substituir strings por dados canalizados
  • at - agende uma tarefa
  • tkdiff - utilitário gráfico diff

Estes provavelmente não estão "ocultos", mas acho-os extremamente úteis:

  • df -hk - mostra o uso do disco em formato legível por humanos
  • ls -ltr - lista os arquivos classificados por data
  • while :; do...done - (Bash) substituto para watch se indisponível
  • Perl -e - execute um trecho Perl na linha de comando
  • free -kt - mostra informações de memória (kilobytes com total)
7
bedwyr

Comece com este artigo com alguns ótimos truques do Linux. O meu favorito é pstree, que exibe seus processos em um formato de árvore para que você possa ver qual processo gerou qual.

curl supera o inferno do wget para praticamente qualquer coisa que você usaria para o wget.

o zgrep e o zless são ótimos para pesquisar arquivos de log compactados com gzip, assim você não precisa canalizá-los através do gunzip ou deixar coisas não compactadas em/var/log.

6
Magus

ESC.

'Cola' o último parâmetro da linha anterior no prompt atual

por exemplo.

ls -l /home/someuser/somedir/somefile

seguido por

rm ESC.

traduz para

rm /home/someuser/somedir/somefile
6
Bryan

O conceito é que tudo no Linux é um arquivo.

Todas as configurações estão em arquivos de texto e tudo no Linux é tratado como um arquivo. Essa é uma abordagem muito mais simples, que facilita muito a mudança de coisas no Linux. No Linux, mesmo o seu sistema de arquivos pode ser visto como um arquivo.

5
ecleel

Eu vejo o comando yes muito agradável:

yes | do_you_agree

Na página do manual:

NAME
       yes - output a string repeatedly until killed

SYNOPSIS
       yes [STRING]...
       yes OPTION
5
FerranB

É de código aberto. Nada é "escondido" se você se importa em olhar.

4
Paul Tomblin

O recurso oculto é que não há recursos ocultos. O sistema fornece uma quantidade enorme de energia à qual você tem acesso completo. Você precisa entender cada parte dela e todas as ferramentas disponíveis para saber qual é o poder ao seu alcance.

Você deve começar entendendo todos os comandos em/bin,/sbin,/usr/bin,/usr/sbin e todos os arquivos virtuais em/proc. Leia as páginas de manual, outra documentação e fonte, conforme necessário.

Se você não se sente confortável lendo uma página de manual ou lendo a fonte, esse é seu recurso oculto.

4
carlito

grep, awk e sed

superior

3
Brent

Apenas encontrei este hoje:

dmidecode :
Informa informações sobre o hardware do seu sistema, conforme descrito no BIOS do sistema, de acordo com o padrão SMBIOS/DMI. Essas informações normalmente incluem o fabricante do sistema, o nome do modelo, o número de série, a versão do BIOS, a etiqueta do ativo, além de muitos outros detalhes de diferentes níveis de interesse e confiabilidade, dependendo do fabricante. Isso geralmente inclui o status de uso dos soquetes da CPU, slots de expansão (por exemplo, AGP, PCI, ISA) e slots do módulo de memória e a lista de portas de E/S (por exemplo, serial, paralela, USB).

Definitivamente, fica muito mais fácil responder a perguntas sobre somerandomserver27 nas instalações do colo!

3
gharper

Não é realmente uma coisa do Linux, é mais uma coisa do Bash: substituição de processo,

diff some_local_file <(ssh somehost "cat some_remote_file")

Isso difere um arquivo local e um remoto recuperados via SSH em uma linha.

3
Rog
  • od - despeja arquivos em octal e outros formatos. Útil para verificar, por exemplo, se há alguma porcaria de lista técnica no início do arquivo
  • file - qual pode ser o tipo de arquivo do arquivo fornecido?
  • lshw, lsusb, lspci - lista de hardware
  • tracepath - estamos lidando com o problema da MTU aqui?
  • netwoxcontém mais de 200 ferramentas relacionadas à rede
  • ip - para configuração de rede/informações
  • sysctl - informações sobre o sistema de arquivos/rede/kernel
  • ebtables - iptables para bridge
  • vconfig - VLAN
  • brctl - Configuração da ponte
  • socat - netcat em esteróides
  • ipgrab - tcpdump- utilitário semelhante que imprime informações detalhadas do cabeçalho
  • Dig - O que há com o servidor DNS agora?
3
raspi

tee é incrível. Saída para a tela e arquivo de log? Verifica.

3
nwahmaet

history - mostra os últimos comandos usados
!<number> - executa o comando com esse número em history

3
Esa Varemo

logger permite gravar mensagens no syslog a partir do prompt de shell ou de um script.

logger "See? There! It happened again!"
2

encontre <blah> -exec <blah> {} \;

por exemplo.:

encontrar . -iname * 20080 [123456] .log -a! -iname * .bz2 -exec bzip2\{\} \;

2
Jason Tan

histórico do bash - normalmente tenho 10 ou mais xterms em execução. Aqui está a parte relevante do meu perfil:

# Make history ignore dups, ls, and exit
export HISTIGNORE="&:ls:[bf]g:exit"

# Save 100000 history comamnds
export HISTSIZE=10000

# Make each terminal use a separate history file
HISTDIR=${HOME}/.history
SHELLID=$(tty | sed 's!/!.!g')
HISTFILE=${HISTDIR}/history${SHELLID}

touch ${HISTFILE}

# load last histfile as current history
history -r $(/bin/ls ${HISTDIR}/history${SHELLID} | /usr/bin/tail -n 1)

Se eu precisar procurar por um comando, posso apenas navegar através do meu diretório de histórico.

aespipe - lê da entrada padrão e grava na saída padrão. Ele pode ser usado para criar e restaurar arquivos tar ou cpio criptografados.

2
aultl

Normalmente, as pessoas executam seu sistema de desktop com o X. Mas você geralmente pode acessar um terminal de modo texto verdadeiro, vários deles na verdade. Estes são chamados de consoles virtuais. Em seguida, você pode normalmente fazer login e usar a linha de comando etc.

Apenas aperte CtrlAltF1CtrlAltF2etc. Seu servidor X geralmente está rodando em CtrlAltF7.

É claro que isso depende da distribuição e configuração.

Às vezes, este comando para matar o servidor X é útil: CtrlAltBackspace.

Essas combinações de teclas funcionam pelo menos em computadores i86.

2
Juha Syrjälä

Um post que fiz no Stack Overflow: Como listar apenas subdiretórios no atual ?

ls -d */

É um truque simples, mas você não saberia quanto tempo eu precisava para encontrar esse!

2
edomaur

Não tenho certeza se estou apenas demonstrando minha ignorância, mas acabei de descobrir o comando "last" para verificar quem está efetuando login. É muito útil.

Outro bom programa é "esperar". Torna extremamente fácil automatizar qualquer logon ssh/telnet ou qualquer coisa que o force a fornecer entrada para um programa.

2
bowman
1
h0tw1r3

Para o recurso "oculto", como geralmente ignorado ou esquecido pelos usuários novos no Linux (/ Unix).

  • man man
  • man -k <blah> ou apropos <blah>

Recursos "ocultos"

1
mctylr

O poder e a flexibilidade do SSH nunca deixam de me surpreender. Além disso, a capacidade de criar uma matriz de raides com qualquer coisa (disquetes, alguém?), Todos os sistemas de arquivos disponíveis, coisas legais como LVM, as ferramentas de criptografia, a possibilidade de criar suas próprias ferramentas com a infinidade de compiladores, intérpretes, idiomas. Ah, e não esquecendo de instalar coisas novas com o apt-get ou similar.

É tão brilhante que janelas.

1
Quazatron

fgrep

por exemplo. fgrep -r * --include = *. rb

percorre a estrutura dir do diretório atual procurando em Ruby

e é muito mais fácil de usar do que encontrar

1
Jeff Leonard

Acho o whereis e quais comandos são úteis. Use-os quando tiver versões alternativas do mesmo aplicativo com o mesmo nome e desejar usar um específico.

1
Dana the Sane

O NX combina alguns dos benefícios da tela e do ssh -X com a compactação inteligente. Agora eu posso executar o gnumeric remotamente através de uma conexão de modem e continuar quando a conexão acabar.

1
Nick Russo

Meus 5 principais recursos "ocultos" (espero que ainda não estejam aqui)

  1. cd - Experimente :)
  2. tubos nomeados não são usados ​​o suficiente e você pode fazer coisas bem legais com eles
  3. toque no sistema, embora eu não seja bom nisso e você realmente precise conhecer seu kernel, ele possui um poder incrível para o usuário certo.
  4. A combinação de canalizar uma lista para sort e depois para uniq -c e depois para sort -n pode realmente fazer maravilhas. Você pode usá-lo para obter seus principais oradores de um arquivo de log do Apache ou dos monopolizadores de memória de ps -o.
  5. O proc/sys interface/sistema de arquivos. Há tanta coisa que você pode ajustar/visualizar em tempo real. Agrupando um cat ou grep da instrução em watch -d -n 0.1 é incrível e muito útil.

Os notáveis ​​são dd, netcat, screen, tcpdump e find, mas a maioria já foi mencionada.

1
d34dh0r53
lsof -i - list all opened socket
htop - like top, but with more eye candy
rdiff-backup - for incremental backup
mc - midnight commander 
ethstatus - ethernet statistics
netstat, nmap
iftop - display bandwidth usage on an interface by Host
1
miHost

dd - converte e copia arquivos

Eu uso isso com muita freqüência para fazer cópias de DVD ou HDD Patitions que eu preciso fazer backup.

dd if=/dev/sda2 of=/tmp/copy_of_sda2

é muito prático e configurável, basta dar uma olhada na página de manual

1
cb0
scp

Sou desenvolvedor da Web e nossa configuração de desenvolvimento exige que eu transfira arquivos para o nosso servidor de desenvolvimento o tempo todo. Eu escrevi um wrapper rápido em torno do scp para lidar com isso para mim.

1
baudtack

Eu simplesmente não posso prescindir desses comandos

  • ps -fA (lista todos os programas em execução
  • lsof (lista de arquivos abertos por processo)
  • pushd. (Coloque o diretório atual na pilha de diretórios)
  • popd. (pop diretório atual da pilha de diretórios)
  • diretório inicial da conta local ~/você também pode acessar um diretório de usuário como ~ nome de usuário.
  • substitua o perfil atual do bash depois de fazer alterações sem fazer login novamente. ". ~/.bashrc
  • grep -inR (grep recursivo, i = não diferencia maiúsculas de minúsculas, n = mostra o número semelhante, R = recursivo)
0
Matt
  • man (ajuda na maioria dos comandos)
  • menos (visualização navegável)
  • tail -f (exibe dados anexados de um arquivo à medida que cresce)
  • watch (executar um programa e visualizar sua saída periodicamente em tela cheia)
0
Wayne Koorts

ctrl + r: pesquisa o último comando no histórico com as letras que você especificar

0
Prozaker

Vamos ver ...

  • Uso códigos de cores bash no meu /root/.bash_profile para fazer com que o prompt do bash raiz tenha uma cor diferente da do prompt do usuário padrão não raiz. Apenas mais um lembrete de que estou a um único comando de destruir um sistema inteiro. ;)

  • Eu uso muito o nc (netcat) para testar as coisas. Utilidade agradável com muita versatilidade.

  • Durante muito tempo, nunca soube que chown podia aceitar nome de usuário e nome de grupo juntos como argumento, ou seja: chown user:group -R /some/directory. Esse fato me salvou bastante de digitação (sem mais pares chown/chgrp).

  • O comando df é um atalho rápido para ver todos os seus sistemas de arquivos montados.

  • Eu uso muito o pgrep em scripts para ver se um processo está em execução.

  • o kexec é bastante elegante, permite que você reinicie sem passar pelo BIOS, o que reduz significativamente o tempo de reinicialização. Não reinicie muito, apesar de tudo ...

0
ultrasawblade

Para mim, a maior característica é que nada está realmente "escondido" - está tudo bem sob seus olhos se você se importa em ler a documentação ou o código.

0
vwegert

find é minha melhor ferramenta. Eu o uso para localizar coisas e executar comandos em arquivos ou diretórios encontrados.

Nenhum sistema está completo sem ssh também.

0
Felipe Alvarez

Nunca usou script (1) para salvar uma sessão de terminal?
apg (1) para criar senhas aleatórias
você quer saber quantos processadores/núcleos você possui? nproc (1)
sfdisk (8) ótima ferramenta de partição
multitail (1) cauda múltipla ao mesmo tempo ... ótima ferramenta

0
PiL