Sie sind auf Seite 1von 94

Comandos

Linux para Totós”.

Página 1 de 94
A ideia é começar por ensinar vários comandos básicos mas também dar a conhecer toda
a estrutura que faz parte de um sistema Linux. Como sempre contamos com a vossa
colaboração e partilha de experiências. Ora vamos lá então embarcar no mundo do
“terminal preto”!

De forma a acompanharem estes tutoriais é necessário que possuam um terminal


Unix/Linux para ir experimentando e aprendendo. Para os que já dominam a matéria,
lanço desde já o desafio de colaborarem nesta rubrica (podem enviar os vossos artigos
para mim).

Como já referimos em alguns artigos, a shell (terminal) do Linux permite introduzir


comandos. Através dos comandos podemos realizar quase todas as tarefas possíveis num
sistema como por exemplo copiar ficheiros, criar/apagar directórios, controlar serviços,
etc. Vamos conhecer então alguns comandos apresentado para que serve e seguido de
um exemplo.

whoami – (quem sou eu?) Permite saber qual o nosso utilizador

Página 2 de 94
pplware@pplware:~$ whoami
pplware

pwd – Permite saber qual a directoria corrente (“print current/working directory)

pplware@pplware:~$ pwd
/home/pplware

id – Permite saber a “identidade” de um utilizador

pplware@pplware:~$ id
uid=1000(pplware) gid=1000(pplware)
groups=1000(pplware),4(adm),20(dialout),24(cdrom),46(plugdev),112(lpadmin),120(admin),122(sambashar
e)

who – Permite saber quem está logado no sistema

pplware@pplware:~$ who
pplware tty7 2011-08-04 16:27 (:0)
pplware pts/0 2011-08-04 16:28 (:0.0)

date – Permite visualizar informações sobre a data e hora do sistema

pplware@pplware:~$ date
Thu Aug 4 16:40:46 WEST 2011

cal – Permite ver um calendário relativo ao mês actual

pplware@pplware:~$ cal
August 2011
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Página 3 de 94
Estes são alguns comandos básicos para quem se quiser iniciar no mundo do Linux, mais
concretamente na linha de comandos. Numa próxima rubrica vamos trazer mais alguns
exemplos e dicas de utilização. Esperamos que tenham gostado!

Como hoje é o primeiro tutorial desta rubrica, deixo uma pequena pérola que descobri
recentemente. Conhecem o site examplenow ??? Passem por lá e digam o que acharam.

Parte 2

Relembramos que para acompanharem estes tutoriais é necessário que possuam um


terminal Unix/Linux para ir experimentando e aprendendo os comandos apresentados.
Para os que já dominam a matéria, lanço desde já o desafio de colaborarem nesta rubrica
(podem enviar os vossos artigos para mim).

Como já referimos em alguns artigos, a shell (terminal) do Linux permite introduzir


comandos. Através dos comandos podemos realizar quase todas as tarefas possíveis num
sistema como por exemplo copiar ficheiros, criar/apagar directórios, controlar serviços,
etc.

whoami | pwd | id | who | date | cal … ainda se lembram? Se não, vejam aqui

Vamos então conhecer mais alguns comandos, apresentado para que serve e seguido de
um exemplo.

man – permite aceder ao “manual” de um determinado comando. Na informação do


comando é normalmente indicado o que o comando faz e que argumentos (opções)
podem ser usados. Para sair do manual de um determinado comando deve pressionar a
tecla ‘q’.

plware@pplware:~$ man who

hostname – permite saber o nome da nossa máquina

Página 4 de 94
pplware@pplware:~$ hostname
pplware

uptime – basicamente este comando permite saber há quanto tempo o sistema está
ligado. O uptime fornece também a informação sobre o número de utilizadores ligados
ao sistema e a carga média do sistema no passado (1min, 5 min e 15 min).

pplware@pplware:~$ uptime
23:45:38 up 8 min, 2 users, load average: 0.01, 0.52, 0.46

history – permite visualizar os últimos comandos que foram introduzidos no terminal.


Saber mais sobre o history aqui.

pplware@pplware:~$ history
1 cd /media/
2 ls
3 cd VBOXADDITIONS_4.0.4_70112/
4 ls

Para executar de imediato um comando pode fazer !<numero>. Considerando que quer
por exemplo executar o comando 2,pode fazer !2

uname – Permite saber algumas informações sobre o sistema como por exemplo a versão
kernel, arquitectura do processador e do sistema, etc. Para ver todas as informação num
só comando pode usar uname –a

pplware@pplware:~$ uname -a
Linux pplware 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386
GNU/Linux

lsb_release – Permite saber informações sobre a distribuição em uso. Para saber todas
as informações deve usar o comando lsb_release –a

pplware@pplware:~$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu Natty
Release: 11.04

Página 5 de 94
Codename: natty

df – Permite saber o espaço ocupado por cada disco/partição no sistema de ficheiros.


Para visualizar a informação no modo “humano” (em MB) deve usar o comando df –h

pplware@pplware:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 6.9G 2.5G 4.1G 38% /
none 242M 644K 241M 1% /dev
none 249M 300K 248M 1% /dev/shm
none 249M 96K 248M 1% /var/run
none 249M 0 249M 0% /var/lock
/dev/sr0 43M 43M 0 100% /media/VBOXADDITIONS_4.1.0_73009

Estes são mais alguns comandos básicos para quem se quiser iniciar no mundo do Linux,
mais concretamente na linha de comandos. Numa próxima rubrica vamos trazer mais
alguns exemplos e dicas de utilização. Esperamos que tenham gostado do tutorial nº2.

Como dica de hoje deixamos o link para um terminal Linux online. Para quem ainda não
teve oportunidade de experimentar o seu próprio sistema, pode aceder ao cb.vu para
testar os comandos.

Bom fim de semana! shutdown –r now

Parte 3

Criar ficheiros/directórios/subdirectórios Ora cá estamos nós para mais uma rubrica


“Comandos Linux para Totós”! Depois de termos apresentado alguns comandos
básicos no tutorial nº1 (ver aqui) e tutorial nº2 (ver aqui), hoje vamos aprender como criar
uma estrutura de directórios/subdirectórios e também criar alguns ficheiros. No final do
artigo estão também algumas dicas fantásticas que os nossos leitores vão deixando nos
comentários.

Prontos para mais uma viagem no “terminal preto”? Ora vamos lá!

Página 6 de 94
Relembramos que para acompanharem estes tutoriais é necessário que possuam um
terminal Unix/Linux para ir experimentando e aprendendo os comandos apresentados.
Para os que já dominam a matéria, lanço desde já o desafio de colaborarem nesta rubrica
(podem enviar os vossos artigos para mim).

Como já referimos em alguns artigos, a shell (terminal) do Linux permite introduzir


comandos. Através dos comandos podemos realizar quase todas as tarefas possíveis num
sistema como por exemplo copiar ficheiros, criar/apagar directórios, controlar serviços,
etc.

whoami | pwd | id | who | date | cal | man | hostname | uptime | history | uname |
lsb_release | df … ainda se lembram? Se não, vejam aqui e aqui

Para o tutorial de hoje criei um pequeno exemplo de uma estrutura de


directórios/subdirectórios e ficheiros que vamos agora implementar no nosso terminal
Linux.

Página 7 de 94
Para produzir no terminal a estrutura anterior necessitamos de saber três comandos
essenciais: (nota: existem outras formas de produzir a mesma estrutura, no entanto vamos
ensinar a maneira mais básica).

mkdir: (make directory) – permite criar directórios

touch: permite criar ficheiros vazios ou mudar timestamps dos mesmos.

cd: (change directory) permite mudar de directório

[pplware@pplware ~]# mkdir pplware


[pplware@pplware ~]# cd pplware
[pplware@pplware pplware]# mkdir site
[pplware@pplware pplware]# cd site/
[pplware@pplware site]# mkdir ppinto
[pplware@pplware site]# cd ppinto/
[pplware@pplware ppinto]# touch dados info xpto
[pplware@pplware ppinto]# cd ..
[pplware@pplware site]# cd ..
[pplware@pplware pplware]# mkdir forum
[pplware@pplware pplware]# cd forum
[pplware@pplware forum]# touch aabb

Página 8 de 94
E está feito. Podemos agora usar o comando tree para visualizar a estrutura criada:

[pplware@pplware ~]# tree pplware/


pplware/
|-- forum
| `-- aabb
`-- site
`-- ppinto
|-- dados
|-- info
`-- xpto

3 directories, 4 files

Que acharam, é simples? Bem, o desafio que lançamos agora é o seguinte:

Desafio

Tentar produzir a mesma estrutura, com o menor número de comandos possíveis.

(algumas dicas: usar o argumento –p no mkdir e usar por exemplo cd ../.. ). Ficamos a
espera !

Dicas dos nosso leitores

@Paulo Cesar

Reinício do sistema (3 maneiras que conheço):

1. reboot
2. init 6
3. shutdown -r now
Desligar sistema (4 maneiras que conheço):
1. halt
2. poweroff
3. init 0
4. shutdown -h now

@gnu/linux ftw

Página 9 de 94
Argumentos do uname

goose@core64:~$ uname -r
3.0.0-7-generic
goose@core64:~$ uname -v
#9-Ubuntu SMP Fri Jul 29 21:27:24 UTC 2011
goose@core64:~$ uname -i
x86_64
goose@core64:~$ uname -o
GNU/Linux

@James Bond

Se quiserem saber o estado da arte no que ao kernel diz respeito directamente do


laboratório onde é produzido, experimentem o comando abaixo:

james@darkstar:-$ finger @ftp.kernel.org


The latest linux-next version of the Linux kernel
is: next-20110805
The latest linux-next version of the Linux kernel is: next-20110805
The latest snapshot 3 version of the Linux kernel is: 3.0-git22
The latest mainline 3 version of the Linux kernel is: 3.0
The latest stable 3.0 version of the Linux kernel is: 3.0.1
The latest stable 2.6.39 version of the Linux kernel is: 2.6.39.4
The latest stable 2.6.38 version of the Linux kernel is: 2.6.38.8
The latest stable 2.6.37 version of the Linux kernel is: 2.6.37.6
The latest stable 2.6.36 version of the Linux kernel is: 2.6.36.4
The latest longterm 2.6.35 version of the Linux kernel is: 2.6.35.14
The latest longterm 2.6.34 version of the Linux kernel is: 2.6.34.10
The latest longterm 2.6.33 version of the Linux kernel is: 2.6.33.16
The latest longterm 2.6.32 version of the Linux kernel is: 2.6.32.43
The latest longterm 2.6.27 version of the Linux kernel is: 2.6.27.59

Boa segunda-feira! halt

Página 10 de 94
Parte 4

Ora vivam! Como estamos a nível de comandos Linux? Já sabem criar uma estrutura com
directórios e subdirectórios? Se já não se lembram, podem dar uma vista de olhos aqui.
Mais uma vez agradecemos o feedback de todos os utilizadores que têm deixado algumas
dicas nos comentários, Facebook e Google+.

De forma a acompanharem estes tutoriais é necessário que possuam um terminal


Unix/Linux para ir experimentando e aprendendo. Para os que já dominam a matéria,
lanço desde já o desafio de colaborarem nesta rubrica (podem enviar os vossos artigos
para mim).

Como já referimos em alguns artigos, a shell (terminal) do Linux permite introduzir


comandos. Através dos comandos podemos realizar quase todas as tarefas possíveis num
sistema como por exemplo copiar ficheiros, criar/apagar directórios, controlar serviços,
etc.

Página 11 de 94
whoami | pwd | id | who | date | cal | man | hostname | uptime | history | uname |
lsb_release | df … ainda se lembram? Se não, vejam aqui e aqui.

Depois de termos aprendido a criar directórios, subdirectórios e ficheiros (relativamente


aos ficheiros vamos em próximos tutoriais abordar um editor de texto), hoje vamos
explicar o output de um ls -l (ls – comando para listar directórios e ficheiro e a opção “l”
é para podermos visualizar mais detalhes, incluindo as permissões dos ficheiros).

As permissões em ficheiros e directórios estão divididos basicamente em 3 níveis:

• u – user (dono do ficheiro ou directório)


• g – group (grupo(s) a que pertence)

• o – other (todos os outros)

onde:

Página 12 de 94
Considere o seguinte exemplo.

Como podemos ver, o


ficheiro ppware.txt tem permissões de:

• leitura e escrita para o utilizador


• leitura para o grupo
• leitura para os outros

Está percebido a parte das permissões. Há alguma dúvida? Se sim, deixem em


comentário que eu dou uma ajuda.

Desafio

Quais as permissões do ficheiro ppinto.dat? e psimoes.doc? o que pode afirmar


relativamente ao teste (ver na imagem anterior)?

Parte 5

Prontos para mais uma rubrica “Comandos Linux para Totós“? Bem, depois de termos
explicado o output de um “ls –l” e de termos explicado o sistema de permissões no

Página 13 de 94
Linux é hora de avançarmos para a prática e aprender como definir permissões para um
ficheiro.

Vamos a mais uma viagem no “terminal preto”? Lets go…777!

Ainda relembrando o último artigo desta rubrica (ver aqui) e para aqueles quem atribuíam
a permissão 777 sem saber porquê, acho que agora já dá para perceber quais as
implicações 🙂

Bem, vamos então ao que interessa. Tal como referiram alguns dos nossos leitores nos
comentários do ultimo artigo desta rubrica, para definir as permissões de um ficheiro
utiliza-se o comando chmod. As permissões podem ser definidas num dos seguintes
modos: “amigável” ou “máscara binária (ou modo octal)”

Modo: “amigável” (com letras)

Para a definição de permissões através do modo “amigável” é necessário recorrer a


letras e mais alguns símbolos. Para isso, produzi uma tabela auxiliar com tudo o que
precisam de saber. Por exemplo, a letra ‘u’ indica que é dono, ‘g’ refere-se ao

Página 14 de 94
grupo, etc. Depois temos as permissões de leitura, escrita e execução que são definidas
através das letras r,w e x respectivamente. Depois há os operadores que nos permitem
definir uma permissão (‘+’) ou remover uma permissão (‘-).

Alguns exemplos

Criem o ficheiro pplware através do comando touch, e depois experimentam mudar-lhe


as permissões. Para ver as permissões do ficheiro podem usar o comando ls –l pplware

• chmod u+rw pplware – dá permissões ‘r/w’(leitura e escrita) ao dono do


ficheiro
• chmod o‐rwx pplware – retira todas as permissões aos “outros”
• chmod a+rw pplware – dá permissões ‘r/w’ a todos (ugo)
• chmod go‐r pplware – retira a permissão ‘r’(leitura) ao grupo e outros

Modo: Máscara binária ou modo octal

A máscara binária é composta por três algarismos arábicos sob a base 8 ou seja de 0 a
7 (daí o nome de modo octal) onde:

• O primeiro dígito representa o dono do ficheiro (u)


• O segundo dígito representa o grupo (g)
• O terceiro dígito representa os outros (o)

As permissões são especificadas para cada grupo, somando as permissões necessárias:

Página 15 de 94
• 4 = Leitura (r)
• 2 = Escrita (w)
• 1 = Execução (x)

Relativamente à máscara binária, criei duas tabelas auxiliares:

Vamos considerar então que pretendemos dar ao ficheiro pplware a permissão de


leitura(4), escrita (2) e execução (1) para o dono do ficheiro, leitura (4) ao grupo e leitura
(4) aos outros. Ora somando os “pesos” para o dono temos 4+2+1=7, relativamente
ao grupo temos apenas 4 e o mesmo acontece para os outros. Então, a permissão a
atribuir seria 744. Percebido? Numa primeira fase parece confuso, mas depois torna-se
um sistema bastante simples. Vamos a mais alguns exemplos:

• chmod 600 pplware > permissões ‘rw‐‐‐‐‐‐‐’


• chmod 755 pplware > permissões ‘rwxr‐xr‐x’
• chmod 777 pplware > permissões ‘rwxrwxrwx’

Resumindo, modo amigável usamos letras e na máscara binária usamos um conjunto de


três dígitos. Como dica final deixo-vos o comando stat. Experimentem usar da seguinte
forma: stat pplware e depois analisam a informação presente no campo Access.

Estão abertos os comentários do artigo a nível de leitura e escrita > chmod 666 🙂

Página 16 de 94
Parte 6

Compactação e descompactação de ficheiros usando o tar

Com meia dúzia de artigos da rubrica “Comandos Linux para Totós“, brevemente
vamos ter de fazer uma mini avaliação para recordar todos os comandos que já foram
apresentados nesta rubrica.

Hoje vamos aprender a comprimir e descomprimir ficheiros no linux usando o tar.

Compactar e descompactar ficheiros é uma tarefa muito regular no linux. Uma das
ferramentas mais utilizadas no linux para compactar e descompactar ficheiros é o tar. Já
sabem, que por norma um comando tem vários argumentos e toda a documentação de
um determinado comando pode ser consultada usando o comando man <comando>.

Alguns argumentos importantes do comando tar:

Página 17 de 94
• c – criar um novo ficheiro
• p – preserva as permissões (saber mais sobre as permissões aqui)
• z – comprimir o ficheiro usando o gzip
• f – indica qual o ficheiro
• v – modo “verbose”, mostra no ecrã tudo o que está a acontecer
• x – extrair
• j – bzip2
• z – gzip

Para aprender facilmente como usar o comando tar vamos a alguns exemplos.

Como compactar?

Arquiva todo o directório /root/pplware em pplware.tar

tar -cf pplware.tar /root/pplware

Arquiva o o ficheiro pplware1 e pplware2 em pplware.tar (modo verbose, opção v)

tar -cvf pplware.tar pplware1 pplware2

Criar ficheiro pplware.tgz (zip)

tar czfP pplware.tgz /root/pplware

Criar ficheiro pplware.tgz (bzip2)

tar -cjf home.tbz /root/pplware

Como descompactar?

Extrair ficheiro pplware.tar

tar -xf home.tar

Página 18 de 94
Extrair ficheiro pplware.tgz (zip)

tar -xzf pplware.tgz

Extrair ficheiro pplware.tgz (bzip2)

tar -xjf pplware.tgz

Extrair o ficheiro pplware.txt do ficheiro pplware.tar.gztar -xzf pplware.tar.gz pplware.txt

Espero que tenham percebido como compactar e descompactar ficheiros. No início


parece complicado, mas se percebermos os argumentos a usar tudo é muito mais simples.
Caso tenham alguma dúvida ou dica deixem em comentários para que toda a
comunidade pplware possa ajudar.

Parte 7

Processo em Linux Ora vivam !!! Cá estamos nós para mais uma rubrica “Comandos
Linux para Totós” e hoje vamos falar sobre processos em Linux. Quando uma aplicação
está a correr no sistema é comum designar-se de processo. Os processos estão presentes
em quase todos os sistemas operativos e para quem é utilizador do Windows certamente
já recorreu ao conjunto de teclas CTRL+ALT+DEL para “matar” um processo que esteja
a correr.

Hoje vamos aprender como visualizar e “matar” processos no Linux.

Página 19 de 94
Para visualizar todos os processos que estão em execução no sistema usamos o comando
«ps» (process-statistics).

O comando ps tem vários argumentos, no entanto o conjunto mais usual é ps aux:

ppinto@koala:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.6 0.3 2532 1372 1 Ss 13:56 0:01 /sbin/init
root 2 0.0 0.0 0 01 S< 13:56 0:00 [kthreadd]
root 3 0.0 0.0 0 01 S< 13:56 0:00 [migration/0]

Explicação do output anterior

• USER – nome do utilizador que possui (iniciou?) o processo.


• PID – process identification (identificação do processo).
• %CPU – ocupação do CPU (desde a última actualização do ecrã).
• %MEM – ocupação da memória física (memória RAM).
• VSZ – quantidade de memória virtual usada pelo processo
• RSS – kilobytes de memória física usados.

Página 20 de 94
• TTY – Indicação do terminal onde está a correr o processo
• STAT – S-sleeping, R-running, T-(parado ou em trace), D-uniterruptable sleep,
Z=zombie.
• TIME – tempo total de CPU usado pelo processador (desde quando foi iniciado)
• COMMAND – comando usado para iniciar o processo

Outras utilizações do comando ps

ps -e
ps -ef
ps -eF
ps -ely

Matar e enviar sinais a processos

O comando «kill» pode enviar vários tipos de sinais a um processo. Por omissão, caso não
seja especificado nenhum outro, o sinal enviado é o TERM (terminate).

O sinal KILL garante que o processo é mesmo terminado.

Exemplo de utilização:

Kill -KILL 315


ou
kill -9 315

Para obter uma lista de todos os tipos de sinais disponíveis pode usar o comando kill -l

Página 21 de 94
O comando «killall», permite matar processo pelo nome. Serve para enviar sinais a todos
os processos que estão a executar um determinado programa. Se por exemplo
pretendemos terminar o vi (editor de texto do Linux) podemos executar o comando:

killall vi

E por hoje é tudo. Percebem agora porque se usa regularmente o kill –9, que como eu
costumo referir, é matar um processo sem dó nem piedade. Além do ps podem também
dar uma vista de olhos no comando top e htop (ver aqui).

Até à proxima! kill post

Parte 8

RunLevels

Ora vivam caros “linuxianos”! Cá estamos nós para mais uma rubrica “Comandos
Linux para Totós”. Espero que estejam a aproveitar e a perceber todas as dicas e que o
“terminal preto” já não seja um “inimigo” dos utilizadores.

Depois de termos ensinado a utilizar o tar para compactação e descompactação (ver


aqui), hoje vamos perceber o que é um runlevel e que níveis existem num sistema linux.

Página 22 de 94
Lembro-me quando comecei no mundo Linux de ouvir falar em runlevels, mais
concretamente runlevel 3 e runlevel 5. Runlevel (nível de execução do sistema Linux)
define de um modo geral como é que o nosso sistema se vai comportar ou seja quais os
serviços e processos que vão ser inicializados durante o arranque do sistema. O runlevel
é definido pelo processo «/sbin/init» que carrega a configuração a partir do ficheiro
«/etc/inittab ». De referir também que os runlevels variam de distribuição para distribuição.

Exemplo da informação contida no /etc/inittab de um CentOS:

# ‘Runlevel’ por omissão. Os 'runlevels' usados pelo RHS são:


# 0 - desligar (Não configure o 'initdefault' para isto)
# 1 – Modo mono-utilizador
# 2 – Modo multi-utilizador, sem NFS (Network file system)
# 3 - Modo multi-utilizador completo
# 4 – não usado
# 5 - X11
# 6 - reiniciar (NÃO configure o 'initdefault' para isto)
#
id:5:initdefault:

Página 23 de 94
Para saber qual o runlevel actual do seu sistema pode verificar a informação no ficheiro
/etc/inittab (ex.id:5:initdefault: – indica que vai arrancar no runlevel 5) ou então usando o
comando:

[root@pplware ~]# runlevel


N5

“N5” significa: N – “o sistema não arrancou com nenhum outro runlevel entretanto”
e “5” é o runlevel corrente”. O runlevel pode ser trocado a qualquer momento pelo
comando «init». Por exemplo, init 3 (como root) irá alterar o runlevel para o nível 3.

No RedHat ou CentOS podemos ver em que nível ou níveis um determinado


serviço estará activo. Para isso, podemos usar o comando chkconfig –list

[root@pplware ~]# chkconfig --list


NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apt 0:off 1:off 2:off 3:off 4:off 5:off 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off
capi 0:off 1:off 2:off 3:off 4:off 5:off 6:off

Em resumo

Tal como referido, os runlevels indicam o nível em que o nosso sistema vai operar ou seja,
quais os serviços/processos que vão ser inicializados durante o arranque do nosso
sistema. Porque se fala muito no runlevel 3 e 5? Bem, basicamente porque um sistema
que arranca no runlevel 3 (Modo multi-utilizador completo), apenas disponibilizará a linha
de comandos. Este é por exemplo o nível adequado quando instalamos um servidor e
apenas vamos fazer gestão remota do mesmo via SSH (não precisamos do interface

Página 24 de 94
gráfico). Um sistema a correr no runlevel 5 (X11 – ambiente gráfico), disponibiliza ao
utilizador o ambiente gráfico (ex. Gnome, Kde, xfce, etc).

Parte 9

Estrutura de Directórios

Ora vivam !!! Cá estamos nós para mais uma rubrica “Comandos Linux para Totós”.
Hoje vamos falar sobre a estrutura geral de directórios de um sistema Linux. A estrutura
de directórios varia de distribuição para distribuição, no entanto vamos referenciar os
directórios mais importantes.

A estrutura de directórios de um sistema Linux apresenta um formato de árvore, onde a


raiz (/) tem o nome de root.

Página 25 de 94
Outros directórios que fazem parte da estrutura de ficheiros

• / – Raíz do sistema;
• /bin – Contem um conjunto de programas que são usados durante o arranque
do sistema ou para a reparação do sistema (binários para todos os utilizadores) ;
• /boot – Ficheiros de boot (inicialização; boot‐loader; Grub); kernel do Linux.
• /dev -Dispositivos (devices) de entrada/saída: floppy, hardisk, cdrom, modem
• /etc – Ficheiros de configuração, scripts de inicialização, etc
• /sbin – Contem os principais programas para administrar e reparar o SO (binários
para administrador do sistema);
• /home – Directorias de trabalho locais dos utilizadores;
• /lib – Bibliotecas necessárias para que o sistema e programas possam funcionar
correctamente;
• /mnt – Directório de montagem de unidades de disco amovíveis (disquetes,
CD_ROM, Disco Magnéticos, discos USB,etc;
• /opt – Para instalação de programas não oficiais da distribuição

Página 26 de 94
• /proc – Contém ficheiros virtuais que representam o estado actual dos processos
em execução e informação sobre o estado de muitos componentes do SO
• /tmp – Ficheiros temporários gerados pelos programas
• /usr– Contém mais subdirectórios com programas, bibliotecas, utilitários, etc
o /usr/local – Para instalação de programas não oficiais da distribuição
o /usr/bin – A maior parte dos comandos destinados aos utilizadores
o /usr/src – O código fonte do sistema operativo, para quem pretender
modificar
o /usr/lib – Bibliotecas (libraries) relacionadas com a programação e os
packages
• /var – Directório usado por vários serviços (ex. correio electrónico, ficheiros em
fila de espera para impressão, WebServer, locks para impedir que vários
utilizadores usem em simultâneo o mesmo periférico, logs);

• /var/spool – Área onde são guardadas as filas de espera das impressoras e do


correio electrónico;
• /var/lock – Área onde é registada a utilização de vários serviços e periféricos
• /var/run – Inclui vários ficheiros com a identificação de vários processos
responsáveis pelos serviços em execução
• /var/log – Vários ficheiros com o registo de praticamente todos os eventos que
acontecem no sistema (útil para efeitos de segurança e administração);

Dica: Para quem pretender obter detalhadamente uma descrição da estrutura


hierárquica do sistema, pode usar o comando man hier

Página 27 de 94
Para quem não está habituado à estrutura de ficheiros do Linux, no início parece um
pouco confuso saber onde está o quê e em que directório colocar/trabalhar com
determinados ficheiros. É tudo uma questão de habituação (tal como aconteceu com
outros sistemas).

Parte 10

Ora vivam caros linuxianos!!! Cá estamos nós para o décimo tutorial da rubrica
“Comandos Linux para Totós”. Aproveitando este artigo, adianto desde que já que
vamos ter uma surpresa na próxima rubrica. Estejam atentos!

Bem, hoje vamos aprender a copiar e mover ficheiros entre directórios (coisa simples não
é ??).

Prontos para mais uma viagem no “terminal preto”? Lets go!

Página 28 de 94
Relembramos que para acompanharem estes tutoriais é necessário que possuam um
terminal Unix/Linux para ir experimentando e aprendendo os comandos apresentados.
Para os que já dominam a matéria, lanço desde já o desafio de colaborarem nesta rubrica
(podem enviar os vossos artigos para mim).

Como já referimos em alguns artigos, a shell (terminal) do Linux permite introduzir


comandos. Através dos comandos podemos realizar quase todas as tarefas possíveis num
sistema como por exemplo copiar ficheiros, criar/apagar directórios, controlar serviços,
etc.

whoami | pwd | id | who | date | cal | man | hostname | uptime | history | uname |
lsb_release | df … ainda se lembram? Se não, vejam aqui e aqui

Tal como referido, hoje vamos aprender a copiar e a mover ficheiros entre directórios.
Para tal é necessário recorrer aos comandos «copy»(para copiar ficheiros) e «mv» (para
mover ficheiros).

Antes de passar a alguns exemplos do comando «copy» e «mv» apenas indicar qual a
diferença entre caminho absoluto e caminho relativo:

Página 29 de 94
• Caminho absoluto – identificação do caminho de acesso desde a raiz / (ex:
/a/b/c/d)
• Caminho relativo – Indica o caminho de acesso ao ficheiro a partir do directório
corrente

Como copiar ficheiros

Para copiar ficheiros : cp origem destino

Exemplos

Copia o ficheiro ppinto para dentro directório tmp

cp ppinto /tmp/

Copia todos os ficheiros localizados em /tmp para o directório actual

cp /tmp/* .

Nota: O ‘*’ serve para indicar todos os ficheiros e o ‘.’ serve para indicar o
directório corrente

Como mover ficheiros

Para mover ficheiros : mv origem destino

Exemplos

Mover todos os ficheiros do directório corrente para /home/ppinto

mv * /home/ppinto

Mover todos os ficheiros do directório corrente para a pasta tmp dentro da home
directoy do utilizador

mv * ~/tmp

Nota2: O ’~’ indica a home directory do utilizador (ex. /home/ppinto)


Página 30 de 94
Alguns exercícios

Considerando a seguinte estrutura, responda às seguintes questões:

• Estando em site, como copiar o ficheiro info para dentro de forum?


• Estando em pplware como copiar o ficheiro aabb para dentro do directório
corrente?
• Como mudar o nome do ficheiro dados para dados2?
• Estando em ppinto, como mover todos os ficheiros para o directório site?

Por hoje ficamos por aqui e desde já conto com a vossa colaboração, respondendo às
questões colocadas. Há alguma dúvida?

Como extra, hoje deixo-vos um vídeo da história do Linux inserido nas comemorações
dos 20 anos deste excelente sistema operativo.

Página 31 de 94
Não se esqueçam, estejam atentos à próxima rubrica e não deixem de publicar as
respostas às questões colocadas neste artigo.

Bom fim de semana! poweroff

1) Se estivermos no directório /usr como mudar para o directório /usr/pplware?

• a) cd pplware
• b) cd /pplware
• c) cd ~/pplware
• d) ls ../pplware

2) Para que serve o comando ls –a

• a) Lista longa
• b) Lista ficheiros
• c) Lista todos os ficheiros e directórios, mesmo os ocultos
• d) Lista longa de todos os ficheiros e directórios, mesmo os ocultos

Página 32 de 94
3) Como saber quanto temos de espaço livre em disco?

• a) cat /freespace
• b) ls –l | disk
• c) du ‐i
• d) df ‐h

4) O que faz o comando cd quando executado sem parâmetros

• a) Não faz nada


• b) Muda para o directório seguinte
• c) Vai para a HOME do utilizador
• d) Mostra em que directório o utilizador se encontra

5) Como aceder à documentação de um comando?

• a) doc <comando>
• b) man <comando>
• c) infor <comando>
• d) <comando> docs

6) Qual o comando para dar permissão de execução ao dono do ficheiro?

• a) chmod u+x <ficheiro>


• b) chmod 644 <ficheiro>
• c) chown 777 <ficheiro>
• d) chown 100 <ficheiro>

Página 33 de 94
Parte 11
Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. Depois do de termos lançado um passatempo no âmbito desta rubrica que
contou com cerca de 150 participações (ver aqui) é hora de carregar no acelerador e
aprender mais alguns comandos linux. No futuro iremos ter mais passatempos idênticos,
estejam atentos!

Lá vamos nós para mais uma viagem no “terminal preto”? Lets go…runlevel 3!

Uma das funcionalidades que uso com alguma regularidade no terminal linux é o
redireccionamento de entradas e saídas (E/S). De uma forma geral, qualquer comando
ou programa que seja executado está sempre associado a três ficheiros virtuais de E/S:

• standard-input (stdin – ler informação)


• standard-output (stdout – enviar informação)
• standard-error (stderr – enviar mensagens de erro)

Página 34 de 94
Operadores para redireccionamento de entradas e saídas

Alguns exemplos

Redireccionar o output de um comandos para dentro dentro de um ficheiro

pplware@pplware:~$ ls –la > ppinto.txt


pplware@pplware:~$ echo “Pedro Pinto” > ppinto.txt

Redireccionar o conteudo de um ficheiro para dentro de um comando

pplware@pplware:~$ cat < teste.txt

Em determinadas ocasiões é útil redireccionar a “saída de erro” para um ficheiro

pplware@pplware:~$ find / -name passwd 2> erros.txt

Nota: Para redireccionar a “saída normal” e a saída de erro” utiliza-se &>

Existe também um ficheiro “especial” para onde podemos redireccionar as saídas


(output) que não se pretender guardar.

pplware@pplware:~$ cat > /dev/null


pplware@pplware:~$ cat exp0 > /dev/null

O redireccionamento de de entradas e saídas é uma excelente funcionalidade que está


presente no terminal Linux. Desta forma, podemos conjugar várias informações num
único output. Como desafio queremos saber o que faz o seguinte comando:

cat <<.>texto.txt

Num próximo artigo vamos falar sobre pipes e ver mais alguns exemplos.

Página 35 de 94
Parte 12

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. Se bem se lembram, no comandos Linux para totós – tutorial nº11 (ver aqui)
ensinamos como redireccionar facilmente o output de um comando para um ficheiro. A
pedido de um leitor hoje vamos ensinar a visualizar o conteúdo de um ficheiro usando
algumas ferramentas que fazem parte da shell Linux.

Tal como referido, hoje vamos aprender a visualizar a informação de um determinado


ficheiro de texto. Muitas são as ferramentas que estão disponíveis para esse efeito mas
hoje vamos conhecer as 2 ferramentas que para mim são essenciais no dia a dia: cat e
tail.

Se me perguntarem quanto uso o cat e quanto o uso o tail a resposta é simples: se


pretender visualizar a informação de um ficheiro uso o cat. Por outro lado, se um

Página 36 de 94
determinado ficheiro estiver a ser constantemente actualizado (ex. logs) uso o tail para
aceder a toda a informação em tempo real ou para ler parte do mesmo.

Vamos a alguns exemplos

cat – O cat, além de permitir ler visualizar a informação de um ficheiro de texto, permite
também concatenar ficheiros e apresentar a informação no standard-output

Apresentar o conteúdo do ficheiro pplware.txt

cat pplware.txt

Apresentar o conteúdo do ficheiro pplware.txt e ppinto

cat pplware.txt ppinto

Juntar o conteúdo do ficheiro pplware.txt e ppinto num só ficheiro com o nome tudo.txt

cat pplware.txt ppinto > tudo.txt

Acrescentar a informação do ficheiro linux_totos.txt ao ficheiro tudo.txt

cat linux_totos.txt >> tudo.txt

tail – o tail permite visualizar parte da informação do ficheiro. Existem dois argumentos
que considero fundamentais na utilização deste comando. O «n» onde podemos de
imediato indicar o número de linhas a serem apresentadas a contar do fim e o «f» (follow)
que permite ter sempre a ultima informação de um ficheiro actualizada no standard-
output

Ver as ultimas 15 linhas do ficheiro pplware.txt

tail –n 15 pplware.txt

Ver em tempo real o log das informações do sistema

tail -f /var/log/messages

Página 37 de 94
Espero que tenham percebido a utilização destas duas autenticas pérolas e em caso de
duvida ou sugestão deixem os vossos comentários que eu terei todo o gosto em vos
ajudar. Antes de fechar o artigo deixo aqui um projecto muito interessante.

Já fazem parte do projecto Doode – Uma rede Linux de amigos? Eu já ando por lá! Aqui
fica o endereço:

Doode – Uma rede Linux de amigos – http://doode.com.br/

Parte 13

Criar utilizadores pela linha de comandos

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. Pelo feedback que temos tido de muitos leitores sobre esta rubrica,
concluímos que esta “pequena” documentação sobre Linux tem ajudado muitos a
darem os primeiros passos no mundo do terminal preto. Era esse o nosso objectivo e
ficamos muito satisfeitos com todos os comentários.

Apertem os cintos que vamos descolar para mais uma viagem no terminal preto!

Página 38 de 94
Depois de termos aprendido já alguns conceitos e comandos básicos do terminal Linux,
hoje decidi preparar um artigo a ensinar como criar utilizadores no Linux. Como sabemos,
o Linux é um sistema multi-utilizador já que permite o acesso simultâneo de vários
utilizadores.

Mas como criar um utilizador no terminal Linux?

Para criar um utilizador no Linux via terminal podemos usar um dos seguintes comandos:
useradd ou adduser. A função do useradd e adduser no Fedora / Centos é igual. Já em
distribuições baseadas em Debian, o adduser disponibiliza um método interactivo para
criação de contas (várias questões sobre parâmetros do utilizador).

Criar utilizadores com useradd

Vamos então criar um utilizador com as seguinte definições com o comando useradd:

• UID (user ID): 301


• GUI: 301
• shell=bash

Página 39 de 94
• home=/home/ppinto
• username=ppinto

Utilização do useradd

useradd -u 301 -g 301 -s /bin/bash -d /home/ppinto ppinto

onde:

• u – UID (Numero entre 0 e 65535 que identifica cada utilizador)


• g – GUI (Numero entre 0 e 65535 que identifica o grupo a que cada utilizador
pertence)
• d – Home Directory a ser criada para o utilizador)

Nota importante: De referir que para definir uma password através do comando useradd
é necessário incluir o parâmetro –pxxxxx (onde xxxx é a password). Caso contrário
podemos usar o comando passwd <utilizador>:

[root@pplware ~]# passwd ppinto

De seguida devemos definir a pasword e confirmar a mesma (no linux a password não
aparece no standard-output a password introduzida).

[root@pplware ~]# passwd ppinto


Changing password for user ppinto.
New UNIX password:

Nota2: Caso não definam qualquer parâmetro (simplesmente useradd ppinto) o utilizador
é criado com base nas definições do ficheiro /etc/default/useradd

Criando utilizadores com adduser

Usando o comando adduser, é disponibilizada uma forma interactiva para criação de


utilizadores:

pplware@pplware:~$ sudo adduser ppinto


Adding user `ppinto' ...

Página 40 de 94
Adding new group `ppinto' (1002) ...
Adding new user `ppinto' (1001) with group `ppinto' ...
Creating home directory `/home/ppinto' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for ppinto
Enter the new value, or press ENTER for the default
Full Name []: Pedro Pinto - Pplware
Room Number []: 13
Work Phone []: 12321
Home Phone []: 456654
Other []:
Is the information correct? [Y/n] Y

Fácil não é? Experimentem agora criar dois ou três utilizadores e experimentar


autenticarem-se com credenciais dos mesmos no sistema.

Parte 14

Aprenda a criar alias

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. Pelo feedback que temos tido de muitos leitores sobre esta rubrica,
concluímos que esta “pequena” documentação sobre Linux tem ajudado muitos a
darem os primeiros passos no mundo do terminal preto. Era esse o nosso objectivo e
ficamos muito satisfeitos com todos os comentários. Não se esqueçam que podem enviar
as vossas dicas por e-mail para serem publicadas.

O terminal preto está pronto? Let’s go…

Página 41 de 94
Depois de na última rubrica termos aprendido a criar utilizadores através da linha de
comandos (ver aqui) fica já definido que nos próximos artigos iremos ensinar a criar
grupos e a perceber a informação contida no ficheiro que mantém o registo dos
utilizadores.

Para um utilizador que usa frequentemente a linha de comandos é normal usar o mesmo
comando, com os respectivos parâmetros, várias vezes nas suas sessões. Por vezes, os
comandos podem tornam-se “complexos” e extensos e nesse momento nada melhor
que criar um alias para simplificar a invocação do comando.

De uma forma geral, e no contexto do terminal de comandos linux, um alias é um nome


“amigável” que podemos atribuir para invocar um comando complicado de decorar
ou então um comando extenso.

Sintaxe do alias

alias novo_nome='comando'

Vamos considerar o seguinte comando como exemplo:

Página 42 de 94
sed -e "s/pedro/Pedro/g" < entrada.txt > saída.txt

E se fosse possível invocar o comando seguinte escrevendo no terminal, por exemplo,


apenas sedpp. Para tal, basta criar o seguinte alias:

alias sedpp=’sed -e "s/pedro/Pedro/g" < entrada.txt > saída.txt'

Desta forma, além de ser possível introduzir todo o comando referido, podemos apenas
invocar o mesmo, escrevendo sedpp.

No linux existe o ficheiro .bashrc onde podemos guardar de forma permanente todos
alias criados. Assim, mesmo que façamos restart ao sistema, a informação sobre os alias
criados não é perdida.

Exemplo do ficheiro .bashrc (para quem quiser editar o ficheiro pode usar o comando vi
.bashrc)

# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv –i'

alias sedpp=’sed -e "s/pedro/Pedro/g" < entrada.txt > saída.txt'

# Source global definitions


if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

Fácil não é? Ficamos agora a espera da vossa parte de alguns alias que acham que seriam
interessantes de criar no terminal linux.

E se eu pretende-se apenas escrever ‘e’ para desligar o sistema?

Página 43 de 94
Parte 15

Onde fica guardada a informação dos utilizadores e as passwords?

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. Depois de terem aprendido a criar utilizadores via linha de comandos, hoje
vamos mostrar onde o Linux guarda a informação dos utilizadores e respectiva
password e de que forma.

Já ligaram os motores do terminal preto? Vamos lá então.

Se bem se lembram, para criar um utilizador no Linux via terminal podemos usar um dos
seguintes comandos: useradd ou adduser. A função do useradd e adduser no Fedora /
Centos é igual. Já em distribuições baseadas em Debian, o adduserdisponibiliza um
método interactivo para criação de contas (várias questões sobre parâmetros do
utilizador).

Página 44 de 94
E onde fica essa informação?

O ficheiro «/etc/passwd», guarda a lista de todos os utilizadores do sistema.

Onde os campos anteriores representam:

Como podemos verificar, o segundo campo corresponde à password e apenas tem um


«x». Nas distribuições recentes, a password do utilizador é cifrada e mantida no ficheiro
«/etc/shadow». Tal acontece porque o ficheiro /etc/passwd está sempre desprotegido
para que qualquer utilizador possa ler o seu conteúdo.

pplware@tiger:~$ cat /etc/shadow


pplware:$$aJGev/yi$Vxva4ns3g1/sjQtay6fF.sbD.m7B7hE0Gu1:15219:0:99999:7:::
ppinto:$$ncgFWWQZyC5bW7JjQgNj3F.xii1x4oHXkE/Yy5M/0gQkSTAcG0:15234:0:99999:7:::

Resumindo, a informação dos utilizadores é mantida no ficheiro passwd e as respectivas


passwords são guardadas no ficheiro shadow. No próximo tutorial vamos falar sobre
grupos. Bom fim de semana!

Página 45 de 94
Parte 16

Ora vivam caros Linuxianos (quase Gurus) !!! Cá estamos nós para mais uma rubrica
“Comandos Linux para Totós”. Depois de terem aprendido a criar utilizadores via linha
de comandos e saber onde fica armazenada essa informação, hoje vamos falar sobre
grupos em Linux.

Já têm o terminal preto pronto? Lets go…

De maneira idêntica à forma como se criam utilizadores, podemos também criar grupos
usando o comando groupadd . O comando groupadd permite criar um novo grupo na
estrutura do Linux e assim agrupar utilizadores com características e permissões
semelhantes. De referir que, quando criamos um utilizador e não indicamos o grupo, é
criado automaticamente um grupo (GID) com um identificador numérico igual ao
atribuído ao utilizador (UID).

Página 46 de 94
Exemplo do comando useradd indicando que o utilizador deve pertencer ao grupo com
o ID 100 (opção –g 100)

useradd -u 301 -g 100 -s /bin/bash -d /home/ppinto ppinto

Nota: Se espreitarem o ficheiro /etc/passwd, podem ver a que grupo/grupos pertence


um determinado utilizador.

Como criar um grupo no Linux?

Para criar um grupo no linux basta usar o comando groupadd seguido do nome do
grupo.

groupadd pplware

A informação relativamente aos grupos criados fica guardada no ficheiro /etc/group. O


ficheiro /etc/gshadow pode guardar informações mais sensíveis relativamente aos grupos
(apenas legível pelo grupo root) .

Boa Prática: É habitual usar múltiplos de 100 para grupos e os números imediatamente a
seguir para utilizadores. Exemplo Grupo=600, user1=601, user2=602;

Por hoje ficamos por aqui. Estejam atentos aos próximos artigos da rúbrica “Comandos
Linux para Totós”. Será que não há candidatos para escrever os próximos artigos? Nós
ajudamos!

Parte 17

Modificar/Apagar utilizadores e grupos

Ora vivam caros Linuxianos (quase Gurus) !!! Cá estamos nós para mais uma rubrica
“Comandos Linux para Totós”. Se bem se lembram, nas ultimas duas rubricas
ensinamos a criar utilizadores, grupos, a gerir os ficheiros onde essa informação é

Página 47 de 94
mantida, etc. Para complementar esta parte, hoje vamos aprender mais alguns comandos
que permitem modificar, apagar utilizadores e grupos.

É hora de abrir o terminal preto para testar mais uns comandos! Lets go…

Recapitulando como criar utilizadores e grupos

Se bem se lembram, para criar um utilizador no Linux via terminal podemos usar um dos
seguintes comandos: useradd ou adduser. A função do useradd e adduser no Fedora /
Centos é igual. Já em distribuições baseadas em Debian, o adduser disponibiliza um
método interactivo para criação de contas (várias questões sobre parâmetros do
utilizador).

De maneira idêntica à forma como se criam utilizadores, podemos também criar grupos
usando o comando groupadd.

Outros comandos

passwd – Permite mudar a password de um determinado utilizador

Página 48 de 94
pplware@pplware:~$ passwd ppinto
Changing password for user ppinto.
New UNIX password:

chfn – Mudar o campo que contém o nome completo do utilizador

chfn ppinto
Changing finger information for ppinto.
Name [Pedro Pinto]:

usermod – Permite modificar parâmetros de uma conta (ex. directório do utilizador,gid,


passwod, etc).

• -c “Nome Completo” – Modifica o nome de um utilizador


• -d /Directório – Modifica o directório associado ao utilizador
• ‐e AAAA/MM/DD – Define a data em que a conta do utilizador expira
• ‐f nº de dia – Define o número de dias que a conta de um utilizador expire
• ‐g grupo – Define um novo grupo
• -p password – Define nova password
• -s shell – Define nova shell

pplware@pplware:~$ usermode –c “Pedro Pinto” ppinto

userdel – Permite remover uma determinada conta e respectivos ficheiros

pplware@pplware:~$ userdel –r ppinto

chage – muda a informação relativa ao período de expiração da password.

pplware@pplware:~$ chage -l ppinto


Last password change : Nov 05, 2009

Password expires : never


Password inactive : never
Account expires : never
Minimum number of days between password change :0
Maximum number of days between password change : 99999

Página 49 de 94
Number of days of warning before password expires :7

Se nunca quiser que a password expire deve usar o seguinte comando

pplware@pplware:~$ chage -M 99999 nome_do_utilizador

GRUPOS

gwpasswd – Alterar a password de um determinado grupo

groupdel – Apagar um determinado grupo

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux. E os vossos contributos? Alguém quer contribuir com
artigos? mail me

Parte 18

Dica – Copiar ficheiros entre máquinas Linux com o SCP

Ora vivam caros Linuxianos (quase Gurus) !!! Cá estamos nós para mais uma rubrica
“Comandos Linux para Totós”.Como administrador de sistemas é muito comum
transferir ficheiros entre sistemas. Com os serviços/protocolos que existem actualmente
disponíveis, transferir ficheiros entre sistemas é quase como transferir localmente de um
directório para outro. Depois de termos apresentado aqui o WinSCP, um cliente SFTP
(SSH File Tranfer Protocol) e FTP(File Transfer Protocol) que usa o SSH (Secure SHell) para
transferência/gestão de ficheiros, hoje vamos aprender como transferir facilmente
ficheiros entre máquinas Linux usando o SCP (secure copy).

Página 50 de 94
O SCP é um protocolo seguro que permite transferir facilmente ficheiros entre máquinas,
usando para isso o protocolo SSH. Hoje vamos aprender como transferir facilmente
ficheiros entre máquinas Linux usando para isso o SCP.

Vamos então considerar as seguintes configurações:

• Máquina A (Ubuntu) – 192.168.1.100


• Máquina B (Mint) – 192.168.1.200

Como pré-requisito, é necessário ter instalado o servidor SSH nas duas máquinas Linux.
Para instalar o servidor openssh-server no Ubuntu ou Mint podem usar o seguinte
comando:

sudo apt-get install openssh-server

No final devem iniciar o serviço, executando o comando:

/etc/init.d/sshd start

Página 51 de 94
Depois de instalado o openssh-server já podem copiar ficheiros da Máquina A para a
Máquina B. Vamos por exemplo considerar que querem copiar o ficheiro pplware.txt que
está em /home/ppinto da Máquina A para /home/marisa/ da Máquina B. Para isso,
estando na máquina A devem executar o seguinte comando:

scp /home/ppinto/pplware.txt root@192.168.1.200:/home/marisa

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me

Parte 19

Aprenda a instalar programas através do respectivo código fonte

Ora vivam caros Linuxianos (quase Gurus) !!! Cá estamos nós para mais uma rubrica
“Comandos Linux para Totós”. Aproveitando que ontem foi dia de Halloween (dia das
bruxas em Portugal) vamos aproveitar este artigo para desmistificar o mito da
“complicação” para instalar programas a partir do código fonte.

O terminal preto está pronto? Let’s go…

Página 52 de 94
Quando comecei a mexer nas primeiras máquinas com Linux, um dos procedimentos que
me fazia alguma confusão (e até medo) era a instalação de programas a partir do código
fonte (source code). O código fonte das aplicações são normalmente distribuídos em
ficheiros compactados .tar.gz ou .tar.bz2. Para ter acesso ao código fonte das aplicações
é então necessário fazer download do respectivo ficheiro compactado e em seguida
proceder à descompactação do mesmo.

A compilação de uma aplicação através do código fonte necessita também que estejam
instalados alguns compiladores como é o caso do gcc ou g++, assim como algumas
ferramentas como é o caso do make, patch, autoconf, etc.

Vamos então a um exemplo prático. Para isso vamos aprender como instalar aplicação
htop (ver aqui) através do respectivo código fonte. Para isso devem seguir os seguintes
passos:

Passo 1 – Obter o código fonte do htop. Para obter o ficheiro da Internet através da
linha de comandos podem executar o seguinte comando.

wget http://sunet.dl.sourceforge.net/project/htop/htop/0.9/htop-0.9.tar.gz

Página 53 de 94
Passo 2 – Descompactar o ficheiro (mas informações aqui sobre como
descompactar/compactar)

pplware@pplware:~$ tar xvzf htop-0.9.tar.gz

Passo 3 – Vamos agora entrar dentro da pasta (que foi criada após o ficheiro anterior
ter sido descompactado)

pplware@pplware:~$ cd htop-0.9/

Passo 4 – Vamos agora então à compilação e instalação propriamente dita. Para isso,
devem executar os seguintes comandos:

$ ./configure
$ make
# make install

• ./configure – Uma vez executado este script dentro da pasta do código fonte da
aplicação, ele encarrega-se de verificar se todos os pré-requisitos estão
disponíveis e também de obter informações sobre a arquitectura do sistema,
caminho dos comandos, bibliotecas, etc.
• make – Procede à compilação propriamente dita
• make install – Procede à instalação da aplicação, copiando os ficheiros gerados
pelo make para os respectivos directórios no sistema. Este passo requer
privilégios de root já que vão proceder a alterações no sistema.

De referir que estes são os passos normalmente usados para instalar a maioria das
aplicações através do respectivo código fonte. Por norma é também incluído um ficheiro
com o nome “INSTALL” ou “README” que contem as instruções necessárias para
instalar a aplicação.

Passo 5 – Depois de instalado (neste caso o htop), basta executar o comando htop para
correr a aplicação acabada de instalar.

pplware@pplware:~$ htop

Página 54 de 94
Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me

Parte 20

Pré-programação de tarefas com o crontab

Ora vivam caros Linuxianos (quase Gurus) !!! Cá estamos nós para mais uma rubrica
“Comandos Linux para Totós”. Hoje é um dia especial pois acabamos de chegar à
vigésima rubrica e parece-me que já temos um grupo de leitores fiéis à mesma!

Já têm o terminal preto pronto? Lets go…hoje vai ser em piloto automático!

Página 55 de 94
Hoje vamos reeditar um dica que publicamos em 2007 sobre o crontab (ver aqui).

Mas o que é o crontab e para que serve?

O cron é um serviço unix que permite que tarefas sejam executadas, automaticamente,
modo background em intervalos regulares pelo deamon da cron. Estas tarefas são
normalmente designadas por “cron jobs” em unix. Basicamente, através do serviço
crontab podemos agendar determinadas tarefas como por exemplo: realizar backups a
uma determinada hora/dia, recolher automaticamente informações de serviços, analisar
logs, etc etc.

Os pontos seguintes resumem as funcionalidades do crontab:

1. Restrições do crontab
2. Comandos do crontab
3. Ficheiro do crontab – sintaxe
4. Exemplo do crontab
5. Ambiente do crontab
6. Desabilitar email

Página 56 de 94
7. Gerar ficheiro de registo da actividade do cron

1. Restrições do crontab

Pode executar o crontab se o seu username constar do ficheiro/usr/lib/cron/cron.allow.


Se esse ficheiro não existir, poderá executar o crontab se o seu username não constar do
ficheiro/usr/lib/cron/cron.deny.

2. Comandos do crontab

Deve ser executado o comando “export EDITOR=nano” para especificar um editor de


texto para abrir o ficheiro do crontab. Neste caso o editor definido foi o nano.

3. Ficheiro do crontab – sintaxe

Sintaxe do crontab: O ficheiro do crontab é composto por cinco campos para


especificar o dia, a data e a hora seguido pelo comando a ser executado nessa altura.

Página 57 de 94
4. Exemplo de Crontab

Uma linha na crontab como a que está em baixo remove os ficheiros temporários de
/home/someuser/tmp each day às 18:30 de cada dia.

30 18 * * * rm /home/someuser/tmp/*

Alterando os valores dos parâmetros, como mostrado abaixo, irá provocar que este
comando corra a diferentes horas (ou datas):

min| hora| dia do mes| mes| dia da semana| data/hora de execução

5. Variáveis de ambiente da Crontab

A crontab invoca os comandos a partir da directoria /home do utilizador, dentro da shell


(/usr/bin/sh). No entanto é possível definir variáveis de ambiente para cada shell:

• HOME=user’s-home-directory
• LOGNAME=user’s-login-id
• PATH=/usr/bin:/usr/sbin:.
• SHELL=/usr/bin/sh

6. Desactivar email

Página 58 de 94
Por omissão a crontab envia uma mensagem de correio electrónico por cada comando
executado. Caso não pretenda que esta mensagem seja enviada deve adicionar a seguinte
linha ao final de cada comando da cron.

> /dev/null 2>&1

7. Gerar ficheiro de log

Para recolher logs de execução da cron num ficheiro:

30 18 * * * rm /home/user/tmp/* > /home/user/cronlog /clean_tmp_dir.log

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me

Parte 21

Configuração de parâmetros de rede

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. Pelo feedback que temos tido de muitos leitores sobre esta rubrica,
concluímos mais uma vez que esta “pequena” documentação sobre Linux tem ajudado
muitos a darem os primeiros passos no mundo do terminal preto. Era esse o nosso
objectivo e ficamos muito satisfeitos com todos os comentários.

Estão prontos para mais uma rubrica…terminal preto já está On? Ora vamos lá…

Página 59 de 94
Nos dias que correm uma máquina sem Internet é quase como uma peça de museu!
Nesse sentido, além de ser importante saber configurar a rede num sistema Linux é
também importante saber fazer troubleshooting caso haja algum problema. Tendo como
base o Linux CentOS, hoje vamos ensinar a configurar as interfaces de rede e outros
parâmetros associados.

Ficheiros para configuração dos parâmetros de rede

• /etc/hosts – Registo de nomes (locais)


• /etc/host.conf – Indica a ordem pela qual os nomes são resolvidos em IPs
• /etc/resolv.conf – Indicação dos servidores de DNS
• /etc/sysconfig/network – Hostname (nome da máquina) e gateway

Na directoria etc/sysconfig/network-scripts/ podem ser encontrados vários scripts de


configuração das interface.

Vamos a uns exemplos de configuração dos ficheiros referidos anteriormente,


considerando os seguintes parâmetros de rede de uma máquina:

Página 60 de 94
• Endereço IP: 192.168.0.1
• Mascara: 255.255.255.0
• Gateway: IP: 192.168.0.254
• DNS: 192.168.0.254 e 192.168.0.253

Vamos então à configuração dos ficheiros.

/etc/hosts

No ficheiro hosts é normalmente associado o nome da máquina ao endereço loopback.


No entanto, este ficheiro pode também ser usado para associar “manualmente” um
nome a um endereço IP.

[root@pplware network-scripts]# cat /etc/hosts


127.0.0.1 tiger.pplware.com localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

etc/host.conf

Este ficheiro indica a ordem que deve ser seguida para resolver um nome num endereço
IP. No seguinte exemplo podemos ver que o primeiro ficheiro a ser consultado é o hosts
e o parâmetro bind refere-se ao serviço de DNS configurado no ficheiro /etc/resolv.conf.

[root@pplware network-scripts]# cat /etc/host.conf


order hosts,bind

/etc/resolv.conf

Neste ficheiro configuramos os servidores de DNS. A directiva search

[root@pplware network-scripts]# cat /etc/resolv.conf


; generated by /sbin/dhclient-script

nameserver 192.168.0.254
nameserver 192.168.0.253

/etc/sysconfig/network

Página 61 de 94
Tal como referido, neste ficheiro indicamos o nome da máquina e o gateway.

[root@pplware network-scripts]# cat /etc/sysconfig/network


NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=tiger.pplware.com
GATEWAY=192.168.0.100

/etc/sysconfig/network-scripts/ifcfg-eth0

Vamos agora configurar a interface de rede propriamente dita. Como exemplo vamos
ensinar como configurar a interface eth0 (configurada a partir do ficheiro ifcfg-eth0, que
se encontra no tal directório referido anteriormente – /etc/sysconfig/network).

[root@pplware network-scripts]#cat /etc/sysconfig/network-scripts/ifcfg-eth0


# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda
mais o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os
vossos contributos? Alguém quer contribuir com artigos? mail me

Parte 22

Como correr um script no Linux?

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. Depois de no tutorial nº5 (ver aqui) termos ensinado o esquema de

Página 62 de 94
permissões usado no Linux, hoje vamos ensinar como correr um script no Linux,
atribuindo-lhe as respectivas permissões.

Vamos a mais uma viagem no “terminal preto”? Lets go…!

Um script não é nada mais nada menos que um conjunto de instruções/comandos que
permitem simplificar um conjunto de tarefas. Este tipo de ficheiros podem ser concebidos
pelo próprios utilizadores e mais à frente já iremos ver alguns exemplos.

Para que um script possa correr numa máquina Linux é necessário que tenha permissões
de execução (ver aqui). Considerando que o proprietário do ficheiro pretende dar
permissões de execução ao script pode fazê-lo usando um dos seguintes comandos:

chmod +x nome_do_script

ou

chmod 755 nome_do_script

Página 63 de 94
Nota: Depois de definirmos as permissões, podemos confirmar as mesmas usando o
comando ls –la (Saber mais aqui)

Vamos então a três exemplos! Para isso vamos criar um ficheiro (com um editor de texto
com por exemplo o nano, vim, vi, pico) com as seguintes instruções e gravar com o nome
hello.sh

Exemplo: hello.sh

Depois de escrever o código não se esqueçam de gravar. Basicamente o que o nosso


programa vai fazer é escrever na vossa shell Hello World. A primeira linha de código indica
qual a shell a utilizar e na segunda linha mandamos escrever Hello World.

Vamos agora atribuir as permissões de execução ao ficheiro para que este se torne um
executável para o seu dono. Para isso escrevam o seguinte comando.

chmod +x hello.sh

Para executar basta correr o comando

./hello.sh

Exemplo: info.sh

O seguinte script irá escrever Olá utilizador X, data actual e directório corrente do
utilizador

#!/bin/bash echo "Olá utilizador $USER."


echo "Data de hoje: $(date)"
echo "Directório corrente : $(pwd)"

Página 64 de 94
Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos?

Parte 23

Como procurar ficheiros e directórios

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. No último tutorial ensinamos a correr scripts no Linux. Hoje vamos aprender
a encontrar ficheiros e directórios no sistema de ficheiros.

Vamos a mais uma viagem no “terminal preto”? Lets go…!

Com tantos ficheiros/directórios que temos no sistema de ficheiros é impossível ao ser


humano conseguir saber a localização de todos os seus ficheiros/directórios. No entanto,

Página 65 de 94
todos os sistemas operativos disponibilizam aos utilizadores ferramentas que permitem
localizar facilmente e rapidamente um ficheiro/directório.

No terminal Linux podemos localizar ficheiros/directórios usando o comando find. Apesar


de ser um único comando, o find é bastante potente e flexível, já que permite conjugar
vários argumentos:

Sintaxe: find <local da pesquisa> <argumentos>

Para se perceber melhor a utilização do find, vamos a alguns exemplos:

Exemplo 1 – Localizar um ficheiro, a partir da raiz (/) da estrutura de directórios, com o


nome pplware. (Saiba mais sobre a estrutura de directórios aqui)

find / -name pplware

Explicação:

• / – permite localizar a partir da raíz da estrutura de ficheiros. Em outros exemplos,


poderemos usar outros directórios (ex. /home/pplware)
• -name – permite a pesquisa por nome

Nota: se pretendêssemos pesquisar no directório actual,poderíamos usar simplesmente


o comando

find -name pplware

Exemplo 2 – Localizar no directório actual, todos os ficheiros começados por ppl

find / –name ppl*

Exemplo 3 – Localizar ficheiros que tenha mais de 5 MB

find / -size +5000k

Exemplo 4 – Procurar o directório PPLWARE a partir da raíz

Página 66 de 94
find / -type -d -name "PPLWARE"

Exemplo 5 – Localizar e remover todos os ficheiros com extensão .bak, no directório


actual

find . -type f -name "*.bak" -exec rm -f {} \;

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me

Parte 24

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. No último tutorial ensinamos a procurar ficheiros e directórios via linha de
comandos (ver aqui). Hoje vamos falar sobre logs (registo de eventos) em Linux.

Vamos a mais uma viagem no “terminal preto”? Lets go…!

Página 67 de 94
Tudo aquilo que acontece num sistema operativo é normalmente registado nos logs para
que o utilizador possa saber o que aconteceu no dia X à hora Y. O Windows tem o event
viewer, o MacOS terá também um sistema de registo de eventos e no linux essa
informação fica mantida em ficheiros.

Imaginem por exemplo que a vossa máquina foi atacada via SSH e vocês querem saber
a data/hora do atque, utilizador usado para entrar no sistema, IP da máquina de onde foi
feito o ataque, etc. Para saberem essa informação basta acederem ao ficheiro de log
associado ao serviço SSH.

Onde se encontram os ficheiros de log no Linux?

A maioria dos ficheiros de log estão no directório /var/log.

Como ver os eventos do sistema operativo em tempo ?

Tal como referido no tutorial nº12 (ver aqui), o comando «tail» permite-nos visualizar em
tempo real o log de informações do sistema. Para tal basta usarem o seguinte comando:

Página 68 de 94
tail -f /var/log/messages

Exemplo de Output

Além do /var/log/messages existem muitos outros ficheiros de log que normalmente


estão associados aos vários serviços. Alguns exemplos:

• /var/log/auth.log – Logs das autenticações no sistema


• /var/log/kern.log – Logs do Kernel
• /var/log/cron.log – Logs do Crontab (ve aqui)
• /var/log/maillog – Logs do mail
• /var/log/qmail/ – Logs do qmail
• /var/log/httpd/ – Logs de acesso e de erro do Apache
• /var/log/lighttpd – Logs de acesso e de erro do Apache
• /var/log/boot.log – Logs do boot
• /var/log/mysqld.log – Logs do MySQL
• /var/log/secure – Logs de autenticação remota
• /var/log/utmp ou /var/log/wtmp – Registos de login
• /var/log/yum.log – Logs do Yum

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me

Página 69 de 94
Parte 25

Ora vivam caros linuxianos!!! Cá estamos nós para o primeiro artigo de 2012 da rubrica
“Comandos Linux para Totós”. Como sabemos os atalhos (links) são funcionalidades
do sistema operativo que facilitam o acesso aos ficheiros/directórios. Hoje vamos
aprender a diferença entre hard links e soft links e como os criar no Linux.

Antes de passarmos à prática, apenas um apontamento para que saibam diferenciar Hard
links de soft links:

Um link, num sistema de ficheiros, permite representar/referenciar um mesmo ficheiro em


mais que um directório.

Hard link (ligação real)

• Possibilidade de incluir o mesmo ficheiro (com o mesmo nome ou nome diferente)


em mais que um directório. Na prática é como se fosse uma cópia exacta do

Página 70 de 94
ficheiro. Ao contrário de um simples copiar de ficheiros, quando alteramos a
informação num hardlink ou ficheiro original, todos os outros hardlinks irão
também reflectir essa informação. Os hardlink têm o mesmo i-node ( um i-node
contém todas as características do ficheiro, excepto o nome que figura no (ou nos)
directórios onde o i-node é incluído. Para ver o i-node de um determinado
ficheiro/directório basta executar o comando ls –li)

Soft link (ligação simbólica)

• Possibilidade de Incluir num directório o nome de outro ficheiro que contém o


caminho para o ficheiro original

Como criar Hard links e Soft Links?

A criação de Hard links e Soft Links no Linux é realizado usando o comando ln

Exemplo 1 : Criar Soft links

Para criar um soft link basta usar o comando ln –s <ficheiro_origem>


<nome_link_simbolico>. Vamos então criar um soft link com o nome pplware_soft para
o ficheiro pplware

[root@egitux ~]# ln –s pplware pplware_soft


[root@egitux ~]# ls -li
139281 -rw-r--r--. 2 root root 82 Jan 23 12:04 ppinto
139281 -rw-r--r--. 2 root root 82 Jan 23 12:04 ppinto_hard
139284 lrwxrwxrwx. 1 root root 6 Jan 23 11:48 ppinto_soft -> ppinto
139413 -rw-r--r--. 1 root root 82 Jan 23 12:04 pplware
139420 lrwxrwxrwx. 1 root root 7 Jan 23 12:01 pplware_soft -> pplware

Como podem ver, foi criado simbólico que aponta para o ficheiro original. O soft link tem
um i-node diferente (139420), do ficheiro original (139413), as permissões não são
mantidas e o tamanho é também menor que o do ficheiro original.

Exemplo 2 : Criar Hard links

Página 71 de 94
Para criar um hard link basta usar o comando ln <ficheiro_origem>
<nome_link_simbolico>. Vamos então criar um hard link com o nome pplware_hard para
o ficheiro pplware

[root@egitux ~]# ln pplware pplware_hard


[root@egitux ~]# ls -li
139281 -rw-r--r--. 2 root root 82 Jan 23 12:04 ppinto_hard
139284 lrwxrwxrwx. 1 root root 6 Jan 23 11:48 ppinto_soft -> ppinto
139413 -rw-r--r--. 2 root root 82 Jan 23 12:04 pplware
139413 -rw-r--r--. 2 root root 82 Jan 23 12:04 pplware_hard
139420 lrwxrwxrwx. 1 root root 7 Jan 23 12:01 pplware_soft -> pplware

Ao contrário dos soft links, nos hard links existe uma referencia real para o ficheiro original
sendo mantido o mesmo inode (139413) . As propriedades, e permissões do ficheiro são
mantidas, com excepção do nome. Caso se proceda à alteração das permissões ou
conteúdo de um hardlink, todos os outros (incluindo o ficheiro original) serão
actualizados.

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me

Parte 26

Aprenda a usar o editor de texto vim

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. No último tutorial explicamos a diferença entre hardlinks e softlinks e demos
alguns exemplos de situações onde podemos usar cada um deles (ver aqui). Hoje vamos
aprender a usar o editor de texto vim.

Página 72 de 94
Vamos a mais uma viagem no “terminal preto”? Lets go…!

Uma das ferramentas que mais uso em qualquer sistema linux é os editores de texto.
Adepto do vim e do nano, estes editores de texto permitem-me fazer quase tudo ao nível
da linha de comandos e também em ambiente gráfico. Os editores de texto permitem-
nos criar/editar vários tipos de ficheiros, oferecendo um conjunto de funcionalidades que
visam aumentar a produtividade de cada utilizador.

Editor de texto vim

O editor de texto vim (VI iMproved), deriva do vi, e é considerado um dos melhores
editores de texto para linha de comandos.

Como instalar o vim?

Ao contrário do vim, o vim não vem instalado por omissão. Quem pretender instalar por
exemplo no Ubuntu, basta abrir o terminal e inserir o seguinte comando:

sudo apt-get install vim

Página 73 de 94
Além disso, o vim tem suporte para vários plugins. Para saber a lista de plugins
disponíveis use o comando:

sudo apt-cache search vim

Depois de instalado, basta usar o comando vim, para iniciar o editor

Antes de começarem a usar o vim é importante que saibam que todas as funções são
invocadas usando : (dois pontos). Exemplos:

• :w para guardar o ficheiro


• :q para sair do ficheiro
• :q! para sair sem guardar o ficheiro
• :wq para sair e guardar o ficheiro

Para abrirem um ficheiro já existente com o vim, devem usar o comando:

vim [nome_ficheiro]

Página 74 de 94
Quando usamos o vim pela primeira vez tudo parece muito confuso. No entanto, ao
longo do tempo vamo-nos apercebendo que a forma como funciona permite uma maior
rapidez na edição de textos. Quanto abrimos um ficheiro, o editor fica em modo de
visualização. Para passarem para o modo de edição devem carregar na tecla «i» (insert)
e de pois «a» (add) para adicionar texto. De referir que podem comutar entre o modo de
visualização e edição usando a tecla ESC (Escape).

Outros comandos básicos que podem ser usados no modo de visualização:

• x – para apagar um caracter


• u – (undo) para invalidar a ultima acção
• dd – apaga uma linha
• dw – apagar uma palavra
• yy – copiar uma linha
• yw – copiar uma palavra
• p – colar o que apagamos anteriormente ou copiar uma linha ou palavra
• e – mover para a próxima palavra
• r – substituir uma palavra
• /palavra_a_pesquisar – Palavra a pesquisar
• :sp nome_ficheiro_texto – Possibilidade de ter mais do que um ficheiro de texto

Página 75 de 94
O vim suporta muitas outras funcionalidades. No entanto, deixamos esse desafio para
todos os nossos leitores, de modo a que deixem as vossas dicas nos comentários.

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me

Parte 27

Gestão de pacotes

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”. No último tutorial ensinamos a usar, o sempre util, editor de texto vim (ver
aqui). Hoje vamos aprender a usar os gestores de pacotes para várias distribuições. Vamos
a mais uma viagem no “terminal preto”?

Página 76 de 94
Lets go…!

No seguimento da rubrica “Comandos Linux para Totós” segue a minha humilde


contribuição.

Decidi escrever sobre gestão de pacotes, que é um dos primeiros temas que abordo com
os meus formandos quando começamos a tratar do assunto consola/shell.

Para que esartigo possa ser aplicado por todos, é necessário esclarecer que as
distribuições Linux dividem-se em 2 grandes famílias: as baseadas em Debian (Ubuntu,
Mint, …) e as baseadas em Red Hat (Fedora, OpenSuse, …). Assim sendo, torna-se
necessário dividir este artigo em 2 partes, uma dedicada ao apt-get e apt-cache para
distribuições te Debian, outra para o yum utilizado nas distribuições baseadas em Red
Hat.

Antes de qualquer tarefa devemos sempre actualizar a lista de pacotes disponíveis, para
que o sistema possa ter conhecimento do que pode instalar/actualizar (todos os
comandos precisam de permissões de administrador, não se esqueçam de entrar como
root):

Debian: apt-get update


Página 77 de 94
Red Hat: yum makecache

Depois desta actualização podemos então realizar diversas tarefas, como por exemplo:
Actualizar os pacotes instalados:

Debian: apt-get upgrade

Red Hat: yum update

Instalar um pacote (neste caso o chromium-browser):

Debian: apt-get install chromium-browser

Red Hat: yum install chromium-browser

Actualizar os pacotes instalados (semelhante ao apt-get upgrade, mas…) que possuem


mudanças nas dependências de pacotes :

Debian: apt-get dist-upgrade

Red Hat: yum upgrade

Remover um pacote mantendo os ficheiros de configuração (neste caso o evolution):

Debian: apt-get remove evolution

Red Hat: não tem equivalente

Remover um pacote e os seus ficheiros de configuração (novamente o evolution):

Debian: apt-get purge evolution

Red Hat: yum erase evolution

Procurar uma expressão no pacote ou na sua descrição (neste caso o vlc):

Debian: apt-cache search vlc

Página 78 de 94
Red Hat: yum search vlc

Para mais opções ou pormenores: man apt-get ou man yum

Parte 28

Ora vivam caros linuxianos!!! Cá estamos nós de regresso à rubrica “Comandos Linux
para Totós” e com o objectivo de chegarmos ao tutorial nº100! Para isso contamos
também com a vossa ajuda, sendo que a partir de agora podem enviar as vossas dicas
para que nós possamos publicar (ver no final do artigo)

Preparados para mais um Comandos Linux para Totós ???….Lets go…!

Para quem não acompanhava este rubrica, pode segui-la a partir do ultimo tutorial onde
falamos sobre Gestão de Pacotes e onde temos também as referencias para os outros
tutoriais (ver aqui).

Página 79 de 94
Bem, quando se fala em editor de texto para Linux, o nome mais sonante é o vi (que
também já analisamos aqui). Pessoalmente apesar de não desgostar do vi ou vim, a minha
escolha preferencial é o nano.

O nano, clone do antigo Pico, é um editor de texto extremamente potente, completo e


personalizável, que funciona via terminal e que oferece aos utilizadores um conjunto de
funcionalidades essenciais para abrir e editar ficheiros de texto.

Como usar o nano?

Usar este editor de texto é extremamente simples. Considerando que pretendíamos editar
o ficheiro pplware.txt, apenas necessitaríamos de usar o comando

nano pplware.txt

Como podemos reparar na parte inferior, existem um conjunto de atalhos que nos
permitem tirar partido de todas as funcionalidades do nano. Por exemplo:

• CTRL-X – Serve para sair do editor.


• CTRL-R – Ler um ficheiro
• CTRL-C – Mostra a posição atual do cursor.
• CTRL-K – Corta o texto.

Página 80 de 94
• CTRL-U – Cola o texto.
• CTRL-O – Salva o ficheiro
• CTRL-T – verifica a ortografia do seu texto.
• CTRL-w – faz uma pesquisa no texto mediante uma string
• CTRL-A– Move o cursor para o início da linha.
• CTRL-E – Move o cursor para o fim da linha.
• CTRL-G – Apresenta o manual de utilização do editor Nano.

Depois de alguma rotina, o utilizador acaba por ter uma produtividade maior recorrendo
aos atalhos indicados.

Syntax Highlighting

Mas o nano permite ainda muito mais. Este editor suporta Syntax Highlighting para
diversas linguagens de programação/codificação.Para isso, recorrendo ao proprio nano,
basta abrir o ficheiro .nanorc

nano .nanorc

e activar a linguagem de programação/codificação que se pretende.

Página 81 de 94
Auto identação

Caso se pretenda por exemplo activar a Auto identação (util para tratar codigo fonte) ,
basta tirar o caracter de comentário #

E muitas outras configurações que podem descobrir usando o comando

man nano

Página 82 de 94
Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback.

Qual é o vosso editor de texto de eleição?

Parte 29

Periféricos no Linux

Ora vivam caros linuxianos!!! Cá estamos nós para a primeira rubrica “Comandos Linux
para Totós” de 2013, com o objectivo de chegarmos ao tutorial nº100! Para isso
contamos também com a vossa ajuda, sendo que a partir de agora podem enviar as
vossas dicas para que nós possamos publicar (ver no final do artigo)

Preparados para mais um Comandos Linux para Totós ???….Lets go…!

Página 83 de 94
Recentemente um leitor solicitou que escrevêssemos um artigo sobre periféricos, mais
concretamente sobre disco e partições no Linux. Aqui vai a nossa explicação:

A maioria dos periféricos (ex. discos, teclados, drives CD/DVD) detectados pelos sistema
operativo possui uma referência no diretório especial /dev. No entanto, considerando por
exemplo um dispositivo de armazenamento (ex.disco, Pen USB), o sistema não consegue
aceder diretamente ao sistema de ficheiros destes dispositivos, simplesmente através do
nome no directório /dev.

Por exemplo, /dev/sda1 corresponde:

• /dev – diretório especial


• sd – normalmente associado a dispositivos de armazenamento
• a – indica que é o primeiro disco (se fosso por exemplo b, seria o segundo)
• 1 – corresponde à primeira partição (neste caso do primeiro disco sda)

Para que o sistema possa aceder ao sistema de ficheiros do dispositivos, é necessário


montá-los no sistema de ficheiros “primário”, ou seja, no sistema de ficheiros do próprio
sistema. Para ver os dispositivos montados no sistema podem usar o comando mount .

De referir que através do comando mount, podem também saber qual o sistema de
ficheiros usado (ex. o /dev/sda1 está montado em /boot e a usar o sistema de ficheiros
ext3).

No caso dos dispositivos de armazenamento, podem usar o comando fdisk –l para ver os
discos e respectivas partições.

No exemplo seguinte podemos ver que o sistema tem um disco (/dev/sda) com 36,7 GB
de capacidade de armazenamento, e que este está dividido em duas partições:
Página 84 de 94
• /dev/sda1
• /dev/sda2

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me (ppinto at pplware.com) ou
através da comunidade Pplware Linux.

Parte 30

Vamos conhecer a fantástica ferramenta grep

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós” de 2013, com o objectivo de chegarmos ao tutorial nº100! Para isso
contamos também com a vossa ajuda, sendo que a partir de agora podem enviar as
vossas dicas para que nós possamos publicar (ver no final do artigo)

Preparados para mais um Comandos Linux para Totós ???….Lets go…!

Página 85 de 94
Como referido, hoje vamos apresentar um das mais fantásticas ferramentas presentes na
shell Linux, o grep. Para quem não sabe, o grep deriva de 3 palavras (global / regular
expression / print) e foi criado por Paolo Bonzini, tal como a ferramenta sed, tornando-
se das ferramentas mais usadas na shell Linux.

Mas o que faz o comandos grep?

Bem, de uma forma resumida, o grep permite “localizar” de uma forma muito rápida,
informação dentro de um ficheiro de texto. Todas as linhas que contenham a informação
procurada são apresentadas como output do comando.

Sintaxe:

grep [argumentos] expressão ficheiro

• expressão: palavra ou frase a ser localizada no ficheiro de texto


• ficheiro: indicação do ficheiro onde será realizada a procura

Alguns argumentos:

Página 86 de 94
• -n: apresenta o numero da linha
• -i: ignora maiúsculas e minúsculas
• -c: mostra o número de vezes que aparece a palavra/frase
• -v: mostra todas as linhas, com a excepção as linhas que contem a frase/palavra
• -r: Usar o grep de forma recursiva
• -w: para pesquisar apenas palavras

Sintaxe de utilização

grep 'palavra' ficheiro


grep 'string1 string2' ficheiro
cat outroficheiro| grep 'palavra/frase'
command | grep 'palavra/frase'
command argumento| grep 'pplware'
grep --color 'pplware' ficheiro

Exemplos

Procurar de forma recursiva

• Com o seguinte comando, podemos pesquisar em todos os ficheiros do


directorio /home/ppinto, a palavra pplware

grep -r "pplware" /home/ppinto

Procurar no ficheiro

• Procurar dentro do ficheiro /home/ppinto/ppinto.txt a palavra pplware. De referir


que se pretendermos que a pesquisa não seja case sensitive, devemos incluir o
argumento -i

grep pplware /home/ppinto/ppinto.txt

De referir ainda que o grep tem suporte para expressões regulares, que iremos ensinar
em próximos artigos e que são de de extrema importância nos mais diversos cenários.

Página 87 de 94
Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me (ppinto at pplware.com) ou
através da comunidade Pplware Linux.

Parte 31

Aprenda a usar o editor de texto vi (Parte I)

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós” de 2013, com o objectivo de chegarmos ao tutorial nº100! Para isso
contamos também com a vossa ajuda, sendo que a partir de agora podem enviar as
vossas dicas para que nós possamos publicar (ver no final do artigo)

Preparados para mais um Comandos Linux para Totós ???….Lets go…!

Página 88 de 94
Uma das ferramentas que mais uso em qualquer sistema linux é os editores de texto.
Adepto do vim e do nano, estes editores de texto permitem-me fazer quase tudo ao nível
da linha de comandos e também em ambiente gráfico. Os editores de texto permitem-
nos criar/editar vários tipos de ficheiros, oferecendo um conjunto de funcionalidades que
visam aumentar a produtividade de cada utilizador.

Editor de texto vi

Um dos editores de texto mais populares no GNU/Linux é sem duvida o vi (além do


emacs). Quem usa este editor pela primeira vez sente-se desconfortável por aparenta
alguma complexidade. No entanto o vi foi concebido para que o utilizador tenha a maior
produtividade ao menos esforço (entenda-se, usando o menor conjunto de teclas para a
navegação dentro do próprio editor).

Quem já está familiarizado com o vi, a produtividade é simplesmente impressionante.

O vi funciona com base em modos. O utilizador pode estar no modo comando ou no


modo de inserção. tal como os nomes sugerem, o modo comando permite que se usem
as teclas para “comandar” o editor e no modo de inserção podemos escrever
normalmente no editor.

Para entrarmos em modo de inserção basta carregar na tecla i. Para voltar ao modo
comando, carregamos na tecla ESC.

Movimentos do Cursor

No vi, ao contrário de outros editores, as teclas direccionais (em modo comando) são:

• h – para a esquerda
• j – para baixo
• k – para cima

Página 89 de 94
• l – para a direita

De referir que as “tradicionais” teclas de navegação também funcionam no vi.

Algumas teclas para navegação

Tal como referido, o vi recorre a um conjunto de teclas que permitem, em modo


comando, realizar um conjunto de acções. Aqui ficam algumas dessas teclas/conjunto
teclas:

• RETURN: Inicio da proxima linha


• ESPAÇO: Move o cursor para a frente
• 0 – Início da linha
• e E – fim da linha
• w W – Salta para o inicio da próxima palavra

Comandos para edição de texto

Como teclas que ajudam na edição de texto, o vi também disponibiliza uma série de
“funções”. Por exemplo:

• tecla d – apaga o texto (que estão nos buffers do editor)


• tecla c – substitui o texto selecionado
• tecla > – Indenta o texto

Num próximo artigo iremos explorar melhor estas dicas e apresentar outras tantas.

Por hoje é tudo! Espero que estejam a aproveitar estes tutoriais para aumentar ainda mais
o vosso conhecimento sobre Linux e aguardo ansiosamente o vosso feedback. E os vossos
contributos? Alguém quer contribuir com artigos? mail me (ppinto at pplware.com) ou
através da comunidade Pplware Linux.

Página 90 de 94
Parte 32

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós” de 2013, com o objectivo de chegarmos ao tutorial nº100! Para isso
contamos também com a vossa ajuda, sendo que a partir de agora podem enviar as
vossas dicas para que nós possamos publicar (ver no final do artigo)

Preparados para mais um Comandos Linux para Totós ???….Lets go…!

Sempre que vamos perder algumas horas a explorar a consola do linux devemos ter em
consideração alguns atalhos e funções das teclas do nosso teclado que nos podem ajudar
a tirar melhor partido da consola.

Aqui fica uma lista de alguns desses atalhos, que nos ajudam a ser mais produtivos:

• ENTER – confirma / executa o comando em edição;


• BACKSPACE – apaga o caracter que se encontra atrás do cursor;

Página 91 de 94
• DELETE – apaga o carácter que se encontra sob o cursor;
• <- e -> – servem para movimentar o cursor ao longo da linha que está a ser
editada;
• CTRL + A – faz o cursor saltar directamente para o inicio da linha;
• CTRL + E – faz o cursor saltar para o fim da linha;
• CTRL + W – apaga a palavra atrás do cursor;
• CTRL + U – apaga toda a linha;
• (tecla cima) e (tecla baixo) – permite recuperar os comandos que haviam sido
escritos anteriormente;
• CTRL + L – apaga todo o conteúdo do ecrã ou da janela do terminal usada;
• CTRL + C – cancela o comando que estava a ser escrito. Também serve para
interromper comandos em execução, caso estes estejam bloqueados;
• TAB – completa automaticamente o comando ou nome de ficheiro que estava a
ser escrito;
• 2 x TAB – se for executado após ter uma palavra meio escrita, mostra uma lista com
todas as possibilidades para completar as palavras;
• CTRL + Z – congela o comando que estava em execução, mas não o termina: fica
apenas parado até que o utilizador o mande continuar, com o comando <fg>;
• CTRL + S – faz parar o ecrã (scroll) durante as listagens;
• CTRL + Q – manda continuar as listagens (após CTRL + S);
• SHIFT + PGUP e SHIFT + PGDN – visualiza listas extensas;

Podem faltar ainda alguns que gostaria que fossem apontados nos comentários.

Página 92 de 94
Parte 33

Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linux
para Totós”de 2013, com o objectivo de chegarmos ao tutorial nº100! Para isso contamos
também com a vossa ajuda, sendo que a partir de agora podem enviar as vossas dicas
para que nós possamos publicar (ver no final do artigo)

Preparados para mais um Comandos Linux para Totós ???….Lets go…!

Sempre que vamos perder algumas horas a explorar a consola do linux devemos ter em
consideração alguns atalhos e funções das teclas do nosso teclado que nos podem ajudar
a tirar melhor partido da consola.

Aqui fica uma lista de alguns desses atalhos, que nos ajudam a ser mais produtivos:

• ENTER – confirma / executa o comando em edição;


• BACKSPACE – apaga o caracter que se encontra atrás do cursor;

Página 93 de 94
• DELETE – apaga o carácter que se encontra sob o cursor;
• <- e -> – servem para movimentar o cursor ao longo da linha que está a ser
editada;
• CTRL + A – faz o cursor saltar directamente para o inicio da linha;
• CTRL + E – faz o cursor saltar para o fim da linha;
• CTRL + W – apaga a palavra atrás do cursor;
• CTRL + U – apaga toda a linha;
• (tecla cima) e (tecla baixo) – permite recuperar os comandos que haviam sido
escritos anteriormente;
• CTRL + L – apaga todo o conteúdo do ecrã ou da janela do terminal usada;
• CTRL + C – cancela o comando que estava a ser escrito. Também serve para
interromper comandos em execução, caso estes estejam bloqueados;
• TAB – completa automaticamente o comando ou nome de ficheiro que estava a
ser escrito;
• 2 x TAB – se for executado após ter uma palavra meio escrita, mostra uma lista com
todas as possibilidades para completar as palavras;
• CTRL + Z – congela o comando que estava em execução, mas não o termina: fica
apenas parado até que o utilizador o mande continuar, com o comando < fg>;
• CTRL + S – faz parar o ecrã (scroll) durante as listagens;
• CTRL + Q – manda continuar as listagens (após CTRL + S);
• SHIFT + PGUP e SHIFT + PGDN – visualiza listas extensas;

Podem faltar ainda alguns que gostaria que fossem apontados nos comentários.

Créditos informações retiradas do tutorial ppware comandos Linux para totós

Fonte: https://pplware.sapo.pt/linux/comandos-linux-totos-tutorial-no34/

Fonte: https://pplware.sapo.pt/tutoriais/comandos-linux-para-totos-tutorial-no25/

Fonte: https://pplware.sapo.pt/tutoriais/comandos-linux-para-tots-tutorial-n23/

Fonte: http://www.comandoslinux.com/

BOM TRABALHO.
Página 94 de 94

Das könnte Ihnen auch gefallen