Escolar Documentos
Profissional Documentos
Cultura Documentos
ls -la /bin/sh
tcsh - C shell with file name completion and command line editing
voce faz muito mais, mais rapidamente e melhor, lembre que pode usar em
as facilidades que cada uma lhe oferece, alm das inumeras teclas de
cat ~/.bash_history
1
Agora abra um terminal, posicione o cursor do mouse dentro da janela
man bash
man ksh
man tcsh
bash --help
bash -c help
man hash
help echo
help Redirecting
2
Pra redirecionar a saida pra arquivo acrescente ">" arquivo.txt,
define:bash
define:ksh
define:csh
define:tcsh
e como instalar:
3
O pacote que instala o ksh tem o nome de pdksh
pdksh-5.2.14-44471cl
tcsh-6.12.00-55232cl
#!/bin/bash
Ou #!/bin/sh
#!/bin/ksh
#!/usr/bin/perl -w
.bash_history
.bash_logout
.bash_profile
.bashrc
4
********************************************************************
Dica - acessar via ambiente grfico arquivos ocultos (que iniciam com
ponto).
file:/home/zago/.bash_history
********************************************************************
http://groups.yahoo.com/group/shell-script
http://aurelio.net/shell/canivete.html
http://aurelio.net/doc/sem-mouse-HOWTO.html
5
de mouse, rodando o sistema operacional Linux.
http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-
formats/html_single/Bash-Prog-Intro-HOWTO.html
http://www.linux.com/guides/abs-guide/
Download:
http://personal.riverusers.com/~thegrendel/abs-guide-2.8.tar.bz2
pagina do autor:
http://personal.riverusers.com/~thegrendel/software.html
http://www.tldp.org/LDP/abs/html/index.html
http://tldp.org/LDP/abs/html/
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/index.html
6
Advanced Bash-Scripting Guide
http://www.tldp.org/LDP/abs/html/index.html
http://br-linux.org/tutoriais/002229.html
http://www.linuxdicas.com.br/sections-viewarticle-52.html
http://lrp.steinkuehler.net/Packages/weblet.htm
********************************************************************
shell.
bashrc
7
********************************************************************
Historico de comandos.
echo $HISTSIZE
history -w
8
history -c
vi ~/.bash_history
man history
history --help
history
PESQUISAR NO HISTORICO
9
history | grep comando
Este comando filtra no historico pra exibir somente as linhas que contm
a
basta digitar:
!53
10
Use CTRL+R pra digitar e completar ou com mouse...
cola.
OBS.
do mouse.
e selecionar copiar.
Dica.
Faa copia do .bash_history para outro nome e abra com kwrite, no editor
use
11
numerar as linhas), no shell utilize o sinal de exclamao mais este
numero
Colocar titulo na janela do Konsole, quando abre uma tela no konsole via
KDE, pra colocar como titulo da janela o diretrio atual, coloque em seu
arquivo ~/.bashrc:
'export PS1=$PS1"\[\e]0;\H:\w\a\]'
12
acrescente no final do arquivo .bash_profile esta linha:
TMOUT=60
unset TMOUT
********************************************************************
Configurao do console
shopt
********************************************************************
Configurao geral.
13
/etc/skel
usuario dentro de /home/ e copia para o home deste novo usurio vrios
existe mais de uma opo pressione tab 2 vezes pra exibir as possveis
********************************************************************
RESUMO
Tem muitas opes e teclas de atalhos, aqui tem um resumo das teclas de
Quando operando como usurio normal exibe no prompt o sinal ($), ex.:
[zago@faqcl10 tmp]$
[zago@faqcl10 tmp]#
14
utiliza no ambiente grfico, mantenha o boto acionador pressionado e
movimente o mouse.
do curor toda a area selecionada, isto tanto faz ser no proprio terminal,
em outro terminal ou editores de texto, com isto voce pode copiar parte
do
que aparece na tela (selecionar) e um clique com boto auxiliar vai colar
pra copiar, pra colar tambm requer o clique com boto auxilar, tanto no
comando ao
15
Setas de direo pra esquerda e direita movimenta o cursor na
linha em edio.
a opo, (tab) duas vezes exibe a lista disponivel pra completar o que j
foi
digitado, ex.:
cd /ho<tab>
********************************************************************
fc
16
man fc
fc -l
********************************************************************
script.
sleep 3
********************************************************************
Bash History
---------------------------------------------------------------------
17
muito pouco usado, alm do tradicional "setinha pra cima" para exibir
os
ltimos comandos.
/.bash_history).
(quem sabe isso no vai em outra dica? ;) , pode ser interessante fazer
export command_oriented_history=1
(ou qualquer outro valor, basta a varivel estar "setada") Isso faz
18
com que o bash tente salvar todas as linhas do comando, ao invs de
salvar
19
ls
xscreensaver
(...)
script1 script2
(...)
[rbp@muppets ~]$
abreviaes como "x-" (igual a "x-$"), "-x" (igual a "1-x") ou "*" (igual
a
"1-$").
mkdir diretorio2
20
O "s/1/2" substituiu "1" por "2" no comando anterior.
Juntando tudo:
emacs
---------------------------------------------------------------
********************************************************************
---------------------------------------------------------------------
21
numricos ou seqenciais). Por exemplo:
[rbp@muppets ~]$
Ou,
[root@muppets ~]$
Voc pode inclusive usar o for a partir de uma sada de comando. Por
exemplo, digamos que voc tenha um arquivo com uma srie de nomes de
[root@muppets ~]$
22
2
[rbp@muppets ~]$
Aos poucos:
while [ $i -le 5 ]
23
O programa "test" pode tambm fazer testes "unrios", ou seja, com
arq="/tmp/arquivo"
tmp=$arq
i=1
while [ -e $tmp ]; do
i=$(($i+1))
tmp=$arq$i
done
touch $tmp
sai do loop quando achar um nome de arquivo que no exista. Ou, de forma
-d - um diretrio
Continuando:
24
do echo $i
A prxima linha mostra um exemplo de algo que no tem nada a ver com
i=$(($i + 1))
-1
[rbp@muppets ~]$
done
25
ter sido notado, termina o "for" tambm.
sleep 5s
done
"w". Toda vez que achar, espera 5 segundos e checa de novo. Quando no
achar, sai do loop e mostra um aviso de que a ltima sesso do rbp foi
fechada.
26
Pra finalizar: se voc quiser fazer um loop infinito, pode usar ":"
while : ; do
done
---------------------------------------------------------------
********************************************************************
---------------------------------------------------------------------
Estou listando alguns "stupid bash tricks" que podem ser teis ou
mesmo divertidos :)
M-a significa "Use a tecla Meta junto com a tecla a", em que a
27
Alm disso, estou assumindo uma configurao padro do bash. H
man make-ssh-known-hosts
28
E no poder usar o TAB para completar o nome do comando? Bem, em
mquina
em /etc/hosts
---------------------------------------------------------------
se encontra em http://www.Dicas-l.com.br/FAQ.html.
********************************************************************
29
O Jorge mantem tambem uma lista de informacoes basicas sobre Linux.
---------------------------------------------------------------------
HISTSIZE=1000
$ wc .bash_history
slocate -U ~
slocate -U ~ -d slocate.db
slocate -U ~ -o slocate.db
Ou ainda
30
$ history | grep slocate
---------------------------------------------------------------
********************************************************************
---------------------------------------------------------------------
exemplo:
# cp ~/.emacs ~/.emacs.bak
Ou, pior,
# cp /mnt/usr/share/emacs/20.7/etc/sex.6 /usr/share/emacs/20.7/etc/sex.6
# cp ~/.emacs{,.bak}
31
O que isso faz? A palavra que contem as chaves expandida em duas
palavras (neste caso, podem ser mais), separadas por espao: a primeira
contm "~/.emacs" mais o que est entre chaves, antes da primeira vrgula
# cp ~/.emacs ~/.emacs.bak
Ou seja, o equivalente a
# cat /home/{rbp,queiroz,rms,torvalds}/.signature
# diff {/home/rbp/.,/etc/}bashrc
chaves:
# less /usr/doc/{emacs-20.7/{NEWS,README},ed-0.2/NEWS,gnupg-
1.0.1/{README,COPYING}}
32
---------------------------------------------------------------------
__
********************************************************************
---------------------------------------------------------------------
para outro, mas o primeiro espera um arquivo. Por exemplo, podemos querer
# diff /tmp/arq{1,2}
# rm /tmp/arq1 /tmp/arq2
<(comando)
33
termos prticos, como se um arquivo temporrio fosse criado com a sada
do
como:
---------------------------------------------------------------
se encontra em http://www.Dicas-l.com.br/FAQ.html.
********************************************************************
Pipes em bash
---------------------------------------------------------------------
faa bem o que tem a fazer, saiba conversar com outras aplicaes". Bem,
mesmo.
34
do sistema, podemos fazer
arquivo /etc/passwd.
":" (dois pontos) como separador e pega o primeiro campo (com "-d :" e "-
f
seriam
1 2 3 4 5 6 7
/etc/passwd.
Outro exemplo, envolvendo mais pipes (ou seja, voc pode usar
[rbp@muppets ~]$
"grep '^rbp '" pega essa lista e mostra s as que comeem com "rbp "
(para
35
no pegarmos substrings como 'rbpsdgf'). Finalmente, o comando "wc -l"
conta
essas linhas. Assim, sei que, no momento, o usurio rbp tem 7 shells
abertos
---------------------------------------------------------------
********************************************************************
---------------------------------------------------------------------
prompt$ ls -l /etc/passwd
prompt$ echo $_
/etc/passwd
prompt$ umount $_
ou:
prompt$ vi /home/usuario/documentos/pessoais/julho/arquivo.txt
prompt$ ispell $_
prompt$ cp $_ /tmp
36
prompt$ ls $_/arquivo.txt
prompt$ echo $_
os valores:
/home/usuario/documentos/pessoais/julho/arquivo.txt
/home/usuario/documentos/pessoais/julho/arquivo.txt
/tmp
/tmp/arquivo.txt
---------------------------------------------------------------
se encontra em http://www.Dicas-l.com.br/FAQ.html.
********************************************************************
"case" em bash
---------------------------------------------------------------------
faz_coisas
37
elif [ "$RESPOSTA" = "nao"]; then
exit 0
faz_coisas_se_o_tempo_permitir
faz_coisas_se_o_humor_permitir
...
case "$variavel"in
primeira_opcao)
comando1
comando2
...
;;
segunda_opcao)
outro_comando
ainda_outro
...
38
;;
...
*)
ultimo_comando
esac
Isso testa "$variavel" com cada uma das opes. Quando achar uma
case "$RESPOSTA" in
sim)
faz_coisas
;;
nao)
exit 0
;;
depende_do_tempo)
faz_coisas_se_o_tempo_permitir
;;
depende_do_humor)
faz_coisas_se_o_humor_permitir
;;
*)
echo 'NDA!'
39
esac
";;").
********************************************************************
chmod 773
> > modificar com algum editor o .bash_history. Se houver alguma dica
para
********************************************************************
40
********************************************************************
chmod -w .bash_history
ou
> modificar com algum editor o .bash_history. Se houver alguma dica para
********************************************************************
> Quando estou no console e aperto a seta para cima, o linux me mostra os
> ultimos comandos, alguem sabe como faco para apagar da memoria estes
> comandos???
$ rm .bash_history
$ touch bash_history
********************************************************************
41
Colaboracao: Jorge Kinoshita [jkinoshi@pcs.usp.br]
recuperar. Exemplo:
********************************************************************
---------------------------------------------------------------------
enviada:
42
Por falar em arquivos de history, eu
HISTFILE=~/.histories/history-$$
mkdir ~/.histories
semana de idade.
43
da shell. Isso facilitou em muito o meu trabalho
pertinentes.
********************************************************************
~/.bashrc
Editorial
-------------------------------------------------------------------------
-------
# .bashrc
export PATH=$PATH
PATH="$PATH:./"
export LS_COLORS="di=47"
if [ -f /etc/bashrc ]; then
44
. /etc/bashrc
fi
# startx
#fi
#xhost carcara
umask 0
********************************************************************
> Estou com alguns problemas estranhos aqui, derrepente sem mais nem
menos o
>
O cdigo do bash usa esta funo xmalloc que termina o bash se por acaso
faltar memria, note que ele no consegue alocar um bloco de pouco mais
de
2KB! execute free neste momento e confirme que voc est com toda a
memria
utilizada: compre mais memria ou crie mais rea de swap: man mkswap.
********************************************************************
45
Acsys - Depto. de Instalao wrote:
eu quero que qdo o usuario efetue seu login rode un script para setar
.bash_profile do usurio
/etc/profile do sistema
Falous,
Piter PUNK
********************************************************************
> eu quero que qdo o usuario efetue seu login rode un script para setar
>
>
Caro amigo,
Como j haviam lhe falado anteriormente vc tem duas opes para setar
no sistema no /etc/bashrc
46
sistema no /home/joazinho/.bashrc
sistema no /home/joazinho/.bash_profile
E mais, no diretrio /etc/skell/ caso sejam scripts padro que devam ser
los dentro deste diretrio pois o mesmo o "esqueleto" dos homes para
ele ser copiado apenas para todos os novos usurios, por exemplo se vc
********************************************************************
Para: linux-br@bazar.conectiva.com.br
Em vez de digitar o comando inteiro toda vez, eu crio uma alias pra
Amigo,
47
Dentro do /etc/ existe um arquivo chamado bashrc
TE+
********************************************************************
NEO,
logue denovo.
-----Original Message-----
48
digitar o comando inteiro toda vez, eu crio uma alias pra "encurtar" ele
mas nao consigo deixa-lo definitivo. Tenho que fazer dentro do bash?
********************************************************************
HISTFILE
exits.
Vamos testar...
HISTFILE=
49
em seu .bash_profile
e teste.
- Arnaldo
********************************************************************
De: dicas-l-owner@unicamp.br
--------------------------------------------------------------------
Endereo: http://www.Dicas-l.com.br/dicas-l/20021030.shtml
--------------------------------------------------------------------
Read in English
http://novateceditora.com.br/livros/readinenglish/
--------------------------------------------------------------------
=======================================
Colaborao: roni@alfanetworks.com.br
# mkdri
50
foi desenvolvida com base em um estudo que observou que na maioria dos
********************************************************************
De: dicas-l-owner@unicamp.br
--------------------------------------------------------------------
Endereo: http://www.Dicas-l.com.br/dicas-l/20021122.shtml
--------------------------------------------------------------------
Read in English
http://novateceditora.com.br/livros/readinenglish/
--------------------------------------------------------------------
/$ cd homr
51
/$ shopt -s cdspell
/$ cd homr
home
/home$ cd ../hom
../home
/home$
set builtin.
e ainda
52
cdspell If set, minor errors in the spelling of a
directory component in a cd command
********************************************************************
ou ~/.inputrc a linha
set show-all-if-ambiguous on
Abrao
Cludio
********************************************************************
53
Anderson Vieira de Souza wrote:
>Al Linuxers,
>
>
novo.
meuscript.sh
execute:
source meuscript.sh
--
********************************************************************
>> Ol!!!
>>
54
>> H alguma forma de eu escrever o incio de uma linha de comando no
prompt
>> do linux e este procurar o ltimo comando usado mais prximo (tipo
dos).
>
>ctrl+R
>
comando.
Por exemplo, suponha que voc tenha rodado o emacs e que queira rod-lo
de
novo (e que no tenha rodado mais nada que comece com e), voc digitaria:
$ !e
o comeo:
$ !?parte
********************************************************************
55
Tente colocar o ! em seguida pelo menos as duas primeiras letras do
comando,
etc...
# !vi ENTER
********************************************************************
Para: cldmxm@yahoo.com.br
Cc: linux-br@bazar.conectiva.com.br
Its believed that the following words were said by Cludio Max:
> /etc/profile
> /etc/bash.bashrc
> ~/.bashrc
56
O /etc/profile deve configurar globalmente variaveis como PATH e outras
que vc quiser
mesma do bashrc.
mv /etc/issue /etc/issue.old
> Cludio
Rodolpho
********************************************************************
carregado.
57
Vide seo INVOCATION do manual do bash.
>
> /etc/profile
> /etc/bash.bashrc
> ~/.bashrc
********************************************************************
USUARIO=`whoami`;
fi
Dvidas:
Ricardo Guedes
********************************************************************
58
From: Massahide <massahide@ig.com.br>
To: linux-br@bazar2.conectiva.com.br
Message-ID: <20031216213512.4655c159.massahide@ig.com.br>
funcionar)
> Estou com um pequeno problema desde a ultima sexta feira aqui em minha
> s que agora quando eu me conecto via SSH no consigo executar comando
>
> comando tipo: route, modprobe etc..e tal, ele no executa e d uma
********************************************************************
Para: linux-br@bazar2.conectiva.com.br
59
Buenas, depois de enviar o mail pra lista
> gimp !^
Fica a dica.
Valeu, Andre.
********************************************************************
60
De: Carlos <h4sh@globo.com>
Para: linux-br@bazar2.conectiva.com.br
>
> Tenho um script com o comando mount /mnt/cdrom e gostaria de tomar uma
********************************************************************
> Sua receita para a lista ficaria mais completa com o script por
inteiro,
Ento Godoy,
61
Usei o seu script:
===================
# by Gogoy
do
cp /etc/skel/Desktop/* $i/Desktop/
done
===================
===================
# by Gogoy
# Tiago
do
cp /etc/skel/Desktop/* /home/$i/Desktop/
done
===================
--
Abraos,
Tiago Cruz
62
Linux User # 282636
http://www.linuxrapido.linuxdicas.com.br
********************************************************************
Hash: SHA1
>
> ===================
> # by Gogoy
> # Tiago
> do
> done
> ===================
>
>
63
================
#!/bin/bash
do
mkdir -p /home/$i/Desktop
cp /etc/skel/Desktop/* /home/$i/Desktop
done
================
O segredo o '-p':
[godoy@strongwill ~/desenvolvimento/Java]$
Sds,
- --
Godoy. <godoy@metalab.unc.edu>
********************************************************************
Para: linux-br@bazar2.conectiva.com.br
64
=================
>
>Hash: SHA1
>
>>
>
>
>usurios. ;-)
Ol todos
Copiei o diretorio Desktop meu que tem bastante icones para /etc/skel
porque ele alegava que no existia.
O segundo passo foi exucutar as linhas citado acima mesmo assim no deu
certo.
65
Soluo.
cp -r /etc/skel/Desktop /home/$i/Desktop/
Funcionou beleza.
Ate mais
Anderson
********************************************************************
Para: linux-br@bazar2.conectiva.com.br
>
> Aps compilar o kernel 2.6.5 o beep do bash parou de funcionar. Todo o
--
66
Anderson Lizardo
********************************************************************
Para: linux-br@bazar2.conectiva.com.br
>
--
Anderson Lizardo
********************************************************************
Para: linux-br@bazar2.conectiva.com.br
Hash: SHA1
67
Rodrigo Tavares wrote:
>encontrado
>
Soluo 1:
Soluo 2:
- --
********************************************************************
De: Dicas-L-Owner@unicamp.br
===========================
Para manter um histrico maior dos comandos emitidos usando a shell Bash,
edite
export HISTSIZE=1000
68
export HISTFILESIZE=1000
da varivel HISTCONTROL:
export HISTCONTROL=ignoredups
--------------------------------------------------------------------
em http://www.Dicas-l.com.br/dicas-l/20050216.php
--------------------------------------------------------------------
http://www.Dicas-l.com.br/dicas-l/
http://creativecommons.org/licenses/by-nc-sa/2.0/br/deed.pt
69
--------------------------------------------------------------------
********************************************************************
Cc: linux-br@bazar2.conectiva.com.br
> ele nao poderia sair do seu $HOME ...mesmo ele digitando cd / ...pra
> descer at o raiz...ou seja, o diretorio raiz dele passaria a ser o seu
>
> possivel?
>
Mas antes crie um arvore /bin no HOME dele e copie os comandos que t
inte+
********************************************************************
Para: linux-br@bazar2.conectiva.com.br
> ele nao poderia sair do seu $HOME ...mesmo ele digitando cd / ...pra
> descer at o raiz...ou seja, o diretorio raiz dele passaria a ser o seu
70
> proprio home
>
> possivel?
Sim. Leia:
man bash
/RESTRICTED SHELL
--
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
********************************************************************
> Oi pessoal,
>
> Como eu fao para aumentar o limite de tamanho dele de 1.000 linhas
para, por
71
Ol, desculpa a demora, ando meio enrolado com a escola...
Acho que j deve ter resolvido seu problema mas mesmo assim ai vai.
HISTCONTROL=ignoredups
HISTSIZE=1000
HISTFILESIZE=1000
Qualquer duvida...
http://www.dicas-l.com.br/dicas-l/20000801.shtml
At mais...
LIVRE..."
Braslia DF
(Linux Counter,
http://counter.li.org.)
********************************************************************
72