Programação

segunda-feira, 18 de abril de 2016

Comandos Linux

INTERPRETADOR DE COMANDOS (shell)
Trabalhar no Linux e utilizar a interface gráfica com certeza é mais agradável, no entanto existem recursos da máquina que só serão possíveis de utilizar se acedermos ao interpretador de comandos (shell).

"shell"- É o programa responsável por interpretar os comandos Linux.

 A shell é o interpretador de comandos ou o terminal de linha de comandos e permite introduzir comandos, através dos quais realizam inúmeras operações num sistema, como por exemplo visualizar lista de ficheiros, copiar ficheiros, criar/apagar diretórios/pastas, saber qual o diretório atualetc.

Comandos  são instruções dadas ao sistema operativo para executar uma determinada tarefa/operação.


ABRIR o TERMINAL DE LINHA DE COMANDOS


 

O GNU/Linux possui diversos tipos de interpretadores de comandos ou diferentes shells, entre eles temos o bash, sh, dash, csh, tcsh, etc. Sendo o mais usado o bash.

Pode consultar as shells disponíveis no seu Sistema Operativo através do comando  cat /etc/shells


Comando cat - muito  utilizado para visualizar o conteúdo de um ficheiro; adicionar conteúdo a um ficheiro;




Atualização do sistema  
sudo apt update      
sudo apt upgrade 

 
COMANDOS GERAIS

Obtenção de ajuda sobre um determinado comando

         man [opção]  nomedocomando

 

Exemplo: man uname
















 

Diretório   /usr/share/man

 Por padrão as páginas do manual Linux encontram-se no diretório /usr/share/man
é dividido em diferentes seções
 -Programas executáveis ou comandos do Shell.
-Chamadas do sistema – rotinas do kernel (mais utilizado por SysAdmin’s).
-Funções de bibliotecas – documentação de bibliotecas do sistema (bastante utilizado por desenvolvedores).
-Arquivos especiais – arquivos usados dentro do diretório /dev.
-Formato e convenções de arquivos – contém o formato de alguns arquivos como o /etc/passwd.
-Jogos – dicas e comandos de jogos existentes no sistema.
-Miscelânea de pacotes – documentação relacionada a pacotes, protocolos etc.
-Comandos administrativos – comandos utilizados pelo root.
Rotinas do Kernel.



date – Permite visualizar informações sobre a data e hora do sistema
cal – Permite ver um calendário relativo ao mês atual


DIGITAR VÁRIOS COMANDOS
cal ; date  (separado por )  comandos em simultâneo   


who – mostra os utilizadores que estão a trabalhar no sistema
whoami – (quem sou eu?) Permite saber qual o nosso utilizador

pwd – Permite saber qual o diretório atual (“print current/working directory)

id – Permite saber a “identidade” de um utilizador

uptime – basicamente este comando permite saber há quanto tempo o sistema está ligado

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

uname – Permite saber algumas informações sobre o sistema como por exemplo, a versão kernel, arquitetura do processador e do sistema, etc. 

hostname – permite saber o nome da nossa máquina

hostnamectl –nome e ID da máquina, Boot ID, versão Kernel, versão Sistema Operativo

lsb_release -a  - informações todas sobre a distribuição Linux utilizada

ifconfig  ou ip a  visualizar informações do endereço Ip, máscara de rede, etc)

ip addr ver configurações 

sudo netplan apply  forçar aplicação das configurações da rede 
 

nmtui  configurar a rede  



MOVIMENTAÇÃO ENTRE DIRETÓRIOS


cd (change directory) permite mudar de directório/pasta

     cd NomePasta        (Entrar na Pasta) 
     cd ..       (Sair da Pasta)
     cd          (vai para o diretório pessoal do utilizador)
     cd /         (vai para o diretório raiz)


    
LISTAGEM DE FICHEIROS E DIRETÓRIOS  
ls [ opções ] [ path ] – list statistics, a lista todos os ficheiros e pastas contidos no directório.

Opções do Comando ls
ls -a lista todos os ficheiros (inclusive os ocultos) de um directório.
ls -l listagem dos ficheiros e diretórios com detalhes 
ls -h mostra o tamanho dos ficheiros em Kbytes, Mbytes, Gbytes. 
ls -R lista directórios e sub-directórios recursivamente. 
ls -r inverte a ordem de classificação.
ls -t classifica pela data de alteração. 

ll ou ls -la - comando para listar directórios e ficheiro com visualização de detalhes, incluindo as permissões dos ficheiros


LISTAR com paginação
ls -l | more
 
Com várias opções ls -laR
Outra localização: ll  /etc/ssh      
                   ls -l /home


visualizar o conteúdo de um ficheiro
         cat  file1 
              cat file1  |  less       (página a página)
              cat file2  >>  file1     (file1 é acrescentado ao file1)

less  - utilizado para visualização de conteúdo página a página 
less file1

tail visualiza o conteúdo final de um ficheiro  
       tail file1
       tail -20 file1      (últimas 20 linhas do ficheiro)


passwd - mudar a password do utilizador
clear -  limpa o ecrã


CRIAR DIRETÓRIOS 

mkdir  (make directory) – permite criar directórios/pastas
           
Comando: mkdir NomePasta


Cria múltiplos diretórios  (mkdir -p)

     mkdir   -p  /pasta1/subpasta


REMOVER DIRETÓRIOS  
                   rmdir (remove directory)
      rmdir NomePasta
      rmdir pasta1 pasta2


CRIAR FICHEIROS

     touch permite criar ficheiros vazios
     touch NomeFicheiro1   
     touch file1  file2      (cria 2 ficheiros vazios )


Enviar Texto para ficheiros

echo "Texto a enviar" file1   (substitui conteúdo do ficheiro)
echo "Texto a enviar" >> file1   (ACRESCENTA conteúdo do ficheiro)


Remover  um ou mais ficheiros   
           rm file1  file2 



Remove directórios com ficheiro(s) ou subdirectório(s)      rm -r  pasta             (cuidado!)


 

CÓPIA DE FICHEIROS E DIRETÓRIOS
cp   -  cópia de ficheiros  
cp  file_origem  file_destino          (file_destino   é a cópia do  file_origem )


MOVIMENTAR OU RENOMEAR  FICHEIROS E DIRETÓRIOS

mv   - move ou renomeia ficheiros
 mv  file_origem    file_final        ( file_origem deixa de existir e passa a chamar-se file_final)
mv  file1  /pasta1/file2       (move ficheiro file1 para a pasta1 com nome file2)


Desligar o sistema  

poweroff
sudo halt      

shutdown -h now     

shutdown  -h 2         (daqui a 2 minutos) 

     para anular o comando anterior Ctrl-C


Terminar Sessão      exit ou logout   

Reiniciar  Sistema  reboot



Editores de texto 

para trabalhar com ficheiros de configuração

vi    ou     nano



Editor de Texto:   nano

Criar um ficheiro:  touch nomeficheiro

Editar o ficheiro:  nano nomeficheiro


gravar:  ctrl+o     sair:  ctrl+x



Editor de Texto: vi  


Criar um ficheiro:  touch nomeficheiro

Editar o ficheiro:   $ vi nomeficheiro

Dentro do Editor, digitar tecla "i" para ativar a escrita de texto;
inserir texto a partir do cursor: digitar tecla "a"
Escrever o texto pretendido

Gravar o ficheiro
carregar tecla "ESC"  :wq (guarda ficheiro e sai)  

Sair do editor sem salvar ficheiro ("ESC:q! )  
Undo ("ESC" u)
Visualizar números das linhas ("ESC"  :set number)



VISUALIZAR SHELL do utilizador

cat /etc/passwd      mostra todos os utilizadores existentes
cat /etc/passwd | grep nomeutizador    filtrar apenas o utilizador 





| (PIPE)
O Pipe é um comando no Linux que permite usar dois ou mais comandos de forma que a saída de um comando sirva como entrada para o próximo


MUDAR de SHELL
chsh








ATIVAR BASH
/bin/bash


Comando SUDO
sudo é a "palavra" que permite um determinado utilizador execute vários comandos como super utilizador (root)  

MUDAR de UTILIZADOR

su permite trocar de utilizador 

su ester    troca para o utilizador ester

sudo su     se está num utilizador troca para o utilizador root
            Atenção: a trabalhar no diretório /home/ester                               





prompt do utilizador root é identificado pelo símbolo "#" e a dos restantes utilizadores pelo símbolo "$"


Diretório Padrão
/home/ester#  (a trabalhar na raiz do utilizador ester)

~# (raiz do diretório do utilizador root/root

/# (raiz do sistema de diretórios do Linux)  


se aparece  ~  é porque está no diretório padrão

se não aparece  ~  é porque não está no diretório padrão  

~$ (raiz do diretório do utilizador ester)  /home/ester




ALTERAÇÃO DO PROMPT DA LINHA DE COMANDOS







SETSETAS

Utilizando as teclas Seta para cima / Seta para baixo pode-se recuperar comandos digitados anteriormente.
CTRL+A move o cursor para o início da linha de comandos.
CTRL+E move o cursor para o fim da linha de comandos.


LOGIN e LOGOUT

Login – entrada no sistema através da introdução do nome do utilizador e da password
Logout – saída do sistema. Também pode ser feita utilizando os comandos ctr + d ou quando o sistema é reiniciado ou desligado.

CARACTERES ESPECIAIS
*  Substitui um ou mais caracteres
?  Substitui apenas 1 caracter






 Instalar uma aplicação:   
 sudo apt install nomeprograma

Remover uma aplicação:  
sudo apt remove nomeprograma
sudo apt --purge remove nomeprograma


Snaps
São pacotes de software que funcionam por toda a generalidade de distribuições Linux.  

Exemplo lista apresentada pela Canonical:Spotify, Notepad++, VisualStudioCode, Libreoffice, https://snapcraft.io/store 

O Ubuntu (como muitas distribuições Linux modernas) inclui a fonte de emojis Noto Color do Google como parte da instalação padrão. 

Emote is a modern emoji picker for Linux 🚀. 


If you’re running Ubuntu 16.04 LTS (Xenial Xerus) or later, including Ubuntu 18.04 LTS (Bionic Beaver) and Ubuntu 20.04 LTS (Focal Fossa), you don’t need to do anything. Snap is already installed and ready to go.




Ferramenta para instalar serviços:     tasksel    

sudo apt install tasket



 

Ferramenta Servidor SSH:    

sudo apt  openssh-server openssh-client


Dar permissão de acesso remoto via SSH

   Abrir ficheiro sshd_config

     sudo nano /etc/ssh/sshd_config 

   Ativar opção PermitRootLogin yes

   

               


_____________________________________________________________________

PERMISSÕES DE FICHEIROS - comando chmod

Quando o comando ls -l é executado podemos obter a seguinte informação relativa aos direórios ou ficheiros





observamos que o ficheiro
abc.txt criado foi pelo root
e que o ficheiro esterfile2  foi criado pelo utilizador ester

Podemos observar os primeiros 10 caracteres
 - rw-  r--  r-- 
   dono  grupo outros

Primeiro caracter diz-nos se é um ficheiro (-), diretório (d) ou um link (l)








 





Tipo de Permissão:     Dono   Grupo  Outros


r (leitura ) tem valor 4
w (escrita) tem valor 2 ;
x (execução) tem valor 1

Para dar total permissão ao dono do ficheiro,  ou seja permissão de leitura, de escrita e de execução do ficheiro soma-se os valores e atribuiu-se o valor 7
Dono (4+2+1=7), grupo (4+2+1=7) e outros (4+2+1=7)

Assim, para dar total permissão ao dono, ao grupo e aos outros users, do ficheiro abc.txt deve-se escrever o seguinte comando:
 chmod 777 abc.txt

Alterar a permissão do ficheiro abc.txt:  dono (rw) Grupo (rw) e outros (r): 
Dono (4+2=6), grupo (4+2=6) e outros utilizadores(4)
chmod 664 abc.txt

Assim temos









Alterando Permissões  chmod   (2ºforma)

Após a criação do ficheiro ou directório somente o seu dono e o root podem fazer a mudança das permissões, podendo tanto conceder como retirar permissões.

Em geral este comando é mais utilizado pelo administrador do sistema, para permitir que outros utilizadores possam utilizar determinado ficheiro ou ter acesso a algum directório.

         = Concede as permissões definidas diretamente

 


Exemplos:

1)      Permitir que todos os utilizadores que pertençam ao grupo dos ficheiros tenham permissões de leitura em todos os ficheiros do diretório atual:

 chmod g+r  *

2)      Retirar permissão de leitura do ficheiro teste.txt para os outros utilizadores:

chmod o-r teste.txt

3)      Incluir permissão de execução do ficheiro teste.txt para o dono e outros utilizadores;

chmod uo+x teste.txt

4)      Incluir permissão de execução do ficheiro teste.txt para o dono, grupo e outros:

chmod a+x teste.txt

5)      Definir somente a permissão de leitura e escrita do ficheiro teste.txt para todos os utilizadores:

chmod a=rw teste.txt



 

 Alterar o Dono e Grupo

 Todas as vezes que um ficheiro ou diretório é criado, o dono e o grupo é relacionado com o utilizador que o criou.

Quando é preciso aumentar o nível de segurança sobre um ficheiro ou diretório, ou é necessário ter um diretório partilhado entre um grupo, o root pode fazer a alteração do dono e/ou do grupo deste ficheiro/diretório.

Para trocar o dono de um ficheiro usa-se o comando chown.


Ficheiros     

            chown novouser  nomeficheiro

 Exemplo:     chown  root    aaa.txt


Alterar dono de Diretórios e seus conteúdo

Caso a alteração seja num diretório é seja necessário mudar o dono de todo o seu conteúdo  pode-se usar opção -R (antes ou depois)

chown root  -R nomepasta 


A troca do grupo é parecida com a troca do dono, e para isto utiliza-se o comando chgrp.

Utilizando novamente o ficheiro aaa.txt, o grupo do mesmo poderia ser alterado da seguinte forma: chgrp novogrupo  aaa.txt

 

Para trocar o grupo do diretório e todo o seu conteúdo usa-se: chgrp novogrupo pasta -R

 





1 comentário: