http://www.zago.eti.br/shell.txt FAQ, indicações de tutoriais e dicas pra personalizar o ambiente em modo texto, comandos e etc... Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ********************************************* Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux Comandos e recursos para usar em scripts é muito grande no Linux, todo administrador deve conhecer e explorar o poder destas ferramentas, são diversas ferramentas distribuidas em diversos pacotes, cada uma destinada a tarefas especificas, quando falhar o comando, procure descobrir qual pacote provem o recurso, instale e procure ajuda no manual e Google... No FAQ o nome dos arquivos ou diretórios estão associado ao comando, pacote ou serviço do Linux, no inicio de cada FAQ tem indicações de outros com conteúdo semelhante, procure no menu pela opção visualizar todos arquivos, procure pelo FAQ especifico como cat, find, tar sed, bash e etc.., por exemplo: http://www.zago.eti.br/bash.txt http://www.zago.eti.br/sed.txt http://www.zago.eti.br/awk.txt http://www.zago.eti.br/comandos.txt http://www.zago.eti.br/script/ Mais indicações sobre o uso do shell com outras ferramentas pra uso na linha de comando, expressões regulares, shell script, modelos de scripts e etc... veja em: http://www.zago.eti.br/script/A-menu-scripts.html ********************************************* Programar em shell script comece por estes ótimos HOWTO: Documentação sobre Shell http://www.aurelio.net/shell/ Canivete Suíço do Programador Shell (bash) http://aurelio.net/shell/canivete.html Aurélio Marinho Jargas Shell Script para Iniciantes http://www.openslack.org/~piterpk/artigos/aposhell.ps http://www.openslack.org/~piterpk/ Lista de alguns aplicativos populares em modo texto, confira: http://applications.linux.com/applications/05/04/20/2235237.shtml http://www.tldp.org/LDP/abs/html/ Excelente material - em inglês. http://br.groups.yahoo.com/group/shell-script/ Lista Brasileira sobre Linux Shell Script. Criada por João Eriberto Mota Filho. O objetivo desta lista é debater o assunto programação shell script no Linux. Em português / no Brasil. ********************************************* ls com resultado colorido No CL edit o .bashrc e acrescente a linha: alias ls='ls --color' Isto é um "apelido" (alias) para o comando ls --color assim quando executar ls o seu linux exibirá o resultado de: ls --color tente outras combinações de ls: alias ls='ls --color=tty' ********************************************* Configuração geral. /etc/skel Quando criamos um novo usuário o sistema cria um diretorio para este usuario dentro de /home/ e copia para o home deste novo usuário vários aquivos que depois podemos ajustar para as necessidades de cada user. Quando esta configuração precisa ser feita para todos os usuarios o serviço pode ser simplificado e alterando estes arquivos em /etc/skel/ assim quando o sistema fizer a copia para o home do usuário durante a criação deste, os arquivos já vem ajustados. ********************************************* Abrir novos terminais shell. Quando efetuar login em modo texto pode abrir varios terminais, basta pressionar a tecla ALT+mais uma das teclas de função "F" de 2 a 5, assim ALT+F2, abre o terminal 2 que pode ser o mesmo usuário ou outro login, muito útil para usar um terminal na maquina local, um segundo para uma conexão via ssh ou outro aplicativo que acessa outra maquina, um terceiro para editar algum arquivo na maquina local ou remota, pode copiar e colar entre terminais, mesmo que algum deles seja de maquina remota, o terminal 1 e aberto pelo login inicial, para alternar entre os terminais abertos use ALT+F(terminal desejado) F1 é a tecla de função e não F+1, assim ALT+F1 volta ao terminal 1. A partir de um ambiente gráfico use CTRL+ALT+F1 Abrir um terminal (console) a partir de um ambiente gráfico. com CTRL+ALT+F1 e para voltar ao X com ALT+F7. com CTRL+ALT+F2 abre o segundo e para voltar ao X com ALT+F8. Em ambiente gráfico como o KDE é mais rápido usar o Konsole. Konsole No KDE tem um icone na barra de tarefas (konsole) que abre uma janela com um terminal shell (konsole), pode abrir varios ou a partir de um konsole abrir outros que vão enfileirando os icones lado a lado. Em ambiente gráfico KDE quando abrir um terminal, Konsole, shell..... No canto inferior squerdo da janela tem um icone "novo", a cada clique neste icone abre um novo konsole, podemos ter varios konsoles abertos, em cada konsole podemos fazer conexões pra maquinas remotas diferentes, navegar nos diretórios da própria maquina e etc, a idendificação destes konsoles seguem a ordem em que foram abertos: shell, shell2, shell3 ..... Isto confunde a associação do konsole com a conexão, podemos dar nomes a estas conexões, um duplo clique sobre o icone da conexão abre uma janela pra digitar o nome, por exemplo, um duplo clique no icone de shell2, abre a janela e posso digitar "samba", assim passa a exibir o nome samba em lugar de shell2. Pra navegar entre os konsoles, além do clique do mouse sobre o icone do konsole desejado, pode usar as teclas SHIFT mais as setas de direção do teclado (seta pra esquerda ou direita). ********************************************* Para o título da janela aparecer com o nome do diretório atual, quando abrir um um terminal (konsole) a partir do KDE, coloque: 'export PS1=$PS1"\[\e]0;\H:\w\a\]' em seu arquivo ~/.bashrc . ********************************************* Executar ou copiar e colar longas linhas de comando, normalmente estas linhas são quebradas quando tratadas em editores de texto, browser e clientes de e-mail, esta quebra pode transformar um longa linha em varias linhas de comando e por consequencia erro na sua execução, pra quebrar linhas sem problemas use a \, por exemplo, esta única linha de comando: btdownloadcurses.py --max_upload_rate 6 --max_uploads 8 --url http://distro2.conectiva.com.br/torrents/cl10_cd1.torrent pode também usar a barra invertida pra quebrar a linha sem causar problemas na execução, pode ser escrita, digitada, copiada pra linha de comando e executada assim: btdownloadcurses.py --max_upload_rate 6 \ --max_uploads 8 \ --url http://distro2.conectiva.com.br/torrents/cl10_cd1.torrent No primeiro exemplo tem que ser tudo em uma única linha, no segundo caso são 3 linhas, o resultado é o mesmo. ********************************************* Tem diversos interpretadores de comandos, para ver o interpretador corrente echo $SHELL retornando: /bin/bash indica que está rodando o bash. /bin/ksh indica que está rodando korn shell ********************************************* De: Dicas-L-Owner@unicamp.br Assunto: [Dicas-L] Programação Shell: FISL Data: 16 Jun 2003 02:50:01 -0300 -------------------------------------------------------------------- Endereço: http://www.Dicas-l.com.br/dicas-l/20030616.shtml -------------------------------------------------------------------- -------------------------------------------------------------------- MiniWeb Cursos Implementação de cursos on-line: ferramental tecnológico de suporte. De 04 de agosto a 04 de setembro de 2003 http://www.miniwebcursos.com.br -------------------------------------------------------------------- Programação Shell: FISL ======================= Esta dica eu peguei na palestra do Júlio Cezar Neves, no IV Fórum Internacional de Software Livre, em Porto Alegre. O Júlio é o autor do excelente livro Linux: Programação Shell. Eu comprei o livro dele, a 2ª edição, no ano 2001 e carrego para todo lado. O livro está quase se desmanchando de tão manuseado, mas eu sempre descubro coisas interessantes nele. O livro já está na 3ª edição e mais informações sobre ele podem ser encontradas em http://www.brasport.com.br/livro.asp?Cod=85-7452-118-3 A palestra do Júlio foi sensacional. O fantástico é que o livro transpira o mesmo bom humor e alegria do seu autor. Antes da dica, um alerta, eu copiei a idéia principal da dica da palestra do Júlio e coloquei algumas coisas da minha cabeça. Se houver algum erro aqui o culpado sou eu e não o Júlio. Dado o alerta, vamos à dica: A programação shell tem alguns recursos bem interessantes. Cada comando executado gera um código de retorno, indicando se o comando foi bem sucedido ou se houve algum problema. Vejamos alguns exemplos: % cd dir bash: cd: dir: Arquivo ou diretório não encontrado % echo $? 1 % mkdir dir % cd dir % echo $? 0 O código de retorno de um comando executado em bash fica armazenado na variável $?. Eu tentei ir para o diretório dir, mas como dir não existe, o código de retorno da operação deu 1 (falso). Em seguida criei o diretório e fui para lá. Desta vez deu certo e o código de retorno foi 0 (verdadeiro). Vejam que interessante, na programação shell, eu posso fazer o teste dentro de uma construção de laço ou condicional, como um if: #!/bin/bash if cd dir then touch a b c ls -l echo estou em dir else mkdir dir cd dir touch a b c ls -l fi O comando cd dir faz parte da condição de teste do if. Se deu certo, vou para dir, se não funcionou, crio o diretório, vou para lá ("mkdir dir" e "cd dir"). Vamos fazer um teste real: % cddir.sh ./cddir.sh: line 3: cd: dir: Arquivo ou diretório não encontrado total 0 -rw-rw-r-- 1 queiroz queiroz 0 Jun 13 12:38 a -rw-rw-r-- 1 queiroz queiroz 0 Jun 13 12:38 b -rw-rw-r-- 1 queiroz queiroz 0 Jun 13 12:38 c O diretório dir não existia, daí a mensagem de erro. A shell script executou o else, criou o diretório dir, criou os arquivos a, b, c, e em seguida emitiu o comando ls. Para não receber mensagens de erro eu posso redirecionar estas saídas para /dev/null: if cd dir 2> /dev/null Este foi apenas um exemplo extremamente útil de um recurso de shell scripts. Entendendo-se o conceito o número de aplicações possíveis é enorme. Eu utilizei a shell bash, em um sistema Conectiva Linux versão 9.0. --------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 21569 assinantes. Todas as mensagens da Dicas-L ficam armazenadas em http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ********************************************* De: Marcus Lima Responder-a: marcuslima@marcuslima.eti.br Para: Matheus Zeuch , Lista linux-br Assunto: (linux-br) RES: (linux-br) Execuntando Scripts Data: 18 May 2003 09:50:18 -0300 Regras para criar um Shell script: 1. Inicie a primeira linha com o interpretador de comandos que você deseja usar para executar o script: ex.: #!/bin/bash ou #!/bin/tcsh Obs.: Isso é importante porque cada shell tem detalhes particulares. E também porque podemos usar scripts em Perl, PHP, Python, entre outros. 2. Após salvar o script, ele precisa ter direito de execução: ex.: chmod +x script.sh Obs.: O sistema de arquivos do Windows não tem isso, mas no Linux é preciso informar quais arquivos são executáveis ou não. 3. Execute seu script: ex.: /caminho/para/script.sh Obs.: Se seu script não estiver dentro dos diretórios especificados na variável $PATH, você precisará digitar todo o caminho para o script, ou então entrar dentro do diretório onde está o script e digitar ./script.sh - Marcus Lima. --- ********************************************* Existe um guia on-line sobre expressões regulares: http://guia-er.sourceforge.net/ Vale a pena dar uma olhada. ********************************************* Tutoriais sobre Programação Shell --------------------------------------------------------------------- Colaboração: Luis B. Fadel Uma habilidade muito importante e extremamente útil para administradores de sistemas Unix é o conhecimento de linguagens de programação shell. Ambientes Unix oferecem uma grande variedade de shells, com funcionalidades recursos bastante distintos. Para quem quiser aprender a utilizar este recurso fantástico, um ótimo ponto de partida são os tutoriais sobre o assunto disponíveis em http://oase-shareware.org/shell/links/index.html A Dicas-L por exemplo é toda estruturada através de shell scripts. Praticamente tudo é feito por meio delas, da formatação das páginas Web ao envio das mensagens. Sem dúvida alguma, se vocÊ ainda não sabe programar com shell scripts, não perca tempo. Você não vai se arrepender. --------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 10812 assinantes. Para sair ou assinar a lista Dicas-L, consulte o documento que se encontra em http://www.Dicas-l.com.br/FAQ.html. ********************************************* De:  Anderson Lizardo Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Cor no Konsole Data:  Thu, 18 Dec 2003 20:13:55 -0400 Em Quinta, 18 de Dezembro de 2003 06:08, Hugo Rzepian Teixeira escreveu: > Como é que eu escrevo algo com cor no console via echo? Ou cor via shell > script ou até por C. Mas tudo no Konsole. Procure no Google por "ANSI code". AFAIK, este método pode ser utilizado em qualquer função de exibição de caracteres (o printf do C; cout do C++; echo do Bash; etc.) Veja um exemplo de como isto funciona, usando o comando "echo": echo -e '\e[33;42mteste\e[37;40m' Isto deve imprimir a palavra "teste" com letra amarela e fundo verde. Note o código ANSI terminador; ele serve para colocar o console na cor padrão (letra branca de fundo preto). -- Anderson Lizardo ********************************************* De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br) WinSCP/SFTP nao funciona com clientes sem bash (/bin/false) Data:  Thu, 19 Feb 2004 02:53:07 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 sss wrote: >Uso WinSCP como cliente no windows para acessar o servidor linux. >Gostaria de tirar totalmente o serviço ftp mas para isso tenho que > fazer o WinSCP funcionar para usuários que não possuam bash. Nesses > usuáriso que possuem /bin/false dá erro de autenticação >**Se colocar o shell /bin/bash pra eles funciona. Mas eu não quero dar >acesso ao shell pros meus usuários. > >Esses testes fiz acessando com o protocolo SFTP. >Na documentação diz que o SFTP não precisa acesso ao shell >Unlike SCP, for connection with SSH server, you do not need access to > shell > >Alguém usa WinSCP? Tem alguma idéia do que fazer pra funcionar. Você mesmo listou suas possibilidades: 1) usar SFTP para não ter que habilitar o shell 2) habilitar o shell para poder usar SCP Escolha a sua alternativa, dentre as alternativas que você listou. Note que é possível limitar quais comandos podem ser executados num shell. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint:     E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) ********************************************* De:  Elias Andrade - Suporte técnico - Litoral On Line Para:  Rodrigo Faria Tavares Cc:  listas-linux-br Assunto:  Re: (linux-br)Shell somente E-mail Data:  Thu, 24 Jun 2004 09:41:18 -0300 veja o /etc/passwd: esan:x:1000:100:,,,:/home/esan:/bin/bash 'Esan' tem o /bin/bash como shell. Vc pode editar e modificar para '/bin/false'. Caso esteja adicionando um usuario, de um 'man adduser' ou 'man useradd'. um exemplo simples adicionando um usuario com shell invalido: adduser mane -s /bin/false Usuario 'mane' nao pega shell, ou seja, nao consegue conetar via telnet/ssh... Em Qui, 2004-06-24 às 08:36, Rodrigo Faria Tavares escreveu: > Pessoal, > -- [ ]'s Elias Andrade - Analista de Suporte - Litoral On Line Home Page: http://www.lol.com.br - Fone:(41)423-2825 ------------------------------------------------------------ Site pessoal: http://www.esan.cjb.net    |Slackware/Fedora Projeto Monesa: http://monesa-br.cjb.net | Linux User #229468: http://www.linuxcounter.org ------------------------------------------------------------ Paranagua - PR - Brasil [<0>] "A grandeza nao consiste em receber honras, mas em merece-las" De:  Leandro Mendes Para:  Rodrigo Faria Tavares Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Shell somente E-mail Data:  Thu, 24 Jun 2004 09:26:52 -0300 se for o que eu entendi... adduser -s /bin/false joaozinho []'s Gostaria de criar shells, para que os usuários podessem acessar somente e-mail > sem poder logar na maquina. > > Ja vi isso, em varias servidores, gostaria de implementar isso no CL 9.0 la de > casa. > ********************************************* De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)Shell somente E-mail Data:  Thu, 24 Jun 2004 09:15:03 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Rodrigo Faria Tavares wrote: >Gostaria de criar shells, para que os usuários podessem acessar > somente e-mail sem poder logar na maquina. Então, por definição, você não quer criar shells. "Shell" implica ter acesso ao shell, que é justamente o que você não quer. >Ja vi isso, em varias servidores, gostaria de implementar isso no CL > 9.0 la de casa. Acho que você nem mesmo tentou antes de perguntar, não foi? Abra o Linuxconf, que é a ferramenta de administração do CL9, e vá às opções de criar um usuário. Você está vendo a opção de "somente e-mail" por aí? Caso não use o Linuxconf, crie um usuário pertecente ao grupo popusers e dê-lhe o shell /bin/false. - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info     ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint: ********************************************* De: Jorge Godoy Para: Murilo Opsfelder Araújo Cc: Linux-BR Assunto: Re: (linux-br)Diretorios ponto e ponto ponto Data: 02 Dec 2005 13:24:03 -0200 Murilo Opsfelder Araújo writes: > alguem sabe me explicar a imortancia dos diretorios "." e ".." quando > dou um `ls -lah ~/` por exemplo? São referências para o diretório atual (.) e para o pai deste (..). -- Jorge Godoy ********************************************* *********************************************