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 atual, etc.
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
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)
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
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
O 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
A 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.
Ferramenta
para instalar serviços: tasksel
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
Bom blog, obrigado
ResponderEliminar