Comandos Linux para Totós – Tutorial nº16

Comandos Linux para Totós – Tutorial nº16

Criado por Pedro Pinto em 26 de Setembro de 2011 | 0 comentários

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…

totos

De maneira idêntica à forma como se criam utilizadores, podemos também criar grupos usando o comandogroupadd . 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).

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!

Artigos relacionados

Comandos Linux para Totós – Tutorial nº13

Comandos Linux para Totós – Tutorial nº13

Criado por Pedro Pinto em 17 de Setembro de 2011 | 16 comentários

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!

totos

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 adduserdisponibiliza 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
  • 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' ...
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.

Artigos relacionados

Comandos Linux para Totós – Tutorial nº11

Comandos Linux para Totós – Tutorial nº11

Criado por Pedro Pinto em 10 de Setembro de 2011 | 18 comentários

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!

totos

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)

Operadores para redireccionamento de entradas e saídas

redirect_linux

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.
Artigos relacionados

Arquivado na categoria: Linux, Tutoriais

Comandos Linux para Totós – Tutorial nº12

Comandos Linux para Totós – Tutorial nº12

Criado por Pedro Pinto em 14 de Setembro de 2011 | 31 comentários

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.

totos

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 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 «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

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/

Artigos relacionados

Arquivado na categoria: Linux, Tutoriais

Comandos Linux para Totós – Tutorial nº9

Comandos Linux para Totós – Tutorial nº9

Criado por Pedro Pinto em 25 de Agosto de 2011 | 18 comentários

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.

linux_totos

A estrutura de directórios de um sistema Linux apresenta um formato de árvore, onde a raiz (/) tem o nome de root.

system_00

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
  • /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 modificar
    • /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

man_00

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).

Artigos relacionados

Comandos Linux para Totós – Tutorial nº10

Comandos Linux para Totós – Tutorial nº10

Criado por Pedro Pinto em 27 de Agosto de 2011 | 12 comentários

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!

totos

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:

  • 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)

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?

linux_struct

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.

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

Artigos relacionados

Comandos Linux para Totós – Tutorial nº7

Comandos Linux para Totós – Tutorial nº7

Criado por Pedro Pinto em 18 de Agosto de 2011 | 23 comentários

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.

totos

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     0 1        S<   13:56   0:00 [kthreadd]
root         3  0.0  0.0      0     0 1        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.
  • 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

kill_00

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

Artigos relacionados