Linux tomada de decisões

Linux shell script tomar decisoes: if then else elif fi case – Exemplos Práticos

Shell script nome dado a um arquivo que será interpretado por algum programa tipo Shell. Atualmente existem vários programas tipo Shell, além dos principais sh e bash, existem também, ksh, zsh, csh e tcsh. Um Shell script ou script em Shell necessita basicamente do interpretador (Shell). Algumas operações típicas executadas por linguagens de script em Shell incluem; manipulação de arquivos, execução de programas e impressão de texto. Sendo assim é muito comum ver scripts sendo utilizados para automatização de tarefas, como configurar o ambiente, executar um programa e fazer qualquer limpeza, registro, etc.
– wiki

Para declarar que o script deve ser interpretado por Bourne-Again shell (Bash) é recomendável a utilização do comando env, pelo fato que apesar de o Bash já vir instalado em muitas distribuições Linux, não sabemos se ele estará em todas elas no mesmo diretório /bin/, então use a seguinte forma:

#!/usr/bin/env bash

– wiki

Os comentários nas linguagens Bourne Shell (sh) e Bourne-Again Shell (bash) serão utilizados hashtag (#), Exemplo de comentários:

#Comentário
#- Segundo comentário
# // [ Terceiro comentário ] //

– wiki

Variáveis – Como qualquer outra linguagem de programação conhecida, um script em Shell também possui suporte a variáveis. Em uma breve explicação uma variável é um nome/objeto simbólico ao qual podemos atribuir valores, ler ou manipular o conteúdo.

– wiki

Os scripts em Shell possuem as seguintes variáveis pré-definidas:

$? – Armazena o status de saída do último programa executado;
$# – Armazena a quantidade de parâmetros de linha de comandos;
$$ – Armazena o valor PID (Process Identifier) do script em shell que estiver em execução;
$@ – Armazena o valor de todos os parâmetros passados, similar a variável argv presente nas linguagens de programação C e C++;
$! – Armazena o PID do último processo em segundo plano. Isso é útil para acompanhar o processo à medida que o trabalho é realizado;
$0, …, $9 – Armazena os valores de todos os parâmetros de linha de comando separadamente.

– wiki

Variáveis globais ou variáveis de ambiente globais, são variáveis criadas/definidas com o comando export e podem ser utilizadas por multiplos scripts em Shell. Um exemplo é a variável de ambiente LANG (Pré-definida em diversas distribuições Linux), Podendo ser acessada por diversos arquivos de script em Shell.

Outras variáveis pré definidas são:

PATH: define diretórios de procura por programas executados no shell;
USER: informa o nome do usuário do shell;
HOME: informa o caminho do diretório home do usuário;
LANG: Idioma/Linguagem, especificada como locale;
PWD: diretório atual;
TERM: Tipo de terminal atual em uso.
UID: UID do usuário atual.
RANDOM: Gera um número aleatório

– wiki

A duas formas de criar uma variável global, exportar uma variável pré definida ou definir quando for exportar:

VARIAVEL1=Teste
export VARIAVEL1
# Define e exporta com export
export VARIAVEL2=Teste

Array – Bourne Shell (sh) não é compatível com variáveis tipo array, mas Bourne-Again Shell (Bash) sim, exemplo simples de implementação:

#!/usr/bin/env bash
meu_array=(1 2 3 4 5 6 7 8 9)
meu_Array=(“abc” “def” “ghi”)

Chamar variáveis – Para chamar variáveis utiliza-se o sinal de cifrão $var. O cifrão ($) também é bastante utilizado em script sh, para executar programas externos exemplo: var=$(expr 2 + 2) irá armazenar a saída do programa expr. E o cifrão mais chave ${var} é comum ser utilizado das seguintes maneiras:

Para acessar posições em um array ${var[1]}. (obs.: não funciona para sh, apenas para Bash)

E também para substituir o valor de uma variável se a mesma não possuir um valor: ${var:-nome} – ${var:=nome} – ${var:-$(programa)} dessas maneiras irão substituir pelo que for passado depois de :- ou :=, exemplo em código:

read -p “Digite um nome: “myname
echo “${myname:=$(whoami)}”
O código acima irá pedir para o usuário digitar um nome, caso digite irá utilizar echo para imprimir o nome digitado na saída padrão, caso contrário irá substituir pela saída do comando whoami, ao invés de substituir pela saída de um comando, você pode substituir por outro valor exemplo: ${myname:=Bourne Shell}.

– wiki

Tomada de Decisões – Em toda linguagem de programação existe alguma estrutura para tomada de decisões. Essa estrutura em geral é feita através do comando “if”. O comando “if” analisa de uma expressão é verdadeira e então executa um bloco de código, caso a expressão seja falsa pode ser executado, ou não, um outro bloco. Em geral as linguagens de programação oferecem maneiras de verificar se um valor é igual, menor ou maior que outro. As formas mais comuns abaixo.

Para remover uma variável, utiliza-se o comando unset + nome da variável, você pode também remover múltiplas variáveis basta separá-las por espaços.

unset VAR
unset VAR1 VAR2 VAR3 VAR4

Declaração if para scripts em bash ou sh:

if [ $1 = $2 ]; then
echo “Parametro 1=$1 é igual a 2=$2.”
fi
Existe também outra forma:

[ $1 = $2 ] && { echo “Parametro 1 ($1) é igual a 2 ($2).”; exit 0; }

Declaração if else para scripts em bash ou sh, há diversas formas diferentes, tenha cuidado para não esquecer os espaços entre os colchetes eles são muito importantes:

A declaração if else mais comum e mais utilizada é a seguinte:

if [ $1 = $2 ]; then
echo “Parametro 1 ($1) é igual a 2 ($2).”
else
echo “Parametro 1 ($1) não é igual a 2 ($2).”
fi
Mas, existe uma abreviação que também é muito utilizada que é menor e muito boa para teste de linha única:

[ $1 = $2 ] && { echo “Parametro 1 ($1) é igual a 2 ($2).”; exit 0; } || { echo “Parametro 1 ($1) é diferente de 2 ($2).”; exit 0; }

Declaração else if para scripts em bash ou sh são diferentes de algumas linguagens de programação, exemplo:

if [ $3 ]; then
echo “$3”
elif [ $2 ]; then
echo “$2”
else
echo “$1”
fi

Case – Scripts em Bash ou sh, permitem case, a sintaxe é a seguinte:

case “$var” in
valor)
;;
esac

Scripts em Bash possui compatibilidade com Expressões Regulares, algo que scripts em Bourne Shell (sh) não reconhecem:

#!/usr/bin/env bash
[[ $1 =~ ^sh|SH$ ]] && { echo “$1 – Bourne Shell”; }

– wiki

EXEMPLOS PRÁTICOS PRATICADOS

Me acompanhe neste caminho simples.

Existem diversos operadores para cada Shell script, mas aqui serão passadas informações especificamente sobre Bourne shell por ser mais comum e muitos outros shell são similares.

PARA TRATAR NÚMEROS:

== : Igual à
!= : Diferente de
< : Menor que
> : Maior que
<= : Menor ou igual à
>= : Maior ou igual à

EM SHELL SCRIPT OS MESMOS TESTES SÃO OBTIDOS COM:

-eq : (equal) Igual à
-ne : (not equal) Diferente de
-lt : (less than) Menor que
-gt : (greater than) Maior que
-le : (less or egual) Menor ou igual à
-ge : (greater or equal) Maior ou igual à

O USO DO “IF” EM SHELL SCRIPT:

#!/usr/bin/env bash

# titulo: jamais.sh

if [ 4 -eq 6 ] # se 4 for igual a 6
then # então
echo “Esse echo jamais acontecerá” # comando 1
fi # fechamento obrigatório do if

# fim do script

É necessário manter espaços entre os colchetes e os números, ou variáveis. O bloco após a palavra “then” será executado se a expressão dentro do “if” for verdadeira. O bloco “if” termina com a palavra “fi” que é “if” ao contrário. Essa é uma maneira simples de identificar o final de um “if” quando o encontramos.

PARA FAZER COMPARAÇÕES COM TEXTOS USE:

= : Igual à (isso mesmo apenas um sinal de igual)
!= : Diferente de
-n : String existe e não é vazia (apenas um operador)
**-z** : String existe e é vazia (apenas um operador)

Esemplo, o “if” verifica se a variável $nome existe e está vazia, isso significa que o usuário não digitou o nome dele. A instrução “read” faz com que o shell leia alguma informação via teclado e retorne essa informação para a variável informada. Foi usada a palavra “else” que significa “senão”. Esse bloco é executado quando o “if” retorna um valor falso:

#!/usr/bin/env bash

# titulo: seu_nome.sh

# —————- #

echo “Digite seu nome: ” # comando echo
read NOME # comando read armazena o que digitou em NOME

# —————- #

if [ -z $NOME ] # se é apenas um operador
then # então
echo “Você não digitou seu nome!” # comando 1
else # se não
echo “Olá, $NOME” # comando 2
fi # fechamento obrigatório do if

# —————- #

# fim do script

O shell oferece mais opções para o “if” do que as linguagens de programação o fazem! Veja outras opções bem interessantes:

**-s ** : Arquivo existe, não vazio (apenas um operador)
**-f ** : Arquivo existe, não é um diretório (apenas um operador)
**-d ** : Diretório existe (apenas um operador)
**-w ** : Arquivo, com permissão de escrita (apenas um operador)
-r : Arquivo, com permissão de leitura (apenas um operador)
**-x ** : Arquivo, com parmissão de execução -x (apenas um operador)

Por exemplo, crio um diretório TESTES e nele um arquivo de texto vazio chamado meu_log_test.txt, dou permissão de execução e executo o script log_test.sh abaixo:

#!/usr/bin/env bash

# titulo: log_test.sh

ARQUIVO=”/home/user/TESTES/meu_log_test.txt”

if [ -f “$ARQUIVO” ] # se o aquivo meu_log_test.txt existir
then # então
echo “Continuando log…” >> “$ARQUIVO” # comando 1
else # se não
echo “Criando log…” > “$ARQUIVO” # comando 2
fi # fechamento obrigatório do if é fi

# fim do script

Executo e confiro o texto meu_log_test.txt. Resultado:

TESTES:$ ./log_test.sh
TESTES:$ cat meu_log_test.txt
Continuando log…
TESTES:$

Então fica assim, se o arquivo existir continue registrando, execute determinado comando, escreva “Continuando log…”. Se não existir crie o arquivo e escreva nele “Criando log…”.

Apague o arquivo meu_log_test.txt execute o script e veja o script funcionando.

Agora este script super simples, se executado com outros comandos pode fazer coisas bem úteis. O script que toma decisões é forte e útil.

IFs Aninhados – Chamamos de “ifs aninhados” as construções onde há um “if” dentro do bloco “then” ou “else” de outro “if”:

#!/usr/bin/env bash

# titulo: ifs_aninhados_test.sh

# ————– #

# primeiro read

echo “Digite seu nome: ”
read NOME

# ————– #

# segundo read

echo “Digite sua idade: ”
read IDADE

# ————– #

# ifs aninhados

if [ -z $NOME ]
then
echo “Você não digitou seu nome.”
else
echo “Seu nome é $NOME”
if [ $IDADE -gt 10 ] # se sua idade for mais que 10
then # então
echo “Você tem mais que 10 anos.”
else # se não
echo “Você tem 10 anos ou menos.”
fi # fechamento obrigatório do if
fi # fechamento obrigatório do else?

# ————– #

# fim do script

Resultado:

~:$ ifs_aninhados_test.sh
Digite seu nome:
Pipopi
Digite sua idade:
55
Seu nome é Pipopi
Você tem mais que 10 anos.
~:$

Entendendo o funcionamento deste script permite criar vários semelhantes a ele que podem ser usados de acordo com sua necessidade no teu dia a dia para executar tarefas rotineiras (ou não). Não importa se você tem 18, 20, 30 anos ou mais; saiba que este exemplo é recomanedado para todas as idades. Cada idade usará de uma maneira diferente? Provavelmente sim.

If MULTINÍVEL – PODE FAZER COMPARAÇÕES EM SEQUÊNCIA, COM O USO DO elif

#!/usr/bin/env bash

# titulo: if_elif_test.sh

# ————– #

echo “Digite um número”
read NUMERO

# ————– #

if [ $NUMERO -gt 0 ];
then
echo “Número positivo”

# ————– #

elif [ $NUMERO -lt 0 ]
then
echo “Número negativo”

# ————– #

elif [ $NUMERO -eq 0 ]
then
echo “Número é zero”

# ————– #

else
echo “O valor fornecido não é um número!”
fi

# fim do script

Resultado:

~:$ if_elif_test.sh
Digite um número
12
Número positivo
~:$

O SHELL OFERECE OPÇÕES COMO “case” PARA CONTROLE DE FLUXO. O comando “case” é usado para executar um bloco de código de acordo com o valor de uma variável. O comando “case” é interessante pois pode definir diversas opções diferentes sem usar uma estrutura com diversos comandos “if”, “elif” e “else”. O exibe uma mensagem e então pede uma informação do usuário. O usuário vai digitar alguma letra e então o comando “case” entra em ação. Ele verifica qual valor foi digitado pelo usuário e executa os blocos de código relativos a cada opção. Primeira opção é a padrão, por isso ela é executada mesmo que o usuário não digite um valor.Cada bloco do case é iniciado por um valor que a variável analisada pode ter, ou vários valores, separados por um pipe. Os blocos são finalizados por uma sequência de dois caracteres ‘ponto-e-vírgula’ (;;).

#!/usr/bin/env bash

# titulo: echo_read_case_esac_test.sh

echo -n “O que deseja fazer? (L)listar/(C)opiar texto/(S)air do script? [A] ”
read resposta

case “$resposta” in
l|L|””)
echo “Listando…”
sleep 3
ls -ltA
;;
c|C)
echo “Copiando arquivos .txt para Documentos”
sleep 3
cp -r *.txt ~/Documentos/
;;
s|S)
echo “Saindo…”
;;
*)
echo “Opção inválida”
;;
esac

Resultado exemplo:

~:$ echo_read_case_esac_test.sh
O que deseja fazer? (L)listar/(C)opiar texto/(S)air do script? [A] W
Opção inválida

Linux o que é eDEX-UI?

O eDEX-UI é um emulador de terminal de plataforma cruzada e monitor de sistema em tela cheia que se parece com uma interface de computador de ficção científica.

Fortemente inspirado nos efeitos do filme TRON Legacy (especialmente na sequência da sala de diretoria), o projeto eDEX-UI foi originalmente concebido para ser “DEX-UI com menos« arte »e mais« software distribuível »”.

Mantendo uma aparência futurista, ele se esforça para manter um certo nível de funcionalidade e para ser utilizável em cenários da vida real, com o objetivo maior de trazer UXs de ficção científica para o mainstream.

eDEX-UI v2.2.2

1- Emulador de terminal completo com guias, cores, eventos de mouse e suporte para aplicativos.
2- Monitoramento em tempo real do sistema (CPU, RAM, swap, processos) e rede (GeoIP, conexões ativas, taxas de transferência).
3- Suporte total para telas com toque, incluindo um teclado na tela.
4- Visualizador de diretório que segue o CWD (diretório de trabalho atual) do terminal.
5- Personalização avançada usando temas, layouts de teclado na tela, injeções de CSS. Veja o wiki para mais inormações.
6- Efeitos sonoros opcionais feitos por um talentoso designer de som para a máxima vibração de hackers de hollywood

Obs: saiba como abrir e fechar um AppImage pelo terminal e ativar menu e atalhos de teclado do sitema.

Para saber mais pesquise:

github eDEX-UI v2.2.2 AppImage

Anotações do Guia Foca

.

O Guia Foca de Gleydson Mazioli da Silva foi atualizado pela última vez a mais ou menos uns oito anos atrás e apesar de bastante coisa ter mudado ele é extremamente valioso quando se trata de definições, comandos, bash, shell script e vários outros assuntos.

.

Na minha opinião o material é imbatível. A gente que gosta de Linux, pode passear pelo Guia Foca como em um parque de diversões pulando entre assuntos pois o índice de conteúdo é muito bem elaborado.

.

Este artigo tem partes do Guia Foca que me chamaram a atenção um dia destes. Este artigo também tem uns pedaços de outros lugares. Outras partes deste artigo, eu reformulei, adaptei e até mesmo escrevi e reescrevi de acordo com o que aprendi praticando, lendo e pesquisando.

Não é perfeito, longe disto, mas me é útil.

Escrevi/Montei/Adaptei este artigo para o meu uso pessoal e executo o que aprendi aqui, por minha conta e risco. Este artigo é bem útil para mim. Espero que ele seja útil também para você. Perdoe erros de digitação e se alguma definição estiver inadequada.

Revisei o texto algumas vezes mas, nunca é o suficiente. O segredo é a prática. Neste mundo atual onde se pode fazer isto com facilidade? Um dos poucos lugares que conheço é no mundo Linux. Isto não é apenas estudo com objetivo profissional para muitas pessoas é uma tranquila forma de lazer, para outros é um modo de se por a prova e descobrir até onde você consegue chegar. Todo processo de aprendizado é satisfatório quando você mesmo consegue perceber efetivamente o resultado.

.

COMANDOS

.

Comandos são ordens que passamos ao sistema operacional para executar uma determinada tarefa.

Cada comando tem uma função específica, devemos saber a função de cada comando e escolher o mais adequado para fazer o que desejamos, por exemplo:

ls - Mostra arquivos de diretórios

cd - Para mudar de diretório

É sempre usado um espaço depois do comando para separá-lo de uma opção ou parâmetro que será passado para o processamento. Um comando pode receber opções e parâmetros:

OPÇÕES
As opções são usadas para controlar como o comando será executado, por exemplo, para fazer uma listagem mostrando o dono, grupo, tamanho dos arquivos você deve digitar ls -l.

Opções podem ser passadas ao comando através de um:

"-" ou "--":

-

Opção identificada por uma letra. Podem ser usadas mais de uma opção com um único hífen. O comando ls -l -a é a mesma coisa de ls -la

--

Opção identificada por um nome. Também chamado de opção extensa. O comando ls --all é equivalente a ls -a.

Pode ser usado tanto "-" como "--", mas há casos em que somente "-" ou "--" esta disponível.

PARÂMETROS
Um parâmetro identifica o caminho, origem, destino, entrada padrão ou saída padrão que será passada ao comando.

Se você digitar: ls /usr/share/doc/copyright, /usr/share/doc/copyright será o parâmetro passado ao comando ls, neste caso queremos que ele liste os arquivos do diretório /usr/share/doc/copyright.

É normal errar o nome de comandos, mas não se preocupe, quando isto acontecer o sistema mostrará a mensagem command not found (comando não encontrado) e voltará ao aviso de comando. As mensagens de erro não fazem nenhum mal ao seu sistema, somente dizem que algo deu errado para que você possa corrigir e entender o que aconteceu. No GNU/Linux, você tem a possibilidade de criar comandos personalizados usando outros comandos mais simples (isto será visto mais adiante). Os comandos se encaixam em duas categorias: Comandos Internos e Comandos Externos.

Por exemplo: "ls -la /usr/share/doc", ls é o comando, -la é a opção passada ao comando, e /usr/share/doc é o diretório passado como parâmetro ao comando ls.

.

COMANDOS INTERNOS

São comandos que estão localizados dentro do interpretador de comandos (normalmente o Bash) e não no disco. Eles são carregados na memória RAM do computador junto com o interpretador de comandos.

Quando executa um comando, o interpretador de comandos verifica primeiro se ele é um Comando Interno caso não seja é verificado se é um Comando Externo.

Exemplos de comandos internos são: cd, exit, echo, bg, fg, source, help

.

COMANDOS EXTERNOS

São comandos que estão localizados no disco. Os comandos são procurados no disco usando o ordem do PATH e executados assim que encontrados.

.

ESTRUTURA BÁSICA DE DIRETÓRIOS DO SISTEMA LINUX

.

O sistema GNU/Linux possui a seguinte estrutura básica de diretórios organizados segundo o FHS (Filesystem Hierarchy Standard):

O DIRETÓRIO RAIZ (/)

Diretório do usuário root. Todos os arquivos e diretórios do sistema Linux instalado no computador partem de uma única origem: o diretório raiz. Mesmo que estejam armazenados em outros dispositivos físicos, é a partir do diretório raiz – representado pela barra (/) – que você poderá acessá-los. O único usuário do sistema capaz de criar ou mover arquivos do diretório raiz é o root, ou seja, o usuário-administrador. Isso evita que usuários comuns cometam erros e acabem comprometendo a integridade de todo o sistema de arquivos.

BINÁRIOS EXECUTÁVEIS: /BIN

No diretório /bin estão localizados os binários executáveis que podem ser utilizados por qualquer usuário do sistema. São comandos essenciais, usados para trabalhar com arquivos, textos e alguns recursos básicos de rede, como o cp, mv, ping e grep.

BINÁRIOS DO SISTEMA: /SBIN

Diretório de programas usados pelo superusuário (root) para administração e controle do funcionamento do sistema. Assim como o /bin, este diretório armazena executáveis, mas com um diferencial: são aplicativos utilizados por administradores de sistema com o propósito de realizar funções de manutenção e outras tarefas semelhantes. Entre os comandos disponíveis estão o ifconfig, para configurar e controlar interfaces de rede TCP/IP, e o fdisk, que permite particionar discos rígidos, por exemplo.

PROGRAMAS DIVERSOS: /USR

Contém maior parte de seus programas. Normalmente acessível somente como leitura. Se você não encontrar um comando no diretório /bin ou /sbin, ele certamente está aqui. O /usr reúne executáveis, bibliotecas e até documentação de softwares usados pelos usuários ou administradores do sistema. Além disso, sempre que você compilar e instalar um programa a partir do código-fonte, ele será instalado nesse diretório.

CONFIGURAÇÕES DO SISTEMA: /ETC

Arquivos de configuração de seu computador local. No diretório /etc ficam arquivos de configuração que podem ser usados por todos os softwares, além de scripts especiais para iniciar ou interromper módulos e programas diversos. É no /etc que se encontra, por exemplo, o arquivo resolv.conf, com uma relação de servidores DNS que podem ser acessados pelo sistema, com os parâmetros necessários para isso.

BIBLIOTECAS: /LIB

Bibliotecas compartilhadas pelos programas do sistema e módulos do kernel. Neste ponto do sistema de arquivos ficam localizadas as bibliotecas usadas pelos comandos presentes em /bin e /sbin. Normalmente, os arquivos de bibliotecas começam com os prefixos ld ou lib e possuem "extensão" so.

OPCIONAIS: /OPT

Aplicativos adicionais, que não são essenciais para o sistema, terminam neste diretório.

AQUIVOS PESSOAIS: /HOME

Diretórios contendo os arquivos dos usuários. No diretório /home ficam os arquivos pessoais, como documentos e fotografias, sempre dentro de pastas que levam o nome de cada usuário. Vale notar que o diretório pessoal do administrador não fica no mesmo local, e sim em /root.

INICIALIZAÇÃO: /BOOT

Contém arquivos necessários para a inicialização do sistema, ou seja, o processo de boot do Linux, quando o computador é ligado, ficam em /boot.

VOLUMES E MÍDIAS: /MNT E /MEDIA

Para acessar os arquivos de um CD, pendrive ou disco rígido presente em outra máquina da rede, é necessário "montar" esse conteúdo no sistema de arquivos local, isso é, torná-lo acessível como se fosse apenas mais um diretório no sistema.

Em /media ficam montadas todas as mídias removíveis, como dispositivos USB e DVDs de dados. Já o diretório /mnt fica reservado aos administradores que precisam montar temporariamente um sistema de arquivos externo.

SERVIÇOS: /SRV

Dados de servidores e serviços em execução no computador ficam armazenados dentro desse diretório.

ARQUIVOS DE DISPOSITIVOS: /DEV

No Linux, tudo é apresentado na forma de arquivos. Ao plugar um pendrive no computador, por exemplo, um arquivo será criado dentro do diretório /dev e ele servirá como interface para acessar ou gerenciar o drive USB. Nesse diretório, você encontra caminhos semelhantes para acessar terminais e qualquer dispositivo conectado ao computador, como o mouse e até modems.

ARQUIVOS VARIÁVEIS: /VAR

Todo arquivo que aumenta de tamanho ao longo do tempo está no diretório de arquivos variáveis. Um bom exemplo são os logs do sistema, ou seja, registros em forma de texto de atividades realizadas no Linux, como os logins feitos ao longo dos meses.

PROCESSOS DO SISTEMA: /PROC

Lembra da história de que tudo funciona como um arquivo no Linux? Pois o /proc é a prova disso. Nesse diretório são encontrados arquivos que revelam informações sobre os recursos e processos em execução no sistema. Quer um exemplo? Para saber há quanto tempo o Linux está sendo usado desde a última vez em que foi iniciado, basta ler o arquivo /proc/uptime.

ARQUIVOS TEMPORÁRIOS: /TMP

Arquivos e diretórios criados temporariamente tanto pelo sistema quanto pelos usuários devem ficar nesse diretório. Boa parte deles é apagada sempre que o computador é reiniciado.

.

NOMEANDO ARQUIVOS E DIRETÓRIOS

.

No GNU/Linux, os arquivos e diretórios pode ter o tamanho de até 255 letras. Você pode identifica-lo com uma extensão (um conjunto de letras separadas do nome do arquivo por um ".").

Os programas executáveis do GNU/Linux, ao contrário dos programas de DOS e Windows, não são executados a partir de extensões .exe, .com ou .bat. O GNU/Linux (como todos os sistemas POSIX) usa a permissão de execução de arquivo para identificar se um arquivo pode ou não ser executado.

Digamos que está elaborando um trabalho de história. Ele pode ser identificado mais facilmente caso fosse gravado com o nome trabalho.text ou trabalho.txt. Também é permitido gravar o arquivo com o nome Trabalho de Historia.txt mas não é recomendado gravar nomes de arquivos e diretórios com espaços. Porque será necessário colocar o nome do arquivo entre "aspas" para acessa-lo (por exemplo, cat "Trabalho de Historia.txt"). Ao invés de usar espaços, prefira capitalizar o arquivo (usar letras maiúsculas e minúsculas para identifica-lo): TrabalhodeHistoria.txt.

.

LINUX DISCOS E PARTIÇÕES

.

Partições são divisões existentes no disco rígido que marcam onde começa e onde termina um sistema de arquivos. As partições nos permitem usar mais de um sistema operacional no mesmo computador, ou dividir o disco rígido em uma ou mais partes

.

Para gravar os dados, o disco rígido deve ser primeiro particionado no Linux hoje uso um programa gráfico chamado Gparted para fazer o particionamento

.

Podemos fazer isto também pela linha de comando do Linux usando o `cfdisk', `parted', `fdisk'

.

O tipo da partição que uso estes dias é EXT4

.

Após criada e formatada, a partição será automaticamente identificada como um dispositivo no diretório `/dev'

.

Uma partição de disco não interfere em outras partições existentes, por este motivo é possível usar o `Windows', `GNU/Linux' e qualquer outro sistema operacional no mesmo disco

.

JOURNALING O QUE É ISTO?

.

O sistema de journaling grava qualquer operação que será feita no disco em uma área especial chamada "journal", assim se acontecer algum problema durante alterações no disco, ele pode voltar ao estado anterior do arquivo, ou finalizar a operação

Desta forma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade e maior tolerância a falhas. Após uma falha de energia, por exemplo, o journal é analisado durante a montagem do sistema de arquivos e todas as operações que estavam sendo feitas no disco são verificadas

Dependendo do estado da operação, elas podem ser desfeitas ou finalizadas

.

TIPOS DE EXECUÇÃO DE COMANDOS/PROGRAMAS

.

Um programa pode ser executado de duas formas:

.

1. `Primeiro Plano' - Também chamado de _foreground_.

Quando em foreground você deve esperar o término da execução de um programa para executar um novo comando

Somente é mostrado o aviso de comando após o término de execução do comando/programa.

2. `Segundo Plano' - Também chamado de _background_.

Background é quando você não precisa esperar o término da execução de um programa para executar um novo comando

Após iniciar um programa em _background_, é mostrado um número PID (identificação do Processo) e o aviso de comando é novamente mostrado, permitindo o uso normal do sistema.

O programa executado em background continua sendo executado internamente

Após ser concluído, o sistema retorna uma mensagem de pronto acompanhado do número PID do processo que terminou

.

Para iniciar um programa em `primeiro plano', basta digitar seu nome normalmente

Para iniciar um programa em `segundo plano', acrescente um espaço e o caracter `"&"' após o final do comando

$ find *.jpg &

.

Mesmo que um usuário execute um programa em segundo plano e saia do sistema, o programa continuará sendo executado até que seja concluído ou finalizado pelo usuário que iniciou a execução (ou pelo usuário root)

.

Exemplo:

~ $find *.jpg &
[1] 2701
~ $find: ‘*.jpg’: Arquivo ou diretório não encontrado

[1]+ Fim da execução com status 1 find *.jpg

.

O comando será executado em segundo plano e deixará o sistema livre para outras tarefas

Após o comando `find' terminar, será mostrada uma mensagem como viste acima

.

O COMANDO PS

.

Algumas vezes é útil ver quais processos estão sendo executados no computador

O comando `ps' faz isto, e também nos mostra qual usuário executou o programa, hora que o processo foi iniciado, etc

.

`ps [_opções_]'

.

Onde:

_opções_

a
Mostra os processos criados por você e de outros usuários do sistema.

x
Mostra processos que não são controlados pelo terminal.

u
Mostra o nome de usuário que iniciou o processo e hora em que o
processo foi iniciado.

m
Mostra a memória ocupada por cada processo em execução.

f
Mostra a árvore de execução de comandos (comandos que são chamados por outros comandos).

e
Mostra variáveis de ambiente no momento da inicialização do processo.

w
Mostra a continuação da linha atual na próxima linha ao invés de cortar o restante que não couber na tela

.

Estas opções acima podem ser combinadas para resultar em uma listagem mais completa

Você também pode usar pipes "|" para `filtrar' a saída do comando `ps'

.

Para detalhes, `| (pipe)'

.

Ao contrário de outros comandos, o comando `ps' não precisa do hífen

"-" para especificar os comandos. Isto porque ele não utiliza opções longas e não usa parâmetros.

.

Exemplos: `ps', `ps ax|grep inetd', `ps auxf', `ps auxw'

.

CONTROLE DE EXECUÇÃO DE PROCESSOS - Interrompendo a execução de um processo

.

Para cancelar a execução de algum processo `rodando em primeiro plano', basta pressionar as teclas `CTRL'+`C'

A execução do programa será cancelada e será mostrado o aviso de comando

Você também pode usar o comando `kill' para interromper um processo sendo executado

.

PARANDO MOMENTANEAMENTE A EXECUÇÃO DE UM PROCESSO

.

Para parar a execução de um processo rodando em primeiro plano, basta pressionar as teclas `CTRL'+`Z'

O programa em execução será pausado e será mostrado o número de seu job e o aviso de comando

.

Para retornar a execução de um comando pausado, use `fg' ou `bg'

.

O programa permanece na memória no ponto de processamento em que parou quando ele é interrompido

Você pode usar outros comandos ou rodar outros programas enquanto o programa atual está interrompido

.

JOBS

.

O comando `jobs' mostra os processos que estão parados ou rodando em _segundo plano_

Processos em segundo plano são iniciados usando o símbolo `"&"' no final da linha de comando ou através do comando `bg'

.

O número de identificação de cada processo parado ou em segundo plano (job), é usado com os comandos `fg' e `bg'

Um processo interrompido pode ser finalizado usando-se o comando `kill %[num]', onde `[num]' é o número do processo obtido pelo comando `jobs'

.

FG

Permite fazer um programa rodando em segundo plano ou parado, rodar em primeiro plano. Você deve usar o comando jobs para pegar o número do processo rodando em segundo plano ou interrompida, este número será passado ao comando fg para ativa-lo em primeiro plano.

fg [número]

Onde número é o número obtido através do comando jobs.

Caso seja usado sem parâmetros, o fg utilizará o último programa interrompido (o maior número obtido com o comando jobs)

.

BG

Permite fazer um programa rodando em primeiro plano ou parado, rodar em segundo plano. Para fazer um programa em primeiro plano rodar em segundo, é necessário primeiro interromper a execução do comando com CTRL+ Z, será mostrado o número da tarefa interrompida, use este número com o comando bg para iniciar a execução do comando em segundo plano.

bg [número]

Onde: número número do programa obtido com o pressionamento das teclas CTRL+Z ou através do comando jobs.

.

KILL

Permite enviar um sinal a um comando/programa. Caso seja usado sem parâmetros, o kill enviará um sinal de término ao processo sendo executado.

kill [opções] [sinal] [número]

Onde:

número
É o número de identificação do processo obtido com o comando ps, Também pode ser o número após o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida [jobs].

sinal
Sinal que será enviado ao processo. Se omitido usa -15 como padrão.

opções
-9
Envia um sinal de destruição ao processo ou programa. Ele é terminado imediatamente sem chances de salvar os dados ou apagar os arquivos temporários criados por ele.

Você precisa ser o dono do processo ou o usuário root para termina-lo ou destruí-lo. Você pode verificar se o processo foi finalizado através do comando ps. Os tipos de sinais aceitos pelo GNU/Linux são explicados em detalhes em Sinais do Sistema.

Exemplo: kill 500, kill -9 500, kill %1.

.

KILLALL

Permite finalizar processos através do nome.

killall [opções] [sinal] [processo]

Onde:

processo
Nome do processo que deseja finalizar

sinal
Sinal que será enviado ao processo (pode ser obtido usando a opção -i).

opções
-i
Pede confirmação sobre a finalização do processo.

-l
Lista o nome de todos os sinais conhecidos.

-q
Ignora a existência do processo.

-v
Retorna se o sinal foi enviado com sucesso ao processo.

-w
Finaliza a execução do killall somente após finalizar todos os processos.

Os tipos de sinais aceitos pelo GNU/Linux são explicados em detalhes na Sinais do Sistema.

Exemplo: killall -HUP inetd

.

KILLALL5

.

Envia um sinal de finalização para todos os processos sendo executados.

killall5 [sinal]

.

PIDOF

Retorna o PID do processo especificado

pidof [opções] [nome]

Onde:

nome
Nome do processo que seja obter o número PID

opções
-s
Retorna somente o primeiro PID encontrado.

-x
Retorna o PID do do shell que está executando o script

-o [PID]
Ignora o processo com aquele PID. O PID especial %PPID pode ser usado para nomear o processo pai do programa pidof, em outras palavras

OBS: O programa pidof é um link simbólico ao programa killall5. Cuidado ao executar o killall5 as funções e opções são completamente diferentes dependendo da forma como é chamado na linha de comando!

Exemplo: pidof -s init

.

CURINGAS

.

Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4 tipos de curingas no GNU/Linux:

"*" - Faz referência a um nome completo/restante de um arquivo/diretório.

"?" - Faz referência a uma letra naquela posição.

[padrão] - Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser:

[a-z][0-9] - Faz referência a caracteres de a até z seguido de um caractere de 0 até 9.

[a,z][1,0] - Faz a referência aos caracteres a e z seguido de um caractere 1 ou 0 naquela posição.

[a-z,1,0] - Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela posição.

A procura de caracteres é "Case Sensitive" assim se você deseja que sejam localizados todos os caracteres alfabéticos você deve usar [a-zA-Z].

Caso a expressão seja precedida por um ^, faz referência a qualquer caractere exceto o da expressão. Por exemplo [^abc] faz referência a qualquer caractere exceto a, b e c.

{padrões} - Expande e gera strings para pesquisa de padrões de um arquivo/diretório.

X{ab,01} - Faz referência a sequencia de caracteres Xab ou X01

X{a-z,10} Faz referencia a sequencia de caracteres Xa-z e X10.

O que diferencia este método de expansão dos demais é que a existência do arquivo/diretório é opcional para geração do resultado. Isto é útil para a criação de diretórios. Lembrando que os 4 tipos de curingas ("*", "?", "[]", "{}") podem ser usados juntos. Para entender melhor vamos a prática:

Vamos dizer que tenha 5 arquivo no diretório /usr/teste: teste1.txt, teste2.txt, teste3.txt, teste4.new, teste5.new.

Caso deseje listar todos os arquivos do diretório /usr/teste você pode usar o coringa "*" para especificar todos os arquivos do diretório:

cd /usr/teste e ls * ou ls /usr/teste/*.

Não tem muito sentido usar o comando ls com "*" porque todos os arquivos serão listados se o ls for usado sem nenhum Coringa.

Agora para listar todos os arquivos teste1.txt, teste2.txt, teste3.txt com exceção de teste4.new, teste5.new, podemos usar inicialmente 3 métodos:

Usando o comando ls *.txt que pega todos os arquivos que começam com qualquer nome e terminam com .txt.

Usando o comando ls teste?.txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caractere no lugar do coringa ? e terminem com .txt. Com o exemplo acima teste*.txt também faria a mesma coisa, mas se também tivéssemos um arquivo chamado teste10.txt este também seria listado.

Usando o comando ls teste[1-3].txt, que pega todos os arquivos que começam com o nome teste, tenham qualquer caractere entre o número 1-3 no lugar da 6a letra e terminem com .txt. Neste caso se obtém uma filtragem mais exata, pois o coringa ? especifica qualquer caractere naquela posição e [] especifica números, letras ou intervalo que será usado.

Agora para listar somente teste4.new e teste5.new podemos usar os seguintes métodos:

ls *.new que lista todos os arquivos que terminam com .new

ls teste?.new que lista todos os arquivos que começam com teste, contenham qualquer caracter na posição do coringa ? e terminem com .new.

ls teste[4,5].* que lista todos os arquivos que começam com teste contenham números de 4 e 5 naquela posição e terminem com qualquer extensão.

Existem muitas outras formas de se fazer a mesma coisa, isto depende do gosto de cada um. O que pretendi fazer aqui foi mostrar como especificar mais de um arquivo de uma só vez. O uso de curingas será útil ao copiar arquivos, apagar, mover, renomear, e nas mais diversas partes do sistema. Alias esta é uma característica do GNU/Linux: permitir que a mesma coisa possa ser feita com liberdade de várias maneiras diferentes.

.

PSTREE

.

Mostra a estrutura de processos em execução no sistema em forma de árvore.

pstree [opções] [pid]

Onde:

pid
Número do processo que terá sua árvore listada. Se omitido, lista todos os processos.

opções
-a
Mostra opções passadas na linha de comando.

-c
Mostra toda a estrutura (inclusive sub-processos do processo pai).

-G
Usa caracteres gráficos no desenho da árvore de processos.

-h
Destaca o processo atual e seus antecessores.

-H [pid]
Destaca o processo especificado.

-l
Não faz quebra de linha

-n
Classifica pelo número PID ao invés do nome.

-p
Mostra o número PID entre parênteses após o nome do processo.

-u
Mostra também o dono do processo.

-U
Usa o conjunto de caracteres Unicode para o desenho da árvore

.

FECHANDO UM PROGRAMA QUANDO NÃO SE SABE COMO SAIR

.

Muitas vezes quando se esta iniciando no GNU/Linux você pode executar um programa e talvez não saber como fecha-lo. Este capítulo do guia pretende ajuda-lo a resolver este tipo de problema.

Isto pode também ocorrer com programadores que estão construindo seus programas e por algum motivo não implementam uma opção de saída, ou ela não funciona!

Em nosso exemplo vou supor que executamos um programa em desenvolvimento com o nome contagem que conta o tempo em segundos a partir do momento que é executado, mas que o programador esqueceu de colocar uma opção de saída. Siga estas dicas para finaliza-lo:

Normalmente todos os programas UNIX (o GNU/Linux também é um Sistema Operacional baseado no UNIX) podem ser interrompidos com o pressionamento das teclas e . Tente isto primeiro para finalizar um programa. Isto provavelmente não vai funcionar se estiver usando um Editor de Texto (ele vai entender como um comando de menu). Isto normalmente funciona para comandos que são executados e terminados sem a intervenção do usuário.

Caso isto não der certo, vamos partir para a força! ;-)

Mude para um novo console (pressionando e ), e faça o login como usuário root.

Localize o PID (número de identificação do processo) usando o comando: ps ax, aparecerão várias linhas cada uma com o número do processo na primeira coluna, e a linha de comando do programa na última coluna. Caso aparecerem vários processos você pode usar ps ax|grep contagem, neste caso o grep fará uma filtragem da saída do comando ps ax mostrando somente as linhas que tem a palavra "contagem". Para maiores detalhes, veja o comando grep

Feche o processo usando o comando kill PID, lembre-se de substituir PID pelo número encontrado pelo comando ps ax acima.

O comando acima envia um sinal de término de execução para o processo (neste caso o programa contagem). O sinal de término mantém a chance do programa salvar seus dados ou apagar os arquivos temporários que criou e então ser finalizado, isto depende do programa.

Alterne para o console onde estava executando o programa contagem e verifique se ele ainda está em execução. Se ele estiver parado mas o aviso de comando não está disponível, pressione a tecla . Frequentemente acontece isto com o comando kill, você finaliza um programa mas o aviso de comando não é mostrado até que se pressione .

Caso o programa ainda não foi finalizado, repita o comando kill usando a opção -9: kill -9 PID. Este comando envia um sinal de DESTRUIÇÃO do processo, fazendo ele terminar "na marra"!

Uma última dica: todos os programas estáveis (todos que acompanham as boas distribuições GNU/Linux) tem sua opção de saída. Lembre-se que quando finaliza um processo todos os dados do programa em execução podem ser perdidos (principalmente se estiver em um editor de textos), mesmo usando o kill sem o parâmetro -9.

Procure a opção de saída de um programa consultando o help, as páginas de manual, a documentação que acompanha o programa, info pages.

.

ELIMINANDO CARACTERES ESTRANHOS

.

As vezes quando um programa mal comportado é finalizado ou quando você visualiza um arquivo binário através do comando cat, é possível que o aviso de comando (prompt) volte com caracteres estranhos.

Para fazer tudo voltar ao normal, basta digitar reset e teclar ENTER. Não se preocupe, o comando reset não reiniciará seu computador (como o botão reset do seu computador faz), ele apenas fará tudo voltar ao normal.

Note que enquanto você digitar reset aparecerão caracteres estranhos ao invés das letras. Não se preocupe! Basta digitar corretamente e bater ENTER e o aviso de comando voltará ao normal

.

GREP

.

Procura por um texto dentro de um arquivo(s) ou no dispositivo de entrada padrão.

grep [expressão] [arquivo] [opções]

Onde:

expressão
palavra ou frase que será procurada no texto. Se tiver mais de 2 palavras você deve identifica-la com aspas "" caso contrário o grep assumirá que a segunda palavra é o arquivo!

arquivo
Arquivo onde será feita a procura.

opções
-A [número]
Mostra o [número] de linhas após a linha encontrada pelo grep.

-B [número]
Mostra o [número] de linhas antes da linha encontrada pelo grep.

-f [arquivo]
Especifica que o texto que será localizado, esta no arquivo [arquivo].

.

TOUCH

.

Muda a data e hora que um arquivo foi criado. Também pode ser usado para criar arquivos vazios. Caso o touch seja usado com arquivos que não existam, por padrão ele criará estes arquivos.

touch [opções] [arquivos]

Onde:

arquivos
Arquivos que terão sua data/hora modificados.

opções
-t MMDDhhmm[ANO.segundos]
Usa Mês (MM), Dias (DD), Horas (hh), minutos (mm) e opcionalmente o ANO e segundos para modificação do(s) arquivos ao invés da data e hora atual.

-a, --time=atime
Faz o touch mudar somente a data e hora do acesso ao arquivo.

-c, --no-create
Não cria arquivos vazios, caso os arquivos não existam.

-m, --time=mtime
Faz o touch mudar somente a data e hora da modificação.

-r [arquivo]
Usa as horas no [arquivo] como referência ao invés da hora atual.

Exemplos:

touch teste - Cria o arquivo teste caso ele não existir.

touch -t 10011230 teste - Altera da data e hora do arquivo para 01/10 e 12:30.

touch -t 120112301999.30 teste - Altera da data, hora ano, e segundos do arquivo para 01/12/1999 e 12:30:30.

touch -t 12011200 * - Altera a data e hora do arquivo para 01/12 e 12:00.

.

ECHO

.

Mostra mensagens. Este comando é útil na construção de scripts para mostrar mensagens na tela para o usuário acompanhar sua execução.

echo [mensagem]

A opção -n pode ser usada para que não ocorra o salto de linha após a mensagem ser mostrada

.

SHUTDOWN

.

Desliga/reinicia o computador imediatamente ou após determinado tempo (programável) de forma segura. Todos os usuários do sistema são avisados que o computador será desligado . Este comando somente pode ser executado pelo usuário root ou quando é usada a opção -a pelos usuários cadastrados no arquivo /etc/shutdown.allow que estejam logados no console virtual do sistema.

shutdown [opções] [hora] [mensagem]

hora
Momento que o computador será desligado. Você pode usar HH:MM para definir a hora e minuto, MM para definir minutos, +SS para definir após quantos segundos, ou now para imediatamente (equivalente a +0).

O shutdown criará o arquivo /etc/nologin para não permitir que novos usuários façam login no sistema (com exceção do root). Este arquivo é removido caso a execução do shutdown seja cancelada (opção -c) ou após o sistema ser reiniciado.

mensagem
Mensagem que será mostrada a todos os usuários alertando sobre o reinicio/desligamento do sistema.

opções
-h
Inicia o processo para desligamento do computador.

-r
Reinicia o sistema

-c
Cancela a execução do shutdown. Você pode acrescentar uma mensagem avisando aos usuários sobre o fato.

-a
Permite que os nomes de usuários contidos no arquivo /etc/shutdown.allow possam utilizar o shutdown para reinicializar/desligar o sistema. Deve ser colocado um nome de usuário por linha. O limite máximo de usuários neste arquivo é de 32.

Este arquivo é útil quando o shutdown é usado para controlar o pressionamento das teclas CTRL+ALT+DEL no /etc/inittab.

-k
Simula o desligamento/reinicio do sistema, enviando mensagem aos usuários.

-f
Não executa a checagem do sistema de arquivos durante a inicialização do sistema. Este processo é feito gravando-se um arquivo /fastboot que é interpretado pelos scripts responsáveis pela execução do fsck durante a inicialização do sistema.

-F
Força a checagem do sistema de arquivos durante a inicialização. É gravado um arquivo chamado /forcefsck que é interpretado pelos scripts responsáveis pela execução do fsck durante a inicialização do sistema.

-n
Faz com que o shutdown ignore a execução do init fechando todos os processos.

-t [num]
Faz com que o shutdown envie um sinal de término aos processos e aguarde [num] segundos antes de enviar o sinal KILL.

O shutdown envia uma mensagem a todos os usuários do sistema alertando sobre o desligamento durante os 15 minutos restantes e assim permite que finalizem suas tarefas. Após isto, o shutdown muda o nível de execução através do comando init para 0 (desligamento), 1 (modo monousuário), 6 (reinicialização). É recomendado utilizar o símbolo "&" no final da linha de comando para que o shutdown seja executado em segundo plano.

Quando restarem apenas 5 minutos para o reinicio/desligamento do sistema, o programa login será desativado, impedindo a entrada de novos usuários no sistema.

O programa shutdown pode ser chamado pelo init através do pressionamento da combinação das teclas de reinicialização CTRL+ALT+DEL alterando-se o arquivo /etc/inittab. Isto permite que somente os usuários autorizados (ou o root) possam reinicializar o sistema.

Exemplos:

"shutdown -h now" - Desligar o computador imediatamente.

"shutdown -r now" - Reinicia o computador imediatamente.

"shutdown 19:00 A manutenção do servidor será iniciada às 19:00" - Faz o computador entrar em modo monousuário (init 1) às 19:00 enviando a mensagem A manutenção do servidor será iniciada às 19:00 a todos os usuários conectados ao sistema.

"shutdown -r 15:00 O sistema será reiniciado às 15:00 horas" - Faz o computador ser reiniciado (init 6) às 15:00 horas enviando a mensagem O sistema será reiniciado às 15:00 horas a todos os usuários conectados ao sistema.

shutdown -r 20 - Faz o sistema ser reiniciado após 20 minutos.

shutdown -c - Cancela a execução do shutdown.

shutdown -t 30 -r 20 - Reinicia o sistema após 20 minutos, espera 30 segundos após o sinal de término para enviar o sinal KILL a todos os programas abertos.
-h, --no-filename
Não mostra os nomes dos arquivos durante a procura.

-i, --ignore-case
Ignora diferença entre maiúsculas e minúsculas no texto procurado e arquivo.

-n, --line-number
Mostra o nome de cada linha encontrada pelo grep.

-E
Ativa o uso de expressões regulares.

-U, --binary
Trata o arquivo que será procurado como binário.

Se não for especificado o nome de um arquivo ou se for usado um hífen "-", grep procurará a string no dispositivo de entrada padrão. O grep faz sua pesquisa em arquivos texto. Use o comando zgrep para pesquisar diretamente em arquivos compactados com gzip, os comandos e opções são as mesmas.

Exemplos: grep "capitulo" texto.txt, ps ax|grep inetd, grep "capitulo" texto.txt -A 2 -B 2

.

CMP

.

Compara dois arquivos de qualquer tipo (binário ou texto). Os dois arquivos especificados serão comparado e caso exista diferença entre eles, é mostrado o número da linha e byte onde ocorreu a primeira diferença na saída padrão (tela) e o programa retorna o código de saída 1.

cmp [arquivo1] [arquivo2] [opções]

Opções:

arquivo1/arquivo2
Arquivos que serão comparados.

opções
-l
Mostra o número do byte (hexadecimal) e valores diferentes de bytes (octal) para cada diferença.

-s
Não mostra nenhuma diferença, só retorna o código de saída do programa.

Use o comando zcmp para comparar diretamente arquivos binários/texto compactados com gzip.

Exemplo: cmp teste.txt teste1.txt

.

DIFF

.

Compara dois arquivos e mostra as diferenças entre eles. O comando diff é usado somente para a comparação de arquivos em formato texto. As diferenças encontradas podem ser redirecionadas para um arquivo que poderá ser usado pelo comando patch para aplicar as alterações em um arquivo que não contém as diferenças. Isto é útil para grandes textos porque é possível copiar somente as modificações (geradas através do diff, que são muito pequenas) e aplicar no arquivo para atualiza-lo (através do patch) ao invés de copiar a nova versão. Este é um sistema de atualização muito usado na atualização dos código fonte do kernel do GNU/Linux.

diff [diretório1/arquivo1] [diretório2/arquivo2] [opções]

Opções:

diretório1/arquivo1 diretório2/arquivo2
Arquivos /diretórios que serão comparados. Normalmente é usado como primeiro arquivo/diretório o mais antigo e o mais novo como segundo.

opções
-lines [num]
Gera a diferença com [num] linhas de contexto. Por padrão o diff gera um arquivo com 2 linhas que é o mínimo necessário para o correto funcionamento do patch.

-a
Compara os dois arquivos como arquivos texto.

-b
Ignora espaços em branco como diferenças.

-B
Ignora linhas em branco inseridas ou apagadas nos arquivos.

-i
Ignora diferenças entre maiúsculas e minúsculas nos arquivos.

-H
Usa análise heurística para verificar os arquivos.

-N
Em uma comparação de diretórios, se o arquivo apenas existe em um diretório, trata-o como presente mas vazio no outro diretório.

-P
Em uma comparação de diretórios, se o arquivos apenas existe no segundo diretório, trata-o como presente mas vazio no primeiro diretório.

-q
Mostra somente se os dois arquivos possuem diferenças. Não mostra as diferenças entre eles.

-r
Compara diretórios e sub-diretórios existentes.

-S [nome]
Inicia a comparação de diretórios pelo arquivo [nome]. É útil quando cancelamos uma comparação.

-t
Aumenta a tabulação das diferenças encontradas.

-u
Usa o formato de comparação unificado.

Use o comando zdiff para comparar diretamente arquivos compactados pelo utilitário gzip

Use o comando sdiff para visualizar as linhas diferentes entre os dois arquivos em formato texto simples.

Exemplo:

diff texto.txt texto1.txt - Compara o arquivo texto.txt com texto1.txt e exibe suas diferenças na tela.

diff -Bu texto.txt texto1.txt - Compara o arquivo texto.txt com texto1.txt ignorando linhas em branco diferentes entre os dois arquivos e usando o formato unificado.

diff texto.txt texto1.txt >texto.diff - Compara o arquivo texto.txt com texto1.txt e gera um arquivo chamado texto.diff contendo a diferença entre eles. Este arquivo poderá ser usado pelo patch para aplicar as diferenças existente entre os dois no arquivo texto.txt.

diff -r /usr/src/linux-2.2.13 /usr/src/linux-2.2.14 >patch-2.2.14.diff - Compara o diretório e sub-diretórios linux-2.2.13 e linux-2.2.14 e grava as diferenças entre eles no arquivo patch-2.2.14.diff

.

PR

.

Página arquivos texto ou a entrada padrão para impressão. Este comando faz a paginação de um arquivo texto e opcionalmente ajusta o número de colunas e mostra o resultado na saída padrão.

pr [opções] [arquivo]

Onde:

arquivo
Arquivo que será paginado para impressão.

opções
+[NUM]
Inicia a numeração de páginas na página [PAGINA]

-[NUM]
Mostra a saída com [NUM] colunas.

-c
Imprime o caracter CTRL como "^" na saída padrão.

-F, -f
Usa avanço de página ao invés de linhas em branco para separar páginas.

-e[caracter][tamanho]
Usa o caracter [caracter] como tabulação (o padrão é tab) e o espaço da tabulação [tamanho].

-h [nome]
Mostra [nome] ao invés do nome do arquivo no cabeçalho.

-l [num]
Define o número máximo de linhas por página para [num].

-m
Imprime vários arquivos em paralelo, um por coluna.

-r
Oculta mensagens de erro de abertura de arquivos.

-w [num]
Ajusta a largura da página para [num] colunas (o padrão é 72).

Exemplo: pr -l 50 -h "Teste do comando pr" teste.txt

.

CUT

.

Mostra seções de cada linha do arquivo dependendo das opções passadas ao programa.

cut [opções] [arquivo]

Onde:

arquivo
Arquivo que será verificado pelo comando cut.

opções
-b, --bytes [bytes]
Mostra somente a lista de [bytes] do arquivo.

-c, --characters [numero]
Mostra somente o [número] de caracteres no arquivo. É semelhante a opção "-b" mas tabs e espaços são tratados como qualquer caracter.

-f, --field [campos]
Mostra somente a lista de [campos].

-d, --delimite [delimitador]
Para uso com a opção -f, os campos são separados pelo primeiro caracter em [delimitador] ao invés de tabulações.

-s
Para uso com a opção -f, somente mostra linhas que contém o caracter separador de campos.

Devem ser especificadas opções para o funcionamento deste comando. Os bytes, campos e delimitadores podem ser especificados através de intervalos de caracteres (usando a-z), através de vírgulas (a,b,d) ou da combinação entre eles.

cut -b 1,3 /etc/passwd - Pega a primeira e terceira letra (byte) de cada linha do arquivo /etc/passwd

cut -b 1,3-10 /etc/passwd - Pega a primeira letra (byte) e terceira a décima letra de cada linha do arquivo /etc/passwd.

cut -c 1,3-10 /etc/passwd - Pega o primeiro caracter e terceiro ao décimo caracter de cada linha do arquivo /etc/passwd

.

PING

.

Verifica se um computador está disponível na rede. Este comando é muito utilizado por alguns programas de conexão e administradores para verificar se uma determinada máquina está conectada na rede e também para verificar o tempo de resposta de cada máquina da rede. O ping envia pacotes ICMS ECHO_REQUEST para um computador, este quando recebe o pacote envia uma resposta ao endereço de origem avisando que está disponível na rede.

ping [opções][IP/DNS]

onde:

IP/dns
Endereço IP ou nome DNS do endereço.

opções
-c [num]
Envia num pacotes ao computador de destino.

-f
Flood ping. Envia novos pacotes antes de receber a resposta do pacote anterior. Para cada requisição enviada, um "." é mostrado na tela e para cada resposta recebida, um backspace é mostrado. Somente o usuário root pode utilizar esta opção e pode te auxiliar muito na detecção de erros de transmissão de pacotes em interfaces das máquinas em sua rede.

-i [seg]
Aguarda [seg] segundos antes de enviar cada pacote.

-q
Não mostra as requisições enquanto são enviadas, somente mostra as linhas de sumário no inicio e término do programa.

-s [tamanho]
Especifica o tamanho do pacote que será enviado.

-v, --verbose
Saída detalhada, tanto os pacotes enviados como recebidos são listados.

Exemplo: ping 192.168.1.1, ping www.debian.org

.

FINGER

.

Mostra detalhes sobre os usuários de um sistema. Algumas versões do finger possuem bugs e podem significar um risco para a segurança do sistema. É recomendado desativar este serviço na máquina local.

finger [usuário] [usuário@host]

Onde:

usuário
Nome do usuário que deseja obter detalhes do sistema. Se não for digitado o nome de usuário, o sistema mostra detalhes de todos os usuários conectados no momento.

usuário@host
Nome do usuário e endereço do computador que deseja obter detalhes.

-l
Mostra os detalhes de todos os usuários conectados no momento. Entre os detalhes, estão incluídos o nome do interpretador de comandos (shell) do usuário, diretório home, nome do usuário, endereço, etc. Estes dados são lidos de /etc/passwd.

-p
Não exibe o conteúdo dos arquivos .plan e .project

Se for usado sem parâmetros, mostra os dados de todos os usuários conectados atualmente ao seu sistema.

Exemplo: finger, finger root

.

FTP

.

Permite a transferência de arquivos do computador remoto/local e vice versa. O file transfer protocol é o sistema de transmissão de arquivos mais usado na Internet. É requerida a autenticação do usuário para que seja permitida a conexão. Muitos servidores ftp disponibilizam acesso anônimo aos usuários, com acesso restrito.

Uma vez conectado a um servidor ftp, você pode usar a maioria dos comandos do GNU/Linux para operá-lo.

ftp [ip/dns]

Abaixo alguns dos comandos mais usados no FTP:

ls
Lista arquivos do diretório atual.

cd [diretório]
Entra em um diretório.

get [arquivo]
Copia um arquivo do servidor ftp para o computador local. O arquivo é gravado, por padrão, no diretório onde o programa ftp foi executado.

hash [on/off]
Por padrão esta opção está desligada. Quando ligada, faz com que o caracter "#" seja impresso na tela indicando o progresso do download.

mget [arquivos]
Semelhante ao get, mas pode copiar diversos arquivos e permite o uso de curingas.

send [arquivo]
Envia um arquivo para o diretório atual do servidor FTP (você precisa de uma conta com acesso a gravação para fazer isto).

prompt [on/off]
Ativa ou desativa a pergunta para a cópia de arquivo. Se estiver como off assume sim para qualquer pergunta.

Exemplo: ftp ftp.debian.org

.

WHO

.

Mostra quem está atualmente conectado no computador. Este comando lista os nomes de usuários que estão conectados em seu computador, o terminal e data da conexão.

who [opções]

onde:

opções
-H, --heading
Mostra o cabeçalho das colunas.

-b, --boot
Mostra o horário do último boot do sistema.

-d, --dead
Mostra processos mortos no sistema.

-i, -u, --idle
Mostra o tempo que o usuário está parado em Horas:Minutos.

-m, i am
Mostra o nome do computador e usuário associado ao nome. É equivalente a digitar who i am ou who am i.

-q, --count
Mostra o total de usuários conectados aos terminais.

-r, --runlevel
Mostra o nível de execução atual do sistema e desde quando ele está ativo.

-T, -w, --mesg
Mostra se o usuário pode receber mensagens via talk (conversação).

+ O usuário recebe mensagens via talk

- O usuário não recebe mensagens via talk.

? Não foi possível determinar o dispositivo de terminal onde o usuário está conectado

.

NETSTAT

.

Mostra conexões de rede, tabela de roteamento, estatísticas de interfaces, conexões masquerade, e mensagens.

netstat [opções]

Onde:

opções
-i [interface]
Mostra estatísticas da interface [interface].

-M, --masquerade
Se especificado, também lista conexões masquerade.

-n, --numeric
Usa endereços numéricos ao invés de tentar resolver nomes de hosts, usuários e portas.

-c, --continuous
Mostra a listagem a cada segundo até que a CTRL+C seja pressionado.

-l
Lista sockets aguardando por conexão.

-t, --tcp
Lista conexões TCP.

-u, --udp
Lista conexões UDP.

Se não for especificada nenhuma opção, os detalhes das conexões atuais serão mostrados.

Exemplos: netstat -n, netstat -lt, netstat -M

.

TRACEROUTE

.

Mostra o caminho percorrido por um pacote para chegar ao seu destino. Este comando mostra na tela o caminho percorrido entre os Gateways da rede e o tempo gasto de retransmissão. Este comando é útil para encontrar computadores defeituosos na rede caso o pacote não esteja chegando ao seu destino.

traceroute [opções] [host/IP de destino]

Onde:

host/IP destino
É o endereço para onde o pacote será enviado (por exemplo, www.debian.org). Caso o tamanho do pacote não seja especificado, é enviado um pacote de 38 bytes.

opções
-l
Mostra o tempo de vida do pacote (ttl)

-m [num]
Ajusta a quantidade máximas de ttl dos pacotes. O padrão é 30.

-n
Mostra os endereços numericamente ao invés de usar resolução DNS.

-p [porta]
Ajusta a porta que será usada para o teste. A porta padrão é 33434.

-r
Pula as tabelas de roteamento e envia o pacote diretamente ao computador conectado a rede.

-s [end]
Usa o endereço IP/DNS [end] como endereço de origem para computadores com múltiplos endereços IPs ou nomes.

-v
Mostra mais detalhes sobre o resultado do traceroute.

-w [num]
Configura o tempo máximo que aguardará por uma resposta. O padrão é 3 segundos.

Exemplos: traceroute www.debian.org, traceroute www.guiafoca.org

.

REDIRECIONAMENTOS E PIPE

.

O funcionamento dos recursos de direcionamento de entrada e saída do sistema GNU/Linux.

>

Redireciona a saída padrão de um programa/comando/script para algum dispositivo ou arquivo ao invés do dispositivo de saída padrão (tela). Quando é usado com arquivos, este redirecionamento cria ou substitui o conteúdo do arquivo.

Por exemplo, você pode usar o comando ls para listar arquivos e usar ls >listagem para enviar a saída do comando para o arquivo listagem. Use o comando cat para visualizar o conteúdo do arquivo listagem.

O mesmo comando pode ser redirecionado para o segundo console /dev/tty2 usando: ls >/dev/tty2, o resultado do comando ls será mostrado no segundo console (pressione ALT e F2 para mudar para o segundo console e ALT e F1 para retornar ao primeiro). O mesmo resultado pode ser obtido com o comando ls 1>/dev/tty2, sendo que o número 1 indica que será capturada a saída padrão do comando.

Para redirecionar somente a saída de erros do comando ls, use a sintaxe: ls 2>/tmp/erros-do-ls

>>

Redireciona a saída padrão de um programa/comando/script para algum dispositivo ou adiciona as linhas ao final de arquivo ao invés do dispositivo de saída padrão (tela). A diferença entre este redirecionamento duplo e o simples, é se caso for usado com arquivos, adiciona a saída do comando ao final do arquivo existente ao invés de substituir seu conteúdo. .

Por exemplo, você pode acrescentar a saída do comando ls ao arquivo listagem do capítulo anterior usando ls / >>listagem. Use o comando cat para visualizar o conteúdo do arquivo listagem.

<

Direciona a entrada padrão de arquivo/dispositivo para um comando. Este comando faz o contrário do anterior, ele envia dados ao comando.

Você pode usar o comando cat <teste.txt para enviar o conteúdo do arquivo teste.txt ao comando cat que mostrará seu conteúdo (é claro que o mesmo resultado pode ser obtido com cat teste.txt mas este exemplo serviu para mostrar a funcionalidade do <).

<<

Este redirecionamento serve principalmente para marcar o fim de exibição de um bloco. Este é especialmente usado em conjunto com o comando cat, mas também tem outras aplicações. Por exemplo:

cat <"

A principal diferença entre o "|" e o ">", é que o Pipe envolve processamento entre comandos, ou seja, a saída de um comando é enviado a entrada do próximo e o ">" redireciona a saída de um comando para um arquivo/dispositivo.

Você pode notar pelo exemplo acima (ls -la | more) que ambos ls e more são comandos porque estão separados por um "|". Se um deles não existir ou estiver digitado incorretamente, será mostrada uma mensagem de erro.

Um resultado diferente seria obtido usando um ">" no lugar do "|"; A saída do comando ls -la > more seria gravada em um arquivo chamado more.

tee

Envia ao mesmo tempo o resultado do programa para a saída padrão (tela) e para um arquivo. Este comando deve ser usado com o pipe "|".

comando |tee [arquivo]

Exemplo: ls -la | tee listagem.txt, a saída do comando será mostrada normalmente na tela e ao mesmo tempo gravada no arquivo listagem.txt

.

GUIA DE COMANDOS LINUX

.

Sobre os comandos do Linux

.

comando [opções] [argumentos]

.

Descrição:

Os comandos do Linux são utilizados na linha de comandos (prompt) do sistema: as opções definem parâmetros do comando e usualmente começam com o caractere "-" seguido de uma ou mais letras; e os argumentos definem dados a serem usados no processamento do comando.

.

O responsável por interpretar e executar um comando é o shell do usuário.

.

Um comando pode ser implementado pelo próprio shell (builtin command) ou pode ser uma aplicação presente em um dos diretórios do sistema como, por exemplo, /bin, /sbin, /usr/bin, etc.

.

Atualmente, acho que existem mais de 3 mil comandos a disposição do usuário de GNU/Linux.

.

Exemplos:

Por exemplo, para listar os arquivos e os diretórios filhos do diretório atual, basta digitar:

.

ls

.

Já o comando:

.

ls -al :: Exibe informações (tamanho, dono, grupo, etc) sobre os arquivos e os diretórios (opção l) e inclui na listagem os arquivos escondidos (opção a).
Importante: os arquivos escondidos no Linux possuem nome que começam com um ponto (".")

.

As opções podem possuir um ou mais argumentos.

.

Além disso, é possível existir argumentos que não pertençam a uma opção. Observe, por exemplo, o comando abaixo.

awk -F: -farq.txt /etc/passwd

Neste caso, temos o comando awk com duas opções (F e f) e três argumentos (:, arq.txt e /etc/passwd), sendo que o último argumento não pertence a nenhuma opção (é usada pelo comando).

Para obter informações sobre algum comando do Linux, digite man seguido do nome do comando. Por exemplo, para obter uma explicação sobre o comando ls digite

man ls

É também possível obter a lista dos parâmetros disponíveis usando o parâmetro/comando help.

Entrada e saída padrão dos comandos do Linux:

.

Temos no Linux a entrada padrão a saída padrão e a saída de erro.

.

stdin (standard input) - entrada padrão para os comandos do Linux. Normalmente, a entrada padrão é o teclado, mas é possível usar o redirecionador de saída para alterar a saída padrão.

.

Por exemplo:

.

ls > teste

.

ou

.

ls 1> teste

.

Cria o arquivo teste com o conteúdo do diretório atual.

stderr (standard error) - saída padrão para os erros encontrados durante a execução de um comando do Linux. Normalmente, a saída padrão é a tela da sessão onde o comando foi digitado, mas é possível usar o redirecionador de saída 2> para alterar a saída padrão.

.

Suponha que o diretório /meu_dir não exista. Portanto, o comando:

.

ls /meu_dir 2> teste

.

Cria o arquivo teste com a mensagem de erro relacionada a execução do comando acima.

.

É possível digitar mais de um comando de uma vez. Se ";" for usado para separar os comandos, então o sistema executa todos os comandos, independentemente do resultado.

.

man ls > teste; ls -l teste

.

Se "&&" for usado entre os comandos, um comando só é executado quando os comandos anteriores não apresentam erro.

.

man ls > teste && ls -l teste

.

Observações:

.

Neste Guia de Referências foi adotada a seguinte norma na apresentação dos comandos:

.

Opções/argumentos não obrigatórios (os usuários podem ou não digitá-los) estão entre colchetes.

argumentos obrigatórios (devem ser fornecidos pelos usuários) não são delimitados por nenhum símbolo.

.

Por exemplo, o comando:

.

cat [-n] arquivo

.

Possui uma opção (-n) e um argumento (arquivo), sendo que apenas o segundo deve ser obrigatoriamente informado pelo usuário.

.

Por exemplo, suponha que você queira exibir o conteúdo do arquivo teste.txt, então você pode digitar:

cat -n teste.txt

.

ou

.

cat teste.txt

.

Onde o primeiro comando numera as linhas do arquivo e o segundo comando apenas exibe o arquivo.

.

Linux comandos de manipulação de diretório

.

mkdir
cria um diretório

exemplo: mkdir docs

.

rmdir
exclui um diretorio (se estiver vazio)

.

rm -rf
exclui um diretório e todo o seu conteúdo

.

cd
entra num diretório (exemplo: cd docs) ou retorna para HOME

.

cd ~
vai direto para o diretório home do usuário logado.

.

cd -
volta ao último diretório acessado

.

pwd
exibe o local do diretório atual

.

ls
listar o conteúdo do diretório

.

ls -alh
mostra o conteúdo detalhado do diretório

.

ls -ltr
mostra os arquivos no formado longo(l) em ordem inversa(r) de data (t)

.

du -msh
mostra o tamanho do diretório em Megabytes

.

whereis
mostra onde se encontra determinado arquivo (binários)

exemplo: whereis samba

.

which
mostra qual arquivo binário está sendo chamado pelo shell quando chamado via linha de comando

.

Para obter uma listagem de diretórios em sistemas GNU/Linux, ordenados do maior para o menor, use o comando:

du -Sk | sort -nr | more

.

ou

.

du -Sh | sort -nr | more

.

SABER O TAMANHO DE CADA DIRETÓRIO OU SUBDIRETÓRIO:

.

du -ach --max-depth=1 /var/

du -ach --max-depth=1 /var/| sort -nr

du -ach --max-depth=1 /var/| sort -nr | more

.

CRIAR DIRETÓRIOS DENTRO DE DIRETORIOS:

mkdir -p /teste/teste1/teste2/teste3

.

CRIAR UMA ÁRVORE COMPLETA DE DIRETÓRIOS:

mkdir -p docs/{img/{fotos,icons,wallpapers,svg},textos/{artigos,man},tmp}

.

A REGRA AQUI É A SEGUINTE:

.

para cada pasta que conterá subpastas use "nome/{}"
dentro das chaves coloque os nomes separados por vírgula não esquecendo de usar o parâmetro '-p' no começo do comando.

.

Linux comandos para manipulação de arquivos

.

cat
mostra o conteúdo de um arquivo binário ou texto

tac
semelhante ao cat mas inverte a ordem

tail
mostra as últimas 10 linhas de um arquivo (util para ler logs)

head
mostra as primeiras 10 linhas de um arquivo

less
mostra o conteúdo de um arquivo de texto com controle

vi
editor de ficheiros de texto

vim
versão melhorada do editor supracitado

rm
remoção de arquivos (também remove diretórios)

cp
copia diretórios

'cp -r'
copia recursivamente

mv
move ou renomeia arquivos e diretórios

chmod
altera as permissões de arquivos ou directórios

chown
altera o dono de arquivos ou diretórios

cmd>txt
cria um novo arquivo(txt) com o resultado do comando(cmd)

cmd>>txt
adiciona o resultado do comando(cmd) ao fim do arquivo(txt)

touch
touch um_titulo.txt
cria um arquivo um_titulo.txt vazio; também altera data e hora de modificação para agora

> arquivo.txt
mais rápido que o touch para criação de arquivos

split
divide um arquivo

recode recodifica um arquivo ex: recode iso-8859-15..utf8 file_to_change.txt

[mc] poderoso editor de texto

.

LINUX COMANDOS PARA ADMINISTRAR

.

man
mostra informações sobre um comando

adduser
adiciona usuários

addgroup
adiciona grupos

apropos
realiza pesquisa por palavra ou string

dmesg
exibe as mensagens da inicialização(log)

du
exibe estado de ocupação dos discos/partições

find comando de busca ex: find ~/ -cmin -3

userdel
remove usuários

chfn
altera informação relativa a um utilizador

who
informa quem está logado no sistema

whoami
informa com qual usuário você está logado

passwd
modifica senha (password) de usuários

umask
define padrões de criação de arquivos e diretórios

ps
mostra os processos correntes

ps -aux
mostra todos os processos correntes no sistema

kill
manda um sinal para um processo. Os sinais SIGTERM e SIGKILL encerram o processo

killall
manda um sinal para todos os processos

su
troca para o super-usuário root (é exigida a senha)

su user
troca para o usuário especificado em 'user' (é exigida a senha)

chown
altera a propriedade de arquivos e pastas (dono)

env
mostra variaveis do sistema

.

COMANDOS PARA ADMINISTRAÇÃO DE REDE

ifconfig
mostra as interfaces de redes ativas e as informações relacionadas a cada uma delas

.

route
mostra as informações referentes as rotas

.

mtr
mostra rota até determinado IP

.

nmap
lista as portas de sistemas remotos/locais atras de portas abertas e pode checar sistema operacional em execução no host remoto

.

netstat
exibe as portas e protocolos abertos no sistema

.

iptraf
analisador de trafego da rede com interface gráfica baseada em diálogos

.

tcpdump
sniffer muito popular. Sniffer é uma ferramenta que "ouve" os pacotes que estão passando pela rede

.

traceroute
traça uma rota do host local até o destino mostrando os roteadores intermediários

.

nslookup
consultas a serviços DNS

.

dig
consultas a serviços DNS

.

LINUX COMMAND LINE QUICK REFERENCE - LINUX COMANDOS GUIA DE REFERÊNCIA RÁPIDO

.

1

Linux Comandos de Informação do sistema

cat /etc/*-release # Mostra qual sistema Linux está usando - Show which version of GNU/Linux installed

uptime # Show how long the system has been running + load

hostname # Show system host name

hostname -I # Display the IP addresses of the host

last reboot # Show system reboot history

date # Show the current date and time - Mostra o dia e a hora atual

cal # Show this month's calendar - Mostra o mês do calendário que estamos

w # Display who is online - Mostra quem está online

whoami # Who you are logged in as - Mostra o nome que você está logado

.

2

Linux Comandos Hardware Information - Informação do Hardware

dmesg # Display messages in kernel ring buffer

cat /proc/cpuinfo # Display CPU information

cat /proc/meminfo # Display memory information

free -h # Display free and used memory ( -h for human readable, -m for MB, -g for GB.)

lspci -tv # Display PCI devices

lsusb -tv # Display USB devices

dmidecode # Display DMI/SMBIOS (hardware info) from the BIOS

hdparm -i /dev/sda # Show info about disk sda

hdparm -tT /dev/sda # Perform a read speed test on disk sda

badblocks -s /dev/sda # Test for unreadable blocks on disk sda

.

3

Linux Comandos Performance Monitoring and Statistics - Monitoramento estatistico de performance

top # Display and manage the top processes

htop # Interactive process viewer (top alternative)

mpstat 1 # Display processor related statistics

vmstat 1 # Display virtual memory statistics

iostat 1 # Display I/O statistics

tail 100 /var/log/messages # Display the last 100 syslog messages (Use /var/log/syslog for Debian based systems.)

tcpdump -i eth0 # Capture and display all packets on interface eth0

tcpdump -i eth0 'port 80' # Monitor all traffic on port 80 ( HTTP )

lsof # List all open files on the systemlsof

-u user # List files opened by user

free -h # Display free and used memory ( -h for human readable, -m for MB, -g for GB.)

watch df -h # Execute "df -h", showing periodic updates

.

4

Linux Comandos User Information and Management - Informações do usuário e gerenciamento

id # Display the user and group ids of your current user.

last # Display the last users who have logged onto the system.

who # Show who is logged into the system.

w # Show who is logged in and what they are doing.

groupadd test # Create a group named "test".

useradd -c "John Smith" -m john # Create an account named john, with a comment of "John Smith" and create the user's home directory.

userdel john # Delete the john account.

usermod -aG sales john # Add the john account to the sales group

.

5

Linux Comandos File and Directory Commands - Linux Comandos de arquivos e diretórios

ls -al # List all files in a long listing (detailed) format

pwd # Display the present working directory

mkdir directory # Create a directory

rm file # Remove (delete) file

rm -r directory # Remove the directory and its contents recursively

rm -f file # Force removal of file without prompting for confirmation

rm -rf directory # Forcefully remove directory recursively

cp file1 file2 # Copy file1 to file2

cp -r source_directory destination # Copy source_directory recursively to destination . If destination exists, copy source_directory into destination , otherwise create destination with the contents of source_directory .

mv file1 file2 # Rename or move file1 to file2 . If file2 is an existing directory, move file1 into directory file2

ln -s /path/to/file linkname # Create symbolic link to linkname

touch file # Create an empty file or update the access and modification times of file.

cat file # View the contents of file

less file # Browse through a text file

head file # Display the first 10 lines of file

tail file # Display the last 10 lines of file

tail -f file # Display the last 10 lines of file and "follow" the file as it grows.

.

6

Linux Comandos Process Management - Gerenciamento de processos

ps # Display your currently running processes

ps -ef # Display all the currently running processes on the system.

ps -ef | grep processname # Display process information for processname

top # Display and manage the top processes

htop # Interactive process viewer (top alternative)

kill pid # Kill process with process

HanSmi, [17.02.18 21:03]
ID of p id

killall processname # Kill all processes named

process_name_program & # Start program in the background

bg # Display stopped or background jobs

fg # Brings the most recent background job to foreground

fg n # Brings job n to the foreground

.

7

Linux Comandos File Permissions - Permissões de arquivo

U = User
G = Group
W = World
r = Read
w = write
x = execute
- = no access

.

8

Linux Comandos Networking - Gerenciamento de rede

ifconfig -a # Display all network interfaces and ip address

ifconfig eth0 # Display eth0 address and details

ethtool eth0 # Query or control network driver and hardware settings

ping host # Send ICMP echo request to hostwhois domain# Display whois information for domain

dig domain # Display DNS information for domain

dig -x IP_ADDRESS # Reverse lookup of IP_ADDRESS

host domain # Display DNS ip address for domain

hostname -i # Display the network address of the host name.

hostname -I # Display all local ip addresses

wget http://domain.com/file # Download http://domain.com/file

netstat -nutlp # Display listening tcp and udp ports and corresponding programs

.

9

Linux Comandos Archives (TAR Files) - Arquivos TAR

tar cf archive.tar directory # Create tar named archive.tar containing directory .

tar xf archive.tar # Extract the contents from archive.tar .

tar czf archive.tar.gz directory # Create a gzip compressed tar file name archive.tar.gz .

tar xzf archive.tar.gz # Extract a gzip compressed tar file.

tar cjf archive.tar.bz2 directory # Create a tar file with bzip2 compression

tar xjf archive.tar.bz2 # Extract a bzip2 compressed tar file.

.

10

Linux Comandos Instalação de pacotes

tar zxvf sourcecode.tar.gz
cd sourcecode
./configure
make
make install

.

11

Linux Comandos de busca

grep pattern file # Search for pattern in file

grep -r pattern directory # Search recursively for pattern in directory

locate name # Find files and directories by name

find /home/john -name 'prefix*' # Find files in /home/john that start with "prefix".

find /home -size +100M # Find files larger than 100MB in /home

.

12

Linux Comandos SSH Logins

ssh host # Connect to host as your local username.

ssh user@host # Connect to host as user

ssh -p port user@host # Connect to host using port

.

13

Linux Comandos Transferencia de arquivos - File Transfers

scp file.txt server:/tmp # Secure copy file.txt to the /tmp folder on server

scp server:/var/www/*.html /tmp # Copy *.html files from server to the local /tmp folder.

scp -r server:/var/www /tmp # Copy all files and directories recursively from server to the current system's /tmp folder.

rsync -a /home /backups/ # Synchronize /home to /backups/home

rsync -avz /home
server:/backups/ # Synchronize files/directories between the local and remote system with compression enabled

.

14

Linux Comandos de uso de disco - Disk Usage

df -h # Show free and used space on mounted filesystems

df -i # Show free and used inodes on mounted filesystems

fdisk -l # Display disks partitions sizes and types

du -ah # Display disk usage for all files and directories in human readable format

du -sh # Display total disk usage off the current directory

.

15

Linux Comandos navegação de diretórios

Directory Navigation

cd .. # To go up one level of the directory tree. (Change into the parent directory.)

cd # Go to the $HOME directory

cd /etc # Change to the /etc directory

.

# Linux Comandos File/Directory Basics - Básicos para Diretórios e arquivos

ls
List files

cp
Copy files

mv
Rename files

rm
Delete files

ln
Link files

cd
Change directory

pwd
Print current directory name

mkdir
Create directory

rmdir
Delete directory

.

Linux Comandos File Viewing - Visualização de arquivos

cat
View files

less
Page through files

head
View file beginning

tail
View file ending

nl
Number lines

od
View binary data

xxd
View binary data

gv
View Postscript/PDF files

xdvi
View TeX DVI files

.

Linux Comandos File Creation and Editing - Editar e criar arquivos

emacs
Text editor

vim
Text editor

umask
Set default file protections

soffice
Edit Word/Excel/ PowerPoint docs

abiword
Edit Word documents

gnumeric
Edit Excel documents

.

Linux Comandos File Properties - Propriedades de arquivos

stat
Display file attributes

wc
Count bytes/words/lines

du
Measure disk usage

file
Identify file types

touch
Change file timestamps

chown
Change file owner

chgrp
Change file group

chmod
Change file protections

chattr
Change advanced file attributes

lsattr
List advanced file attributes

.

Linux Comandos File Location - Localização de arquivos

find
Locate files

slocate
Locate files via index

which
Locate commands

whereis
Locate standard files

.

Linux Comandos File Text Manipulation - Manupulação de arquivos de texto

grep
Search text for matching lines

cut
Extract columns

paste
Append columns

tr
Translate characters

sort
Sort lines

uniq
Locate identical lines

tee
Copy stdin to a file and o stdout simultaneously

.

Linux Comandos File Compression - Compressão de arquivos

gzip
Compress files (GNU Zip)

compress
Compress files (Unix)

bzip2
Compress files (BZip2)

zip
Compress files (Windows Zip)

.

Linux Comandos File Comparison - Comparação de arquivos

diff
Compare files line by line

comm
Compare sorted files

cmp
Compare files byte
by byte

md5sum
Compute checksums

.

Linux Comandos Disks and Filesystems - Sistema de arquivos e discos

df
Show free disk space

mount
Make a disk accessible

fsck
Check a disk for errors

sync
Flush disk caches

.

Linux Comandos Backups and Remote Storage - Gerenciamento remoto e Backups

mt
Control a tape drive

dump
Back up a disk

restore
Restore a dump

tar
Read/write tape archives

cdrecord
Burn a CD

rsync
Mirror a set of files

.

Linux Comandos File/Directory Basics - Básicos para Diretórios e arquivos

ls
List files

cp
Copy files

mv
Rename files

rm
Delete files

ln
Link files

cd
Change directory

pwd
Print current directory
name

mkdir
Create directory

rmdir
Delete directory

.

SHELL SCRIPT LINUX BASH

.

COMANDOS MAIS USADOS DO BASH EM SHELL SCRIPT

.

Qual é o seu usuário?

.

Se você não tem certeza qual é o seu usuário, use o comando "whoami" sem aspas, para saber.

.

Como o prompt de usuário normal pode ser diferente para cada um, podemos em algum momento usar "prompt$" para indicar o prompt da linha de comando.

.

ESCOLHER O DIRETÓRIO ONDE COLOCAR O SCRIPT

Para que o script possa ser executado de qualquer parte do sistema, mova-o para um diretório que esteja no seu PATH. Para ver quais são estes diretórios, abra agora o terminal pelo menu do sistema e digite o comando:

echo $PATH

.

Se não tiver permissão de mover para um diretório do PATH, deixe-o dentro de seu diretório pessoal ($HOME). Digite no terminal: $HOME

.

CRIAR O ARQUIVO E COLOCAR NELE OS COMANDOS

Abra pelo menu do sistema o editor de texto gedit, pluma, leafpad, mousepad ou outro editor de textos de sua preferência para colocar todos os comandos dentro do arquivo.

.

COLOQUE A CHAMADA DO SHELL NA PRIMEIRA LINHA

A primeira linha do script deve ser:

#!/bin/bash

Para que ao ser executado, o sistema saiba que é o bash quem irá interpretar estes comandos.

.

TORNE O SCRIPT UM ARQUIVO EXECUTÁVEL

Use o seguinte comando para que seu script seja reconhecido pelo sistema como um comando executável:

chmod +x nome-do-teu-shellscript.sh

.

Para permitir que todos os usuários possam executar o script:

chmod a+x nome-do-teu-shellscript.sh

.

EXECUTE O SCRIPT

./nome-do-teu-shellscript.sh (Aqui "./" representa o diretório atual)

/home/seu-usuário/bin/nome-do-teu-shellscript.sh (Aqui informa onde está o script para que o bash execute em outra pasta)

.

BASH EXECUTANDO COMANDOS

.

Shell script é uma linguagem de script usada em vários sistemas operacionais, com diferentes dialetos, dependendo do interpretador de comandos utilizado.

Um exemplo de interpretador de comandos é o bash, usado na grande maioria das distribuições GNU/Linux.

A maior parte dos usuários classificam shell script como uma linguagem de fácil aprendizagem. O primeiro passo é, saber o que se deseja fazer, então ver qual o código que executa este comando em shell e aí criar, basta escrever o código em algum editor de texto e salvar. Veja só por exemplo, que de tempos em tempos você quer saber informações do sistema, instalar programas, remover programas, converter/alterar arquivos, fazer backups, adicionar informações, remover informações, etc.

.

AGORA ABRE O TERMINAL E DIGITA COMANDOS, POR EXEMPLO, DIGITE ESTES COMANDOS ABAIXO UM DE CADA VEZ:

echo

ls

echo ''

echo ""

echo "Olá!"

printf 'Bem vindo ao bash!' (Aperte a tecla enter e digite: ls)

echo '#!/bin/bash'

echo "#!/bin/bash"

echo ; echo "Olá!" ; echo

echo -e 'Bom\nDia\nMundo!'

echo -e "Bom\nDia\nMundo!"

echo "Hello world!"

echo "Hello "world"!"

echo "Hello \"world\"!"

printf "Hello world" (Aperte a tecla enter e digite: cd ~)

pwd

ls -t

sleep 7

echo ; echo 'Olá!' ; sleep 3 ; ls -t

free -h -t

free -th

sleep 4

date

cal

du -h

uptime

df -h

clear

free -tmlh

df -a -h

df -k -l

df -T -m

echo ; whoami ; echo

ls ; echo ; pwd ; echo

echo ; ls -at ; echo

du *

ls -lah

du -hcs

du -ach

du -Sh

du -Sk

clear

echo ; echo 'df: Relata o espaço de disco usado pelo sistema (Usado e Livre)' ; echo

ls -hat

echo ; echo "du: Relata o espaço utilizado no disco de tal arquivo ou diretório" ; echo

whereis bash

VALOR="Linux"

echo $VALOR

echo $VALOR $VALOR

VALOR='ls -t'

$VALOR

echo $VALOR

clear

VALOR='free -h -t'

$VALOR

echo $VALOR

echo VALOR

read VALOR (aperte a tecla enter, digite: "ls" sem aspas e aperte enter.)

$VALOR

read VALOR (aperte a tecla enter, digite: "uptime" sem aspas e aperte enter.)

$VALOR

echo ; $VALOR ; echo ; $VALOR ; echo

echo ; $VALOR ; sleep 4 ; echo ; $VALOR ; echo

clear

unset VALOR

echo ; $VALOR

$VALOR

echo -e '\nOlá!\nVamos\nSaber\nOs\nComandos\ndo\nShellscript Linux!'

clear ; echo -e '\n \nOlá!\n \nVamos\n \nSaber\n \nOs\n \nComandos\n \ndo\n \nShellscript Linux!\n'

HOJE=$(lsblk)

echo "Informação sobre dispositivos de bloco: $HOJE"

clear

echo 'Informação sobre dispositivos de bloco: $HOJE'

unset HOJE

echo $HOJE

echo $((2*3))

echo $((2*4-2/2+3))

VALOR=44

echo $((VALOR*1))

echo $((VALOR*2))

echo $((VALOR*3))

VALOR=$((VALOR+1))

echo $VALOR

VALOR=$((VALOR+11))

echo $VALOR

VALOR=$((VALOR+1))

echo $VALOR

VALOR=$((VALOR+11))

echo $VALOR

unset VALOR

echo $VALOR

VALOR=$(uname -a)

echo $VALOR

HOJE=$(arch)

echo $HOJE

clear

echo "Informação sobre o kernel: $VALOR" ; echo ; echo "Informação sobre a arquitetura do sistema: $HOJE"

echo 'Informação sobre o kernel: $VALOR' ; echo ; echo 'Informação sobre a arquitetura do sistema: $HOJE'

echo ; echo 'Informação sobre o kernel: $VALOR' ; echo ; echo 'Informação sobre a arquitetura do sistema: $HOJE' ; echo

unset VALOR

unset HOJE

echo "Informação sobre o kernel: $VALOR" ; echo ; echo "Informação sobre a arquitetura do sistema: $HOJE"

echo 'Informação sobre o kernel: $VALOR' ; echo ; echo 'Informação sobre a arquitetura do sistema: $HOJE'

clear

printf "%-5s %-10s %-4s\n" No Nome Pontos

printf "%-5s %-10s %-4.2f\n" 1 Marta 8

printf "%-5s %-10s %-4.2f\n" 2 Joel 9

printf "%-5s %-10s %-4.2f\n" 3 Carlos 7

echo -e "\e[1;31m Este é o texto em vermelho \e[0m"

unset NUM

clear

exit

.

Muito bom que você digitou um comando de cada vez!!!

O comandos mais longos pode copiar e colar no terminal se quiser, mas no início seria melhor digitar...

Saiba que a partir deste momento você já está entendendo coisas extremamente úteis para escrever shellscript usando o Bash!

Uma coisa interessante sobre os comandos acima, é que para estudar eles, você não precisa estar conectado a internet.

Os comandos acima oferecem informações interessantes e úteis. Podemos colocar todos eles em um só script e executar. Dependendo do caso, é mais fácil que digitar um a um de cada vez toda vez que precisar.

.

SE PUDER, ANTES DE CONTINUAR EXECUTE OS COMANDOS ACIMA QUE TE CHAMARAM MAIS A ATENÇÃO DE NOVO POIS, EXECUTAR ELES É MUITO DIDÁTICO. NADA MELHOR QUE APRENDER PRATICANDO.

.

ASPAS SIMPLES ' E ASPAS DUPLAS ":

Aspas duplas permitem interpretar caracteres especiais.

Aspas simples desabilitam esta interpretação.

.

CARACTERES DE ESCAPE:

echo "Hello \"world\"!"

.

TODO SCRIPT ESCRITO PARA RODAR NO BASH COMEÇA COM:

#!/bin/bash

Após "#!/bin/bash" de um espaço entre linhas e então pode começar a digitar comandos.

.

Exemplo:

#!/bin/bash

clear

echo ; date ; echo ; sleep 4

echo ; cal ; echo ; sleep 4

echo ; uptime ; echo ; sleep 4

echo ; df -h ; echo ; sleep 4

echo ; free -html ; echo ; sleep 4

echo ; whoami ; echo ; sleep 4

echo ; pwd ; echo ; sleep 4

echo ; ls -at ; echo ; sleep 4

echo ; whereis bash ; echo ; sleep 4

echo ; echo 'Este é o fim do script 01-script.sh' ; echo ; sleep 4

exit

# Fim do script

.

ESTE SCRIPT ÚTIL E INOFENSIVO ACIMA SERÁ SALVO NA PASTA HOME, A PASTA DA CASINHA, USANDO UM EDITOR DE TEXTO COM O NOME DE:

01-script.sh

.

Posso melhorar/tornar mais amigável este script acima explicando sobre cada comando:

#!/bin/bash

clear

echo ; echo 'Hoje é data:' ; echo ; sleep 2

echo ; date ; echo ; sleep 4

echo ; echo 'Hoje pelo calendário é:' ; echo ; sleep 2

echo ; cal ; echo ; sleep 4

echo ; echo 'Esta máquina está funcionando a:' ; echo ; sleep 2

echo ; uptime ; echo ; sleep 4

echo ; echo 'Sobre o tamanho desta pasta:' ; echo ; sleep 2

echo ; df -h ; echo ; sleep 6

echo ; echo 'Sobre a memória RAM:' ; echo ; sleep 2

echo ; free -html ; echo ; sleep 6

echo ; echo 'Você está logado como:' ; echo ; sleep 2

echo ; whoami ; echo ; sleep 4

echo ; echo 'Você está em:' ; echo ; sleep 2

echo ; pwd ; echo ; sleep 4

echo ; echo 'Neste diretório/pasta tem:' ; echo ; sleep 2

echo ; ls -at ; echo ; sleep 6

echo ; echo 'O Bash está em:' ; echo ; sleep 2

echo ; whereis bash ; echo ; sleep 4

echo ; echo 'Este é o fim do script 01-script.sh' ; echo ; sleep 4

exit

# Fim do script

.

No Linux o script deve ter permissão de execução, isto pode ser feito abrindo o terminal pelo menu do sistema e executando o comando:

chmod +x 01-script.sh

.

Depois de salvo você tem que executar o arquivo, dessa forma:

./01-script.sh

.

Viu alguma utilidade neste pequeno script?

Então siga adiante.

.

IMPORTANTE:

Para estudar shell script tem que ser como usuário normal. Se você está acessando o sistema como usuário administrador (root), saia e entre como um usuário normal. É muito perigoso estudar shell usando o superusuário, você pode danificar o sistema com um comando errado.

Ok, continuemos.

.

Para exibir um manual do bash ou mesmo do comando 'chmod', digite na linha de comando:

man bash

man chmod

.

É possível executar o arquivo mesmo sem modificar a permissão de execução, por exemplo, se for um arquivo escrito para ser executado pelo bash, usar:

sh ./"Nome do arquivo, sem aspas"

.

SHELL

É importante saber o que é um Shell.

Na linha de comandos de um shell, podemos utilizar diversos comandos um após o outro, ou mesmo combiná-los numa mesma linha.

Se colocarmos diversas linhas de comandos em um arquivo texto simples, teremos em mãos um Shell Script, ou um script em shell, já que Script é uma descrição geral de qualquer programa escrito em linguagem interpretada, ou seja, não compilada.

Outros exemplos de linguagens para scripts são o PHP, Perl, Python, JavaScript e muitos outros. Podemos então ter um script em php, um script perl e assim em diante.

Uma vez criado, um ShellScript pode ser reutilizado quantas vezes for necessário.

Seu uso, portanto, é indicado na automação de tarefas que serão realizadas mais de uma vez.

Todo sistema Unix e similares são repletos de scripts em shell para a realização das mais diversas atividades administrativas e de manutenção do sistema.

Os arquivos de lote (batch - arquivos *.bat) do Windows são também exemplos de ShellScripts, já que são escritos em linguagem interpretada e executados por um Shell do Windows, em geral o command.com ou hoje em dia o cmd.exe.

Os Shells do Unix, porém, são inumeras vezes mais poderosos que o interpretador de comandos do Windows, podendo executar tarefas muito mais complexas e elaboradas.

OS SCRIPTS SHELL PODEM SER AGENDADOS PARA EXECUÇÃO ATRAVÉS DA TABELA CRONTAB, ENTRE OUTRAS COISAS.

É uma ferramenta indispensável aos administradores de sistemas Unix.

O Shell mais comum e provavelmente o que possui mais scripts escritos para ele é também um dos mais antigos e simples, o sh.

Este shell está presente em todo o sistema tipo Unix, incluído o Linux, FreeBSD, AIX, HP-UX, OpenBSD, Solaris, NetBSD, Irix, etc. Por ser o shell nativo mais comum é natural que se prefira escrever scripts para ele, tornando o script mais facilmente portável para outro sistema.

Os Shells não estão diretamente associados a um ou outro tipo de Unix, embora várias empresas comerciais tenham suas próprias versões de Shell. No software livre o Shell utilizado em um sistema em geral é exatamente o mesmo utilizado em outro. Por exemplo, o bash encontrado no Linux é o mesmo shell bash encontrado no FreeBSD e pode também facilmente ser instalado no Solaris, Windows através do Cygwin [1] ou outros sistemas Unix comerciais para passar a ser utilizado como interface direta de comandos ou como interpretador de scripts. O mesmo acontece com o tcsh e vários outros shells desenvolvidos no modelo de software livre.

.

INTERAGIR COM O USUÁRIO

.

Para o script ficar mais completo, vamos colocar uma interação mínima com o usuário, pedindo uma confirmação antes de executar os comandos.

.

#!/bin/bash

clear

echo "Vou buscar os dados do sistema. Posso continuar? [S/n] "

read RESPOSTA

test "$RESPOSTA" = "n" && exit

echo ; echo "Data e Horário:" ; echo

date

echo

echo "Uso do disco:" ; echo

df -ht

echo

echo "Usuários conectados:" ; echo

w

echo ; echo "Seu nome de login é:"

whoami

echo

exit

# Fim do script

.

O comando "read" leu o que o usuário digitou e guardou na variável RESPOSTA. Logo em seguida, o comando "test" verificou se o conteúdo dessa variável era "n". Se afirmativo, o comando "exit" foi chamado e o script foi finalizado. Nessa linha há vários detalhes importantes:

O conteúdo da variável é acessado colocando-se um cifrão "$" na frente

O comando test é útil para fazer vários tipos de verificações em textos e arquivos

O operador lógico "&&", só executa o segundo comando caso o primeiro tenha sido OK. O operador inverso é o "||"

.

MELHORAR O CÓDIGO DO SCRIPT

.

Com o tempo, o script vai crescer, mais comandos vão ser adicionados e quanto maior, mais difícil encontrar o ponto certo onde fazer a alteração ou corrigir algum erro. Para poupar horas de estresse, e facilitar as manutenções futuras, é preciso deixar o código visualmente mais agradável e espaçado, e colocar comentários esclarecedores.

.

#!/bin/bash

# nome-do-script - script que mostra informações sobre o sistema

# Autor: Fulano da Silva

# Pede uma confirmação do usuário antes de executar

clear

echo "Vou buscar os dados do sistema. Posso continuar? [S/n]"

read RESPOSTA

# Se ele digitou 'n', vamos interromper o script

test "$RESPOSTA" = "n" && exit

# O date mostra a data e a hora correntes

sleep 3 ; echo "Data e Horário:" ; echo

date

sleep 3

echo

# O df mostra as partições e quanto cada uma ocupa no disco
echo "Uso do disco:"

sleep 3

echo

df

echo

sleep 6

# O w mostra os usuários que estão conectados nesta máquina

echo "Usuários conectados:"

sleep 3

echo

w

sleep 3

echo

# Fim do script

.

Basta iniciar a linha com um "#" e escrever o texto do comentário em seguida. Estas linhas são ignoradas pelo shell durante a execução. O cabeçalho com informações sobre o script e seu autor também é importante para ter-se uma visão geral do que o script faz, sem precisar decifrar seu código. Também é possível colocar comentários no meio da linha # como este

.

CARACTERÍSTICAS

.

OS SCRIPTS SHELL PODEM CONTER ESTRUTURAS DE PROGRAMAÇÃO TAIS COMO:

.

ESTRUTURAS DE DECISÃO (if)

Recurso utilizado para dar sequencia em fluxos de execução baseado decisões. Cuja sintaxe é:

- Condição Verificada é o teste que definirá se controle deve ser passado para dentro do bloco then, observe que esse teste é feito sobre a saída de um comando.
- Ação são comandos a serem executados em caso verdadeiro da condição verificada.

.

OPERADORES PARA NÚMEROS

-eq Verifica se é igual,
-ne Verifica se é diferente,
-lt Verifica se é menor,
-gt Verifica se é maior,
-le Verifica se é menor ou igual,
-ge Verifica se é maior ou igual.

.

OPERADORES PARA TEXTO

!= Verifica se é diferente,
= Verifica se é igual.

.

OPERADORES LÓGICOS

! Lógica NOT,
-o Lógica OU, (OR) ou ||,
-a Lógica E, (AND) ou &&.

.

OPERADOR PARA arquivos/

-d Verifica se é diretório,
-f Verifica se é arquivo,
-e Verifica se existe.

.

Ex:

# !/bin/baxh
# Uso de Estrutura de Decisão
clear

echo 'opções'
echo '======'
echo ' -> Data do Sistema'
echo ' -> Uso do Sistema'

read opcao

if [ "$opcao" -eq 1 ]
then
echo 'Data do sistema: ' && date

elif [ "$opcao" -eq 2 ]
then

echo 'Uso do disco: ' && df -Th
fi

# Fim do script

.

ESTRUTURAS DE REPETIÇÃO (FOR)(WHILE)

.

ESTRUTURA DE REPETIÇÃO FOR

Permite que ações de iteração sejam executadas sobre determinados comandos ou variáveis até que a condição seja satisfeita.

# !/bin/bash

clear

echo "DIAS DA SEMANA"
for dia in seg ter qua qui sex sab dom
do
echo "$dia"
done

# Fim do script

.

ESTRUTURA DE REPETIÇÃO WHILE

Em situações onde sabemos até onde o loop irá realizar uma contagem o ideal é usar o for entretanto em cenarios onde a iteração deve cessar somente após se satisfazer uma condição o uso do laço while é mais indicado. Ex:

# /bin/bash

clear
var=1
while [ $var -le 7 ]
do
echo "Valor de var: $var"
var=$((var+1))
done

# Fim do script

.

FUNÇÕES E ARGUMENTOS

Ex:

# !/bin/bash
# REALIZAR BACKUP DO DIR

echo -e " \033[1;33m Digite o caminho de origem.: \033[0m "
read DIR_ORIGEM

clear

echo -e " \033[1;34m Digite o caminho de destino.: \033[0m "
read DIR_DESTINO

clear

verifica_argumentos(){

if [ $# -lt 1 ];
then
echo "Faltou informar um dos argumentos (parametros) necessarios!"
exit 1
fi
}

copia_arquivos(){

verifica_argumentos

clear

echo "Realizando backup..."

#Verificando se o dir de destino existe

if ! [ -d $DIR_DESTINO ]
then
mkdir $DIR_DESTINO
echo "Diretorio de Destino Criado"
fi

#COPIANDO ARQUIVOS

for arq in `ls $DIR_ORIGEM`
do
cp /$DIR_ORIGEM/$arq $DIR_DESTINO/$arq.bak
done

}

copia_arquivos

# Fim do script

DEFINIÇÕES DE VARIÁVEIS E ESCOPO DESTAS

Variáveis são definidas pela nomenclatura NOME_VARIAVEL="Valor da Variável". O valor pode ser tanto numérico quanto texto.

Nome="Joel"

Se quisermos acessá-la, basta fazer referência a ela com o caractere $ (cifrão) antes do nome: o comando echo $Nome, por exemplo, retornará a palavra "Joel".

Se quiser sabe informações sobre os sistemas de arquivo nos quais cada ARQUIVO reside ou, por padrão, sobre todos os sistemas de arquivos posso abrir um terminal e digitar:

VarInfo="df -h"

Depois digito no terminal "$VarInfo" sem aspas.

.

VARIÁVEIS DE AMBIENTE

As variáveis de ambiente independem da definição do usuario. Elas são criadas automaticamente, no momento em que se faz o login no sistema.

Ex:

PATH: define diretórios de procura por programas executados no shell;
USER: informa o nome do usuário do shell;
HOME: informa o caminho do diretório home do usuário;
PWD: diretório atual;

.

As variáveis são a base de qualquer script. É dentro delas que os dados obtidos durante a execução do script serão armazenados. Para definir uma variável, basta usar o sinal de igual "=" e para ver seu valor, usa-se o "echo":

.

Execute estes comandos abaixo no terminal:

.

VARIAVEL="um dois tres"

echo $VARIAVEL

echo $VARIAVEL $VARIAVEL

.

Para remover a variável acima:

unset VARIAVEL

.

Teste:

echo $VARIAVEL

.

É possível armazenar a saída de um comando dentro de uma variável. Ao invés de aspas, o comando deve ser colocado entre "$(...)", execute no terminal os comandos abaixo:

HOJE=$(date)

echo "Hoje é: $HOJE"

unset HOJE

echo $HOJE

HOJE=$(ls)

echo "O conteúdo desta pasta tem: $HOJE"

unset HOJE

echo $HOJE

HOJE=$(free -hmt)

echo "Informando sobre a memória desta máquina: $HOJE"

unset HOJE

echo $HOJE

.

Exemplos de uso do shell script:

Apagar arquivos velhos - Apagar periodicamente arquivos mais velhos que 30 dias do diretório /tmp:

#!/bin/bash

cd /tmp
find . -type f -mtime +30 -delete

# Fim do script

Este seria o conteúdo de um shell script que sempre que fosse executado apagaria arquivos com data de modificação maior que 30 dias a partir do diretório /tmp do sistema de arquivos.

Notem que ele é nada mais do que uma associação de 2 comandos (cd e find) em um arquivo para facilitar a repetição da tarefa. Este poderia ser, por exemplo, o conteúdo do arquivo /bin/limpatmp.sh e poderíamos chamar este script pela linha de comandos sempre que desejássemos repetir esta ação:

$ limpatmp.sh

Onde o símbolo "$" representa o prompt de comandos. Do ponto de vista do usuário este seria mais um comando disponível para uso.

Os scripts em shell são também muito empregados junto à inicialização do sistema (para auto-iniciar tarefas) ou como mini-aplicativos, que facilitam tarefas dos usuários, tais como montagem de dispositivos, menus de ajuda, etc.

Sua primeira linha obrigatoriamente começa com um "#!" (que não se deve confundir com um comentário qualquer, pois realmente é uma exceção; este par se chama, em inglês, de shebang), informando diretamente ao núcleo (kernel) qual interpretador ele deverá usar, juntamente com seu caminho, de acordo com a necessidade de cada caso. Exemplo:

#!/bin/bash

Em seguida, são adicionados os comandos desejados, um por linha, ou separados por ponto e vírgula. Exemplo:

mount -t reiserfs /dev/hda1 /mnt/hda1

ls /mnt/hda1

cp -r /mnt/hda1/* /home/user/backup
umount /dev/hda1

Por fim, dá-se a permissão de execução a este arquivo de texto simples ("chmod +x arquivo").

.

DATA ANTERIOR

.

#!/bin/bash

# Função em Bash para retornar a data anterior, levando em conta o mês e ano.

fn_data_anterior()
{
DIA=$D
MES=$M
ANO=$A

# Dado DIA, MES e ANO numéricos, obtém a data do dia anterior

DIA=`expr $DIA - 1`
if [ $DIA -eq 0 ]; then
MES=`expr $MES - 1`
if [ $MES -eq 0 ]; then
MES=12
ANO=`expr $ANO - 1`
fi
DIA=`cal $MES $ANO`
DIA=`echo $DIA | awk '{ print $NF }'`
fi
}

ano=`date +%Y`;
mes=`date +%m`;
let dia=10\#`date +%d`;

if (( $dia". Para guardar a saída do comando anterior no arquivo "saida", basta fazer:

cat /etc/passwd | grep root | cut -c1-10 > saida

cat saida

.

O COMANDO TEST

O canivete suíço dos comandos do shell é o "test", que consegue fazer vários tipos de testes em números, textos e arquivos. Ele possui várias opções para indicar que tipo de teste será feito, algumas delas:

-lt Núm. é menor que (LessThan)

-d É um diretório

-gt Núm. é maior que (GreaterThan)

-f É um arquivo normal

-le Núm. é menor igual (LessEqual)

-r O arquivo tem permissão de leitura

-ge Núm. é maior igual (GreaterEqual)

-s O tamanho do arquivo é maior que zero

-eq Núm. é igual (EQual)

-w O arquivo tem permissão de escrita

-ne Núm. é diferente (NotEqual)

-nt O arquivo é mais recente (NewerThan)

= String é igual

-ot O arquivo é mais antigo (OlderThan)

!= String é diferente

-ef O arquivo é o mesmo (EqualFile)

-n String é não nula

-a E lógico (AND)

-z String é nula

-o OU lógico (OR)

.

SCRIPT QUE TESTA ARQUIVOS

Tente fazer um script "testa-arquivos", que pede ao usuário para digitar um arquivo e testa se este arquivo existe. Se sim, diz se é um arquivo ou um diretório.

.

CONCEITOS MAIS AVANÇADOS

.

If, for e while

.

Assim como qualquer outra linguagem de programação, o shell também tem estruturas para se fazer condicionais e loop. As mais usadas são if, for e while.

.

Então daqui por diante, sabemos o básico, o necessário para se fazer um script de funcionalidade mínima. E este mínimo pode fazer coisas incríveis.

.

Ex:

if COMANDO
then
comandos
else
comandos
fi

# Fim do script

Ex:

for VAR in LISTA
do
comandos
done

# Fim do script

Ex:

while COMANDO
do
comandos
done

# Fim do script

.

Diferente de outras linguagens, o if testa um comando e não uma condição. Porém como já conhecemos qual o comando do shell que testa condições, é só usá-lo em conjunto com o if. Por exemplo, para saber se uma variável é maior ou menor do que 10 e mostrar uma mensagem na tela informando:

.

Ex:

if test "$VARIAVEL" -gt 10
then
echo "é maior que 10"
else
echo "é menor que 10"
fi

# Fim do script

.

Há um atalho para o test , que é o comando [. Ambos são exatamente o mesmo comando, porém usar o [ deixa o if mais parecido com o formato tradicional de outras linguagens:

.

Ex:

if [ "$VARIAVEL" -gt 10 ]
then
echo "é maior que 10"
else
echo "é menor que 10"
fi

# Fim do script

.

Se usar o [, também é preciso fechá-lo com o ], e sempre devem ter espaços ao redor. É recomendado evitar esta sintaxe para diminuir suas chances de erro.

.

Já o while é um laço que é executado enquanto um comando retorna OK. Novamente o test é bom de ser usado. Por exemplo, para segurar o processamento do script enquanto um arquivo de lock não é removido:

.

Ex:

while test -f /tmp/lock
do
echo "Script travado..."
sleep 1
done

# Fim do script

.

Ex:

E por fim, o for percorre uma lista de palavras, pegando uma por vez:

for numero in um dois três quatro cinco
do
echo "Contando: $numero"
done

# Fim do script

.

Uma ferramenta muito útil para usar com o for é o seq, que gera uma seqüência numérica.

.

Para fazer o loop andar 10 passos, pode-se fazer:

for passo in $(seq 10)

.

O mesmo pode ser feito com o while, usando um contador:

i=0
while test $i -le 10
do
i=$((i+1))
echo "Contando: $i"
done

# Fim do script

.

Até Breve

.

:)

.

Fonte: https://semanickz.wordpress.com/2018/02/22/comandos-mais-usados-em-shellscript-linux/

.

Crie seu próprio epub deste artigo usando o programa Sigil

.

Anotações

.

Nietzsche em carne, osso e medula, descansa num jazigo em Rõcken há uns 102 anos mais ou menos.

A chuva está mais pesada agora e o céu é de um denso preto. Mas o frio congelante do ar ajuda a combater a náusea.

Durma quando pode para que não precise, quando não puder.

Vai cair uma tempestade.

Todo mundo me fala isso, mas eu não consigo percebê-la chegando.

.

Até Breve

HOJE-EU-VOU-APRENDER-A-USAR-O-TERMINAL-DO-LINUX

JUNHO-2017

 

 

 

Eu não sei nada de Linux, mas quero aprender. Preciso pesquisar, anotar, pensar e testar na pratica as coisas que quero aprender. O Linux é um universo gigantesco cheio de vida, com muitos projetos inteligentes e interessantes sendo imaginados, planejados e executados a toda hora. Cresce sem parar. Quem obtém o melhor do universo Linux? As pessoas que gostam de aprender alguma coisa.

.

MINHAS ANOTAÇÕES BUSCAM DEFINIÇÕES COMANDOS TERMINAL LINUX BASH SAIDAS ENTRADAS – BÁSICO – INICIANTE – INTERMEDIÁRIO

.

Para qualquer serviço além do que um usuário comum faz, no Linux, a gente sempre acaba usando o terminal. O emulador de terminal que usamos hoje em dia, vem de outros tempos. Um monitor antigo que tinha uns 80×24 e era o único modo de se comunicar com o computador (software+harware).

.

Se eu quiser ser algo mais que um usuário normal, comum de computadores é bom eu aprender alguma coisa sobre o terminal do Linux. Também é bom aprender a usar um ou dois programas gráficos muito, muito bem.

.
O KERNEL DAS DISTRIBUIÇÕES LINUX

 

Se eu tenho um computador e todos os aplicativos funcionando harmoniosamente para executar os trabalhos do dia-a-dia. Essa “harmonia” é possível graças ao sistema operacional funcionando como uma interface entre o software, o hardware e o usuário. O responsável por esta harmonia é o Kernel criado por Linus Torwalds em 1991, na época ele era apenas um estudante de ciência da computação que teve necessidade de criar este programa.

Há pouco tempo, quase ninguém sabia da existência do kernel. Era algo muito abstrato e restrito até mesmo aos estudantes de computação das universidades e aos desenvolvedores, o usuário sequer ouvia esta palavra. Com o surgimento do Linux, qualquer usuário iniciante de Linux, já ouviu falar do kernel.

.

Eu mesmo por exemplo. Quando ouço falar de sistemas operacionais Linux, eu sei que todo o sistema operacional é montado sobre um único programa. É um programa sólido. Foi criado por um cara chamado Linus. Este programa é chamado de Kernel. Kernel é uma palavra inglesa que significa “núcleo”. O Kernel é o programa que está mais próximo do hardware. O kernel é a ponte que permite os programas conversarem com o hardware. O hardware responde aos aplicaticos por meio do Kernel. Os Kernels mais antigos podem não responder bem a novos hardwares. Pode ser que certos programas não funcionem bem se usar um Kernel antigo. Os aplicativos não conversam com o Hardware conversam com o Kernel ai sim, o Kernel sim conversa com o Hardware.

.

O Bash é um dos muitos interpretadores de comandos que existem e é o usado no Linux. Tem outros como o CSH o DOS o POWERSHELL e outros. Pelo Bash do terminal Linux eu posso alterar até mesmo o Kernel, mas, as distribuições Linux que escolho por usar já vem com o Kernel mais atual possível.

.

Então, o kernel é o núcleo do sistema operacional e dá aos softwares a capacidade de acessar o hardware. Por isto, o kernel do Linux é atualizado constantemente, acrescentando suporte a novas tecnologias. Usa módulos para adicionar suporte ou para melhorar no suporte a itens já existentes. A numeração do Kernel é muito fácil de aprender e é bem útil saber sobre ela. São 3 números:

.

Número principal: é o ‘primeiro’ número, o número mais à esquerda, indica as mudanças realmente principais no kernel.

.

Número secundário: é o número ‘do meio’, indica a estabilidade de um kernel particular. Números pares indicam uma versão estável e números ímpares indicam uma versão em desenvolvimento.

.

Número ‘de revisão’: é o ‘último’ número, indica a versão.

.

Por exemplo, o kernel 4.9.29 LTS é a vigésima nona versão do kernel 4.9.0. O LTS significa Long Term Support (suporte a longo prazo).

.

NOME DE ALGUNS SÍMBOLOS

 

‘ – Reticência

# – O nome deste símbolo é Cerquilha ou Cardinal

´ – Acento agudo

^ – Acento circunflexo

~ – Til

” – Aspas

/ – Barra

\ – Barra invertida ou contra-barra

– Traço

> – Maior que

& – E comercial

 

————————–
Alguns comandos neste texto meu são precedidos por dois tracinhos – – mas podem aparecer na internet como se fossem um traço só —

 

COMANDOS BÁSICOS
ls: lista os arquivos e diretórios da pasta (DIR no DOS);
clear: limpa a tela (CLS no DOS);
cd ___: entra em um diretório
cd: vai direto para o diretório raiz do usuário conectado
: abre uma linha de comando “livre” , onde você pode digitar um comando extenso (digite q e clique em enter para sair)
pwd: mostra o diretório inteiro que você está
cat: Imprime saída de texto.
df: Mostra as partições usadas ou livres do HD
|more: lista o arquivo com pausa de linha em linha (exemplo: CAT leiame |more)
|lpr: imprime o arquivo listado
free: mostra a memória do computador (MEM no DOS)
shutdown: desliga o computador
shutdown -r now : reinicia o computador
shutdown -h now : desliga o computador. OBS.: O NOW pode ser mudado. Por exemplo:

shutdown -r +10 e o sistema irá reiniciar daqui a 10 minutos).
Reboot: reinicia o sistema instantaneamente (pouco recomendável, preferível shutdown

-r now). Use somente em emergências
startx: inicia o X-Windows (interface gráfica) do Linux
mkdir: cria um diretório (MD no DOS)
rmdir: destrói um diretório VAZIO (RD no DOS)
rm: apaga um arquivo (DEL no DOS)
rm -r: apaga um diretório
who: mostra quem está usando a máquina
wc: conta a quantidade de:
wc -c arquivo : quantidade de bytes
wc -w arquivo : quantidade de palavras
wc -l arquivo : quantidade de linhas
date: mostra data e hora
type: explica um determinado arquivo do sistema
file: descreve um determinado arquivo
find / – name ____ : procura arquivo “____”
useradd nome_do_novo_usuário: cria uma nova conta usuário
passwd nome_do_usuário: cria ou modifica a senha do usuário
userdel -r nome_do_usuário: apaga um usuário
su: passa para o superusuário (perceba que no prompt irá mudar o $ pelo #)
sndconfig: permite configurar a placa de som
TAR: arquivo para criar Backups
TAR -c: cria
TAR -x: restaura
TAR -v: lista cada arquivo

 

TAR -t: lista os arquivos de backups
write: escreve mensagens para outro usuário em rede
mv: move arquivos
linuxconf: configuração do Linux
alias: possibilita a criação de comandos simples
&: coloca o comando desejado em background, ou seja, trabalha enquanto você faz outra coisa no computador
ps: relata os processos em execução
kill: encerra um ou mais processos em andamento
history: mostra os comandos que o usuário já digitou
lpr: imprime um arquivo (exemplo: lpr arquivo)
lpq: mostra o status da fila de impressão
lprm: remove trabalhos da fila de impressão
mtools: permite o uso de ferramentas compatíveis com DOS. Após digitar o comando, você verá que todo comando do DOS terá um M na frente. É normal.

 

PRATICAMENTE TODOS OS COMANDOS POSSUEM PARÂMETROS QUE PERMITEM INCREMENTAR SUAS FUNCIONALIDADES.

 

 

Se eu digitar o comando ls com o parâmetro -R (ls -R), este mostrará todos os arquivos do diretório/pasta, inclusive os ocultos.

ABRO O EMULADOR DE TERMINAL QUE USA O BASH, BUSCANDO NO MENU DO LINUX O TERMINAL. O BASH É O INTERPRETADOR DE COMANDOS DO TERMINAL LINUX.

O BASH É UMA LINGUAGEM QUE DEVE SER PRATICADA EM MODO INTERATIVO. A GENTE QUE QUER APRENDER ALGUMA COISA DE BASH DEVE SER ATIVO E TESTAR OS COMANDOS. LER, ENTENDER E PRATICAR. BRINCAR COM O TERMINAL DO LINUX, PARA MIM, É PRATICAR.

 

Para eu saber sobre comandos, posso usar man + nome_do_comando, info + nome_do_comando, nome_do_comando + help.

Vou usar o Terminal em modo interativo. Tem comandos built in que são internos, e comandos não internos. O Terminal usa pipes e tem uma filosofia que é saber que A UNIÃO DE VÁRIOS COMANDOS, PIPES E PARÂMETROS FAZ A FORÇA.

O Terminal possui meios para ser executado em primeiro plano e segundo plano. Terminal e Console, são duas coisas diferentes. Shell script usado no terminal do Linux, nada mais é que dialogos programados. O terminal controla comandos executados. Pausa, para, reinicia… No Bash do terminal Linux posso executar multiplos comandos e posso fazer os comandos se comunicarem em primeiro plano e em segundo plano.

VEJO ALGO PARECIDO COM ISTO AO ABRIR O TERMINAL:

 

nome_do_usuário@nome_do_computador ~ $

Ao instalar a distro Linux, eu criei um nome de usuário e um nome para o computador e uma senha de administrador com cinco letras maiúsculas, cinco letras minúsculas, cinco simbolos e cinco números.

Quando o terminal pedir a senha ela será invisível. É uma interação entre o teclado e o terminal.

.

user@pc ~$

.

user é o usuário que está logado; pc é a máquina em que está logado; @ indica que user está logado em pc; ~ indica que o usuário está dentro do seu diretório pessoal, ou seja, /home/user; $ indica que é um usuário comum e não o administrador do sistema. Se fosse o administrador do sistema o simbolo seria #. Os diretórios mais especiais do Linux atualmente são /dev, /proc, /sys.

.

Para poder navegar pelas pastas do Linux, eu quero entender como estas pastas são organizadas. Estas pastas que são chamadas também de diretórios, possuem uma descrição fácil de entender.

.

 

ESTRUTURA DE DIRETÓRIOS/PASTAS DO LINUX
Diretório | Descrição
————————————
/bin   Arquivos binários de comandos essenciais do sistema.
————————————
/boot   Arquivos de boot (inicialização; boot-loader; Grub); kernel do Linux.
————————————
/dev   Dispositivos (devices) de entrada/saída: floppy, hardisk, cdrom, modem .
————————————
/etc   Arquivos de configuração (scripts) e inicialização.
————————————
/home   Diretório local (home) de usuários.
————————————
/lib   Bibliotecas e módulos(drives): compartilhadas com freqüência.
————————————
/mnt   Diretório de montagem de dispositivos, sistemas de arquivos e partição.
————————————
/opt   Para instalação de programas não oficiais da distribuição.
————————————
/proc   Diretório virtual (RAM) onde rodam os processos ativos.
————————————
/root   Diretório local do superusuário (root).
————————————
/sbin   Arquivos de sistema essenciais (binários do superusuário).
————————————
/tmp   Arquivos temporários gerados por alguns utilitários.
————————————
/usr   Arquivos de usuários nativos da distribuição.
————————————
/usr/local   Para instalação de programas não oficiais da distribuição.
————————————
/usr/src   Arquivos fontes do sistema necessários para compilar o kernel.
————————————
/var   Arquivos de log e outros arquivos variáveis.
————————————

 

.
ENTENDENDO COMO FUNCIONAM OS COMANDOS DO LINUX

.

Os comandos são como uma linha de produção. Cada comando executa uma função e no final temos o produto pronto. Por exemplo, os comandos ls, mkdir, cd, touch, echo, ps, pid, tty, find são comandos internos do Bash. O ls lista pastas e diretórios. O mkdir cria pastas. O cd muda de pasta ou diretório. O touch cria arquivos e atualiza data de acesso de arquivos e pastas. O echo ecoa o parâmetro que foi passado para ele. O ps permite ver processos, programas que estão rodando no sistema. O pid mostra o número do processo. O tty informa sobre o terminal. O find procura por arquivos em pastas e diretórios. Se eu quisesse ver todos os processos digitaria no terminal:

ps -ax

.

Se eu quisesse procurar por comandos executados anteriormente apertaria as teclas:

ctrl+R

.

Todos os comandos ficam gravados em um histórico que eu posso apagar se quiser digitando:

history -c

.

Se eu quisesse ver os arquivos de uma pasta exibidos por data de acesso usaria:

ls -t

 

Se eu quiser ver a pasta Imagens em primeiro lugar, digito:
touch Imagens

 

 

Depois digito:

ls -t

 

Se eu quiser ver a pasta Documentos em primeiro lugar, digito:
touch Documentos

 

Depois digito:

ls -t

 

 

APRENDENDO MAIS SOBRE O TERMINAL DO LINUX

 

O terminal possui entrada. Possui um local onde acontece o processo. Possui saida principal. Possui saída de erro. Então o terminal tem entradas e saídas que são usadas por processos, programas ou comandos em execução que por sua vez possuem identificadores PID. Um byte é igual a um caractere do teclado.

Pela entrada padrão do terminal (stdin) o computador (hardware+software) ouve. Acontece então um processo e obtemos respostas, pois a máquina fala pelas saidas padrão (stdout) e saida de erro (stderr) que são impressas na tela do terminal.

Posso redirecionar isto que aparece na tela do terminal para dentro de arquivos. Existem dois tipos de direcionamentos que estou aprendendo agora. Destrutivo e não destrutivo. Para redirecionar respostas para dentro de arquivos usa-se o simbolo  >.

 

ATALHOS DE TECLADO DO TERMINAL LINUX

Atalho | Função

Ctrl + a   Move o cursor para o início da linha

Ctrl + e   Move o cursor para o final da linha

Ctrl + l   Limpa a tela, semelhante ao comando clear

Ctrl + u   Apaga do cursor ao início da linha.

Ctrl + k   Apaga do cursor ao final da linha.

Ctrl + w   Apaga uma palavra antes do cursor.

Ctrl + _   Desfaz as últimas mudanças.

!!   Executa o último comando no histórico.

!abc   Executa o último comando no histórico começando com abc.

!n   Executa o comando de número n no histórico.

^abc^xyz   Substitui a primeira ocorrência de abc por xyz no último comando e executa o mesmo.

Redirecionando a saída do ls para um arquivo chamado saida-do-comando-ls.

Se eu digitar:

 

ls > saida-do-comando-ls

O que apareceria na tela do terminal vai ser gravado em um arquivo chamado saida-do-comando-ls. Usei “maior que” > comando destrutivo que vai reescrever sobre a informação no arquivo.

Para eu ver o que está escrito no arquivo saida-do-comando-ls uso cat. Fica assim:
cat saida-do-comando-ls

Se eu digitar:
ls >> saida-do-comando-ls

 

O que apareceria na tela do terminal vai ser gravado junto com o que estiver gravado anteriormente, em um arquivo chamado saida-do-comando-ls. Usei “dois maior que” >> comando não-destrutivo que vai escrever mais uma vez a informação no arquivo.

Para eu ver o que está escrito no arquivo saida-do-comando-ls uso cat. Fica assim:
cat saida-do-comando-ls

 

Para redirecionar usando a saida de erro (stderr[2]), usando modo não destrutivo (>>) e modo destrutivo (>) digito:
ls 2>> saida-do-comando-ls
ls 2> saida-do-comando-ls

 

 

Para forçar erro uso ls com uma palavra inventada qualquer.
ls plah

Para gravar a resposta “ls: não foi possível acessar ‘plah’: Arquivo ou diretório não encontrado” da saida de erro (2) mandando a informação do comando ls de plah para errols

ls plah 2> errols

 

 

Para eu ver o que está escrito em errols uso o comando cat. Fica algo assim:
~ $ cat errols
ls: não foi possível acessar ‘plah’: Arquivo ou diretório não encontrado
Se eu usar:

ls plah 1> errols
Não vai dar nada. Porque eu usei o comando destrutivo (>).
user@pc ~ $ cat errols
user@pc ~ $

 

 

EU QUERO SABER, ONDE ESTOU NO SISTEMA. QUERO QUE O TERMINAL ME DICA ONDE ESTOU. DIGITO pwd E APERTO A TECLA ENTER. RESULTADO:

user@pc ~$ pwd
/home/user
POSSO USAR COMANDOS PARA DIRECIONAR INFORMAÇÕES FILTRADAS PARA ARQUIVOS USANDO O COMANDO FIND. Uso find, cat, 1>, 2>, &> ESCREVO O SEGUINTE:

 

find (A resposta será enorme e tudo misturado.)
find /sys (A resposta será enorme e tudo misturado.)
find /sys 1> saidafind 2> errofind (Neste comando uma parte vai para um arquivo que vai receber a resposta da saida padrão e outra que vai criar um arquivo que vai receber a resposta da saida de erro)
Agora digito:
cat saidafind
cat errofind
find /sys &>tudofind (Neste caso tudo da saida 1 ou 2 para tudofind)
cat tudofind

 

 

PARA DIRECIONAR A SAIDA EM Y ESCREVO:

 

ls > saida-ls
cat saida-ls
ls sssss > saida-ls
cat saida-ls
ls sssss > saida-ls 2>&1 (Neste caso manda tudo para o arquivo saida-ls)
ls sssss > saida-ls 1>&2
ls > saida-ls 1>&2
ls > saida-ls 2> saidalserro 1>&2
cat saidalserro
ls &> tudols

 

 

PARA FECHAR UMA DAS SAIDAS. TAPANDO CANOS.

 

ls
ls 1>&- (O menos fecha o saida1/cano1)
ls 1>&- 2>&- (Fecho as duas saídas)
Sobre o &:

O & coloca o comando desejado em background.
TAPAR E JOGAR EM LUGAR NENHUM. MÉTODO UNIX E LINUX.

 

ls > /dev/null
ls ssss >/dev/null
ls ssss > /dev/null 2>/dev/null
Redirecionamento entre processos usando o comando grep. O grep pega a entrada, filtra e só joga no terminal o que combina com o que foi passado. Se digitar grep teste, só será imprimido o que combinar com teste. Para filtrar a saída do ls usando o grep:

 

ls | grep saida
ls | grep erro
Usando o Bash pega-se a saida e conecta-se na entrada com o uso de pipe “|”. O grep filtra expressões regulares e filtra texto. O pipe redireciona a saida padrão 1.
ls |& grep erro
O comando grep significa (Globally Search a Regular Expression and Print). A ideia é procurar texto em uma string ou dentro de arquivos e mostrar linhas, ocorrências, usar combinações para pesquisar e o resultado da pesquisa ser mostrado na tela. O comando grep já vem instalado no Linux. Para confirmar e verificar a versão uso os comandos grep e grep com o PARÂMETRO -V. Exemplos abaixo:
~ $ grep
Uso: grep [OPÇÃO]… PADRÃO [ARQUIVO]…
Experimente “grep –help” para mais informações.
~ $ grep -V
grep (GNU grep) 3.0
Copyright (C) 2017 Free Software Foundation, Inc.
Licença GPLv3+: GNU GPL versão 3 ou superior <http://gnu.org/licenses/gpl.html&gt;.
Este é um software livre: você é livre para alterá-lo e redistribuí-lo.
NÃO HÁ GARANTIAS, na máxima extensão permitida por lei.

 

Escrito por Mike Haertel e outros, veja <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS&gt;.

 

 

PARÂMETROS PARA O COMANDO GREP QUE IREI UTILIZAR E SUAS FUNÇÕES:
-c  Conta quantas vezes apareceu a string que esta pesquisando

-v  Mostra na tela “tudo” menos onde houver a ocorrência da string pesquisada

-i  Realiza uma busca pela string ignorando o case, sendo case-insensitive

-o  Ira mostrar na tela apenas as ocorrências da string pesquisada ignorando o resto

-n  Ira mostrar na tela na primeira coluna a linha onde encontrou a string pesquisada

-B  Numero de linhas a serem impressas antes da linha que contem a string pesquisada [BEFORE]

-A  Numero de linhas a serem impressas na tela depois da encontrar a linha com a string [AFTER]

-C  Quantidade de linhas antes e depois da linha que contem a string [CONTEXT]

-q  Ira procurar pela string informada, porém estará em modo silencioso, nada sera impresso na tela, porém caso encontre o comando encerra com 0, caso não encontre nada será 1

-E  Extende o uso de Regex no padrão e combinação, usando logica AND e OR por exemplo

-f  Um arquivo com combinações de padrões com Regex, podendo usar varias combinações

-l  Mostra somente o nome do arquivo onde foi encontrado a string pesquisada

-L  Semelhante ao -v, porque mostra apenas os arquivo que não contem a string informada

-h  Pesquisa varias arquivos, diretórios se com -r mas não mostra o nome dos arquivos

-r  Ira realizar uma pesquisa recursiva em todos os diretórios a partir do informado

–color  Deve-se passar o parâmetro ‘never’ caso não queira que a saída marque com cor a string ou ‘auto’ e ‘always’ para operar conforme necessite. Pode mudar a cor alterando GREP_COLOR, GREP_COLORS no environment

 

 

Vou criar um arquivo chamado palavras.txt e inserir um texto dentro e brincar com o grep.

 

Para fazer isto, uso o comando echo seguido dos parâmetros -ne.

.

As palavra que estarão no texto devem ser abraçadas por aspas ” no início e no fim. Cada linha do texto que é separada por \n e cada palavra é separada por espaços e o texto em si é escrito como se eu fosse escrever um texto normal. Para direcionar este texto entre aspas “texto” devo usar o simbolo menor que > seguido do nome do arquivo a ser criado seguido da extenção no caso aqui .txt. Veja o exemplo abaixo:
~ $ echo -ne “Esta é a primeira linha.\nEsta é a segunda linha.\nEsta é a terceira linha.\n:) E assim por diante…\n” > texto-teste.txt
Para ver o que está escrito digito cat texto-teste.txt. Resultado:

~ $ cat texto-teste.txt
Esta é a primeira linha.
Esta é a segunda linha.
Esta é a terceira linha.
🙂 E assim por diante…
Outro exemplo:
~ $ echo -ne “A primeira linha vai acabar agora. \nA segunda linha começa agora e já terminou. \nEsta é a terceira linha que agora acabou. \nPor fim, a quarta linha é mesmo o fim. \n” > texto4.txt
~ $ cat texto4.txt
A primeira linha vai acabar agora.
A primeira linha começa agora e já terminou.
Esta é a terceira linha que agora acabou.
Por fim, a quarta linha é mesmo o fim.
~ $ echo -ne ‘A “primeira” linha vai acabar agora. \nA “segunda” linha começa agora e já terminou. \nEsta é a “terceira” linha que agora acabou. \nPor fim, a “quarta” linha é mesmo o fim. \n’ > texto4.txt
~ $ cat texto4.txt
A “primeira” linha vai acabar agora.
A “segunda” linha começa agora e já terminou.
Esta é a “terceira” linha que agora acabou.
Por fim, a “quarta” linha é mesmo o fim.
VOU FAZER OUTRO TEXTO:
~ $ echo -ne “rumor\nasa casa\nCasa Asa\nCASA ASA\nRaspberryPI asa casa\nRaspberry PI Casa Asa Nasa\nRaspberry B PI CASA ASA NASA\nArduino Casa Asa Nasa\narduino\nARDUINO\nIDEArduino\nLinux, conhecimento é poder\nEu não programo Python e você?\n” > palavras.txt

 

Para eu visualizar o arquivo palavras.txt no terminal eu vou usar o comando cat seguido do nome completo do arquivo. Exemplo abaixo:
~ $ cat palavras.txt
rumor
asa casa
Casa Asa
CASA ASA
RaspberryPI asa casa
Raspberry PI Casa Asa Nasa
Raspberry B PI CASA ASA NASA
Arduino Casa Asa Nasa
arduino
ARDUINO
IDEArduino
Linux, conhecimento é poder
Eu não programo Python e você?
VOU USAR O GREP E PESQUISAR PELA STRING “Raspberry“, POSSO USAR DE DUAS MANEIRAS COM O cat UM PIPE “|” E LOGO EM SEGUIDA UM grep OU DIRETAMENTE COM O COMANDO, A PRIMEIRA OPÇÃO É MUITO UTILIZADA, PORÉM PERDE PERFORMANCE NO CASO DE REALIZAR PESQUISA EM MUITOS ARQUIVOS OU EM UM ARQUIVO LONGO.

 

$ cat palavras.txt | grep “Raspberry”
RaspberryPI asa casa
Raspberry PI Casa Asa Nasa
Raspberry B PI CASA ASA NASA
$ grep “Raspberry” palavras.txt
RaspberryPI asa casa
Raspberry PI Casa Asa Nasa
Raspberry B PI CASA ASA NASA

 

CASO EU QUEIRA CONTAR O NUMERO DE OCORRÊNCIAS DA STRING “Raspberry”:
$ grep -c “Raspberry” palavras.txt
3

 

 

SE EU QUISER VER TUDO MENOS AS STRINGS QUE CONTENHAM “Raspberry”:
$ grep -v “Raspberry” palavras.txt
rumor
asa casa
Casa Asa
CASA ASA
Arduino Casa Asa Nasa
arduino
ARDUINO
IDEArduino
Linux, conhecimento é poder
Eu não programo Python e você?
AGORA QUERO PESQUISAR PELA STRING “arduino”.
$ grep “arduino” palavras.txt
arduino

 

Temos Arduino escrito de diversas maneiras, então vamos pedir para ser case-insensitive.
~ $ grep -i “arduino” palavras.txt
Arduino Casa Asa Nasa
arduino
ARDUINO
IDEArduino
E SE NO LUGAR DE MOSTRAR A LINHA INTEIRA OU O QUE ESTIVER JUNTO EU MOSTRAR APENAS A STRING PROCURADA? VOU USAR OS PARÂMETROS -o, -oi.

~ $ grep -o “arduino” palavras.txt
arduino
~ $ grep -oi “arduino” palavras.txt
Arduino
arduino
ARDUINO
Arduino

 

~ $ grep -oi “Raspberry” palavras.txt
Raspberry
Raspberry
Raspberry

 

 

SE EU PRECISAR SABER O NUMERO DA LINHA ONDE FOI ENCONTRADA A STRING.
~ $ grep -n “Raspberry” palavras.txt
5:RaspberryPI asa casa
6:Raspberry PI Casa Asa Nasa
7:Raspberry B PI CASA ASA NASA
AGORA VOU PESQUISAR PELA STRING “arduino” E OBTER TAMBÉM AS 2 LINHAS ANTES DA STRING ENCONTRADA.

 

~ $ grep “arduino” -B 2 palavras.txt
Raspberry B PI CASA ASA NASA
Arduino Casa Asa Nasa
arduino
O MESMO PODEMOS FAZER OBTÉM AS LINHAS DEPOIS DA LINHA COM A STRING PESQUISADA.

 

$ grep “arduino” -A 2 palavras.txt
arduino
ARDUINO
IDEArduino

 

E PODEMOS UNIR AS DUAS OPÇÕES, PEGANDO E IMPRIMINDO LINHAS ANTES E DEPOIS DA LINHA QUE CONTEM A STRING PESQUISADA.

 

~ $ grep “arduino” -C 2 palavras.txt
Raspberry B PI CASA ASA NASA
Arduino Casa Asa Nasa
arduino
ARDUINO
IDEArduino

 

CASO NÃO QUEIRA MOSTRAR NADA NA TELA, SÓ SABER SE TEVE SUCESSO OU NÃO NA PESQUISA.

 

~ $ grep -q “arduino” palavras.txt
~ $ echo $?
0
~ $ grep -q “Beaglebone” palavras.txt
~ $ echo $?
1

 

 

DESTA VEZ VOU CRIAR MAIS 2 ARQUIVOS sistema.txt E hardware.txt, E TAMBÉM COPIAR A SAÍDA DO dmesg PARA dmesg.log E BRINCAR COM ESTES CARAS.

 

$ echo -ne “Linux Solus Manjaro Lubuntu Ubuntu\nLinux Devuan Debian\nLinux Solus Project Mint\nLinux Solus Manjaro Debian Devuan CentOS\nRaspbian\nYocto RaspberryPI\nBuildroot RaspberryPI\n” > sistema.txt
$ echo -ne “ARM 1176JZF\nARM Cortex-A7\nBCM2835\nBCM2836\nBeaglebone Black\nAM3358\n” > hardware.txt
$ dmesg > dmesg.log

 

 

POSSO AGREGAR MAIS PALAVRAS PARA REALIZAR MEUS TESTES.
AGORA EU QUERO PESQUISAR EM QUALQUER ARQUIVO E QUE CONTENHA A STRING “Raspberry”.

 

~ $ grep “Raspberry” *
palavras.txt:RaspberryPI
palavras.txt:Raspberry PI
palavras.txt:Raspberry B PI
sistema.txt:Yocto RaspberryPI
sistema.txt:Buildroot RaspberryPI

 

~ $ grep “Raspberry” ./*
./palavras.txt:RaspberryPI
./palavras.txt:Raspberry PI
./palavras.txt:Raspberry B PI
./sistema.txt:Yocto RaspberryPI
./sistema.txt:Buildroot RaspberryPI
OS DEMAIS PARÂMETROS ANTERIORES SE APLICAM AQUI TAMBÉM.

$ grep -n “Raspberry” *
palavras.txt:5:RaspberryPI
palavras.txt:6:Raspberry PI
palavras.txt:7:Raspberry B PI
sistema.txt:6:Yocto RaspberryPI
sistema.txt:7:Buildroot RaspberryPI
SE EU CRIAR UM DIRETÓRIO exemplo/ E MOVER O palavras.txt PARA ELE SERÁ QUE VAI ENCONTRAR A STRING “Raspberry” NELE AINDA?

 

$ mkdir exemplo && mv palavras.txt exemplo/

 

$ grep “Raspberry” *
grep: exemplo: Is a directory
sistema.txt:Yocto RaspberryPI
sistema.txt:Buildroot RaspberryPI

 

ELE AVISA QUE EXISTE UM DIRETÓRIO ONDE ESTA SENDO FEITA A PESQUISA, PARA QUE ELE ACESSE O(S) DIRETÓRIO(S) DEVE-SE PASSAR O PARÂMETRO -r PARA RECURSIVIDADE.

 

$ grep -r “Raspberry” *
exemplo/palavras.txt:RaspberryPI
exemplo/palavras.txt:Raspberry PI
exemplo/palavras.txt:Raspberry B PI
sistema.txt:Yocto RaspberryPI
sistema.txt:Buildroot RaspberryPI
AS VEZES SÓ INTERESSA SABER A OCORRÊNCIAS MAS NÃO O ARQUIVO.

 

$ grep -hr “Raspberry” *
RaspberryPI
Raspberry PI
Raspberry B PI
Yocto RaspberryPI
Buildroot RaspberryPI
CASO QUEIRA APENAS SABER QUAL ARQUIVO CONTEM A STRING MAS NÃO PRECISA MOSTRAR ELA.
$ grep -lr “Raspberry” *
exemplo/palavras.txt
sistema.txt

 

SE QUISER SABER OS ARQUIVOS QUE NÃO POSSUEM A STRING PESQUISADA.
$ grep -Lr “Raspberry” *
dmesg.log
hardware.txt
HABILITANDO OU NÃO O USO DA SAÍDA COLORIDA.

 

$ grep -r –color=always “Raspberry” *
exemplo/palavras.txt:RaspberryPI
exemplo/palavras.txt:Raspberry PI
exemplo/palavras.txt:Raspberry B PI
sistema.txt:Yocto RaspberryPI
sistema.txt:Buildroot RaspberryPI

$ grep -r –color=never “Raspberry” *
exemplo/palavras.txt:RaspberryPI
exemplo/palavras.txt:Raspberry PI
exemplo/palavras.txt:Raspberry B PI
sistema.txt:Yocto RaspberryPI
sistema.txt:Buildroot RaspberryPI

 

O COMANDO cd SERVE PARA ACESSAR/NAVEGAR ENTRE DIRETÓRIOS. DIGITO:
user@pc ~$ cd nome_da_pasta

 

user@pc ~$ cd .. # para sair de diretório, note que os dois pontos estão separados do comando.
user@pc ~$ ls # lista aquivos ou pastas de um determinado diretório. O ls pode ser usado com opções -a, -A, –author, -b, –block-size, -B, -c, -C, -d, -f, -F, -G, -h e outros…
O diretório indicado para instalar programas opcionais é o diretório /opt.
user@pc ~$ lsusb # lista os periféricos que estão conectados na porta usb.
user@pc ~$ mkdir # cria uma pasta.
user@pc ~$ rmdir # remove um diretório/pasta vazia.
user@pc ~$ cat # concatena arquivos e imprime na saída padrão (exibe na tela). Em arquivos, usao o cat para listar o conteúdo deles na tela. Com o uso de argumentos, podsso usá-lo para unir diferentes arquivos em um só, dentre outra funções. É prática comum utilizar isso para juntar arquivos de vídeo grandes, como filmes, que muitas vezes são divididos em várias partes. Para unir video1.mpeg a video2.mpeg emvideo.mpeg que estão em /home/user usaria o comando abaixo:

 

user@pc ~$ cat video1.mpeg video2.mpeg > video.mpeg
user@pc ~$ touch # O comando touch é usado atualizar as informações sobre as datas de último acesso e última modificação de um arquivo. Se o arquivo não existir, ele é criado, por padrão. Isso faz o touch ser muito utilizado para criar arquivos vazios, através do comando touch [arquivo]. -a modifica apenas a data do último acesso;
-c, Não cria arquivos, caso eles não existam;
-m, Modifica apenas a data de modificação;
-t, A data e hora a ser utilizada para o último acesso ou última modificação. O formato utilizado é MMDDhhmm (mês, dia, hora e minuto)

 

Se eu quiser criar um arquivo chamado sinai.txt usando o comando touch. Faço assim:
touch sinai.txt
Se quiser criar vários arquivos de uma vez só:
touch sina bina pena borda perl

 

Depois digito:
ls
user@pc ~$ sudo # o comando sudo é um dos mais utilizados, faz requerimento de superusuário. Requer senha.
user@pc ~$ sudo su # após digitar a senha todas as funções realizadas no terminal estará sendo feita como superusuário, prática não muito recomendada.
user@pc ~$ top # exibe todos os processos que estão sendo executados, utilizando para “matar” um processo que está “travado”.
user@pc ~$ ps # assim como o top também lista os processos que estão sendo executados, porém para “matar” o processo necessita pegar o número do PID e utili class=”rol-comandos”zar o comando kill.
user@pc ~$ kill # comando para “mata” um processo travado por meio do PID que pode ser adquirido por meio do comando ps
user@pc ~$ cp # comando para copiar um arquivo ou diretório para um outro local, com o mesmo nome ou com nome diferente.
user@pc ~$ mv # comando para mover ou renomear um arquivo ou diretório para um outro local
user@pc ~$ rm # O rm é utilizado para excluir arquivos.
user@pc ~$ rm -f # remove forçado
user@pc ~$ rm -rf # Exclui recursivamente todo o conteúdo do diretório e o próprio diretório. Quando quiser excluir um diretório que não está vazio, utilize esse parâmetro.
user@pc ~$ ln # Esse é o comando utilizado para criar links, simbólicos ou absolutos.
user@pc ~$ cmp # Esse comando é utilizado para comparar dois arquivos e mostrar a primeira diferença entre eles. Use para certificar-se de que dois arquivos possuem ou não o mesmo conteúdo.
user@pc ~$ diff # Esse comando compara dois arquivos de texto e mostra as diferenças entre eles.
user@pc ~$ patch # Utilizamos esse comando para atualizar as diferenças geradas através do comando diff.
user@pc ~$ grep # O grep é utilizado para encontrar padrões em arquivos de texto, ou, em outras palavras, procura num arquivo todas as linhas que possuem a palavra ou expressão informada e as exibe na tela.

 

user@pc ~$ cut # O cut é utilizado para selecionar colunas de texto em um arquivo.
user@pc ~$ head # Usamos esse comando para exibir as linhas iniciais de um arquivo.
user@pc ~$ more # Usamos esse comando para realizar a paginação de arquivos de texto cujo conteúdo não cabe na tela.
user@pc ~$ less # O less tem a mesma utilidade do more, com a vantagem de poder rolar o texto exibido para cima e para baixo através do uso dos direcionais, além de contar com um localizador de texto.
user@pc ~$ sort # Usamos esse comando para classificar as linhas de um arquivo de texto.
user@pc ~$ tail # Esse comando é utilizando para mostrar as últimas linhas de um arquivo de texto.
user@pc ~$ wc # Conta o número de linhas, palavras, caracteres e bytes nos arquivos.
user@pc ~$ find # O find (procurar, em inglês) é uma ferramenta que utilizamos para localizar arquivos ou diretórios no sistema de arquivos.
user@pc ~$ whereis # Localiza o executável, arquivo/diretório de configuração, diretórios de bibliotecas, arquivos compartilhados, código-fonte e caminho da página de manual do programa especificado.
user@pc ~$ which # Exibe o caminho completo para o comando selecionado.
user@pc ~$ fuser # Esse programa é utilizado para descobrir quais processos estão utilizando determinados arquivos ou soquetes.
user@pc ~$ df # Mostra o espaço utilizado de cada partição.
user@pc ~$ du # Esse comando, sigla de disk usage (uso de disco), é usado para estimar o espaço em disco usado pelos arquivos. Em outras palavras, usamos o du para saber o tamanho dos arquivos.
user@pc ~$ free # Comando muito utilizado para análise do desempenho do sistema, o free exibe informações sobre o uso de memória pelo computador.
user@pc ~$ time # Esse é um comando muito útil para medir o desempenho do sistema. Com o time podemos medir o tempo, em segundos, necessários para executar um processo ou programa.
user@pc ~$ uptime # Mostra o período em que o sistema permaneceu em processamento desde que foi ligado.
user@pc ~$ dmesg # Esse comando é utilizado para ver as mensagens de inicialização do sistema. Útil para analisar eventuais mensagens de erro exibidas devido a qualquer problema que esteja ocorrendo durante a inicialização. Como as mensagens são muito extensas, utilize o more ou o less para visualizar as informações:

 

user@pc ~$ dmesg | more

user@pc ~$ dmesg | less
user@pc ~$ echo # Exibe mensagens na tela. Escreve textos em arquivos. Esse comando é utilizado principalmente para a construção de scripts de sistema. Exemplo:

 

~ $ echo “Oi Mundo!”
~ $ echo “Oi Mundo!” && echo “Tchau Mundo!”
~ $ echo “É fácil escrever usando o comando echo” > texto2.txt
~ $ cat texto2.txt

 

~ $ echo “esta é minha segunda linha” >> texto2.txt

 

~ $ cat texto2.txt

 

~ $ echo “esta é minha terceira linha” >> texto2.txt

 

~ $ cat texto2.txt
ECHO usando -e, “, r, e \n

 

~ $ echo -e “Bom, esta é a primeira linha.\r\nEsta é a segunda linha\r\nEsta é a terceira linha!”

 

 

USANDO COMANDO ECHO PARA ESCREVER VÁRIAS LINHAS E CRIAR UM NOVO ARQUIVO DE TEXTO TUDO AO MESMO TEMPO:
~ $ echo -e “O nome do arquivo de texto será texto3.txt e esta é a primeira linha.\r\nEsta é a segunda linha do arquivo texto3.txt.\r\nEsta é a terceira linha do arquivo texto3.txt e ponto final.\r\nDepois eu posso usar o comando grep para ver o que acontece.” > texto3.txt
user@pc ~$ sync # Esse comando é utilizado para gravar os dados armazenados em cache nos locais apropriados. O uso mais comum é para gravar os dados em unidades de disco removível, geralmente disquete.
user@pc ~$ sudo shutdown -r now # Reinicia o computador. Por padrão, somente o root pode executar esse comando.
user@pc ~$ exit # sair do terminal, fechar o terminal
user@pc ~$ shutdown # Desligar o computador
user@pc ~$ shutdown -h now # desligar o computador agora
user@pc ~$ clear # Limpa a tela do terminal
user@pc ~$ history # O comando history (histórico) mostra a lista dos últimos comandos executados pelo usuário corrente. Isso é útil quando há a necessidade de executar um comando extenso, com muitos parâmetros, do qual não consigamos nos lembrar, ou para fazer auditoria.

 

 

Quero saber qual o release estou usando. Digito:

user@pc ~$ lsb_release -a
Quero saber que dia é hoje. Digito no terminal e recebo a a resposta:

user@pc ~$ date
Qui Abr 20 03:56:35 BRT 2017
Quero saber o calendário digito e recebo a resposta:

user@pc ~$ cal
Abril 2017
Do Se Te Qu Qu Se Sá
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
Instalei lm-sensors. Quero saber a temperatura da máquina. Digito sensors e recebo a resposta:

 

user@pc ~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +48.0°C (crit = +104.0°C)
temp2: +48.0°C (crit = +104.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +48.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +48.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +48.0°C (high = +105.0°C, crit = +105.0°C)
Quero saber o espaço em disco do sistema de arquivos usado por todas as partições. “df -h” digito e recebo a resposta:

user@pc ~$ df -h
Sist. Arq. Tam. Usado Disp. Uso% Montado em
devtmpfs 1,9G 0 1,9G 0% /dev
tmpfs 2,0G 0
Quero saber a quantidade de memória livre e usada no sistema. “free -m” digito e recebo a resposta:

 

user@pc ~$ free -m
total used free shared buff/cache available
Mem: 3930 737 109 274 3083 2675
Swap: 3815 0 3815
Quero saber a arquitetura do computador. digito arch que é igual ao comando uname -m, e recebo a resposta:

user@pc ~$ arch
x86_64

user@pc ~$ uname -m
x86_64
Uso “uname” para exibir informação básica e ”uname -a” para exibir todas as informações.

user@pc ~$ uname
Linux

user@pc ~$ uname -a
Linux rf7E 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Quero saber em tempo real informações sobre o meu sistema linux, digito top ou htop:

user@pc ~$ top

user@pc ~$ htop
Comandos interativos mais importantes do ”top”.

”k” – Finaliza, ou seja, “mata” um processo.

”m” – Ativa/Desativa a exibição de informações da memória.

”M” – Ordena os processos pelo uso da memória residente.

”N” – Ordena os processos pelos seus PIDs.

”P” – Ordena os processos pelo uso da CPU (este é o padrão).

”ESPAÇO” – Atualiza imediatamente a visualização do quadro de processos.

”h” – Exibe a ajuda dos comandos interativos do ”top”.

”q” – Abandona o comando ”top”.
Quero saber um quadro atual, porém estático dos processos que estão sendo executados no sistema. Digito e recebo a resposta:

user@pc ~$ ps
PID TTY TIME CMD
9409 pts/0 00:00:00 bash
12148 pts/0 00:00:00 ps
Se eu quiser matar o processo 9409, digito kill -9 e o número do processo. No caso fecharei o terminal que estou usando.

user@pc ~$ kill -9 9409

Aperto enter.
Quero finalizar processos pelo nome ao invés do PID como faz o comando kill. Uso killall.

Se eu tiver aberto o Firefox e quero fecha ele pelo terminal, se eu digitar no terminal ”killall mozilla-firefox” finalizo processo mozilla-firefox, fechando com isso o navegador web Mozilla Firefox. O nome dos processos ativos pode ser observado com uso do comando ps.

 

Quero verificar o SWAP. Simplificando, pode-se dizer que a memória é de dois tipos: a memória RAM e a SWAP (utilização do disco rígido ou HD). A memória RAM é bastante mais rápida que os HDs, no entanto ela é mais limitada em termos de tamanho. Então o que o Linux faz é utilizar a memória RAM e quando precisar de mais memória utiliza o disco como memória auxiliar. No computador caseiro de 2017, o SWAP pode ser baixo (10).

user@pc ~$ cat /proc/sys/vm/swappiness
10
Vou saber o quanto de memória RAM tenho no computador, que tipo de memória tenho no computador, quando de memória a máquina suporta e muito mais. Digito:

user@pc ~$ sudo dmidecode –type memory

Digito a senha e aperto enter.
Para saber quanto espaço tenho no disco, digito:

user@pc ~$ sudo fdisk -l

Aperto enter.
Quero criar uma pasta chamada dia na pasta Documentos e dentro desta pasta 3 arquivos chamados de azul, verde e roxo tudo pelo terminal. Passo a passo, eu faço assim:

user@pc ~$ pwd
/home/user

user@pc ~$ ls
‘Área de trabalho’ Downloads Música
‘Biblioteca do calibre’ Imagens Público
Documentos Modelos Vídeos

 

user@pc ~$ cd Downloads

 

user@pc/Downloads ~$

 

user@pc/Downloads ~$ pwd
/home/user/Downloads

 

user@pc/Downloads ~$ ls

 

user@pc/Downloads ~$ mkdir dia

 

user@pc/Downloads ~$ ls
dia

 

user@pc/Downloads ~$ cd dia

 

user@pc ~/Downloads/dia $
VARIÁVEIS
O que são variáveis? São como gavetas. Gaveta é um compartimento que guarda determinado tipo de conteúdo. Quando abro uma gaveta vejo o que tem dentro desta gaveta. Num armário com muitas gavetas, eu dou nome para cada gaveta. No computador as gavetas possuem dados em bit. Cada letra é um bit. A etiqueta de cada gaveta será o nome da variável. Cada um dos caracteres do teclado cada um é um bit. Como manusear ou criar uma variável no Bash? Sempre tento usar nomes maiúsculos para etiquetar as variáveis.

.

VARIÁVEIS

 

O que são variáveis? São como gavetas. Gaveta é um compartimento que guarda determinado tipo de conteúdo. Quando abro uma gaveta vejo o que tem dentro desta gaveta. Num armário com muitas gavetas, eu dou nome para cada gaveta. No computador as gavetas possuem dados em bit. Cada letra é um bit. A etiqueta de cada gaveta será o nome da variável. Cada um dos caracteres do teclado cada um é um bit. Dentro de uma variável com um nome. Dentro dela tem bits. Como manusear ou criar uma variável no Bash? Sempre tento usar nomes maiúsculos. O nome da variável é igual ao conteúdo.
.

 

Criando uma variável chamado CASA:

 

~$ CASA=tijolo

.
Para ler a variável uso echo, o cifrão “$” e o nome da variável.

.
~ $ echo $CASA
tijolo

.

~ $ CASA=tijolos-ferro-areia-cimento-granito-cascalho

 

~ $ echo $CASA
tijolos-ferro-areia-cimento-granito-cascalho

.

~ $ CASA=”tijolo cimento dinheiro projeto e sonhos”

~ $ echo $CASA
tijolo cimento dinheiro projeto e sonhos

.

~$ ls

~$ ls -t

~$ ls -lah

~$ pwd

.

~$ echo sem o $ ou sem aspas e comando destrutivo, imprime direto na tela do terminal viu?

~$ clear

~ $ CASA=formigas

~ $ echo $CASA
formigas

.

~ $ CASAESPACOS=”sala cozinha banheiro quarto varanda”

~ $ echo $CASAESPACOS
sala cozinha banheiro quarto varanda

.

Existem vária variáveis criadas automaticamente quando entro no terminal e mudam o comportamento do terminal e dos programas.

O comando abaixo serve para ver várias variáveis que já existem para ver elas usa-se o comando abaixo:

~$ ( }et -o posix ; set )

 

.

 

VARIÁVEIS DE AMBIENTE. PARA QUE SERVEM?

 

Servem para mudar o comportamento durante a execução dos comandos. Podem por exemplo mudar a lingua que está rodando o programa. Variáveis Bash alguma coisa mudam o comportamento do Bash ou dos programas. Existem variáveis de ambiente, por exemplo e para listar, saiba que tem as do Bash e as de ambiente. As do Bash só alteram o Bash. Os comandos de ambiente herdam as variáveis. LANG é uma variável de ambiente. Para listar as variáveis promovidas a variáveis de ambiente:

~$ env

 

~ $ echo $LANG
pt_BR.utf8

 

.

COMO PROMOVER VARIÁVEIS?

De local para de ambiente usa-se “export”

~$ export

~$ export CASA

Posso criar variáveis novas.

~$ export NOVAVARIAVEL=”llllllllll”

.

VOU PROCURAR AS VARIÁVEIS:

 

~$ env

 

.

 

PARA ACHAR FÁCIL USO O GREP.

 

~$ env | grep CASA

 

~$ env | grep CASAESPACOS

 

~$ env | grep NOVAVARIAVEL

 

~$ env | grep SOLUS

 

.

 

Algumas variaveis alteram o comportamento dos programas.

PARA MUDAR A VARIAVEL LANG PARA INGLES? SOBREESCREVO A VARIAVEL LANG.

 

~$ echo $LANG
pt_BR.utf8

 

~ $ ls dr2ttttttttt
ls: não foi possível acessar ‘dr2ttttttttt’: Arquivo ou diretório não encontrado

 

~$ export LANG=C

 

~$ echo $LANG
C

 

~$ env | grep LANG
LANG=C

 

~$ ls h7jjjjjj
ls: cannot access ‘h7jjjjjj’: No such file or directory

.

 

Para voltar a falar português:

 

~$ export LANG=pt_BR.utf8

 

~ $ ls ku9sssssssssss
ls: não foi possível acessar ‘ku9sssssssssss’: Arquivo ou diretório não encontrado

.

 

SE EU NÃO QUERO EXPORTAR, NÃO QUERO FAZER VIRAR VARIÁVEL DE AMBIENTE. SÓ QUERO NA EXECUÇÃO DE UM COMANDO ESPECÍFICO ALTERAR UMA VARIAVEL SEM MODIFICAR AS VARIAVEIS DE AMBIENTE. QUERO QUE FALE INGLÊS SOMENTE UMA VEZ E DEPOIS VOLTE A FALAR PORTUGUÊS. DESTA FORMA A VARIAVEL SÓ VAI EXISTIR DENTRO DO PRÓXIMO COMANDO LS E NÃO VAI SER EXPORTADA PARA VARIÁVEL DE AMBIENTE. PARA FAZER ISTO:

 

~ $ LANG=C ls sfrftrbtby
ls: cannot access ‘sfrftrbtby’: No such file or directory

 

~ $ ls sfrftrbtby
ls: não foi possível acessar ‘sfrftrbtby’: Arquivo ou diretório não encontrado

.

AS VARIÁVEIS ALTERADAS SÓ VALEM PARA O TERMINAL QUE ESTOU TRABALHANDO. SE EU ABRIR OUTRO TERMINAL AS VARIÁVEIS NÃO IRÃO VALER.

.

O Bash herda as variáveis para se autoconfigurar em /etc/bash.bashrc e ~/.bashrc. O .bashrc fica no diretório do usuário. No .bashrc posso colocar scripts meus.

 

.

 

VARIAVEIS ESPECIAIS OU DINAMICAS

 

Posso criar variaveis. O Bash tem variáveis especiais também. Variaveis dinamicas que enquanto está executando modifica o conteudo das gavetas. Modifica o conteúdas variáveis. Executa em outra instancia do Bash. É muito útil em shell scripts.

 

~ $ echo $(ls)
Área de trabalho Documentos Downloads Imagens Modelos Música Público Vídeos

 

~ $ echo 1+1
1+1

 

~ $ echo $((1+1))
2

 

~ $ echo 7*9
7*9

 

~ $ echo $((7*9))
63

 

 

.

 

EXPANSÃO – Algo pequeno transformado em algo maior.

Bash varre a linha de comando e substitui. Tenta encontrar padrões transformando em outra coisa. Como arquivos e diretórios. O shell expande as coisas que tem caracteres especiais (variáveis). Exemplo abaixo:

.

[1-9]

{1,2,3}

?

~

—————-
Executo:

 

~ $ echo ~
/home/sol

 

.

Asterisco “*” substitui todos os arquivos e diretorios do diretorio atual. Asterisco significa “qualquer coisa”.

 

~ $ echo *
Área de trabalho Documentos Downloads Imagens Modelos Música Público Vídeos

 

* pode ser usado para outras coisas.

 

~ $ echo erro*
erro*

 

~ $ ls saida*
ls: não foi possível acessar ‘saida*’: Arquivo ou diretório não encontrado

 

.

Vou criar alguns arquivos.

 

~ $ touch texte1plah texte2plah texte123plah

 

~ $ ls

‘Área de trabalho’ Downloads Modelos Público texte1plah Vídeos

Documentos Imagens Música texte123plah texte2plah

 

.

Agora vou procurar (o asterisco também significa nada ou qualquer coisa):

 

~ $ echo *[1-3]*

texte123plah texte1plah texte2plah

 

.

 

~ $ echo *{2,3}*

texte123plah texte2plah texte123plah

 

.

 

É MUITO ÚTIL QUANDO SE ESTÁ PROCURANDO POR UM ARQUIVO[S] ESPECÍFICO[S]. ESTES COMANDO SE CHAMAM WILDCARDS OU CORINGAS. REPRESENTAÇÕES QUE PODEM COMBINAR COM DETERMINADOS CARACTERES.

 

.

 

~ $ echo texte?plah

texte1plah texte2plah

 

.

 

Posso combinar todos eles. Posso combinar todos os wildcards (coringas).

 

.

 

~ $ echo *saida??*

*saida??*

 

.

 

Quero que efetivamente não seja expandido o ~ escapando caracteres. Quero que imprima o ~. Uso barra invertida \ antes do caracter que eu quero que não expanda.

.

~ $ echo \~

~

 

.

 

~ $ echo ~

/home/user

 

.

 

~ $ echo $CASA

tijolo cimento dinheiro projeto e sonhos

 

.

 

~ $ echo \$CASA

$CASA

 

.

 

~$ clear

 

.

 

Isto serve para todos os wildcards.

 

.

 

~ $ echo \$((1+8))

bash: erro de sintaxe próximo do `token’ não esperado `(‘

 

.

Não funcionou.

 

.

 

~ $ echo \$\(\(1+8\)\)

$((1+8))

.

Crio um arquivo com o comando touch:

 

touch texto-teste.txt

 

 

Verifico se está criado com:

 

ls -t

 

 

Crio uma pasta com o comando mkdir:

 

mkdir texto-teste

 

 

Verifico se está criado com:

 

ls -t

 

 

Copio o arquivo texto-teste.txt para a pasta texto-teste. Tem a ver com os comandos cp e o comando mv.

 

 

cp texto-teste.txt texto-teste

 

 

Comando cp copia arquivos ou diretórios para outro local. Se o destino fornecido for o nome de um diretório existente, os arquivos serão copiados para esse diretório, com o mesmo nome. Caso indiquemos um nome de arquivo no caminho de destino, o arquivo de origem será copiado e essa cópia renomeada também.

.

Opções mais comuns:

.

-i, –interactive

Pergunta se desejamos sobrescrever um arquivo de destino já existente.

.

-l, –link

Cria hard links para os arquivos em vez de copiá-los.

.

-n, –no-clobber

Não sobrescrever um arquivo já existente

.

-p

Preserva as permissões originais do arquivo, incluindo proprietário, grupo, stuid, setgid, tempos da última modificação e acesso.

.

-r, -R, –recursive

Copia diretórios de forma recursiva.

 

-s, –symbolic-link

Cria links simbólicos (symlinks) para os arquivos em vez de copiá-los

.

-u, –update

Copia apenas quando os arquivos de origem forem mais novos que os de destino, ou quando os arquivos de destino estiverem faltando.

.

-v, –verbose

Modo verboso; explica o que está sendo feito no momento.

.

–help

Mostra a ajuda básica do comando e sai.

.

–version

Mostra informações sobre a versão do comando e sai.

.

Exemplos:

.

1. Copiar o arquivo passwd do diretório /etcpara o diretório /home/fabio/.

$ cp /etc/passwd /home/user/

 

Se o diretório de trabalho atual já for o /home/user, podemos também usar o ponto (.) para indicá-lo como local de destino, como a seguir:

.

$ cp /etc/passwd .

 

 

—————————–

 

 

Removo o arquivo texto-teste:

 

rm texto-teste.txt

 

 

Removo a pasta texto-teste de forma recursiva com rm -r, se quiser forçar a remoção uso rm -rf (nunca uso o comando [rm -rf/] pois destrói o meu sistema). Comando abaixo remove a pasta texto-teste:

 

 

rm -r texto-teste

.

 

Verifico:

.

 

ls -t

 

—————————

 

COMANDO MV – O COMANDO MV PODE SER USADO PARA MOVER OU RENOMEAR ARQUIVOS.

 

.

Sintaxe:

mv [opções] arquivos_origem local_destino

 

.

Opções principais:

.

-b, –backup

Cria um backup de cada arquivo de destino existente.

.

-f, –force

Apaga destinos existentes sem perguntar ao usuário.

.

-i, –interactive

Pergunta se desejamos sobrescrever um arquivo de destino já existente.

.

-n, –no-clobber

Não sobrescrever um arquivo já existente

.

-u, –update

Move apenas quando os arquivos de origem forem mais novos que os de destino, ou quando os arquivos de destino estiverem faltando.

.

-v, –verbose

Modo verboso; explica o que está sendo feito no momento.

.

–help

Mostra a ajuda básica do comando e sai.

.

–version

Mostra informações sobre a versão do comando e sai.

.

Exemplos:

1. Mover o arquivo passwd do diretório atual para o subdiretório Documentos:

$ mv passwd ./Documentos/

.

2. Mover o arquivo passwd do diretório atual para o subdiretório Documentos, o qual já contém um arquivo com o mesmo nome – nesse caso, queremos fazer um backup do arquivo de destino:

$ mv –backup passwd ./Documentos/

Neste caso o arquivo de backup criado tem o caractere ~ (til) no final de seu nome.

.

3. Renomear o arquivo curriculum.odt para curriculum.txt:

$ mv curriculum.odt curriculum.txt

.

Vejo que não indiquei um destino diferente – mandei mover o arquivo para o próprio local de origem, apenas trocando seu nome

 

 

—————————

 

 

USANDO O COMANDO MV

.

 

Crio um arquivo com o comando touch:

 

touch texto-teste2.txt

 

.

 

Verifico se está criado com:

 

ls -t

 

.

 

Crio uma pasta com o comando mkdir:

 

mkdir texto-teste2

 

 

Verifico se está criado com:

 

ls -t

 

.

 

Copio o arquivo texto-teste.txt para a pasta texto-teste. Tem a ver com os comandos cp e o comando mv.

 

.

 

mv texto-teste2.txt texto-teste2

 

Verifico com:

.

 

ls -t

 

Vou para a pasta texto-teste2 com o comando cd:

.

 

cd texto-teste2

 

.

Verifico:

 

ls -t

 

.

Removo o arquivo texto-teste:

 

rm texto-teste.txt

 

.

Saio da pasta texto-teste:

 

cd

 

.

Verifico:

 

ls -t

 

.

Removo a pasta texto-teste de forma recursiva com rm -r, se quiser forçar a remoção uso rm -rf (nunca uso o comando [rm -rf/] pois destrói o meu sistema). Comando abaixo remove a pasta texto-teste:

 

 

rm -r texto-teste

.

 

Verifico:

.

 

ls -l

 

ls -t

 

ls -lt

 

ls -lat

 

.

 

SOBRE O COMANDO TOUCH

 

Já conheço. Cria arquivos vazios ou muda a data de alteração de algum arquivo:

 

Já vi e fiz exercícios sobre o touch acima.

 

.

 

O COMANDO LN

.

 

O comando ln é um comando para fazer links. Existe o conceito nos sistemas de arquivos. É o conceito de links. Posso criar um link para um determinado arquivo. Um hardlink. Estes arquivos existem uma vez só.

.

 

touch texto-emails.txt

 

.

 

ln texto-emails.txt texto-emails-link.txt

 

.

 

ls -t

 

.

Os dois ocupam um só espaço no HD ou onde quer que eu esteja salvando este arquivo. Eles são o mesmo arquivo.

 

.

Removo o hardlink:

 

.

 

rm texto-emails-link.txt

 

.

 

LINKS SIMBÓLICOS

.

 

Links simbólicos – uma seta apontando para o arquivo original. É diferente do hardlink. É um apontador para um arquivo.

.

 

Criando um link simbólico, primeiro crio o arquivo:

.

 

touch texto-emails.txt

 

.

 

Verifico:

.

 

ls -l

 

ls -t

 

ls -lt

 

.

 

Para criar o link simbólico uso [-s] e [-link]:

.

 

ln -s texto-emails.txt texto-emails-link.txt

 

.

 

Verifico:

.

 

ls

 

ls -l

 

ls -t

 

ls -lt

 

ls -a

 

ls -la

 

ls -lat

 

ls -lah

 

.

 

Ficou com uma cor diferente. Eu uso o ls para verificar o arquivo escrevendo no terminal:

 

 

ls -la texto-emails-link.txt

 

.

 

Fica mais ou menos assim:

 

.

 

~$ ls -la texto-emails-link.txt

lrwxrwxrwx 1 oso oso 16 Jun 22 10:49 texto-emails-link.txt -> texto-emails.txt

 

.

 

A seta (->) indica que é um link simbólico.

 

.

 

Para remover:

 

rm texto-emails-link.txt

 

.

 

——————————–

 

SOBRE O COMANDO MV:

 

Maneira simples de mover todo o conteúdo de uma pastinha para outra. Os brutos de TI, chamam as pastinhas de arquivos e diretórios. Kkkkkkk.

.

 

Exemplo: tenho a pasta teste1 com vários arquivos e pastas e tenho a pastinha teste2 totalmente vazia e vou copiar o conteúdo de teste1 para teste2

.

 

mv teste1/* /home/usuario/www/teste2

 

.

 

Observação:

.

 

1 – O * vai mover todo o conteúdo de arquivos e lindas e fofas pastinhas existentes no teste1 para teste2.

.

 

2 – onde usuario é o usuário logado no shell.

 

——————————–

 

O COMANDO STAT

.

 

O stat tem a ver com o conteúdo de um inode. Inode area do sistema de arquivos que guarda info sobre o arquivo. Lista o conteudo de um inode. Stat mostra o estado de um arquivo.

 

.

 

Inodes guardam as informações sobre um arquivo no disco. É o número de inodes que limita o número de arquivos que podem ser armazenados em disco.

.

 

Tenho que uma hora destas ler o manual do comando stat (man stat, info stat). Comando stat e o inode.

.

 

Comando rmdir

 

.

 

Comando find

 

Digite:

 

find /usr -name Makefile

 

find -name *.txt

.

 

O bash quando tem * expande, para ESCAPAR usa-se ‘*.txt’ ou \*.txt

.

 

find -name ‘*.txt’

.

 

find -name \*.txt

 

.

Comando -type do comando find

.

 

Se eu quero que o find liste pastas

 

find /usr -type d

.

 

Se eu quero que o find liste arquivos

 

find /usr -type f

.

 

 

 

COMANDOS PARA ADMINISTRAR O SISTEMA – PROCESSAR TEXTO NO TERMINAL

 

uniq -> Le a entrada padrão ou le arquivo removendo linhas duplicadas em sequência. Com o uniq posso remover entradas duplicads que estão em sequência. O uniq consegue ler da entrada padrão.

 

uniq emails.txt

uniq emails.txt > emails-sem-duplicados.txt

cat emails.txt | uniq

 

###

 

tac -> É o inverso de cat ele pega toda entrada padrão, inverte e imprime de baixo para cima.

tac emails.txt

 

###

 

tee -> Pega o que recebe da entrada padrão, copia que nem o cat e tem opção de redirecionar para um arquivo. O tee joga na saida padrão e também direciona para um arquivo. É útil para gravar logs de algum comando que executei mas quero salvar em um arquivo.

 

cat emails.txt | tee saida-tee.txt

 

~$ cat saida-tee.txt
mario@gmail.com mariogomes@gmail.com

 

###

 

cut -> Recorta texto em colunas

 

echo joão@gmail.com,carlos@gmail.com,gomes@gmail.com | cut -d, -f1

echo joão@gmail.com,carlos@gmail.com,gomes@gmail.com | cut -d, -f2

echo joão@gmail.com,carlos@gmail.com,gomes@gmail.com | cut -d, -f3

 

###

 

tail -> Pega a entrada padrão dele e repete as últimas linhas.

 

cat emails.txt | tail

cat emails.txt | tail -n1

cat emails.txt | tail -n2

tail -n 2 emails.txt

 

###

 

head -> Pega a entrada padrão dele e repete as primeiras linhas.

 

head -n 2 emails.txt

 

cat emails.txt | head

 

cat emails.txt | head -n1

 

cat emails.txt | head -n2

 

###

 

more -> Formata arquivo e entrada padrão. Formata de forma paginada. Trabalha tanto com arquivos quanto com entrada padrão.

 

find /usr -type d | more

 

###

 

less -> É a evolução do comando more. Tem mais recursos.

 

find /usr -type d | less

 

Aperto a barra / posso procurar uma palavra é só digitar ela.

 

###

 

Comando wc -> Word count, contador de linhas, caracteres ou palavras

 

find /usr -type d | wc [conta palavras]

 

find /usr -type d | wc -l [conta linhas]

 

###

 

sort -> Ordena o conteúdo que foi recebido na entrada padrão ou por arquivo. Consegue fazer uma funcionalidade do uniq. Consegue filtrar mesmo que as linhas repetidas não estejam em sequência.

 

OBS:
Pesquisar o comando vi.

 

find /usr -type d | sort

.

Agora funcionou

.

NUMA MANUTENÇÃO DE ROTINA USA-SE OS COMANDOS EM MOMENTOS DE MONITORAÇÃO E (OU) URGÊNCIA:

 

ls: Lista todos os arquivos do diretório

df: Mostra a quantidade de espaço usada no disco rígido

top: Mostra o uso da memória

cd: Acessa uma determinada pasta (diretório)

mkdir: Cria um diretório

rm: Remove um arquivo/diretório

cat: Abre um arquivo

vi: Abre o editor vi(lê-se viai) para editar/criar arquivos

.

Minhas anotações param por aqui hoje.

 

 

Até Breve

 

.

Manjaro Deepin – Guia Pós Instalação

Captura de Tela20170522184942

 

2017-JUNHO-MANJARO-DEEPIN-17.0.1-STABLE-X86_64-GUIA-POS-INSTALAÇÃO
.

Link para Download
.

https://manjaro.org/community-editions/
.

https://sourceforge.net/projects/manjarolinux-community/files/deepin/17.0.1/
.

Comando para usar no terminal que verifica o sha1 do manjaro-deepin-17.0.1-stable-x86_64.iso
.

sha1sum manjaro-deepin-17.0.1-stable-x86_64.iso
.

GUIA PÓS-INSTALAÇÃO MANJARO-DEEPIN-17.0.1-STABLE-X86_64
.

Tutorial foi testado em computador físico. Funciona muito bem. Uso por MINHA conta e risco.
.

Este tutorial é destinado a estudantes e entusiastas de distribuições Manjaro/Linux.
.

Dicas e correções são bem-vindas.
.

Eu pesquiso anoto e executo o material publicado. Depois eu chamo de artigo e as vezes, publico as anotações para meu uso
.

Espero que estas anotações sejam úteis a você assim como elas são para mim. O legal de usar anotações, é que eu não sei nada de Linux, mas se eu usar estas anotações no esquema ir lendo e executando o que as anotações informam. Ao fim deste caminho vou ver as coisas mais claramente.
.

Quando eu esquecer alguma coisa, eu posso voltar a ela e relembrar. Tem épocas que as anotações aumentam e outras que diminuem. Esta anotação faz parte do meu processo de aprendizado. Vou registrando o que consigo conhecer através de pesquisa e prática.
.

A partir do momento que conheço e entendo alguma coisa de Linux usando Linux somado as minhas anotações, este conhecimento torna-se meu e naturalmente, tomo posse dele como faria qualquer ser humano.
.

Atualmente, é recomendado instalar todos os aplicativos de modo gráfico usando o aplicativo Pamac. O que percebo, é que usar o comando yaourt pode ser utilizados mas não são fundamentalmente necessários, pois existe o programa para adicionar e remover programas no MANJARO (Pamac)
.

Deste tutorial todos os aplicaticos que usem o comando “pacman -S” ou, “sudo pacman -S (nome-do_programa)” são seguros para eu instalar via terminal
.

Usuário comum não pode fazer alterações no sistema e USUÁRIO ADMINISTRADOR pode
.

SE TORNANDO O ADMINISTRADOR:
.

Abra o terminal com o menu do mouse botão direito
.

Digite: sudo su <enter> , digite sua senha <enter>
.

Estará em modo adminstrador. Em modo administrador eu não uso “sudo”
.

O modo administrador é usado para alterações no sistema e com cuidado para não executar comandos inadequados que podem desestabilizar o MANJARO
.

Neste tutorial caso veja “# sudo” desconsidere o “#” e execute o comando sem ser administrador.
.

O modo não administrador é mais seguro e deve-se usar de preferência apenas o comando pacman. O comando yaourt pode instalar programas potencialmente perigosos, não verificados. É um risco. O usuário que sabe de o que faz, sabe verificar estes programas antes de instala-los
.

Os programas oficiais do MANJARO todos podem ser instalados usando “sudo pacman -S” a atualização completa do sistema pode ser feita pelo terminal usando “sudo pacman -Syyuu”
.

É bom para quem quer aprender, usar todos os comandos deste tutorial, mas em uma máquina destinada a estudo, ou, em uma máquina virtual
.

Não devo estudar os comandos e testar softwares não pertencentes ao repositório oficial na máquina que preciso para minhas atividades diárias importantes
.

“Você pode baixar gratuitamente o sistema operacional MANJARO. Ele vem como um arquivo ISO, o qual precisa ser gravado em um DVD virgem, criando assim um LiveDVD.
.

Este LiveDVD é inicializável e, após colocado em seu computador e inicializado, fornece um sistema operacional totalmente funcional, que você pode experimentar sem afetar o seu PC. Em termos leigos, quando você grava o MANJARO em um DVD e o insere no drive de seu computador, pode então, experimentá-lo, deixando seu sistema atual intacto.
.

Nota: Também é possível gravar a imagem ISO num pendrive ou outro dispositivo de memória e então carregar o sistema operacional a partir dele, além de também ser possível fazê-lo através de uma imagem armazenada no disco rígido. Entretanto, essas opções são um pouco mais avançadas. Para saber mais sobre esses métodos alternativos, por favor assista videos do YOUTUBE.”
.

O arquivo que precisa baixar é um arquivo ISO.
.

Há duas maneiras de fazer o download deste arquivo: por torrent, o qual utiliza o protocolo Peer to Peer, que quer dizer Ponto a Ponto em português, ou através de um espelho de download (protocolo HTTP ou FTP). Uma vez que o download tenha terminado, certifique-se de que o seu arquivo ISO não está corrompido, verificando a sua assinatura com o SHA
.

Via Torrent
O Torrent é um protocolo Peer to Peer (P2P). Basicamente, em vez de baixar a imagem ISO a partir de uma localização central, o torrent realiza o download do arquivo ISO em partes, a partir de diferentes pessoas que estejam conectadas à Internet. Quanto mais pessoas baixarem o arquivo ISO, mais rápida a velocidade de download. Esta é a forma mais usada e recomendada para baixar o MANJARO LINUX. Para baixar os arquivos via torrent é necessário um pequeno software chamado de cliente torrent. Se você estiver utilizando uma outra distribuição Linux, pode instalar o Transmission. Porém, se estiver no Linux Mint, o Transmission já estará instalado. Por fim, se estiver utilizando o Windows, poderá usar o aplicativo μTorrent.

 

ATALHOS DE TECLADO PARA O EMULADOR DE TERMINAL LINUX

.
Atalho Função
.
.
.
Ctrl + a Move o cursor para o início da linha
———————————————
Ctrl + e Move o cursor para o final da linha
———————————————
Ctrl + l Limpa a tela, semelhante ao comando clear
———————————————
Ctrl + u Apaga do cursor ao início da linha.
———————————————
Ctrl + k Apaga do cursor ao final da linha.
———————————————
Ctrl + w Apaga uma palavra antes do cursor.
———————————————
Ctrl + _ Desfaz as últimas mudanças.
———————————————
!! Executa o último comando no histórico.
———————————————
!abc Executa o último comando no histórico começando com abc.
———————————————
!n Executa o comando de número n no histórico.
———————————————
^abc^xyz Substitui a primeira ocorrência de abc por xyz no último comando e executa o mesmo.
———————————————
.

COMO VERIFICAR SE UMA IMAGEM ISO ESTÁ CORROMPIDA OU ADULTERADA?
.

Primeiro de tudo eu vou pesquisar no site do Manjaro. Abro o terminal onde está a imagem ISO do Manjaro. Posso usar:
.

sha1sum nome_completo_da_ISO
.

sha256sum nome_completo_da_ISO
.

Comparo as letras e números se conferem com as letras e números do site oficial
.

MANJARO – DIRETORIOS/PASTAS
/opt – arquivos de instalação
/usr/bin – repositorio de comandos – manipulaçao de arquivos
/usr/sbin – comandos para administração do sistema
/usr/lib – bibliotecas compartilhadas
/usr/share – arquivos de fornecedores independentes
/usr/share/man – manual
/usr/local/bin – armazena programas localmente
/usr/contrib/bin – programas e utilitarios publicos
/sbin – comandos de inicialização e encerramento
/home – diretorios dos usuarios
/etc – arquivos de configurações do sistema
/tmp – rascunho do sistema operacional
/dev – arquivos de hardware
/mnt – montar outros perifericos
/var/mail – caixa de correio
/var/news – mensagens correntes
/var/tmp – rascunho dos usuarios

.

MAIS BEM EXPLICADO:
.

O DIRETÓRIO RAIZ (/)

Todos os arquivos e diretórios do sistema Linux instalado no computador partem de uma única origem: o diretório raiz. Mesmo que estejam armazenados em outros dispositivos físicos, é a partir do diretório raiz – representado pela barra (/) – que você poderá acessá-los.

O único usuário do sistema capaz de criar ou mover arquivos do diretório raiz é o root, ou seja, o usuário-administrador. Isso evita que usuários comuns cometam erros e acabem comprometendo a integridade de todo o sistema de arquivos.
.

BINÁRIOS EXECUTÁVEIS: /BIN
Na pasta /bin estão localizados os binários executáveis que podem ser utilizados por qualquer usuário do sistema. São comandos essenciais, usados para trabalhar com arquivos, textos e alguns recursos básicos de rede, como o cp, mv, ping e grep.
.

BINÁRIOS DO SISTEMA: /SBIN
Como o /bin, este diretório armazena executáveis, mas com diferença que são aplicativos utilizados por administradores de sistema com o propósito de realizar funções de manutenção e outras tarefas semelhantes. Entre os comandos disponíveis estão o ifconfig, para configurar e controlar interfaces de rede TCP/IP, e o fdisk, que permite particionar discos rígidos, por exemplo.
.

PROGRAMAS DIVERSOS: /USR
Se eu não encontrar um comando no diretório /bin ou /sbin, ele está aqui. A pasta /usr reúne executáveis, bibliotecas e até documentação de softwares usados pelos usuários ou administradores do sistema. Além disso, sempre que eu compilar e instalar um programa a partir do código-fonte, ele será instalado nesse diretório.
.

CONFIGURAÇÕES DO SISTEMA: /ETC
No diretório /etc ficam arquivos de configuração que podem ser usados por todos os softwares, além de scripts especiais para iniciar ou interromper módulos e programas diversos. É no /etc que se encontra, por exemplo, o arquivo resolv.conf, com uma relação de servidores DNS que podem ser acessados pelo sistema, com os parâmetros necessários para isso.
.

BIBLIOTECAS: /LIB
Neste ponto do sistema de arquivos ficam localizadas as bibliotecas usadas pelos comandos presentes em /bin e /sbin. Normalmente, os arquivos de bibliotecas começam com os prefixos ld ou lib e possuem “extensão” so.
.

OPCIONAIS: /OPT
Aplicativos adicionais, que não são essenciais para o sistema, terminam neste diretório.
.

AQUIVOS PESSOAIS: /HOME
No diretório /home ficam os arquivos pessoais, como documentos e fotografias, sempre dentro de pastas que levam o nome de cada usuário. Vale notar que o diretório pessoal do administrador não fica no mesmo local, e sim em /root.
.

INICIALIZAÇÃO: /BOOT
Arquivos relacionados à inicialização do sistema, ou seja, o processo de boot do Linux, quando o computador é ligado, ficam em /boot.
.

VOLUMES E MÍDIAS: /MNT E /MEDIA
Para acessar os arquivos de um CD, pendrive ou disco rígido presente em outra máquina da rede, é necessário “montar” esse conteúdo no sistema de arquivos local, isso é, torná-lo acessível como se fosse apenas mais um diretório no sistema.
Em /media ficam montadas todas as mídias removíveis, como dispositivos USB e DVDs de dados. Já o diretório /mnt fica reservado aos administradores que precisam montar temporariamente um sistema de arquivos externo.
.

SERVIÇOS: /SRV
Dados de servidores e serviços em execução no computador ficam armazenados dentro desse diretório.
.

ARQUIVOS DE DISPOSITIVOS: /DEV
No Linux, tudo é apresentado na forma de arquivos. Ao plugar um pendrive no computador, por exemplo, um arquivo será criado dentro do diretório /dev e ele servirá como interface para acessar ou gerenciar o drive USB. Nesse diretório, você encontra caminhos semelhantes para acessar terminais e qualquer dispositivo conectado ao computador, como o mouse e até modems.
.

ARQUIVOS VARIÁVEIS: /VAR
Todo arquivo que aumenta de tamanho ao longo do tempo está no diretório de arquivos variáveis. Um exemplo são os logs do sistema, ou seja, registros em forma de texto de atividades realizadas no Linux, como os logins feitos ao longo dos meses.
.

PROCESSOS DO SISTEMA: /PROC
Tudo funciona como um arquivo no Linux. O /proc é isso. Nele são encontrados arquivos que revelam informações sobre os recursos e processos em execução no sistema. Se quiser saber há quanto tempo o Linux está sendo usado desde a última vez em que foi iniciado, basta ler o arquivo /proc/uptime.
.

ARQUIVOS TEMPORÁRIOS: /TMP
Arquivos e diretórios criados temporariamente tanto pelo sistema quanto por mim deve ficar nesse diretório. Parte deles é apagada quando o computador é reiniciado.

Os nomes dos diretórios indicam o que pode ser encontrado neles e, com o tempo, talvez eu esteja navegando por eles com facilidade.

 

PÓS-INSTALAÇÂO MANJARO
.

Atualizo todo o sistema via terminal usando sudo. É obrigatório
.

sudo pacman -Syyuu
.

Digito a senha que é invisivel, acontece entre o teclado e o terminal, e aperto <enter>
.

Executo o comando abaixo:
.

sudo pacman -S yaourt ; sudo pacman -Sy ; sudo pacman -S packer ; sudo pacman -Syu ; sudo pacman -Syy ; sudo pacman -Syyuu
.

Fecho todos os programas que estejam abertos
.

Faço reboot do sistema com o comando abaixo e volto a este tutorial:
.

sudo shutdown -r now
.

Aperto enter
.

EDITORES DE TEXTO SERVEM NÃO APENAS PARA ESCREVER MENSAGENS, RESUMOS, HISTÓRIAS. SERVEM TAMBÉM PARA COMPILAR ASSIM COMO, ESCREVER PROGRAMAS
.

Instalo editores de texto
.

sudo pacman -S leafpad gedit mousepad –noconfirm ; pacman -Sy
.

Instalo o comando yaourt com:
.

sudo pacman -S yaourt ; sudo pacman -Syyuu ; yaourt -Syyuua
.

SUGESTÃO
.

Linha de comando para update, upgrade e limpeza. Recomendado para o fim da pós-instalação depois de dar reboot.
.

Responda as perguntas do terminal sempre com sim (S) ou yes (Y). Copie e cole abaixo mas, não use # , pode começar o comando com o terminal em $.
.

yaourt -Syyuua ; sudo packer -Syyuu ; sudo pacman -Syu ; sudo pacman -Syy ; sudo pacman -Syyuu ; sudo pacman-optimize ; sudo pacman-mirrors -g ; sudo pacman-optimize && sync ; sudo pacman -Sy ; sudo pacman -Syy ; sudo pacman -Su ; sudo pacman -Syyu ; sudo pacman -Rns ; sudo pacman -Qdt ; sudo pacman -Sc ; sudo pacman -Syyuu ; sudo pacman-optimize ; yaourt -Syua -devel ; yaourt -Syyuua ; yaourt -Syu -devel -aur ; sudo reboot
.

Após o reboot, volto a este tutorial
.

COMANDOS DE OTIMIZAÇÃO PARA MANJARO
.

sudo pacman-mirrors -g ; sudo pacman-optimize && sudo sync ; sudo pacman -Sy ; sudo pacman -Syy ; sudo pacman -Su ; sudo pacman -Syyu ; sudo pacman -Syyuu
.

CRIE OS SEUS PRÓPRIOS ARTIGOS NO TELEGRAPH É SÓ ACESSAR ESTE LINK ABAIXO E CRIAR
.

http://telegra.ph/
.

COMANDOS DE TERMINAL MANJARO
.

Como executar comandos pelo Terminal usando Manjaro Linux?
.

AJUDA DO PACMAN
.

sudo pacman -h
.

sudo pacman –help

 

MANJARO
Instalando-Leitor-de-Música-Atraci

Atraci é um novo leitor de música de código aberto que usa o YouTube como fonte e que possui versões para Linux, Windows e Mac.

O programa será instalado nas seguintes pastas:
/opt/

/usr/bin/

/usr/share/

Uma vez instalado, se eu quiser remover; tenho que remover forçado usando:
sudo rm -Rf
Fica assim:

sudo rm -Rf /opt/Atraci*
sudo rm -Rf /usr/bin/Atraci
sudo rm -Rf /usr/share/applications/atraci.desktop
Para instalar manualmente, tem vezes que deve-se instalar algumas dependências. No caso do Atraci é tudo que tiver:
libudev

Para instalar estas dependências no Solus Linux uso o comando abaixo:
sudo -Ss libudev

Instalo as dependências com o comando abaixo:
sudo pacman -S libudev*
Agora uso o comando:

sudo ln -s /lib/x86_64-linux-gnu/libudev /lib/x86_64-linux-gnu/libudev

Baixo o Atraci com wget:
wget “https://github.com/Atraci/Atraci/releases/download/0.7.0/Atraci-linux64.tar.gz?raw=true&#8221; -O Atraci.tar.gz
Renomeio para:
Atraci.tar.gz
Faço o tar.gz virar uma pasta e mando ela para a pasta /opt/ com o comando abaixo:
sudo tar -zxvf Atraci.tar.gz -C /opt/
Percebo que para descompactar arquivos tar.gz devo usar os parâmetros -zxvf e para mover para /opt/ uso o parâmetro -C

O comando abaixo usa mv, que serve para renomear e mover arquivos. Neste caso é renomear para caso a pasta criada vir a ser nomeada diferentemente de Atraci durante a descompactação:

sudo mv /opt/linux*/ /opt/Atraci

Agora, devo tornar o arquivo Atraci da pasta Atraci que está em /opt/ executável usando chmod +x com o comando abaixo:

sudo chmod +x /opt/Atraci/Atraci

Crio um atalho para poder lançar o programa:
sudo ln -sf /opt/Atraci/Atraci /usr/bin/Atraci
Tento:
echo -e ‘[Desktop Entry]\n Version=1.0\n Name=atraci\n Exec=/opt/Atraci/Atraci\n Icon=””\n Type=Application\n Comment=leitor de música\n Categories=Application;Network’ | sudo tee /usr/share/applications/atraci.desktop

Neste comando acima, tenta-se criar uma entrada de Desktop Versão 1.0 chamada atraci executável a partir da pasta /opt/ com icone igual a ” ” o tipo é Application;Network usa-se o comando tee que reproduz o conteúdo fornecido pela entrada padrão tanto na saída padrão quanto em um ou mais arquivos, por isso é muito utilizado juntamente com canalizações para registrar a saída gerada por outros programas.

O nome do comando (tee) é mnemônico para a letra T, pois num diagrama mostrando o funcionamento do comando com a divisão da entrada padrão na saída padrão e em um arquivo acaba por lembrar esta letra.

Depois disto, eu posso tentar executar o Atraci com o comando abaixo:
/opt/Atraci/Atraci
Tento usar:
sudo chmod +x /usr/share/applications/atraci.desktop

cp /usr/share/applications/atraci.desktop ~/Área\ de\ Trabalho/

Como instalar o gerenciador de projetos ProjectLibre no Linux
sudo rm -Rf /opt/projectlibre*

sudo rm -Rf /usr/share/applications/projectlibre.desktop

wget https://ufpr.dl.sourceforge.net/project/projectlibre/ProjectLibre/1.7/projectlibre-1.7.0.tar.gz -O projectlibre.tar.gz

sudo tar -vzxf projectlibre.tar.gz -C /opt/

sudo mv /opt/projectlibre*/ /opt/projectlibre
echo -e ‘[Desktop Entry]\n Version=1.0\n Name=projectlibre\n Exec=java -jar /opt/projectlibre/projectlibre.jar\n Icon=gnome-power-statistics\n Type=Application\n Categories=Application’ | sudo tee /usr/share/applications/projectlibre.desktop

sudo chmod +x /usr/share/applications/projectlibre.desktop
cp /usr/share/applications/projectlibre.desktop ~/Área\ de\ Trabalho/
java -jar /opt/projectlibre/projectlibre.jar
.
MANJARO
Para incronizar os repositórios/procura por atualização e ignorar os grupos dos pacotes solicitados
$ sudo pacman -Syu –ignoregroup pacote1 , pacote2…

Sincronizar a base de dados
$ yaourt -Syua –devel
Atualizar o repo AUR
$ yaourt -Syyuua
Comandos manutenção yaourt juntos:
$ yaourt -Syua –devel ; yaourt -Syyuua
PESQUISAR no repo AUR
yaourt -Ss nome
INSTALAR pacotes do repo AUR
yaourt -S nome
REMOVER pacotes do repo AUR
yaourt -R nome
REMOVER pacotes + dependências do repo AUR
yaourt -Rsn nome
SINCRONIZAR a base de dados e atualiza pacotes
yaourt -Syu –devel –aur

 

Comando Yaourt. Com o yaourt podemos compilar programas, atualizar o sistema, pesquisar entre outras coisas.
Dizem que quando a gente complila um programa em vez de instalar ele automaticamente tipo com um gerenciador gráfico com imagens do programa que vai instalar descrição etc, o programa fica mais sob medida para a tua máquina. Mas o recomendado é instalar tudo pelo Pamac que é o instalador gráfico.
Yaourt não é executado como root ( # ).
No terminal tem que ter este sinal: $
Use yaourt para procurar programas. Use palavras normais (adj, subst, expressões) em ingles.
Ex: yaourt (uma destas palavras abaixo)
net, speed, chrome, games, office, video, music, webcam ; popcorn, arcade, message, telegram, facebook … e outras
Ficaria:
$ yaourt telegram ou $ yaourt popcorn

Apareceria uma lista de programas e você poderia escolher um e instalar. Exemplo:
$ yaourt -S popcorn
Se usar o comando yaourt o terminal irá pedir para compilar usando um editor de texto:
<nome_do_editor_de_texto> ~/.bashrc
Use:
<gedit> ~/.bashrc

Depois, siga as instruções do terminal.
Mas para usar o yaourt tem que instalar ele com o comando abaixo:

sudo pacman -S yaourt ; sudo pacman -Syu

Vamos instalar o WPS office com o comando YAOURT. É um bom exercício e teremos um bom programa compatível com o office da Microsoft.
Digite no terminal:
yaourt wps

O terminal fará uma busca no repo AUR e você escolhe o número que tiver a maior pontuação em amarelo.
No dia que instalo é o número 13. Digito 13 no terminal e aperto enter confirmo as solicitações do terminal e para compilar o programa executo o comando abaixo:

<mousepad> ~/.basrc

Aperto enter e sigo as instruções do terminal.
Manjaro, explique:
Exemplo e exercicio:
Instale o PopcornTime:
Para instalar o Popcorn Time, faça da seguinte maneira:
Pesquise na rede o que é popcorntime.
Abra o terminal.
Busque o pacote:
$ yaourt popcorntime

Na lista que aparecerá escolha o número de pontuação mais elevada, em amarelo geralmente.

Acompanhe as instruções do terminal.

Manjaro, explique compilando com yaourt:

Caso seja necessário:
Removendo: db.lck
$ sudo rm /var/lib/pacman/db.lck
Remover o db.lck não é necessário, significa que existe uma atualização ou comando acontecendo em segundo plano muitas vezes, por isto, preste atenção.
Manjaro, como procuro pacotes que foram instalados em um grupo? Preciso remover alguns…

Para procurar pacotes que foram instalados em um grupo
$ sudo pacman -Sg gnome
$ sudo pacman -Sg kde

 

DeepinScreenshot20170522185125

 

Manjaro, como instalar editores de texto?

Instale editores de texto leafpad gedit e vim.

$ sudo pacman -S gedit vim leafpad

Digite tua senha. Enter.
YAOURT faz buscas.
Obs: Se quiser achar algum programa que não tem no repositório MANJARO exemplo o grub-customizer, é só digitar:
$ yaourt grub-customizer
tecle (enter)

INSTALAR FIREWALL – Já vem pré instalado, mas caso remova, abaixo comando para instalar:
$ sudo pacman -S ufw gufw ; sudo ufw enable

Sugestão de web browsers e melhor browser performance:
yaourt profile-sync-daemon

yaourt pkgbrowser

yaourt google-chrome

yaourt tor-browser-en

yaourt brave-bin

yaourt ubuntu-themes

FIREJAIL – SANDBOX

comando que coloca tudo que pode em firejail(sandbox):
Antes vou fazer um update e upgrade com o comando abaixo:
yaourt -Syyuua && packer -Syyuu && sudo pacman -Syyuu
Depois coloco os programas que entram em contato com a rede no firejail com os comandos abaixo:
sudo pacman -S firejail
mkdir -p ~/.local/share/applications; for profile in $(basename -s .profile /etc/firejail/*.profile); do if [[ -f /usr/share/applications/$profile.desktop ]]; then sed -r ‘s/^(Exec=)/\1firejail /’ /usr/share/applications/$profile.desktop > ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done ;

sudo pacman -Sy ; sudo pacman -Syyuu

Como instalar o gerenciador de projetos ProjectLibre no Linux
Tem que ter o Java OpenJDK8 e o Java talvez seja ruim para segurança do Linux…

Para remover:
sudo rm -Rf /opt/projectlibre*

sudo rm -Rf /usr/share/applications/projectlibre.desktop
Para baixar o pacote:
wget https://ufpr.dl.sourceforge.net/project/projectlibre/ProjectLibre/1.7/projectlibre-1.7.0.tar.gz -O projectlibre.tar.gz
Para desempacotar e mover:
sudo tar -vzxf projectlibre.tar.gz -C /opt/

sudo mv /opt/projectlibre*/ /opt/projectlibre

Para criar icone:
echo -e ‘[Desktop Entry]\n Version=1.0\n Name=projectlibre\n Exec=java -jar /opt/projectlibre/projectlibre.jar\n Icon=gnome-power-statistics\n Type=Application\n Categories=Application’ | sudo tee /usr/share/applications/projectlibre.desktop
Para tornar executável:
sudo chmod +x /usr/share/applications/projectlibre.desktop
Para adicionar as aplicações:
cp /usr/share/applications/projectlibre.desktop ~/Área\ de\ Trabalho/

Para iniciar o programa:
java -jar /opt/projectlibre/projectlibre.jar

 

Manjaro, o que é YAOURT e PACKER?

YAOURT e PACKER
O comando Packer, checa repositórios oficiais e AUR mas NÃO É MAIS UTILIZADO NO MANJARO.

Instalava-se antigamente o PACKER com o YAOURT
$ yaourt -S packer
Tendo executado o comando acima, agora podia-se instalar programas usando packer:
$ packer -S nome_do_pacote
.
YAOURT

Os comandos para instalar pacotes usando yaourt, não necessitam de root (#).
Podem ser executados quando o terminal estiver ($)
Veja só:

O comando yaourt, tem o poder de instalar softwares que existem no repositório MANJARO XFCE 17.01-stable-x86_64 e também no repositório do “Pai” dele, o Arch.
Para o MANJARO XFCE 17.01-stable-x86_64 o Arch Linux é o que o Debian é para o Ubuntu. Uma distribuição diferente, uma ramificação, mas, novo sistema independente.
Manjaro, explique:

QUAL comando fazia upgrade oficial de repositórios e AUR?
$ packer -Syu

O Yaourt pode fazer atualizações e também downloads de pacotes oficiais do MANJARO XFCE 17.01-stable-x86_64 e, dos pacotes oficiais do Arch (mas somente se os novos arquivos PKGBUILD estiverem atualizados) para isto, use o comando abaixo:
$ yaourt -Syua

Manjaro, explique:
Para utilizar o comando Yaourt em downloads e reconstruir (compilar) os pacotes mais atuais da fonte do AUR (menos os arquivos PKGBUILD) tem que executar o comando abaixo:

$ yaourt -Syua –devel

Sabia que:
Você pode usar todos os comandos que acompanham Pacman, ensinados lá no começo com o Yaourt?
Uns comandos são diferentes.
Estes abaixo:

Remover pacotes orfãos é mais fácil e intuitivo com o comando Yaourt:
$ yaourt -Qdt

Manjaro, explique melhor:

Packer – O Manjaro não mantém o packer. O packer náo recebe atualização.

 
MANJARO – MANJARO – MANJARO
Software – Aplicativos – Programas – Pacotes
Nomes de aplicativos úteis, legais, interessantes que pelo menos você deveria tentar conhecer:
filezilla virtualbox blender steam dropbox gparted vlc gimp firejail libreoffice leafpad gedit thunderbird hexchat inkscape uget deluge gnome-chess xboard kollision smplayer rar calibre pinta neverball audacity cheese xfburn minitube xboard aria2 gdesklets vim shutter scribus youtube-dl p7zip tlp thermald gufw ufw preload thermald frozen-bubble teeworlds pingus ltris wget

 

Para instalar uso o comando abaixo:

 

sudo pacman -S filezilla virtualbox blender steam dropbox gparted vlc gimp firejail libreoffice leafpad gedit thunderbird hexchat inkscape uget deluge gnome-chess xboard kollision smplayer rar calibre pinta neverball audacity cheese xfburn minitube xboard aria2 gdesklets vim shutter scribus youtube-dl p7zip tlp thermald gufw ufw preload thermald frozen-bubble teeworlds pingus ltris wget ; sudo pacman -Syu

 

 

MEGASYNC

Instalar Megasync
$ yaourt -S megasync

Ou:

$ packer -S megasync

 
ICONES-TEMAS

Manjaro, como eu Instalo Ícones, Temas e Emblemas?

O primeiro é o hicolor, muitos programas depositam seus icones lá.

Dos tres comandos abaixo, o mais seguro é o pacman pois, o pacote vem do repositório do MANJARO XFCE 17.01-stable-x86_64.

É importante refletir sobre a origem dos pacotes.

O repositório Arch é enorme, mas todos os pacotes são seguros?

Você pode compilar muitos programas incríveis do repositório Arch.

O Manjaro não recomenda.

Tem motivo?

Tem.

No mundo Arch Linux cada usuário deve checar a integridade do que vai instalar por conta própria.

No mundo Arch Linux deve-se saber tudo o que se faz e em caso de algo errado só o usuário do sistema pode corrigir. Tem que ter muito conhecimento. Ou adorar pesquisar e participar de foruns.

$ sudo packer -S hicolor-icon-theme
$ sudo yaourt -S hicolor-icon-theme
$ sudo pacman -S hicolor-icon-theme

Instalando o Tema Flat-Plat

$ yaourt -S flatplat-theme

$ packer -S flatplat-theme
Instalando o Tema Adapta

$ yaourt -S adapta-gtk-theme

$ packer -S adapta-gtk-theme

Instalando Arc-Icon-Theme e moka-icon-theme-git

(Atualizado) Arc-Icon-Theme FaenzaIcon-Theme e Numix-Reborn-Icon-Theme
$ sudo pacman -S community/arc-icon-theme community/faenza-icon-theme community/numix-reborn-icon-themes && sudo pacman -S moka-icon-theme && sudo pacman -Syyuu

 

 

WINFF – WINFF – WINFF – WINFF

MP4 para Avi – Como converter usando o WinFF?
WinFF é um aplicativo versátil, que pode converter arquivos individuais ou múltiplos arquivos em vários formatos, tudo ao mesmo tempo.

Ele é um conversor de vídeo gratuito de código aberto licenciado sob a GNU Public License v3 e escrito em Free Pascal e Lazarus.

O programa é multi plataforma, por isso pode ser usado tanto em Linux e Windows.

Além de suportar várias línguas.

A seguir será mostrado como instalar esse programa e como exemplo, você verá como converter um MP4 para Avi usando o WinFF, mas o mesmo processo pode ser feito de e para os outros formatos que o programa suporta.
Para instalar o WinFF, faça da seguinte forma:
$ sudo pacman -S winff

 

ICONES LILA

Instalando o conjunto de ícones Lila-HD no Manjaro

yaourt -S lila-hd

 
TEMA – VERTEX
Instalando tema Vertex no Manjaro

vertex_theme

Vertex é um tema para GTK-3, GTK-2, Gnome Shell e Cinnamon. Ele suporta ambientes de desktop GTK 3 e GTK 2 baseados como Unity, Gnome Shell, Gnome Classic, Gnome Fallback, Cinnamon, Mate, XFCE, Budgie, Pantheon e etc. O tema vem com três variantes para escolher. A variante padrão com header-bars escuras, uma variante leve, e uma variante escura. Para instalar o tema Vertex, faça da seguinte forma:

$ sudo pacman -s vertex-themes

$ yaourt -S vertex-themes

$ packer -S vertex-themes

 

ICONE-TEMA NITRUX

Nitrux é um conjunto de ícones simples, limpo e artesanal para ambientes baseados GTK (Gnome, Cinnamon, Mate, XFCE, LXDE), KDE (Plasma, Plasma 5) e Android. Nitrux é parte do Nitrux Artwork Project. O conjunto é um dos mais completos que você pode encontrar.

Para instalar o Nitrux em GTK (Unity, Gnome, Xfce, Cinnamon e etc.), faça da seguinte forma:

$ yaourt -S nitrux-icon-theme
Para instalar o Nitrux em QT (KDE, LXQT e etc.), faça da seguinte forma:

$ yaourt -S nitrux-icon-theme-kde

 

TV

Canais de TV a cabo gratis

# $ sudo pacman -S kodi

$ yaourt -S kodi-addon-pvr-iptvsimple-git

 

HANDBRAKE

Como instalar a versão mais recente do HandBrake no Manjaro.

Bastante popular, o HandBrake é um decodificador de vídeo de código aberto para Linux, Windows e Mac OS X. O programa é também uma ferramenta para ripar DVDs. Ele converte os filmes em MPEG-4 e, além de oferecer diversas opções de configuração, insere a legenda desejada diretamente no resultado final.
Além de tudo isso, o aplicativo vem com presets embutidos (perfis) e, além de formatos multimídia comuns, ele suporta DVD ou Bluray desprotegidos, legendas e muito mais.
Para instalar o HandBrake, escolha uma destas maneiras:

$ yaourt -S handbrake
$ sudo pacman -S handbrake && sudo pacman -Syu
Parecido com o Handbrake temos também o Winff e, para gravar coisas que fazemos no desktop o programa Kazam (bom para publicar tutorias no youtube) é um dos melhores e mais fáceis de usar.

$ sudo pacman -S winff && sudo pacman -Syu
$ yaourt kazam

 
QUADRINHOS

Leitor de quadrinhos MComix no Manjaro

mcomix

MComix é um leitor de quadrinhos versátil que suporta ambos os quadrinhos (ocidentais e mangá), em uma variedade de formatos de contêiner, incluindo CBR, CBZ, CB7, LHA e PDF. O aplicativo está disponível para Linux e Windows.
O aplicativo começou como um fork do Comix (app cujo o desenvolvimento parou em 2009), com o principal objetivo de dar correções de bugs e melhorias de estabilidade.
Contudo, MComix tem evoluído ao longo dos anos, ganhando novos recursos e várias melhorias, e tornando-se um leitor de quadrinhos sólido. Para instalar o MComix, faça da seguinte forma:
# pacman -S mcomix –noconfirm

 

 

FREEFILESYNC

Comparando e sincronizando pastas com FreeFileSync

O que é FreeFileSync?
FreeFileSync é uma ferramenta de código aberto multiplataforma para comparar e sincronizar pastas no Linux, Windows e Mac OS X.

Entre outros, ele tem suporte para a realização de comparação de arquivo binário, identificador de links simbólicos, copiar atributos estendidos de NTFS e permissões de segurança, cópia de arquivo à prova de falhas, inclui/excluir arquivos via filtro, tem desempenho em tempo de execução otimizada, relatório de erros detalhado e pode automatizar trabalho em lotes.
Para instalar o FreeFileSync, faça da seguinte forma:

$ sudo pacman -S freefilesync

$ packer -S freefilesync

$ yaourt -S freefilesync

 

PDF Mod – uma ferramenta para modificar documentos PDF
PDF Mod é uma ferramenta simples para modificar documentos PDF.

Ele pode girar, extrair, remover e reordenar as páginas simplesmente arrastando e soltando.

Vários documentos podem ser combinados através de arrastar e soltar.

Você também pode editar o título, assunto, autor e palavras-chave de um documento PDF usando o programa.

Para instalar o PDF Mod, faça da seguinte forma:

$ sudo pacman -S pdfmod

 

KEEPASS2

Proteja suas senhas.

$ sudo pacman -S keepass2 keepass keepassx enpass veracrypt

 

SUBDOWNLOADER

Instale baixador de legendas.

$ sudo pacman -S subdownloader

 
MULTIMIDIA CONVERTER
Conversor de arquivos multimídia:
Instale o dmMediaConverter
dmMediaConverter é um software baseado no FFMpeg, que permite converter facilmente seus arquivos de áudio e vídeo em formatos populares.

Entre as principais características do MediaConverter está a sua capacidade de combinar ou dividir um arquivo de vídeo, incluir legendas em srt, ass, ssa, mov_text, e dvdsub e muito mais.
Para instalar o dmMediaConverter, faça da seguinte forma:
$ yaourt -S dmmediaconverter

 

GRUB-CUSTOMIZER
Instale o Grub Customizer no Manjaro

O programa é uma interface gráfica para alteração das configurações do grub2 (gerenciador de boot padrão do Manjaro). Ele é uma aplicação agradável, que permite ao usuário editar as entradas do menu a partir da tela de inicialização do GRUB e definir o sistema operacional padrão.

Para instalar o Grub Customizer, faça da seguinte forma:

$ yaourt -S grub-customizer

 

RIPAR CD’s

Como instalar o ripador Asunder CD Ripper no Manjaro

$ sudo pacman -S asunder

 

CITADEL

Alternativa ao Microsoft Exchange:

Conheça Citadel.

O Microsoft Exchange é atualmente uma das soluções comerciais mais conhecidas e utilizadas para colaboração on-line entre vários usuários.

Felizmente, os usuários de Linux tem várias alternativas ao Microsoft Exchange, como o Citadel, um projeto open source que está incluído nos repositórios oficiais das principais distribuições Linux. Para instalar o Citadel, faça da seguinte forma:

$ yaourt -S citadel

 

SELENE

Converta arquivos multimídia com Selene Media Encoder

selene

Selene é uma ferramenta de conversão de mídia, desenvolvido por Tony George (que também está por trás Conky Manager) usando GTK3/Vala. O programa tem como objetivo fornecer uma interface gráfica simples para converter arquivos para os formatos populares, juntamente com opções de linha de comando poderosas para codificação autônoma/automatizada. Para instalar o Selene, faça da seguinte forma;

$ yaourt -S selene-media-encoder

 

 

TRATAMENTO DE IMAGENS

Ferramenta de otimização de imagens no Manjaro.

Trimage é um programa que possui uma interface gráfica multiplataforma e uma interface de linha de comando para otimizar os arquivos de imagem para sites, usando optipng, pngcrush, advpng e jpegoptim. Atualmente, ele suporta os arquivos PNG e JPG.

Para instalar o Trimage, faça da seguinte forma:
$ yaourt -S trimage-git

 
ANONIMIDADE

Navegação anônima e segura com I2P no Manjaro.

I2P significa “Invisible Internet Project” (Projeto de Internet invisível).

O recurso é uma camada de rede de computador que permite que aplicativos possam enviar mensagens a outros, sob pseudônimo e com segurança.

Os usos incluem navegação web anônima, chat, transferências de arquivo e blogging.

Na prática, I2P é uma rede anônima, expondo uma camada simples que os aplicativos podem usar para anonimamente e de forma segura, enviar mensagens uns aos outros.

A rede em si é estritamente baseada em mensagem mas existe uma biblioteca disponível para permitir a permitir a comunicação confiável de streaming sobre ela.

Com isso, o I2P protege a sua comunicação de vigilância arrastão e monitoramento por terceiros, tais como ISPs.

Para instalar o I2P, faça da seguinte forma (tá fraco):

$ yaourt -S i2p
Após a instalação execute o I2P usando o seguinte comando em um terminal:

$ i2prouter start
Se o navegador não abrir depois de executar o comando acima, basta usar o endereço abaixo em seu navegador:

http://localhost:7657

Uma vez que a conexão for estabelecida com sucesso, você verá a mensagem “Network OK” (Rede OK) no painel esquerdo.

i2p

Quando quiser parar o serviço I2P use o seguinte comando em um terminal:

$ i2prouter stop

 
ANGRY IP
Instale o Angry IP Scanner no Manjaro

Angry-IP-Scanner

Angry IP Scanner é um scanner de rede TCP/IP que permite aos usuários facilmente fazer a verificação de endereços IP, dentro de qualquer faixa de sua escolha, através de uma interface fácil de usar.
Essa ferramenta é muito útil e permite que os administradores de rede ou qualquer usuário de sistemas baseados em Linux para analisar e escanear máquinas de uma rede.

Uma vez que o Angry IP Scanner detecta um endereço IP ativo, ele então resolverá seu endereço MAC, hostname e porta.
Os dados recolhidos podem então ser armazenados como arquivos TXT, CSV, XML ou lista de IP-Porta. Para instalar o Angry IP Scanner, faça da seguinte forma:
$ yaourt -S ipscan

 

FACEBOOK – WHATSAPP – TELEGRAM
FRANZ – FRANZ – FRANZ – FRANZ – FRANZ
Tenha todos serviços de mensagens com Franz. O Franz ainda está em desenvolvimento e possui versões para as 3 principais plataforma, Windows, Linux e Mac. Basicamente ele consegue concentrar as versões online dos cada um dos serviços em abas, fazendo com que seja possível acessá-los facilmente, alternando entre os serviços facilmente. Os serviços suportados incluem: Slack, Messenger, WhatsApp, Telegram, Skype, WeChat, HipChat, Hangouts, Grape e GroupMe.
Para instalar o Franz, faça da seguinte forma:
$ yaourt -S franz
Para instalar o TELEGRAM oficial, digito:

$ yaourt telegram
procuro pelo pacote binario e digito o número não esquecendo de depois de instalar o telegram:
Remember to delete the official (non-tweaked) launcher by using:
rm ~/.local/share/applications/telegramdesktop.desktop
After running Telegram Desktop e baixar uma imagem qualquer pelo menos.

 

 

GERAR GIF ANIMADO ou VIDEO
Como fazer uma gravação de tela e gerar GIF animado ou vídeo?
Use Silentcast
Silentcast é uma ferramenta de gravação de tela e criação de GIF animado ou vídeo. O programa é simples, direto e prático. Assim, em poucos clique você grava o que precisa e obtém o arquivo de saída dessa gravação.
Como fazer uma gravação de tela e gerar GIF animado ou vídeo usando o Silentcast
Para realizar uma gravação de tela e gerar GIF animado ou vídeo usando o Silentcast, você precisa fazer o seguinte:
Na tela do programa, informe a pasta onde o arquivo será salvo digitando dentro do campo “Working Directory”. Selecione a área da tela que será gravada, clicando na seta ao lado do campo “Area to be recorded”. Para definir o número s de quadros, preencha o campo “Frames per second”. A seguir marque a opção “anim.gif” (se quiser vídeos, marque as opções referente webm ou mp4). Finalmente, clique no botão “OK”;

Depois disso, será exibida abaixo. Quando você estiver pronto para começar a fazer as ações que serão gravadas, clique no botão “OK”;

Faça o que você precisa gravar e quando terminar, clique no ícone do programa no painel e depois na opção “Done”;
Para instalar o Silentcast, faça da seguinte forma:
$ yaourt -S silentcast

 
XDMAN
Gerenciador de download Xtreme Download Manager no Manjaro
xdman
Xtreme Download Manager é utilitário que tem a capacidade de aumentar a velocidade de download até a 500% (depende da conexão), ele pode pausar/retomar downloads até mesmo retomar downloads quebrados sem a opção de retomar. O programa também tem a funcionalidade de pegar vídeos disponíveis na internet e oferece um recurso de agendamento de downloads. Para completar, ele pode ser integrar com qualquer navegador para gerenciar downloads automaticamente usando integração avançada do navegador. O Xtreme Download Manager utiliza um sofisticado algoritmo de segmentação dinâmica, compressão de dados e reutilização da conexão para acelerar o processo de download. Ele suporta HTTP, HTTPS e FTP, firewalls, servidores proxy, redirecionamentos de arquivos, cookies, autorização etc. Para instalar o Xtreme Download Manager, faça da seguinte forma:

$ yaourt -S xdman

Confirme com S ou Y

Para compilar use:

<mousepad> ~/.bashrc

Confirme com S ou Y

 

 

CAPTURA DE TELA
Tire print da tela com HotShots
HotShots
HotShots é uma ferramenta de captura de tela com alguns recursos de edição (redimensionar, cortar, etc). Ele é particularmente adequado para escrever documentação, mas você pode usá-lo para destacar alguns detalhes de uma imagem, de mapa ou o que você quiser. Como o programa é escrito com Qt, ele tem poucas dependências e usa poucos recursos do computador. Para instalar o HotShots, faça da seguinte forma:
$ yaourt -S hotshots

 

 

MY PAINT
Instale o programa de pintura digital MyPaint no Manjaro
mypaint
O programa de pintura digital MyPaint é uma ferramenta ágil e fácil para os pintores digitais. Ele permite que você se concentre na arte, em vez do programa. Você trabalha em sua tela com um mínimo de distrações, trazendo a interface somente quando você realmente precisa dela. O programa possui um suporte básico de camadas, uma interface de usuário simples e minimalista, além ter sido projetado para o uso em tablets sensíveis à pressão, como as feitas pela Wacom e muitos dispositivos semelhantes. Ele vem com uma grande coleção de pincéis, incluindo carvão e tinta para emular um pincel real, mas o engine de pincéis é versátil e altamente configurável, e fornece ferramentas produtivas úteis. Isso permite experimentar seus próprios pincéis e muito mais. Para instalar o MyPaint, faça da seguinte forma:
$ yaourt -S mypaint-git

 
EDITOR DE IMAGENS
Tenha um editor de imagens simples e completo com o Pinta
pinta
Pinta é um programa gratuito, ele é um editor de imagem simplificado baseado em Paint.NET (e, portanto, ele usa Mono), concebido para servir como uma alternativa ao GIMP para usuários casuais. Seu objetivo é fornecer aos usuários uma maneira simples e poderosa para desenhar e manipular imagens no Linux, Mac e Windows. Para instalar o Pinta, faça da seguinte forma:

$ sudo pacman -S pinta –nonconfirm

 
PAINEL PARA AMBIENTE DE TRABALHO
Instale uma Dock leve no Manjaro
plank
Plank pretende ser a dock mais simples do planeta. O objetivo é fornecer apenas o que é necessário em uma dock e absolutamente nada mais. Ela, no entanto, é uma biblioteca que pode ser estendida para criar outros programas de dock com recursos mais avançados. Essa dock foi criada pela mesma equipe que produziu a Docky, assim, Plank é a tecnologia subjacente para Docky (a partir da versão 3.0.0) e tem como objetivo fornecer todas as características centrais, enquanto Docky permite adicionar coisas extravagantes como Docklets, painters, diálogos de configurações e etc. O aplicativo, que está disponível por padrão no Elementary OS, tem vários modos de esconder, posição da tela personalizável, tema e tamanho do ícone, suporta fixação aplicativos para a dock, quicklists e muito mais. Para instalar o Plank, faça da seguinte forma:
$ sudo pacman -S plank plank-config

 
DESENHE – CRIE -PROJETOS – ENGENHARIA – ARQUITETURA
AutoCAD no Linux – Instale o DraftSight no Manjaro
draftsight
Desenvolvido pela Dassault Systemes (que também é desenvolvedora dos softwares Catia e Solidworks), DraftSight é um software gratuito para desenho técnico disponível para Linux, Microsoft Windows e OS X. Ele é atualmente um dos melhores softwares para o design técnico de CAD 2D (e 3D parcialmente), disponível para Linux. Mais o grande destaque desse aplicativo é o seu suporte para leitura e gravação de arquivos em formato DWG e DXF (do AutoCad), ou seja, com ele você pode lidar com arquivos do AutoCAD no Linux, sem precisar instalar o AutoCAD. DraftSight permite anexar modelos de referência externos e tem a capacidade de gerar arquivos no formato PDF com múltiplas páginas, tem um sistema de coordenadas cartesianas, além de desenho em camadas, máscaras de fundo para anotações, suporte para tabelas de estilo de plotagem CTB e STB e muito mais. Para instalar o DraftSight, faça da seguinte forma:
$ yaourt -S draftsight

 
DESENHE – CRIE -PROJETOS – ENGENHARIA – ARQUITETURA
Instalando o FreeCAD no Manjaro
freecad
FreeCAD é um modelador 3D paramétrico de propósito geral baseada em recursos para CAD, MCAD, CAx, CAE e PLM. A modelagem paramétrica permite que você modifique facilmente seu projeto, voltando atrás no histórico do seu modelo e mudando seus parâmetros. O programa é voltado diretamente para engenharia mecânica e design de produto, mas que também se encaixa em uma ampla gama de usos em engenharia, tais como arquitetura ou outras especialidades de engenharia. O programa é 100% Open Source e extremamente modular, permitindo inúmeras possibilidades de personalização e de programação de extensões. FreeCAD é baseado no OpenCasCade, um kernel de geometria poderoso. Ele lê e produz muitos formatos abertos de arquivos como STEP, IGES, STL e outros. Além disso, sua interface é construída com Qt FreeCAD, ou seja, ele funciona exatamente da mesma maneira em plataformas Windows, Mac OS X e Linux. Para instalar o FreeCAD, faça da seguinte forma:
$ sudo pacman -S freecad

 

 

ICONES – TEMAS
Instalando ícones Faenza-Cupertino
cupertino
Um monte de gente usa o ícone Faenza, mas para mim ele não é tão bonito. Mas John Green criou um tema chamado Faenza-Cupertino que só substitui as pastas originais para torná-lo mais parecido com o estilo Elementary original, mas usando os ícones Faenza, deixando mais agradavel. Para instalar os ícones Faenza-Cupertino, faça da seguinte forma:
$ yaourt -S faenza-cupertino-icon-theme
$ packer -S faenza-cupertino-icon-theme

 

 

CONVERTER IMAGENS
Conversor de imagens Converseen
converseen
Ao usar o Converseen você pode economizar muito seu tempo, pois ele pode processar mais de uma imagem com um único clique do mouse. Além disso, graças ao uso das bibliotecas Magick++, ele suporta mais de 100 formatos de imagem como DPX, EXR, GIF, JPEG, JPEG-2000, PhotoCD, PNG, Postscript, SVG, TIFF e muitos outros. Com o conversor de imagens em lote Converseen, você pode:

Realizar uma única ou uma conversão múltipla;

Redimensionar uma ou várias imagens;

Comprimir imagens para suas páginas web;

Girar e inverter imagens;

Renomeiar um monte de imagens usando um número progressivo ou um prefixo/sufixo;

Selecionar um filtro de reamostragem para redimensionar imagens. Para instalar o Converseen, faça da seguinte forma:
$ yaourt -S converseen

 

 

PLAYER
Como instalar o Player Quod Libet no Manjaro. Quod Libet é um áudio player GTK+ de código aberto escrito em Python, que usa a biblioteca de marcação Mutagen, sendo capaz de lidar com grandes bibliotecas. Esse reprodutor foi projetado em torno da ideia de que você sabe como organizar a sua música melhor do que os produtores do software. Ele permite que você faça playlists baseadas em expressões regulares (não se preocupe, pesquisas regulares também funcionam). Ele permite que você exiba e edite todas as tags que você quer no arquivo, para todos os formatos de arquivo que ele suporta. Ele também suporta a maioria das características que você esperaria de um moderno media player: suporte a Unicode, edição de tag avançado, Replay Gain, podcasts e rádio pela internet, suporte a arte do álbum e a todos os principais formatos de áudio.

Para instalar o Quod Libet, faça da seguinte forma:

$ yaourt -S quodlibet

 

 

LIMPEZA – LIMPEZA – LIMPEZA – LIMPEZA

LIMPANDO PACOTES:

Programa CacheClean
Instale:

$ yaourt -S pkgcacheclean

O terminal solicitará editor para compilar:

<gedit> ~/.bashrc

 

COMANDOS CACHE CLEAN:
deleta tudo menos as 2 últimas versões instala pacotes no cache do pacman:

$ sudo pkgcacheclean 1

Remover pacotes deixando apenas as 2 últimas versões:

# pacman -Sc

Remove todos os pacotes e impossibilita Downgrade. ARRISCADO.

# pacman -Scc

Comando 3

Um modo seguro de remover pacotes. Remove todos menos as 3 últimas versões.

$ sudo paccache -rvk3
comando 4

Limpando pacotes orfãos do sistema.

$ sudo pacman -Qdtq
se receber mensagem de erro é que não tem orfãos no sistema.
Comando 5

Lista de pacotes instalados.

$ sudo pacman -Qdt

 

SALVAR ENERGIA – ECONOMIA
Comandos salvar energia – Powersavers
$ sudo pacman -S tlp && systemctl enable tlp

Para máquinas Intel.

$ sudo pacman -S thermald

$ sudo systemctl enable thermald

PowerTOP

$ sudo pacman -S powertop

$ sudo powertop

$ sudo powertop –html

 

Manjaro: Instalar todos os softwares que eu gosto de uma vez só

 

$ sudo pacman -S conky conky manager conky all

 
$ sudo pacman -Sy ; sudo pacman -S smplayer ; sudo pacman -S vlc comix uget winff gdebi k3b liferea chromium-bsu pitivi gconjugue mplayer mpg123 smplayer p7zip cheese calibre subdownloader fbreader chkrootkit handbrake gimp gnuchess xboard firejail

 
sudo bash -c “echo ‘vm.swappiness = 10’ >> /etc/sysctl.conf” ; mkdir -p ~/.local/share/applications; for profile in $(basename -s .profile /etc/firejail/*.profile); do if [[ -f /usr/share/applications/$profile.desktop ]]; then sed -r ‘s/^(Exec=)/\1firejail /’ /usr/share/applications/$profile.desktop > ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done

 
sudo pacman -Sy ; sudo pacman -S smplayer ; sudo pacman -S vlc comix uget winff gdebi k3b liferea chromium-bsu pitivi gconjugue mplayer mpg123 smplayer p7zip cheese calibre subdownloader fbreader handbrake gimp gnuchess xboard firejail && sudo pacman -Syyuu && sudo pacman -S freevial kazam mypaint pinta gpick musique audio-recorder fortune-mod cowsay xdman scratch gtetrinet gsmartcontrol opendict psensor xgnokii pitivi gradio handbrake soundkonverter youtube-dl mplayer smplayer clementine ufw gufw firejail preload handbrake asunder kazam ardour audacity bleachbit uget calibre fbreader gnome-chess xboard preload aria2 filezilla gimp gparted gedit leafpad inkscape gimp mypaint pinta gpick musique liferea youtube-dl pacman retext geany armagetronad && sudo pacman -Syyuu

 

sudo pacman-mirrors -g && sudo pacman-optimize && sync ; sudo pacman -Sy && sudo pacman -Syy && sudo pacman -Su && sudo pacman -Syyu && sudo pacman -Syyuu

 

(você pode remover alguns aplicativos destas sequências de comandos. Use editor de texto gedit, leafpad ou writer)

 

Ao fim executo:

 
sudo pacman-mirrors -g ; sudo pacman-optimize && sync ; sudo pacman -Sy ; sudo pacman -Syy ; sudo pacman -Su ; sudo pacman -Syyu ; sudo pacman -Syyuu

 

REVISÃO – 2017-MANJARO-17.1-COMANDOS-BASICOS

 
sudo pacman -Sy = sincroniza os repositórios.
sudo pacman -Su = procura por atualização
sudo pacman -Syu = sincroniza os repositórios/procura por atualização
sudo pacman -Syy = sincroniza os repositórios do Manjaro Linux
sudo pacman -Syyu = sincronização total/procura por atualização
sudo pacman -S pacote = instala um pacote
sudo pacman -R pacote = remove um pacote
sudo pacman -Rs pacote = remove o pacote junto com as dependências não usadas por outros pacotes
sudo pacman -Rsn pacote = remove o pacote junto com as dependências não usadas por outros pacotes e junto com os arquivos de configuração
sudo pacman -Ss pacote = procura por um pacote
sudo pacman -Sw pacote = apenas baixa o pacote e não o instala
sudo pacman -Si pacote = mostra informações de um pacote não instalado
sudo pacman -Qi pacote = mostra informações do pacote já instalado
sudo pacman -Se pacote = instala apenas as dependências
sudo pacman -Ql pacote = mostra todos os arquivos pertencentes ao pacote
sudo pacman -Qu = mostra os pacotes que serão atualizados
sudo pacman -Q = lista todos os pacotes instalados
sudo pacman -Qo arquivo = mostra a qual pacote aquele arquivo pertence
sudo pacman -Qdt = lista pacotes desnecessários, sem dependências
sudo pacman -Rns $(pacman -Qqdt) = apaga pacotes desnecessários, sem dependências
sudo pacman -A pacote.pkg.tar.gz = instala um pacote local
sudo pacman -Sc = deleta do cache todos os pacotes antigos
sudo pacman -Scc = limpa o cache, removendo todos os pacotes existentes no /var/cache/pacman/pkg/
sudo pacman-optimize = otimiza a base de dados do pacman
sudo pacman -Sdd = instala ignorando as dependências
sudo pacman -Rdd = elimina um pacote ignorando as dependências
sudo pacman-mirrors.conf = para gerenciar pacman.cof
sudo pacman-mirrors -g = para gerar um novo mirrorlist
sudo pacman -U home/user/arquivo.tar.xz = instalar pacotes baixados no pc
sudo pacman -U http://www.site.com/arquivo.tar.xz = instalar pacotes baixados via download
sudo pacman -Qem = lista pacotes instalados do repo AUR
sudo pacman -Rscn = desinstala pacotes e suas dependencias e seus registros, tudo
sudo pacman -S pacote –noconfirm = Instala o pacote sem precisar confirmar com “yes/no ,S/N”…
sudo pacman -Syu –ignoregroup pacote1 , pacote2… = sincroniza os repositórios/procura por atualização e ignora os grupos dos pacotes solicitados
yaourt -Syua –devel = sincronizar a base de dados
yaourt -Syyuua = atualizar o repo AUR
yaourt -Ss nome = pesquisar no repo AUR
yaourt -S nome = instalar pacotes do repo AUR
yaourt -R nome = remover pacotes do repo AUR
yaourt -Rsn nome = remover pacotes + dependências do repo AUR
yaourt -Syu –devel –aur = sincronizar a base de dados e atualiza pacotes

 

 

COMO INSTALAR MANUALMENTE O TELEGRAM NO MANJARO LINUX
sudo rm -Rf /opt/telegram*

sudo rm -Rf /usr/bin/telegram

sudo rm -Rf /usr/share/applications/telegram.desktop
wget “https://telegram.org/dl/desktop/linux&#8221; -O telegram.tar.xz

sudo tar Jxf telegram.tar.xz -C /opt/

sudo mv /opt/Telegram*/ /opt/telegram

sudo ln -sf /opt/telegram/Telegram /usr/bin/telegram

echo -e ‘[Desktop Entry]\n Version=1.0\n Exec=/opt/telegram/Telegram\n Icon=Telegram\n Type=Application\n Categories=Application;Network;’ | sudo tee /usr/share/applications/telegram.desktop

sudo chmod +x /usr/share/applications/telegram.desktop

cp /usr/share/applications/telegram.desktop ~/Área\ de\ Trabalho/

 

 

Fico por aqui.

 

Até Breve

 

ANOTAÇÕES-GUIA-PÓS-INSTALAÇÃO-SPARKYLINUX-MAIO-2017

 

sparky-linux

 

2017-Maio

GUIA-PÓS-INSTALAÇÃO-SPARKYLINUX

SparkyLinux é uma distro super leve, rápida e simples projetada para computadores novos e também velhos.

Usa Enlightenment, KDE Plasma, LXQT, Xfce, MATE e LXDE em seus desktops, mas oferece também a instalação fácil de vários outros tipos de Desktops através do APTus.

 

 

O SparkyLinux é contruido sobre o Debian GNU/Linux ramo de teste.

Eu acho o Sparky Linux nota 9 faltando apenas um ponto para nota 10 e para mim nenhuma distro Linux atingiu ainda a nota dez.

A nota 10 seria talvez o fim, pois os sistemas chegariam a um ponto que parariam de se desenvolver e quem iria desejar isto?

Só coisas mortas, penso eu, cessam o processo de transformação e desenvolvimento.

E digo que se a morte é perfeita, eu adoro mesmo é o imperfeito.

O Sparky Linux apoia-se nos ombros de gigantes. É baseado no Debian, usa o gerenciador de janelas openbox e o gerenciador de arquivos PCmanFM 1.2.5. É muito veloz e leve. Não exige limpeza do sistema, não pode ser contaminado por virus, trojans e outras coisas ruins. É exelente para notebooks modestos com até 4GB de RAM ou menos. Aceita bem multiplos monitores e está sempre bem atualizado. Fora isto, não é necessário configurar sudo para o usuário, não é necessário editar source.list, não há problemas com chaves públicas e posso atualizar o kernel facilmente de modo gráfico com o APTus.

 

PARA MAIS INFORMAÇÃO SOBRE E ONDE BAIXAR VISITE:
https://distrowatch.com/table.php?distribution=sparky

 

 

As distribuições Linux em 2017, sempre tem uma coisa que deve ser feita em primeiro lugar antes de qualquer outra coisa:

 

Atualizar repositórios e fazer update do sistema.

 
Eu gosto de fazer isto usando o terminal porém pelo menu existe opção grafica para se fazer isto também. O Sparky Linux é baseado no Debian, então os comandos do Debian todos eles; podem ser usados no Sparky Linux sem problema nenhum.
Executo o primeiro comando abaixo abrindo o terminal com o mouse:

sudo sh -c ‘apt update && apt -y full-upgrade’

Digito a senha, ele não é para ser vista. É um lance entre o teclado e o terminal apenas. Aperto a tecla enter e começamos os trabalhos.

Aguardo pacientemente. Mas abro outro terminal para verificar informações sobre o SparkyLinux com o comando lsb_release -a. Então:

 

~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Sparky
Description: SparkyLinux
Release: 4
Codename: Tyche

 
O Sparky Linux vem com a opção de instalar codecs de Multimidia e suites de office no menu Office e Audio & Vídeo. Vem com o instalador de pacotes Synaptic, Gdebi e com o APTus então; não é necessário usar o terminal para instalar/desinstalar programas, mas eu gosto de usar o terminal então vou instalar alguns programapor ele.

 

Para executar comandos posso seguir a seguinte fórmula que serve também para o Debian/Ubuntu:

 

sudo sh -c ‘comando1 && comando2’

 

 

Com esta formação, eu também posso usar o bash, se quiser:

sudo bash -c ‘comando1 && comando2’

 
Pode ser útil usar esta técnica quando eu quiser deixar o sistema sendo atualizado — tarefa na qual, comumente, uso 2 comandos (no Debian/Ubuntu):

 

sudo sh -c ‘apt update && apt -y full-upgrade’

 
O que este comando faz:

 

sudo — como eu já sei, confere superpoderes a tudo o que vem depois, nesta mesma linha de comando.
sh — abre uma shell do interpretador de comandos Dash padrão do Linux/Unix.
-c — executa os comandos, que seguem entre as aspas.

 
Ainda, com o comando apt, o exemplo abaixo roda a opção de atualização com os repositórios, antes de instalar um programa:

 

sudo — sh -c ‘apt update && apt install -y thermald’

 
Quero saber o espaço em disco do sistema de arquivos usado por todas as partições. “df”, “df -h” digito e recebo a resposta sobre a quantidade de disco rígido HD no meu computador usando df -h. Então:

 

~$ df -h
Sist. Arq. Tam. Usado Disp. Uso% Montado em
udev 1,3G 0 1,3G 0% /dev
tmpfs 259M 4,6M 254M 2% /run
/dev/sda2 137G 6,4G 124G 5% /
tmpfs 1,3G 0 1,3G 0% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 1,3G 0 1,3G 0% /sys/fs/cgroup
tmpfs 259M 4,0K 259M 1% /run/user/106
tmpfs 259M 24K 259M 1% /run/user/1000

 

 
Eu vou no menu e ativo o Firewall do SparkyLinux.

 

 

Agora é só instalar os programas que eu quero. E abaixo alguns deles:

firejail e firetools – sandbox

sigil – editor de pdf

fbreader – leitor de epub, pdf e diversos outros formatos
calibre – gerenciador/conversor de ebooks
vlc, smplayer – reprodutores de audio e video
musique, clementine – reprodutores de audio
subdownloader – encontra e baixa subtitulos
seahorse – gerenciador de senhas

 

 

Faço como neste exemplo abaixo:

 

sudo — sh -c ‘apt update && apt install -y clementine subdownloader seahorse gaupol uget firejail firetools sigil’ ; sudo apt-get update ; mkdir -p ~/.local/share/applications; for profile in $(basename -s .profile /etc/firejail/*.profile); do if [[ -f /usr/share/applications/$profile.desktop ]]; then sed -r ‘s/^(Exec=)/\1firejail /’ /usr/share/applications/$profile.desktop > ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done ; sudo sh -c ‘apt update && apt -y full-upgrade’

 

 

Eu uso a sequencia de comandos abaixo para colocar aplicativos que tem contato com a internet no FIREJAIL para poderem ser abertos usando o FIRETOOLS:

 

sudo apt-get update ; mkdir -p ~/.local/share/applications; for profile in $(basename -s .profile /etc/firejail/*.profile); do if [[ -f /usr/share/applications/$profile.desktop ]]; then sed -r ‘s/^(Exec=)/\1firejail /’ /usr/share/applications/$profile.desktop > ~/.local/share/applications/$profile.desktop; echo $profile configured to run in firejail; fi; done ; sudo sh -c ‘apt update && apt -y full-upgrade’

 

 

Quero ver o que acontece no meu sistema na tela do meu desktop. Para isto eu devo instalar o Conky-Manager para Debian no meu caso 32bits. No site:

 

https://launchpad.net/~teejee2008/+archive/ubuntu/ppa/+packages

 

 
Eu baixo algo parecido com isto:

 

conky-manager_2.4~136~ubuntu16.04.1_i386.deb (762.3 KiB)

 

 
E instalo com o Gdebi que já está pré-instalado no Sparky-Linux.

 

 

Eu que estou entrando no mundo Linux tem pouco tempo, sei que existem milhares de programas prontinhos esperando por mim para eu usar, mas, não sei o nome deles todos. Para ficar atualizado sobre isto; eu visito sites que oferecem esta informação. Por exemplo:

 

 

https://elias.praciano.com/

http://www.edivaldobrito.com.br/

http://www.tocadacoruja.net/forum/forum.php

http://ubuntuhandbook.org/

http://www.ubuntudicas.com.br/

http://www.linuxtotal.org/

https://itsfoss.com/

 

 

VOU EM FRENTE.

 

 
Mudo o SWAP para 10 com o comando abaixo:

 

sudo bash -c “echo ‘vm.swappiness = 10’ >> /etc/sysctl.conf” ; sudo shutdown -r now

 

 
A máquina vai reiniciar. Aí eu confiro o swap com o comando abaixo:

 

cat /proc/sys/vm/swappiness

 

 
O resultado deverá ser:
10

 

 

Aí tudo ok para mim. Não uso linux como servidor então swap 10 eu gosto.

 

 

 

INSTALO

 
Administradores de pacotes;

 

sudo apt-get update ; sudo apt-get install synaptic apt-xapian-index gdebi gksu ; sudo sh -c ‘apt update && apt -y full-upgrade’

 

 
Então, chego a este ponto… Antes de instalar mais coisas eu devo me lembrar como é que se instala arquivos tar.gz e arquivos tar.bz2 ou tar.xz. porque eu desejo instalar programas que não vem por padrão na distribuição.

 

Tem como instalar, mas eles podem alguma vez, como disse, ser arquivos tar.

 

Pacotes do tipo .tar.gz ou .tar.bz2 contém os fontes do programa prontos para compilação (transformar fontes em executáveis).

 
Sua instalação não depende da distribuição usada. Tente instalar tar.gz no Solus Linux por exemplo… é possivel, e é um esquema parecido com o abaixo.

 
O .tar significa que dentro desse arquivo existem outros arquivos e sub-pastas e o .gz ou .bz2 é o tipo de compactação que foi usada na criação do pacote.

 

 
Abro o terminal e digito os seguintes comandos nessa ordem:

 

 

$ cd /home/usuário (entro no diretório onde está o pacote)

 

$ ls (só para eu ver o pacote que eu baixei)

 

$ tar -jxvf nome_do_pacote.tar.bz2

 

 

Para extrair os arquivos de um pacote .tar.bz2 uso o comando listado acima, caso fosse um .tar.gz o comando seria bastante semelhante:

 

 
$ tar -zxvf nome_do_pacote.tar.gz

 

 

Ou seja, muda apenas em uma letra de “j” para “z” ou vice-versa. Procuro saber o que significa cada uma dessas letras, para isso uso o comando:

 

 
$ man tar

 

 

Agora posso notar que foi criado um novo diretório:

 

 

$ ls

 
$ cd nome_do_diretório_criado

 
$ ls

 

 

Estou vendo um arquivo chamado “configure”.

 

Esse arquivo ‘prepara’ o Linux para instalar o programa, checando dependências, entre outras coisas.

 

Se encontrar problemas na etapa seguinte, leio o INSTALL ou o README, eles informam tudo que preciso ter e/ou fazer para ter o programa funcionando perfeitamente.

 

 

$ ./configure

 

(o ./ significa que quero executar esse arquivo)

 

 

Serão verificadas variáveis de ambiente e dependências de bibliotecas.

 

 

Essa etapa demora um pouco, caso o configure encontre algum erro, anoto, vou no install e vejo se fala algo sobre.

 

 

$ make

 
$ make install (instala o programa no Linux)

 

 

LISTINHA DE COMANDOS:

 

 

tar -zxvf nome-do-arquivo.tar.gz – desempacota o arquivo de extensão .tar.gz;

tar -jxvf nome-do-arquivo.tar.bz2 – desempacota o arquivo de extensão .tar.bz2.

 

 
Tem pacote que nem é preciso executar:

 

configure

make

make install.

 

 

Ao desempacotar o ‘tar’ dentro da pasta já está o executável prontinho para ser executado, ou existe um arquivo de instalação próprio do programa, como é o caso de pacotes para office e as vezes, o popcorn.

 

 

Instalo mais programas que eu gosto:

 

 

sudo — sh -c ‘apt update && apt install -y bleachbit gimp shotwell gparted gnome-disk-utility scratch geany pinta liferea thunderbird enigmail gedit mousepad dreamchess comix mcomix youtube-dl fortune fortunes-br cowsay p7zip unrar rar audacity tlp lm-sensors gconjugue inkscape pinta’ ; sudo sh -c ‘apt update && apt -y full-upgrade’

 

 

Abaixo é um lembrete para mim, de como eu posso instalar vários programas que eu gosto que estão empacotados em .tar alguma coisa:

 

 

 

INSTALAR O POPCORN-TIME NO LINUX

 

 

sudo rm -Rf /opt/popcorntime

sudo rm -Rf /usr/bin/Popcorn-Time

sudo rm -Rf /usr/share/applications/popcorntime.desktop

 

 

wget https://get.popcorntime.sh/build/Popcorn-Time-0.3.10-Linux-64.tar.xz -O popcorntime.tar.xz

 

 

sudo mkdir /opt/popcorntime

 

sudo tar Jxf popcorntime.tar.xz -C /opt/popcorntime/

sudo ln -sf /opt/popcorntime/Popcorn-Time /usr/bin/Popcorn-Time

 

 

echo -e ‘[Desktop Entry]\n Version=1.0\n Name=popcorntime\n Exec=/opt/popcorntime/Popcorn-Time\n Icon=/opt/popcorntime/src/app/images/icon.png\n Type=Application\n Categories=Application’ | sudo tee /usr/share/applications/popcorntime.desktop

 

 

Agora é digitar:

/opt/popcorntime/Popcorn-Time

E apertar a tecla TAB

Posso tentar:

sudo chmod +x /usr/share/applications/popcorntime.desktop

cp /usr/share/applications/popcorntime.desktop  ~/Área\ de\ Trabalho/

 

 

 

COMO INSTALAR O TOR-BROWSER NO LINUX

 

 

sudo rm -Rf /opt/tor-browser*

sudo rm -Rf /usr/bin/tor-browser

sudo rm -Rf /usr/share/applications/torbrowser.desktop

 

 

wget https://dist.torproject.org/torbrowser/6.5.1/tor-browser-linux64-6.5.1_pt-BR.tar.xz -O tor-browser.tar.xz

sudo tar -xvJf tor-browser.tar.xz -C /opt/

sudo mv /opt/tor-browser*/ /opt/tor-browser

 

sudo ln -sf /opt/tor-browser/Browser/start-tor-browser /usr/bin/torbrowser

echo -e ‘[Desktop Entry]\n Version=1.0\n Name=torbrowser\n Exec=/opt/tor-browser/Browser/start-tor-browser\n Icon=/opt/tor-browser/Browser/icons/updater.png\n Type=Application\n Categories=Application’ | sudo tee /usr/share/applications/torbrowser.desktop

 

 

 

COMO INSTALAR O TELEGRAM NO LINUX

 
sudo rm -Rf /opt/telegram*

sudo rm -Rf /usr/bin/telegram

sudo rm -Rf /usr/share/applications/telegram.desktop

 

 

wget “https://telegram.org/dl/desktop/linux&#8221; -O telegram.tar.xz

sudo tar Jxf telegram.tar.xz -C /opt/

sudo mv /opt/Telegram*/ /opt/telegram

sudo ln -sf /opt/telegram/Telegram /usr/bin/telegram

 

 

 

echo -e ‘[Desktop Entry]\n Version=1.0\n Exec=/opt/telegram/Telegram\n Icon=Telegram\n Type=Application\n Categories=Application;Network;’ | sudo tee /usr/share/applications/telegram.desktop

 

 

sudo chmod +x /usr/share/applications/telegram.desktop

 

cp /usr/share/applications/telegram.desktop ~/Área\ de\ Trabalho/

 

 

 

Vou instalar:

ICONES NUMIX

$ sudo su –

senha e enter copio e colo:

# apt-get update ; apt-get install git ; mkdir numix; cd numix && git clone https://github.com/cldx/numix-gtk-theme && git clone https://github.com/numixproject/numix-icon-theme && git clone https://github.com/numixproject/numix-icon-theme-circle && mv numix-gtk-theme /usr/share/themes && mv numix-icon-theme/Numix/ /usr/share/icons && mv numix-icon-theme-circle/Numix-Circle/ /usr/share/icons; cd – && rm numix -rf

 

 

 

Bom, fico por aqui hoje. Espero que estas anotações te ajudem o tanto quando são úteis para mim.

Até Breve

.

Anotação2-LINUX-MINT-SERENA-GUIA-PÓS-INSTALAÇÃO-2017

linux-mint-wallpaper-4428-hd-wallpapers

 

 

2017-Abril

LINUX-MINT-SERENA-GUIA-PÓS-INSTALAÇÃO-2017


Reboot painel do Linux Mint 18.1 Serena
Fiz uma besteira e o meu painel ficou bagunçado. Abro o terminal e executo o seguinte comando abaixo:

 

gsettings reset-recursively org.cinnamon (ESTE É PARA CINNAMON)

gsettings reset-recursively org.mate.panel (ESTE É PARA MATE)
—————————————————-
—————————————————-
Linux Mint 18.1 Serena
ATALHOS DE TECLADO PARA O EMULADOR DE TERMINAL LINUX
—————————————————-
Atalho Função

Ctrl + a Move o cursor para o início da linha
—————————————————-
Ctrl + e Move o cursor para o final da linha
—————————————————-
Ctrl + l Limpa a tela, semelhante ao comando clear
—————————————————-
Ctrl + u Apaga do cursor ao início da linha.
—————————————————-
Ctrl + k Apaga do cursor ao final da linha.
—————————————————-
Ctrl + w Apaga uma palavra antes do cursor.
—————————————————-
Ctrl + _ Desfaz as últimas mudanças.
—————————————————-
!! Executa o último comando no histórico.
—————————————————-
!abc Executa o último comando no histórico começando com abc.
—————————————————-
!n Executa o comando de número n no histórico.
—————————————————-
^abc^xyz Substitui a primeira ocorrência de abc por xyz no último comando e executa o mesmo.
—————————————————-
—————————————————-
————————————————————
*Minhas-Anotacoes-Guia-Pós-Instalação-Linux-Mint-18.1-Serena-LTS-2017*
————————————————————

 

 

Primeiro de tudo eu vou pesquisar no site do Linux Mint. Abro o terminal onde esa a imagem ISO do Linux Mint. Posso usar:

 

sha1sum nome_completo_da_ISO
sha256sum nome_completo_da_ISO

 

Comparar as letras e números se conferem com as letras e números do site oficial Linux Mint.

 

Crio uma pasta chamada ISO na pasta Home
Movo a Imagem ISO baixada para esta pasta

 

Baixo 2 arquivos do site oficial Linux Mint são eles:
sha256sum.txt

sha256sum.txt.gpg

 

A pasta ISO fica com 3 arquivos a imagem ISO e os dois acima.
Com o mouse abro o terminal nesta pasta e dependendo do caso, digito os 3 comandos abaixo um de cada vez, o mais importante é o último:

cd
cd ISO
sha256sum -b *.iso

 

O último comando deve mostrar o SHA256 e compare com o encontrado no texto
sha256sum.txt

 

Pode também tentar o comando abaixo mas as instruções acima para mim é o suficiente (preguiça):

 

sha256sum –ignore-missing -c sha256sum.txt
Pronto! Se estiver tudo certo, dizem que posso usar a imagem ISO tranquilamente.

 


sudo apt-get install aptitude -y ; sudo apt-get update ; sudo aptitude update && sudo aptitude upgrade

 

 

 

Guia-Pós-Instalação-Linux-Mint-18.1-Serena-LTS-2017

 

 

Quero saber qual se é mesmo o Linux Mint serena que estou usando. Digito o comando [ lsb_release -a ] abaixo e recebo a resposta:
~ $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description: Linux Mint 18.1 Serena
Release: 18.1
Codename: serena

~ $ df -h
Sist. Arq. Tam. Usado Disp. Uso% Montado em
udev 1,9G 0 1,9G 0% /dev
tmpfs 387M 6,3M 381M 2% /run
/dev/sda1 158G 33G 118G 22% /

 

 

O SÍMBOLO DA RAIZ DO SISTEMA TOTAL É UMA BARRA /

~$ cd /

 

Aperto enter e estou na raiz total do sistema e se eu mexer aí ou deletar ele, acabou-se tudo. Para confirmar digito pwd
~$ pwd
/

 

 

Guia-Pós-Instalação-Linux-Mint-18.1-Serena-LTS-2017
——————————————————-
*Aqui já de cara, executo um comando antes de começar a brincadeira. Eu quero instalar lm-sensors, finger, fortune, cowsay, speedtest-cli, w3m, w3m-img e links. Vou usar aptitude também. Copio e colo no terminal a sequência abaixo, digito a senha (não aparecerão números nem simbolos) e aperto enter*
——————————————————-

 

 

~$ sudo apt install lm-sensors && sudo apt install finger fortune cowsay && sudo apt install speedtest-cli w3m w3m-img links && sudo apt update

 

 

É BOM DE IMEDIATO, EU IR TOMANDO INTIMIDADE COM O TERMINAL POIS, ELE É MEU ALIDADO. É UM AMIGO QUE EXISTE PARA SIMPLIFICAR E FACILITAR A MINHA VIDA. NÃO É ALGO COMPLICADO OU ARRISCADO QUE APENAS USUÁRIOS AVANÇADOS PODEM USAR.

 
—————————————————-
Guia-Pós-Instalação-Linux-Mint-18.1-Serena-LTS-2017
—————————————————-
COMANDOS BÁSICOS W3M – PROGRAMA NAVEGADOR INTERNET QUE RODA NO TERMINAL
shift+h

w3m google.com

shift+b

shift+u
—————————————————-
Guia-Pós-Instalação-Linux-Mint-18.1-Serena-LTS-2017
—————————————————

 

SOU INICIANTE, ENTÃO QUERO APRENDER COMANDOS BÁSICOS DO TERMINAL DO LINUX QUE SE CHAMA BASH (BOURNE AGAIN SHELL).
—————————————————

 

No mundo do computador, tem SOFTWARE e HARDWARE.
Hardware é a parte SÓLIDA e software é VIRTUAL.
O Software controla o hardware. Em termos simplificados é isto.

Executar comandos no terminal com sucesso é um dos meus objetivos como iniciante.
—————————————————-
Guia-Pós-Instalação-Linux-Mint-18.1-Serena-LTS-2017
—————————————————-

 

O Kernel é o programa que está mais próximo do hardware.

 

O kernel é a ponte que permite os programas conversarem com o hardware.

 

O hardware responde aos aplicaticos por meio do Kernel.

 

Deve ser por isto, que estão sempre atualizando o Kernel.

 

Os Kernels mais antigos não respondem bem a novos hardwares e pode ser que certos programas não funcionem bem se usar um Kernel antigo.

 

Os aplicativos não conversam com o Hardware conversam com o Kernel ai sim, o Kernel sim conversa com o Hardware.

 

O Bash é um dos muitos interpretadores de comandos que existem e é o usado no Linux.

 

Tem outros como o CSH o DOS o POWERSHELL e outros.

 

O SHELL É O INTERPRETADOR DE COMANDOS DO TERMINAL.

 

O SHELL DO LINUX É O BASH.

 

TUDO NO LINUX É CONSIDERADO ARQUIVO.

 

OS COMANDOS PODEM USAR ARGUMENTOS.


 

 

Eu quero saber o que significa processos do sistema operacional Linux. O que é isto? Vou pesquisar. Pesquiso muito. As informações são confusas, navego em sites, blogs encaro um monte de sujeira e XXX pelo caminho caótico e sujinho em inglês, português, espanhol e uso um tradutor para sites eslavos. Affff!
Mas agora acho que sei o que são processos. 🙂

 

 

Vou escrever com minhas palavras. Afinal, estas são as minhas anotações e faço o que for preciso para que eu possa entender mais ou menos esta coisa complicadíssima.

 

 

Pograma e comando executados funcionando ou abertos, são processos em execução no sistema que ganham um número para poderem ser controlados. O sistema recebe informações e envia informações.

 

Os processos tem a ver com entrada e saída. Os processos, é programas ou comandos que estão funcionando no sistema operacional GNU/Linux. Quando o sistema carrega programas ou comando ele coloca eles em execução, então o sistema chama eles de processo e assim, o sistema cria um número para poder controlar eles e estes número é chamado de PID.

 

Toda vez que o interpretador de comando inicia executando comando ou programa, eles se tornam um processo em execução que precisa se comunicar com o mundo da gente. Os comandos do terminal processam e precisam responder o que processaram para mim.

 

Eles fazem isto usando o que eu chamo de pipes. Eu inicio um comando no terminal aí, o sistema conecta 3 pipes neste processo para receber dados e enviar dados do mundo interno para o mundo externo (eu) e o que passa pelo cano é o bit.

 

Os pipes recebem e enviam bits. Cada letra é um bit. Bits são informações computacionais. Posso mandar o sistema processar um texto e o meu texto é passado ao sistema por um pipe. Estes pipes, estes tubos, cada um é chamado hoje em dia por um nome que alguém inventou.

 

Tem uma saida padrão [stdout=standart-output], uma saída de erro [stderr=standart-error] entre eles está o processo e, ligado ao processo está ligada a entrada padrão [stdin=standart-input]. Todos os pipes tem um número de identificação.
O primeiro pipe que é conectado pelo sistema, é a entrada padrão, o número desta entrada é zero 0 e é o sistema que atribui zero a entrada padrão.

 

Pela entrada padrão o sistema recebe os dados que eu envio e o nome da entrada padrão é stdin. Quer dizer eu pergunto alguma coisa para o sistema esta pergunta é enviada pela entrada padrão stdin que o sistema identifica pelo número zero.

 

Depois que ele, o sistema ouve ou recebe, ele precisa responder pra eu. Para responder ele joga a resposta em bit pela saída padrão que eu chamo de pipe stdout e tem o número 1 definido pelo sistema.

 

O terceiro pipe serve só para informar erros que aconteceram durante a execução de algum comando ou programa que o sistema não conseguiu processar. No meio de um monte de bits que ele tá enviando, o sistema precisa informar se alguma vez aconteceu um determinado erro de alguma coisa.

 

A mensagem de erro não pode ir pelo pipe 0 nem pode ir pelo pipe 1 então a mensagem é enviada pela saida padrão 2, stderr [standart-error] a saída de erro padrão.

 

Tudo vai pro terminal.

 

O Bash direciona tudo isto para o emulador de terminal. É no terminal que eu vou obter respostas, perguntar, comandar, alterar tudo no sistema operacional. Posso ouvir música pelo terminal, ver filmes, ver fotos, calcular, navegar na internet, jogar games no terminal etc… O terminal faz de tudo. Mas nem tudo é simples de fazer.

 

Então eu posso perguntar e comandar o sistema. O sistema pode ouvir e processar minhas perguntas e comandos. O sistema pode responder algumas das minhas perguntas, nada pessoal (espero). O sistema pode alterar partes dele mesmo. Se eu assim mandar ele faz. Mesmo que seja uma coisa idiota que eu comande e destrua ele. Por isto, é bom eu pensar bem. Pois no final, quem se ferrará será eu. Kkkkkkkk.

 

Os pipes são file descriptors. Coisa cabeluda de complicada. Kkkkkk. Depois vou pesquisar sobre isto.

 

Os processos software em execução que ouvem, falam e informam pelas entradas e saídas, os erros são informados pela saida de erro.
A entrada padrão no Linux é recebida pelo sistema via o teclado. A entrada padrão no Linux é o teclado. A entrada padrão no Linux é o teclado. Pra não esquecer. Kkkkkkk.

 

A saida padrão vai imprimir na tela do terminal. A saida padrão vai imprimir na tela do terminal. A saida padrão vai imprimir na tela do terminal. Acho que não vou esquecer isto.

 

A saida de erro vai imprimir na tela do terminal também. A saida de erro vai imprimir na tela do terminal também. A saida de erro vai imprimir na tela do terminal também. Pra não esquecer.

 

A saída padrão e a saida de erro ficam misturadas na tela do terminal. A saída padrão e a saida de erro ficam misturadas na tela do terminal. A saída padrão e a saida de erro ficam misturadas na tela do terminal. Pra não esquecer. Kkkkkkk.

 

O Bash serve como encanador. Consegue conectar saídas padrões de comandos, com entradas padrões de comandos.

 

 

QUERO SABER COMO USAR O COMANDO APT, ENTÃO USO NO TERMINAL:

man apt, –help apt, info apt

 

Procuro o terminal no menu e abro ele. Vou fazendo anotações e executando o que anotei no terminal. Estou executando no terminal o que estou lendo agora.

 

 

DE ONDE VEM O TERMINAL?

No inicio dos computadores, só se podia fazer as coisas pelo terminal e ele era um monitor com tela preta, os programas eram feitos para funcionar no monitor terminal e você executava comandos e navegava pela rede e fazia alterações no sistema através deste monitor terminal. Hoje em dia não é mais assim.

 

Atualmente ainda precisamos de terminais mas os monitores podem fazer muitas coisas a mais e por isto, é possível atualmente usarmos o emulador de terminal.

 

O interpretador de comandos roda dentro do terminal e o Bash é o interpretador de comando do terminal no Linux.

 

O prompt significa que tá pronto. O prompt pode ser $ [usuário] ou # [super-usuário].

 

O legal do terminal, é que para conversar com o terminal do Linux, o sistema, programas do sistema, o Hardware tenho que pensar digitar e recebo resposta dependendo de usar corretamente a linguagem.

 

A linguagem é o Bash. Existem comandos internos e existem comandos que não são internos. Quem ajuda nesta hora é o sistema operacional.

 

O comando pwd é um comando interno por exemplo. Você digita pwd e recebe a resposta rapidinho. Tem comandos INTERNOS e comandos do SISTEMA OPERACIONAL.

 

O modo não interativo é dialogo programado e chama-se SHELL SCRIPTS.

 

O interpretador de comandos controla a execução dos comandos executados.
Pode-se pausar um processo que esteja acontecendo no terminal por exemplo.
Posso mexer nos processos que estão acontecendo no computador.

 

 

Pode-se executar dois processos ao mesmo tempo.

 

 

É necessário adquirir costume de usar o terminal para poder fazer diversas coisas simultaneamente, executar mais de um comando ao mesmo tempo e fazer eles se comunicarem.

 

 

O MAIS FORTE NO LINUX É O EMULADOR DE TERMINAL COM O INTERPRETADOR DE COMANDOS CHAMADO BASH.

 

O que é cat? É de CONCATENAR? O que é concatenar? Preciso de um dicionário urgente! 🙂

 

man cat [aperto enter]

 

 

Eu quero andar com minhas próprias pernas. Quero descobrir coisas sobre comandos. Uso ls –help pra listar todos os arquivos e diretórios e vai mostrar um monte de documentação e posso usar o ls com parametros.

 

 

Posso usar –help para aprender muitos comandos. ls, ls -t, man nome_do_comando, info nome_do_comando. O man é mais tradicional, o info é mais atual.
Tem 3 modos de eu aprender usando o terminal:

 

 

–help
man
info

 

 

Não achei informação sobre uns comandos usando estes 3, tenho que ir buscar no Google. Procurar a info na massa embolada de informação que tem lá com atenção e paciência.

 

Quero saber como ser administrador super usuário do sistema uso [su] ou [sudo su] digito a senha invisivel ao digitar, e obtenho o resultado:
~$ su
cp pc #

 

 

Depois quero saber quem eu sou. Será que sou administrador mesmo? Uso ‘whoami’.
cp# whoami
root

 

 

Para sair do modo super usuário administrador digito exit e tenho o resultado:
cp pc # exit

cp@pc ~$

 

Digito então su ou sudo su…

 

Aperto enter e digito a senha mas não aparece nada no terminal por proteção. Aperto enter. Saio do modo super usuário digitando exit.

 

 

Quero saber o quanto de memória tem no meu computador. Quero saber a quantidade de memória livre e usada no sistema. “free -m” digito “free”, “free -m”, “free -h” e recebo a resposta:

~$ free
total used free shared buff/cache available
Mem: 3955864 1796172 153272 141808 2006420 1743612
Swap: 4194300 0 4194300

~ $ free -m
total used free shared buff/cache available
Mem: 3863 1289 209 201 2364 2099
Swap: 4095 0 4095

~$ free -h
total used free shared buff/cache available
Mem: 3.8G 1.7G 145M 139M 1.9G 1.7G
Swap: 4.0G 0B 4.0G
—————————————————-

 
Quero saber onde estou no terminal, ou seja, em qual pastinha estou no momento. Então eu digito pwd e recebo a resposta:
$ pwd
/home/rfg/Área de Trabalho

 
Quero saber o que tem na pasta onde estou. Eu digito ls e recebo a resposta que não tenho nada na minha Área de Trabalho e posso adicionar mais parametros ao ls:
~$ ls
~$ ls -t
~ $ ls -l
~ $ ls -la
~ $ ls -lah

 
Quero ir para uma pasta que tenha alguma coisa, preciso saber um comando para isto. Pesquiso e acho rapido a resposta.
É o comando cd.

 
cd – Este comando permite me deslocar entre a árvore de diretórios do sistema. Quando abro um terminal ou seção shell, entro direto no meu diretório pessoal. Para mover-me pelo sistema de arquivos eu devo usar o cd. O comando cd é bom para copiar scripts e arquivos.

 
“cd /” para ir ao diretório raiz.
“cd” para ir ao seu diretório pessoal.
“cd ..” para ir uma pasta antes da pasta onde estou.
”cd -” para voltar a pasta onde estava antes de mudar.

 

Para navegar através múltiplos níveis de pastas em um só comando, uso por exemplo, “cd /home/cp/Imagens”, que me levará diretamente ao pasta Imagens. Para voltar a pasta Home digito cd.

 

Então volto com o comando cd para pasta inicial que considero ser Home. Digito e recebo resposta:

 

~$ cd

~ $ ls
Área de Trabalho Downloads Música
Biblioteca do calibre Imagens Público
Documentos Modelos Vídeos

 

~ $ ls -t
Vídeos Modelos Biblioteca do calibre
Downloads Imagens Música
Documentos Área de Trabalho Público

 

 

Quero ir para a pasta Documentos. Digito e acontece o seguinte:
~ $ cd Documentos
cp@pc ~/Documentos $

 
PESQUISO NA INTERNET:

Uma característica interessante do bash é que ele possui a função de auto-completar os nomes de comandos que foram digitados via entrada padrão. Isso é feito PRESSIONANDO-SE A TECLA TAB; o comando é completado e acrescentando um espaço. Isso funciona sem problemas para comandos internos; caso o comando não seja encontrado, o bash emite um beep. Outro recurso muito interessante do bash, é que você pode repetir um comando executado sem ter que digitá-lo novamente. Isso é possível UTILIZANDO O CARACTERE “!” na frente do comando que você deseja repetir. O BASH BUSCA COMANDOS NO HISTÓRICO.

 

 

Agora que estou na pasta documentos, eu quero saber o que tem na pasta documentos, então digito:

 

cp@pc ~/Documentos $ ls
Formatar-Pendrive-no-Linux-2017

 
REPETINDO:
LS COM PARAMETROS, FUNÇÕES AUXILIARES, FILTROS PARA MOSTRAR AS COISAS DE UM MODO DIFERENTE.
Digito cp@pc ~/Documentos $ ls
Digito cp@pc ~/Documentos $ ls -t
Digito cp@pc ~/Documentos $ ls -l
Digito cp@pc ~/Documentos $ ls -la
Digito cp@pc ~/Documentos $ ls -lah
Digito cp@pc ~/Documentos $ clear
~/Documentos $ ls -lah
total 140K
drwxr-xr-x 4 rfg rfg 4,0K Abr 20 06:00 .
drwxr-xr-x 33 rfg rfg 4,0K Abr 20 06:05 ..
-rw-r–r– 1 rfg rfg 1,4K Abr 8 01:27 Formatar-Pendrive-no-Linux-2017

 

 

Tem um arquivo chamado: Formatar-Pendrive-no-Linux-2017, e quero criar um arquivo chamado texto.txt, uso o comando touch. Para saber sobre o comando touch abro outro terminal e digito:

 

~$ man touch

 

Crio um arquivo chamado texto.txt ou teste.txt, a extensão txt não é necessária para a criação de um arquivo no Linux mas coloco a extensão .txt para não me confundir.

 

~/Documentos $ touch texto.txt

Confiro o que existe em documentos:
~/Documentos $ ls
Formatar-Pendrive-no-Linux-2017 texto.txt

 
Quero criar uma pasta chamada texto. Uso mkdir. Para saber alguma coisa pelo terminal sobre o que é mkdir digito man mkdir, –help mkdir, info mkdir e depois eu Digito:
~/Documentos $ mkdir texto

 
Para apagar arquivos e pastas uso um comando que tem que ter CUIDADO.
rm -rf apaga pastas (CUIDADO!)

 

rm -r apaga arquivos
Confiro:

 
~/Documentos $ ls
Formatar-Pendrive-no-Linux-2017 texto
texto.txt
$ ls -lah
total 12K
drwxr-xr-x 3 rfg rfg 4,0K abr 20 13:09 .
drwxr-xr-x 32 rfg rfg 4,0K abr 20 12:00 ..
drwxrwxr-x 2 rfg rfg 4,0K abr 20 13:09 teste
-rw-rw-r– 1 rfg rfg 0 abr 20 13:06 texto.txt
Acima vejo que toda pasta começa com d e o arquivo -rw

Tem dois arquivos de texto e uma pasta chamada texto.

 

Quero mover o arquivo texto.txt para dentro da pasta texto, vou usar o comando mv, procuro informação sobre comando mv usando man mv, –help mv e info mv. Então eu digito:
~/Documentos $ mv texto.txt texto
Abro o meu gerenciador visual de arquivos para ver se o icone texto está na pasta texto.

 

Ok. Confere. Comando bem sucedido.

 
Confiro o que tem em documentos:
~/Documentos $ ls
Formatar-Pendrive-no-Linux-2017 texto

 

 

Digito ls -l e obtenho a seguinte resposta do terminal:

~/Documentos $ ls -l
total 8
-rw-r–r– 1 rfg rfg 1333 Abr 8 01:27 Formatar-Pendrive-no-Linux-2017
drwxr-xr-x 2 rfg rfg 4096 Abr 20 07:08 texto

 

 

Limpo as informações da tela do terminal com clear:
~$ clear

 
Agora vou para a pasta texto:
~/Documentos $ cd texto

 
Estou na pasta texto e confiro isto com o comando ls:
~/Documentos/texto $ ls
texto.txt

 
Se eu quiser remover o arquivo texto.txt usaria o comando rm:
~/Documentos/texto $ rm texto.txt

 
Para criar de novo outro arquivo chamado texto.txt digitaria:
~/Documentos/texto $ touch texto.txt

 
Agora eu quero escrever alguma coisa no arquivo texto.txt e vou usar primeiro o comando cat que é um dos comandos para mostrar todo o conteúdo do arquivo no Shell. Me informo alguma coisa sobre o cat com o comando ‘man cat’, ‘info cat’ e ‘–help cat’ mas não entendo muito bem. Executo:

~/Documentos/texto $ cat texto.txt

 
Não tem nada no arquivo texto.txt então não aparece nada. Eu sei que posso usar um comando de um programa chamado nano que roda no terminal para escrever neste arquivo pelo terminal, pesquiso sobre o nano digitando no terminal ‘nano –help’, ‘man nano’, ‘info nano’ e então eu digito:

~/Documentos/texto $ nano texto.txt

 

 

O nano inicia-se no terminal e eu escrevo no arquivo o seguinte:
Esta é a primeira frase do arquivo texto.txt

 
Gravo com o comando de teclado ctrl + O , confirmo que é para o nano salvar o arquivo com o nome texto.txt apertando a tecla ENTER e saio com o comando de teclado ctrl+X e agora digito no terminal:

~/Documentos/texto $ cat texto.txt
Esta é a primeira frase do arquivo texto.txt

 
Poderia visualizar este arquivo com o gedit, mousepad, leafpad, vim entre outros.
Quer dizer que escrevi uma linha no arquivo texto.txt e posso abrir o icone dele em um programa de texto e lá estará escrito a frase. Posso abrir o arquivo num programa de edição de texto e transformar estas letras, mudar de tamanho colorir elas etc…
Posso escrever neste arquivo texto.txt usando o comando echo. Pesquiso man echo, info echo, –help echo.

 

Estou na pasta texto que está na pasta documentos.

 

~/Documentos/texto $echo ‘segunda linha do arquivo texto.txt’ >> texto.txt
~/Documentos $ echo “exemplo de texto terceira linha” >> texto.txt
Noto que eu usei >> para escrever a primeira linha usaria apenas > O texto a ser escrito no arquivo deve ser abraçado por duas ” o simbolo > direciona a frase para o arquivo chamado teste sendo a primeira linha. As linhas seguintes usarão >> e as aspas.
~/Documentos/texto $echo ‘esta é a primeira linha escrita usando echo’ > texto.txt
Se fizer isto acima, eu apago as duas linhas que escrevi anteriormente.
Para ler o arquivo posso usar o comando head, head -n1, head -n2.

 

Exemplo:
~/Documentos $ head teste.txt
exemplo de texto 1
exemplo de texto 2

 
Para ver o final do texto, posso usar tail, tail -n1, tail -n2. O comando head vê o inicio do texto e o comando tail vê o final do texto. Posso adicionar parâmetros a estes comandos.
Exemplo:

 

~/Documentos $ tail teste.txt
exemplo de texto 1
exemplo de texto 2

 
Vou para a pasta Home pois digito cd então navegando pelo terminal chego até lá no texto.txt para ver o que está escrito. Faço bem detalhadamente:

 
~/Documentos/texto $ cd
~ $
~ $ ls
Área de Trabalho Downloads Música
Biblioteca do calibre Imagens Público
Documentos Modelos Vídeos
~ $ cd Documentos
~/Documentos $
~/Documentos $ ls
Formatar-Pendrive-no-Linux-2017 texto texto.txt
~/Documentos $ cd texto
~/Documentos/texto $

~/Documentos/texto $ cat texto.txt
Esta é a primeira frase do arquivo texto.txt
segunda linha do arquivo texto.txt. 🙂

 

 
Quero saber como copiar arquivos e pastas usando o terminal:

cp – Copia arquivos e diretórios. “cp file foo” é para fazer uma cópia exata do arquivo “file” dando-lhe o nome de “foo”.

 
“sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf-bkp” para gerar uma cópia de segurança exata do arquivo “/etc/X11/xorg.conf” dando-lhe o nome de “/etc/X11/xorg.conf-bkp”.

 

 

Meu terminal está cheio de letras e informações de comandos quero limpar ele digito o comando clear ou teclo ctrl+l.
~$ clear

 
Pesquiso e acabo sabendo que se o destino fornecido for o nome de um diretório existente, os arquivos serão copiados para esse diretório, com o mesmo nome. Caso indiquemos um nome de arquivo no caminho de destino, o arquivo de origem será copiado e essa cópia renomeada também. A sintaxe é:

 
cp [opções] arquivos_origem local_destino

Opções mais comuns:
-i, –interactive
Pergunta se desejamos sobrescrever um arquivo de destino já existente.

 

-l, –link
Cria hard links para os arquivos em vez de copiá-los.
-n, –no-clobber
Não sobrescrever um arquivo já existente
-p
Preserva as permissões originais do arquivo, incluindo proprietário, grupo, stuid, setgid, tempos da última modificação e acesso.
-r, -R, –recursive
Copia diretórios de forma recursiva.
-s, –symbolic-link
Cria links simbólicos (symlinks) para os arquivos em vez de copiá-los
-u, –update
Copia apenas quando os arquivos de origem forem mais novos que os de destino, ou quando os arquivos de destino estiverem faltando.

 
-v, –verbose
Modo verboso; explica o que está sendo feito no momento.

 
–help
Mostra a ajuda básica do comando e sai.

 
–version
Mostra informações sobre a versão do comando e sai.

 

 

Quero saber sobre os comandos more e pipe. Dizem que são bastante utilizados. Em uma pasta que tem bastante arquivo. A pasta etc. A pasta etc quase sempre guarda os arquivos de configuração programas instalados no sistema operacional em alguns sistemas é na pasta opt.
~$ cd /etc

~$ ls
~$ ls -lah

 

 

Concatenação de comandos:
~ ls -lah | more [ o more fará uma pausa a cada tela exibita o pipe | liga o ls -lah com o comando more ]

 
Quero saber a data do dia. Digito no terminal e recebo a resposta:
~ $ date
Qui Abr 20 03:56:35 BRT 2017

 
Quero saber o calendário digito e recebo a resposta:
~ $ cal
Abril 2017
Do Se Te Qu Qu Se Sá
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

 
Quero saber quando cairá certo dia em outro ano anterior ou posterior usando pipe “|” e “less”:
~$ cal 2018 | less
Aperto a tecla Q para sair do calendário. O pipe “|” serve para unir um comando a outro. No GNU/Linux posso unir programas que virão todos juntos.

 

 

Se eu quiser sabe o mês 4 de 2013, eu faço assim:
~$ cal 4 2013

 
Quero saber a temperatura da máquina. Instalo lm-sensors. Digito e recebo a resposta:

~$ sudo apt update ; sudo apt upgrade ; sudo apt install lm-sensors

~ $ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +48.0°C (crit = +104.0°C)
temp2: +48.0°C (crit = +104.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +48.0°C (high = +105.0°C, crit = +105.0°C)
Core 0: +48.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +48.0°C (high = +105.0°C, crit = +105.0°C)

 

 

Quero saber a arquitetura do computador. digito arch que é igual ao comando uname -m, e recebo a resposta:

~ $ arch
x86_64
~ $ uname -m
x86_64

 

 

Quero saber o hardware instalado no computador, especificando os endereços digito e recebo a resposta:

$ lsdev
O programa ‘lsdev’ não está instalado no momento. Você pode instalá-lo digitando:
sudo apt install procinfo

 
Então digito:
~$ sudo apt install procinfo ; sudo apt update ; sudo apt upgrade ; lsdev
~ $ lsdev
Device DMA IRQ I/O Ports
————————————————
0000:00:02.0 4000-403f
0000:00:1f.2 44 4060-407f 4080-4083 4090-4097 40a0-40a3 40b0-40b7
0000:00:1f.3 4040-405f
0000:02:00.0 3000-30ff
ACPI 1800-1803 1804-18

 

 

lspci – Exibe informações sobre os barramentos PCI do computador e sobre os dispositivos a ele conectados.

~ $ lspci
00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U Integrated Graphics (rev 08)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 08)

 

 

lsusb – Lista informações sobre os barramentos USB do computador e sobre os dispositivos a eles conectados.
~ $ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

 

 
uname – Este comando exibe várias informações sobre o sistema, incluindo o nome da maquina, nome e versão do Kernel e alguns outros detalhes. É muito útil para verificar qual é o Kernel usado por você.
~ $ uname
Linux

”uname -a” para exibir todas as informações.
~ $ uname -a
Linux rf7E 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

 

Quero saber em tempo real informações sobre o meu sistema linux, digito:
$ top

 

 
comandos interativos mais importantes do ”top”.

”k” – Finaliza, ou seja, “mata” um processo.

”m” – Ativa/Desativa a exibição de informações da memória.

”M” – Ordena os processos pelo uso da memória residente.

”N” – Ordena os processos pelos seus PIDs.

”P” – Ordena os processos pelo uso da CPU (este é o padrão).

”ESPAÇO” – Atualiza imediatamente a visualização do quadro de processos.

”h” – Exibe a ajuda dos comandos interativos do ”top”.

”q” – Abandona o comando ”top”.

 

 

Quero saber um quadro atual, porém estático dos processos que estão sendo executados no sistema. Digito e recebo a resposta:

~ $ ps
PID TTY TIME CMD
9409 pts/0 00:00:00 bash
12148 pts/0 00:00:00 ps

 

 

Quero saber como matar processos sendo executados pelo meu PID enviando um sinal:
”kill -9 1345” para finalizar o processo de PID número 1345. Para saber qual PID de determinado processo que esta sendo executado pode ser utilizado o comando ps

~ $ ps
PID TTY TIME CMD
9409 pts/0 00:00:00 bash
13178 pts/0 00:00:00 ps
~$ kill -9 13178

 

Fechei o terminal que estava usando.

~$exit

 

 

Quero finalizar processos pelo nome ao invés do PID como faz o comando kill. Uso killall.

 

Se eu tiver aberto o Firefox e quero fecha ele pelo terminal, se eu digitar no terminal ”killall mozilla-firefox” finalizo processo mozilla-firefox, fechando com isso o navegador web Mozilla Firefox. O nome dos processos ativos pode ser observado com uso do comando ps