quinta-feira, 17 de dezembro de 2015

Firewall no Ubuntocomo ativar.

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

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-forward
Agora 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=XXXX
Onde, 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.
до свидания

Едсон Пессотти


 

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:


fgrep cão ArquivoBom
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

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

Para listar as linhas de ArquivoBom que não contêm "cão", use a opção -v:

fgrep -v cão ArquivoBom

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
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:
Abrindo uma caixa de pergunta.

zenity --questiontitle="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 #
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 Toothpaste
o 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ç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.txt
Maçã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.



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 ...