Consertar um terminal problemático

Dificuldade: Fácil
Aplicação: bash

Nós todos fizemos isso – acidentalmente usar less ou cat para para listar um arquivo, e acabou vendo binário. Isso geralmente envolve todos os tipos de comandos que podem facilmente estragar seu terminal. Um apito se iniciará. Haverá caracteres engraçados. Haverá combinações de cores ímpares. No final, a sua fonte será substituída por hieróglifos e você não sabe o que fazer. Bem, o bash está, obviamente, ainda trabalhando, mas você simplesmente não consegue ler o que está realmente acontecendo! Envie, então, um comando de inicialização ao terminal

reset

e tudo ficará bem novamente.

De Dicas de Linux que todo geek deve saber

Substituindo o mesmo texto em arquivos diferentes

Dificuldade: Intermediário
Aplicação: find / Perl

Se você tem um texto que deseja substituir em vários locais, há várias maneiras de fazer isso. Para substituir o texto Windows por Linux em todos os arquivos no diretório atual chamado teste[alguma coisa] você pode executar o seguinte:

perl -i -pe 's/Windows/Linux/;' test*

Para substituir o texto Windows por Linux em todos os arquivos de texto no diretório atual e para baixo você pode executar este:

find . -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt

Ou se você preferir isso também vai funcionar, mas apenas em arquivos regulares:

find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/'

Economiza muito tempo e tem uma classificação de guru alta!

De Dicas de Linux que todo geek deve saber

Verifique os processos que estão rodando e que não são os seus

Dificuldade: Especialista
Aplicação: Bash

Imagine a cena – você está pronto para uma partida rápida de Crack Attack contra um colega no escritório, mas para encontrar o jogo se arrasta um impasse, assim como você está prestes a bater o seu subordinado arrogante – o que poderia estar acontecendo para fazer a sua máquina estar tão lenta? Deve ser algum desses outros usuários, roubando o seu precioso tempo de CPU com seus experimentos científicos, servidores web ou outras coisas estranhas de geek!

OK, vamos listar todos os processos que não estão sendo executados por você!

ps aux | grep -v `whoami`

Ou, para ser um pouco mais inteligente, porque não listar apenas os dez maiores desperdiçadores de tempo:

ps aux --sort=-%cpu | grep -m 11 -v `whoami`

É provavelmente melhor executar isto como root, pois isso irá filtrar a maior parte dos processos vitais do plano de fundo. Agora que você tem a informação, você pode simplesmente matar seus processos, mas muito mais covarde é correr xeyes em seu desktop. Repetidamente!

De Dicas de Linux que todo geek deve saber

Dicas de Linux que todo geek deve saber

Fonte: Linux tips every geek should know

O que separa os usuários normais dos super-geeks? Simples: anos gastos aprendendo maneiras de desmantelar códigos, truques, dicas e técnicas que transformam grandes esforço num trabalho de um momento. Se você quer ganhar agilidade para colocar as mãos á obra, separamos 50 dicas fáceis de aprender para lhe ajudar a trabalhar com mais eficiência e obter o máximo do seu computador. Aproveite!

  1. Verifique os processos que estão rodando e que não são os seus
  2. Substituindo o mesmo texto em arquivos diferentes
  3. Consertar um terminal problemático

Redirecionando as massas

Ainda que você seja um iniciante no Linux, provavelmente você já usouo alguma forma de redirecionamento pela linha de comando. Redirecionamentos usam > e < para passar dados entre comandos que você está executando. É mais usando para redirecionar uma saída de um comando para um arquivo. Por exemplo, se você digita dmesg >local.log o conteúdo do buffer do kernel(a saída do comando dmesg) será redirecionado para o arquivo local.log ao invés de aparecer na tela. Se você usar dois > a saída do comando dmesg será concatenada no final do arquivo ao invés de sobrescrevê-lo. Usa-se o < como argumento de entrada ao invés de destinação – mais comumente usando com grep. Ao digitar grep -i USB < local.log buscará por 'USB' no arquivo local.log por exemplo.

Redirecionamentos funcionam porque muitas aplicações Linux, grandes ou pequenas, têm três 'descrições de arquivo' possíveis para trabalhar com entrada e saída. São as entradas padrão, a saída padrão e o erro padrão. Normalmente você não percebe, pois os dispositivos usados para entrada e saída padrão são o teclado e o tela. Nos exemplos anteriores, estamos endereçando o descritor de saída e entrada usando < e >. Mas como você endereça o descritor de arquivo do erro padrão? Isto é feito com o número '2' antes de > - o 2 vem da prioridade dada para cada descritor de arquivo. Naturalmente, 0 é a entrada padrão, 1 é a saída padrão e 2 é a saída padrão de erro. É muito útil porque permite que você filtre condições de erro geradas por um comando, enquanto a saída continua sendo enviada para um arquivo de log.

Um exemplo útil. Os erros de permissão que resultam do comando find quando este não tem privilégios de acesso são enviadaos para o buraco negro do disposivito null enquanto os resultados de sucesso são enviados para a tela:

find / -name *.jpg 2>/dev/null

Mais em Truques de linha de comando.

O grande escape SSH

Um aspecto do SSH que facilitam muito as coisas quando você abre uma conexão, inicia uma série de jobs e percebe que precisa de encaminhar uma porta através da sesão atual. A resposta é usar uma seqncia de escape enquanto conecta ao SSH para trocar certas configurações sem necessidade de reconexão.

Uma seqüência de escape é justamente uma série de caracteres que instrui a utilidade do que você está usando (neste caso o SSH) para escapar do que está fazendo e executar uma tarefa de utilidade específica. O que é preciso é de uma seqüência de escape enquanto usa o shell. A seqüência de escape mais útil para SSH é executada quando você digita o til (~), seguido do C maiúsculo. Você não verá nada na sessão até que você complete a seqüência de escape até que o ponteiro do terminal será modificado para ‘ssh>’. Isto significado que você foi enviado para a linha de comando SSH. Daqui você pode se conectar a uma porta na máqina remota por uma porta da máquina local e criar um túnel entre os dois através da conexão segura SSH.

Você pode usar esta técnica para criar um túnel para os dados de um servidor proxy Squid através do SSH para uma porta local na sua máquina remota usando o argumento -L, então digitando -L8089:localhost:3128 criariao túnel Squid da porta 8090 sem precisar reiniciar a sessão SSH. Você também pode encaminhar portas usando a seqüência ~# e cancelar portas encaminhadas digitando -Krhostport. Para cancelar o túnel Squid que acabamos de criar, digite -KR3128.

Mais em Truques de linha de comando.