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 uid =1000((pplware) pplware) gid gid=1000 =1000((pplware) pplware) groups=1000 groups =1000((pplware) pplware),4( ,4(adm) adm),20( ,20(dialout) dialout),24( ,24(cdrom) cdrom),46( ,46(plugdev) plugdev),112( ,112(lpadmin) lpadmin),120( ,120(admin) admin),122( ,122(sambashar e)
who – Permite saber quem está logado no sistema pplware@pplware:~$ who pplware tty7
2011-08-04 16:27 (:0) :0)
pplware pts/0
2011-08-04 16:28 (:0.0) :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 des cobri recentemente. Conhecem o site examplenow ??? Passem por lá e digam d igam 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 i ntroduzir 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, min, 2 users 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 aqui.. pplware@pplware:~$ history 1 cd cd /media/ /media/ 2 ls 3 cd cd VBOXADDITIONS_4.0.4_70112/ VBOXADDITIONS_4.0.4_70112/ 4 ls
Para executar de imediato um comando pode fazer !
. 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 t odas
as informações deve usar o comando lsb_release – a pplware@pplware:~$ lsb_release -a Distributor ID: Description: Release:
Ubuntu Ubuntu Natty
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 h pplware@pplware:~$ df df -h -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
/dev/sr0
0 249M 0% /var/lock
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 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 comand os. Através dos comandos podemos realizar quase todas as tarefas possíveis p ossí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 d irectório [pplware@pplware ~] ~]# mkdir pplware [pplware@pplware ~] ~]# cd pplware [pplware@pplware pplware] pplware ]# mkdir site [pplware@pplware pplware] pplware ]# cd site/ [pplware@pplware site] site ]# mkdir ppinto [pplware@pplware site] site ]# cd ppinto/ [pplware@pplware ppinto] ppinto ]# touch dados info xpto [pplware@pplware ppinto] ppinto ]# cd .. [pplware@pplware site] site ]# cd .. [pplware@pplware pplware] pplware ]# mkdir forum [pplware@pplware pplware] pplware ]# cd forum [pplware@pplware forum] 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 p no 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 -r now now Desligar sistema (4 maneiras que conheço): 1. halt 2. poweroff 3. init 0 4. shutdown -h -h now 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: ames@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 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 (termina l) 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 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 (dono do ficheiro ou d irectório) g – group (grupo(s) a que pertence)
o – other (t (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“? T otós“? Bem, depois de termos
explicado o output de um “ ls – l 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 ficheir o 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: 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 ‘r w‐‐‐‐‐‐‐’ 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 . 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 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 vamos a alguns exemplos. Como compactar?
Arquiva todo o directório d irectório /root/pplware em pplware.tar tar -cf pplware.tar pplware.tar /root/pplware
Arquiva o o ficheiro pplware1 e pplware2 pp lware2 em pplware.tar (modo verbose, opção v) tar -cvf pplware.tar pplware.tar pplware1 pplware2
Criar ficheiro pplware.tgz (zip) tar czfP tar czfP pplware.tgz /root/pplware
Criar ficheiro pplware.tgz (bzip2) tar -cjf home.tbz home.tbz /root/pplware
Como descompactar?
Extrair ficheiro pplware.tar tar -xf home.tar home.tar
Página
18 de 94
Extrair ficheiro pplware.tgz (zip) tar -xzf pplware.tgz pplware.tgz
Extrair ficheiro pplware.tgz (bzip2) tar -xjf pplware.tgz pplware.tgz
Extrair o ficheiro pplware.txt do ficheiro pplware.tar.gz tar -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 recorreu ao ao conjunto conjunto de de teclas CTRL+ALT+DEL para para “matar” “matar” um processo que esteja 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 ps aux aux USER
PID %CPU %MEM
VSZ RSS TTY
STAT START TIME COMMAND
root
1 1.6 0.3 2532 1372 1
root
2 0.0 0.0
0
01
S< 13:56 0:00 [kthreadd] kthreadd]
root
3 0.0 0.0
0
01
S< 13:56 0:00 [migration/0] migration/0]
Ss 13:56 0:01 /sbin/init
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), t race), 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). (t erminate). O sinal KILL garante que o processo é mesmo terminado.
Exemplo de utilização: Kill -KILL -KILL 315 315 ou kill -9 -9 315 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 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 p erceber 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 q ue o nosso s istema se vai comportar ou seja quais q uais 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 Modo mono-utilizador # 2 – Modo Modo multi-utilizador, sem NFS (Network file system) # 3 - Modo multi-utilizador completo # 4 – – não 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 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 ~] ~]# runleve 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 list serviço estará activo. Para isso, podemos usar o comando chkconfig – list [root@pplware ~] ~]# chkconfig --list NetworkManager 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
auditd
0:off 1:off 2:on
autofs
0:off 1:off 2:off
4:on
3:on 3:on
5:on
4:on 4:on
6:off
5:on 5:on
6:off 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 bluetooth capi
0:off 1:off 2:on 0:off 1:off 2:off
3:off 4:off 5:off 6:off 3:on
4:on
5:on
6:off 6: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áf ico). ico). 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 /usr/local – Para instalação de programas não oficiais da distribuição /usr/bin – A maior parte dos comandos destinados aos utilizadores /usr/src – O código fonte do sistema operativo, para quem pretender o
o
o
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 de talhadamente 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 p ró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 c opiar e a mover ficheiros entre directórios.
Para tal é necessário recorrer aos comandos « copy »(para »(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 d o directório corrente
Como copiar ficheiros
cp origem destino destino Para copiar ficheiros : cp origem Exemplos
Copia o ficheiro ppinto para dentro directório tmp cp ppinto cp ppinto /tmp/
Copia todos os ficheiros localizados em /tmp para o directório d irectório actual cp /tmp/* 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 mv origem destino destino Exemplos
Mover todos os ficheiros do directório corrente para /home/ppinto mv * mv * /home/ppinto
Mover todos os ficheiros do directório corrente para a pasta tmp dentro da home directoy do utilizador mv * mv * ~/tmp
Nota2: O ’~’ indica a home directory do 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 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, 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 como mudar p ara 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 •
•
•
•
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 b) man c) infor d) docs
6) Qual o comando para dar permissão de execução ao dono do ficheiro? •
•
•
•
a) chmod u+x b) chmod 644 c) chown 777 d) chown 100
Página
33 de 94
Parte 11 Ora vivam caros linuxianos!!! Cá estamos nós para mais uma rubrica “Comandos Linu x 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 cat < < teste.txt
Em determinadas ocasiões é útil redireccionar a “saída de erro” para um ficheiro pplware@pplware:~$ find find / / -name passwd passwd 2> 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 cat > > /dev/null pplware@pplware:~$ cat cat exp0 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 cat <<.>texto.txt
Num próximo artigo vamos falar sobre pipes e ver mais alguns exemplos. e xemplos. 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 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 constantemente actualizado (ex. (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 cat pplware.txt
Apresentar o conteúdo do ficheiro pplware.txt e ppinto cat pplware.txt 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 cat pplware.txt ppinto > tudo.txt
Acrescentar a informação do ficheiro linux_totos.txt ao ficheiro tudo.txt cat linux_totos.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 standardoutput 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 /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 sob re 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 -u 301 301 -g -g 301 301 -s -s /bin/ /bin/ bash bash -d -d /home/ppinto /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 Directory a ser criada criada para o utilizador)
Nota importante: De 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 : [root@pplware ~] ~]# passwd ppinto
De seguida devemos definir a pasword e confirmar a mesma 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 sudo adduser adduser ppinto Adding user `ppinto' `ppinto' ... Página
40 de 94
Adding new group `ppinto' (1002) 1002) ... Adding new user `ppinto' `ppinto' (1001) with group `ppinto' ... `ppinto' ... Creating home directory `/home/ppinto' `/home/ppinto ' ... Copying files from `/etc/skel' ... `/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 f or the default Full Name [] []:: Pedro Pinto - Pplware Room Number [] []:: 13 Work Phone [] []:: 12321 Home Phone [] []:: 456654 Other [] []:: Is the information correct? [Y/n] 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 d os utilizadores.
Para um utilizador que usa frequentemente a linha de d e 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 m elhor 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 novo_nome= ='comando'
Vamos considerar o seguinte comando como exemplo: Página
42 de 94
sed -e "s/pedro/Pedro/g" "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" "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= ='rm -i' alias cp cp= ='cp -i' alias mv mv= ='mv –i' alias sedpp=’sed -e "s/pedro/Pedro/g" "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 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 pa sswords? 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. 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 cat /etc/shadow /etc/shadow pplware:$$aJGev pplware:$ $aJGev /yi$Vxva4ns3g1 /yi$Vxva4ns3g1 /sjQtay6fF.sbD.m7B7hE0Gu1:15219:0:99999:7::: /sjQtay6fF.sbD.m7B7hE0Gu1:15219:0:99999:7::: ppinto:$$ncgFWWQZyC5bW7JjQgNj3F ppinto:$ $ncgFWWQZyC5bW7JjQgNj3F.xii1x4oHXkE/Yy5M/0gQkSTAcG0:15234:0:99999:7::: .xii1x4oHXkE/Yy5M/0gQkSTAcG0:15234:0:99999:7:::
Resumindo, a informação dos utilizadores é mantida no ficheiro passwd e 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 p reto 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 utilizador es 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 -u 301 301 -g -g 100 100 -s -s /bin/ /bin/ bash bash -d -d /home/ppinto /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 g rupos usando o comando groupadd. Outros comandos passwd – Permite mudar a password de um determinado utilizador Página
48 de 94
pplware@pplware:~$ passwd passwd ppinto ppinto Changing password for user ppinto. New UNIX password:
chfn – Mudar o campo que contém o nome completo do utilizador chfn ppinto chfn ppinto Changing finger information for ppinto. Name [Pedro Pinto] 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 -l ppinto 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 -M 99999 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 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 q ue 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 scp /home/ppinto/pplware.txt [email protected]:/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 f onte. onte. 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 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 tar xvzf 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 cd htop-0.9/ 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 instal
•
./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 p reto 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 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 /home/someuser/tmp each day às 18:30 de cada cada dia. 30 18 * * * rm rm /home/someuser/tmp/* /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 d eve 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 rm /home/user/tmp/* /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 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] network-scripts ]# cat /etc/hosts 127.0.0.1 tiger.pplware.com localhost.localdomain localhost.localdomain ::1
localhost6.localdomain6
localhost
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] network-scripts ]# cat /etc/host.con order hosts,bind hosts,bind
/etc/resolv.conf Neste ficheiro configuramos os servidores de DNS. A directiva search [root@pplware network-scripts] network-scripts ]# cat /etc/resolv.con ; 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] network-scripts ]# cat /etc/sysconfig/netwo /etc/sysconfig/network rk NETWORKING= NETWORKING =yes NETWORKING_IPV6=no NETWORKING_IPV6 =no HOSTNAME=tiger.pplware.com HOSTNAME =tiger.pplware.com GATEWAY=192.168.0.100 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] network-scripts ]#cat /etc/sysconfig/netwo /etc/sysconfig/network-scripts/ifcfg-eth0 rk-scripts/ifcfg-eth0 # Intel Corporation 82545EM G igabit Ethernet Controller (Copper)
DEVICE=eth0:0 DEVICE =eth0:0 BOOTPROTO=static BOOTPROTO =static BROADCAST=192.168.0.255 BROADCAST =192.168.0.255 IPADDR=192.168.0.1 IPADDR =192.168.0.1 NETMASK=255.255.255.0 NETMASK =255.255.255.0 NETWORK=192.168.0.0 NETWORK =192.168.0.0 ONBOOT= 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 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 p ossa 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 chmod +x nome_do_script
ou chmod 755 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 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) p ico) com as seguintes instruçõe s 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 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) $(date)"" echo "Directório corrente : $(pwd) $(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. 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
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 aqui)) find / find / -name -name pplware pplware
Explicação: •
•
/ – permite localizar a partir da raíz da d a 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 d irectório actual,poderíamos usar simplesmente o comando find -name -name pplware pplware
Exemplo 2 – Localizar no directório actual, todos os ficheiros começados por ppl find / find / –name ppl*
Exemplo 3 – Localizar ficheiros que tenha mais de 5 MB find / find / -size -size +5000k +5000k
Exemplo 4 – Procurar o directório PPLWARE a partir da raíz Página
66 de 94
find / find / -type -d -name "PPLWARE"
Exemplo 5 – Localizar e remover todos os ficheiros com extensão .bak, no directório actual find . . -type find -type f f -name "*.bak" -exec rm -f -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 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 sist ema 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 d irectó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 /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 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 car os 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 representar/referenciar um mesmo ficheiro em mais que um directório. d irectó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
–s . Vamos então criar um soft link com o nome pplware_soft para Para criar um soft link basta usar o comando ln
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 139413 -rw-r--r--. 1 root root 139420 lrwxrwxrwx. 1 root root
6 Jan 23 11:48 ppinto_soft -> ppinto 82 Jan 23 12:04 pplware 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 t em um i-node diferente (139420), do ficheiro original (139413), as permissões não são mantidas e o tamanho é também menor que q ue o do ficheiro original. Exemplo 2 : Criar Hard links
Página
71 de 94
Para
criar
um
hard
link
basta
usar
o
comando
ln
. Vamos então criar um ha rd 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 139284 lrwxrwxrwx. 1 root root
82 Jan 23 12:04 ppinto_hard 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 ex iste 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 aqui)). Hoje vamos aprender a usar o editor de texto vim.
Página
72 de 94
Vamos a mais uma viagem no “terminal “t erminal 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 ed itores 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] 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: 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 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 reto”?
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 pacote s : 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 (nov amente 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 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 nano pplware.txt
Como podemos reparar na parte inferior, existem um conjunto de atalhos que q ue nos permitem tirar partido de todas t odas 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. t exto. 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 d a 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 programação/codificação.Para isso, recorrendo ao proprio nano, basta abrir o ficheiro .nanorc nano .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 p ara 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, (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 sa ber 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 voss a 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 ferram entas presentes na shell Linux, o grep. Para quem não sabe, o grep deriva de 3 palavras palavras (global / regular expression / print) e foi criado por Paolo Bonzini, Bonzini , tal como a ferramenta sed, tornandose 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 T odas 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 s er 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' 'palavra' ficheiro ficheiro grep 'string1 string2' ficheiro string2' ficheiro cat outroficheiro| cat outroficheiro| grep 'palavra/frase' command | | grep 'palavra/frase' command command argumento| command argumento| grep 'pplware' grep --color 'pplware' 'pplware' ficheiro ficheiro Exemplos
Procurar de forma recursiva •
Com o seguinte comando, podemos pesquisar em todos t odos os ficheiros do directorio /home/ppinto, a palavra pplware
grep -r "pplware" "pplware" /home/ppinto /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 grep pplware /home/ppinto/ppinto.txt
De referir ainda que o grep tem suporte para expressões regulares, que ir emos 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 ed itores 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 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 p ró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 edito r) 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 d as 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 m ande 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 exec uçã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 f ossem apontados nos comentários. Créditos informações retiradas do tutorial ppware comandos Linux para totós Fonte: https://pplware.sapo.pt/linux/coman https://pplware.sapo.pt/linux/comandos-linux-totos-tutoria dos-linux-totos-tutorial-no34/ l-no34/ Fonte: https://pplware.sapo.pt/tutoriais/coman https://pplware.sapo.pt/tutoriais/comandos-linux-para-totos-tut dos-linux-para-totos-tutorial-no25/ orial-no25/ Fonte: https://pplware.sapo.pt/tutoriais/coman https://pplware.sapo.pt/tutoriais/comandos-linux-para-tots-tutor dos-linux-para-tots-tutorial-n23/ ial-n23/ Fonte: http://www.comandoslinux.com/ http://www.comandoslinux.com/
BOM TRABALHO. Página
94 de 94