Dicas para Linux
acessos
Aqui voçê encontra dicas atualizadas do sistema operacional Linux e como utiliza - las em seu dia-a-dia
1. visualizando arquivos em modo texto;
2. executando aplicações em segundo plano;
3. trabalhando com atalhos;
4. calendário em modo texto;
5. protegendo seu Linux do comando ?rm?;
6. alterando o prompt do modo texto;
7. copiando arquivos do Windows para Linux;
8. fazendo backup de arquivos com o TAR;
9. obtendo e alterando informações de usuários do sistema;
10. instalando o gerenciador de janelas Blanes 2000.
1 - visualizando arquivos em modo texto:
Os comandos para visualizar conteúdo de arquivos em modo texto no Linux são comuns e muita gente conhece, porém, existem alguns que podem se tornar mais ?amigos? do usuário no dia-a-dia. Veja quando usar o cat, more, tac, head, tail:
cat: O comando ?cat? possibilita a leitura de qualquer arquivo contendo texto, entre outras utilidades a mais (como concatenar arquivos. Para maiores informações, digite ?$ man cat?). Deve-se utilizar da seguinte maneira:
$ cat arquivo.que.voce.quer.ler
Caso o arquivo seja maior que a quantidade máxima de caracteres que você puder observar na tela, você pode utilizá-lo em conjunto com o ?more?, veja:
$ cat arquivo.de.conteudo.grande | more
Pode-se utilizar diretamente o ?more? para esta ação, sem a necessidade de usá-lo em conjunto com o cat, veja:
$ more arquivo.de.conteudo.grande.tambem
Nos dois casos, é só ir apertando a tecla ?Enter? até o final do documento para visualizá-lo todo ou pressionar a tecla ?q? para sair (quit).
tac: Tudo que você leu para o ?cat?é válido para o ?tac?, com a diferença de que, com o tac (e o próprio nome sugere - inverso de cat), você visualiza os textos ao contrário, ou seja, se você tem um arquivo com o seguinte conteúdo:
1
2
3
Você visualizará, ao utilizar o tac, assim:
$ tac teste.numeros.inverso
3
2
1
head: Mostra as 10 primeiras linhas do arquivo, caso você só necessite do cabeçalho. Deve ser usado da seguinte forma:
$ head arquivo.que.será.visualizado.as.10.primeiras.linhas
Existem parâmetros interessantes, vou citar o ?-n?. Ele permite especificar a quantidade de linhas você quer ver de um arquivo. Utilize assim:
$ head -n NÚMERO arquivo.a.ver.NÚMERO.de.linhas
tail: Utilizado da mesma forma que o `head?, porém serve para visualizar as últimas 10 linhas do arquivo. Pode-se utilizar também o parâmetro ?-n? definindo o número de linhas a visualizar.
$ tail -n 2 default.phpl
Para maiores detalhes dos comandos listados acima, utilize:
$ man comando
e/ou:
$ comando ?help
2 - executando aplicações em segundo plano:
Quando estamos num terminal, queremos utilizar algum comando/aplicação e necessitamos ainda do terminal livre, podemos executar o que queremos em segundo plano. É muito simples, veja:
$ comando &
Simplesmente adicione o caracter & ao final do comando/aplicativo que você quer executar. Acho interessante quando estamos no X e queremos abrir uma aplicação diretamente do terminal. Veja:
$ kcalc &
$
Executou o kcalc (calculadora) e o shell continuou livre.
Veja outro exemplo em que rodei uma aplicação e o shell ficou ocupado, então, mesmo depois disso, há como fazê-lo ficar em background (segundo plano), veja:
$ su -c xcdroast
passwd:
Depois de ter fornecido a senha, ele ficou ali, estático, e o xcdroast permaneceu aberto. Como eu queria ter o shell livre, utilizei (no bash):
Ctrl + z
[1]+ Stopped su -c xcdroast
Então, ele volta ao shell, e aqui eu forneço o comando:
$ bg
[1]+ su -c xcdroast &
O programa continua executado e o shell livre.
Caso eu queria voltar o programa para foreground, é só utilizar o comando:
$ fg
su -c xcdroast
E o shell fica novamente ocupado.
Podemos fazer também o X iniciar em segundo plano (caso você utilize inicialização em modo texto e use o comando `startx? para entrar em modo gráfico), veja:
$ startx 2>&1 > /dev/null &
Você pode adicionar também essas informações ao arquivo /etc/profile, como um alias:
alias startx=?startx 2>&1 > /dev/null &?
3 - trabalhando com atalhos:
Suponha que você está acostumado no dia-a-dia com o shell do Linux (bash) e faz às vezes comandos enormes. No outro dia, você quer repetir o comando e não se lembra mais de todos os parâmetros? ?Ihhh, vou ter que procurar??. Nada disso. É só utilizar o modo de pesquisa do .bash_history, executando, no shell, a combinação de teclas ?Ctrl + r?. Para exemplo, vamos usar um comando do programa mpg123:
$ mpg123 -z -g 100 -o arts -v -@ Lista_Mp3.txt
Que servia para: utilizar shuffle, utilizar o som na altura máxima utilizando o dispositivo de saída através do arts, adicionando verbose e por fim utilizando uma lista de músicas. Ufa? Às vezes não conseguimos guardar isso tudo rapidamente, não é mesmo? Simplesmente abra um shell, e utilize: ?Ctrl + r?. Você visualizará:
(reverse-i-search)`?:
Nesse ponto, digite o início do comando (mpg123)? Antes que você perceba o comando já apareceu na tela, do jeito que foi digitado pela ÚLTIMA vez. Se quiser executar, pressione ENTER, se não quiser, pressione BASKSPACE. Ainda no bash, é possível repetir comandos utilizando o caracter ?!? (ponto de exclamação). Baseados no mesmo exemplo do mpg123 anterior, no shell utilize:
$ !mpg123
Isso executará o último comando que você fez utilizando o mpg123.
4 - calendário em modo texto:
No Linux está disponível um calendário em modo texto, em que é possível visualizar do ano 1 a 9999. O uso é muito simples, veja:
$ cal
Será exibido o calendário do mês atual.
Veja os parâmetros:
- -1 => Mostra a saída de um mês simples;
- -3 => Mostra mês anterior/atual/posterior;
- -m => Exibe a segunda-feira como o primeiro dia da semana;
- -j => Exibe o dia atual do ano (contado de 1 a 365);
- -y => Mostra o calendário do ano atual.
$ cal -m
Exibe o calendário do mês atual com a segunda-feira no primeiro dia da semana.
$ cal -3
Exibe o calendário do mês passado, atual e do próximo mês.
$ cal 2003
ou
$ cal -y
Exibe o calendário completo do ano de 2003.
$ cal 10 2000
Exibe o calendário do mês de outubro do ano de 2002.
$ cal -j 12 2002
Exibe o calendário do mês de dezembro, porém do dia 335 até o 365.
Para outros detalhes, utilize:
$ man cal
5 - protegendo seu Linux do comando ?rm?:
Às vezes podemos cometer erros que podem ser irreversíveis. O comando ?rm?, usado para remover diretórios e/ou arquivos pode nos irritar. Suponha que você tem um diretório muito importante, e quer protegê-lo. Tudo que for excluído deve ser confirmado, para você ter absoluta certeza do que está fazendo. É simples. Crie um arquivo chamado ?-i?. Para fazer isso, no bash, digite:
$ > -i
Este arquivo será o primeiro no diretório, devido o seu nome. Suponha que você digite:
$ rm *
O comando ?rm *? será interpretado como ?rm -i *?, ou seja, pedindo confirmação de exclusão. Agora, suponha que você tem muitos diretórios importantes, e não quer se arriscar a perder nada! Ou seja, ao invés de criar vários arquivos `-i?, você pode adicionar o seguinte alias ao arquivo ~/.bashrc, veja:
alias rm=?rm -i?
Veja o conteúdo do arquivo /home/copag/.bashrc (mesma coisa que ~/.bashrc):
[copag@linuxbq testes]$ cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias cd..=?cd ..?
alias cds=?cd /etc/rc.d/init.d && ls && cd -?
alias rm=?rm -i?
[...]
Faça logout e teste: todas as vezes que você digitar ?rm?, será assumido que você utilizou ?rm -i?.
Maiores informações:
# rm ?help
e/ou:
# man rm
e/ou:
# info rm
6 - alterando o prompt do modo texto:
É possível alterar as informações disponíveis no prompt, ao invés de usar [user@host dir]$. Para isso, existem vários parâmetros que podem ser passados para o sistema na variável PS1. Os arquivos que devemos alterar são:
/etc/profile => Configurações globais
~/.profile
~/.bash_profile => Os dois para configurações locais
Veja qual é o default da maioria dos sistemas utilizando bash:
PS1=?[u@h W]$?
Agora, entendendo o que quer dizer cada ?letrinha? dessas apresentadas anteriormente:
u => Exibe o usuário no momento;
h => Exibe o host da máquina;
W => Exibe o último diretório que você está no momento (se estiver no /home/copag, será apresentado apenas copag);
$ => Se você for usuário comum, será apresentado o símbolo $, em caso do superusuário (root), será #.
Bom, existem muitos outros, não é simples guardar, mesmo porquê não utilizamos isso com freqüência. Porém, veja-os a seguir:
d => Exibe a data no formato ?Dia-Semana Mês Dia-Mês?;
t => Exibe a hora no formato ?HH:MM:SS?;
n => ?Pula? para a linha de baixo;
w => Exibe o diretório atual no formato completo;
s => Exibe o nome do shell (no caso do bash);
# => Exibe um contador de comandos, ou seja, incrementa a cada comando feito;
! => Exibe o número do comando no `history?, incluindo o ~/.bash_history;
\ => Exibe uma barra ( ).
Agora, veja como utilizar ANSI, com cores e deixar o prompt mais bonito? Para inserir as cores utilizando ANSI, utilize:
33[FFm?33[LLm Comandos-Apresentados-Acima ?33[0m
Explicando:
33[ => Iniciando string com caracteres ANSI;
FFm => FF = Cor de fundo, deve-se utilizar o "m" no final;
33[ => Iniciando novamente caracteres ANSI;
LLm => LL = Cor da letra, utilizando-se também o "m" no final;
33[ => Mais uma string de carateres ANSI;
0m => O número 0 desliga as cores anteriores (bom para evitar conflitos!).
Obs.: "Comandos-Apresentados-Acima" são comandos para alteração de prompt.
Veja o tão esperado exemplo:
PS1="?33[41m?33[32mu@h:w$ ?33[0m"
Explicando:
PS1 => Variável responsável pela alteração do prompt;
33[ => Iniciando string ANSI;
41m => Cor de fundo: 41 corresponde a fundo vermelho;
33[ => Iniciando nova string ANSI;
32m => Cor de letra: 32 corresponde a verde;
u => Usuário corrente;
@ => Exibe (adiciona) o caracter "@" na linha de prompt;
h => Mostra o host local;
: => Exibe (adiciona) o caracter ":" na linha de prompt;
w => Exibe o caminho completo do diretório atual;
$ => Exibe $ (usuário comum) ou # (superusuário - root);
33[ => Iniciando última string ANSI;
0m => Anula as cores ao digitar um comando (como já dito, recomendável!).
Bom, não é tão complicado quanto parece, reserve alguns minutos para entender o que você está fazendo.
O exemplo acima, adicionado ao meu ~/.bash_profile exibirá, em minha máquina:
Isso no diretório /home/copag.
Se eu estiver no diretório /home/copag/LinuxBQ, seria apresentado:
É claro que seria apresentado com fundo vermelho e letras verdes. Use a sua imaginação para criar o seu, você pode!
Veja agora a lista completa de cores:
CC => Define a cor de fundo:
40 => Preto
41 => Vermelho
42 => Verde
43 => Amarelo
44 => Azul
45 => Rosa
46 => Azul claro
47 => Branco
FF => Define a cor da letra:
30 => Preta
31 => Vermelha
32 => Verde
33 => Amarela
34 => Azul
35 => Rosa
36 => Azul claro
37 => Branca
X => Opções especiais:
0 => Desliga a cor anterior
1 => Negrito
2 => Escuro
4 => Sublinhado (para monitores mono)
5 => Piscando (Blink)
7 => Reverso
Outros exemplos:
PS1="[u@t s:w]$ ?
Exibiria:
[copag@07:32:50 bash:~]$
PS1=?s@d W$ ?
Exibiria:
bash@Sat Jun 15 copag$
PS1=?33[47m?33[5m?33[34mu@s #:w$ ?33[0m"
Exibiria:
copag@bash 1:~$
Isto seria exibido em fundo branco, letras azuis e piscando (blink). 1 é a quantidade de comandos (varia de máquina para máquina, é lógico!).
7 - copiando arquivos do Windows para Linux:
Entenda que, para visualizar uma partição Windows, do Linux, você deve ter um diretório onde a partição será montada.
Para entender melhor, imagine que todo o conteúdo do Windows (o que fica no C:), ficará disponível em um diretório no Linux. Esse diretório é comumente chamado de Ponto de Montagem. A partição é chamada de dispositivo. Utilize o super usuário (root) para fazer todo o procedimento. Veja a seguir.
Você pode acessar a sua partição Windows, da seguinte forma:
1) Crie um diretório win, dentro de /mnt:
# mkdir /mnt/win
2) Agora você deve montar a partição FAT32 do Windows nesse diretório /mnt/win. Isso é feito da seguinte forma:
# mount -t vfat /dev/IdxX /mnt/win
Repare que no comando acima, eu coloquei /dev/IdxX. Cada um desses dois "x" (x e X) tem um significado. A letra I também tem um sigfnicado. Quando IDE, o I tem equivalência de "h"; quando SCSI, de "s".
Para discos rígidos IDE:
Dispositivo Master primário: /dev/hda
Dispositivo Slave primário: /dev/hdb
Dispositivo Master secundário: /dev/hdc
Dispositivo Slave secundário: /dev/hdd
Para discos rígidos SCSI:
Primeiro disco SCSI: /dev/sda
Segundo disco SCSI: /dev/sdb
Terceiro disco SCSI: /dev/sdc
Quarto disco SCSI: /dev/sdd
Você pode reparar que eu expliquei apenas o que é o primeiro "x". É essa letra correspondente ao dispositivo. Se você tem apenas um HD na máquina, e Windows e Linux instalados nele, é bem provável que ele seja /dev/hda ou /dev/sda. E a partição do Windows é a inicializável, ou seja, é a primeira partição do HD. Logo, ela será /dev/hda1.
Na maioria dos casos (grande maioria), o dispositivo é /dev/hda1. Certifique-se dos discos em sua máquina, e depois utilize o seguinte comando para montar a sua partição Windows, no Linux:
# mount -t vfat /dev/hda1 /mnt/win
Vale lembrar que o parâmetro "-t vfat" corresponde ao seguinte:
- -t é quando você precisa especificar o tipo de sistema de arquivos (type);
vfat corresponde ao sistema de arquivos do Windows (FAT).
Para maiores informações do comando mount, utilize "mount --help" e/ou "man mount".
Depois de montado o sistema de arquivos do Windows, é hora de acessá-lo:
# cd /mnt/win
A partir daqui, você já está "dentro" do Windows. Pode utilizar comandos de copiar (cp), mover e renomear (mv), editar, etc. Faça a mesma coisa para as outras partições que você deseja acessar. O "chato" disso tudo é que você vai precisar digitar sempre o comando do "mount" para ter acesso à partição. Isso pode ser contornado da seguinte forma:
Edite o arquivo /etc/fstab, adicionando a seguinte linha:
/dev/hda1 /mnt/win vfat defaults 0 0
Lembre-se de ter atenção ao colocar essa linha, verifique como no comando: dispositivo e ponto de montagem. Agora, a cada reinicialização, sua partição estará montada em /mnt/win. Você pode acessá-la normalmente como usuário comum depois de ter feito esses procedimentos.
Obs: dica não válida para partições NTFS (Windows NT, 2000, XP).
8 - fazendo backup de arquivos com o TAR:
Quando precisamos fazer backups (cópias de segurança), salvar um grande número de arquivos (até mesmo um pequeno número, porquê não?), podemos utilizar o TAR (Tape ARchive). Eu tenho um diretório de arquivos texto (.txt), e tem também dois subdiretórios com arquivos textos mas que estão separados por se tratarem de assuntos diferentes. É só um exemplo. Quero fazer backup de tudo. Então, é só usar:
$ find . -name *.txt | tar cvzf backup.txt.tar.gz -T -
O "find" fará uma busca por arquivos com a extensão .txt, no diretório corrente;
O "tar" recebe a saída do comando através do pipe ( | ), através do parâmetro -T.
O caracter "-" funciona para leitura do comando find.
Um arquivo de nome "backup.txt.tar.gz" será criado e conterá todos os arquivos com a extensão .txt. Para descompactar o backup, quando necessitar, utilize:
$ tar zxvf backup.txt.tar.gz
Como você pode ver, é apenas um exemplo, você pode fazer o backup com os tipos de arquivo que você quiser.
Detalhes? Digite:
$ man tar
e/ou:
$ man find
9 - obtendo e alterando informações de usuários do sistema:
O arquivo /etc/passwd é usado para guardar as informações dos usuários no sistema. Nós podemos adicionar opções ao arquivo, para maiores informações do usuário. Primeiro, faça um teste, e veja o conteúdo do arquivo /etc/passwd da máquina:
$ cat /etc/passwd
Entre muitas linhas, uma delas é a seguinte:
copag:x:500:500::/home/copag:/bin/bash
copag => Usuário;
x => O que seria a senha, mas que, logicamente, não é informada;
500 => UID e GID;
/home/copag => Diretório do usuário;
/bin/bash => Shell do usuário.
O root pode alterar essas informações manualmente, editando o arquivo /etc/passwd.
Veja agora, um comando que permite adicionarmos maiores informações à conta, e que o usuário também tem acesso:
$ chfn copag
Changing finger information for copag.
Password: Informe a senha do seu login
Name []: Copag (Seu nome, ou o que desejar)
Office []: LinuxBQ - Linux ao alcance de todos! (Alguma identificação do que você faz)
Office Phone []: 5555-5555 (Telefone do trabalho)
Home Phone []: 4444-4444 (Telefone residencial)
Finger information changed.
O comando ?chfn? vem de ?Change Finger?. Você não pode alterar as informaões de finger de alguém sem estar usando o login da mesma, mesmo com a senha. Nesse caso, faça login com o usuário que você deseja alterar. O root pode alterar qualquer um, e você pode utilizar ?su login? para alternar para o login que quiser, caso possua a senha.
Agora, experimente olhar novamente o arquivo /etc/passwd:
$ cat /etc/passwd
Novamente, dentre muitas linhas, encontramos:
copag:x:500:500:Copag,LinuxBQ - Linux ao alcance de todos, 5555-5555, 4444-4444:/home/copag:/bin/bash
Repare que você pode visualizar informações de um determinado usuário, de uma forma mais cômoda, utilizando:
$ finger usuário
Veja:
$ finger copag
Login: copag Name: Copag
Directory: /home/copag Shell: /bin/bash
Office: LinuxBQ - Linux ao alcance de todos!
Office Phone: 5555-5555 Home Phone: 4444-4444
[...]
No mail.
No Plan.
Observação: [...] contém as linhas de informações de login e permanência no sistema.
Para maiores informações, use:
$ man finger
$ man 5 passwd
$ man chfn
10 - instalando o gerenciador de janelas Blanes 2000:
Para quem ainda não conhece, o Blanes 2000 (http://www.blanes.com.br) é um gerenciador de janelas com aparência semelhante ao Windows. Segundo os desenvolvedores, é uma boa opção para quem está migrando/testando agora o sistema operacional Linux, pois não encontrá maiores dificuldades. Saiba como instalar e adicionar a opção ao gerenciador de login gráfico. Primeiramente, faça o download do Blanes 2000 diretamente do site: http://labdid.if.usp.br/~blanes/download.php.
Eu fiz download de dois arquivos RPM (blwm-1.0.4-1.i386.rpm e blwm-1.0.4-1.src.rpm), já que utilizo Red Hat. Faça download dos arquivos referentes à sua distribuição. Instale os arquivos, utilizando, no diretório onde eles estão salvos (como root), o comando:
# rpm -ivh blwm*
Após ter instalado, adicione a entrada para o Blanes ao login de inicialização do X (gdm).
Para adicionar a opção ao menu de inicialização (no meu caso é GDM, verifique se você usa GDM - Gnome, ou KDM - do Kde), faça:
1) Como root, entre no diretório /etc/X11/gdm/Sessions:
# cd /etc/X11/gdm/Sessions
Crie um arquivo com o nome que você quer que seja apresentado no GDM, por exemplo:
# touch Blanes 2000
Será criado um arquivo de nome ?Blanes 2000?. Aquela informa ao shell que o próximo espaço também faz parte do nome do arquivo. Agora, altere as permissões:
# chmod 755 Blanes 2000
Edite agora o arquivo Blanes 2000 com o seu editor preferido:
# vim Blanes 2000
Adicione as seguintes linhas:
#!/bin/bash
exec /usr/local/bin/blwm
Como você pode ver, isso é pelo GDM. Se você utiliza KDM, veja como alterar:
Edite, como superusuário (root), o arquivo /etc/sysconfig/desktop em seu editor de textos preferido. Veja:
# cat /etc/sysconfig/desktop
DESKTOP=?GNOME?
Na opção DESKTOP, você pode alterar para ?KDE? ou ?GNOME?, usando assim o gerenciador gráfico de sua preferência.
O GDM é utilizado quando DESKTOP é definido como ?GNOME?.
Pronto, agora reinicie o X e escolha a opção Blanes 2000 para testar.
Quando você precisar adicionar outros gerenciadores de janela, já sabe como proceder