My Favorite bash Tips and Tricks
$ echo {one,two,red,blue}
one two red blue
Usando um echo simples eu obteria o mesmo resultadoecho one two red blueMas protegendo uma lista entre chaves eu obtenho mais que isso, veja:
$ echo fish{one,two,red,blue}
fishone fishtwo fishred fishblue
$ echo {"one ","two ","red ","blue "}fish
one fish two fish red fish blue fish
Using !?text?
This will execute the most recent command that contains the word ‘text’. Example:
debian$ !?xjf?
tar -xjf hedgewars-src-0.9.14.1.tar.bz2
tar: hedgewars-src-0.9.14.1.tar.bz2: Cannot open: No such file or directory
Alternando entre opções (tab completion)
# coloque no seu ~/.inputrc # o tab completion será ativado # com alternativas usando o atalho Ctrl-i
"\C-i": menu-complete
$ cp /etc/httpd/conf/httpd.conf{,.bak}
Gerando backup de um arquivo
$ cp /etc/httpd/conf/httpd.conf{,.bak} Obs: Se você usar somente a vírgula ele imprime o nome duplicado veja... echo nome{,.sufixo} agora faça: echo nome{,.bak}
Essa abordagem (usando a expansão de variáveis) é também usada quando usamos o comando
mkdir para criar uma extutura completa de pastas:
mkdir -p docs/{img/{fotos,icons,wallpapers,svg},textos/{artigos,man},tmp} A regra aqui é a seguinte: para cada pasta que conterá subpastas use "nome/{}" dentro das chaves coloque os nomes separados por vírgula e não esqueça de usar o parâmetro '-p' no começo do comando!
O Bash simplesmente cria o arquivo 'bak' no caminho indicado sem a necessidade de fazer algo como:
$ cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
O comando cp tem ainda um jeito legal para fazer backups, no qual ele preserva
as permissões, não desreferencia links simbolicos e apenas escreve o que for mais recente.
cp -uvfa /origem /destino
- u - update
- v - verbose (detalhado)
- f - força
- a - Equivale às opções -dpR do cp
Formatando a data de um jeito mais simples:
$ date +%d-%b-%Y 12-Mar-2004 Outra possibilidade --> echo $(date +%T)Repetindo o argumento do comando anterior
ls -l /etc/passwd
vim alt-.
Na verdade o alt-. vai alternando etre agumentos dos
ultimos comandos
# pode-se usar em scripts algo assim
wget -c http://link-para-arquivo -O nome-a-ser-atribuido && chmod 700 $_
# o cifrão no comando acima corresponde ao último parâmetro do último
# comando, útil ao baixar e logo tornar executável
Para inserir todos os argumentos do último comando
!*
Para alternar entre o começo da linha e a posição atual
Ctrl-x Ctrl-x
Para exibir a vesão do bash
Ctrl-x Ctrl-v
Para fazer uma busca incremental reversa no histórico de comandos
Ctrl-r ......... comece a digitar um comando longo recém executado
Para "ver" como foi a execução do ultimo comando ping
!ping:p
Substituindo um trecho do comando anterior "use o circunflexo mesmo"
ping -c 2 www.google.com
^google^yahoo
Tabém pode ser assim:
!!:gs/foo/bar
E tem mais...
Bash Shell Shortcuts Bash, which is the default shell in Linux contains a whole lot of key bindings which makes it really easy to use . The most commonly used shortcuts are listed below : ____________CTRL Key Bound_____________ Ctrl + a - Jump to the start of the line Ctrl + b - Move back a char Ctrl + c - Terminate the command Ctrl + d - Delete from under the cursor Ctrl + e - Jump to the end of the line Ctrl + f - Move forward a char Ctrl + k - Delete to EOL Ctrl + l - Clear the screen Ctrl + r - Search the history backwards Ctrl + R - Search the history backwards with multi occurrence Ctrl + u - Delete backward from cursor Ctrl + xx - Move between EOL and current cursor position Ctrl + x @ - Show possible hostname completions Ctrl + z - Suspend/ Stop the command ____________ALT Key Bound___________ Alt + < - Move to the first line in the history Alt + > - Move to the last line in the history Alt + ? - Show current completion list Alt + * - Insert all possible completions Alt + / - Attempt to complete filename Alt + . - Yank last argument to previous command Alt + b - Move backward Alt + c - Capitalize the word Alt + d - Delete word Alt + f - Move forward Alt + l - Make word lowercase Alt + n - Search the history forwards non-incremental Alt + p - Search the history backwards non-incremental Alt + r - Recall command Alt + t - Move words around Alt + u - Make word uppercase Alt + back-space - Delete backward from cursor ----------------More Special Keybindings------------------- Here "2T" means Press TAB twice $ 2T - All available commands(common) $ (string)2T - All available commands starting with (string) $ /2T - Entire directory structure including Hidden one $ 2T - Only Sub Dirs inside including Hidden one $ *2T - Only Sub Dirs inside without Hidden one $ ~2T - All Present Users on system from "/etc/passwd" $ $2T - All Sys variables $ @2T - Entries from "/etc/hosts" $ =2T - Output like ls or dir
Abrindo o ultimo comando no vim
fc
Veja também:
Além dos atalhos acima segue a cópia do meu ~/.inputrc
Æ!!
ResponderExcluirLegal cara!
Eu estou usando set -o vi, portanto eu posso usar os atalhos do vim no bash ao invés dos atalhos padrão emacs =)
Há braços
Muito boas, Sergio!
ResponderExcluirValeu!
Lex Aleksandre
Google profile
Facebook
Twitter @aleksandre