Linux aprender comando find para usar em shell scripts

Linux o que é o comando find?

Um dos mais importantes e usados comandos da linha de comando em sistemas operacionais Linux é o find.

Para que serve o comando find?

O find (localização) pode ser usado em várias condições. Posso encontrar arquivos por permissões, usuários, grupos, tipo de arquivo, data, tamanho e outros critérios.

Aprender o comando find?

Para aprender, o modo mais seguro é criar uma pasta na pasta pessoal chamada TESTE. Ela servirá para realizar os estudos. Criar na pasta TESTE arquivos:

texto.txt
Texto.doc
texto
texto4.docx
texto.html
postado.html
musica.mp3
mucic
video.mkv
Video.mp4
video.avi
Video
script.sh
script2.sh
script
img.jpg
imge.png
imagem.jpeg
img
arq.pdf
arquivo.epub
arq
bkp.zip
back.tar
bkp.old.tgz
bkp
teste.txt
test.txt
test
script.c
script2.c
script

Atenção!

1) Não execute nenhum comando como root.

2) Não use sudo em nenhum comando.

3) Tenha backup de todos os seus arquivos. Quem tem 1 backup não tem nenhum.

Para serem localizados pelo comando find usando vários critérios.

Iniciar os estudos.

Encontrar arquivos na pasta onde está é com ponto -name. Exemplo:

find . -name texto.txt

Encontrar arquivos na pasta pessoal:

find ~/ -name Texto.txt

Localizar arquivos usando nome e ignorando maiúsculas e minúsculas:

find . -iname texto.txt

find ~/TESTE/ -iname video.mkv

Encontrar diretórios usando -name:

find ~/ -type d -name TESTE

Encontrar arquivos usando ponto -type f -name:

find . -type f -name bkp*

Encontrar todos os arquivos txt no diretório/pasta/folder TESTE:

find . -type f -name “*.txt”

Encontrar arquivos com permissão 777:

find . -type f -perm 0777 -print

Encontrar arquivos sem permissão 777:

find / -type f ! -perm 777

Localizar todos os arquivos de bit SGID cujas permissões estão definidas para 644:

find / -perm 2644

Encontrar todos os arquivos de conjunto de bits fixos cuja permissão seja 551:

find / -perm 1551

Encontrar todos os arquivos de conjunto SGID:

find / -perm /g=s

Encontrar todos os arquivos executáveis:

find / -perm /a=x

Localizar todos os arquivos de permissão 777 e usar o comando chmod para definir as permissões para 644.

find / -type f -perm 0777 -print -exec chmod 644 {} \;

Encontrar todos os diretórios de permissão 777 e usar o comando chmod para definir as permissões para 755.

find / -type d -perm 777 -print -exec chmod 755 {} \;

Para localizar e remover em TESTE vários arquivos, como .mp3 ou .txt, use.

find . -type f -name “*.txt” -exec rm -f {} \;

OR

find . -type f -name “*.mp3” -exec rm -f {} \;

Encontrar todos os diretórios vazios:

find /tmp -type d -empty

Encontrar todos os arquivos que pertencem ao usuário eu.

find ~/ -user eu

Para encontrar todos os arquivos que pertencem ao grupo Developer no diretório /home.

find /home -group developer

Encontrar todos os .txt do usuário eu na pasta home:

find /home -user eu -iname “*.txt”

Encontrar todos os arquivos modificados 60 dias atras.

find / -mtime 60

Encontrar os modificados 25 dias atrás.

find / -atime 25

Para encontrar todos os arquivos que foram alterados/movido na última 1 hora.

find / -cmin -60

Arquivos trabalhados na última 1 hora.

find / -amin -60

Encontrar arquivos de 50MB

find / -size 50M

Arquivos entre 50 e 100MB

find / -size +50M -size -100M

Encontrar e deletar arquivos de 100MB (cuidado!).

find / -type f -size +100M -exec rm -f {} \;

Encontrar e deletar mp3 com mais de 10MB! mp3 bom pra eu tem de 3 a 5MB. O resto é perda de espaço no HD. Ora, foi pra isto que o mp3 foi criado poxa! Pequeno.

find / -type f -name *.mp3 -size +10M -exec rm {} \;

Automatizar tarefas programando com scripts de shell Linux

Dizem que só se aprende shell script escrevendo shell script. Dizem que só se começa a aprender a usar Linux de verdade, quando para de ficar pulando de uma Distro Linux para outra. Dizem que é mais fácil aprender shell script em uma distro amigável para iniciantes. Creio que isto é correto mas, primeiro antes de tudo, todo mundo devia tentar instalar na unha a Distro Arch Linux, mesmo sendo mal sucedido(a) na instalação do Arch Linux, esta prática afia a mente do usuário Linux. Digo estas coisas por experiência própria.

Os scripts de shell foram projetados para serem executados na linha de comandos em sistemas baseados em UNIX. Eles incluem comandos e instruções para executar tarefas específicas. Os scripts de shell são uma maneira eficaz de criar programas pequenos, mas eficientes, para executar e automatizar tarefas do SO.

A programação no UNIX sempre foi um verdadeiro prazer, pois é realmente amigável ao programador em comparação com outros sistemas operacionais. O tratamento se torna melhor com alguns programas compostos por comandos e instruções, que são usados para automatizar muitas das tarefas neste sistema operacional. Mas há certas condições que precisam ser atendidas para obter algo ótimo.

Nesse caso, há muito software e muitos aplicativos que precisam ser ajustados e otimizados para serem executados no UNIX. Isso, no entanto, torna-se extremamente fácil com scripts de shell. Vamos dar uma breve olhada neste formato de codificação.

Basicamente, um shell script é um programa que inclui diferentes comandos e instruções. Esses comandos e as instruções executam tarefas, uma por uma, quando executadas individualmente.

Existem certas coisas que fazemos, para as quais precisamos escrever comandos com muita frequência. Isso é realmente demorado; portanto, escrevemos um programa para executar coletivamente esses comandos e automatizar tarefas.

Outra coisa importante sobre esses programas é que, diferentemente de outros, eles não são compilados, mas interpretados. Isso significa que, ao executar o programa, um shell filho é criado. Todas as operações são executadas nesse shell e esse shell filho termina automaticamente após a conclusão de todas as tarefas no programa.

Para personalizar um script de shell, primeiro precisamos criá-lo da seguinte forma: Para armazenar um programa de texto, precisamos criar um arquivo de texto, Escolha um shell para escrever o script, adicione os comandos necessários ao arquivo, Salve o arquivo, Altere suas permissões para tornar o arquivo executável, execute o programa shell.

Para padronização e portabilidade, usamos o shell Bourne (sh). Para uma personalização adicional, existem diferentes tipos de comandos que abordam quase todos os aspectos do script personalizado. Esses são comandos do sistema de arquivos executáveis do programa, aliases do Linux, funções shell do Linux, palavras reservadas do shell do Linux e comandos internos.

Aqui estão alguns pontos a serem considerados ao escrever um script de shell:

Escreva comentários no código sempre que necessário. Isso ajuda outras pessoas também a entender o mecanismo de trabalho do código com muito mais facilidade. Sair do script assim que houver algum erro nele, pois mesmo o menor erro pode causar danos ao seu sistema. USE AS FUNÇÕES QUE VOCÊ PODE ESCREVER SOZINHO NO SCRIPT, pois é muito mais fácil chamá-lo e depurá-lo. É RECOMENDÁVEL USAR O SINAL $, NO LUGAR DE ASPAS SIMPLES (”), pois nos ajuda a diferenciar entre o processo de substituição e a declaração de comandos.

Dicas e truques da linha de comando?

1) Comando Histórico: Isso nos ajuda a verificar o histórico antigo de quase todos os comandos disparados pelo usuário desde o início.
2) Múltiplos comandos em uma única linha: podemos escrever vários comandos em uma única linha inserindo o operador terminador ‘;’ ou o operador AND ‘&&’ após cada comando e, portanto, executar várias linhas por vez.
3) Ler log: usando o comando ‘tail’, podemos ler os logs de qualquer arquivo em tempo real.
4) Ler arquivos Zip: o comando ‘z’ nos ajuda a ler também arquivos Zip de todos os formatos, mesmo sem extrair os dados reais.
Comandos Alias e Grep: estes são comandos básicos do Linux/UNIX que podem ajudar a ler e editar arquivos e sintaxes facilmente.

As vantagens? Uma característica especial é que o usuário pode executar facilmente vários comandos juntos em um único comando de linha. Os comandos são fáceis de escrever e executar e são usados bem em muitos sistemas automatizados. Operações executadas anteriormente também podem ser rebobinadas e as funções e comandos podem ser executados automaticamente. Suporta quase todos os sistemas que possuem uma arquitetura baseada em UNIX e, portanto, são portáteis de um sistema para outro.

Por exemplo, converter de ogg para mp3. Como fazer isto em um shell script para conveter todos os arquivos .ogg de uma pasta?

Nestes casos de conversão a opção mais fácil e usada, pode procurar por aí, é loop for.

Escrever vários pequenos scripts bobos usando o loop for é um ótimo exercício para aprender a automatizar algumas tarefas no Linux. Com o loop for podemos até criar nossos próprios comandos.

Tento este bash schell script abaixo para exercitar o uso do loop for:

#!/usr/bin/env bash

##################

# titulo: conv_ogg_para_mp3.sh
# uso: ./conv_ogg_para_mp3.sh

##################

clear

# ————– #

echo -e ‘\nRemover metadata dos arquivos .ogg primeiro\n’
sleep 2

# ————– #

echo -e “Removendo metadata…”
sleep 2

# ————– #

# loop for remove metadata
# tenha exiftool instalado

for i in *.ogg; do
exiftool -all= -overwrite_original -ext “$i” .
done

sleep 2
# ————– #

echo -e “\nConvertendo de ogg para mp3…\n”
sleep 3

# ————– #

# loop for converte ogg para mp3
# tenha ffmpeg instalado

for i in *.ogg ; do
ffmpeg -i “$i” -acodec libmp3lame “$(basename “${i/.ogg}”).mp3″
sleep 30
done

# ————– #

echo -e “\nListando arquivos…\n”
sleep 2

# ————– #

ls -tlA
sleep 2

# ————– #

# loop for para conferir metadata mp3

for i in *.mp3; do
exiftool “$i”
done

sleep 2

# ————– #

# loop for para listar mp3 em um arquivo txt

for i in *.mp3; do
ls -t “$i” > lista_mp3_1.txt
done

# ————– #

# loop for para listar ogg em um arquivo txt

for i in *.ogg; do
ls -t “$i” >> lista_ogg_2.txt
done

# ————– #

# loop for remove todos *.ogg do diretorio

echo “————————”
sleep 1
echo “————————”
sleep 1
echo “————————”
sleep 2
echo -e “\n#— revomendo ogg para cancelar tecle [Ctrl+C] —#\n”
sleep 3
echo -e “\n— revomendo em 3 —\n”
sleep 2
echo -e “\n— revomendo em 2 —\n”
sleep 2
echo -e “\n— revomendo em 1 —\n”
sleep 2

for i in *.ogg; do
rm -f “$i”
done

echo -e ‘\nPronto! Comando executado.\n\nTudo resolvido!\n’
sleep 2

# Loop for lista arquivos mp3 do diretorio

for i in *.mp3; do
ls -lth “$i”
done

# fim do shell script

Conclusão:

E por que não tentar usar/melhorar este script acima para fazer o contrário? Usar para converter de mp3 para ogg? Seria um bom exercício. Existe muito arquivo de áudio gratúito legalmente falando, novos artistas que querem divulgar sua arte por exemplo.

Até Breve!

🙂

Dicas e sugestões são bem-vindas!

Linux browser w3m navegar na web pelo terminal

Navegar na web pelo terminal?

O W3M é um navegador de terminal para Linux. Ele tem alguns truques na manga, incluindo suporte para imagens, guias, tabelas, molduras e outros recursos que normalmente não estão incluídos nos navegadores da web dos terminais onde na web tudo é em modo texto, muito leve e rápido.

Estes navegadores modo texto remontam o início da internet, são antigos mas, recebem manutenção/atulização até hoje. Qualquer usuário linux acha terminal web browser para instalar no sistema. O mais antigo ainda em atividade, dizem ser o terminal web browser Lynx criado em 1992 porém, o w3m também é das antigas 1995.

Se você usa o Linux há algum tempo, provavelmente se lembra de usar um navegador de terminal para pesquisar no uma solução para o seu hardware quando o servidor X se recusou a carregar. Os servidores X modernos avançaram muito além disso, mas o W3M e outros navegadores de terminal ainda podem ser úteis. Instale o w3m pelo software center do seu sistema operacional.

Modo de uso:

w3m [opções] [URL ou arquivo]

w3m duckduckgo.com

Navegação básica – O W3M possui algumas opções de linha de comando, mas nenhuma é obrigatória. A única coisa que você precisa especificar é um endereço de página da web. Deseja abrir algum buscador? Basta usar o comando:

1- w3m duckduckgo.com
2- w3m start.duckduckgo.com
3- w3m google.com

Você pode usar as teclas de seta para mover o cursor ou clicar no local desejado para mover o cursor para lá.

Se você deseja digitar uma caixa de texto, selecione a caixa de texto com o cursor e PRESSIONE ENTER ANTES DE DIGITAR O TEXTO. O W3M trata as teclas pressionadas como comandos se você começar a digitar.

Carregue um hiperlink selecionando-o com o cursor e pressionando Enter.

Você não precisa selecionar os hiperlinks manualmente – pressione a tecla Tab para posicionar o cursor sobre o próximo hiperlink na página.

Shift-B retornará uma página.

Se você deseja carregar um URL diferente, pressione Shift-U e você receberá um prompt de URL.

Pressione Shift-H para visualizar a página de ajuda, se você quiser ver uma lista mais completa de atalhos de teclado.

O W3M suporta imagens, então onde elas estão? Bem, terminais como o gnome terminal e o konsole do kde não podem exibir as imagens do W3M.

Outros terminais, como o Xterm, podem. O W3M também exibirá imagens se você estiver executando em um console de buffer de quadros, portanto, não é necessário um servidor X em execução para aproveitar esse recurso.

Outro recurso que não funciona no gnome terminal ou no konsole é o menu do botão direito do mouse do W3M.

COMO NÓS VIVEMOS SEM ABAS?

Elas são um recurso essencial para navegadores da web. O W3M também inclui abas.

Basta pressionar Shift-T para abrir uma nova aba.

Você pode alternar entre as guias clicando nelas, mas estamos tentando ser ninjas terminais aqui.

Use as teclas {e} para alternar entre as guias sem tocar no mouse (que é Shift- [e Shift-]).

Direto da man page do w3m (w3m –help):

options:
-t tab set tab width
-r ignore backspace effect
-l line # of preserved line (default 10000)
-I charset document charset
-O charset display/output charset
-B load bookmark
-bookmark file specify bookmark file
-T type specify content-type
-m internet message mode
-v visual startup mode
-M monochrome display
-N open URL of command line on each new tab
-F automatically render frames
-cols width specify column width (used with -dump)
-ppc count specify the number of pixels per character (4.0…32.0)
-ppl count specify the number of pixels per line (4.0…64.0)
-dump dump formatted page into stdout
-dump_head dump response of HEAD request into stdout
-dump_source dump page source into stdout
-dump_both dump HEAD and source into stdout
-dump_extra dump HEAD, source, and extra information into stdout
-post file use POST method with file content
-header string insert string as a header
+ goto line
-num show line number
-no-proxy don’t use proxy
-4 IPv4 only (-o dns_order=4)
-6 IPv6 only (-o dns_order=6)
-no-mouse don’t use mouse
-cookie use cookie (-no-cookie: don’t use cookie)
-graph use DEC special graphics for border of table and menu
-no-graph use ASCII character for border of table and menu
-s squeeze multiple blank lines
-W toggle search wrap mode
-X don’t use termcap init/deinit
-title[=TERM] set buffer name to terminal title string
-o opt=value assign value to config option
-show-option print all config options
-config file specify config file
-help print this usage message
-version print w3m version
-reqlog write request logfile
-debug DO NOT USE

Até Breve!

🙂

Linux ufw comandos exemplos


Comandos mais usados ufw:

sudo ufw status

sudo ufw enable

sudo ufw status verbose

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw status verbose

sudo ufw status numbered

Para tornar o ufw permanente:

sudo systemctl enable ufw

sudo systemctl start ufw

OBS:

Reinicie a maquina. Execute:

sudo ufw status

sudo ufw enable


Exemplo:

~:$ sudo systemctl enable ufw

Senha:

Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service → /usr/lib/systemd/system/ufw.service.

alias myfw=”sudo ufw status; sudo ufw enable; sudo ufw status verbose; sudo ufw default deny incoming; sudo ufw default allow outgoing; sudo ufw status verbose; sudo ufw status numbered”

COMO CONFIGURAR E INSTALAR UFW

Os computadores estão conectados, os serviços estão crescendo rapidamente. E-mail, Mídia Social, Loja Online, Bate-papo até Conferência na Web são serviços usados pelo usuário. Mas, por outro lado, essa conectividade apenas mostra uma faca de dois gumes. É possível enviar mensagens ruins para computadores como vírus, malware, aplicativos de trojan, entre muitas outras coisas tóxicas. Prejudiciais financeiramente e psicologicamente.

Esteja avisado(a). A Internet, como a maior rede de computadores, nem sempre está cheia de pessoas boas. Para garantir que nossos computadores / servidores estejam seguros, precisamos protegê-lo.

Um dos componentes que deve ter no seu computador/servidores é o Firewall.

Na Wikipedia, uma definição é:

Na computação, um firewall é um sistema de segurança de rede baseado em software ou hardware que controla o tráfego de entrada e saída da rede analisando os pacotes de dados e determinando se eles devem ou não ser permitidos, com base na regra aplicada conjunto.

Iptables é um dos firewalls mais usados pelos servidores. É um programa usado para gerenciar o tráfego de entrada e saída no servidor com base em um conjunto de regras. Geralmente, somente a conexão confiável tem permissão para entrar no servidor. Mas o IPTables é executado no modo de console e é complicado. Aqueles que estão familiarizados com as regras e comandos do iptables, podem ler o seguinte artigo que descreve como usar o firewall do iptables.

O QUE É O UFW?

O ufw (Uncomplicated Firewall) é uma interface para o firewall de tabelas de ip mais amplamente utilizado e é bem confortável para firewalls baseados em host. O ufw fornece uma estrutura para gerenciar o netfilter, além de fornecer uma interface de linha de comando para controlar o firewall. Ele fornece uma interface amigável e fácil de usar para iniciantes no Linux que não estão muito familiarizados com os conceitos de firewall. Por outro lado, os mesmos comandos complicados ajudam os administradores a definir regras complicadas usando a interface da linha de comandos. Instale o ufw pelo software center do seu Linux.

COMANDOS:

sudo ufw status

Habilitar / Desabilitar ufw

Para habilitar abra o terminal instale o ufw e digite:

$ sudo ufw enable

O firewall está ativo e ativado na inicialização do sistema. Para desativá-lo, basta digitar:

$ sudo ufw disable

DEFINIR AS POLÍTICAS PADRÃO

Isso é bastante auto-explicativo:

sudo ufw deny incoming

sudo ufw allow outgoing

sudo ufw default deny incoming

sudo ufw default allow outgoing

DESABILITAR E REINICIAR UFW:

sudo ufw disable

sudo ufw reset

OBS: Após o reset é preciso ativar o ufw e definir as politicas.

sudo ufw enable

sudo ufw status

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw status verbose


Correções, sugestões são muito bem-vindas.

Até Breve!

🙂

Linux grep básico exemplos

semanickz

Linux uso básico do grep


O grep serve para procurar conteúdo em uma string de texto. Para aprender isto é criar um arquivo com strings de texto. Vamos fazer isto agora criando o arquivo texto-do-grep.txt com os comandos abaixo:


1. cd

2. cd ~/Documentos/

3. pwd

4. ls -ltC

5. mkdir EstudoLinux/ ; ls -ltC

6. cd EstudoLinux/

7. pwd

8. date

9. whoami

10. whatis grep


11. echo -e '\nLinux uso básico do grep \nLinux\nLinux e o mundo GNU. \nO GNU é parte do Linux\nAna \nANA \nAnA \nAno \nANO \nAnO \nAni \nbeeg \nboog \n# Comentário \nLuag \nluag \nSemanickz \nsemanickz \nSemanickzaine \nsemanickzaine \nbola \nSEMANICKZAINE \nSEMANICKZ \nbolo \nbole \nzazs \nzezs \nzizs \nzozs \nacunda \naconda \n# start Linux.\nleia \nleio \nleitor \nblog \nbleg \nblig \nboot \nBoot \n# comment\nTexto \ntexto \nTeeexto \nFim \nfom \nfunal do texto.\n# fim #\n' > texto-do-grep.txt


12. ls -AC

13. cat texto-do-grep.txt

14. clear


Agora já podemos começar!

Neste estudo, sempre antes de procurar uma string abro e ajeito na tela tres terminais. Todos eles abertos onde está o arquivo texto-do-grep.txt em um deles, uso o comando:

cat texto-do-grep.txt
---

Vejo o conteúdo e crio uma busca de string com o grep no outro terminal.

---

No segundo terminal, digito o comando:

man grep | less

E quando tiver alguma dúvida, uso as setas para cima e para baixo e dou uma olhada no manual de uso do grep. No final do extudo, para siar do comando executado, uso duas teclas. Aperto as teclas Ctrl+c e para fechar o terminal digito o comando exit.

---

No terceiro terminal, executo os comandos de busca usando o grep.

---

Linux Bash comando grep alguns poucos Exemplos para executar no terminal e ler com bastante atenção as saídas destes comandos para entender o que o comando fez, filtrou, incluiu, omitiu, etc:

---

grep semanickz texto-do-grep.txt
grep semanick* texto-do-grep*
grep start texto-do-grep.txt
grep "funal do texto" texto-do-grep.txt
grep -i semanickzaine texto-do-grep.txt
grep -i ana texto-do-grep.txt
grep -c semanickzaine texto-do-grep.txt
grep -ic semanickzaine texto-do-grep.txt
grep -v Ana texto-do-grep.txt
grep -iv Ana texto-do-grep.txt
grep -v Semanickzaine texto-do-grep.txt
grep -iv semanickzaine texto-do-grep.txt
grep Ana *
grep semanickzaine *

---

Procurando recursivamente por Ana em todos os diretórios existentes neste diretório em questão:

grep -r Ana *
grep -lr Ana *

---

Em que arquivo deste diretório está Ana?

grep -l Ana *

---

Usando a ferramenta grep junto com comando cat graças ao pipe. Execute os comandos abaixo:

clear
cat texto-do-grep.txt | grep acunda
clear
cat texto-do-grep.txt | grep -iv Ana

---

OBS:
Para usar comandos Linux o melhor é sempre obter o que precisa digitando o menos possível, mas em certos casos pode ser necessário digitar mais um pouco. Por isto, o Linux oferece ao usuário a criação de aliases. Aqui tem posts sobre como criar aliases. Aqui tem até listas de aliases que podem ser usados ou não por você. É só buscar aqui no blog.

---

Continuando...

---

O sinal -A significa after (depois). -A4 mostra 4 linhas depois da palavra indicada no comando. O sinal -B faz o oposto. Exemplo:

clear

grep -A4 beeg texto-do-grep.txt

grep -B4 beeg texto-do-grep.txt

---

Resultado:

EstudoLinux$ grep -A4
beeg texto-do-grep.txt
beeg
boog
# Comentário
Luag
luag

---

O comando acima é usado para analisar logs. Agora você pode saber o que vem antes e depois de uma string usando o grep.

---

OBS:
O fgrep não usa expressões regulares. O grep e o egrep usam. O melhor para expressões regulares neste momento, até ontem, é o egrep.

---

Tem muito mais a saber, mas isto aqui já dá para fazer bastante coisa e além disto, é um bom começo.


Até Breve!

🙂


Linux whatch exemplos

Linux comando whatch com exemplos


---
Comando watch do Linux - o utilitário watch permite executar um comando repetidamente. A seguir está a sintaxe deste comando:
---
watch [options] command
---
watch executa o comando repetidamente, exibindo sua saída e erros (a primeira tela cheia).
---
Isso permite que você observe a saída do programa mudar ao longo do tempo.
---
Por padrão, o programa é executado a cada 2 segundos. Por padrão, o relógio será executado até ser interrompido. Para interromper aperto duas teclas, as teclas Ctrl+c. A seguir estão alguns exemplos estilizados que devem dar uma boa idéia de como o comando watch funciona.
---
Como funciona o comando watch? O uso básico do watch é muito fácil - tudo o que você precisa fazer é executar a ferramenta com um nome de comando como entrada. Por exemplo:
watch date
---
Como funciona o comando watch? A primeira linha da saída informa que a saída do comando 'date' está sendo atualizada a cada 2 segundos (esse é o intervalo de tempo padrão), seguida pela data / hora atual do sistema. A segunda linha é a saída real do comando 'date' que é atualizada após alguns segundos.
---
Como fazer o relógio destacar a diferença entre as atualizações? Como já explicado na seção anterior, a saída do comando que está sendo rastreado é atualizada regularmente (após 2 segundos, por padrão). Caso você queira, você também pode fazer 'assistir' destacar a parte da saída que está mudando entre as atualizações. Isso você pode fazer usando a opção de linha de comando -d. Por exemplo:
watch -d date
---
Como já explicado, a saída do comando que está sendo rastreado é atualizada regularmente (após 2 segundos, por padrão). Caso você queira, você também pode fazer 'assistir' destacar a parte da saída que está mudando entre as atualizações. Isso você pode fazer usando a opção de linha de comando -d. Por exemplo:
watch -n 5 date
---
Este comando garantirá que a saída seja atualizada a cada 5 segundos. Por favor, note que intervalos inferiores a 0,1 segundos não são permitidos. Nota: Para garantir que o intervalo entre intervalos seja respeitado com muita precisão, use a opção de linha de comando -p.
---
Faça o watch tentar executar o comando a cada intervalo de segundos. Experimente com ntptime e observe como os segundos fracionários ficam quase) o mesmo, ao contrário do modo normal, onde eles aumentam continuamente.
---
Como desligar o cabeçalho na saída? Se desejar, você também pode pedir 'watch' para desativar o cabeçalho, mostrando o intervalo, o comando e a hora atual na parte superior da tela, bem como a seguinte linha em branco. Isso pode ser feito usando a opção de linha de comando -t. Por exemplo:
watch -t date
---
Como fazer o relógio sair quando a saída muda? Se você quiser que o comando 'watch' seja encerrado após a detecção de uma alteração na saída, use a opção de linha de comando -g. Por exemplo:
watch -g free
---
Assim, sempre que o consumo de memória no sistema for alterado, o comando watch será encerrado.
---
Para saber mais visite:
fonte
---
Até breve! 🙂
---

Linux configure o MAME


Linux configure o MAME


Olha, não é só instalar e jogar. É fácil instalar o MAME. Hoje em dia uma criança de 5 anos instala o MAME no Linux. Hoje em dia uma criança de 5 anos pode invadir seu computador também. Eu disse a uns esquisitos tira-onda-de-esperto anos atrás que um dia isto ia acontecer, eles iam se ferrar e eu ia ficar quieto no meu canto rindo da arrogância deles enquanto a casa caia.

Mas voltando ao assunto, o MAME é apenas um emulador. Não é um jogo por si só. O que ele faz é fingir ser o hardware que os jogos arcade originalmente usavam. O MAME precisa da informação original do jogo, conhecida como imagem ROM.

Para recuperar a imagem da ROM, você precisa copiar as informações do jogo original e colocar essas informações em um computador. Aí então você pode começar a descobrir como o jogo é codificado e programar o MAME, que é apenas um outro programa de emulação, para trabalhar com o código do jogo na imagem da ROM.

Saiba que em um sentido puro, uma imagem da ROM para um jogo deveria funcionar com todos os emuladores codificados para suportar esse jogo. Porém não é verdade.

Isso não é verdade no mundo real.

O nome do arquivo da imagem da ROM pode ser diferente entre os emuladores, mesmo que a informação seja a mesma. Alguns emuladores também aceitam alguns atalhos para improvisar as coisas também. Isso significa que a ROM pode ou não precisar de informações adicionais para funcionar corretamente em um determinado emulador.

MAME: Multiple Arcade Machine Emulator.

Como configurar o MAME? É isso que a maioria das pessoas quer.

Muito site posta como instalar e poucos ensinam como configurar o MAME aqui no Brasil porque?

Acho que é talvez por motivos legais e principalmente por razões financeiras. Existem emuladores que se vendem e cobram dinheiro para fazer a mesma coisa que o MAME faz de grátis. Ou não.

Tem pessoas que tiram seu sustento de sites voltados para serviços ligados ao Linux, RedHat, Microsoft,Google, Udemy, cursos online feitos em casa, no quarto, banheiro Etc... Ou não. Talvez não.

Mas não me engano, no final, todos acabamos trabalhando para eles, querendo ou não, eu admito.

Não sei. Posso estar errado. Todo mundo é tão legal e tão gente boa se o usuário tem dinheiro no lugar certo na hora certa em ambientes controlados. Mas o assunto aqui é configurar o MAME! Para configurar o MAME como é mesmo?

Afinal o que é um gabinete de arcade com jogos de arcade certo?

MAME é um dos emuladores mais fáceis de configurar e pode ser o mais difícil de acertar. É o mais difícil de acertar a configuração correta.

O MAME é muito personalizável e pode ser ajustado até o último detalhe.

Se você não tem idéia do que estou falando, acesse veja a fonte no fim do post

---

Isto aqui que você está lendo, é escrito para MAME básico e algum conhecimento da linha de comando é necessário.

A maioria dos front-ends usa a versão de linha de comando do MAME assim eles agem como uma gui (interface gráfica do usuário).

Quando você iniciar o MAME, você receberá um erro informando que nenhum jogo foi encontrado.

Vá em frente abre o MAME e feche o MAME.

Se você já tentou isto feche o MAME e vamos a luta.

---

Depois de encontrar jogos ou roms, coloque-os em seu diretório/pasta 'roms'.

Se você não tem um, você pode fazer um.

(Normalmente no seu diretório/pasta mame para manter tudo organizado.)

---

Pode ser que talvez no endereço abaixo encontre umas ROMs de teste:

veja a fonte no fim do post

---

Para começar: Quando você começar a mame, você receberá um erro informando que nenhum jogo foi encontrado. Vá em frente e saia. Depois de encontrar jogos ou roms, coloque-os no diretório 'roms'. Se você não tem um, você pode fazer um. (Normalmente, na pasta /home/usuwarrior/.mame/ para manter tudo organizado.) Agora você precisa abrir um terminal. Pressione Alt + F2 no terminal tipo caixa pop-up (será muito por distro). Uma vez lá, digite:

cd .mame

mame -cc

---

Isto criará um arquivo mame.ini na pasta em que você está. Isto criará um arquivo mame.ini na pasta em que você está. (Você sempre pode executar o comando mame -cc novamente e ter um novo mame.ini Se você estragar tudo muito mal. Seu mame.ini será algo parecido com isto:

#
# CORE CONFIGURATION OPTIONS
#
readconfig 1
writeconfig 0

#
# CORE SEARCH PATH OPTIONS
#
rompath <-AQUI!
hashpath
samplepath
artpath
ctrlrpath
inipath
fontpath
cheatpath
crosshairpath

---

OBS:

Não apagar a linha que tem a palavra rompath.

---

O rompath (barulho) é a única coisa que preocupa agora. Você pode apagar todas as linhas até, mas não a linha que tem a palavra rompath.

---

Então digite:

$HOME/.mame/roms

---

Agora salve as alterações agora digite seu terminal mame e inicie-o.

Você deve ver uma caixa azul com uma lista de jogos que você tem.

Você pode pressionar enter para iniciar um jogo ou pressionar esc para sair.

Sua mame agora funciona!

Você pode iniciar um jogo em um terminal e iniciar um jogo diretamente digitando o nome do jogo mame. Exemplo:

mame odumorr

---

Em um terminal, será iniciado o odumorr sem o gamelist (que é como os front ends, como o modo de atração, funcionam). Rom problemas: Primeiro nunca descompacte uma rom a menos que você saiba o que está fazendo! MAME não pode carregar uma rom descompactada. Roms podem ser obtidos cantando ou em pacotes de atualização. Você precisa ter todos os arquivos necessários no zip e todos os arquivos zip necessários.

Exemplo: você tem galaga.zip, mas existem outros arquivos necessários (arquivos .zip) para iniciar. Por que não apenas colocá-los todos juntos? Bem, você pode e mame vai ser feliz e carregar bem. No entanto, alguns desses arquivos estão em outros jogos da Namco (por exemplo, mappy, rally X, ect.) Então agora você os tem duas vezes, ou mais, e é um desperdício de espaço.

Carregar a partir de um terminal emitirá erros de arquivos ausentes e informará os roms extras de que você precisa. Para mais informações quiçá você encontra em:

xente1

xente2

---

Arquivos chd:

Disco rígido compactado (ou pedaços comprimidos [de] dados ... dependendo de com que você está falando.)

São arquivos de dados grandes (alguns são ENORMES).

Principalmente esta é uma imagem do disco rígido (ex. 'Instinto assassino') ou um CD-ROM (ex. 'Street fighter III') ou um disco laser (ex 'cliffhanger').

Estes precisam ser colocados em uma subpasta na sua pasta roms com o nome da rom. (por exemplo, /.mame/roms/kinst/)

---

Sons perdidos: Com alguns jogos mais antigos, você precisa do que chamamos de amostras de som. Estes não são sons emulados por palavra, mas arquivos de som raw chamados pelo mame no momento apropriado.

"Sem eles você não ouve os sons do jogo. Jogar galaga sem samples de som quando você morre sua nave explode sem som. Quem é que vai querer isto!?

Então, depois de encontrar as amostras de som, coloque-as em sua pasta (por exemplo, .mame / samples) e, em seu mame.ini, altere seu caminho samplepath:

#
# CORE SEARCH PATH OPTIONS
#
rompath $HOME/.mame/roms
hashpath
samplepath <---AQUI!
artpath
ctrlrpath
inipath

---

Apague tudo que estiver na frente do que diz samplepath e digite:

$HOME/.mame/samples

---

Agora salve as novas alterações. Agora, quando você corre um jogo como galaga, você terá todos os seus sons Por que é uma tela minúscula! Para ir em tela cheia, procure em seu mame.ini por:

#
# VIDEO OPTIONS
#
video opengl
numscreens 1
window 0
maximize 1
keepaspect <---AQUI!
unevenstretch <---AQUI!
centerh 1
centerv 1
waitvsync 0
syncrefresh 0
scalemode none

---

Alterar manter aspecto e alongamento irregular de um zero (0) para um (1). Espero que você comece bem com estas noções básicas de MAME.

Jogue feliz! Se diverte!

---

fonte

---

Até Breve! Entre em contato. Faça doações. Doe o que puder. Faça o que puder. Comentários, correções, críticas construtivas são sempre muito bem-vindas! Fale comigo se quiser e eu falo com você!

shell script REGEX e File Globbing

Linux shell script REGEX e File Globbing

---

Alguns comandos para usar no linux:

cd
cd ~
cd ..
cd ../../
cd -
cd ~/Documentos/
cd ~/Vídeos/Legendas/Niver-Legendas/

pwd

clear

ls
ls -ltr
ls -ltC
ls -1

ps
ps axu
ps axu | more

touch nome-do-arquivo-a-ser-criado
touch arquivo-existente-atualiza-o-horário

man touch

echo palavra-a-ser-ecoada
echo 'palavra a ser ecoada'
echo -e '\nAcima \n\tNo meio \nAbaixo\n'
echo -e "\ncoluna1\tcoluna2\tcoluna3\t\n"
man echo

mkdir nome-do-diretório
mkdir -p nome-do-diretório/nome-do-sub-diretório/

rm -f nome-do-arquivo
rm -r nome-do-diretório

cp nome-do-arquivo-original nome-da-cópia-do-arquivo-original

cp -r nome-do-diretório-original nome-da-cópia-do-diretório-original

mv nome-do-arquivo-original novo-nome-para-o-arquivo

sleep 10

cat nome-do-arquivo
cat -b nome-do-arquivo
cat -A nome-do-arquivo

tac nome-do-arquivo

tail nome-do-arquivo
tail -n3 nome-do-arquivo

head nome-do-arquivo
head -n1 nome-do-arquivo
head -c8 nome-do-arquivo

wc nome-do-arquivo
wc -l nome-do-arquivo
wc -c nome-do-arquivo
wc -m nome-do-arquivo
wc nome-do-arquivo*

tail -n5 nome-do-arquivo | wc -w

sort nome-do-arquivo
sort -r nome-do-arquivo
sort -k2 nome-do-arquivo

tail /etc/passwd
tail /etc/passwd | sort -k3 -t ":" -g

uniq nome-do-arquivo
sort nome-do-arquivo | uniq
sort nome-do-arquivo | uniq -u
sort nome-do-arquivo | uniq -d
sort nome-do-arquivo | uniq -c

sort nome-do-arquivo | uniq -c | sort
sort nome-do-arquivo | uniq -c | sort -r
sort nome-do-arquivo | uniq -c | sort -r | head -n1

---

Funcionamento do Linux:

hardware > kernel > shell > usuário

---

O shell interpreta o script.

---

O shell padrão no linux é o bash. Ele é melhoria do shell sh e incorpora csh e ksh.

O shell csh traz recursos da linguagem C é diferentes e faz coisas que os outros não fazem.

---

echo $0
echo $SHELL
tail /etc/passwd

---

Uso de aspas:

caracteres especiais.

* / $ ``

As `` fazem um sub-comando dentro do shell.

---

Aspas protegem.

echo *

echo "*"

aspas duplas protegem o caractere.

Pode usar apóstrofos para proteger.

echo '*'

Mas aspas simples se comportam diferente de aspas duplas.

A barra invertida protegeo caractere seguinte. O shell não interpreta o caractere.

echo \*

ls "aluno*"

ls 'aluno*'

ls aluno\*

---

Aspas duplas não protegem cifrão, crase e a barra normal:

$ ` /

---

Quando temos variável cifrão ele estará buscando uma variável.

---

Aspas simples (apóstrofo) protegem tudo. 3 Exemplos:

1) echo $SHELL

2) echo "$SHELL"

3) echo 'SHELL'

---

Todos tem utilidade depende do caso. As aspas duplas são mais usadas.

---

Exemplo de barra invertida:

echo '5espaços 5espaços 5espaços'

echo 5espaços\ \ \ \ \ \5espaços 5espaços

---

Abro o editor de texto Gedit ou nano.

---

Expressões regulares:

File Globbing é diferente de Regex.

File Globbing: Forma do bash de selecionar arquivos de diretórios. Usa carcteres especiais para selecionar arquivos de diretórios.

---

Exemplo de File Globbing:

touch Aula1.txt Aula2.txt Aula3.txt Aula4.txt Aula5.txt aula6.txt

---

OBS:
Note que todos os arquivos começam com maiúsculas menos aula6.txt

---

ls Aula*

ls Aula2*

ls -la Aula[1234]*

ls -la Aula[1-5]*

ls -la Aula[1-6]*

ls -la [Aa]ula[1-6]*

ls -la [Aa]ula[156]*

ls -la *[12]*

ls {Aula,aula}[16]*

ls {Aula,aula}[16].txt

ls -l *5*

ls -l *5.txt

ls -l {Aula,aula}4*

ls -l {Aula,aula}4.txt

---

OBS File Globbing:

Os colchetes [] fazem listas e as chaves {} escolho as strings que me interessam.

---

Mais exemplos File Globbing:

ls -la Aula2*

ls -la Aula2?

ls -la Aula2????

---

File Globbing funciona com quase todos os comandos GNU/Linux.

---

Regex: Expressão regular. Usa caracteres para selecionar um padrão de texto. É para seleção de texto.

---

Usando o Regex:

---

Exemplos comando:

--

echo -e '\nEste texto vai para Aula1.txt.\n\nEle contém algumas palavras:\n\nCada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse \nNunca \n \n# Um comentário \n \nnever\nOpera \nopus \nbaiog \nbeirag \nbicag \nquerer \nQueijo \nLeva \nLinux \nlinux \nLinuxDistro \nHostel \nhostel \nLinux \nlinux \nSistema operacional Linux \nGNU \ngnu \nGNULinux \ngnulinux \n' > Aula1.txt

---

Comandos para imprimir o texto no terminal:

cat Aula1.txt
cat Aula1*

---

Usar grep ou egrep ou grep -e.

---

Para aparecer colorido criam um alias para o egrep pode ser em ~/.bashrc (muitos .bashrc já vem com esta opção):

#
alias egrep='egrep --color=auto'
#

---

OBS:
Abro o terminal onde está o arquivo Aula1.txt e executo:

egrep "[Hh]ostel" Aula1.txt

---

Resultado do comando acima:

$ egrep "[Hh]ostel" Aula1.txt
Cada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse
Hostel
hostel

---

Executo os REGEX abaixo:

egrep [Gg]NULinux Aula1*

egrep [GgNnUu][Ll]inux Aula1*

---

Resultados da execução do REGEX:

$ egrep [Gg]NULinux Aula1*
GNULinux

$ egrep [GgNnUu][Ll]inux Aula1*
GNULinux
gnulinux

---

Executo o REGEX "b[a]*" com File Globbing (Aula1*):

egrep "b[a]*" Aula1*

---

Resultado do REGEX com File Globbing:

$ egrep "b[a]*" Aula1*
Cada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse
baiog
beirag
bicag

---

O REGEX trabalha com o texto ou com as strings que estão escritas dentro de um arquivo. O File Globbing trabalha por fora do arquivo ou diretório, ajudando a localizar. Por exemplo Aula1*.

---

Comando REGEX:

egrep "b[a-i]*" Aula1*

---

Resultado:

$ egrep "b[a-i]*" Aula1*
Cada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse
baiog
beirag
bicag

---

Comando REGEX:

egrep "^Linux" Aula1.txt

---

Resultado do comando REGEX:

$ egrep "^Linux" Aula1.txt
Linux
LinuxDistro
Linux

---

Comando REGEX:

egrep -v "^[Ll]inux" Aula1.txt

---

Resultado do comando REGEX:

$ egrep -v "^[Ll]inux" Aula1.txt
Este texto vai para Aula1.txt.
Ele contém algumas palavras:
Cada, Cardo, Arame, Arca, Bote, boca, vira, Voa, Dura, dedo, Elfo, eifel, fardo, Fargo, guia, Guria, hostel, Hostil, Juno, jim, Inca, indo, Karma, kraken, Lele, lili, Mosca, mouse
Nunca
# Um comentário
never
Opera
opus
baiog
beirag
bicag
querer
Queijo
Leva
Hostel
hostel
Sistema operacional Linux
GNU
gnu
GNULinux
gnulinux

---

Comando REGEX:

egrep "Linux" Aula1.txt

---

Resultado:

$ egrep "Linux" Aula1.txt
Linux
LinuxDistro
Linux
Sistema operacional Linux
GNULinux

---

REGEX para linhas em branco:

egrep "^$" Aula1*

egrep -v "^$" Aula1*

---

OBS:
No uso de caracteres especiais há diferenças entre REGEX e File Globbing

---

Asterisco *

Comando exemplos REGEX asterisco:

egrep "A[a-r]*" Aula1*
egrep "A[a-r]e*" Aula1*

---

OBS:
e* Pode não existir ou pode exitir uma ou várias vezes.

---

Para por aqui hoje. Sabe, aqui no Brasil a crise tá braba mesmo!

A gente paga para aprender qualquer coisa na internet.

Paga para aprender a digitar, paga para saber shell script, para para saber File Globbing e para caro para aprender REGEX e eu também pago.

Mas não cobro nada para transmitir o conhecimento meu, que foi adquirido por mim através do meu estudo e esforço pessoal.

Existem bloqueios para conteúdo gratúito oferecido por outros sites em outros países, em universidades gratúitas do exterior que você poderia aprender tudo de graça se souber estudar estas coisas em inglês. Mas se você está no Brasil tudo passa por um filtro e quem quer aprender é rastreado e muitas vezes corre o risco de ser hackeado. Não por estrangeiros, mas talvez pelos nossos irmãos brasileiros que precisam sobreviver. Talvez. Ou não. Ou não.

---

Até Breve!

---

:)

---



Me zipa, me unzipa!



Linux comandos para compactar diretórios e arquivos

---

OBS:

Sem enrola VPN Gratis

---

O Zip é uma ferramenta de compactação que está disponível na maioria dos sistemas operacionais até ontem.

---

Vamos ver como instalar, usar e dicas sobre o comando zip.

---

Instalação:

Instalar zip e unzip pela central de programas da sua Distro Linux.

---

Tutorial começa

Abra o terminal onde está/estão o(s) arquivo/diretório(s) a ser(em) compactado/descompactado(s) em zip.

---

Zipando arquivos individualmente:

zip -r nome-para-o-arquivo.zip arquivo-a-ser-zipado1 arquivo-a-ser-zipado2 diretório-a-ser-zipado

---

OBS:

Será criado um arquivo zip chamado de nome-para-o-arquivo.zip.

O -r do zip -r é usado para o caso de existirem sub-diretórios dentro do diretório a ser compactado e nesta anotação aqui, estou usando -r em tudo pois, se for apenas um arquivo acredito faz o serviço do mesmo jeito.

---

Para descompactar:

unzip nome-para-o-arquivo.zip

---

OBS:

Se está em outro lugar do sistema acho que dá para descompactar por exemplo:

unzip ~/Downloads/nome-para-o-arquivo.zip

---

Zipando um diretório:

zip -r nome-para-o-diretório-a-ser-zipado.zip ~/caminho/para/o/diretório/

---

Veja só isto abaixo

---

Exemplo terminal aberto onde está o arquivo a ser zipado e então zipando diretório ~/bin/ da home do usuário:

zip -r bin-zipado-2018.zip ~/bin/

---

OBS: Será criado um pacote chamado de bin-zipado-2018.zip.

---

Para descompactar o pacote bin-zipado-2018.zip:

unzip bin-zipado-2018.zip

---

Pode saber informações sobre os pacotes criados com o comando:

ls -lC nome-do-arquivo.zip

ls -lhC caminho/para/o/pacote/zip/nome-do-arquivo.zip

---

Zipar um diretório para um local diferente no sistema?

---

Veja só este exemplo aqui.

Criar um arquivo zip de um PDF que está ~/Documentos/ e se chama fulano.pdf para o diretório ~/Imagens e estou em ~/Vídeos/

---

Exemplo abaixo.

---

1) Criar arquivo fulano.pdf em Documentos com o comando:

touch ~/Documentos/fulano.pdf

2) Ir para o diretório Vídeo:

cd ~/Vídeos/

3) Do diretório Vídeo criar pacote fulano.zip em Imagens sendo que o arquivo está em Documentos:

zip -r ~/Imagens/fulano.zip ~/Documentos/fulano.pdf

---

Conferindo arquivos e pacotes pelo terminal:

1) ls -tlC ~/Imagens/ | head

2) ls -tlC ~/Documentos/ | head

3) ls -tlC ~/Vídeos/ | head

4) pwd

---

OBS:

Abra o seu gerenciador de arquivos e confere se está tudo certo. Para mim funcionou direitinho. Este conhecimento é útil para fazer coisas muitíssimo importantes.

---

Leia o conteúdo de um arquivo compactado sem extrair o arquivo

---

Como posso ler o conteúdo de um determinado arquivo em um arquivo sem extrair o arquivo .zip em que ele está contido?

---

Listar o conteúdo de um arquivo ZIP para saber o que tem dentro dele:

unzip -l nome-do-arquivo.zip

---

Use a opção -c para gravar o conteúdo dos arquivos nomeados na stdout (tela) sem precisar descompactar todo o arquivo. Canalize a saída para menos, caso contrário, todo o arquivo irá para a tela antes que você possa lê-lo.

---

unzip -c nome-do-arquivo.zip | less

unzip -c nome-do-arquivo.zip | head

unzip -c nome-do-arquivo.zip | tail

---

Para saber melhor:

Visite

---

Até Breve!

---

Dicas, críticas e comentários positivos são muito bem-vindos!

🙂

---

fonte

---

Post do semanickz (apenas um "average joe")

---

Quem precisar entrar em contato comigo, por favor, siga o procedimento abaixo por sua própria conta e risco (Kkkkk):

Contate-me!

Tranquilo(a)!


Linux CentOS 7 – Guia Pós Instalação

Linux CentOS 7 - Guia Pós Instalação

---

Guia Pós Instalação CentOS 7 - 2018

---

Este tutorial é sobre como executar uma instalação mínima da versão mais recente do CentOS 7.0, usando a imagem ISO do DVD binário, uma instalação que é mais adequada para desenvolver uma futura plataforma de servidor personalizável, sem interface gráfica do usuário, onde posso instalar somente o software que preciso.

---

Depois de baixar a última versão do CentOS usando links do site official (http://www.centos.org/download/). Gravo em um DVD ou crio um pendrive inicializável usando o LiveUSB Creator chamado Unetbootin. Ou o Etcher.

Depois de ter criado a mídia inicializável do instalador, coloco meu DVD/USB na unidade apropriada do sistema, inicio o computador, seleciono a unidade inicializável e o primeiro prompt do CentOS 7 deve aparecer. No prompt, seleciono Instalar o CentOS 7 e pressiono a tecla [Enter].

---

O sistema começará a carregar o instalador de mídia e uma tela de boas-vindas será exibida. Seleciono meu idioma de processo de instalação, que irá ajudar durante todo o procedimento de instalação e clico em Continuar.

---

A próxima etapa, vejo o prompt de tela que é é o Resumo da instalação. Ele contém muitas opções para personalizar totalmente o sistema. A primeira coisa que posso querer configurar é a configuração de tempo. Clico em Data e Hora e seleciono a localização física do meu servidor no mapa fornecido e clico no botão Concluído para aplicar a configuração.

---

O próximo passo é escolher configurações de suporte a idiomas e teclado. Escolho meu idioma principal e extra para o meu sistema e, quando termino, clico no botão Concluído.

---

Da mesma forma, escolho o layout do teclado pressionando o botão mais e testo a configuração do teclado usando a entrada correta. Depois de concluir a configuração do teclado, pressiono novamente o botão superior Concluído para aplicar as alterações e voltar para a tela principal no Resumo da Instalação.

--

Na próxima etapa, posso personalizar a instalação usando outras fontes de instalação que a mídia local de DVD/USB, como locais de rede usando protocolos HTTP, HTTPS, FTP ou NFS e até mesmo adicionar alguns repositórios adicionais, mas uso esses métodos somente se sei o que estou fazendo. Portanto, deixo a mídia de instalação padrão detectada automaticamente e pressiono Concluído para continuar.

---

Na próxima etapa, posso escolher o software de instalação do sistema. Nessa etapa, o CentOS oferece muitos ambientes de plataforma de Servidor e Área de Trabalho que posso escolher, mas, se desejo um alto grau de personalização, especialmente se for usar o CentOS 7 para rodar como uma plataforma de servidor, penso em selecionar Instalação mínima com bibliotecas de compatibilidade como complementos, que instalarão um software de sistema básico mínimo e, posteriormente, poderei adicionar outros pacotes conforme necessário, usando o comando yum groupinstall. Existe as opções de servidor com GUI, GNOME Desktop, KDE Plasma...

---

Agora é hora de particionar o disco rígido. Clico no menu Destino da Instalação, seleciono meu disco e escolho "Eu configurarei o particionamento".

---

Na tela seguinte, escolho LVM (Logical Volume Manager) como layout de partição e, em seguida, clico em Clique aqui para criá-los automaticamente, opção que criará três partição do sistema usando o sistema de arquivos XFS, redistribuindo automaticamente o espaço no disco rígido e reunindo todos os LVS em um grande grupo de volume chamado centos.

/boot – Non LVM
/(root) – LVM
Swap – LVM

---

OBSERVAÇÃO:
Para aqueles usuários que têm discos rígidos com mais de 2TB, o instalador converterá automaticamente a tabela de partições para GPT, mas se você desejar usar a tabela GPT em discos menores que 2TB, use o argumento inst.gpt para a linha de comando do instalador de inicialização para alterar o comportamento padrão.

O próximo passo é definir o nome do host do sistema e ativar a rede. Clico no rótulo Network & Hostname (Nome da rede e nome do host) e digito o FQDN (nome de domínio totalmente qualificado) do sistema no campo Hostname e, em seguida, ativo a interface Network, alternando o botão Ethernet superior para ON.

Se tiver um servidor DHCP funcional em minha rede, ele configurará automaticamente todas as configurações de rede para o NIC habilitado, que deve aparecer na sua interface ativa.

---

Se o sistema for destinado como servidor, é melhor configurar a rede estática na Ethernet NIC clicando no botão Configurar e adicionar todas as configurações da interface estática, e quando terminar de clicar no botão Salvar, desativo e Ativo a placa Ethernet, alternando o botão para OFF e ON, e, em seguida, pressiono OK para aplicar a configuração e voltar ao menu principal.

---

Agora é hora de iniciar o processo de instalação pressionando o botão Iniciar instalação e configuro uma senha forte para a conta raiz (maiúsculas, numeros, minúsculas, simbolos).

---

Depois de concluir a configuração de uma senha forte para a conta raiz, vou para Criação de usuário e crio meu primeiro usuário do sistema. Posso designar este usuário para se tornar um administrador do sistema com privilégios de root usando o comando sudo marcando a caixa Make this user administrator, então clico em Done para voltar ao menu principal e aguardo o término do processo de instalação.

---

Guia Pós Instalação CentOS 7 - 2018

---

Após o término do processo de instalação, o instalador mostrará uma mensagem com sucesso na tela, exigindo a reinicialização do sistema para usá-lo.

---

Instalação do CentOS 7 Completa.

---

Você terminou de instalar o CentOS Minimal.

---

Leia o manual do yum.

---

man yum

---

info yum

---

yum --help

---

Pós-Instalação do CentOS

---

Você irá executar os comandos abaixo como root.

---

Digite:

---

su

---

Aperte enter e digite a senha de root.

---

1

Atualizar o sistema:

# yum update
# yum upgrade

---

2

Alterar o nome da máquina:

# nano /etc/hostname

---

3

Verificar o idioma do sistema:

# echo $LANG

---

4

Configurar idioma e teclado
Configurar o idioma para Português do Brasil, hoje em dia não precisa mais.

Menu → Configurações do Sistema → Localização → País/Região e Língua, hoje em dia não precisa mais.

Inserir: País, Línguas, Números, Dinheiro, Calendário, Data e Hora, etc, hoje em dia não precisa mais.

Configurar o teclado para Português do Brasil, hoje em dia não precisa mais.

Menu → Configurações do Sistema → Hardware → Dispositivos de Entrada

Na Aba: Disposições → Configurar as disposições → Adicionar → Portuguese (Brazil)

Remova o Inglês.

---

5

Ativar o autologin no sistema, hoje em dia não precisa mais.

# nano /etc/gdm/custom.conf

Na configuração [daemon], altere inserindo os respectivos dados, por exemplo:

[daemon]
AutomaticLoginEnable=True
AutomaticLogin=seuUSUARIO

Verificar o repositório atual:

# yum repolist

Para acessar, visualizar ou alterar o repositório atual, acesse:

# cd /etc/yum.repos.d/

---

Guia Pós Instalação CentOS 7 - 2018

---

6

Configurando NTFS

Configurando NTFS, caso necessário. Instale o repositório EPEL:

Busque por ele:

# yum search epel

# yum install epel-release

Instale o suporte ntfs-3g:

# yum install ntfs-3g

---

7

: Montagem automática das partições :

Montagem automática das partições NTFS durante o boot. Para montar manualmente.

Para visualizar qual partição deve ser montada, utilize o comando abaixo:

# fdisk -l

Crie o caminho desejado para local onde a partição será montada. No comando abaixo, fica um exemplo:

# mkdir /media/hd-externo

Para montar a partição NTFS:

# mount -t ntfs-3g /dev/sdb1 /media/hd-externo

Onde: partição NTFS → /dev/sdb1

O caminho onde será montada a partição NTFS, para acesso posteriormente: /media/hd-externo

Montagem automática
Para configurar a montagem automática durante o boot. Antes de iniciar, vamos utilizar o comando abaixo para fazer backup do fstab:

# cp /etc/fstab /etc/fstab.original

Execute o comando abaixo, para visualizar a partição NTFS,:

# blkid

Vamos utilizar o nano como editor e abrir o arquivo de configuração com o comando:

# nano /etc/fstab

Para montar a partição, vamos inserir na ultima linha do fstab, os valores de acordo com a saída do seu comando blkid.

Abaixo vamos entender cada valor do comando:

#[Partição (UUID) ] [Montagem] [Tipo] [Parâmetros] [Restauração e Backup] [Checagem e Correção]
UUID="333EB1909EB146E2" /media/hd-externo ntfs-3g defaults 0 0

Após inserir os dados no fstab corretamente, pressione no teclado Ctrl+o (para salvar) e Ctrl+x (para sair).

Você pode reiniciar e conferir, ou simplesmente usar o comando abaixo:

# mount -a

---

INSTALANDO O AMBIENTE MATE NO CENTOS MINIMAL:

Primeiro instalo o EPEL-repositories depois instalo o X Window System.

yum install epel-release

yum groupinstall "X Window system"

---

Instalo os pacotes do MATE. Demora um pouco. Paciencia.

yum groupinstall "MATE Desktop"

Diga ao seu sistema para iniciar a interface gráfica.

$ systemctl isolate graphical.target

---

Para que o MATE inicialize como o ambiente de área de trabalho padrão, digite o seguinte comando (as duas últimas linhas serão colocadas no terminal quando você executar a primeira linha).

1.
systemctl set-default graphical.target

2.
rm '/etc/systemd/system/default.target'

3.
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'

---

Você provavelmente desejará o utilitário de disco Gnome como a maneira mais fácil de fazer interface com seus discos.

Uma vez instalado, pode ser encontrado em: Aplicações -> Acessórios -> Discos

$ yum install gnome-disk-utility

---

Multimídia
Instalar Pacotes de Multimídia: VLC, Flash Plugin, Codecs, SMplayer, Java, Handbrake.

---

Você precisará instalar o repositório EPEL, como nux-dextop. Depende disso para alguns de seus pacotes.

---

Passo 1: instalar o repositório nux-dextop

---

Executar este comando para instalar o repositório nux-dextop:

---

# yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

---

Passo 2: instalar o repositório Adobe

---

Executar este comando para instalar o repositório de adobe:

---

# yum -y install http://linuxdownload.adobe.com/linux/x86_64/adobe-release-x86_64-1.0-1.noarch.rpm

---

Passo 3: instalar os pacotes desejados

---

Este comando irá baixar o plugin flash para o Firefox:

# yum install flash-plugin

---

Este comando irá baixar o plugin Java para o Firefox:

# yum install icedtea-web

---

Este comando irá instalar Handbrake, o VLC e SMplayer:

# yum install vlc smplayer ffmpeg HandBrake-{gui,cli}

---

O comando a seguir, instala um descodificador e codecs que são necessários para reproduzir certos tipos de mídia.

---

Seu uso pode ser legalmente restrito em algumas áreas. Obter aconselhamento jurídico se tiver dúvidas sobre as Leis em sua localidade.

# yum install libdvdcss gstreamer{,1}-plugins-ugly gstreamer-plugins-bad-nonfree gstreamer1-plugins-bad-freeworld

---

LibreOffice

Configurando o LibreOffice para Português do Brasil.

Pesquise no terminal pelos pacotes do "libreoffice" disponíveis:

# yum search libreoffice

Você deve encontrar o pacote: libreoffice-langpack-pt-BR.x86_64

Para instalar, utilize o comando:

# yum install libreoffice-langpack-pt-BR.x86_64

---

Programas adicionais

Instalando programas adicionais.

---

Edição de Áudio e Vídeo:

# yum install audacity openshot

Edição de Imagem e Gráficos:

# yum install gimp inkscape kolourpaint

Gravadores de CD/DVD:

# yum install devede brasero k3b

Máquina virtual:

# yum install virtualbox

Players de vídeo:

# yum install vlc smplayer mplayer

Players de áudio:

# yum install rhythmbox audacious banshee tomahawk

---

---

O que é o YUM?

O YUM (Yellowdog Updater Modified) é uma linha de comando de software livre, bem como uma ferramenta de gerenciamento de pacotes baseada em gráficos para sistemas Linux baseados em RPM (RedHat Package Manager). Ele permite que os usuários e o administrador do sistema instalem, atualizem, removam ou pesquisem facilmente pacotes de software em um sistema. Foi desenvolvido e lançado por Seth Vidal sob a licença GPL (General Public License) como uma fonte aberta, significa que qualquer pessoa pode fazer o download e acessar o código para corrigir bugs e desenvolver pacotes personalizados. O YUM usa vários repositórios de terceiros para instalar pacotes automaticamente, resolvendo seus problemas de dependências.

---

:: Exemplos...

1. yum -y install firefox
2. yum -y remove firefox
3. yum update mysql
4. yum list openssh
5. yum search vsftpd
6. yum info firefox
7. yum list | less
8. yum list installed | less
9. yum provides /etc/httpd/conf/httpd.conf
10. yum check-update
11. yum update
12. yum grouplist
13. yum groupinstall 'MySQL Database'
14. yum groupupdate 'DNS Name Server'
15. yum groupremove 'DNS Name Server'
16. yum repolist
17. yum repolist all
18. yum --enablerepo=epel install phpmyadmin
19. yum shell
20. yum clean all
21. yum history

---

: Comandos de terminal comumente usados que abrangem quase todas as distribuições Linux :

| A |
alias - Cria um alias, aliases permitem que uma string seja substituída por uma palavra quando é usada como a primeira palavra de um comando simples. Este é um comando bash construído.

Exemplo: [user1@foo]$ alias la = ’ls -lAXh --color=always | less -R’ (Agora, a emissão do comando ‘la’, na verdade, executará uma longa listagem, em cores, classificada por extensão). Consulte também: unalias

---

apropos - A Apropos pesquisa um conjunto de arquivos de banco de dados contendo pequenas descrições de comandos do sistema para palavras-chave e exibe o resultado na saída padrão.

Exemplo: [user1@foo]$ apropos search (este comando exibe uma lista de possíveis comandos e suas respectivas descrições com a string “search” no comando ou na descrição do comando).

---

| B |
bcwipe - O Bcwipe sobrescreve repetidamente padrões especiais nos arquivos a serem destruídos. No modo normal, são usados 35 passes (dos quais 8 são aleatórios). Os padrões utilizados foram recomendados no artigo de Peter Gutmann (http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html) intitulado “exclusão segura de dados de memória magnética e de estado sólido”. No modo rápido, o padrão 5200.28 do Departamento de Defesa dos EUA é usado com a limpeza de 7 passagens. No modo personalizado, o padrão US DoD 5200.28 é usado com o número de passagens definido pelo usuário.

Exemplo: [user1@foo]$ bcwipe -ng -r -v /home/temp (este comando fará um passe 35; recursivo; verbalização do DoD detalhada em /home/temp. Normalmente, o bcwipe é usado em uma unidade ou partição inteira onde dados confidenciais ou pessoais foram mantidos para impedir a recuperação dos dados se o inversor ou sistema estiver sendo vendido ou entregue a uma parte desconhecida.

---

| C |
cd - Altera o diretório, usado para navegar pelas estruturas de diretório por meio da linha de comando.

Exemplo: [user1@foo]$ cd /etc/X11 (este comando muda o diretório de trabalho atual (cwd) para /etc/X11)

chkconfig - Atualiza e consulta informações de nível de execução para serviços do sistema.

Exemplo: [user1@foo]$ chkconfig –level 2345 httpd on (o comando adiciona o daemon httpd para iniciar nos runlevels 2,3,4 e 5).

chmod - Altera os bits do modo de arquivo.

Exemplo: [user1@foo]$ chmod -Rf 700 /home (este comando altera tudo em /home e todos os subdiretórios para rwx somente para o proprietário do arquivo ou diretório ou root.)

chown - Altere a propriedade do arquivo e o grupo.

Exemplo: [user1@foo]$ chown -R usuário1: user1/home/testing (este comando altera a propriedade do arquivo e a propriedade do grupo de cada subdiretório em /home/testing para user1.)

cp - Copia arquivos, usados ​​para copiar arquivos para e de diferentes diretórios.

Exemplo: [user1@foo]$ cp ~/foo.txt /mnt/storage (este comando copia o arquivo “foo.txt” de /home/user1/foo.txt para /mnt/storage/foo.txt)

---

| D |
dd - Copia um arquivo, convertendo e formatando de acordo com as opções especificadas.

exemplo: [root@foo]# dd if =/dev/dvd fi=dvd_foo.iso (este comando cria uma imagem iso a partir do dispositivo /dev/dvd e grava em um arquivo local (dvd_foo.iso) na corrente (cwd) diretório de trabalho.)

df - Exibe o uso total do disco para sistemas de arquivos montados.
exemplo: [user1@foo]$ df -h (este comando exibe a taxa de espaço usado/livre em todos os sistemas de arquivos atualmente montados.)

diff - No caso mais simples, o diff compara o conteúdo dos dois arquivos from-file e to-file. Um nome de arquivo de - significa texto lido da entrada padrão. Como um caso especial, diff -- compara uma cópia da entrada padrão para si mesma. Se from-file for um diretório e to-file não for, o diff compara o arquivo em from-file cujo nome de arquivo é aquele de to-file, e vice-versa. O arquivo não-diretório não deve ser -. Se tanto from-file quanto to-file forem diretórios, o diff compara os arquivos correspondentes nos dois diretórios, em ordem alfabética; essa comparação não é recursiva, a menos que a opção -r ou –recursiva seja fornecida. O diff nunca compara o conteúdo real de um diretório como se fosse um arquivo. O arquivo que é totalmente especificado pode não ser uma entrada padrão, porque a entrada padrão é sem nome
e a noção de "arquivo com o mesmo nome" não se aplica. as opções de diff começam com -, então normalmente o arquivo e o arquivo podem não começar
com -. No entanto, - como um argumento por si só trata os argumentos restantes como nomes de arquivos, mesmo se eles começam com -.

exemplo: [user1@foo]$ diif /var/log/messages /var/log/messages.saved (este comando exibe as diferenças entre os 2 arquivos).

dstat - Exibe uma variedade de estatísticas do sistema em tempo real.
exemplo: user1 @ foo] $ dstat -f (este comando exibe estatísticas em tempo real no console do sistema).

du - Exibe o uso total do disco para diretórios nomeados.
exemplo: [user1@foo]$ du -chs /home (este comando exibe em formato legível pelo usuário o uso de espaço para o diretório/home)

---

| E |
exit - sai de um terminal de login ou de uma sessão como um determinado usuário.
exemplo: [root@foo]# exit (este comando sairá do shell atual (# root) e retornará o usuário ao prompt ($ user), se estiver logado via su ou su -.)

---

| F |
fdisk - O Fdisk é um poderoso utilitário de particionamento de disco.

exemplo: [root@foo]# fdisk -l (este comando lista as partições e os tipos de partição atualmente detectados. Use a página man para entender o escopo completo deste comando muito útil e poderoso.)

find - Find pesquisa uma determinada estrutura de diretório por uma string nomeada e exibe resultados pertinentes.

exemplo: [user1@foo]$ find ~ -name foo (procura na casa do usuário1 e em todos os subdiretórios por qualquer ocorrência de “foo” e exibe os resultados, se houver).

fsck - O Fsck inicia a verificação e o reparo da integridade do sistema de arquivos em sistemas de arquivos desmontados.
exemplo: [root@foo]# fsck -y /dev/hda1 (este comando força uma checagem do sistema de arquivos na partição hda1 e corrige quaisquer erros encontrados sem avisar o usuário para "ok" de quaisquer caixas de diálogo de confimação. use com cuidado e leia a man page .)

fusor - Identifica processos usando arquivos ou soquetes.
exemplo: [user1@foo]$ fuser -m /mnt/floppy (este comando procura por processos usando / mnt / floppy e exibe os resultados.)

---

| G |
grep - Grep pesquisa o (s) arquivo (s) de entrada nomeado (s) (ou entrada padrão se nenhum arquivo é nomeado, ou o nome do arquivo - é dado) para linhas contendo uma correspondência para o padrão dado. Por padrão, o grep imprime as linhas correspondentes.

exemplo: [user1@foo]$ rpm -qa | grep foo (este comando pesquisa o banco de dados rpm em busca de uma string “foo” e imprime todas as correspondências encontradas).

groupadd - Cria um novo grupo no sistema.

exemplo: [user1@foo]$ groupadd mytestgroup (este comando cria um grupo no sistema chamado mytestgroup).

---

| H |
head - Ouput a primeira parte dos arquivos para o terminal

exemplo: [user1@foo]$ head mytextfile.txt (este comando gera as primeiras N linhas do arquivo mytextfile.txt. por defauilt isto são 10 linhas).

hostname - Hostname é o programa usado para definir ou exibir o host atual, o domínio ou o nome do nó do sistema. Esses nomes são usados por muitos dos programas de rede para identificar a máquina. O nome de domínio também é usado pelo NIS / YP.

exemplo: [user1@foo]$ hostname (este comando exibe o nome do host atual).

---

| I |
ifconfig - o Ifconfig é usado para configurar as interfaces de rede residentes no kernel. Ele é usado no momento da inicialização para configurar interfaces conforme necessário. Depois disso, geralmente é necessário apenas quando depuração ou quando o ajuste do sistema é necessário. Se nenhum argumento for fornecido, o ifconfig exibirá o status das interfaces atualmente ativas. Se um único argumento de interface é fornecido, ele exibe o status da interface especificada apenas; Se um único argumento -a for fornecido, ele exibe o status de todas as interfaces, mesmo aquelas que estão inativas. Caso contrário, configura uma interface.

exemplo: [user1@foo]$ ifconfig (este comando emitido por si só imprimirá todas as interfaces de rede atualmente configuradas.)

ifdown - Coloca uma interface de rede para baixo (offline) manualmente.

exemplo: [user1@foo]$ ifdown eth0 (este comando coloca a interface de rede ‘eth0’ inativa ou off-line).

iftop - Exibe o uso da largura de banda em uma interface por host.

exemplo: [user1@foo]$ iftop -i wlan0 (este comando escuta na interface wlan0 e exibe informações sobre estatísticas de tráfego.)

ifup - Coloca uma interface de rede (online) manualmente.

exemplo: [user1@foo]$ ifup eth0 (este comando coloca a interface de rede ‘eth0’ ativa ou online).

init - Inicialização do controle de processo.

exemplo: [user1@foo]$ init 3 (este comando coloca o sistema no modo de texto somente init 3).

iptraf - Um monitor de tráfego de LAN IP colorido interativo.

exemplo: [user1@foo]$ iptraf (este comando inicia o iptraf no terminal.)

---

| J |
jwhois - O Jwhois pesquisa servidores Whois para o objeto na linha de comando. O host a ser consultado é obtido de um arquivo de configuração global, um arquivo de configuração especificado na linha de comandos ou selecionado diretamente na linha de comando.

exemplo: [user1@foo]$ jwhois google.com (esse comando consulta o banco de dados whois para os detalhes de registro de contato e domínio do google.com.)

---

| K |
kill - Encerra um processo atualmente em execução ou não. veja também: killall

exemplo: [user1@foo]$ kill -9 27068 (este comando encerra um processo com um ID de processo de 27058 encontrado usando o comando ps aux.)

---

| L |
last - Lista os usuários que fizeram login ou logout recentemente no sistema. Também exibe hora, data e duração.

exemplo: user1 @ foo] $ last (este comando lista todos os usuários que efetuaram login ou saíram recentemente do sistema).

less - Less é um programa semelhante a mais, mas que permite o movimento para trás no arquivo, bem como o movimento para frente. Além disso, menos não precisa ler o arquivo de entrada inteiro antes de iniciar, portanto, com arquivos de entrada grandes ele inicia mais rápido do que editores de texto como o vi. Menos usa termcap (ou terminfo em alguns sistemas), por isso pode ser executado em uma variedade de terminais. Existe até mesmo suporte limitado para terminais impressos. (em um terminal de cópia impressa, as linhas que devem ser impressas na parte superior da tela são prefixadas com um acento circunflexo).

exemplo: [user1@foo]$ menos -p CPU /var/log/dmesg (este comando pesquisa /var/log/dmesg para qualquer instância da cadeia 'CPU' e exibe essas linhas com 'CPU' realçada).

locate - Locate, em combinação com o updatedb, fornece uma maneira segura de indexar e procurar rapidamente por arquivos em seu sistema. Ele usa codificação incremental para compactar seu banco de dados para tornar a pesquisa mais rápida, mas também armazena permissões de arquivos e propriedade para que os usuários não vejam arquivos aos quais não têm acesso.

exemplo: [user1@foo]$ locate gimp (este comando procura um banco de dados seguro que começa em / para a string dada. nota: você deve primeiro executar o comando updatedb antes de usar o locate.)

ls - Lista arquivos, diretórios e suas respectivas permissões (dependendo dos switches e opções usadas).

exemplo: [user1@foo]$ ls -als (este comando lista todos os arquivos e subdiretórios no diretório de trabalho atual (cwd) e
suas respectivas permissões. para retardar listagens longas de diretório use: ls -als | menos uso q para sair.)

lspci - lspci é um utilitário para exibir informações sobre todos os barramentos PCI no sistema e todos os dispositivos conectados a eles.

exemplo: [user1@foo]$ lspci -v (este comando lista todos os dispositivos pci detectados pelo sistema no modo verbose).

lsusb-lsusb é um utilitário para exibir informações sobre os barramentos USB no sistema e os dispositivos conectados a eles. Para usar o lsusb, certifique-se de ter o pacote usb-utils instalado.)
exemplo: [user1@foo]$ lsusb -v (este comando lista todos os dispositivos usb detectados pelo sistema no modo detalhado.)

---

| M |
Man - Man formata e exibe as páginas de manual on-line. Se você especificar a seção, o homem só olha nessa seção do manual. nome é normalmente o nome da página de manual, que normalmente é o nome de um comando, função ou arquivo. No entanto, se o nome contiver uma barra (/), então o homem o interpretará como uma especificação de arquivo, para que você possa fazer o man ./foo.5 ou até mesmo o man /cd/foo/bar.1.gz.

exemplo: [user1@foo]$ man sudo (esse comando exibirá a página man do comando sudo e uma lista detalhada de opções e uso.)

mais - File perusal filter for crt viewing.

exemplo: [user1@foo]$ mais +3 myfile.txt (neste exemplo veríamos os resultados de myfile.txt exibidos começando na linha 3)

mount - Monta um sistema de arquivos. veja também: umount.
exemplo: [root@foo]# mount -t ext3 /dev/hdk3/mnt/foo (este comando monta a partição 3 no disco rígido /dev/HDK em /mnt/foo, onde o usuário pode acessá-lo com as permissões rwx adequadas sistemas de arquivos automontados podem ser atendidos em /etc/fstab)

mv - Mova arquivos de um diretório para outro. (semelhante a cortar) essa opção exclui o arquivo do local original e o move para outro, ele também é usado para renomear arquivos.)

Exemplo: [user1@foo]$ mv foo.rpm foo2.rpm (este comando renomeia “foo.rpm” para “foo2.rpm” dentro do mesmo diretório).

---

| N |
nano - Nano é um editor pequeno, gratuito e amigável que visa substituir pico, o editor padrão incluído no pacote de pinheiros não-livres. Em vez de apenas copiar a aparência do pico, o nano também implementa alguns recursos ausentes (ou desativados por padrão) no pico, como “pesquisar e substituir” e “ir para o número da linha”.

Exemplo: [root@foo] # nano /var/log/dmesg (este comando exibe o arquivo de texto /var/log/dmesg em uma janela de terminal e o apresenta para edição ou leitura).

---

| O |
oitava - Uma linguagem interativa de alto nível para cálculos numéricos.

Exemplo: [root@foo]# octave –help (este comando exibirá as opções para o comando octave).

---

| P |
passwd - Passwd é usado para atualizar o (s) token (s) de autenticação de um usuário. O Passwd está configurado para funcionar através da API do Linux-PAM. Essencialmente, ele se inicializa como um serviço “passwd” com o Linux-PAM e utiliza módulos de senha configurados para autenticar e atualizar a senha de um usuário.

Exemplo: [user1@foo]$ passwd newuser (este comando solicita ao emissor que forneça uma nova senha para o usuário especificado e, em seguida, atualiza o banco de dados de senha, substituindo a senha anterior pela nova.)

pkill - Procure ou sinalize processos baseados em nome e outros atributos.

Exemplo: [user1@foo]$ pkill -HUP syslogd (este comando faz o syslog reler seu arquivo de configuração.)

ps - Imprime uma lista de processos atualmente em execução, seus respectivos proprietários e ids de processo.

Exemplo: [user1@foo]$ ps aux (este comando exibe os processos atualmente em execução, entre outros dados importantes sobre os respectivos processos.)

pwd - Imprime o nome do diretório de trabalho.

Exemplo: [user1@foo]$ pwd (este comando imprime o caminho atual/diretório de trabalho no seu shell, como: /home/user1/foo)

---

| Q |
quota – Displays a list of users’ disk usage and limits. By default only the user quotas are printed. Quota reports the quotas of all the filesystems listed in /etc/mtab. For filesystems that are NFS-mounted a call to the rpc.rquotad on the server machine is performed to get the information.

Examplo: [root@foo]# quota user1 (this command displays the requested users disk quota usage and limits.)

---

| R |
rm – Remove files and/or directories.

Example: [user1@foo]$ rm -rf ~/temp (this command removes the directory /home/user1/temp)

rsync – A faster more flexible replacement for rcp (remote file copy)

Examplo: user1@foo ]$ rsync -avz -e ssh rsync@remote.acme.com:/home/rsync/out/ /home/rsync/from_remote (this command copies the contents of /home/rsync/out to /home/rsync/from_remote on a remote system.)

(An important thing here, is that the presence or absence of a trailing “/” in the source directory determines whether the directory itself is copied, or simply the contents of this source directory. Leaving out the trailing slash creates the new directory “out” on the remote machine.)

---

| S |
service - Executa um script de inicialização do sistema V no sistema.
exemplo: [user1@foo]$ service httpd restart (esse comando reinicia um daemon httpd em execução ou inicia um daemon httpd inativo/interrompido.)

shutdown - Traga o sistema para baixo.

Exemplo: [user1@foo]$ shutdown -r now (este comando encerra o sistema imediatamente e reinicia).

ssh - Inicia a conexão segura do shell com um sistema executando o sshd (daemon de shell seguro).

Exemplo: [user1@foo]$ ssh 192.168.0.10 (este comando inicia uma conexão de shell segura entre o computador localhost e o computador da rede local interna em 192.168.0.10).

---

stat - Exibe o status do arquivo ou do sistema de arquivos.

Exemplo: [user1@foo]$ stat/home (este comando exibe o status do diretório/home como tamanho do bloco, inodes, links, acesso e data (s) da última modificação, entre outras variáveis ​​definidas pelo usuário).

Strace - Traçar chamadas e sinais do sistema.

Exemplo: [user1@foo]$ strace -p 3284 (este comando iniciará um rastreamento em todas as chamadas do sistema e sinais associados ao processo # 3284.)

su - Substitui o comando do usuário. mais comumente usado para executar comandos/daemons que requerem privilégios de root, visualizar/alterar certos diretórios, arquivos e arquivos de log.

Exemplo: user1@foo]$ su - (este comando solicitará ao usuário a senha raiz e, se fornecido corretamente, registra o usuário no perfil raiz. the - indica que o usuário deve herdar o perfil e o caminho raiz. Isso é bastante útil Ao emitir comandos de vários diretórios sem digitar o caminho completo para o comando, os administradores do sistema devem ver o comando “sudo” para estender certos privilégios aos usuários que não precisam ou não podem ser confiáveis ​​com a raiz
senha.)

sudo - Super usuário ”do” permite que um usuário emita alguns comandos que requerem privilégios elevados, conforme definido em /etc/sudoers, mas não requer conhecimento da senha raiz.

Exemplo: [user1@foo]$ sudo mount -t ext3 /dev/hdk3/mnt/foo (este comando permite que um usuário normal com privilégios sudo emita um comando que requeira privilégios elevados para executar. o usuário será solicitado a inserir seus próprios senha para completar o comando por padrão, esta opção pode ser alterada para não requerer uma senha. veja: man sudoers)

---

| T |
tail - Mostra a última parte de um arquivo.

Exemplo: [user1@foo]$ tail -n 5 vhosts.conf (este comando gera as últimas 5 linhas do arquivo vhosts.conf para o terminal.)

tar - O comando tar compacta ou descompacta os arquivos compactados tar e tar.gz e as estruturas de diretórios.

Exemplo: [user1@foo]$ tar -xvfz foo.tar.gz (este comando descompacta o arquivo foo.tar.gz no cwd.)

top - O programa top fornece uma visão dinâmica em tempo real de um sistema em execução. Ele pode exibir informações de resumo do sistema, bem como uma lista de tarefas atualmente sendo gerenciadas pelo kernel do Linux. Os tipos de informações de resumo do sistema mostradas e os tipos, ordem e tamanho das informações exibidas para as tarefas são todos configuráveis ​​pelo usuário e essa configuração pode ser tornada persistente nas reinicializações. O programa fornece uma interface interativa limitada para manipulação de processos, bem como uma interface muito mais ampla para configuração pessoal - abrangendo todos os aspectos de sua operação. E enquanto top é referido ao longo deste documento, você está livre para nomear o programa que você deseja. Esse novo nome, possivelmente um alias, será refletido na exibição do topo e usado ao ler e gravar um arquivo de configuração.

Exemplo: [user1@foo]$ top -u user1 (este comando mostra todos os processos pertencentes ao user1 em tempo real no terminal.)

---

| U |
uname - Imprime certas informações do sistema, tais como: kernel atualmente em execução, hostname, etcetera.

Exemplo: user1 @ foo] $ uname -a (esse comando imprime informações sobre o kernel em execução no momento, além de outras informações.)

useradd - Quando chamado sem a opção -D, o comando useradd cria uma nova conta de usuário usando os valores especificados na linha de comandos e os valores padrão do sistema. Dependendo das opções de linha de comando, o comando useradd atualizará os arquivos do sistema e também poderá criar o diretório pessoal do novo usuário e copiar os arquivos iniciais. A versão fornecida com o Red Hat Linux criará um grupo para cada usuário adicionado ao sistema por padrão.
exemplo: [root@foo] # useradd -d -g 500 newuser (este comando adiciona um novo usuário ao sistema com um diretório home de /home/newuser e um id de grupo de 500. Alternativamente, você também pode usar somehing como 'ftp 'em vez de' 500 'para especificar em qual grupo você deseja adicionar o novo usuário. veja também: man adduser e userdel/deluser.)

usermod – Modify a user account.

Examplo: [user1@foo]$ usermod -a -G sshusers user1 (this command adds user1 to the group sshusers.)

---

| V |
vi - vi é, simplesmente, um editor de texto baseado em terminal de programadores. O vi está em todos os sistemas Unix/Linux que você encontrará e é muito poderoso. Ele pode ser usado para programação de alto nível ou simplesmente para editar um arquivo de texto, salvá-lo e fechá-lo.

Exemplo: [user1@foo] $ vi /var/log/dmesg (este comando exibe o arquivo de texto /var/log/dmesg em uma janela de terminal e o apresenta para edição ou leitura).

---

| W |
wall - Este comando permite que root ou outros usuários possam emitir comandos como root para enviar uma mensagem para o terminal everyones.
exemplo: [user1@foo] $ wall como está todo mundo hoje? (esse comando imprime a mensagem "como estão todos os dias hoje?" para o terminal.)

wc - O comando wc imprime contagens de nova linha, palavra e byte para cada arquivo, e uma linha total se mais de um arquivo for especificado. Sem arquivo, ou quando o arquivo é -, leia a entrada padrão.

Exemplo: user1 @ foo] $ wc -l /var/log/dmesg (este comando exibe o número total de linhas no arquivo de texto /var/log/dmesg).

who - Mostra quem está atualmente conectado ao sistema.

Exemplo: [user1@foo]$ who -last (este comando exibe a saída detalhada dos usuários e processos registrados no sistema).

whois - (pesquise whois.)

---

| X |
xrandr - Xrandr é usado para definir o tamanho da tela, orientação e / ou reflexão. A opção -s é um pequeno índice inteiro usado para especificar a qual tamanho a tela deve ser definida. Para descobrir quais tamanhos estão disponíveis, use a opção -q, que informa os tamanhos disponíveis, a rotação atual e as possíveis rotações e reflexões. O tamanho padrão é o primeiro tamanho especificado na lista. A opção -o é usada para especificar a orientação da tela e pode ser uma das “normais invertidas à esquerda à direita 0 1 2 3”. A opção -x instrui o servidor a refletir a tela no eixo X. A opção -y instrui o servidor a refletir a tela no eixo Y. A reflexão é aplicada após a rotação. A opção -help imprime um resumo de uso. A opção –verbose informa o que o xrandr está fazendo, seleciona eventos e informa quando os eventos são recebidos para ativar a depuração.

Exemplo: [user1@foo]$ xrandr --verbose (este comando mostra a reflexão atual, rotação e outras informações).

xwininfo - Xwininfo é um utilitário para exibir informações sobre janelas.
As informações são exibidas dependendo das opções selecionadas. Se nenhuma opção for escolhida, assume-se o -stats. O usuário tem a opção de selecionar a janela de destino com o mouse (clicando em qualquer botão do mouse na janela desejada) ou especificando ID da janela na linha de comando com a opção -id. Ou, em vez de especificar a janela pelo seu número de identificação, a opção -name pode ser usada para especificar qual janela é desejada pelo nome. Há também uma opção especial -root para obter rapidamente informações sobre o
janela raiz da tela.

Exemplo: [user1@foo]$ xwininfo (este comando exibe a geometria para a janela especificada).

---

| Y |
yum - Yum é um poderoso, interativo e automatizado programa de atualização/consulta/instalação de pacotes que pode ser usado para manter sistemas usando rpm (Redhat Package Manager).

Exemplo: [root@foo]# yum --exclude=kernel* update (este comando comum inicia uma atualização completa do sistema, enquanto diz ao yum para excluir/ignorar quaisquer pacotes do kernel.)

---

| Z |
zip - O Zip é um utilitário de compactação e compactação de arquivos para Unix, VMS, MSDOS, OS / 2, Windows NT, Minix, Atari e Macintosh, Amiga e Acorn RISC OS. É análogo a uma combinação dos comandos do UNIX, tar(1) e compress(1), e é compatível com o PKZIP (o ZIP de Phil Katz para sistemas MSDOS). Um programa complementar (descompactar), descompacta os arquivos zip. Os programas zip e unzip podem trabalhar com arquivos produzidos pelo PKZIP, e o PKZIP e o PKUNZIP podem trabalhar com arquivos produzidos pelo zip. A versão 2.3 do Zip é compatível com o PKZIP 2.04. Note que o PKUNZIP 1.10 não pode extrair arquivos produzidos pelo PKZIP 2.04 ou zip 2.3. Você deve usar o PKUNZIP 2.04g ou descompactar 5.0p1 (ou versões posteriores) para extraí-los.

Exemplo: user1@foo]$ zip -r foo1 foo2 (este comando cria o arquivo foo2.zip, contendo todos os arquivos e diretórios no diretório foo1 que está contido no diretório atual.)

---

Aqui chega ao fim o Guia Pós Instalação CentOS 7 – 2018

Até Breve!

🙂

.

Alguns Comandos Linux Mais Frequentemente Utilizados (Com Exemplos)

--

Alguns Comandos Linux Mais Frequentemente Utilizados (Com Exemplos)

--

Esta não é uma lista abrangente, por qualquer meio, mas isso deve dar-lhe um impulso em alguns dos comandos comuns do Linux. Este artigo é para consulta futura.

--

1. exemplos de comandos tar

- Crie um novo arquivo tar.

tar cvf nome_arquivo.tar nome-dir/

- Extrair de um arquivo tar existente.

tar xvf nome_arquivo.tar

- Ver um arquivo tar existente.

tar tvf nome_arquivo.tar

--

2. exemplos de comando grep

-Procure uma determinada string em um arquivo (busca sensível a maiúsculas e minúsculas).

grep -i "o" nome_arquivo

-Imprima a linha combinada, junto com as 3 linhas depois dela.

grep -A 3 -i "exemplo" nome_arquivo

-Procurar por uma determinada string em todos os arquivos recursivamente

grep -r "nome_arquivo" *

--

3. find exemplos de comando

- Encontrar arquivos usando o nome do arquivo (localizar caso em questão)

find -iname "MeuCPrograma.c"

- Execute comandos nos arquivos encontrados pelo comando find

find -iname "MeuCPrograma.c" -exec md5sum {} \;

- Encontre todos os arquivos vazios no diretório inicial

find ~ -empty

--

4. exemplos de comandos ssh

- Login para o host remoto

ssh -l jsilva remotehost.example.com

- Depurar o cliente ssh

ssh -v -l jsilva remotehost.example.com

- Exibir a versão do cliente ssh

$ ssh -V
OpenSSH_3.9p1, OpenSSL 0.9.7a 19 de fevereiro de 2018

--

5. exemplos de comandos sed

- Quando você copia um arquivo DOS para o Unix, você pode encontrar \r\n no final de cada linha. Este exemplo converte o formato de arquivo DOS em formato de arquivo Unix usando o comando sed.

sed 's/.$//' nome-do-arquivo

- Imprimir o conteúdo do arquivo na ordem inversa

sed -n '1!G;h;$p' nome-arq.txt

- Adicionar número de linha para todas as linhas não vazias em um arquivo

sed '/./=' nome-arq.txt | sed 'N; s/\n//'

--

6. exemplos de comandos do awk

- Remover linhas duplicadas usando o awk

awk '!($ 0 in array) {array[$0]; print}'temp

- Imprimir todas as linhas de /etc/passwd que tenham o mesmo uid e gid

awk -F ':''$3==$4' passwd.txt

- Imprimir apenas um campo específico de um arquivo.

awk '{print $2,$5;}' empregado.txt

--

7. exemplos de comandos diff

- Ignore o espaço em branco ao comparar.

diff -w name_list.txt name_list_new.txt

2c2,3
Joao Z Silva
> Joao Fulano

--

8. sort exemplos de comandos

- Ordenar um arquivo em ordem crescente

sort nome_arquivo.txt

- Ordenar um arquivo em ordem decrescente

sort -r nome_arquivo.txt

- Classifique o arquivo passwd pelo 3º campo.

sort -t: -k 3n /etc/passwd| more

--

9. exemplos de comandos de exportação

- Para visualizar variáveis de ambiente relacionadas ao oracle.

$ export | grep ORACLE
declare -x ORACLE_BASE = "/ u01 / app / oracle"
declare -x ORACLE_HOME = "/ u01 / app / oracle / product / 10.2.0"
declare -x ORACLE_SID = "med"
declare -x ORACLE_TERM = "xterm"

- Para exportar uma variável de ambiente:

$ export ORACLE_HOME = / u01 / app / oracle / product / 10.2.0

--

10. exemplos de comandos xargs

- Copie todas as imagens para um disco rígido externo

ls * .jpg | diretório xargs -n1 -i cp {} / external-hard-drive /

- Pesquise todas as imagens jpg no sistema e arquive-as.

find / -name * .jpg -type f -print | xargs tar -cvzf images.tar.gz

- Baixe todos os URLs mencionados no arquivo url-list.txt

cat url-list.txt | xargs wget –c

--

Até Breve!

🙂

.

Manjaro 17.1.10 – Remover Pacotes Órfãos

2018

-------------------

Mandar um comando para dentro de um arquivo de texto pra eu conferir depois:

sudo pacman -Sargumento >> info-produzida-pelo-comando.txt

-------------------

Para obter informação detalhada de um pacote que eu quero instalar ou remover:

sudo pacman -Si nome-do-pacote

sudo pacman -Si nome-do-pacote >> info-detalhada-do-pacote.txt

-------------------

Para saber o que será/foi modificado:

sudo pacman -Qi nome-do-pacote

sudo pacman -Qi nome-do-pacote >> saida-do-comando1a.txt

sudo pacman -Qii nome-do-pacote

sudo pacman -Qii nome-do-pacote >> saida-do-comando1.txt

-------------------

Buscar um um pacote:

sudo pacman -Ss nome-do-pacote

sudo pacman -Ss nome-do-pacote >> saida-do-comando2.txt

-------------------

Atualizar todo o Manjaro:

sudo pacman -Syyuu

-------------------

Remover pacotes desnecessários:

sudo pacman -Qdt

-------------------

Verificar pacotes instalados manualmente por mim:

sudo pacman -Qe >> saida-do-comando3.txt

-------------------

Se eu quiser ver as dependências de um programa:

sudo pactree nome-do-programa

-------------------

Para listar os pacotes orfãos, executo:

sudo pacman -Qdt

-------------------

Se houver pacotes órfãos vai aparecer uma lista, então a remoção destes pacotes é realizada com o comando abaixo:

sudo pacman -Rns $(pacman -Qqdt)

-------------------

Remover todos menos as 3 últimas versões:

sudo paccache -rvk3

-------------------

Limpar o Cache aumenta espaço livre no disco, mas é melhor usar o comando acima. Usando o comando abaixo perco a possibilidade de downgrade:

sudo pacman -Sc

-------------------

Deixando a atualização do Manjaro mais rápida:

sudo pacman-mirrors -f 5 && sudo pacman -Syy

-------------------

Otimizando a database:

sudo pacman-optimize && sync

-------------------

Instalar um pacote baixado:

sudo pacman -U /package_path/package_name.pkg.tar.xz

-------------------

Posso também usar a URL:

sudo pacman -U http://www.examplepackage/repo/examplepkg.tar.xz

-------------------

Removendo pacotes:

sudo pacman -R nome-do-pacote

-------------------

Removendo pacotes com as dependências:

sudo pacman -Rs nome-do-pacote

-------------------

Listar os pacotes instalados:

sudo pacman -Q

-------------------

Listar os pacotes instalados e mandar para um arquivo de texto:

sudo pacman -Q >> lista-de-pacotes-instalados.txt

-------------------

Listar todos os pacotes do AUR:

sudo pacman -Qem

sudo pacman -Qem >> lista-de-pacotes-instalados-do-AUR.txt

-------------------

Ver dependências de pacotes:

sudo pactree nome-do-pacote

sudo pactree nome-do-pacote >> lista-dependencias-pacote1.txt

sudo pactree -c nome-do-pacote

sudo pactree -c nome-do-pacote >> lista-dependencias-pacote2.txt

sudo pactree -s -c nome-do-pacote

sudo pactree -s -c nome-do-pacote >> lista-dependencias-pacote3.txt

-------------------

Reinstalando o yaourt:

sudo pacman -S base-devel yaourt

yaourt -Syua

yaourt -Syua --devel

yaourt -Qdt

-------------------

Até Breve

🙂

.

Manjaro 17.1.10 – Comandos & Guia Pós-Instalação

Manjaro 17.1.10 Hakoila (XFCE) - COMANDOS E TUTORIAL PÓS-INSTALAÇÃO

-------------------

Utilizando Kernel: x86_64 Linux 4.16.7-1-MANJARO, instalado de modo gráfico com o gerenciador de pacotes do sistema.

-------------------

Este tutorial foi testado em máquina virtual. Funcionou muito bem. Uso por MINHA conta e risco. Continuo sendo um estudante de Linux.

-------------------

Atualmente, é recomendado instalar todos os aplicativos de modo gráfico usando o aplicativo gerenciador de pacotes chamado Pamac. Podemos instalar programas pelo terminal usando o comando pacman, yaourt e packer.

-------------------

Podemos fazer praticamente tudo pelo terminal no Linux, percebo, que funciona usar o comando yaourt e o comando packer (packer está sem atualização desde 2015) para instalar e remover pacotes; mas não são fundamentalmente necessários, pois existe o "Pamac 6.3.1-1" programa gráfico sofisticado para atualizar, adicionar e remover programas no MANJARO 17.1.10 criado por Guillaume Benoit.

-------------------
GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE)
-------------------

Manjaro o que é Pamac?

"Pamac é um pedaço de software que permite a você instalar software no seu computador. Ele pode ser chamado pelo menu do sistema digitando Adicionar/remover programas."

"Pamac 6.3.1-1" programa gráfico sofisticado para atualizar, adicionar e remover programas no MANJARO 17.1.10 criado por Guillaume Benoit.

Software é uma sequência de instruções escritas para serem interpretadas por um computador com o objetivo de executar tarefas específicas. Para fins contábeis e financeiros, o software é considerado um bem de capital.

-------------------

Deste tutorial todos os aplicaticos que usem o comando “pacman -S” ou, “sudo pacman -S (nome-do_programa)” são seguros de instalar via terminal.

-------------------

OBS:
Usuário comum não pode fazer alterações no sistema e USUÁRIO ADMINISTRADOR pode.

-----------------------
GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE)
-----------------------

SE TORNANDO O ADMINISTRADOR:

-------------------

Abra o terminal com o menu do mouse botão direito. Ou abra o terminal pelo menu do sistema. Digite: cd e aperte a tecla Enter.

-------------------

Digite: sudo su , digite sua senha .

-------------------

Estará em modo administrador. Em modo administrador não uso “sudo” NUNCA. O sudo é usado para fazer alterações no sistema. Então tem outros comandos que informam sobre diversas coisas, realizam diversas tarefas e assuntos que não necessitam do sudo. Tenho sempre isto em mente.

-------------------

Neste tutorial caso vejo “# sudo” desconsidero o “#” e execute o comando sem ser administrador.

-------------------

OBS: Recomendam não usar o comando: sudo pacman -Su (este cmd atualiza parcialmente os pacotes e isto é meio que tóxico para nosso belo Manjaro, ok?)

-------------------

O modo administrador é usado para alterações no sistema e com cuidado para não executar comandos inadequados que podem desestabilizar o sistema.

-------------------

O modo não administrador é mais seguro e deve-se usar de preferência apenas o comando pacman. O comando yaourt e packer podem instalar programas perigosos, não verificados. É um risco. O usuário que sabe de o que faz, sabe verificar estes programas antes de instala-los. Talvez estes comandos sejam uteis para verificação de pacotes:

-------------------

Comando que fornece resumo sobre o pacote/programa:

sudo pacman -Si nome_do_pacote

-------------------

Testo estes comandos abaixo e vejo se funcionam e entendo a função deles:

-------------------

1) sudo pacman nome-do-pacote -D

2) pacman nome-do-pacote -Q

3) sudo pacman nome-do-pacote -S

4) pacman nome-do-pacote -F

5) sudo pacman nome-do-pacote -V

-------------------

Não vejo motivo para preocupação pois, os programas oficiais do MANJARO todos podem ser instalados usando “sudo pacman -S” a atualização completa do sistema pode ser feita usando “sudo pacman -Syyu”.

.

É bom para quem quer aprender, usar todos os comando deste tutorial, mas em uma máquina destinada a estudo, ou, em uma máquina virtual.

.

Não deve-se estudar os comandos e testar softwares não pertencentes ao repositório oficial na máquina que usa-se para trabalhar.

.

GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE)

.

Atualize todo o sistema. Primeiro passo é obrigatório. Não faça nada sem antes atualizar e reiniciar o sistema. Estes são tempos perigosos...

.

EXECUTANDO COMANDOS COMO ADMINISTRADOR:

.

Abro o terminal pelo menu do sistema. Executo:

.

1) sudo su

2) pacman -Syyuu

.

Sem ser administrador:

.

sudo pacman -Syyuu (Aperto enter e digito minha senha)

.

Depois sugiro que execute o comando abaixo:

.

1) sudo pacman -S yaourt ; sudo pacman -Sy ; sudo pacman -S packer ; sudo pacman -Syu ; sudo pacman -Syy ; sudo pacman -Syyuu ; yaourt -Syyuua

.

2) sudo sh -c 'packer -Syyuu ; pacman -Sy ; pacman -Syu ; pacman -Syy ; pacman -Syyuu ; update-grub' ; yaourt -Syyuua

.

Execute reboot do sistema com o comando abaixo e volte a este tutorial:

.

sudo shutdown -r now

.

Aperte enter

.

OBS:
“EDITORES DE TEXTO SERVEM NÃO APENAS PARA ESCREVER MENSAGENS, RESUMOS, HISTÓRIAS. SERVEM TAMBÉM PARA COMPILAR ASSIM COMO, ESCREVER PROGRAMAS.”

.

GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE)

.

Instalo editores de texto.

.

$ sudo pacman -S leafpad gedit mousepad --noconfirm ; sudo pacman -Sy

.

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 -Qdt ; sudo pacman -Syyuu ; sudo pacman-optimize ; yaourt -Syua -devel ; yaourt -Syyuua ; yaourt -Syu -devel -aur

.

sudo shutdown -r now (Novamente reinicio o sistema)

.

Após o reboot, volto a este tutorial.

.

GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE)

.

Comandos de otimização:

sudo pacman-mirrors -g ; sudo pacman-optimize && sudo sync ; sudo pacman -Sy ; sudo pacman -Syy ; sudo pacman -Su ; sudo pacman -Syyu ; sudo pacman -Syyuu

.

COMANDOS MANJARO - 2018 - GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE)

--------------------

Linhas de comando para atualização e otimização de todo o sistema Manjaro.
Vale a pena aprender isto.

--------------------

OBS:
Ao ser perguntado se quero remover repositórios digito não (n).

--------------------

sudo pacman -Syyuu ; sudo pacman -Sy ; sudo pacman -Su ; sudo pacman -Syy ; sudo pacman-optimize ; sudo pacman -Sc ; exit ; yaourt -Syua --devel ; yaourt -Syyuua ; yaourt -Syyuua ; yaourt -Syu --devel --aur

--------------------

LISTA DESCRITIVA DE COMANDOS:

--------------------

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.conf
---
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 --nonconfirm = 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

--------------------

GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE) - COMANDOS DO PACMAN PARA ATUALIZAR O SISTEMA

--------------------

Abaixo segue a lista de comandos para atualizar o Manjaro Linux usando a linha de comando.

--------------------

Sincronizar repositório
sudo pacman -Sy

Procurar por atualização dos pacotes
sudo pacman -Su

Sincronizar os repositórios e procurar por atualizações
sudo pacman -Syu

Sincroniza os repositórios totalmente
sudo pacman -Syy

Sincroniza os repositórios totalmente e atualiza o Manjaro
sudo pacman -Syyu

--------------------

Porém a equipe de desenvolvedores do Manjaro Linux recomenda que ao atualizar o sistema, o usuário utilize o comando abaixo. Sincroniza os repositórios totalmente, atualiza o Manjaro e fixa a base de dados:

sudo pacman -Syyuu

--------------------

GUIA PÒS-INSTALAÇÂO MANJARO - 17.1.10 Hakoila (XFCE)

--------------------

COMANDOS DO PACMAN PARA PROCURAR PACOTE:

1) As sintaxes abaixo são úteis para buscar pacotes no repositório oficial do Manjaro Linux.

2) O comando de busca aceita variável absoluta, como um nome de um determinado pacote.

3) É possível procurar vários pacotes usando uma variável de categoria, permitindo buscas por termos como: www, browser, file manager, privacy. Para realizar uma busca por categoria os termos utilizados devem ser feitas em inglês.

4) A busca pode ser realizada usando termos relativos a um determinado grupo de pacotes como: gnome, kde, qt, openrc.

--------------------

Procurar pacote, termo ou grupo

1) pacman -Ss $pacote | $termo | $grupo

--------------------

Exemplificando:

1) busca por termo absoluto

pacman -Ss firefox

2) busca por categoria

pacman -Ss browser

3) busca por grupo

pacman -Ss gnome

--------------------
Manjaro Linux - Manjaro Linux - Manjaro Linux - Manjaro Linux
--------------------

COMANDOS DO PACMAN PARA BAIXAR PACOTE

O uso desse comando não é comum, mas podemos enfrentar alguma situação onde precisamos apenas baixar um pacote, é útil quando queremos fazer uma checagem em um determinado pacote para verificar localmente a sua integridade.

--------------------

Baixar pacote:

1) sudo pacman -Sw $pacote

--------------------

Comandos do pacman para instalar pacote

--------------------

OS COMANDOS DO PACMAN MAIS USADOS PARA INSTALAR PACOTES NO MANJARO LINUX SÃO OS TRÊS A SEGUIR

--------------------

Instalar um pacote do repositório oficial e resolver todas as suas dependências:

sudo pacman -S nome-do-pacote

--------------------

Instalar um pacote do repositório oficial ignorando suas dependências

sudo pacman -Sdd nome-do-pacote

--------------------

Instalar pacote do repositório de terceiros ou compilado localmente
sudo pacman -U $pacote.pkg.tar.xz

--------------------

Exemplificando:

INSTALANDO O FIREFOX COM TODAS AS SUAS DEPENDÊNCIAS

sudo pacman -S firefox

--------------------

Instalando o Firefox ignorando as suas dependências (muitos programas podem não funcionar por falta de suas dependências, portanto esse comando só deve ser usado por usuários experientes)

sudo pacman -Sdd firefox

--------------------

Instalando um pacote localmente (O terminal precisa está aberto na mesma localização do pacote)

sudo pacman -U yad-0.32.0-1-x86_64.pkg.tar.xz

--------------------

Instalando um pacote de repositório de terceiros (no exemplo instalo o Iceweasel do repositório do Parabola GNU/Linux)

sudo pacman -U https://www.parabola.nu/packages/libre/x86_64/iceweasel/download/

--------------------

Wiki ArchLinux escreveu:

"O gerenciador de pacote pacman é uma das grandes vantagens do Arch Linux. Combina um simples pacote no formato binário, com um fácil uso de sistema de compilação. A meta do pacman é tornar o mais fácil possivel gerenciar pacotes, sejam eles dos oficiais repositórios Arch ou das próprias compilações do usuário."

"Pacman mantém o sistema atualizado, listas de pacotes de sincronização com o servidor mestre."

"Este modelo servidor/cliente também permite o usuário baixar/instalar pacotes com um simples comando, completo com todas as dependências requeridas."

"Pacman é escrito na linguagem de programação C e usa o formato de pacote .pkg.tar.xz."

--------------------

Abaixo estão alguns comandos considerados significativos para serem usados no Manjaro ou distro baseadas no ArchLinux.

--------------------
Manjaro Linux - Manjaro Linux - Manjaro Linux - Manjaro Linux
--------------------

1. Atualizar o sistema

sudo pacman -Syyuu

2. Otimizar os espelhos

sudo pacman-mirrors -g
sudo pacman -Syy

3. Otimizar a base de dados

sudo pacman-optimize

4. Limpar o cache Limpe de pacotes que não estão instalados (/var/cache/pacman/pkg):

paccache -d
paccache -Sc
sudo pacman -Sc

5. Pesquisar por pacotes

pacman -Ss nome-do-pacote

6. Informar sobre pacotes

pacman -Si nome-do-pacote

7. Instalar pacotes

sudo pacman -S nome-do-pacote

8. Detalhar pacotes instalados

pacman -Qi nome-do-pacote

9. Remover pacotes

sudo pacman -R nome-do-pacote

10. Remover pacotes + dependências

sudo pacman -Rsn nome-do-pacote

11. Listar pacotes orfãos

pacman -Qqdt

12. Remover pacotes orfãos

sudo pacman -Rns nome-do-pacote

sudo pacman -Rns $(pacman -Qqdt)

13. Listar pacotes por endereço localmente

pacman -Ql nome-do-pacote

14. Listar pacotes por árvore de dependência

pactree nome-do-pacote

15. Listar pacotes instalados dos repos oficiais

pacman -Qen

16. Listar os pacotes (e suas dependências) instalados explicitamente com pacman ou yaourt, que ainda estejam em seu sistema.

pacman -Qet

17. Corrigir erro db.lck

sudo rm -f /var/lib/pacman/db.lck && sudo pacman-mirrors -g && sudo pacman -Syy

18. Atualizar o repo AUR

yaourt -Syyuua

19. Pesquisar no repo AUR

yaourt -Ss nome-do-pacote

20. Instalar pacotes do repo AUR

yaourt -S nome-do-pacote

21. Remover pacotes do repo AUR

yaourt -R nome-do-pacote

22. Remover pacotes + dependências do repo AUR

yaourt -Rsn nome-do-pacote

23. Listar pacotes instalados do repo AUR

pacman -Qem

----------------

INSTALANDO NO MANJARO, PACOTES/PROGRAMAS USANDO:

1) sudo pacman -S nomes_dos_pacotes_separados_por_espaço

2) sudo pacman -S vlc smplayer libreoffice firefox uget deluge calibre gimp pinta pix thunderbird filezilla hexchat nexuiz xboard dreamchess

.

Manjaro, como instalar programas sem ter que ficar confirmando o tempo todo?

.

O noconfirm tem dois tracinhos que o precede. Dois tracinhos. Tracinhos igual a:

sudo pacman nome-do-programa --noconfirm

----------------

Agora instalo alguns programas que gosto, alguns quero conhecer e outros preciso mesmo.

----------------

Programas de escritório, gráficos, internet, áudio e vídeo:

1) sudo pacman -S vlc --noconfirm

2) sudo pacman -S smplayer --noconfirm

3) sudo pacman -S rhythmbox --noconfirm

4) sudo pacman -Syu aegisub audacious audacity avidemux cheese pavucontrol deadbeef drumstick easytag quodlibet gaupol handbrake kamoso qmmp simplescreenrecorder caprine chromium deluge eolie falkon firefox rssguard-nowebengine telegram-desktop youtube-dl tor aria2 uget atril bookworm calibre fbreader freemind okular qpdfview sigil drumstick gcompris-qt buoh catfish clamtk conky-manager scribes terminator keepass l3afpad seahorse vim darktable filezilla firefox gimp smplayer inkscape isomaster qbittorrent sound-juicer tomahawk uget vlc firejail gufw firewalld rhythmbox

5) Para colocar aplicativos na sandbox firejail:

sudo pacman -Syu ; 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 optimize ; sudo pacman -Syyuu

----------------

Postei ano passado um guia pós instalação do Manjaro:

https://semanickz.wordpress.com/2017/07/01/manjaro-linux-guia-pos-instalacao-2017/

----------------

Fonte que me ajudou bastante neste artigo: Manjaro Brasil

----------------

Até Breve!

🙂

.

Linux – script educado que informa hora

.

#!/bin/bash

# Nome do Script: 6Educado_Horario.sh
# Descrição:
# Execução: sh 6Educado_Horario.sh
# Autor: Fulano de Tal
# Data da Criação: DD/MM/YYYY
# Email: meu_mail@email.com
# Histórico de modificações:
# Comentário:

# COMENTÁRIOS ESPECIAIS:

# TODO - indica uma tarefa a ser feita
# FIXME - indica um bug conhecido que precisa ser arrumado
# XXX - Notícia, chama a atenção

HORA=$(date +%H)

#HORA=$1 # Variável para teste, modo de desenvolvimento.

MIN=$(date +%M)

# Considero que das 00:00 às 06:00 é noite

# Case para definir período bom dia, b. tarde e b. noite

echo
case $HORA in

0[6-9] | 1[01])
echo
echo "Bom Dia!"
;;

1[2-7])
echo
echo "Boa Tarde!"
;;

*)
echo "Boa Noite!"
;;
esac

# If que reduz a hora e define AMPM

if [ $HORA -ge 12 ]
then

AMPM=PM

if [ $HORA -ne 12 ]
then

HORA=$(expr $HORA - 12)
fi

else

AMPM=AM
fi

echo "A hora atual é: $HORA:$MIN $AMPM"
echo

.

Até Breve!

Linux – File GlobbinG x REGEX

Linux - File Globbing x REGEX

.

REGEX = Regular Expression (expressão regular)

.

File Globbing = Uma forma que o bash (shell) tem de selecionar arquivos de diretórios na interface. Usa caracteres especiais, o asterisco, as chaves, colchetes, interrogação para ajudar o usuário a selecionar os arquivos e diretórios que desejar.

.

O REGEX vai usar o mesmos caracteres mas se forma diferente, com intenção diferente. A intenção é selecionar um "PADRÃO DE TEXTO".

.

FILE GLOBBING = SELECIONAR OS ARQUIVOS E DIRETÓRIOS

.

REGEX = SELECIONAR UM "PADRÃO DE TEXTO" DESEJADO

.

EXEMPLO FILE GLOBBING (Executo):

.

0)

mkdir -v test ; cd test/ ; touch NOME-DO-ARQ.txt nome-do-arquivo1.txt nome-do-arquivo2.txt NOME-DO-ARQUIVO1.txt NOME-DO-ARQUIVO2.txt Arquivo11.txt Arquivo12.txt ARQUIVO11.txt ARQUIVO12.txt arquivo1.txt arquivo2.txt arquivo3.txt arquivo4.txt arquivo5.txt Arquivo5.txt Arquivo1.txt Arquivo4.txt Arquivo3.txt Arquivo10.txt Arquivo9.txt Arquivo11.txt

1)

ls nome-do-arquivo*

2)

ls -l NOME-DO-ARQUIVO*

3)

ls -lit nome-do-arquivo1*

4)

ls -latr Arquivo[12345].txt

5)

ls -la arquivo[1-5].txt

6)

ls -l Arquivo* [Aa][12]

7)

ls -la Arquivo *[12]

8)

ls -la {Arquivo,arquivo}[12].txt

9)

ls -l *11.txt

10)

ls -l {Arquivo,ARQUIVO}11.txt

11)

ls -l {Arquivo,ARQUIVO}3.txt

12)

ls -l Arquivo1*

13)

ls -l Arquivo1?

14)

ls -l Arquivo?.txt

15)

ls -l Arquivo??.txt

.

EXEMPLO Expressão Regular (Executo):

Expressões regulares são criadas a partir de metacaracteres. Sendo eles:

--------------------

\ . * + - { } [ ] ^ $ | ? ( ) : ! = \b | \1

--------------------

Metacaracteres podem, dependendo do caso, ter mais de um significado de acordo com o contexto.

--------------------

Aspa " não é metacaractere.

--------------------

Para criar comandos usando expressões regulares, posso usar um arquivo de texto. O arquivo de texto serve para eu aprender a criar comandos usando expressões regulares. Posso criar comandos usando expressões regulares imaginando também.

--------------------

Se eu quero criar comandos usando expressões regulares preciso usar metacaracteres.

--------------------

Lista de metacaracteres para eu consultar:

--------------------
. ponto
[] lista
[^] lista negada
? opcional
* asterisco
+ mais
{} chaves
^ circunflexo
$ cifrão
\b borda
\ escape
| ou
() grupo
\1 retrovisor
--------------------

Os metacaracteres e suas funções estão divididos em quatro grupos distintos:

--------------------

1) Representantes
2) Quantificadores
3) Âncoras
4) Outros

--------------------
--------------------

1) Representantes

--------------------
--------------------

.

(ponto - um caractere qualquer)

Ex.:

cd

pwd

ls .

ls -li | grep ".ocumentos"

ls -li | grep ".odelos"

ls -li | grep "."

--------------------

[...]

(lista - lista de caracteres permitidos)

Ex.:

ls | grep [D]

(ls liste o que tiver D maiúsculo)

ls -t | grep [D-I]

--------------------

[^...]

(lista negada - lista de caracteres proibidos)

ls | grep [^D]

ls -t | grep [^D-I]

--------------------
--------------------

2) Quantificadores

--------------------
--------------------

?

(opcional - zero ou um)

Ex.:

ls -li | grep [M?]

ls -li | grep [D?]

--------------------

*

(asterisco - zero, um ou mais)

Ex.:

ls -li | grep [M*]

ls -li | grep [V*]

ls | grep -F '*.' *

--------------------

+

(mais - um ou mais)

Ex.:

ls -li | grep [M+]

ls -li | grep [V+]

--------------------

{n,m}

(chaves - de n até m)

ls -t | grep {D,}

ls -t | grep {M,}

--------------------
--------------------

3) Âncoras

--------------------
--------------------

^

(circunflexo - início da linha)

Ex.:

ls -t | grep {^D,}

--------------------

$

(cifrão - fim da linha)

Ex.:

ls -t | grep "$o"

--------------------

\b

(borda - início ou fim de palavra)

Ex.:

ls -li | grep [\bs]

ls -li | grep [\bV+]

--------------------

4) Outros

\c

(escape - torna literal o caractere c)

ls -li | grep [\c,M+]

ls -li | grep [\cV+]

--------------------

(...)

(ou - ou um ou outro)

ls -li | grep ...

ls -li | egrep 'Downloads|Modelos'

(ls liste exibindo ou Downloads ou Modelos)

--------------------

\1...\9

(retrovisor - texto casado nos grupos 1...9)

ls -li | grep \1...\9

--------------------

OBS:
Curingas usados em linha de comando, não são expressões regulares.

--------------------

Creio que a expressão regular abaixo é para validação de e-mails:

^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

--------------------

Regex ------- Referências

[abc] ------- Um único caractere: a, b, OU c

[^abc] ------- Qualquer caractere exeto/menos: a, b, OU c

[a-z] ------- Qualquer caractere de a até z

[a-zA-Z] ------- Qualquer caractere de a-z OU A-Z

^ ------- Começo da linha

$ ------- Fim da linha

\A ------- Começo da string

\z ------- Fim da string

. ------- Qualquer caractere

\s ------- Qualquer espaço em branco

\S ------- Qualquer espaço não em branco

\d ------- Qualquer digito

\D ------- Qualquer não digito

\w ------- Qualquer palavra (letra, numero, underscore)

\W ------- Qualquer caractere que não seja palavra

\b ------- Borda

(...) ------- Captura o que estiver dentro. Pode conter outros grupos

(a|b) ------- a OU b

a? ------- Zero ou um a

a* ------- Zero ou mais a

a+ ------- Um ou mais a

a{3} ------- Exatamente 3 a

a{3,} ------- 3 ou mais a

a{3,6} ------- Ente 3 a 6 a

--------------------

Quem constrói uma casa com tijolos gratúitos e depois ganha dinheiro para si próprio de maneira ambiciosa e egoísta, é boa gente?

--------------------

Executo:

read -p "Informe um valor que será inserido em VAR1: " VAR1

read -p "Informe um valor que será inserido em VAR2: " VAR2

--------------------

OBS:
# $(expr $VAR1 + $VAR2) É uma substituição de comando que executa e joga o resultado na tela.

--------------------

Executo:

echo "A soma de $VAR1 + $VAR2 é $(expr $VAR1 + $VAR2)"

--------------------

Exemplos de scripts a serem executados:

--------------------

#!/bin/bash

# Nome do Script: 3Script-relatorio-da-maquina.sh
# Descrição:
# Execução: sh 3Script-relatorio-da-maquina.sh
# Autor: Fulano de Tal
# Data da Criação: DD/MM/YYYY
# Email: meu_mail@email.com
# Histórico de modificações:
# Comentário:

# COMENTÁRIOS ESPECIAIS:

# TODO - indica uma tarefa a ser feita
# FIXME - indica um bug conhecido que precisa ser arrumado
# XXX - Notícia, chama a atenção
#
# Primeiro definir as variáveis
# 8 Variáveis

KERNEL=$(uname -r)

HOSTNAME=$(hostname)

CPUNO=$(cat /proc/cpuinfo | grep "model name" | wc -l)

CPUMODEL=$(cat /proc/cpuinfo | grep "model name" |
head -n1 | cut -c14-)

# Acima cat /proc/cpuinfo mostra um monte de informação. Só quero uma linha de
# informação.
# Filtro usando pipe grep e o que tem no início da string "model name".
# Ainda aparecem 4 strings.
# Uso mais um pipe e o comando head -n1 aparece só uma
# linha. Mas...
# Uma parte desta única string não quero que apareça.
# Uso pipe e o comando cut -c14- para sumir com 14
# caracteres iniciais da
# string.

MEMTOTAL=$(free -h | grep 'Mem:' | cut -d: -f2)

MEMTOTAL2=$(expr $(cat /proc/meminfo | grep MemTotal | tr -d ' ' | cut -d: -f2 | tr -d kB) / 1024)

FILESYS=$(df -h | egrep -v '(tmpfs | udev)')

UPTIME=$(uptime -s)

# Noto que algumas variáveis são bem conhecidas
# mas outras são comandos criados a partir de
# expressões regulares.

# Para fazer um shell script funcionar criamos
# comandos via expressões regulares, colocamos
# eles dentro de variáveis. A variável só aceita
# um valor! Uma expressão regular é um só valor
# composto de quantos comandos a pessoa quiser.

# Este é o segredo da necessidade de aprender
# expressões regulares. Aprenda muito bem, para
# poder criar ótimos shell scripts.

clear
echo
echo '=============================='
echo "Relatório da Máquina: $HOSTNAME"
echo "Data/Hora: $(date)"
echo '=============================='
echo
echo "Ativa desde: $UPTIME"
echo
echo "Kernel: $KERNEL"
echo
echo "CPUs:"
echo "$CPUNO"
echo
echo "Modelo da(s) CPU(s): $CPUMODEL"
echo
echo "Memória Total: $MEMTOTAL"
echo
echo "$MEMTOTAL2"
echo
echo "Partições:"
echo
echo "$FILESYS"
echo
echo
echo 'Fim do Script'
echo
echo
# Fim do Script

-----------------

Aperto a tecla Esc digito :wq

-----------------

Executo:

-----------------

sh 3Script-relatorio-da-maquina.sh

-----------------

OUTRO SHELL SCRIPT ESCRITO DIFERENTE MAS SOBRE O MESMO ASSUNTO:

-----------------

#!/bin/bash

# Nome do Script: RelatInfo.sh
# Descrição: Script que gera um relatório de algumas informações da máquina atual
# Execução: ./RelatInfo.sh
# Autor: Fulana de Tal
# Data da Criação: DD/MM/YYYY
# Email: meu_mail1@mail.com
# Histórico de modificações:
# Comentário:
# COMENTÁRIOS ESPECIAIS:
# TODO - indica uma tarefa a ser feita - Info Sist
# FIXME - indica um bug conhecido que precisa ser arrumado - strings duplicadas, uso de variáveis
# XXX - Notícia, chama a atenção. Para remover linhas duplicadas em uma expressão regular:
# Procuro por: find and remove duplicate strings via unix shell script
# awk '!_[$1]++' nome_do_arquivo.txt (a expressão _[$1]++ incrementa o valor do elemento de array com index $1 por um desde que ++ venha depois)

echo ""
echo "== Relatório de Informações da Máquina =="
echo ""
echo 'Dia:'
date
echo ""
echo 'Nome da Máquina:'
hostname
echo ""
echo 'Máquina Ativa desde:'
uptime -s
echo ""
echo
echo 'Versão Distro:'
cat /proc/version
echo
echo 'Usuario:'
whoami
echo
echo 'Versão do Kernel:'
uname -r
echo ""
lscpu | grep 'CPU(s):'
echo ""
lscpu | grep 'Nome do modelo:'
echo ""
echo 'Partições:'
df -kh
echo ""
lscpu | grep 'Arquitetura:'
echo ""
lscpu | grep 'Modo(s) operacional da CPU:'
echo ""
echo 'Relatório de BUGS (nCPUs):' ; cat /proc/cpuinfo | grep 'bugs' | awk '!_[$1]++'
echo ""
echo 'Identidade do vendedor:'
cat /proc/cpuinfo | grep 'vendor_id' | head -n1 | cut -c12-
echo ""
echo 'Memória total (MB):'
expr $(cat /proc/meminfo | grep MemTotal | tr -d ' ' | cut -d: -f2 | tr -d kB) / 1024
echo
echo 'Fim do Script'
echo ""
# Fim do Script

--------------------------

Linux – aprenda a usar o comando case

Linux - aprenda a usar o comando case

.

Creio que o comando “case” (instrução condicional case) é usado para executar um bloco de código de acordo com o valor de uma variável.

O comando “case” me chama a atenção pois, pode definir diversas opções diferentes sem usar uma estrutura com diversos comandos “if”, “elif” e “else”.

Então devo tentar aprender o uso da instrução case.

Quais serão os: conceitos, sintaxe e prática do case?

---------------

Case é para quando tenho um valor (variável) e vários padrões possíveis para este valor ou vários valores possíveis para uma variável.

Usa-se o case para evitar ficar usando muito o if, else, elif.

O padrão pode ser uma string (corda), número, expressão regular

---------------

Depois do case vem uma variável e depois a palavra in, então vem o padrão. Atendendo o padrão, pode ser realizado uma série de comandos e depois dos comandos fecha com ;; finalizando cada padrão. No final de tudo mesmo, usa-se o asterisco (é como se fosse um else) que é executado se nenhum dos padrões definidos foram encontrados. O fechamento do case é esac (case ao contrário)

---------------

A estrutura do comando case no shell script, serve como se fosse um selector onde eu escolho qual opção desejo para prosseguir.

Digo que estou em um lugar que pede pra fazer certas escolhas. Opção 1 , opção 2 , opção 3...

Cada uma dessas opções irá me levar a um outro lugar ou executa uma determinada ação.

O case é assim. Cria uma lista de opções e eu escolho a opção desejada.

---------------

EXEMPLO:

---------------

case $VARIAVEL in
padrão1)
comandos
;;
padrão2)
comandos
;;
*)
comandos
;;
esac

---------------

USA-SE MUITO O CASE PARA FAZER MENÚ.

---------------

EXEMPLO:

---------------

case $opcao in
1)
echo "Opção Incluir"
;;
2)
echo "Opção Remover"
;;
*)
echo "Opção Inexistente"
;;
esac

---------------

Case - usando expressão regular

---------------

case $caractere in
[0-9])
echo "O caractere informado é um número"
;;
[A-Z])
echo "O caractere informado é uma letra maiúscula"
;;
[a-z])
echo "O caractere informado é uma letra minúscula"
;;
esac

---------------

Executo:

---------------

mkdir -vp caseDIR/subCASE

cd caseDIR/subCASE

touch CasE_scr.sh

chmod +x CasE_scr.sh

pwd

ls -lih

vi CasE_scr.sh

(Aperto Esc, digito i, copio e colo o texto abaixo com o mouse no vi.)

#!/bin/bash

case "$1" in #Uso o parâmetro cifrão 1
[0-9]) #Se for de 0 a 9
echo "O parâmetro é um número"
;;
[A-Z]) #Se for de A a Z
echo "O parâmetro é uma letra maiúscula"
;;
[a-z]) #Se for de a A z
echo "O parâmetro é uma letra minúscula"
;;
*) #Se não for nenhum dos parâmtros acima...
echo "O parâmetro é um caractere especial"
esac

---------------

(Aperto Esc, seguro Shift e digito ZZ)

---------------

Executo:

./CasE_scr.sh

sh CasE_scr.sh A

source CasE_scr.sh a

bash CasE_scr.sh 3

sh CasE_scr.sh @

.

Até Breve

🙂

.

Linux aprenda a usar if, then, else e fi

-----------------------

Linux - Aprenda a usar if, then, else e fi

-----------------------

No GNU/Linux "instruções condicionais" são instruções utilizadas para a "execução condicional" de comandos.

GNU/Linux - Instruções condicionais: Instruções usadas em shell script para executar uma serie de comandos com base em uma condição.

ENTÃO:

Se acontece ISTO uma série de comandos é executada. Se não acontece ISTO, uma OUTRA série de comandos é executada.

Caso aconteça ISTO uma série de comandos é executada. Caso não aconteça ISTO, outra série de comandos é executada.

-----------------------

No shell script para fazer "ISTO", usa-se:

1) if
2) case

-----------------------

Primeira sintaxe - if:

-----------------------

if #começa com "if" mais um "comando-condição" e se for verdadeiro...

then #Então
comando1 #Execute este comando ou esta lista de comandos.
comando2
comando3

fi #Fecha a instrução condicional usando o if ao contrário

-----------------------

Segunda sintaxe - if:

if #Se isto for verdadeiro

then # Então
comando1 #Verdadeiro este comando é executado

else # Se não...
comando2 #Este outro comando é executado

fi #Fecha a instrução condicional o if ao contrário

-----------------------

Terceira sintaxe - if:

-----------------------

Exemplo1:

-----------------------

if #Se isto for verdadeiro
then # Então
comando1 #Execute este comando ou lista de comandos

elif #elif = else if, se não, se acontecer isto...
then #Então
comando2 #Execute este outro comando

else #Se não for verdadeiro...
comando3 #Execute então este outro comando
fi

-----------------------

Exemplo2:

-----------------------

A terceira sintaxe é ou já foi usada dentro dos scripts de inicialização do GNU/Linux. A forma comum acho que é (era):

-----------------------

if [ condição ];
then
comando-instrução1;
comando-instrução2;
comando-instrução3;

...
elif [ condição ];
comando-instrução4;
comando-instrução5;
comando-instrução6;

...
else
comando-instrução7;
comando-instrução8;
comando-instrução9;

...
fi.

-----------------------

Exemplo3:

-----------------------

if [ condição ];

then

comando-instrução1

elif [ condição ];

then

comando-instrução1

else

comando-instrução2

fi

-----------------------

OBS:
O if do shell script tem um comando e verifica se o comando foi executado com sucesso ele cai como verdadeiro tendo código de retorno zero. Se for falso (maior que zero), cai no else ou sai do if.

-----------------------

Tem um comando que faz uma condição. O comando test. O comando test é usado para criar uma condição. A sintaxe é:

test

-----------------------

O comando test tem várias expressões. As mais usadas são do um ao 6.

-----------------------

-eq (equal), -ne (not equal), -gt (greater than), -ge (greater equal), -lt (lower than), -le (lower equal)

-----------------------

1) -eq - é igual a - if [ "$a" -eq "$b" ]

2) -ne - é diferente - if [ "$a" -ne "$b" ]

3) -gt - é maior que - if [ "$a" -gt "$b" ]

4) -ge - é maior ou igual que - if [ "$a" -ge "$b" ]

5) -lt - é menos que - if [ "$a" -lt "$b" ]

6) -le - é menos que ou igual que - if [ "$a" -le "$b" ]

7) < - é menos que - (("$a" = - é maior ou igual que - (("$a" >= "$b"))

-----------------------

Strings podem ser comparadas:

1) = (Uma string igual a outra)

2) != (Uma string diferente da outra)

3) -n (String não nula)

4) -Z (String nula)

-----------------------

Arquivos podem ser testados:

1) -f (É um arquivo)

2) -d (É um diretório/pasta)

3) -r (Tem permissão de leitura)

4) -W (Tem permissão de escrita)

5) -X (Tem permissão de execução)

6) -S (Possui tamanho maior que zero)

-----------------------

EXEMPLOS:

-----------------------

test 25 -gt 50

(25 é maior que 50? Não. O código de saída será 1.)

test "$VALOR1" -eq 15

(O valor da variável VALOR1 é igual a 12? Se for o exit code será zero.)

test -f /tmp/testes

(O arquivo tmp/testes existe? Se existir o exit code será zero. Se não existir será 1)

test "$VALOR1" = "$VALOR2"

(A corda da variável VALOR1 é igual a string da variável VALOR2?)

-----------------------

OBS-IMPORTANTE:

EM VEZ DE ESCREVER A PALAVRA TEST USA-SE COLCHETES COM ESPAÇO

-----------------------

EXEMPLOS:

-----------------------

[ 25 -gt 50 ]

(25 é maior que 50? Não. O código de saída será 1.)

[ "$VALOR1" -eq 15 ]

(O valor da variável VALOR1 é igual a 12? Se for o exit code será zero.)

[ -f /tmp/testes ]

(O arquivo tmp/testes existe? Se existir o exit code será zero. Se não existir será 1)

[ "$VALOR1" = "$VALOR2" ]

(A corda da variável VALOR1 é igual a string da variável VALOR2?)

-----------------------

A FORMA MAIS USADA É COM COLCHETES E ESPAÇO.

-----------------------

OUTRO EXEMPLO:

-----------------------

VALOR1=15
if [ ! "$$VALOR1" -gt 12 ]

# (Negação "!" inverte não entra no fluxo)

# (É dado como falso não entra em lugar nenhum.)

then
echo sucesso
fi

-----------------------

MAIS UM EXEMPLO:

-----------------------

VALOR1=15

if [ "$VALOR1" -gt 12 -a "VALOR1" -lt 20 ]

#AND (-a) se tudo separado pelo -a for verdade terá sucesso se não for não entra em lugar nenhum.

then
echo sucesso
fi

-----------------------

EXEMPLO OR:

-----------------------

VALOR1=15

if [ "$VALOR1" -gt 12 -o "VALOR1" -lt 20 ]

#OR (-o) se pelo menos uma situação for verdade terá sucesso. Se as duas forem falsas, não entra em lugar nenhum.

then
echo sucesso
fi

-----------------------

O -a TEM PREFERÊNCIA SOBRE O -o

-----------------------

Linux - aprendendo a usar o comando test:

-----------------------

Comando de retorno usando test (zero "0" é verdadeiro, um "1" é falso)

-----------------------

Abro o terminal pelo menu do sistema e executo:

-----------------------

1)

test 10 -gt 5 (é maior que)
echo $?

[ 10 -gt 5 ]
echo $?

2)

test 15 -eq 12 (é igual a)
echo $?

[ 15 -eq 12 ]
echo $?

3)

test 8 -ne 12 (é diferente)

echo $?

[ 8 -ne 12 ]
echo $?

4)

test 25 -ge 15 (é maior ou igual que)
echo $?

[ 25 -ge 15 ]
echo $?

5)

test 35 -lt 25 (é menos que)

echo $?

[ 35 -lt 25 ]
echo $?

6)

test 8 -le 10 (é menos que ou igual que)

echo $?

[ 8 -le 10 ]
echo $?

7)

VALOR1=101

8)

test $VALOR1 -eq 101

echo $?

[ $VALOR1 -eq 101 ]
echo $?

9)

test $VALOR1 -gt 90
echo $?

[ $VALOR1 -gt 90 ]
echo $?

10)

test $VALOR1 -ne 15
echo $?

[ $VALOR1 -ne 15 ]
echo $?

-----------------------

Executo:

mkdir -vp PastaIF/SubIF

cd PastaIF/SubIF

touch IfExemp.sh

chmod +x IfExemp.sh

ls -li

pwd

vi IfExemp.sh

(Aperto Esc, digito i, copio e colo o texto abaixo no vi com o mouse.)

#!/bin/bash

if grep "$1" /etc/passwd > /dev/null

# uso o parâmetro cifrão 1

then
echo "Este user existe"
else
echo "Este user não existe"
fi

# Fim do script

----------------------

Aperto Esc, digito Shift ZZ

----------------------

Executo:

whoami

./IfExemp.sh meu-usuário-whoami

./IfExemp.sh Jocam

./IfExemp.sh AnaCa

./IfExemp.sh

----------------------

OUTRO EXEMPLO CRIANDO UMA VARIÁVEL:

----------------------

#!/bin/bash

# Declarando variável: USUWARRIO

USUWARRIO=$(grep "$1" /etc/passwd) #OBS: uso o parâmetro cifrão 1

#OBS: test -n é para ver se uma varivel não é nula

if test -n "$USUWARRIO" #OBS: Colocar a variável entre aspa

then #OBS: se a variável não for nula cai no them
echo "Este user existe"
else
echo "Este user não existe"
fi

# Fim do script

----------------------

POSSO USAR O TEST SINTAXE COLCHETES:

----------------------

#!/bin/bash

# Declarando variável: USUWARRIO

USUWARRIO=$(grep "$1" /etc/passwd)

#OBS-1: uso o parâmetro cifrão 1 entre aspas
#OBS-2: test -n é para ver se uma varivel não é nula
#OBS-3: Colocar a variável entre aspa
#OBS-4: se a variável não for nula cai no then

if [ -n "$USUWARRIO" ]
then
echo "Este user existe"
else
echo "Este user não existe"
fi

# Fim do script

----------------------

PARA EXECUTAR O SCRIPT:

----------------------

touch 2IfExemp.sh

chmod +x 2IfExemp.sh

vi 2IfExemp.sh

(Aperto Esc, digito i, copio e colo o texto no vi com o mouse.)

----------------------

Aperto Esc, Seguro a tecla Shift, digito: ZZ

----------------------

Executo:

ls -lit

pwd

whoami

----------------------

Executo:

./2IfExemp.sh meu-usuário-whoami

./2IfExemp.sh JeCam

./2IfExemp.sh UneCo

./2IfExemp.sh root

----------------------

MAIS OUTRO EXEMPLO:

----------------------

#!/bin/bash

# Declarando variável: USUWARRIO

USUWARRIO=$(grep "$1" /etc/passwd)

#OBS-1: uso o parâmetro cifrão 1 entre aspas
#OBS-2: test -n é para ver se uma varivel não é nula
#OBS-3: Colocar a variável entre aspa
#OBS-4: se a variável não for nula cai no then

if [ -n "$USUWARRIO" ]
then
echo "Este user existe"
if [ "$USUWARRIO" = root ]
then
echo ok
fi
else
echo "Este user não existe"
fi

# Fim do script

----------------------

CONTINUANDO COM EXEMPLOS:

----------------------

#!/bin/bash

# Declarando variável: USUWARRIO

USUWARRIO=$(grep "$1" /etc/passwd)

#OBS-1: uso o parâmetro cifrão 1 entre aspas
#OBS-2: test -n é para ver se uma varivel não é nula
#OBS-3: Colocar a variável entre aspa
#OBS-4: se a variável não for nula cai no then
#OBS-5: "if test $# -gt 0" - O cifrão mais cerquilha testa se foi inserido algum parâmetro. Se o parâmetro for maior que zero prossegue.

if test $# -gt 0
then
echo 'Foi inserido um valor maior que zero. Prosseguindo...'
else
echo 'Informe um nome como parâmetro.' ; exit

fi

if [ -n "$USUWARRIO" ]
then
echo "Este user existe"
else
echo "Este user não existe"
fi

# Fim do script

----------------------

PARA EXECUTAR O SCRIPT:

----------------------

touch 3IfExemp.sh

chmod +x 3IfExemp.sh

vi 3IfExemp.sh

(Aperto Esc, digito i, copio e colo o texto no vi com o mouse.)

----------------------

Aperto Esc, Seguro a tecla Shift, digito: ZZ

----------------------

Executo:

ls -lit

pwd

whoami

----------------------

Executo:

----------------------

1) ./3IfExemp.sh

2) ./3IfExemp.sh meu-usuário-whoami

3) ./3IfExemp.sh JeCam

4) ./3IfExemp.sh UneCo

5) ./3IfExemp.sh root

----------------------

UM EXEMPLO PARECIDO, USANDO TEST COLCHETES:

----------------------

#!/bin/bash

# Declarando variável: USUWARRIO

USUWARRIO=$(grep "$1" /etc/passwd)

#OBS-1: uso o parâmetro cifrão 1 entre aspas
#OBS-2: test -n é para ver se uma varivel não é nula
#OBS-3: Colocar a variável entre aspa
#OBS-4: se a variável não for nula cai no then
#OBS-5: "if test $# -gt 0" - O cifrão mais cerquilha testa se foi inserido algum parâmetro. Se o parâmetro for maior que zero prossegue.

if [ $# -gt 0 ]
then
echo 'Foi inserido um valor maior que zero. Prosseguindo...'
else
echo 'Informe um nome como parâmetro e execute novamente o script.'
echo
sleep 2
echo 'Para obter o nome do usuário digite: whoami antes de executar o script.'
sleep 2
echo
exit

fi

if [ -n "$USUWARRIO" ]
then
echo "Este user existe"
else
echo "Este user não existe"
fi

----------------------

Pronto! Nós sabemos usar if, then, else e fi.

----------------------

Até Breve!

🙂

.

Linux – aprendendo a usar o comando test

Linux - aprendendo a usar o comando test:

-----------------------

Comando de retorno usando test (zero "0" é verdadeiro, um "1" é falso)

-----------------------

1) test 10 -gt 5 (é maior que)
echo $?

2) test 15 -eq 12 (é igual a)
echo $?

3) test 8 -ne 12 (é diferente)
echo $?

4) test 25 -ge 15 (é maior ou igual que)
echo $?

5) test 35 -lt 25 (é menos que)
echo $?

6) test 8 -le 10 (é menos que ou igual que)
echo $?

7) VALOR1=101

8) test VALOR1 -eq 101
echo $?

9) test VALOR1 -gt 90
echo $?

10) test VALOR1 -ne 15

-----------------------

Até Breve!

🙂

.

GNU/Linux “instruções condicionais”

.

Linux - Instruções condicionais

.

No GNU/Linux "instruções condicionais" são instruções utilizadas para a "execução condicional" de comandos.

.

GNU/Linux - Instruções condicionais: Instruções usadas em shell script para executar uma serie de comandos com base em uma condição.

.

Se acontece ISTO uma série de comandos é executada. Se não acontece ISTO, uma OUTRA série de comandos é executada.

Caso aconteça ISTO uma série de comandos é executada. Caso não aconteça ISTO, outra série de comandos é executada.

-----------------------

No shell script para fazer "isto", usa-se:

1) if
2) case

-----------------------

Primeira sintaxe - if:

if #começa com "if" mais um "comando-condição" e se for verdadeiro...

then #Então
comando1 #Execute este comando ou esta lista de comandos
comando2
comando3

fi #Fecha a instrução condicional usando o if ao contrário

-----------------------

Segunda sintaxe - if:

if #Se isto for verdadeiro

then # Então
comando1 #Verdadeiro este comando é executado

else # Se não...
comando2 #Este outro comando é executado

fi #Fecha a instrução condicional o if ao contrário

-----------------------

Terceira sintaxe - if:

-----------------------

Exemplo1:

-----------------------

if #Se isto for verdadeiro
then # Então
comando1 #Execute este comando ou lista de comandos

elif #elif = else if, se não, se acontecer isto...
then #Então
comando2 #Execute este outro comando

else #Se não for verdadeiro...
comando3 #Execute então este outro comando
fi

-----------------------

Exemplo2:

-----------------------

A terceira sintaxe é ou já foi usada dentro dos scripts de inicialização do GNU/Linux. A forma comum acho que é (era):

-----------------------

if [ condição ];
then
comando-instrução1;
comando-instrução2;
comando-instrução3;

...
elif [ condição ];
comando-instrução4;
comando-instrução5;
comando-instrução6;

...
else
comando-instrução7;
comando-instrução8;
comando-instrução9;

...
fi.

-----------------------

Exemplo3:

-----------------------

if [ condição ];

then

comando-instrução1

elif [ condição ];

then

comando-instrução1

else

comando-instrução2

fi

-----------------------

OBS:
O if do shell script tem um comando e verifica se o comando foi executado com sucesso ele cai como verdadeiro tendo código de retorno zero. Se for falso (maior que zero), cai no else ou sai do if.

-----------------------

Tem um comando que faz uma condição. O comando test. O comando test é usado para criar uma condição. A sintaxe é:

test

-----------------------

O comando test tem várias expressões. As mais usadas são do um ao 6.

-----------------------

-eq (equal), -ne (not equal), -gt (greater than), -ge (greater equal), -lt (lower than), -le (lower equal)

-----------------------

1) -eq - é igual a - if [ "$a" -eq "$b" ]

2) -ne - é diferente - if [ "$a" -ne "$b" ]

3) -gt - é maior que - if [ "$a" -gt "$b" ]

4) -ge - é maior ou igual que - if [ "$a" -ge "$b" ]

5) -lt - é menos que - if [ "$a" -lt "$b" ]

6) -le - é menos que ou igual que - if [ "$a" -le "$b" ]

7) < - é menos que - (("$a" < "$b"))

8) "$b"))

10) >= - é maior ou igual que - (("$a" >= "$b"))

-----------------------

Strings podem ser comparadas:

1) = (Uma string igual a outra)

2) != (Uma string diferente da outra)

3) -n (String não nula)

4) -Z (String nula)

-----------------------

Arquivos podem ser testados:

1) -f (É um arquivo)

2) -d (É um diretório/pasta)

3) -r (Tem permissão de leitura)

4) -W (Tem permissão de escrita)

5) -X (Tem permissão de execução)

6) -S (Possui tamanho maior que zero)

-----------------------

EXEMPLOS:

# test 25 -gt 50 (25 é maior que 50? Não. O código de saída será 1.)

# test "$VALOR1" -eq 15 (O valor da variável VALOR1 é igual a 12? Se for o exit code será zero.)

# test -f /tmp/testes (O arquivo tmp/testes existe? Se existir o exit code será zero. Se não existir será 1)

# test "$VALOR1" = "$VALOR2" (A corda da variável VALOR1 é igual a string da variável VALOR2?)

-----------------------

OBS-IMPORTANTE:

EM VEZ DE ESCREVER A PALAVRA TEST USA-SE COLCHETES COM ESPAÇO

-----------------------

EXEMPLOS:

[ 25 -gt 50 ] (25 é maior que 50? Não. O código de saída será 1.)

[ "$VALOR1" -eq 15 ] (O valor da variável VALOR1 é igual a 12? Se for o exit code será zero.)

[ -f /tmp/testes ] (O arquivo tmp/testes existe? Se existir o exit code será zero. Se não existir será 1)

[ "$VALOR1" = "$VALOR2" ] (A corda da variável VALOR1 é igual a string da variável VALOR2?)

-----------------------

A FORMA MAIS USADA É COM COLCHETES E ESPAÇO.

-----------------------

OUTRO EXEMPLO:

VALOR1=15
if [ ! "$$VALOR1" -gt 12 ] #Negação (!) inverte não entra no fluxo

#É dado como falso não entra em lugar nenhum.

then
echo sucesso
fi

-----------------------

MAIS UM EXEMPLO:

-----------------------

VALOR1=15

if [ "$VALOR1" -gt 12 -a "VALOR1" -lt 20 ] #AND (-a) se tudo separado pelo -a for verdade terá sucesso se não for não entra em lugar nenhum.

then
echo sucesso
fi

-----------------------

EXEMPLO OR:

VALOR1=15

if [ "$VALOR1" -gt 12 -o "VALOR1" -lt 20 ] #OR (-o) se pelo menos uma situação for verdade terá sucesso. Se as duas forem falsas, não entra em lugar nenhum.

then
echo sucesso
fi

-----------------------

O -a TEM PREFERÊNCIA SOBRE O -o

-----------------------

Linux – Praticando shell script – NomeUserUID.sh

Abro o terminal pelo menu do sistema.

-----------------

Executo:

-----------------

touch 5ScrNomeUserUID.sh

-----------------

chmod +x 5ScrNomeUserUID.sh

-----------------

vi 5ScrNomeUserUID.sh

-----------------

Aperto Esc. Clico no terminal. Digito i.

-----------------

Copio o texto abaixo e colo no vi.

(Para apagar um linha aperto Esc clico nela e digito dd)

-----------------

#!/bin/bash

# Nome do Script: 5ScrNomeUserUID.sh
# Descrição: script recebe um nome de usuário como
# parâmetro e exibe UID do usuário, Nome Completo /
# Descrição do Usuário, Total em Uso no /home do
# usuário, Informações do último login do usuário,
# Validar se o usuário existe ou não sem o uso do if.
# Se não existir retorne o exit code 1, se
# existir retorne exit 0
# Execução: ./5ScrNomeUserUID.sh
# Autor: Fulano de Tal
# Data da Criação: DD/MM/YYYY
# Email: meu_mail@email.com
# Histórico de modificações:
# COMENTÁRIO:
# Comando “du” para descobrir o uso do diretório
# Comando “lastlog” para informações do login
# Dados do usuário no arquivo /etc/passwd
# Para fazer a validação posso usar as opções de
# execução sequencial
# de comandos &&, ou ;

# COMENTÁRIOS ESPECIAIS:

# TODO - indica uma tarefa a ser feita
# FIXME - indica um bug conhecido que precisa ser arrumado
# XXX - Notícia, chama a atenção - Cuidado para não usar dentro do script a variável de ambiente UID

# Declarando variáveis:
DATATUAL=$(date)
NOMEDAMAQUINA=$(cat /etc/hostname)
EUSER=$USER
USERLOGIN=$(w | grep 'tty7')
UIDUSER=$UID
TOTAL=$(du -hcs ~/ | grep 'total')

clear
echo "Data: $DATATUAL"
echo "Relatório do Usuário: $EUSER"
echo
echo "UID do usuário: $UIDUSER"
echo 'Nome ou Descrição:' $USER
echo "Nome da Máquina: $NOMEDAMAQUINA"
echo "Ultimo Login: $USERLOGIN"
echo "Total Usado no ultimo Login: $TOTAL"
echo
# Fim do Script 5ScrNomeUserUID.sh

-----------------

Aperto a tecla Esc digito :wq

-----------------

Executo:

-----------------

sh 5ScrNomeUserUID.sh

-----------------