Muita gente quebra a cabeça tentando configurar um firewall básico para o linux, principalmente depois que o Ubuntu desabilitou o firestarter de seus repositórios, nas distros Ubuntu Like o firewall Netfiter já vem incorporado ao SO, bastando apenas ativa-lo, isso e feito com o iptables adicionando regras uma a uma ou utilizar um script com uma serie de regras predefinidas.
Nos repositórios do Ubuntu temos o Script de firewall UFW.
Para instalar o UFW e só utilizar o apt-get install ufw.
Após a instalação devemos habilitar o firewall para que ele seje inicializado automaticamente ao ligar o PC.
Isso e feito com o procedimento abaixo.
root@edson-net:/home/edson# ufw enable
Firewall está ativo e habilitado na inicialização do sistema
root@edson-net:/home/edson#
Para saber quais regras estão comfiguradas no terminal digite
sudo iptables -L
Pronto seu PC já esta com um ótimo firewall instalado e ativo, e também é possível adicionar novas regras ao firewal com as regras do iptables, podemos restringir serviços fechar e abrir portas.
Para saber mais sobre o Netfilter e o Iptables estude o site.
Site para estudo do Netfilter e Iptables
quinta-feira, 17 de dezembro de 2015
terça-feira, 15 de dezembro de 2015
Teclas de atalho dicas e truques
Dicas e Truques
Teclas de controle e atalhos
Teclas
|
Ação
|
Ctrl + f
|
Move o cursor uma palavra para frente
|
Ctrl + b
|
Move o cursor uma palavra para trás
|
Ctrl + a
|
Para ir ao início da linha de comando
|
Ctrl + e
|
Para ir ao final da linha de comando
|
Ctrl + t
|
Inverte o caractere sob o cursor com o anterior
|
Ctrl + u
|
Limpa a linha de comando corrente
|
Ctrl + y
|
Re-insere o último trecho de comando apagado
|
Ctrl + r
|
Faz uma busca incremental no histórico de comandos utilizados
|
Ctrl + c
|
Termina a execução do comando corrente
|
Ctrl + d
|
Encerra entrada de dados pelo teclado fazendo logout
|
Ctrl + m
|
Equivalente a tecla Enter
|
Ctrl + l
|
Limpa a tela, equivalente ao comando clear
|
Ctrl + s
|
Inibe a exibição de informações na tela de saída
|
Ctrl + q
|
Ativa a exibição de informações na tela de saída, inibida
pelo Ctrl + s
|
Ctrl + z
|
Põe o processo corrente em background (segundo plano)
|
Teclas de emergência do GNU/Linux
Quem é que já não se deparou com um travamento causado por mal-funcionamento de hardware no Linux? Este tópico ensina a usar as teclas de emergência do kernel.
NOTA:
As teclas de emergência do kernel são comandos de baixo nível
pouco conhecidos que podem desempenhar uma função primordial na
vida de usuários Linux.
Desligando o computador
A primeira combinação de emergência é usada para sincronizar os discos e desligar o computador instantaneamente evitando problemas nos sistemas de arquivos. Ela é ideal para quem precisa desligar o computador rapidamente sem danificar seus sistemas de arquivos, ou quando a máquina trava e por qualquer motivo não permite um desligamento natural através do init.
Mantendo ALT pressionado, tecle Print Screen e depois O.Reiniciando o computador
Assim como o Ctrl+Alt+Del do MS-DOS o kernel do Linux também possui uma chamada de emergência que permite reiniciar a máquina, com a vantagem de sincronizar os discos evitando danos no sistema de arquivos. Veja como fazer:
Mantendo ALT pressionado, tecle Print Screen e depois B.Sincronizando os discos
Se você acha que a força vai cair e precisa trabalhar até a ultima hora mas tem medo de danificar seu sistema de arquivo, poderá sincronizar seus discos de tempos em tempos.
Para sincronizar discos em caso de emergência:
Mantendo ALT pressionado, tecle Print Screen e depois S.Segurança
Se por algum motivo algo está ameaçando a segurança do seu sistema, como a execução acidental de um script malicioso como root ou de programa desconhecido, poderá colocar os discos como somente leitura e evitar danos mais sérios.
Mantendo ALT pressionado, tecle Print Screen e depois U.
Otimizando o desempenho do history com navegação contextual
Como sabemos o ambiente shell do GNU/Linux, no caso o bash, mantém no arquivo .bash_history uma lista com o histórico dos últimos comandos digitados. Com isso e o uso das teclas direcionais UP e DOWN nos permitem "navegar" por esta lista, de modo a retornar com um comando já utilizado e que esteja em nosso histórico armazenado.Porém por padrão esta navegação será por toda gama de comando já utilizados, o que por vezes faz com que percamos até mais tempo necessário do que se digitarmos novamente o comando.
Com uma dica simples veremos então como fazer com que esta navegação seja otimizada de forma a permitir uma filtragem no histórico de comandos bastando inserir alguns caracteres do mesmo antes de usarmos as setas de navegação.
Agora as setas farão uma procura por contexto. Se você não digitar nada, o efeito será o mesmo que antes, mas se você digitar um caractere e pressionar a seta, ele só irá mostrar os comandos que comecem com aquele caractere. Portanto com este ajuste, se você digitar "ls" e pressionar a seta ele vai navegar apenas nos comandos que começam com "ls".
Para que isso funcione desta forma primeiramente iremos criar no diretório $HOME do usuário desejado o arquivo oculto de nome .inputrc com o seguinte conteúdo abaixo:
“\e[A”: history-search-backward
“\e[B”: history-search-forwardAgora basta fechar a seção atual e abrir uma nova para que a navegação no histórico dos comandos passe a funcionar desta forma mais otimizada.
Notas:
- Por padrão o Linux armazena no .bash_history
os últimos 500 comandos utilizados, mais este número pode ser
modificado editando o seu arquivo .bashrc e
adicionado as seguintes linhas:
export HISTFILESIZE=XXXX
export HISTSIZE=XXXXOnde, XXXX deve ser substituído pela quantidade desejada.
- Como configuração padrão do sistema como um todo existe o
arquivo /etc/inputrc, ou seja, caso se deseje que
estas novas configurações passem a valer para todos usuários do
sistema basta adicionar aquelas 2 linhas do .inputrc
neste arquivo.
Retirado de : http://wiki.ubuntu-br.org/ComandosBasicos
Como escrever em Russo no LibreOffce Как писать по-русски в LibreOffice
Como escrever em Russo no LibreOffce
Как писать по-русски в LibreOffice
Esta uma questão que tem causado muita dor de cabeça
aos usuários do libreOffice, no entanto a solução e bem mais
simples do que parece ser.
Para quem usa o desktop cinnamon, pasta seguir o
caminho Menu Preferências Configurações do Sistema Teclado
Disposições do Teclado e Adicionar Russo.
Sera
criado um icone no Painel para alternar entre Portugûes e Russo.
E só abrir o Writter e digitar, para criar um
teclado virtual com a disposição em russo é só clicar no icone
Russo
e clicar no icone do teclado abaixo a esquerda, logo abaixo da lista de idiomas.
e clicar no icone do teclado abaixo a esquerda, logo abaixo da lista de idiomas.
sábado, 5 de dezembro de 2015
Iniciar um script no boot do linux. DEBIAN ...
OK Depois que o script foi criado por exemplo rc.firewall.sh. para fazer com que o script seja inicializado durante o boot basta seguir os segintes passos.
Copie o script para o diretório /etc/init.d/:
dentro do diretório onde o script foi criado:
# cp rc.firewall.sh /etc/init.d/
Torne o script executável:
# chmod +x /etc/init.d/rc.firewall.sh
Entre no diretório /etc/rc2.d:
# cd /etc/rc2.d/
Crie um link para o seu script:
Os scripts que iniciam com 'S' passam start como seu argumento, e o '9' e a ordem de execução do script durante o boot, assim; Se você não precisa que o script seja um dos primeiros a iniciar, ou melhor que ele seja iniciado lá no final do boot, você pode colocá-lo como 99.
# ln -s /etc/init.d/script /etc/rc2.d/S9rc.firewall.sh
# ln -s /etc/init.d/script /etc/rc2.d/S99script
Para retirar o script da inicialização, apenas remova o link, assim:
# rm -f /etc/rc2.d/S99script
OBS: Os argumentos K e S devem, obrigatoriamente, estar em Caixa Alta (maiúscula).
quarta-feira, 2 de dezembro de 2015
Gerenciamento de Usuarios Linux.
Gerenciamento de usuários no GNU?LINUX.
Introdução:
Uma das formas de se obter um nivel seguro de acesso ao sistema operacional GNU/Linux é a sua intrinsêca exigência de permissões de cada usuário
Dessa forma e possível restringir ou permitir o acesso e o uso de determinados recursos a um ou mais usuários , se faz necessário que cada um tenha sido devidamente criado no sistema operacional. as permissões podem ser atribuidas modificadas de acordo com as necessidades.
Criar uma conta de usuário no sistema operacional, permite a cada usuário ter seu proprio ambiente de desktop configurado de acordo com suas preferências, alterar nomes de pastas, guardar suas senhas de modo seguro ter privacidade na internet etc... não serve apenas para restringir ou permitir o acesso aos recursos oferecidos, mas também para respeitar o espaço que cada pessoa tem.
E preciso ter previlégios de root parqa gerenciar contas de usuários no GNU/Linux, dessa forma evita-se danos ao sistema operacional, do contrário, a segurança do sistema estaria comprometida, pois qualquer um poderia criar, alterar ou apagar contas.
Como sabemos no linux tudo é arquivo, para a configuração e gerenciamento de usuários também utilizamos arquivos, basicamente passwd shadow e group.
/etc/passwd -> Contém informações dos usuários do sistema
root@ed-net:/home# cat //etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
libuuid:x:100:101::/var/lib/libuuid:
syslog:x:101:104::/home/syslog:/bin/false
messagebus:x:102:106::/var/run/dbus:/bin/false
usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false
dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false
ntp:x:105:110::/home/ntp:/bin/false
whoopsie:x:106:114::/nonexistent:/bin/false
lightdm:x:107:115:Light Display Manager:/var/lib/lightdm:/bin/false
edson:x:1000:1000:Edson Pessotti,,,:/home/edson:/bin/bash
pulse:x:108:120:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:109:122:RealtimeKit,,,:/proc:/bin/false
root@ed-net:/home#
/etc/shadow -> Contém informações dos usuários e senhas criptogradas
/etc/group -> Contém informações dos grupos do sistema
Para se entender melhor cada um desses itens, vamos analisá-los separadamente usando como base na linha extraída de um arquivo /etc/passwd,
edson:x:1000:1000:Edson Pessotti,,,:/home/edson:/bin/bash
Note que cada parâmetro do usuário é separado por : (dois pontos). Vamos estudar cada um:
edson: Neste ponto se encontra o nome de login do usuário, no caso, edson. Esse nome não pode ser igual a outro já existente no sistema e, geralmente é limitado a 32 caracteres.
x:A letra x informa que a senha está armazenada e protegida dentro do arquivo /etc/shadow. Se houver um asterisco (*) no lugar, significa que a conta está desativada., se não houver nada, significa que não há senha para esse usuário.
1000: Indica o número UID (User IDentification) do usuário, o sistema pode suportar UIDs que vão de 0 a 4.294.967.296, Normalmente, o UID 0 é atribuído pelo GNU/Linux ao usuário root.
1000: este indica o GID (Group IDentification) do usuário, isto é, o número de identificação do grupo do qual ele faz parte. Assim como no UID, geralmente o usuário 0 é indicado para o grupo do usuário root. Note, no entanto, que um mesmo usuário pode fazer parte de mais de um grupo (geralmente, o GNU/Linux permite a participação do usuário em até 32 grupos). Mas qual a vantagem de se ter mais de um grupo? Simples: suponha, por exemplo, que você queira que somente os funcionários do departamento contábil de sua empresa acessem os arquivos disponíveis na pasta /contabilidade/. Para isso, você cria um grupo e uma definição que faz com que apenas os usuários desse grupo tenham direito ao acesso. Feito isso, basta adicionar ao grupo cada usuário do departamento contábil. Assim, somente eles acessarão o diretório. Via de regra, o sistema operacional cria um grupo para cada conta de usuário criada;
Edson Pessotti,,,:: esse campo é muito interessante, pois permite a inclusão de informações adicionais sobre o usuário cada informação é separada da outra por uma vírgula,. Também chamado de GECOS (GeneralElectric Comprehensive Operating System) em alusão a uma funcionalidade existente em um sistema operacional Unix que tinha esse nome, você pode inserir as informações que achar melhor,
/home/edson: Aqui e referenciado o diretorio do usuario. o padrão é /home/usuario, mas você pode definir o diretório que quiser (ou mesmo não indicar nenhum);
/bin/bash: esse é o campo que informa qual o shell (interpretador de comandos) de login que o usuário utilizará. O GNU/Linux trabalha com vários, entre eles, o bash, o sh e o csh. Caso nenhum shell seja informado, o sistema utilizará o bash como padrão.
/etc/shadow -> Contém informações dos usuários e senhas criptogradas
root@ed-net:/home# cat /etc/shadow
dnsmasq:*:16273:0:99999:7:::
ntp:*:16273:0:99999:7:::
whoopsie:*:16273:0:99999:7:::
lightdm:*:16273:0:99999:7:::
edson:$6$yAZYaj/hpCHhLRSgsFQeoj0Ohg6rfJ.AvMy1uVUpIv2/FZvibejrIC.:16769:0:999:7:::
pulse:*:16769:0:99999:7:::
rtkit:*:16769:0:99999:7:::
root@ed-net:/home#
/etc/group -> Contém informações dos grupos do sistema
root@ed-net:/home# cat /etc/group
root:x:0:
daemon:x:1:
adm:x:4:syslog,edson
tty:x:5:
an:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
winbindd_priv:x:119:
edson:x:1000:
pulse:x:120:
pulse-access:x:121:
rtkit:x:122:
root@ed-net:/home#
ADICIONANDO USUÁRIOS
Adicionando um usuario:adduser em modo root cria auto,atica um /home para o usuario pede para configurar a senha e outros detalhes do usuario. EX:
edson@ed-net:~$ sudo adduser mane
Adding user `mane' ...
Adding new group `mane' (1001) ...
Adding new user `mane' (1001) with group `mane' ...
Creating home directory `/home/mane' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mane
Enter the new value, or press ENTER for the default
Full Name []: Mane Olistico
Room Number []: 23
Work Phone []: 234523232
Home Phone []: 22 23232 23232
Other []:
Is the information correct? [Y/n] y
edson@ed-net:~$ ls /home/mane
Templates
edson@ed-n
Excluindo USUÁRIOS Deletar usuários do sistema:
Deleta só o usuário e mantem seu diretorio e arquivos.
edson@ed-net:~$ sudo userdel mane
edson@ed-net:~$ ls /home/mane
Templates
edson@ed-net:~$
Deleta o usuário do sistema junto com seu Home e arquivos utiçizando a opção -r :
# userdel -r armando
É possivél especificar um endereço para a home do usuário:
# adduser valter -s /bin/false -d /home/valter/ home
Adicionando um usuário especificando os grupos ao que pertence:
# adduser pedro -G root -g ftpgroup
Adicionando um usuário sem permissão de login:
# adduser matheus -s /bin/false -disable-login
SENHAS :
Uma das práticas mais comuns e a troca de senhas dos usuários.
: # passwd valmour
É possivel determinar o numero de dias de validade, ao que ele será avisado sobre a expiração e troca da senha:
# passwd xavier -w 40
Especificando o numero de dias que sua senha irá expirar:
# passwd xavier -x 50
Para desabilitar um usuário :
# passwd matheus -i
Ao criar uma senha podemos especificar varias opções ao mesmo tempo, numero de dias de expiraração e tempo notificado para trocar a mesma. a expiração, desabilita a conta
# passwd xavier -w 40 -x 50 -i
Para bloquear a conta de um usuário:
# usermod -L xavier
Desbloquear um usuário :
# usermod -U xavier
Forçar a expiração de senha de um usuário forçando a troca no próximo login:
# usermod -e xavier
ALTERANDO PERMISSÕES E PARÂMETROS
Alterando o tipo de shell do usuário:
# usermod -s /bin/false xavier
Alterando a home do usuário:
# usermod -d /var/www/html/xavier
Alterando a home do usuário movendo todo o conteúdo da antiga home para a nova:
# usermod -d /var/xavier/home xavier -m
Altera a data de expiração da senha do usuário no formato de ano--mes--dia:
# usermod -e 2015-12-30 xavier
Altera o nome de login do usuário:
# usermod xavier -l reivax
Altera o GID (Group ID ) do grupo principal do usuário:
# usermod -g 1000 xavier
Altera o UID (User ID) do usuário:
# usermod -u 1000 xavier
Adiciona o usuário ao grupo do sistema:
# adduser xavier root
# usermod -a -G xavier root
DELETANDO USUÁRIOS Deletando usuários do sistema:
# userdel xavier
Deletando o usuário do sistema junto com seus arquivos na pasta home:
# userdel -r xavier
terça-feira, 10 de novembro de 2015
TAR COMANDOS Shell BaSH
O comando tar
O comando tar é muito usado para comprimir arquivos no Linux. Por definição, as extensões de arquivos gerados são o tar.gz e o tar.bz2.; Arquivos com extensão .tar não são comprimidos; apenas listados e colocados em um mesmo arquivo.
Abaixo alguns exemplos de uso do comando tar; que irá facilitar seu trabalho na hora de comprimir ou extrair arquivos no Linux.
O comando tar é disponível por padrão na maioria das distros Linux; e não será preciso instalá-lo, separadamente.
Para extrair arquivos compactados o tar.gz, execute no terminal:
tar -xvzf arquivo.tar.gz
extenção = gz = xvzf
x - Extrai arquivos
v - verbose, exibe o nome dos arquivos extraídos (um por um)
z - O formato do arquivo é "gzip" (tar.gz)
f - Use the following tar archive for the operation
Agora, para extrair formato tar.bz2/bzip, execute no terminal:
tar -xvjf arquivo.tar.bz2
extenção bz2 = xvjf
Para extrair os arquivos, alterando seu destino; apenas especifique o parâmetro ‘C':
tar -xvzf apot.tar.gz -C /home/edson/File
o Diretório após -C precisa existir
Para extrair apenas um arquivo, execute o comando tar informando o nome do arquivo ao final do comando, como segue:
tar -xz -f abc.tar.gz → arqiuivo ficara no diretório corrente
Por exemplo, para filtrar arquivos com extensão “txt”.
tar -xv -f abc.tar.gz –wildcards “*.txt”
Ja vimos como se faz a descompressão agora vamos comprimir.
tar -cvzf abc.tar.gz /home/meufile
Para comprimir, um arquivo tar.bz2; ( backup) execute o comando:
tar -cvjf abc.tar.bz2 ./home/Myfile
Usando a opção‘w’. é pedido a confirmação para ser comprimido,.
Os arquivos só serão comprimidos se houver a confirmaçãopositiva ('y').
$ tar -czw -f Joio.tar.gz
Para adicionar um arquivo a outro já comprimido :
tar -rv -zf Joio.tar Trigo.txt
Só podem ser adicionados arquivos no formato .tar – sem compressão.
O comando tar e muito usuado para Backup. Por exemplo:
tar -cvz -f docs.tar.gz ./home/Myfile
segunda-feira, 9 de novembro de 2015
Split o comando shell split
Comandos SHELL BASH
O comando split divide um arquivo em arquivos menores com base em um número especificado de linhas ou partes . Cada um destes arquivos menores são iguais em tamanho desde que a divisãop dos mesmo sejaa um numero inteiro, assim com excessão do ultimo que ficará com a sobra de linhas todos os demais terão o mesmo tamanho.. O arquivo original não é alterado pela separação. e todos os arquivos serão criados no diretório corrente.
O comando split pode ser útil para dividir grandes arquivos de dados em arquivos menores, mais gerenciáveis..
No caminho oposto podemos cosntruir um arquivo a partir de fragmentos com o comando CAT..
Alguns comandos não tem capacidade para trabalhar com arquivos muito grandes; portanto, dividir o arquivo em partes menores para estes comandos e esssencial.
O comando split lê a entrada de um arquivo ou a entrada padrão e cria vários arquivos de saída. Formato geral:
divisão [opção] [INPUT [PREFIX]]
Cada arquivo pode conter qualquer quantidade fixa de partes (-b) ou linhas (-l). Em caso de bytes, poderá utilizar sufixo "k" e "m" em tamanho.
TAMANHO pode ter um sufixo multiplicador: b para 512, k para 1K, m para 1 Meg.
Se você fornecer o argumento prefixo, os arquivos de destino são nomeados prefixXX. Onde XX é aa para o primeiro arquivo, ab para o segundo, e continua até que o zz arquivo. Isso é um total de 676 arquivos você pode gerar se você dividir sua entrada em tamanhos pequenos o suficiente. Ao usar o prefixo, você deve usar um nome de dois caracteres menores do que o máximo permitido para nomes de arquivos. O comprimento máximo do nome do arquivo é 100; portanto, você deverá usar no maximo nomes de 98 caracteres para prefixo. Se um argumento prefixo não for especificado, os arquivos de destino são nomeados XXX. separação utiliza os X como um prefixo., geralmente xaa xab xac etc...
O formato geral do comando SPLIT segue.
split [opções] [arquivo [prefixo]
Opções
Os argumentos obrigatórios para as opções longas são obrigatórios para opções curtas.
-a, --suffix-N = comprimento
usar sufixos de comprimento N (padrão 2)
-b, --bytes = TAMANHO
colocar TAMANHO bytes por ficheiro de saída
-C, --line-Bytes = TAMANHO
colocar na maioria dos bytes tamanho do arquivo de saída linhas por
-d, --numeric-sufixos
usar sufixos numéricos em vez de alfabéticos
-l, --lines = NÚMERO
número de linhas colocadas por arquivo de saída
--verbose
imprimir um diagnóstico para o erro padrão imediatamente antes de cada arquivo de saída é aberta
--help
exibir esta ajuda e sai
--version
informações de versão e sai
TAMANHO pode ter um sufixo multiplicador: b para 512, k para 1K, m para 1 Meg.
Argumentos
A lista a seguir descreve os argumentos que podem ser passados para o comando de divisão.
- Causas dividir a ler a partir da entrada padrão.
file O nome do arquivo de divisão lê e se divide em n ou 1000 arquivos de linha.
Se nenhum arquivo for dado na linha de comando, divisão irá ler da entrada padrão.
O prefixo será a base para o nome de todos arquivos de saída. Uma extensão é adicionada como prefixo para cada arquivo criado. A extensão é constituído por dois caracteres alfabéticos. A primeira extensão do arquivo é "aa", depois "ab", e assim por diante até a entrada original está completamente dividido.
Se o prefixo não for especificado, a saída é gravada em um arquivo com uma parte de base de "x" e as extensões normais. Assim, os nomes de arquivo de saída padrão são xaa, xab, e assim por diante.
divisão coloca sua saída em arquivos com uma extensão de dois caracteres. Os personagens começam com "aa", o próximo arquivo é "ab", e assim por diante até que toda a entrada foi dividido e armazenado em vários arquivos.
Exemplos
Nesta atividade, você usa o comando de divisão para dividir a entrada padrão para arquivos de saída separados. Comece no prompt shell.
split -20 - /etc/passwd
bustamancio@amancio:~$ split -20 /etc/passwd
bustamancio@amancio:~$ ls
Área de Trabalho Documentos Imagens Público Templates xaa
Documento1.bak~ Downloads Música shellus Vídeos xab
bustamancio@amancio:~$
Veja no exemplo acima foram criados dois arquivos um com 20 linhas xaa e o segundo xab com as linhas restantes.
veja:
bustamancio@amancio:~$ cat xab
messagebus:x:102:106::/var/run/dbus:/bin/false
usbmux:x:103:46:usbmux daemon,,,:/home/usbmux:/bin/false
dnsmasq:x:104:65534:dnsmasq,,,:/var/lib/misc:/bin/false
ntp:x:105:110::/home/ntp:/bin/false
whoopsie:x:106:114::/nonexistent:/bin/false
lightdm:x:107:115:Light Display Manager:/var/lib/lightdm:/bin/false
bustamancio:x:1000:1000:Bustamancio,,,:/home/bustamancio:/bin/bash
postfix:x:108:120::/var/spool/postfix:/bin/false
bustamancio@amancio:~$
Para xab sobaram 8 linhas.
Trabalhando no mesmo arquivo, este próximo exemplo é mais complexo: vou dividir o arquivos epartes de oito linhas cada com o arquivo tem 28 linhas a saida gerara 4 arquivos de 8 linhas cada
split -l 8 /etc/passwd
bustamancio@amancio:~$ split -l 8 /etc/passwd
bustamancio@amancio:~$ ls
Área de Trabalho Documentos Imagens Público Templates xaa xac
Documento1.bak~ Downloads Música shellus Vídeos xab xad
bustamancio@amancio:~$
Gerou xaa xab xac xad, cada um com oito linhas
Agora vamos fazer uma divisão por tamanho, suponha o arquivo tem mais de 12 gigas, e você precisa salvar em um DVD sabendo que só poderá ser gravado 4.5 em cada dvd,
split -b 4500m arqiuivo iso_segment
Exemplo Vou dividir o aruivo Megacubo.exe 986,7 KiB (1.010.360 bytes)
bustamancio@amancio:~/Downloads$ split -b 450000 Megacubo.exe
bustamancio@amancio:~/Downloads$ ls
apostila-introducao-shell.pdf Linux Shell Scripting Tutorial v2.0.pdf xab
Incrementando_o_Shell_com_ER(1).pdf Megacubo.exe xac
Incrementando_o_Shell_com_ER.pdf sistema-operacional-1-ano-de-informatica-completa.pdf
LINUX.pdf xaa
bustamancio@amancio:~/Downloads$
No exemplo acima forama criados dois arquivos de 450 kb e um de 86,7 kb.
Em algumas situações se torna desejável a divisão de um arquivo em vários outros menores, aplicando-se alguma restrição.
O comando split possibilita a divisão de um arquivo baseando-se no número de linhas ou número de bytes que cada arquivo novo deverá conter.
Por exemplo:
split -l 10 /etc/passwd
Este comando criará vários arquivos denominados xaa, xab, xac, etc. Nem sempre estes nomes são os mais convenientes. Neste caso podemos, com o acréscimo de mais um parâmetro, determinar o sufixo do nome dos arquivos que serão criados:
split -l 10 /etc/passwd pas-
ls
pas-aa pas-ab pas-ac pas-ad
pas-ae
pas-af
pas-ag
pas-ah
Os arquivos criados passaram a conter o prefixo pas-, permitindo identificar mais claramente os contadores dos arquivos (aa, ab, ac, etc.)
Além do particionamento em linhas, o comando split, quando invocado com a opção b, irá efetuar a divisão do arquivo baseando-se no número de bytes:
split -b 32k /etc/passwd pas-
ou então
split -b 32 /etc/passwd pas-
ou ainda
split -b 32m /etc/passwd pas-
No primeiro exemplo, o arquivo /etc/passwd será dividido em vários arquivos de 32kbytes cada um,
ao passo que no segundo exemplo, o arquivo será dividido em arquivos de 32 bytes cada. No terceiro
exemplo, o arquivo /etc/passwd é dividido em arquivos de 2MB cada (pouco provável :-)
Um outro exemplo, para dividir um arquivo em vários para gravação em disquetes de 1.44, o comando split é uma das opções possíveis:
# split -b 1400000
O comando split irá criar vários arquivos chamados xaa, xab, xac, etc.
Para restaurá-los basta usar o comando cat, como abaixo:
# cat x* > original_filenamete.
sábado, 7 de novembro de 2015
O Comando grep com vários exemplos.
O
que é o grep, e como posso usá-lo?
Os utilitários grep são uma família de ferramentas do Unix, incluindo grep, egrep e fgrep, que executam tarefas repetitivas de pesquisa. As ferramentas da família grep são muito semelhantes, e todos são usados para pesquisar o conteúdo dos arquivos para obter informações que correspondem a critérios específicos. Para a maioria dos fins, você vai preferir usar fgrep, uma vez que é geralmente o mais rápido.
A sintaxe geral dos comandos grep é:
grep [-options] padrão [arquivo]
Você pode usar fgrep para encontrar todas as linhas de um arquivo que contêm uma determinada palavra. Por exemplo, para listar todas as linhas de um arquivo denominado ArquivoBom no diretório atual que contêm a palavra "cão", digite no prompt do Unix:
edson-HP-Compaq-dx7400-Brazil-SFF-PC
edson # grep cão ArquivoBom
Outras pessoas preferem um cão
Mais nenhum se parece com um cão
Outras pessoas preferem um cão
Mais nenhum se parece com um cão
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # cat ArquivoBom
Muitas pessoas preferem gatos
Outras pessoas preferem um cão
Existem muitos tipos de gatos
Mais nenhum se parece com um cão
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson #
Isso também irá retornar linhas onde "cão" é incorporado em palavras maiores, como "caozão" . Você pode usar a opção -w com o comando grep para retornar somente as linhas onde o "cão" está incluído como uma palavra separada:
grep -w cão myfile
Para procurar por várias palavras separadas por espaços, coloque toda a sequência de pesquisa entre aspas, por exemplo:
fgrep ArquivoBom "cão pessoas gato"
O comando fgrep é sensível a maiúsculas; especificando "cão" não corresponderá a "Cão" ou "CAo". Você pode usar a opção -i com o comando grep para combinar ambas as letras maiúsculas e minúsculas:
grep -i ArquivoBom cão
Se você quiser procurar por linhas que contenham qualquer uma das várias palavras diferentes, você pode criar um segundo arquivo (nomeado secondfile no exemplo a seguir) que contém essas palavras e, em seguida, use a opção -f:
fgrep -f secondfile ArquivoBom
Você também pode usar curingas para instruir fgrep para procurar os arquivos que correspondem a um padrão particular. Por exemplo, se você quisesse encontrar linhas que contêm "cão" em qualquer um dos arquivos em seu diretório com nomes que começam com "meu", você pode digitar:
fgrep cão meu *
Este comando iria procurar arquivos com nomes como meucao, meugato, e meuamor no diretório atual. Cada linha retornado será antecedido com o nome do arquivo no qual a correspondência foi encontrada.
Usando pipes e / ou redirecionamento, você pode usar a saída de qualquer um desses comandos com outras ferramentas do Unix, como o mais, classificar e corte. Por exemplo, para imprimir a quarta palavra de cada linha de ArquivoBom contendo "cão", classificar as palavras em ordem alfabética, e depois filtrar a saída através do comando more para facilitar a leitura, você deve inserir no prompt do Unix:
fgrep ArquivoBom cão | cut -d -f5 "" | sort| more
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # cat
ArquivoBom
Muitas pessoas preferem gatos
Outras pessoas preferem um cão
Existem muitos tipos de gatos
Mais nenhum se parece com um cão
PEGANDO O QUINTO
ELEMENTO
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # fgrep cão ArquivoBom | cut -d" " -f5 | sort| more
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # fgrep cão ArquivoBom | cut -d" " -f5 | sort| more
cão
com
PEGANDO O TERCEIRO ELEMENTO
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # fgrep
cão ArquivoBom | cut -d" " -f3 | sort| more
preferem
se
PEGANDO O SEGUNDO ELEMENTO
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # fgrep
cão ArquivoBom | cut -d" " -f2 | sort| more
nenhum
pessoas
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson #
Se você
deseja salvar a saída em um arquivo no diretório atual chamado
newfile, digite:
Redirecione
com >
fgrep cão ArquivoBom | cortar -d “” -f3 | sort>
newfile
Para mais informações sobre grep, egrep e fgrep, digite:
man grep
Dialogs com Zenity Shell Scripts
Hoje vamos falar sobre o Zenity:
Zenity
e um programa cross-plataform que permite a execução de box GTK+
de dialogos
em
linha de comando e scripts shell.
Assim como whiptail and dialog, zenity permite facilmente a criação de GUIs, embora tenha menos recursos do que as ferramentas de criação de GUI mais complexas: "
Outras linguagens de script como Perl e Python podem ser usadas para construir aplicações GUI em grande escala, mas o programa zenity permite que um script shell possa interagir com um usuário GUI, a interface do usuário não é muito refinada quanto uma que poderia ser fornecido por um aplicativo completo GUI, mas é perfeitamente adequada para interações simples ".
Uso Básico
Quando
você pode usar Zenity em seus scripts para criar diálogos simples
que interagem com o usuário graficamente, como segue:
Você
pode criar um diálogo para obter informações do usuário. Por
exemplo, você pode solicitar que o usuário selecionar uma data de
um calendário de diálogo, ou para selecionar um arquivo a partir de
uma janela de seleção de arquivos.
Você
pode criar uma caixa de diálogo para fornecer ao usuário
informações. Por exemplo, você pode usar uma caixa de diálogo de
progresso para indicar o status atual de uma operação, ou utilize
uma caixa de diálogo mensagem de aviso para alertar o usuário.
Quando
o usuário fecha o diálogo, Zenity imprime o texto produzido pelo
diálogo para a saída padrão.
Message Box
O Zenity pode criar quatro tipos de box de menssagens:
-
Erro
-
Informação
-
Questoes
-
Alertas
Para
cada tipo , use a opção –text para expecificar o texto que
sera exibido na caixa de dialogo.
Examples:
Examples:
Abrindo
uma caixa de pergunta.
zenity --question –title="Edson te ajundando a entender o zenity" --text "Você quer mesmo desligar”"
|
Dialog
entry
Use
a opção -Entry para criar um diálogo de entrada de texto. Zenity
retorna o conteúdo da entrada de texto para a saída padrão, ou
pode armazena-la em uma variavel e processa-la mais adiante.
A
caixa de diálogo de entrada de texto compatível com as seguintes
opções:
-text
= text
Especifica
o texto que é exibido na caixa de diálogo de entrada de texto.
-Entry-text
= text
Especifica
o texto que é exibido no campo de entrada da caixa de diálogo de
entrada de texto.
-hide-text
Esconde
o texto no campo de entrada da caixa de diálogo de entrada de texto.
Exemplo
zenity
--entry --title="Login do Sistema" --text="Entre sua
password:" --hide-text
Dialogo
de progresso
Diálogo
de progresso mostra a progressão de uma rotina.
Zenity
lê dados de linha de entrada padrão . Se uma linha for prefixada
com #, o texto é atualizado com o texto nessa linha. Se uma linha
contém apenas um número, o percentual é atualizado com esse
número.
O
diálogo de progresso suporta as seguintes opções:
-text
= text
Especifica
o texto que é exibido na caixa de diálogo de progresso.
-percentage
= Percentagem
Especifica
a porcentagem inicial que está definido na caixa de diálogo de
progresso.
-auto-Close
Fecha
o diálogo progresso quando 100% tenha sido alcançado.
-pulsate
Especifica que a barra de progresso pulsa até que um caractere EOF
é lido a partir da entrada padrão.
Diálogo
de seleção de arquivo
Diálogo
de seleção de arquivo é uma das diálogo um diálogo zenity muito
útil, suporte a arquivos abertos ou salvar o arquivo.
Use
a opção -file-select para criar uma janela de seleção de
arquivos. Zenity retorna os arquivos selecionados ou diretórios para
a saída padrão. O modo padrão da caixa de diálogo de seleção de
arquivo é aberto.
A
caixa de diálogo de seleção de arquivo suporta as seguintes
opções:
-filename
= Filename
Especifica
o arquivo ou pasta que está selecionado na caixa de diálogo de
seleção de arquivos quando o diálogo é exibido pela primeira vez.
-multiple
Permite
a seleção de vários nomes de arquivos na janela de seleção de
arquivos.
-directory
Permite
apenas a seleção de diretórios no diálogo de seleção de
arquivo.
-save
Defina
o diálogo de seleção de arquivo em modo de economia.
-separator
= separator
Especifica
a cadeia que é usada para dividir a lista retornada de nomes de
arquivos.
#!/bin/bash
FILE=`zenity
--file-selection --title="Select a File"`
case
$? in
0)
echo
""$FILE" selected.";;
1)
echo
"No file selected.";;
-1)edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # zenity --list --checklist --column "Buy" --column "Item" TRUE Maçãs TRUE Laranjas FALSE Peras FALSE Cambuci FALSE Pitanga FALSE Araça >> ListaCompras.txt
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # cat ListaCompras.txt
Maçãs|Laranjas|Cambuci
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson #
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # cat ListaCompras.txt
Maçãs|Laranjas|Cambuci
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson #
echo
"No file selected.";;
esac
done
Caixa
de Shutdown
# diga ciao pro seu PC #usando o zenity zenity --question --title "Confirma o Desligamento" --text "Tem certeza" if [ "$?" -eq "0" ] then # Do shutdown at here. #Ubuntu probably needs gksudo instead of sudo sudo init 0; fi
Google
Chrome profile selector
Google
Chrome profile manager usando o zenity para o profile input. Ponha
isso num shell script e então use o path pra ele como o comando
field no gnome/kde shortcut. Quando você começar você será
promptado por profile para usar se deixar em branco sera mantido o
profile padrão
Exemplo:
/opt/google/chrome/google-chrome --user-data-dir=$HOME/.config/google-chrome/`zenity --entry --text="Enter a profile name:"` |
Outro
grande exemplo encontrado no
http://www.tildehash.com/?article=advanced-application-shortcuts-with-zenity
Este
exemplo mostra um arquivo de diálogo de navegação a partir da qual
você pode selecionar um arquivo para editar, então ele abre uma
janela de caixa de texto onde você pode digitar ou colar texto,
quando você clicar em "Fechar" outro diálogo de navegação
de arquivos é exibida onde você pode selecionar o arquivo onde
você gostaria de salvar as modificações, ele pode ser
Display a weekly shopping list in a check list dialog with Apples and Oranges pre selected zenity --list --checklist --column "Buy" --column "Item" TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpasteo arquivo original, um arquivo diferente, ou um arquivo inexistente.
#!/bin/bash
#Author
tirado da WEB
zOpenPath="$(zenity
--file-selection)"
if
[ "$zOpenPath" != "" ]
then
zData=$(cat
"$zOpenPath")
zNewData=$(echo
-n "$zData" | zenity --text-info --editable --width 650
--height 400)
zSavePath=$(echo
-n "$(zenity --file-selection --filename="$zOpenPath"
--save --confirm-overwrite)")
echo
-n "$zNewData" > "$zSavePath"
fi
done
Exibindo uma caixa para seleção de itens redirecionando o resultado para um arquivo texto
Maçãs|Laranjas|
Exibindo uma caixa para seleção de itens redirecionando o resultado para um arquivo texto
Maças e Laranjas estão preselecionadas = true
zenity --list --checklist --column "Buy" --column "Item" TRUE Maçãs TRUE Laranjas FALSE
Peras FALSE Cambuci FALSE Pitanga FALSE Araça >> ListaCompras.txt
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # zenity --list --checklist --column "Buy" --column "Item"TRUE Maçãs TRUE Laranjas FALSE Peras FALSE Cambuci FALSE Pitanga FALSE Araça >> ListaCompras.txt
EXIBINDO O ARQUIVO listaCompras.txt
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson # cat ListaCompras.txtMaçãs|Laranjas|
edson-HP-Compaq-dx7400-Brazil-SFF-PC edson #
Dialog options --calendar Display calendar dialog --entry Display text entry dialog --error Display error dialog --file-selection Display file selection dialog --info Display info dialog --list Display list dialog --notification Display notification icon --progress Display progress indication dialog --question Display question dialog --text-info Display text information dialog --warning Display warning dialog General options --title=TITLE Set the dialog title --window-icon=ICONPATH Set the window icon --width=WIDTH Set the dialog width --height=HEIGHT Set the dialog height Calendar options --text=STRING Set the dialog text --day=INT Set the calendar day --month=INT Set the calendar month --year=INT Set the calendar year --date-format=STRING Set the format for the returned date Text entry options --text=STRING Set the dialog text --entry-text=STRING Set the entry text --hide-text Hide the entry text Error options --text=STRING Set the dialog text File selection options --filename=FILENAME Set the filename --multiple Allow selection of multiple filenames in file selection dialog --separator=SEPARATOR Specify separator character when returning multiple filenames Info options --text=STRING Set the dialog text List options --text=STRING Set the dialog text --column=STRING Set the column header --checklist Use check boxes for first column --radiolist Use radio buttons for first column --separator=STRING Set output separator character --editable Allow changes to text --print-column=STRING Specify what column to print to standard output. The default is to return the first column. ’ALL’ may be used to print all columns. Notification options --text=STRING Set the notification text Progress options --text=STRING Set the dialog text --percentage=INT Set initial percentage --auto-close Close dialog when 100% has been reached --pulsate Pulsate progress bar Question options --text=STRING Set the dialog text Text options --filename=FILENAME Open file --editable Allow changes to text Warning options --text=STRING Set the dialog text Miscellaneous options -?, --help Show summary of options. --about Display an about dialog. --version Show version of program. Also the standard GTK+ options are accepted.
Assinar:
Postagens (Atom)
Megacubo par Linux e Wnidows - Assistir TV no Computador
MEGACUBO PARA LINUX Ola!! Neste post vamos falar um pouquinho sobre o Megacubo, um tradicional programa ...
-
ATUALIZAD0 E. 12/05/2017 Uma dica, para quem esta com problemas com a configuração de teclado, que não está acentuando direito. Como t...
-
03/02/2017 Manjaro Mate: Criar Link executável com ícone: Eu desenvolvo Aplicativos para Desktop em Java, optei por es...
-
Instalar Programas no Linux Zenwalk. Zenwalk é uma distribuição Linux fork do Slackware uma versão mais enxuta, e totalmente compatí...