Comandos básico do Shell do Linux ➚
INDEX
-
Comandos de Gestão de Arquivos e Pastas
- ls - Comando para listar arquivos e pastas
- which - mostra o caminho completo dos comandos
- cd - Comando para mover-se entre os diretórios
- ln - Comando para criar links simbólico
- cp - Comando para copiar arquivos ou pastas
- dd - Clona um dispositivo de bloco, convertendo e formatando de acordo com os operandos.
- e2image - Clona um dispositivo de bloco cujo o formato de arquivo seja ext2, ext3 e ext4
- gparted - Programa usado para criar partição, pode ser usado para clonar partição de forma muito simples e visual
- mount - monta um sistema de arquivos
- chmod - altera os bits do modo de arquivo
-
- html2ps - Conversor de html para ps
- latex2html - Conversor de LaTeX para html
- lynx - Navegador web baseado em modo de texto
- Chromium - É um projeto de navegador web de código aberto desenvolvido pela Google
- sitecopy - Aplicação que nos permite manter fácil e remotamente web sites
- weblint - Verificador de sintaxes e de estilos html
CONTEÚDO
-
Introdução:
-
Este documento descreve com exemplos os comandos que costumo usar no dia a dia para a manutenção do sistema.
-
A estrutura do sistema de arquivos do Linux é definida por um padrão de mercado chamado Filesystem Hierarchy Standard ou FHS, criado pela comunidade Linux em 1994 e mantida pela Linux Foundation. Atualmente a FHS está na versão 3.0. As distribuições não são obrigadas a seguir este padrão, mas elas entendem a importância da localização dos arquivos e diretórios padronizados. Veja mais...
-
Para compreender a expressão nome do arquivo fonte ou nome do arquivo destino é necessário seguir a sintaxe de nome de arquivo para a arquitetura linux.
-
Use qualquer caractere na página de código atual para um nome, incluindo caracteres Unicode e caracteres no conjunto de caracteres estendido (128–255), exceto os seguintes caracteres porque são interpretados de forma especial:
-
< (menor que)
- Apesar de permitido, não deve ser usado porque é usado por aplicativos tipo shell para redirecionar entrada, quando o aplicativo aceita entrada padrão;
-
> (maior que)
- Apesar de permitido, não deve ser usado porque é usado para redirecionar a saída de um comando;
-
: (dois-pontos)
- Apesar de permitido, o mesmo deve ser evitado porque o outros sistemas operacionais no qual o linux interage usa como separador de dispositivo ;
-
" (aspas duplas)
- Apesar de permitido, não deve ser usado, porque é usado para separar o nome do arquivo, quando o mesmo tem caracteres especiais no nome do arquivo;
-
/ (barra)
- Não é permitido porque é usada como separar o caminho na arvore de diretórios;
-
| (barra vertical ou pipe)
- Apesar de permitido no nome de arquivo, o mesmo deve ser evitado, porque define redirecionamento de software em aplicativos tipo shell;
-
? (ponto de interrogação)
- Apesar de permitido deve ser evitado porque o shell usa como caractere coringa que representa qualquer caractere na posição onde o mesmo apareça na linha de comandos de aplicativos tipo shell;
-
* (Asterisco)
- Apesar de permitido no linux, o mesmo deve ser evitado, porque é usado como coringa, ou seja: representa uma sequência de caracteres antes ou depois que ele aparece no nome do arquivo nos parâmetros de entrada dos programas tipo shell.
-
. (Ponto)
- É permitido, porém deve ser evitado porque quando usado na primeira posição o arquivo será interpretado como invisível, outros sistemas operacionais que o linux interage usa o ponto para separar o nome do arquivo e o nome da extensão do arquivo;
-
" " (Espaço em branco)
- É permitido, mas como também é um separador de parâmetros de linha de comando, deve-se delimitar o nome com aspas (") para diferenciar dos parâmetros dos aplicativos tipo shell. Veja a vídeo aula...
-
-
O comprimento de uma especificação de arquivo é limitado.
-
O comprimento máximo de um nome de arquivo é 255 bytes. O comprimento máximo combinado de nome de arquivo (nome de todas as pastas anteriores a pasta no qual o arquivo pertença) é de 4096 bytes. Esse comprimento corresponde ao PATH_MAX que é suportado pelo sistema operacional. A representação Unicode de um caractere pode ocupar vários bytes, de modo que o número máximo de caracteres que englobam um caminho e nome de arquivo possa variar. A limitação real é o número de bytes nos componentes de caminho e arquivo, que pode corresponder a um número igual de caracteres.
-
Para operações de recuperação e arquivamento, o comprimento máximo que pode ser especificado para um caminho e nome de arquivo (combinado) permanecerá em 1024 bytes.
-
-
Importante:
- Os caracteres <>|:()&;#?* apesar de aceitos, normalmente precisam ser "escapados" com barra invertida, ou delimitados com aspas em linha de comando:
- Os caracteres espaço em branco e os caracteres acentuados apesar de serem permitidos, é bom evitar, porque quando o arquivo é visualizado em outro idioma, esses caracteres podem aparecer de forma errada se a página de código do gerenciador de arquivo for diferente da página de código no qual o mesmo foi criado.
- Apesar de permitir quase todos os caracteres, é bom usar somente os seguintes caracteres abaixo para evitar incompatibilidade quando se usa o sistema de arquivos NTFS:
- a-z
- A-Z
- 0-9
- underline (_)
- traço (-)
- ponto (.)
-
Exemplo de nome de arquivos:
- ./bkp.sh
- ../bkp.sh
- ~/bkp.sh
- /home/paulosspacheco/bkp.sh
-
-
Atalho para criar um terminal de comandos:
- Teclas Ctrl+Alt+T
-
Comandos de Gestão de Arquivos e Pastas
-
ls - O comando ls é usado para listar arquivos ou diretórios (pastas):
-
Sintaxe: $ ls -opções
# EXEMPLOS # Lista nome dos arquivos, nome dos links e nome das pastas em várias colunas ls # Lista o atributos, nome do dono, nome do grupo, data, hora e nome do arquivo. ls -l
-
-
which - Mostra o nome do aquivo e local (pasta) onde o arquivo foi localizado
-
Sintaxe: $ which nome_arquivo_no_path
# EXEMPLO # Mostra o nome da pasta onde o jva está instalado. which java > /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java
- Nota:
- Só procura nas pastas registrados em /etc/environment ou ~/.bashrc.
- Nota:
-
-
cd - O comando cd é usado para mover-se entre os diretórios ou seja: sair de um diretório e ir para o destino passado pelo parâmetro:
-
Sintaxe: $ cd NomeDaPastaDestino
# EXEMPLOS # move-se para a pasta ~/ ou seja: Pasta raiz do usuário. cd # Move-se para a pasta passado por NomeDir. # Para nome dia igual ~ (Pasta raiz do usuário) então: cd ~ # Move para a pasta /usr/lib cd cd /usr/lib
-
-
ln - O comando ln -s cria um links simbólico para simplificar o acesso a arquivos que estão com nome da pasta muito grande ou esteja em um hd diferente.
-
Sintaxe: ln -s "target file" "Symbolic filename"
# EXEMPLO: # Cria o link pastaRaisDoUsuarioLogado para a pasta ~/ ln -s ~/ pastaRaisDoUsuarioLogado # Criar o link lib para a pasta /usr/lib ln -s /usr/lib lib # Cria o link environment.txt para o arquivo ~/.bashrc ln -s ~/.bashrc environment.txt
-
Notas:
- O segundo parâmetro "target file" precisa ser um nome de arquivo ou pasta válido;
- O terceiro parâmetro "Symbolic filename" precisa ser um nome diferente de vazio e não pode existe um arquivo ou pasta com mesmo nome do link a ser criado;
- Ao apagar um link os dados apontados por ele não será apagado;
- Caso o link seja copiado para uma pasta de nome diferente da pasta no qual o mesmo foi criado, esse link se torna inválido;
- O modo de acesso ao link criado, será: leitura, gravação e execução para o usuário dono, grupo e outros usuários, porém o modo de acesso para onde ele aponta, não é alterado.
-
-
cp - O comando cp copia um arquivo ou pasta para outra pasta ou arquivo.
-
Parâmetros:
-
O atributo do arquivo é levado para a cópia;
-
-R : jj
-
-r : Copia diretórios recursivamente;
-
-i : Pergunta se quer subscrever caso o arquivo existe.
- Caso exista pressione y para confirmar ou enter para não gravar;
-
-uprR : Usado para atualizar o diretório destino com os novos arquivos do diretório de origem.;
-
-p : Usado para preservar quando possível o atributo de origem;
-
-v : (verbose) explica o que está sendo feito
# EXEMPLOS # Copia o arquivo ~/.bashrc para o arquivo ~/.bashrc.txt cp ~/.bashrc ~/.bashrc.txt # Copia o arquivo ~/.bashrc para a pasta ~/tmp cp ~/.bashrc ~/tmp # copiar diretórios recursivamente sudo cp -R /etc ~/tmp # Copia a toda a pasta /etc e subpastas para a pasta ~/tmp perguntado se # quer subscrever caso algum arquivo já exista. # Caso exista pressione y para confirmar ou enter para não gravar sudo cp -i -R /etc ~/tmp # O parâmetro -f é usado caso um arquivo de destino existente não puder ser aberto, remove-o e tente novamente (redundante se a opção -n for usada cp -f ~/.bashrc ~/tmp # Atualiza o diretório ~/tmp com os arquivos diferentes da pasta /etc criado depois da ultima cópia. Cópia incremental. # Resumindo: Só será copiado os arquivos com data superior a data da cópia ou se a cópia não existe o arquivo de origem. sudo cp -upvR /etc ~/tmp
-
-
Script bkp.sh para fazer backup incremental, onde é passado nome de origem (param 1) e destino (param 2):
#!/bin/bash # Program bkp.sh # Exemplo de uso # $ ./bkp.sh /Documentos /tmp origem="$1" destino="$2" echo "Atualiza o diretório $destino com os arquivos diferentes da " echo "pasta $origem criado depois da ultima cópia." echo "Cópia incremental". sudo cp -upvrR $origem $destino result_cp="$?" if [ $result_cp != 0 ]; then echo "algo errado na cópia" exit 1; fi
-
O exemplo de uso do script acima para copiar a pasta ~/Documentos para o destino passado pelo parâmetro 1
# Copia a pasta Documentos para a pasta temporária na área do usuário. ./bkp.sk ~/Documentos ~/tmp
-
O script bkpdocs.sh executa a mesma tarefa que o script do item 3 acima.
#!/bin/bash # Program bkpDocs.sh # Exemplo de uso: # ./bkpdocs.sh /PastaDestino origem="~/Documentos" destino="$1" if [-z $destino ]; then echo "O destino precisa ser informado" exit 1 fi echo "Atualiza o diretório $destino com os arquivos diferentes da " echo "pasta $origem criado depois da ultima cópia." echo "Cópia incremental". sudo cp -upvR $origem $destino result_cp="$?" if [ $result_cp != 0 ]; then echo "Algo errado na cópia" exit 1; fi
-
-
- dd : Clona um dispositivo de bloco, convertendo e formatando de acordo com os operandos. Veja mais...
-
Parâmetros:
- ‘if=/dev/sdax‘ : Representa o disco de origem a ser copiado;
- ‘of=/dev/sdbx‘ : Representa o disco de destino que vai receber a cópia;
- 'bs=4096' : Representa o tamanho do bloco (número de bytes a serem lidos/gravados de cada vez).
- conv=noerror,sync representa o parâmetro de conversão.
- A opção ‘noerror’ : permite que a ferramenta continue copiando os dados mesmo que encontre erros.
- E a opção ‘sync’ : permite usar operações de Entrada/Saída sincronizadas.
- 'status=progress' : Mostra em que posição está a cópia.
-
Exemplos de backup de todo o disco rígido para uma outra unidade:
# ‘if=/dev/sda‘ : representa o disco de origem a ser copiado; # ‘of=/dev/sdb‘ : representa o disco de destino que vai receber a cópia; sudo dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror,sync status=progress
-
Exemplos de backup da partição sda1 para sdb1:
# Copia a partição sda1 para sdb1 mantendo a mesma formatação. sudo dd if=/dev/sda1 of=/dev/sdb1 status=progress # Copia a partição sda1 para sdb1 usando os parâmetros 4096 e noerror,sync: sudo dd if=/dev/sda1 of=/dev/sdb1 bs=4096 conv=noerror,sync status=progress
-
Exemplos de backup da partição sda1 para o arquivo sda1.iso:
# Copia a partição sda1 para sdb1 mantendo a mesma formatação. sudo dd if=/dev/sda1 of=sdb1.iso status=progress # Copia a partição sda1 para sdb1 usando os parâmetros 4096 e noerror,sync: sudo dd if=/dev/sda1 of=sdb1.iso bs=4096 conv=noerror,sync status=progress
-
-
e2image - Clona um dispositivo de bloco cujo o formato de arquivo seja: ext2, ext3 e ext4
- O objetivo do programa e2image é salvar metadados críticos do sistema de arquivos ext2/ext3/ext4 em um arquivo de imagem do dispositivo.
- Para clonar uma partição não montada usa-se as opções -ra e -p. Veja o exemplo de como clonar a partição não montada /dev/sdb1 para /dev/sdb2:
# A opção -a copia os arquivos também além sudo e2image -ra -p '/dev/sdb1' '/dev/sdb2'
-
gparted - Programa usado para criar partição, pode ser usado para clonar partição de forma muito simples e visual.
-
Para clonar uma partição siga os seguintes passos:
-
Instale o programa gparted com o comando abaixo:
# Atualiza a lista do apt-get sudo apt update # Instala o programa gparted sudo apt install gparted
-
Executa o programa gparted com o comando abaixo
-
-
-
mount - Monta um sistema de arquivos
-
Exemplo de montagem de pasta compartilhada usando o protocolo samba do windows:
-
Com domínio:
# mount -t cifs <ORIGEM> <DESTINO> -o user=<USUARIO>,password=<SENHA>,domain=<DOMINIO> mount -t cifs //192.168.15.3/publico /mnt/backup/ -o user=paulosspacheco,password=1234,domain=itms
-
Sem domínio:
# mount -t cifs <ORIGEM> <DESTINO> -o user=<USUARIO>,password=<SENHA> mount -t cifs //192.168.15.3/publico /mnt/backup/ -o user=paulosspacheco,password=1234
-
-
Notas:
- mount: Comando utilizado para realizar montagens no Linux.
- -t: Tipo de montagem. No nosso exemplo para acessar as pastas compartilhadas no Windows, utilizamos o tipo cifs.
- origem: O caminho de origem do compartilhamento de rede. Ex: //maquina01/publico ou //192.168.50.3/publico.
- destino: O ponto de montagem onde será montado o compartilhamento Ex: /mnt/backup.
- -o: Parâmetro utilizado para passar outras opções ao comando mount como por exemplo:
- user: Nome do usuário do domínio que tem permissão de leitura e gravação na pasta de origem compartilhada.
- password: Senha do usuário informado.
- domain: Nome do Domínio em que a máquina de origem esta inserida.
-
Exemplo de montagem de pasta compartilhada usando o protocolo NFS:
-
Usando o usuário logado na máquina local e no servidor com mesmo login e senha:
# sudo mount <ORIGEM> <DESTINO> # sudo mount host_ip:/var/nfs/share ~/LnxMint_Server_Share sudo mount 192.168.15.3:/var/nfs/share ~/LnxMint_Server_Share
-
Notas:
- mount: Comando utilizado para realizar montagens no Linux.
- origem: O caminho de origem do compartilhamento de rede. Ex: 192.168.15.3:/var/nfs/share.
- destino: O ponto de montagem onde será montado o compartilhamento Ex: ~/LnxMint_Server_Share
-
-
-
chmod altera os bits do modo de arquivo
-
Sintaxe:
-
chmod -R ZZZ (+ ou - pu) YYY ./
-
-R significa:
- Informa ao chmod para altera o flag de todas as subpasta dentro da pasta corrente (./)
-
Z significa: Tipo de usuários, onde:
- u = para usuário proprietário do arquivo
- g = para grupo usuários de acesso ao arquivos
- o = para outros usuários não registrados no sistema
- a = para todos os usuários
-
Y significa: tipo de operação, onde:
- x = Execução
- r = Leitura
- w = Escrita
-
-
-
Exemplo:
# Permite que usuários, grupo e outros executem, leem e gravem todos arquivos da pasta. sudo chmod -R ugo+xrw ./ # Não permite em todos arquivos da pasta, que usuários, grupo e outros executem e gravem os arquivos . sudo chmod -R ugo-xw ./ # Permite em todos arquivos da pasta e subpastas que outros usuários só podem ler os arquivos. sudo chmod -R o=r ./ # Permite em todos arquivos da pasta e subpastas que grupo de usuários só podem ler e gravar os arquivos. sudo chmod -R g=rw ./
-
-
setuid : Define a identidade do usuário
-
chgrp: Mudar o grupo de um arquivo ou diretório
-
chown: Mudar o dono ou grupo de um arquivo ou diretório, vem de change owner
-
chgrp: Mudar o grupo de um arquivo ou diretório
-
cmp: Compara dois arquivos
-
comm: Seleciona ou rejeita linhas comuns a dois arquivos selecionados
-
crypt: Encripta ou Descripta arquivos (apenas CCWF)
-
diff: Compara o conteúdo de dois arquivos ASCII
-
file: Determina o tipo de arquivo
-
grep: Procura um arquivo por um padrão, sendo um filtro muito útil e usado, por exemplo um cat a.txt | grep ola irá mostrar-nos apenas as linhas do arquivo a.txt que contenham a palavra “ola”
-
gzip: Comprime ou expande arquivo
-
lsof: Lista os arquivos abertos, vem de list open files
-
mkdir: Cria uma diretório, vem de make directory”
-
mv: Move ou renomeia arquivos ou diretórios
-
pwd: Mostra-nos o caminho por inteiro da diretório em que nos encontramos em dado momento, ou seja um pathname
-
quota: Mostra-nos o uso do disco e os limites
-
rm: Apaga arquivos, vem de remove, e é semelhante ao comando del no MS-DOS, é preciso ter cuidado com o comando rm * pois apaga tudo sem confirmação por defeito
-
rmdir: Apaga diretório, vem de remove directory
-
stat: Mostra o estado de um arquivo, útil para saber por exemplo a hora e data do último acesso ao mesmo
-
sync: Faz um flush aos buffers do sistema de arquivos, sincroniza os dados no disco com a memória, ou seja escreve todos os dados presentes nos buffers da memória para o disco
-
sort: Ordena, une ou compara texto, podendo ser usado para extrair informações dos arquivos de texto ou mesmo para ordenar dados de outros comandos como por exemplo listar arquivos ordenados pelo nome
-
tar: Cria ou extrai arquivos, muito usado como programa de backup ou compressão de arquivos
-
tee: Copia o input para um standard output e outros arquivos
- O exemplo abaixo verificará a linha do arquivo file1.txt, gerar o resultado no terminal e salvar no file2.txt.
wc -l file1.txt | tee file2.txt
-
tr: Traduz caracteres
-
umask: Muda as proteções de arquivos
-
uncompress: Restaura um arquivo comprimido
-
uniq: Reporta ou apaga linhas repetidas num arquivo
-
wc: Conta linhas, palavras e mesmo caracteres num arquivo
wc -l file1.txt | tee file2.txt
-
Redirecionares
-
>> Transfere a saída de um comando para a entrada do comandos após ele.
ls -l >> ""Lista de arquivo.txt""
-
...
-
-
apropos: Localiza comandos por pesquisa de palavra-chave
-
find: Localiza arquivos, como por exemplo: find . -name *.txt -print, para pesquisa de arquivos de texto a partir da pasta atual
-
Sintaxe
-
find ./ -type d -iname 'NomeDaPasta'
# find <startingdirectory> <opções> <termo de busca> find ./ -type d -iname 'shell'
-
-
Para configurar o comando finddir para que faça pesquisa a partir da pasta atual:
-
Editar o arquivo ~/.bashrc
Editar o arquivo xed ~/.bashrc
-
No final do arquivo adicionar a linha a seguir:
alias finddir="find './' -type d -iname"
-
-
Referências
-
-
info: Abre o explorador de informações
-
Install : Copie arquivos e defina atributos, copie arquivos enquanto define seus modos de permissão e, se possível, seu proprietário e grupo.
- Sintaxe:
- install [options]... SOURCE DEST
- install [options]... SOURCE... DIRECTORY
- install -d [options]... DIRECTORY...
- Sintaxe:
-
-
Comandos de Ajuda e Documentação
-
man: Manual muito completo, pesquisa informação acerca de todos os comandos que necessitemos de saber, como por exemplo man find
-
whatis: Descreve o que um determinado comando é/faz
-
whereis : Localizar a página de ajuda (man page), código fonte, ou arquivos binários, de um determinado programa
-
-
Comandos de Comunicações
-
mail: Enviar e receber emails
-
mesg: Permitir ou negar mensagens de terminal e pedidos de conversação (talk requests)
-
pine: Outra forma de enviar e receber emails, uma ferramenta rápida e prática
-
talk: Falar com outros utilizadores que estejam logados no momento
-
write: Escrever para outros utilizadores que estejam logados no momento
-
-
Comandos de Edição de Texto
-
emacs: Editor de texto screen-oriented
-
pico: Editor de texto screen-oriented, também chamado de nano
-
sed: Editor de texto stream-oriented
-
vi: Editor de texto full-screen
-
vim: Editor de texto full-screen melhorado (vi improved)
-
-
>Exibição ou Impressão de Arquivos
-
cat: Mostra o conteúdo de um arquivo, como o comando type do MD-DOS.
-
Exemplo 01
-
concatenar nome de arquivos arquivos:
cat a.txt b.txt > c.txt
-
-
Exemplo 02
-
O comando abaixo realiza uma série de operações com texto. Vou explicar cada parte em notas abaixo:
# Move-se para a pasta /var/lib/dpkg/triggers/ cd /var/lib/dpkg/triggers/ cat File | cut -d" " -f 2 | uniq -c
- Notas
- cat File: Isso basicamente imprime o conteúdo do arquivo chamado "File" no terminal. O comando cat é usado para concatenar e exibir arquivos de texto.
- cut -d" " -f 2: Este comando corta o texto usando o espaço como delimitador (-d" ") e seleciona o segundo campo (-f 2). Portanto, ele extrai o segundo item de cada linha do texto.
- uniq -c: Este comando remove linhas duplicadas consecutivas do texto e conta quantas vezes cada linha única aparece. O flag -c exibe o número de ocorrências de cada linha única.
- Assim, juntando todas as partes, o comando completo faz o seguinte:
- Lê o conteúdo do arquivo "File".
- Extrai o segundo campo de cada linha (presumivelmente as linhas estão separadas por espaços).
- Notas
-
-
-
fold: Encurta, ou seja, faz um fold das linhas longas para caberem no dispositivo de output
-
head: Mostra as primeiras linhas de um arquivo, como por exemplo com head -10 a.txt, ou usado como filtro para mostrar apenas os primeiros x resultados de outro comando
-
lpq: Examina a spooling queue da impressora
-
lpr: Imprime um arquivo
-
lprm: Remove jobs da spooling queue da impressora
-
more: Mostra o conteúdo de um arquivo, mas apenas um ecrã de cada vez, ou mesmo output de outros comandos, como por exemplo ls | more
-
less: Funciona como o more, mas com menos features, menos características e potenciais usos
-
page: Funciona de forma parecida com o comando more, mas exibe os ecrãs de forma invertida ao comando more
-
pr: Pagina um arquivo para posterior impressão
-
tail: Funciona de forma inversa ao comando head, mostra-nos as últimas linhas de um arquivo ou mesmo do output de outro comando, quando usado como filtro
-
zcat: Mostra-nos um arquivo comprimido
-
xv: Serve para exibir, imprimir ou mesmo manipular imagens
-
gv: Exibe arquivos ps e pdf
-
xpdf: Exibe arquivos pdf, usa o gv
-
-
Comandos de Transferência de Arquivos
-
ftp: Vem de file transfer protocol, e permite-nos, usando o protocolo de transferência de arquivos ftp, transferir arquivos entre vários hosts de uma rede, como a um servidor de ftp para enviar ou puxar arquivos
-
- rsync: Sincroniza de forma rápida e flexível dados entre dois computadores. Veja mais...
-
Sintaxe:
-
Cópia para máquina local:
- rsync [parâmetros] [source] [destination]
-
Cópia para máquina remotas:
- rsync [parâmetros] [source] [user]@[host]:[destination]
-
-
Parâmetros:
- -a : --archive O modo de arquivamento é igual a -rlptgoD (sem -H,-A,-X).
- -r : Copia a pasta ~/duplicate/ para a pasta ~/original/* recursivamente
- -R : Copia deve ter o nome original e não o nome relativo
- -z : Comprime os dados dos arquivos antes de enviá-los
- -v : Mostra a versão do rsync ao iniciar a cópia.
- -h : output num formato legível para humanos.
- -l : Quando links simbólicos forem encontrados, recrie o link simbólico no destino.
- -i : Copia links simbólicos como links simbólicos.
- -u : Força o rsync a ignorar todos os arquivos existentes no destino e cuja hora de modificação seja mais recente que o arquivo de origem.
- -n : Modo “dry run” – executa uma tentativa de copiar dados sem realmente copiar qualquer arquivo.
- -P ou --progress : Esta opção diz ao rsync para imprimir informações mostrando o progresso da transferência.
- -p : Preserva as permissões.
- -t : Preserva datas
- -g : Preserva o grupo.
- -o : Preserva o dono. Precisa de root.
- -D : --devices --specials Preservar dispositivos (somente superusuário) +arquivos
- --delete : Exclui arquivos no diretório de destino se eles não existirem no diretório de origem.
# Copia todas as pastas do local ~/original/* para a pasta ~/duplicate/ # -a = -rlptgoD rsync -zahui --progress ~/original/* ~/duplicate/ # Copia todas as pastas do local ~/original/* para a pasta ~/duplicate/ # -a = -rlptgoD # -R = Copia deve ter o nome original e não o nome relativo # --delete : Exclui arquivos no diretório de destino se eles não existirem no diretório de origem. rsync -zaRhui --progress --delete ~/original/* ~/duplicate/
-
Script copyto:
-
O script copyto copia para o DESTINO, somente os arquivos diferentes, ou os que a data de ORIGEM seja inferior a data de DESTINO. Copia também os arquivos e pastas invisíveis.
#!/bin/bash # Program copyto.sh # Exemplo de uso: # ./copyto.sh /PastaDestino /arquivos_de_exessão.txt echo "Script: copyto.sh" echo . origem_invisivel="./.[^.]*" origem="./*" destino="$1" except="$2" if [ -z destino ]; then echo "O destino precisa ser informado" exit 1 fi echo . echo "Origem..: $destino" echo "Destino.: $origem" echo "Exessão.: $except" echo "Nota....: Copia para o DESTINO, somente os arquivos diferentes, ou os que a data de ORIGEM seja inferior a data de DESTINO." echo . echo "Cópia incremental". sudo rsync --exclude-from=$except --delete -arRvhui --progress $origem_invisivel $destino sudo rsync --exclude-from=$except --delete -arRvhui --progress $origem $destino result_cp="$?" if [ $result_cp != 0 ]; then echo . echo algo errado na cópia exit 1; fi
-
-
Referências:
-
-
scp: Versão segura do rcp
-
-
Comandos de Notícias ou Rede
-
netstat: Imprime conexões de rede, tabelas de roteamento, estatísticas de interface, conexões mascaradas e associações multicast.
-
Exemplo:
netstat -an | grep :80 netstat -an | grep :8080
-
Notas:
- netstat -a
- Mostre o estado de todos os soquetes; normalmente os soquetes usados pelos processos do servidor não são mostrados.
- netstat -n
- Não resolva endereços numéricos e números de porta em nomes.
- netstat -a
-
Referência:
-
-
rsh: Um shell em outros sistemas UNIX
-
ssh: Versão segura do rsh
-
nmap: Poderoso port-scan, para visualizarmos portas abertas num dado host
-
ifconfig: Visualizar os ips da nossa máquina, entre outras funções relacionadas com ips
-
ping: Pingar um determinado host, ou seja, enviar pacotes icmp para um determinado host e medir tempos de resposta, entre outras coisas
-
-
Comandos de Controle de Processos
-
kill: Mata um processo, como por exemplo kill -kill 100 ou kill -9 100 ou kill -9 %1
-
bg: Coloca um processo suspenso em background
-
fg: Ao contrário do comando bg, o fg traz de volta um processo ao foreground
-
jobs: Permite-nos visualizar jobs em execução, quando corremos uma aplicação em background, poderemos ver esse job com este comando, e termina-lo com um comando kill -9 %1, se for o job número 1, por exemplo
-
top: Lista os processos que mais cpu usam, útil para verificar que processos estão a provocar um uso excessivo de memória, e quanta percentagem de cpu cada um usa em dado momento
-
htop : A mesma finalidade o top ao listar os processos ativos, porém contém mais recursos, podendo até matar um processo.
htop
-
^y: Suspende o processo no próximo pedido de input
-
^z: Suspende o processo actual
-
-
Comandos de Informação de Estado
-
clock: Define a hora do processador
-
date: Exibe a data e hora
-
df: Exibe um resumo do espaço livre em disco
df -h
-
blkid : utilitário de linha de comando para localizar/imprimir atributos do dispositivo de bloco.
blkid
-
du: Exibe um resumo do uso do espaço em disco
-
ncdu : Lista em ordem decrescente quais diretórios estão usando o espaço em disco.
ncdu
-
mc Midnight Commander : Gerenciador de arquivos modo texto. Útil quando operando o servidor não possa usar modo gráfico.
ncdu
-
env: Exibe as variáveis de ambiente
-
finger: Pesquisa informações de utilizadores
-
history: Lista os últimos comandos usados, muito útil para lembrar também de que comandos foram usados para fazer determinada acção no passado ou o que foi feito em dada altura
-
last: Indica o último login de utilizadores
-
lpq: Examina a spool queue
-
manpath: Mostra a path de procura para as páginas do comando man
-
printenv: Imprime as variáveis de ambiente
-
ps: Lista a lista de processos em execução, útil para saber o pid de um processo para o mandar abaixo com o comando
-
kill, entre outras coisas
-
pwd: Mostra-nos o caminho por inteiro do diretório em que nos encontramos em dado momento, ou seja um pathname
-
set: Define variáveis da sessão, ou seja, da shell, na C shell, na bash ou na ksh
-
spend: Lista os custos ACITS UNIX até à data
-
time Mede o tempo de execução de programas
-
uptime: Diz-nos há quanto tempo o sistema está funcional, quando foi ligado e o seu uptime
-
w: Mostra-nos quem está no sistema ou que comando cada job está a executar
-
who: Mostra-nos quem está logado no sistema
-
whois: Serviço de diretório de domínios da Internet, permite-nos saber informações sobre determinados domínios na Internet, quando um domínio foi registado, quando expira, etc
-
whoami: Diz-nos quem é o dono da shell
-
-
Comandos de Processamento de Texto
- abiword: Processador de Texto Open Source
- addbib: Cria ou modifica bases de dados bibliográficas
- col: Reverte o filtro a line feeds
- diction: Identifica sentenças com palavras
- diffmk: Marca diferenças entre arquivos
- dvips: Converte arquivos TeX DVI em arquivos PostScript
- explain: Explica frases encontradas pelo programa diction
- grap: Preprocessador pic para desenhar gráficos, usado em tarefas elementares de análises de dados
- hyphen: Encontra palavras com hífens
- ispell: Verifica a ortografia de forma interativa
- latex: Formata texto em LaTeX, que é baseado no TeX
- pdfelatex: Para documentos LaTeX em formato pdf
- latex2html: Converter LaTeX para html
- lookbib: Encontra referências bibliográficas
- macref: Cria uma referência cruzada listando arquivos de macros nroff/troff
- ndx: Cria uma página de indexação para um documento
- neqn: Formata matemáticas com nroff
- nroff: Formata texto para exibição simples
- pic: Produz simples imagens para troff input
- psdit: Filtra um output troff para a Apple LaserWriter
- ptx: Cria uma indexação permutada mas não em CCWF
- refer: Insere referências de bases de dados bibliográficas
- roffbib: Faz o run off de uma base de dados bibliográfica
- sortbib: Ordena uma base de dados bibliográfica
- spell: Encontra erros de ortografia
- style: Analisa as características superficiais de um documento
- tbl: Formata tabelas para nroff/troff
- tex: Formata texto
- tpic: Converte arquivos pic source em comandos TeX
- wget: Permite-nos fazer o download completo de páginas web, com todos os arquivos, de forma fácil e não interactiva, sem exigir por isso presença do utilizador, respeitando também o arquivorobots.txt
-
Web
- html2ps: Conversor de html para ps
- latex2html: Conversor de LaTeX para html
- lynx: Navegador web baseado em modo de texto, ou seja, é um web browser que nos permite abrir todo o tipo de páginas visualizando apenas os textos elinks, não vendo assim as imagens, e sendo por isso bastante rápido, mas requere prática para ser manuseado
- Chromium é um projeto de navegador web de código aberto desenvolvido pela Google, no qual o Google Chrome baseia o seu código-fonte.
- sitecopy: Aplicação que nos permite manter fácil e remotamente web sites
- weblint: Verificador de sintaxes e de estilos html
-
Comandos para manutenção de hardware
-
stress-ng : Estressando MEM, DISCO e CPU
-
Com a ferramenta Stress-ng podemos literalmente realizar o Stress de alguns recursos do seu servidor, sendo eles: Cpu, memória e disco. Com o Stress-ng podemos estressar nosso servidor afim de descobrir o quanto de carga ele aguentará sem perder a performance. É possível fazer testes isolados nos componentes informados, para a analise de desempenho ser mais assertiva.
- O stress-ng criado para fazer uma máquina trabalhar com alto consumo para simular problemas de hardware como excedentes térmicos, bem como erros do sistema operacional que ocorrem apenas quando um sistema é golpeado com força.
-
INSTALANDO STRESS-NG
sudo apt update sudo apt install stress-ng
-
Exemplo de uso:
- Recomendado pelo desenvolvedor do projeto:
-
O comando abaixo é bem completo, o que cada opção faz está documentado no comando stress-ng -h
sudo stress-ng --cpu 1 --vm 1 --hdd 1 --fork 1 --switch 1 --timeout 10 --metrics
-
Executar 8 tarefas de memória virtual que combinados usam 80% da memória disponível por 1 hora. Assim, cada tarefa usa 10% da memória disponível:
sudo stress-ng --vm 8 --vm-bytes 80% -t 1h
-
Executa por 60 segundos com 4 tarefas de CPU, 2 tarefas IO e 1 node usando 1G de memória virtual:
sudo stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s
-
Executa 2 instâncias das tarefas de IO combinados usando um total de 10% do espaço disponível no sistema de arquivos por 10 minutos. Cada tarefa utilizará 5% do espaço disponível no sistema de arquivos:
sudo stress-ng --iomix 2 --iomix-bytes 10% -t 10m
-
Com este comando é possível medir as latências de agendamento em tempo real criadas pelo workers do disco rígido. O comando usa um relógio de alta resolução em nanossegundos para medir as latências durante o sleeps de 10.000 nanossegundos. No final de 1 minuto de tensão, a distribuição de latência com intervalos de 2500 ns será exibida. OBS: deve ser executado com privilégios de superusuário para permitir que o agendamento em tempo real obtenha medidas precisas:
sudo stress-ng --cyclic 1 --cyclic-dist 2500 --cyclic-method clock_ns --cyclic-prio 100--cyclic-sleep 10000 --hdd 0 -t 1m
-
- Recomendado pelo desenvolvedor do projeto:
-
-
cinnamon-settings info: Mostra as informações do sistema operacional e de hardware na interface gráfica cinnamon.
-
Este comando pode ser encontrado no menu de opções do cinnamon com o nome de Informações do Sistema ou pode ser executado pelo console da seguinte forma:
cinnamon-settings info
- Nota : Este comando não pode ser executado como root porque o root não pode executar o browser da web.
-
-
free - Mostra no console a quantidade de memória instalada.
free -m
-
memtester - teste de memória
# Checa o tamanho da memória para saber o total de memória a ser testada. free -m total usada livre compart. buff/cache disponível Mem.: 7883 2575 1945 186 3363 4826 Swap: 0 0 0 # Testa uma vez o total de memória. memtester 7883 1 Loop 1/1: Stuck Address : ok Random Value : ok Compare XOR : ok Compare SUB : ok Compare MUL : ok Compare DIV : ok Compare OR : ok Compare AND : ok Sequential Increment: ok Solid Bits : ok Block Sequential : ok Checkerboard : ok Bit Spread : ok Bit Flip : ok Walking Ones : ok Walking Zeroes : ok 8-bit Writes : ok 16-bit Writes : ok Done.
-
-
PASTAS DO LINUX
-
Para que serve a pasta ~/.local/share no Linux?
- A pasta ~/.local/share no Linux é uma localização onde aplicativos podem armazenar dados específicos do usuário. Isso pode incluir configurações, caches, e outros dados que são específicos para cada usuário do sistema. Muitos aplicativos usam essa pasta para manter dados que não são essenciais para o funcionamento do aplicativo, mas que podem melhorar a experiência do usuário ou acelerar o desempenho do aplicativo ao armazenar informações em cache. Por exemplo, navegadores da web muitas vezes armazenam caches de páginas da web nessa pasta para que as páginas possam ser carregadas mais rapidamente quando acessadas novamente. Além disso, alguns aplicativos podem armazenar configurações do usuário nessa pasta para personalizar o comportamento do aplicativo para cada usuário. Em resumo, a pasta ~/.local/share é usada por aplicativos no Linux para armazenar dados específicos do usuário que não se encaixam em outras categorias, como configurações ou caches.
-
Para que serve a pasta ~/.local/share no Linux?
-
REFERÊNCIAS
- Manual Linux
- https://www.hostinger.com.br/tutoriais/como-criar-link-simbolico-linux/
- https://canaltech.com.br/linux/aprenda-a-usar-links-simbolicos-e-hardlinks-no-linux/
- cp = Copy one or more files to another location.
- 30 comandos mais usados do Linux
- Comandos Importantes Linux
- 10 exemplos do comando rsync para backup e sincronismo de arquivos no Linux
- rsync_options
- Estressando MEM, DISCO e CPU com Stress-ng (Debian9)
HISTÓRICO
-
23/04/2024
- Escrever o texto para que serve a pasta ~/.local/share no Linux?
-
23/05/2023 a 25/05/2023
- Catalogar os principais comandos do sistema operacional linux.
-
22/05/2023
- Concluir documento: introdução descrevendo como o documento foi criado.
-
19/05/2023
- Criado documento do comando cp;
- Iniciar o documento: introdução descrevendo como o documento foi criado.
-
18/05/2023
- Criado documento do comando ln (link simbólico)
-
17/03/2023
- Criado documento dos comandos ls e cd;
-
15/05/2021
- Criado este documento;