Posts com Tag ‘bash’

1- Nautilus:
Este aplicativo vem configurado para abrir no conceito espacial (cada clique em um item da pasta abre uma janela). Vamos alterar para o modo navegador:
Editar >> preferências >> Comportamento : marque a caixa “Sempre abrir em janelas de navegador”. Se desejar, marque também “clique único para abrir ítens” (para mudar de clique duplo para único, trazendo a vantagem da agilidade).

2- Gnome-Terminal:
Para mudar o tamanho do terminal, proceda segundo um dos seguintes métodos:

  • Método 1 – já existindo um ícone de atalho no painel superior (ou no desktop) para o gnome-terminal, abra suas propriedades e defina sua chamada através da caixa “comando” como gnome-terminal –geometry=136×30 . O valor do tamanho pode ser o que te convier. O único problema desta forma é que ao usar outro atalho que não este, o terminal voltará a abrir no tamanho padrão.
  • Método 2 – a solução definitiva é editar o arquivo de configuração /usr/share/vte/termcap/xterm. Para isso digite alt+f2 (que abrirá a janela de executar comando), e digite gksu gedit /usr/share/vte/termcap/xterm . Quando a arquivo xterm abrir, procure pela linha :co#80:it#8:li#24: fazendo a alteração dos valores 80 e 24 para o tamanho que melhor lhe convier (o 80 é o tamanho horizontal e o 24 o vertical). Uma possibilidade seria :co#136:it#8:li#30: . Salve o arquivo e saia. Reinicie a interface gráfica. Ao abrir o terminal, observe que ele já estará no novo tamanho escolhido.

3- Administração de Usuários, opções de rede e outros
Para quem instalou o básico do Gnome, um pacote extra essencial é o gnome-system-tools:

#apt-get install gnome-system-tools

As ferramentas de sistema GNOME (“GNOME System Tools”) são um conjunto de ferramentas totalmente integradas para facilitar o trabalho que é administrar computadores nos sistemas UNIX ou Linux. Elas foram pensadas para ajudar desde o novo usuário Linux ou UNIX até os administradores de sistema.

Atualmente estas são as ferramentas para gerenciamento:
– Usuários e grupos
– Data e hora
– Opções de rede
– Serviços
– Compartilhamentos (NFS e Samba)

4- Wallpapers:
Normalmente as pessoas gostam de usar papéis de parede diferentes. Isso é muito fácil de alterar no gnome, bastando clicar com botão direito do mouse na área de trabalho (desktop) e escolher “alterar plano de fundo”. Depois usar a opção adicionar, e pronto. Mas e se deseja adicionar uma coleção grande de wallpapers? Para facilitar e ter todas elas disponíveis em um só lugar, coloque-as na pasta padrão do sistema /usr/share/pixmaps/backgrounds . Só é possível fazer isso como root e no terminal, ou usando o nautilus como root.

5- Java:
O OpenJava é instalado automaticamente quando de uma instalação padrão da interface Gnome no Debian. Para instalação do Sun-Java veja o post Como instalar Java (JRE) do Debian Lenny.

6- Iceweasel em português
Para deixar o navegador Iceweasel em portuguës, veja o post Iceweasel em língua portuguesa.

7- Instalando o flash no Iceweasel, Firefox ou Epiphany
Para deixar o flash funcionando corretamente nos seus navegadores, veja o post Instalando o flash no Iceweasel, Firefox ou Epiphany com Debian Lenny.

8- Gravar CD e DVDs
Instalar o k3b. Após instalá-lo, e se seu nome não aparecer listado no menu suspenso do Gnome (na opção “Aplicativos -> multimídia”), marque o aplicativo K3b através da opção Sistema -> preferência -> Menu Principal -> Multimídia para que o mesmo passe a figurar como opção no menu suspenso.

  • vym: mapa mental
  • kdissert: mapa mental
  • freemind: mapa mental
  • gimp: editor de imagem
  • gcolor2: seletor de cores muito simples e prático
  • terminator: um terminal de console com diversas funcionalidades poderosas

9- Editar arquivos pdf
Uma boa ferramenta é o Master PDF Editor. Mas atenção: não é um software livre, mas seu uso é livre para aplicações não comerciais. Está disponível para download as versões 32bits e 64bits, arquivos “.tar.gz”, “.deb” e “.rpm”.

10- Aplicativos e drivers para o áudio
Primeiro, certifique-se de que o repositório multimídia esteja presente em /etc/apt/sources.list, da seguinte forma (para Debian squeeze):
deb ftp://ftp.debian-multimedia.org squeeze main non-free

Agora fazer a instalação de:

# apt-get install gnusound xine-plugin gxineplugin mozilla-plugin-vlc sound-juicer
# apt-get install totem totem-plugins totem-mozilla totem-xine
# apt-get install w32codecs ;apenas para sistemas de 32 bits
# apt-get install w64codecs ;apenas para sistemas de 64 bits
# apt-get install libdvdcss2 lame mp3gain soundconverter sox libsox-fmt-mp3 faad xmms2-plugin-faad xmms2-plugin-mp4 faac flac gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-sdl gstreamer0.10-plugins-ugly gxine gxineplugin regionset x264 gstreamer0.10-x264 mp3gain mjpegtools mpeg2dec vorbis-tools id3v2 mpg321 mpg123 libflac++6 ffmpeg cdda2wav libjpeg-progs ffmpeg2theora libmpeg2-4 uudeview libmpeg3-1 mpeg3-utils mpegdemux liba52-0.7.4-dev

11- Abrir imagens em um console Linux
É um conceito equivocado de que a visualização de imagens só é possível com o X windows (o software que provê uma GUI para o Linux). O framebuffer Linux fornece um suporte gráfico substancial, juntamente com suporte para várias fontes e resoluções.

O aplicativo “Frame Buffer Image viewer” (fbi) exibe nativamente arquivos nos formatos jpeg, ppm, gif, tiff, xwd, bmp, png e webp diretamente no console do Linux, usando o dispositivo framebuffer (/dev/fb0). Se a suíte ImageMagick estiver instalada, fbi poderá usá-la para lidar com todos os outros formatos que sejam suportados pelo comando “convert” dessa suíte.
# apt-get install fbi

Para visualizar arquivos basta utilizar, por exemplo, o seguinte comando:
$ fbi -t 4 *.png

Veja mais:
1- Personalizar as cores do editor Gedit
2- Pequenos ajustes no debian
3- Papeis de parede Gnome Art
4- Papeis de parede Debian
5- Install Mplayer and Multimedia Codecs in Debian 5.0 (Lenny)
6- O básico para o Debian Lenny no desktop
7- Ubuntu Tocando Todos os Formatos
8- The Frame Buffer Device

Anúncios

Para este post, usou-se uma máquina com o Debian 7 (Wheezy) e o Vim 7.3.

1) Instalar o vim
# apt-get install vim

2) Vim Tutor
$ vimtutor
O Vimtutor pode ser muito útil para aqueles que estão iniciando no uso do Vim. Ele traz exemplos de como configurar o aplicativo através do arquivo .vimrc.

3) Onde encontrar os arquivos de configuração do Vim
O Vim possui um arquivo de configuração em /etc/vim/vimrc que tem impacto em todos os usuários da máquina. Ou, para cada usuário, pode existir o arquivo .vimrc com definições opcionais de configuração de tempo de execução, utilizadas quando da iniciação do Vim. Este arquivo .vimrc deve estar presente na pasta raiz do usuário.

3.1) Um exemplo de arquivo de configuração .vimrc
Encontre o arquivo exemplo de configuração vimrc_example.vim em sua instalação. Pode estar em: /usr/share/vim/vim73/vimrc_example.vim
OBS: vim 73 é devido ao fato que neste momento estar sendo utilizado a versão 7.3 do Vim.

3.2) Identificar a localização do Vim
No Vim, seu diretório home é especificado com a variável de ambiente $HOME. Em sistemas Unix, este é o próprio diretório “~” do usuário. Os comandos a seguir, executados de dentro do Vim, são úteis para ver quais diretórios o Vim está usando:
:version
:echo expand('~')
:echo $HOME
:echo $VIM
:echo $VIMRUNTIME
:echo $MYVIMRC

Se o Vim encontra o arquivo .vimrc durante a inicialização, ele irá definir a variável de ambiente MYVIMRC com o caminho completo do arquivo .vimrc. Para se ter o acesso automático ao arquivo .vimrc (estando já dentro do próprio Vim), fazer:
:e $MYVIMRC

Usando a facilidade de complementação automática de nomes, pode-se digitar “:e $M” e em seguida pressionar Tab até que o nome da variável desejada seja completada e pressionar Enter. Se deseja-se apenas ver o caminho contido na variável, digite “:echo $M” e em seguida pressionar Tab até que o nome da variável desejada seja completada e pressione Enter.

4) Executar o Vim
Abrir um terminal de comandos e utilizar uma das seguintes formas de chamada do Vim:
$ vim
$ vim nome_arquivo
$ vim nome_arquivo1 nome_arquivo2 nome_arquivoN
$ vim .

Obs: a última forma faz com que o Vim seja aberto como um navegador de arquivo. Ao navegar e selecionar o arquivo desejado, o Vim abrirá este arquivo selecionado para possibilitar sua edição.

5) Configurar o Vim
5.1) Um exemplo completo de comfiguração para o arquivo .vimrc
Abaixo um exemplo completo para um arquivo .vimrc, cujas configurações estaremos comentando ao longo deste post.

" Usar as definições do vim, não as do vi
set nocompatible
set title        " Alterar o título do terminal
set titlestring=Editor\ Vim\ Programação
set number       " Ativar a numeração das linhas
set ruler        " Mostrar, sempre, a posição atual do cursor
set tabstop=4    " Definir tab como 4 espaços
set history=100  " Definir o tamanho do histórico de comandos do vim:
syntax on        " Habilitar o destaque de sintaxe
set mat=10       " Realçar (highlight) pares de colchetes ao passar o cursor, e configura o tempo do destaque em décimos de segundos
set showmatch
" Definir esquema de cores do vim
              " hi normal   ctermfg=white  ctermbg=black
              " hi Comment ctermfg=grey ctermbg=black cterm=bold
              " hi Comment ctermfg=LightGreen ctermbg=black
              " set background=dark
colorscheme elflord
set columns=132
set wrapmargin=8      
set autoindent      " Habilitar autoidentação (ou noautoindent, para desabilitar)
set ignorecase     " Ignorar case sensitive quando de uma pesquisa
set cursorline     " Realçar (highlight) a linha corrente do cursor
set hlsearch       " Realçar os resultados das buscas

5.2) Cores
5.2.1) Suporte a realce de texto (highlighting)
A partir da versão 5 do Vim existe suporte para a sintaxe highlighting. Para isto basta fazer:
a) Considerando todos os usuários da máquina
Acessar o arquivo /etc/vim/vimrc e descomentar a linha “syntax on”
OBS: o Vim considera um comentário quando a linha é iniciada por aspas.

b) Considerando um determinado usuário
Crie o arquivo .vimrc no diretório home do usuário conforme comando exemplificado abaixo, e com o seguinte conteúdo:
$ echo "syntax on" > ~/.vimrc

5.2.2) Esquema de cores
A maneira mais simples de definir o seu esquema de cores é através da chave colorschema. Neste caso, não há necessidade de se utilizar as chaves cterm.
Veja um exemplo que pode ser colocado no arquivo .vimrc:
colorschema elflord

Os esquemas de cores disponíveis ao Vim estão em /usr/share/vim/vim73/colors/
OBS: vim 73 é devido ao fato que neste momento estar sendo utilizado a versão 7.3 do Vim.
Mas há uma série de esquemas de cores do Vim disponíveis na internet. É sempre difícil definir qual é o perfeito. As pessoas costumam usar diferentes esquemas de cores, dependendo do que elas estão fazendo.
Como exemplos, veja esquema de cores disponíveis em vim-color-gallery, em Vim Ninjas ou Vivify.

Estando dentro do Vim, tem dois comandos muito práticos:
a) para saber o esquema de cores em uso, usar o comando:
:colorscheme
b) para saber os esquemas de cores disponíveis, usar o comando:
:color <ctrl-D>
obs: após color entre um espaço.

5.2.3) Definindo as cores
Uma maneira alternativa ao esquema de cores, é definir as cores através da chave cterm.
Exemplos:
hi Normal ctermfg=grey ctermbg=black
hi Comment ctermfg=red ctermbg=white cterm=underline
hi Comment ctermfg=LightGreen ctermbg=black

Entendendo:
– quando usando um terminal colorido (cterm), defina a cor do background do terminal (ctermbg) como “black” para
o grupo ‘Normal’.
– alguns grupos possíveis: Normal, Comment, Constant, NonText, Special, Cursor.
– parâmetros para a chave cterm: underline, bold, italic, reverse, none
– parãmetros de cores para as chaves com cterm-colors:

Black
DarkBlue
DarkGreen
DarkCyan
DarkRed
DarkMagenta
Brown, DarkYellow
LightGray, LightGrey, Gray, Grey
DarkGray, DarkGrey
Blue, LightBlue
Green, LightGreen
Cyan, LightCyan
Red, LightRed
Magenta, LightMagenta
Yellow, LightYellow
White

5.3) Ativar numeração de linhas
Inserir (caso ainda não exista) ou descomentar a linha (caso a configuração esteja comentada) no arquivo de configuração:
set nu

5.4) Fundo preto
Determinar ao Vim para usar cores que ficarão bem sobre um fundo escuro. Para isto, inserir (caso ainda não exista) ou descomentar a linha (caso ainda não exista) no arquivo de configuração:
set background=dark

6) Comandos do Vim
Na internet existem diversos sitios com tutoriais para o Vim. Veja nas referências abaixo alguns destes sitios. Aqui colocaremos os comandos que entendemos mais utilizados.

O editor Vim possui alguns estados (“modos”):


Modo               Tecla     Rodapé          Descrição 
---------------------------------------------------------------------------  
de Inserção        i       -- INSERT --    Inserção de texto
Normal           <ESC>                     Comandos de manipulação de texto
Linha de comando   :       :               Comandos de manipulação arquivo 
Visual             v       -- VISUAL --    Seleção visual de texto
Reposição          R       -- REPLACE --   Inserção sobreescrevendo

a) Navegar entre modos:

i vai para modo de inserção
o vai para modo de inserção, inserindo uma nova linha
<ESC> ou Ctrl-C vai para o modo normal

b) Cancelar comandos:

u undo command

c) Deletar textos:

5dd deleta 5 linhas
d2w deleta 2 palavras
5x deleta 5 letras
dgg deleta até o início do arquivo
dG deleta até o final do arquivo

d) Navegar:

gg pula para a primeira linha
G pula para a última linha
12G pula para a linha 12

e) Pesquisar/Substituir:

/
?
*
pesquisar uma palavra para frente
pesquisar uma palavra para trás
pesquisar pela palavra que está correntemente sob o cursor
n
N
repete a pesquisa para frente
repete a pesquisa para trás
:%s/velho/novo/g troca ‘velho’ por ‘novo’ em todo o texto
:set hlsearch
:nohlsearch
realçar os resultados de uma pesquisa
retirar os realces dos resultados da busca

f)Modo Visual
Copiar texto:

v para entrar no modo visual
o enquanto movimenta o cursor para marcar o texto, a tecla “o” faz alternar entre o início e o final do bloco possibilitando modificar o começo e o final da seleção.
y após movimentar o cursor para marcar o texto, (yank) para copiar o texto
p (paste) para inserir o texto na posição corrente

Mover texto:

v para entrar no modo visual
o enquanto movimenta o cursor para marcar o texto, a tecla “o” faz alternar entre o início e o final do bloco possibilitando modificar o começo e o final da seleção.
d após movimentar o cursor para marcar o texto, (delete) para retirar o texto
p (paste) para inserir o texto na posição corrente

“Replace” de texto:

v para entrar no modo visual
o enquanto movimenta o cursor para marcar o texto, a tecla “o” faz alternar entre o início e o final do bloco possibilitando modificar o começo e o final da seleção.
r<c> após movimentar o cursor para marcar o texto, substituir o texto marcado pelo caracter digitado em seguida

g) Split windows:

vim arquivo1.txt abrir primeiro arquivo
:split arquivo2.txt abrir segundo arquivo, dividindo a janela do editor horizontalmente
:vsp arquivo3.txt abrir terceiro arquivo, dividindo a janela do editor verticalmente
:e arquivo4.txt abrir quarto arquivo sobre a janela ativa, fazendo a janela anteriormente ativa ficar invisível
<Ctrl-w>+<Ctrl-w> navegar entre as janelas dos arquivos
<Ctrl-w>+s
<Ctrl-w>+v
splitting horizontal
splitting vertical
:ball
:vertical ball
(re-)split qualquer número de janelas horizontalmente, fazendo todas elas visível
(re-)split qualquer número de janelas verticalmente, fazendo todas elas visível
:hide
:only
fazer a janela ativa ficar invisível
manter visível apenas a janela correntemente ativa
:ls
:b 2
mostrar os buffers correntes (janelas)
abrir o buffer #2 nesta janela ativa
10 <Ctrl-w>
<Ctrl-w>=
aumentar o tamanho da janela em 10 linhas
fazer as janelas terem o mesmo tamanho
<Ctrl-w>q para fechar uma janela
<Ctrl-w><seta> navegar para janela adjacente
:help opening-window help para a gestão das janelas

h) Lendo/Gravando arquivos

:1,10 w nome_arquivo salva as linhas de 1 a 10 em “nome_arquivo”
:1,10 w >> nome_arquivo adiciona as linhas de 1 a 10 em “nome_arquivo”
:r nome_arquivo insere o conteúdo de “nome_arquivo” no atual

i) Outros comandos e facilidades:

:qa sair do Vim, fechando todas as janelas
:shell
$ exit
sair momentaneamente do Vim, e iniciar um processador de comando (shell) rodando sobre o Vim
sair do shell e retornar ao Vim
:!ls executar comando shell dentro do vim. Neste exemplo, executar o comando shell ls
gv reselecionar a última seleção realizada
abbr abreviaturas para edição. Por exemplo, colocando o comando a seguir no arquivo ~/.vimrc fará com que ao se digitar “pq” o Vim automaticamente o substituirá pela palavra “porque”:
abbr pq porque
.
10.
estando no modo Normal, repetir a última ação realizada
estando no modo Normal, repetir a última ação realizada 10 vezes
:e .
:Sex
abrir o navegador de arquivos do Vim
divide a janela e abre o navegador de arquivos integrado
automaticamente habilitar JavaScript auto-complete através de comando no arquivo ~/.vimrc:
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

Referências
1- How to control vim colors
2- vim – better colors
3- Open vimrc file
Tutoriais de comandos Vim:
4- Vim tutorial for beginners
5- Vim Básico
6- 17 dicas para o Vim
7- VIM: Comandos e Dicas que Você Não Pode Deixar de Conhecer

SSH é um protocolo seguro para comunicações entre máquinas que utiliza conexões encriptadas. SSHFS é uma ferramenta que usa o SSH para habilitar a montagem de filesystem remoto na máquina local.

1. Instalação

# apt-get install sshfs
# modprobe fuse // carregar o módulo fuse

Obs:
a) o sshfs tem dependência do FUSE 2.2 (ou posterior) e do Glib2.0 (ou posterior). Caso o módulo fuse não esteja carregado uma mensagem de erro será mostrada:
fusermount: fuse device not found, try ‘modprobe fuse’ first
b) módulo fuse: adicione os usuários que poderão utilizar o sshfs, pois originalmente somente o usuário root tem esta permissão. Para isto adicione os usuários desejados ao grupo fuse com o seguinte comando:
# gpasswd -a nome-usuario fuse
c) caso o usuário não esteja no grupo fuse e tente usar o aplicativo sshfs, uma mensagem de erro será mostrada no seguinte formato:
fuse: failed to open /dev/fuse: Permission denied
d) os comandos “gpasswd” só terá efeito na próxima sessão do usuário. Assim, se o usuário estiver logado, deve sair de sua sessão e entrar novamente.

2. Fazendo uso do sshfs

a) montar o diretório remoto
$ sshfs usuario-remoto@ip-servidor:/caminho-pasta-remota pasta-local/

b) desmontar o diretório remoto
$ fusermount -u pasta-local/

Originalmente, o sshfs permite que apenas o usuário que realizou a montagem tenha acesso aos arquivos dentro da pasta local. Se você deseja que todos os usuários do sistema tenham acesso, adicione o parâmetro “-o allow_other”, como em:

$ sshfs usuario-remote@ip-servidor:/caminho-pasta-remota /pasta-local -o allow_other

3. Keep Alive
A sessão SSH será automaticamente desconectada se ela ficar “idle”. Para manter a conecção ativa (“alive”), adicione em ~/.ssh/config (ou em /etc/ssh/ssh_config) na máquina cliente:

ServerAliveInterval 20

Isto fará com que seja enviado um sinal de “keep alive” para a máquina servidora a cada 20 segundos. Este valor pode ser alterado, por exemplo, um valor comumente utilizado é 120.

Obs:
– no caso de conexões ruins, você pode tornar a montagem mais robusta adicionando as opções “-o reconnect” e “-o sshfs_sync“. Elas fazem com que o sshfs tente restabelecer a conexão automaticamente sempre que ela for perdida e sincronize as operações de escrita, minimizando assim a possibilidade de perda ou de corrupção dos arquivos devido a quedas na conexão.

Referências:
Usando o sshfs
How to mount a remote ssh filesystem using sshfs

1. Introdução

1.1 Pontos fundamentais a analisar no sistema
Existem quatro recursos que têm grande impacto sobre o desempenho da máquina e entendemos serem obrigatórios seu monitoramento:

  • tempo de CPU
  • memória
  • I/O de disco rígido
  • I/O de rede

1.2 Ferramentas
Existem diversas ferramentas livres úteis para fazer análises de uma máquina com Linux. Listarei abaixo algumas destas ferramentas que utilizo com mais frequência.

  • vmstat (já instalado: hashed em /usr/bin/vmstat)
  • uptime (já instalado: hashed em /usr/bin/uptime)
  • nmon (apt-get install nmon)
  • free (já instalado: hashed em /usr/bin/free)
  • mpstat (apt-get install sysstat)
  • procinfo(apt-get install sysstat)
  • top (já instalado: /usr/bin/top)
  • ps (já instalado: hashed em /bin/ps)
  • IPTraf (apt-get install iptraf)

1.3 Entendendo um pouco mais sobre o uso de memória nos sistemas Linux

  • Virtual memory = é a soma do espaço de swap disponível no disco + memória RAM física. A memória virtual abrange o espaço da aplicação e o espaço do kernel.
  • A utilização de um sistema de 32-bit ou de 64-bit faz muita diferença na determinação do quanto de memoria um processo pode utilizar. Em um sistema de 32-bit um processo pode acessar apenas um máximo de 4GB de memória virtual. Em um sistema de 64-bit não existe tal limitação. A RAM não utilizada será usada como cache do sistema de arquivos pelo kernel.
  • O sistema Linux fará swap quando ele necessitar de mais memória. Isto é, quando ele necessitar de mais memória que a memória física RAM. Quando ele faz o swap, ele escreve as páginas de memória menos acessadas da memória física RAM para o disco.
  • Um número excessivo de “swapping” pode causar impactos negativos na performance do sistema, em função da velocidade do disco ser muito menor que da memória física além desta operação em si também tomar tempo na transferência de dados entre RAM-disco.

2. Análise de emprego de CPU
Dados relevantes para isto: utilização global da CPU, médias de cargas e consumo de CPU por processo.

2.1 Ferramenta vmstat
vmstat – virtual memory statistics, reporta informações sobre processos, memória, paginação, blocos de IO, interrupções, discos e atividade da CPU.

Exemplos:
# vmstat (médias desde o momento que o sistema fora inicializado)
# vmstat -s (mostra uma tabela com a síntese de varios contadores de eventos e estatísticas da memória)
# vmstat -d (informações estatisticas atividades do disco)
# vmstat -D (sumário das estatisticas sobre as atividades do disco)
# vmstat 5 10 (estes dois números representam: número segundos a observar/número de relatórios)


# vmstat 5 4
procs -----------memory------------   ---swap--  ----io--  --system-   ----cpu----
 r  b   swpd   free    buff  cache    si   so    bi    bo    in   cs   us sy id wa
 1  0      0 14477472 140848 775312    0    0     0    47  2230 1321   14  6 80  0  (<-- esta primeira linha são sempre as médias desde o momento que o sistema fora inicializado)
 0  0      0 14528584 140864 759252    0    0     0   112  2027 1231   14  5 81  0
 0  0      0 14526948 140872 759084    0    0     1   106  2258 1239   13  5 82  0
 0  0      0 14527120 140880 759328    0    0     4   106  2149 1526   16  7 77  0

Vemos que as informações mostradas estão semanticamente agrupadas: informações sobre processos, sobre o subsistema de memória, swap, I/O, funcionamento do sistema e finalmente sobre a CPU.
procs – r: número de processos esperando para serem executados na fila de execução (esperando por “run time”).
procs – b: número de processos em uninterruptible sleep (“busy processes”).

OBS: a fila de execução indica o número total de processos ativos na fila corrente esperando por tempo de CPU. Quando a CPU está pronta para executar um processo, ela retira este processo da fila baseado nas prioridades dos processos. É importante destacar que os processos que estão no estado “sleep”, ou no estado esprando i/o não ficam na fila de execução.

Swap – si: memória “swapped” do disco (a cada segundo)
Swap – so: memória “swapped” para o disco (a cada segundo)
IO – bi: blocos recebidos do disco (blocks/s – cada bloco é de 1024 bytes). OBS: é a mesma informação dada em “kB_read/s” da ferramenta “iostat”.
IO – bo: blocos enviados para o disco (blocks/s). OBS: é a mesma informação dada em “kB_wrtn/s ” da ferramenta “iostat”.

System – in: número de interrupções por segundo (incluindo o clock).
System – cs: número de trocas de contexto por segundo (quando a CPU chaveia de um processo (ou “thread”) para um outro, isto é chamado de troca de contexto).

CPU – us: % do total de CPU time gasto executando código non-kernel. (user time, including nice time)
CPU – sy: % do total de CPU time gasto executando código do kernel. (system time, na prática serve para o processamento de eventos do sistema.)
CPU – id: % do total de CPU time idle (inatividade).
CPU – wa: % do total de CPU time gasto esperando por IO

2.2 Ferramenta mpstat
mpstat é um software de linha de comando de computador utilizado em sistemas operacionais do tipo Unix para relatar (na tela) estatísticas relacionadas ao processador. Ele é usado na monitorização de computador a fim de diagnosticar problemas ou para construir estatísticas sobre o uso da CPU. A primeira CPU é identificada pelo número “0”.
Sintaxe:
# mpstat

Exemplos:
# mpstat -A
# mpstat -u 3
# mpstat -P 0
# mpstat -P ALL
# mpstat -P 1,2
# mpstat -P ALL -u 10
# mpstat -I SCPU
# mpstat -I ALL
# mpstat -I ALL -u -P ALL


# mpstat -u 3
Linux 3.2.0-4-amd64 (server01.meusitio.org) 	25-10-2013 	_x86_64_	(8 CPU)

21:04:02     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
21:04:05     all   12,03    0,00    5,51    0,25    0,00    0,04    0,00    0,00   82,16
21:04:08     all    9,60    0,00    3,42    0,38    0,00    0,08    0,00    0,00   86,51
21:04:11     all    6,34    0,00    1,84    0,00    0,00    0,00    0,00    0,00   91,82
21:04:14     all   15,78    0,00    4,67    0,29    0,00    0,00    0,00    0,00   79,26
21:04:17     all   13,73    0,00    6,05    0,00    0,00    0,13    0,00    0,00   80,10
21:04:20     all   13,93    0,00    5,97    0,25    0,00    0,08    0,00    0,00   79,77
21:04:23     all    8,84    0,00    3,05    0,29    0,00    0,00    0,00    0,00   87,82

Onde:

  • %usr percentual de utilização da CPU, que ocorreu durante a execução no nível de usuário (aplicação).
  • %nice percentual de utilização da CPU, que ocorreu durante a execução no nível de usuário com prioridade “nice”.
  • %sys percentual de utilização da CPU, que ocorreu durante a execução no nível do sistema (kernel). Note-se que esta não inclui o tempo gasto de assistência ao hardware nem de interrupções de software.
  • %iowait percentual de tempo que a CPU ou CPUs estavam ociosas, durante o qual o sistema teve um pedido de I/O.
  • %irq percentual de tempo gasto pela CPU ou CPUs para tratar interrupções de hardware.
  • %soft percentual de tempo gasto pela CPU ou CPUs para atender interrupções de software.
  • %idle percentual de tempo que a CPU ou CPUs estavam ociosas e o sistema não tinha um pedido de I/O de disco.

2.3 Ferramenta uptime
Informa em uma linha as seguintes informações: hora atual, a quanto tempo o sistema está funcionando, quantos usuários estão conectados, e as médias de carga do sistema nos últimos 1, 5 e 15 minutos. Estas são as mesmas informações contidas na linha do cabeçalho exibido pelo comando “w”.

# uptime
14:42:12 up 4 days, 8:28, 1 user, load average: 1,15, 1,29, 1,33

“load average”: hora atual/a quanto tempo o sistema está executando/quantos usuários estão correntemente logados/”load averages” do sistema do últimos 1, 5 e 15 minutos nesta ordem.
OBS: system load averages:
a) O load average é calculado combinando o número total de processos no estado executável, e o número toal de processos em “uninterruptable task state”. Um processo em um estado executável ou está usando a CPU ou esperando para usar a CPU (na fila de processos executáveis). Um processo está no estado não susceptível de interrupção quando está esperando por algum tipo de acesso I/O, por exemplo, à espera de disco. As médias são tomadas ao longo dos três intervalos de tempo.

b) Médias de carga não são normalizadas para o número de CPUs em um sistema: uma média de carga 1 significa que em um sistema com processador único este está carregado todo o tempo, enquanto que em um sistema de 4 CPUs significa que a CPU está ativa por 25% do tempo.
Como saber o número de CPUs? Basta usar o comando “top”, e quando este estiver em execução digital a tecla “1”. Então para o caso de 8 CPUs, temos para o load average acima: 1,15/8 => 14,4% de tempo de CPU ativa.

2.4 Ferramentas: ps e top
ps: relatório instantâneo dos processos atuais.
top: um “ps” repetitivo

Ferramentas como o ‘ps’ e ‘top’ relatam vários tipos de usos de memória, tais como o tamanho da VM e o “Resident Set Size (RSS)”. No entanto, nenhum deles informa realmente o uso da memória “real”:

  • o código do programa é compartilhado entre várias instâncias do mesmo programa;
  • o código das bibliotecas é compartilhado entre todos os processos que utilizam essa biblioteca;
  • alguns “apps fork” dos processos compartilham memória com eles (por exemplo, através de segmentos de memória compartilhada).
  • RSS é 0 quando um processo é trocado, o que não é muito útil.
  • o valor do RSS não inclui a memória compartilhada. Devido ao fato que a memória compartilhada não ser pertencente a apenas 1 processo, “top” não inclui seu valor no RSS. Então, isto causa o número indicativo de “free” ser maior que a soma em “top” do RSS.
  • etc.

Assim, o sistema Linux de memória virtual torna o relatório do tamanho do VM e RSS muito deficiente, e estes valores devem ser vistos com cautela.

Exemplos:
# ps aux
# ps -ef
# ps -eF
# ps -ely
# ps -u www-data
# ps -e -o pid,args --forest

O exemplo acima apresenta os processos e comandos em uma forma hierárquica. O argumento “–forest” é que força a exibição da árvore de processos. A partir desta árvore, podemos identificar qual é o processo pai e os processos filhos que bifurcam de forma recursiva.

# top


# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10644   820 ?        Ss   Out21   0:03 init [2]  
root       382  0.0  0.0  21508  1392 ?        Ss   Out21   0:00 udevd --daemon
root       409  0.0  0.0  71188  3704 ?        Ss   17:10   0:00 sshd: root@notty 
root       469  0.0  0.0  12668   992 ?        Ss   17:10   0:00 /usr/lib/openssh/sftp-server
root       537  0.0  0.0  21504  1048 ?        S    Out21   0:00 udevd --daemon
5003      2336  0.0  0.1 313348 17712 ?        Ss   11:21   0:00 /usr/bin/php-cgi -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/server/temp
5003      2338  0.0  0.1 319144 19580 ?        S    11:21   0:00 /usr/bin/php-cgi -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/server/temp
postfix   4906  0.0  0.0  71904  4108 ?        S    21:03   0:00 smtp -t unix -u -c
postfix   4907  0.0  0.0  71904  4144 ?        S    21:03   0:00 smtp -t unix -u -c
postfix   4909  0.0  0.0  39888  2372 ?        S    21:03   0:00 bounce -z -n defer -t unix -u -c
root      5555  0.0  0.0  23156  2864 ?        S    18:46   0:00 dovecot/config
www-data  5669  0.0  0.0 395552 16304 ?        S    11:24   0:14 /usr/sbin/apache2 -k start
www-data  5686  0.0  0.0 395420 16440 ?        S    11:24   0:14 /usr/sbin/apache2 -k start
www-data  5687  0.0  0.1 398276 22120 ?        S    11:24   0:14 /usr/sbin/apache2 -k start
postfix   6181  0.0  0.0  39888  2372 ?        S    21:04   0:00 bounce -z -n defer -t unix -u -c
postfix   6695  0.0  0.0  39988  2408 ?        S    21:05   0:00 showq -t unix -u -c
110       7227  0.0  0.0  29800   460 ?        Ss   Out21   0:00 /usr/bin/dbus-daemon --system
root     17621  0.0  0.0  21644  1004 ?        Ss   Out22   0:06 /usr/sbin/dovecot -c /etc/dovecot/dovecot.conf
dovecot  17631  0.0  0.0  13044  1044 ?        S    Out22   0:01 dovecot/anvil
root     17632  0.0  0.0  13172  1296 ?        S    Out22   0:01 dovecot/log
root     18009  0.0  0.0  45480  2872 ?        S    Out22   0:02 dovecot/auth
root     20748  0.0  0.0  19168  1412 ?        S    Out23   0:00 dovecot/ssl-params
amavis   22761  0.0  0.5 223636 96088 ?        Ss   Out21   0:05 /usr/sbin/amavisd-new (master)
root     23359  0.0  0.0  49848  1244 ?        Ss   Out22   0:02 /usr/sbin/sshd
root     23419  0.9  0.0 500192 10624 ?        Sl   Out22  39:03 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock
clamav   23501  0.0  1.4 378096 238528 ?       Ssl  Out21   3:00 /usr/sbin/clamd
clamav   30828  0.0  0.0  43372  2200 ?        Ss   Out21   5:00 /usr/bin/freshclam -d --quiet

Algumas explicações:
VSZ – virtual set size (em KB, quanto de memória o processo estaria utilizando se ele fosse o único processo rodando, sem utilizar bibliotecas compartilhadas).
RSS – resident set size (em kB, indica – em tese – a quantidade de memória física que o processo está usando)

2.5 Ferramenta nmon
nmon é um administrador de sistemas, sintonizador, ferramenta de benchmark. Ele pode exibir o CPU, memória, rede, discos (mini gráficos ou números), sistemas de arquivos, NFS, os processos principais, recursos (versão do Linux e processadores) e outras informações. Ao iniciar o aplicativo, este fica esperando comandos do usuário, cuja lista pode ser visualizada através da telca “h”. Veja a ilustração abaixo:

Tela do aplicativo nmon

3. Analisando a utilização da memória
O Linux gerencia a memória em unidades chamadas páginas. O tamanho atual de uma página de memória no PC é de 4K. O kernel do Linux aloca páginas virtuais para processos à medida que eles forem solicitando memória. O Linux pode alocar efetivamente tanta memória quanto os processos solicitarem amplicando a RAM real com espaço de swap.

Basicamente, três números quantificam a atividade de memória:

  • a quantidade total de memória virtual ativa;
  • taxa de swapping;
  • taxa de paginação.

O primeiro número informa a demanda total por memória. Os dois seguintes sugerem a proporção dessa memória que está sendo usada efetivamente.

3.1 Indo direto a fonte de informação


# cat /proc/meminfo
MemTotal:       16471012 kB
MemFree:        11282704 kB
Buffers:          270516 kB
Cached:          3398320 kB
SwapCached:            0 kB
Active:          3457056 kB
Inactive:        1120516 kB
Active(anon):     908908 kB
Inactive(anon):    17796 kB
Active(file):    2548148 kB
Inactive(file):  1102720 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      29642748 kB
SwapFree:       29642748 kB
Dirty:              1312 kB
Writeback:             0 kB
AnonPages:        909216 kB
Mapped:            59120 kB
Shmem:             17972 kB
Slab:             463492 kB
SReclaimable:     412220 kB
SUnreclaim:        51272 kB
KernelStack:        2888 kB
PageTables:        83564 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    37878252 kB
Committed_AS:    4737592 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       59772 kB
VmallocChunk:   34359669008 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       89408 kB
DirectMap2M:    16687104 kB

3.2 Ferramenta free
Mostra a quantidade total de memória livre e utilizada no sistema, tanto a memória física como a de swap, bem como os buffers utilizados pelo kernel. A coluna de memória compartilhada (“shared memory”) deve ser ignorado, está obsoleta.
Exemplos:
# free
# free -t
# free -m
# free -h
# free -s 3 -c 10


# free -t
             total       used       free     shared    buffers     cached
Mem:      16471012    2871416   13599596          0     118556    1512528
-/+ buffers/cache:    1240332   15230680
Swap:     29642748          0   29642748
Total:    46113760    2871416   43242344

3.3 Comando “swapon -s”
Mostra o sumário do uso de swap por “device”.


# swapon -s
Filename				Type		Size	      Used   Priority
/dev/mapper/server01-swap_1             partition	29642748	0	-1

3.4 Ferramenta procinfo
Mostra estatisticas do sistema a partir de /proc. Algumas das informações na saíde de procinfo sobrepõem aquelas de free, uptime e vmstat.

Exemplos:
# procinfo
# procinfo -n5
# procinfo -d

# procinfo
Memory:        Total        Used        Free     Buffers                       
RAM:        16471012     2887212    13583800      118900                       
Swap:       29642748           0    29642748                                   

Bootup: Mon Oct 21 06:13:43 2013   Load average: 0.92 1.22 1.33 3/330 26091    

user  :        3d 00:46:47.07   8.2%  page in :          1737489               
nice  :           00:00:15.38   0.0%  page out:         64158644               
system:        1d 05:13:04.66   3.3%  page act:          5530057               
IOwait:           02:12:10.39   0.2%  page dea:              622               
hw irq:           00:00:00.02   0.0%  page flt:      21189714766               
sw irq:           00:12:55.88   0.0%  swap in :                0               
idle  :     4w 4d 15:06:37.00  88.2%  swap out:                0               
uptime:        4d 15:05:08.70         context :        740995265               

irq   0:       1377  timer               irq  15:        359  ata_piix         
irq   1:          3  i8042               irq  16:          0  uhci_hcd:usb5    
irq   6:          3  floppy              irq  17:         22  ehci_hcd:usb1, uh
irq   8:          1  rtc0                irq  18:          0  uhci_hcd:usb4    
irq   9:          0  acpi                irq  19:          0  uhci_hcd:usb3    
irq  12:          5  i8042               irq  65:   45100644  eth0             
irq  14:    2498028  ata_piix            irq  67:          4  ioat-msi         

sda            88800r         2281754w   dm-0          114634r         5913904w
sdb              355r               0w   dm-1             127r               0w

eth0        TX 31.08GiB      RX 11.59GiB      lo          TX 230.16MiB     RX 230.16MiB    
eth1        TX 0.00B         RX 0.00B

Algumas explicações:
a) sobre o load average:
3/330 – existem 330 processos no total
26091 – último processo a ser executado tinha PID 26091
b) context – número de trocas de contexto, desde a inicialização.
c) page in – número de blocos do disco paginada do disco na RAM. Um bloco é igual a 1 KB.
d) page out – número de blocos de disco paginada da RAM para o disco. Isso inclui a escrita regular no disco.
e) Interrupções – número de interrupções desde o boot, ou por intervalo, listado por IRQ.

4. Analisando o I/O de disco

4.1 Ferramenta iostat
Relatório com estatísticas da CPU e de entrada/saída de dispositivos e partições. Usado para monitorar o sistema de carga de entrada/saída de dispositivos, observando o tempo que os dispositivos estão ativos em relação às suas taxas de transferências médias.

Exemplos:

# iostat -t (mostrar um único relatório, com a primeira linha "avg-cpu" representa estatisticas desde o último boot).
# iostat 4 ( executar iostat automaticamente a cada 2 segundos - até o usuário pressionar Ctl-C)
# iostat -x (mostrar estatisticas estendidas)
# iostat -d 2 (mostrar continuadamente o relatório de "devices" com intervalos de 2 segundos).
# iostat -d 2 6 (mostrar 6 relatórios com 2 segundos de intervalo para todos os "devices")


# iostat -t
Linux 3.2.0-4-amd64 (server01.meusitio.org) 25-10-2013 _x86_64_ (8 CPU)
25-10-2013 21:35:50
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8,21    0,00    3,32    0,25    0,00   88,22

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               5,93         4,34       160,34    1738112   64284836
sdb               0,00         0,00         0,00       1349          0
dm-0             15,07         4,33       160,34    1734281   64284828
dm-1              0,00         0,00         0,00        508          0

Algumas explicações:
a) tps – transações totais por segundos, que é a soma do número de transações de leitura por segundo com o número de transações de escrita por segundo.
b) kB_read/s – quantidade de dados lidos a partir do dispositivo, expressa em número de blocos (kilobytes) por segundo. Blocos são equivalentes aos setores e, portanto, têm um tamanho de 512 bytes. OBS: é a mesma informação dada em “IO – bi” da ferramenta vmstat.
c) kB_wrtn/s – quantidade de dados gravados no dispositivo expresso em número de blocos (kilobytes) por segundo. OBS: é a mesma informação dada em “IO – bo” da ferramenta vmstat.
d) kB_read – o total número de blocos (kilobytes) lidos.
e) kB_wrtn – o total número de blocos (kilobytes) escritos.

5. Análise de I/O de rede

5.1 Ferramenta IPTraf
IPTraf é um monitor de LAN IP que gera várias estatísticas de rede, incluindo informações TCP, contagens UDP, informações ICMP e OSPF, informações de carga Ethernet, estatísticas do “node”, erros de checksum IP entre outros. O aplicativo pode funcionar no modo interativo ou em background. Se o comando iptraf é emitido sem o parâmetro “-B” na sua linha de comando, o programa inicia no modo interativo, com as diversas facilidades acessados ​​através do menu principal.

A forma mais simples de iniciar o aplicativo no modo interativo, basta usar o comando sem qualquer parâmetro:
# iptraf

Para o modo em background, é importante fazer previamente a configuração do IPTraf através do modo interativo, e só após isto iniciar a sessão de aquisição estatistica em background. Configure o aplicativo da maneira usual (definir os filtros, logs, intervalos de aquisição, adicionar as portas TCP/UDP, etc). Uma vez feito a configuração, elimine todas as instâncias do IPTraf que possam existir no sistema, e invoque o IPTraf da linha de comando com os parâmetros desejados, não esquecendo obrigatoriamente do parâmetro “-B” para criar o programa daemon.

Exemplos de comandos para IPTraf em background:
a) Monitorar o tráfego IP para a interface eth0, durante 3 minutos:
# iptraf -i eth0 -t 3 -B
obs: cuidado, o arquivo de log poderá crescer muito se o tempo de coleta for grande!

b) Coletar estatísticas detalhadas da interface eth0, durante 5 minutos:
# iptraf -d eth0 -t 5 -B

c) Coletar estatísticas sobre os serviços que estão sendo utilizados pela interface eth0, durante 2 minutos:
# iptraf -s eth0 -t 2 -B

Obs:

  • A saída de logs do aplicativo está na pasta /var/log/iptraf/
  • O parâmetro -B automaticamente habilita o log independentemente do que está configurado no aplicativo.
  • Para especificar nomes personalizados para os arquivos de logs, adicione na linha de comando o parâmetro -L. Se este parâmetro não for especificado, o nome default do arquivo de log para a facilidade será usado. Se o usuário não especificar o caminho, o arquivo de log será colocado no local padrão em /var/log/iptraf.
  • Toda vez que iniciar em background o IPTraf, verifique se o processo realmente está em execução da seguinte forma:
    # ps -A | grep iptraf
    28380 ? 00:00:00 iptraf
  • Se desejar abortar um processo em execução do IPTraf, utilize o comando:
    # kill -USR2 , onde o pid é obtido facilmente com o comando: # ps -A | grep iptraf
    Obs:
    i) ao interromper desta forma a execução do IPTraf, os resultados parciais serão depositados no arquivo de log;
    ii) nunca utilize o comando # killall -9 iptraf para abortar um processo do IPTraf, pois isto resultará em uma saída com erro e bloqueará recursos no sistema. Ou seja, caso seja ocasionalmente utilizado este comando, a interface ficará presa e bloqueará o início de um novo processo do IPTraf. No modo interativo, serão emitidas mensagens de erro do tipo: “Detailed interface stats already monitoring eth0” ou ainda “IP Traffic Monitor already listening on eth0”. Para sair desta situaçao, faça o seguinte:
    # iptraf -f
    Este comando irá resetar os sockets, apagar todos os bloqueios e contadores, e assim deixar livres as interfaces para poderem ser lidas novamente. Uma forma alternativa a este comando é removendo diretamente os arquivos do status/controle do aplicativo:
    # rm /var/run/iptraf/* -rf
  • IPTraf programado através do CRON: pode ser interessante programar o IPTraf para rodar de tempos em tempos automaticamente. Para isto, como administrador, edite a tabela do cron através do comando “crontab -e” e insira a linha:
    */30 * * * * /usr/sbin/iptraf -s eth0 -t 2 -B
    Isso fará com que a cada 30min o IPTraf seja acordado e colete durante 2min estatísticas sobre os serviços que estão sendo utilizados pela interface eth0. Isto é um exemplo, pois as opções de funcionamento do IPTraf são várias, conforme viamos acima. O relatório cumulativo ao longo do tempo estará disponível na pasta /var/log/iptraf/

Referências:
1- Linux Performance Monitoring and Tuning Introduction
2- 50 UNIX / Linux Sysadmin Tutorials

O editor “mcedit” é um link para o “mc” (midnight commander), o executável principal do GNU Midnight Commander. Executar o GNU Midnight Commander através deste nome faz iniciar o editor interno e abrir o arquivo especificado na linha de comando. Este editor pode editar arquivos até 64 megabytes, bem como editar arquivos binários.

A configuração padrão traz o tom azul como predominante. Mas isto pode ser alterado mudando os valores presentes no arquivo /usr/share/mc/skins/default.ini . Para alterar para uma predominância da cor verde, com cor da janela de edição sendo preta, altere as seguintes linhas:

[core]
_default_=lightgray;black

[menu]
_default_=white;green
menuhot=red;green

[buttonbar]
button=black;green

[statusbar]
_default_=black;green

[editor]
_default_=white;black
editlinestate=white;green
editbold=yellow;brightgreen

[popupmenu]
_default_=white;green
menusel=yellow;black
menutitle=yellow;cyan

Onde a ordem das cores designa: <fgcolor>,<bgcolor>

Referências:

Midnight Commander colors and themes

1. Baixar arquivos da internet
Fazer download para a pasta atual todos os arquivos “html” em “pasta_ftp/arquivos_importantes/” de um determinado sitio:
wget -rnd -A *.html http://sitioabc.com.br/pasta_ftp/arquivos_importantes/

2. Copiar/mover arquivos e diretórios dentro de um mesmo servidor
a) Copiar
No comando a seguir, copiar todos os arquivos e subdiretórios da pasta origem, fazendo a criação automática dos subdiretórios necessários no destino. Neste exemplo, é preservado o máximo possível a estrutura e atributos dos arquivos originais no processo de cópia. As ligações simbólicas são mantidas, não copiando os arquivos apontados.

$ cp -a pasta_origem/* pasta_destino/

b) Mover
Agora para mover todos os arquivos e subditórios, fazendo a criação automática dos subdiretórios necessários no destino e apagando a pasta da origem, observar o comando abaixo:

$ mv pasta_origem/ pasta_destino/.

Neste caso, a pasta origem (e todos os seus arquivos e subdiretórios) serão movidos para uma pasta do mesmo nome que será criada automaticamente dentro da pasta destino indicada.

3. Copiar arquivos e diretórios entre diferentes servidores
a) Cria na pasta corrente uma nova pasta com o mesmo nome da pasta inficada do servidor remoto, e copia para esta todo o conteúdo da pasta do servidor remoto, incluindo seus subdiretórios e arquivos.
$ scp -r usuario@IP-server:/caminho-para-pasta/ .

b) Copia para a pasta corrente do servidor local todos os arquivos encontrados na pasta indicada do servidor remoto, criando os subdiretórios existentes no servidor remoto e transferindo seus arquivos.
scp -r usuario@IP-server:/caminho-para-pasta/* .

4. Criar link simbólico
Para criar um link simbólico na pasta atual “minha_pasta” chamado “nome-s” apontando para o diretorio destino “/caminho-completo/diretorio_destino” , fazer:
minha_pasta$ ln -s /caminho-completo/diretorio_destino nome-s

5. Propriedades de arquivos e diretórios:
a) Fazer todos os diretórios terem modo 755
find . -type d -exec chmod 755 {} \;

b) Fazer todos os arquivos terem modo 644
find . -type f -exec chmod 644 {} \;

c) Copiar arquivos recursivamente, mantendo a sua propriedade
cp -Rpd endereco-pasta/arquivo .
// R: copia os directorios recursivamente
// p: preserva “mode”,”ownership” e “timestamps”
// d: não segue os links simbólicos

d) Mudar a propriedade dos arquivos e pastas recursivamente (incluindo as pastas internas)
chown -R jose:jose *

6. Compactar/Desempacotar arquivos
Instale os descompactadores e os utilize segundo o algoritmo que fora compactado o arquivo:
# apt-get install tar rar unrar unzip

Compactar:
a) tar -zcpf bind.tar bind/ --totals
// compacta todo diretorio e subdiretorios a partir da pasta bind/
// z: –gzip, –gunzip –ungzip
// c: criar um novo arquivo
// f: use archive file or device ARCHIVE
// p: preserve-permissions, extrair informação sobre as permissões dos arquivos (default para o superusuário)
// –totals: imprimir no console o total de bytes processados para o arquivo;
// (obs: por default, tar é recursivo)

Descompactar:
a) arquivos .tar:                       $ tar -xvpf nomedoarquivo.tar
// x: extract files from an archive
// v: verbose (detalhar)
b) arquivos .tar.gz:                   $ tar -vzxf nomedoarquivo.tar.gz
c) arquivos .bz2:                      $ bunzip nomedoarquivo.bz2
d) arquivos tar.bz2:                 $ tar -jxvf nomedoarquivo.tar.bz2
e) arquivos rar:                        $ unrar x nomedoarquivo.rar
f) arquivos gz:                          $ gunzip -d nomedoarquivo.gz

7. Comando find
O comando FIND é utilizado para procurar por arquivos na árvore de diretórios. Isto é, ele tenta localizar o que solicitamos dentro do local que indicamos e seus subdiretórios.
a) Comandos para informar
$ find /var/www/ -name php.ini -print       Procura os arquivos chamados php.ini a partir de /var/www/
$ find /var/ -user web1 -print          Procura por todos os arquivos pertencentes ao usuário web1 a partir da pasta /var
$ find /var/www/clients/client1/web1/ -iname “*.php” | wc -l            Quantidade de arquivos PHP existentes a partir da pasta web1
$ find . -iname “*.php” | wc -l          Quantidade de arquivos PHP existentes a partir da pasta atual
$ find / -group client1 -print              Procura os arquivos que pertençam ao grupo client1 em todo o sistema
$ find . -size +2048k -print                Procura arquivos maiores que 2MB (2048kb) a partir da pasta atual
$ find / -name ‘*.zip’ -print                Procura arquivos com a extensão .zip em todo o sistema
$ find . -maxdepth 4 -name standard             Procura arquivos (ou pastas) chamado standard até quatro níveis abaixo contados da pasta atual
$ find -help                                       Para help do comando

OBS: para buscar nome independentemente de letras maiúsculas ou minúsculas, substituir o comando -name por -iname.

b) Comandos para modificar nomes de arquivos e pastas
$ find . -maxdepth 1 -name "* *" | while read i; do novo=`echo $i | tr ' ' '_'`; mv "$i" $novo; done
Este comando renomeia todos os nomes de arquivos e diretorios que estejam na pasta atual, substituindo o “espaço” existente no seu por “_”.

8. Comando locate
O comando LOCATE pesquisa em uma base de dados de nomes de arquivos por nomes que satisfaçam um determinado padrão. Ou seja, é executado a busca a partir de uma base.
Primeiro instale o aplicativo:
# apt-get install locate

A partir de agora utilize livremente os seus comandos, procurando de tempos em tempos fazer a atualização da sua base dados (com o comando updatedb):
# updatedb                          Atualizar a base de dados
$ locate config.php               Procurar por arquivos chamados config.php na base de dados.

9. Grep Recursivo
Utilize uma das formas abaixo:

$ grep -rn --color departamento *
$ grep -rn --color -e departamento *
$ grep -rn --color --include="*.php" departamento .
$ grep -rn --color --include="*.php" departamento include/staff/
$ grep --color -E "palavra1|palavra2|palavra3" nome_arquivo

onde, respectivamente, temos:
a) procura a palavra “departamento” em todos os arquivos que estão no diretório atual e subdiretórios.
b) idem anterior.
c) procura a palavra “departamento” em todos os arquivos com extensão PHP que estão no diretório atual e subdiretórios.
d) procura a palavra “departamento” em todos os arquivos com extensão PHP que estão no subdiretório include/staff e em seus subdiretórios.
e) grep que procura várias palavras simultaneamente. No caso, procura palavra1, palavra2 e palavra3 no arquivo nome_arquivo

10. Limpar as memórias cache e de swap de disco
O uso destes recursos de memória podem ser facilmente visualizados através do comando “top”. Veja o exemplo abaixo de um recorte da resposta do servidor a este comando:

#top
Swap: 2987000k total, 16420k used, 2970580k free, 387640k cached

10.1 Limpar a memória cache
Algumas vezes acontece de um servidor que roda várias aplicações acumular muito espaço em memória cache, sem necessidades reais. Na verdade, estes aplicativos “esqueceram” de desalocar estes espaços de memória após o encerramento de seu processo. Essa alocação de memória de forma exagerada deve ser liberada manualmente. Para limpar a memória cache, utilize, por exemplo, o seguinte comando:
# echo 5 > /proc/sys/vm/drop_caches

Ao se utilizar novamente do comando “top” vemos abaixo o seguinte recorte da resposta a este comando:
Swap: 2987000k total, 16420k used, 2987000k free, 69732k cached

Ou seja, o uso da memória cache caiu para cerca de 18% do que vinha sendo utilizado. Ou seja, de 387640k para 69732k.

10.2 Limpar o swap de disco
a) Identifique a partição swap de seu disco:

# fdisk -l
/dev/sda5 30030 30402 2987008 82 Linux swap / Solaris

A partição swap está indicada com a palavra “swap”.

b) Desmonte e monte novamente a partição swap
# swapoff /dev/sda5
# swapon /dev/sda5

Novamente com o comando “top” vemos abaixo um novo recorte da resposta do servidor:
Swap: 2987000k total, 0k used, 2987000k free, 69732k cached

Agora vemos que temos 0k de memória de swap de disco utilizado.

11. Comandos para visualização das tarefas em execução pelo Linux
Muito úteis para identificar, por exemplo, qual o aplicativo que está consumindo todo o processador/memória:
$ top
$ htop

12. Verificar a versão do Debian instalado
$ cat /etc/debian_version
6.0.6

13. Verificar pacotes instalados
Para o caso do Postgis:
a) Forma 1:
$ apt-cache policy postgis

postgis:
Instalado: 1.5.1-5
Candidato: 1.5.1-5
Tabela de versão:
*** 1.5.1-5 0
500 http://ftp.br.debian.org/debian/ squeeze/main i386 Packages
100 /var/lib/dpkg/status

b) Forma 2:
$ dpkg -l | grep postgis


ii postgis 1.5.1-5 geographic objects support for PostgreSQL -- common files
ii postgresql-8.4-postgis 1.5.1-5 geographic objects support for PostgreSQL 8.4

OBS: a presença do “ii” no início da linha é a indicação de que o pacote está instalado.

14. Comandos ls
a) Comando ls colorido
Usando o console, normalmente tem-se na área dos usuários comuns o resultado do comando “ls” de forma colorida. Dessa forma fica mais fácil identificar visualmente os diversos tipos de arquivos, por exemplo, aqueles que são arquivos textos, arquivos executáveis, links simbólicos, etc.

No entanto, quando se faz a autenticação como administrador (diga-se, como superusuário) o resultado do comando “ls” é mostrado sem a diferenciação de cores citada.

Para deixar também o superusuário com esta facilidade, basta descomentar as seguintes linhas dentro do arquivo /root/.bashrc:


export LS_OPTIONS='--color=auto'
alias ls='ls $LS_OPTIONS'

Pronto, da próxima vez que o superusuário se autenticar ele já terá disponível a facilidade de cores para o comando “ls”.

b) Quantidade de entradas em um diretório


$ ls | wc -l
$ ls pasta/ | wc -l

Obs: apresentará a quantidade de entradas (pastas + arquivos)

15. Alterando o editor de textos padrão

# update-alternatives --config editor

Existem 3 escolhas para a alternativa editor (disponibiliza /usr/bin/editor).
  Selecção   Caminho             Prioridade Estado
------------------------------------------------------------
* 0            /usr/bin/vim.basic   30        modo automático
  1            /bin/ed             -100       modo manual
  2            /usr/bin/mcedit      25        modo manual
  3            /usr/bin/vim.basic   30        modo manual
Pressione enter para manter a escolha actual[*], ou digite o número da selecção:

Este comando “update-alternatives” cria, remove, mantém e exibe informações sobre os links simbólicos que compõem o sistema de alternativas do Debian. Isto possibilita que vários programas que se destinam a realizar as mesmas funções ou funções semelhantes possam ser instalados em uma mesma máquina ao mesmo tempo. Por exemplo, pode existir vários editores de texto instalado ao mesmo tempo em um sistema, possibilitando a cada usuário utilizar um editor diferente.

O comando altera a entrada “editor” em /etc/alternatives/, que, para o caso de se escolher a opção “mcedit”, ficará da seguinte forma:
lrwxrwxrwx 1 root root 15 Fev 3 15:26 editor -> /usr/bin/mcedit

Este processo de mudança ficará registrada em log no arquivo /var/log/alternatives.log da seguinte forma:
2013-02-03 15:03:07 update-alternatives: link group editor updated to point to /usr/bin/mcedit

16. Localização de um comando ou arquivo executável
a) Método 1: através de “which”
“which”retorna os caminhos dos arquivos (ou links) que seriam executadas no ambiente atual. Ele faz isso através de pesquisa o caminho para arquivos executáveis ​​correspondentes aos nomes dos argumentos. “which” não segue links simbólicos.

Exemplos:
$ which ifconfig

/sbin/ifconfig

$ which php5 ifconfig

/usr/bin/php5

Método 2: através do comando interno “type”
No bash, os comandos podem ser: internos (built-in) ou externos.
i) Comandos internos:
São aqueles que estão localizados dentro do interpretador de comandos (normalmente o Bash), sendo carregados na memória RAM do computador junto com o interpretador de comandos quando o sistema operacional é iniciado. Quando executa um comando, o interpretador de comandos verifica primeiro se ele é um comando interno, e, caso não seja, é verificado se é um comando externo. Exemplos de comandos internos: cd, type, exit, echo, kill, fg, source, help.

ii) Comandos externos:
São aqueles que estão localizados no disco. Os comandos são procurados no disco usando a definição do PATH (PATH é o caminho de procura dos arquivos/comandos executaveis. Exemplos: /bin e /sbin) e executados assim que encontrados. São exemplos de comandos extermos: rm, mkdir, rmdir e cp.

type : sem opção, informa como cada nome seria interpretado se usado através de um comando.
type -a : com opção “-a”, informa todos os locais que contém o executável citado, incluindo aliases e funções.
exemplos:
$ type ab php5 ls locate which id

ab is /usr/bin/ab
php5 is /usr/bin/php5
ls is aliased to `ls –color=auto’
locate is /usr/bin/locate
which is /usr/bin/which
id is hashed (/usr/bin/id)

$ type -a ab php5 ls locate which id

ab is /usr/bin/ab
php5 is /usr/bin/php5
ls is aliased to `ls –color=auto’
ls is /bin/ls
locate is /usr/bin/locate
which is /usr/bin/which
id is /usr/bin/id

17. Imprimir as últimas linhas de um arquivo
$ tail
$ tail -f
$ tail -n 15
Que significa, na ordem mostrada acima:
1- mostrar as últimas 10 linhas;
2- mostrar as últimas linhas a medida que são “apendadas” ao arquivo.
3- mostrar as últimas 15 linhas.

OBS: veja também multitail (http://www.vanheusden.com/multitail/examples.php) – apt-get install multitail

18.Gerenciadores de Arquivos para Gnome e Xfce

18.1 Se desejar ter um painel extra na mesma janela
A maneira mais prática é com o gerenciador de arquivos “Nautilus”. Claro, há necessidade do gerenciador gráfico Gnome ou Xfce instalado.

18.2 Se desejar renomear arquivos em lote
A maneira mais prática é com o gerenciador de arquivos “Thunar”. Novamente, há necessidade do gerenciador gráfico Gnome ou Xfce instalado.
As etapas são as seguintes:
i. Marcar os arquivos a serem renomeados;
ii. Usar o menu Editar -> Renomear
Agora é só montar a regra necessária. Ao usar o botão “Renomear Arquivos” todos os arquivos serão renomeados segundo a regra estipulada.

19. Limpar a histórico de comandos
$ history -c && history -w
O primeiro comando limpa o histórico, e o segundo esvazia imediatamente o arquivo de histórico. Isto vale unicamente para o usuário em que se fez o login.
OBS: o arquivo de histórico é guardado no arquivo “.bash_history”.

20. Múltiplas conexões com SSH
Vide o post na lista Dicas-L Múltiplas conexões com SSH.

Ícone do MuttO Mutt é um aplicativo baseado em texto (para terminais) que interage com os usuários através de menus diferentes, que são na sua maioria line-/entry-based ou baseado em página. Um menu baseado em linha é o conhecido menú de “índice” (listando todas as mensagens da pasta atualmente aberta) ou o “alias” menu (permitindo-lhe selecionar os destinatários a partir de uma lista). É um aplicativo poderoso para leitura e envio de emails em sistemas operacionais UNIX/Linux.

O mutt é tão somente um MUA (“Mail User Agent”, que é a parte que o usuário enxerga para enviar e receber emails.), ou seja, ele NÃO é um MTA (“Mail Transfer Agent”, que é a parte que faz o roteamento e a transferência do mail entre hosts, ISPs, e assim por diante).

1. Instalar o Mutt
O mutt possui os pacotes mutt e mutt-patched o qual inclui alguns patches extras, como por exemplo a lista das caixas de e-mail de um dos lados da tela (direito ou esquerdo dependendo da configuração do .muttrc);

# apt-get install mutt mutt-patched

Após a instalação o mutt ainda não tem seu arquivo de configuração. Caso o mutt seja chamado pela linha de comando, este tentará ler e-mail’s da máquina local. Não há problema nisso, mas certamente não haverá e-mail a ser mostrado.

2. Os arquivos de configuração do Mutt
As configurações básicas do Mutt estão na pasta /etc/Muttrc.d/. Nesta pasta existem alguns arquivos com a extensão “.rc”. São arquivos de diretivas de configurações gerais que neste primeiro momento não necessitarão de alterações. Já na pasta /usr/share/doc/mutt existem arquivos de documentação e de exemplos. Em especial, veja os arquivos manual.txt.gz (manual completo) e o arquivo README.Debian (aqui algumas dicas de como configurar o .muttrc). Se o usuário dispor de um navegador, o manual também está disponível na forma de hipertexto em file:///usr/share/doc/mutt/html/index.html. Na subpasta /exemplos, tem, entre outros, o arquivo Muttrc.gz que deve ser olhado.

3. Configurar as diretivas gerais do Mutt
O arquivo principal de configuração do mutt é o .muttrc. Este arquivo fica na pasta raiz do usuário. O Mutt é muito configurável e muito funcional. Pode-se configurar o básico do Mutt e explorar opções mais avançadas em um outro momento.

Para ter o .muttrc funcional rapidamente, sugere-se que utilize as configurações padrões que ficam em /etc/Muttrc.d/ e se personalize para ter acesso ao servidor de email MTA do usuário. Faça isso através de um laço for da seguinte forma:

$ for i in /etc/Muttrc.d/*.rc; do cat $i >> ~/.muttrc;done

Deve ser verificado se foi gerado o arquivo .muttrc na pasta raiz do usuário, contendo as diretivas de configurações mais comuns. O próximo passo é ajustar as diretivas em .muttrc para o Mutt poder ler a caixa de e-mail do usuário, por exemplo imap do gmail.

4. Configurar as diretivas de configuração do Mutt para acesso ao Gmail

Adicione as seguintes linhas ao arquivo ~/.muttrc:

set realname="José Osório dos Reis" # Nome real para aparecer no email
set imap_user = 'usuario_gmail@gmail.com'
set imap_pass=""
set folder = "imaps://imap.gmail.com:993/"
set spoolfile = +INBOX
set imap_check_subscribed
set smtp_url = "smtp://usuario_gmail@smtp.gmail.com:587/"
set smtp_pass= ""
set sort = threads
set sort_aux = reverse-date

Note que o Mutt irá solicitar senhas para imap e smtp. As senhas também podem ser colocadas diretamente nos campos em aspas. Mas cuidado, pois fragiliza a SEGURANÇA.

As linhas seguintes completam as funcionalidades básicas do Mutt com gmail, ajustando as questões de pastas laterais, mover para lixeira, gravar e-mail enviados em sentmail, entre outras coisas:

set trash=+[Gmail]/Trash
set record="+[Gmail]/Sent Mail"
set postponed="+[Gmail]/Drafts"
set header_cache="~/.mutt/cache/headers"
set message_cachedir="~/.mutt/cache/bodies"
set certificate_file=~/.mutt/certificates
set sidebar_width=25
set sidebar_visible=yes #no
set sidebar_delim='|'
color sidebar_new yellow default
bind index \CP sidebar-prev
bind index \CN sidebar-next
bind index \CO sidebar-open

Observe que para nagegar no menu da esquerda (para selecionar a pasta de mensagens do Gmail) no Mutt, deve-se usar e . Para abrir as mensagens da pasta selecionada, deve-se usar .

5. Configurar diretivas de cores do Mutt

# colors
color normal     white black
color attachment brightyellow black
color hdrdefault cyan black
color indicator  black cyan
color markers    brightred black
color quoted     green black
color signature  cyan black
color status     brightgreen blue
color tilde      blue black
color tree       red black
color sidebar_new yellow default
color index     yellow         default  ~N      # New
color index     yellow         default  ~O      # Old
color header    yellow         default  "^from"
color header    brightgreen    default  "^from:"
color header    green      default  "^to:"
color header    green      default  "^cc:"
color header    green      default  "^date:"
color header    yellow     default  "^newsgroups:"
color header    yellow     default  "^reply-to:"
color header    brightcyan default  "^subject:"
color header    red        default  "^x-spam-rule:"
color header    yellow     default  "^x-mailer:"
color header    yellow     default  "^message-id:"
color header    yellow     default  "^Organization:"
color header    yellow     default  "^Organisation:"
color header    yellow     default  "^User-Agent:"
color header    yellow     default  "^message-id: .*pine"
color header    yellow     default  "^X-Fnord:"
color header    yellow     default  "^X-WebTV-Stationery:"
color header    yellow     default  "^X-Message-Flag:"
color header    yellow     default  "^X-Spam-Status:"
color header    yellow     default  "^X-SpamProbe:"
color header    red        default  "^X-SpamProbe: SPAM"
color body      yellow     default  "[;:]-[)/(|]"  # colorise smileys

 

6. Configurar outras diretivas do Mutt

set date_format="!%a %b %d, %Y at %I:%M:%S%p %Z"
# ordering of headers in the pager
unhdr_order *
hdr_order Date: From: To: Cc: X-Newsreader: X-Mailer: Organization: Organisation: User-Agent: X-Fnord: X-WebTV-Stationery: X-Message-Flag: Newsgroups: Reply-To: Subject:

7. Hot keys e flags
Mais comuns message index keys
Key      Description
c        change to a different mailbox
Esc c    change to a folder in read-only mode
C        copy the current message to another mailbox
Esc C    decode a message and copy it to a folder
Esc s    decode a message and save it to a folder
D        delete messages matching a pattern
d        delete the current message
F        mark as important
l        show messages matching a pattern
N        mark message as new
o        change the current sort method
O        reverse sort the mailbox
q        save changes and exit
s        save-message
T        tag messages matching a pattern
t        toggle the tag on a message
Esc t    toggle tag on entire message thread
U        undelete messages matching a pattern
u        undelete-message
v        view-attachments
x        abort changes and exit
<Return>    display-message
<Tab>    jump to the next new or unread message
@        show the author's full e-mail address
$        save changes to mailbox
/        search
Esc /    search-reverse
^L       clear and redraw the screen
^T       untag messages matching a pattern

Flat do status da mensagem:
Flag Description
D        message is deleted (is marked for deletion)
d        message has attachments marked for deletion
K        contains a PGP public key
N        message is new
O        message is old
P        message is PGP encrypted
r        message has been replied to
S        message is signed, and the signature is successfully verified
s        message is signed
!        message is flagged
*        message is tagged
n        thread contains new messages (only if collapsed)
o        thread contains old messages (only if collapsed)

8. Alguns comandos úteis via linha de comando
O comando utilizado será o mutt. Segue abaixo o exemplo:

$ cat /caminho/arquivo.txt | mutt -s "Assunto" -a /caminho/arquivoanexo fulano@dominio

Explicando:
arquivo.txt = mensagem que será inserida no corpo do e-mail
arquivoanexo = arquivo que será enviado como anexo, se necessário

Referências:
1- Arquivo de configuração do Mutt
2- Gmail: configurar clientes de email