Índice
- 1 1. Executa o último comando con !!
- 2 2. Executa o último comando pero corrixindo un erro de dixitación
- 3 3. Invoca un editor de texto para introducir un comando longo
- 4 4. Executa un comando sen gardalo no historial
- 5 5. Configure automaticamente o último parámetro dun comando
- 6 6. Executa un comando nun momento especificado
- 7 7. Obtén a túa IP externa
- 8 8. Aprende a usar Ctrl + u e Ctrl + y
- 9 9. Limpa o terminal facilmente
- 10 10. Vaia a un directorio, execute un comando e volva ao directorio actual
- 11 Yapa. Enumere os comandos máis usados
1. Executa o último comando con !!
O título di todo, só tes que introducir o seguinte nun terminal ...
!!
… Para volver executar o último comando introducido. Este truco é moi útil cando esquecemos entrar sudo ao comezo. Nese caso, tería que introducir:
sudo!!
Para descubrir formas máis complexas de sacar o máximo proveito a este truco, recoméndovos ler isto posto antigo.
2. Executa o último comando pero corrixindo un erro de dixitación
Este truco é realmente útil cando introducimos un comando cun simple erro de dixitación. Por exemplo, se executamos:
eco "desdelinuxz"
Podes corrixilo introducindo o seguinte:
^z
3. Invoca un editor de texto para introducir un comando longo
Ás veces necesitas introducir infinitas ordes no terminal. Nese caso, a axuda dun simple editor de texto, como nano ou emacs, pode ser útil.
Para abrir o editor, só tes que premer Ctrl + x + e nun terminal. O texto que introduciu ata o momento copiarase no editor de texto unha vez aberto.
Pola súa banda, o editor empregado será o especificado na variable $ EDITOR. Para cambiar esta configuración, é posible executar ...
exportar EDITOR = nano
... Substituíndo nano polo teu editor preferido.
4. Executa un comando sen gardalo no historial
Un auténtico hacker non pode ignorar este truco. Como todo o mundo sabe, bash garda o historial dos comandos executados, ao que é moi sinxelo acceder mediante as frechas do teclado ou Ctrl + R (para realizar un busca inversa na historia).
Neste caso, o que tes que facer para que o comando introducido non se garde no historial é poñer un espazo diante:
comando
5. Configure automaticamente o último parámetro dun comando
Supoñamos que o comando executado anteriormente foi
cp file.txt / var / www / wp-content / uploads / 2009/03 /
Para acceder ao directorio en cuestión, pode introducir o comando cd seguido por Alt +. o Esc +. :
cd 'ALT +.'
Esta é só unha forma abreviada de entrar:
cd / var / www / wp-content / uploads / 2009/03 /
6. Executa un comando nun momento especificado
Si, si, para iso existe cron. Non obstante, ás veces queremos executar un comando para executalo nun determinado momento pero só unha vez.
Supoñamos que queremos executar o comando ls -l á media noite. Nese caso, debemos executalo do seguinte xeito:
eco "ls -l" | á media noite
7. Obtén a túa IP externa
Grazas ao servizo prestado por http://ifconfig.me/ É posible coñecer varios datos da súa conexión a Internet, directamente desde o terminal:
curl ifconfig.me/ip // dirección IP curl ifconfig.me/host // Servidor remoto curl ifconfig.me/ua // Axente de usuario curl ifconfig.me/port // Port
8. Aprende a usar Ctrl + u e Ctrl + y
Cantas veces che ocorreu que comezaches a escribir un comando e recordabas que antes era necesario facer outra cousa? Ben, é posible facer unha especie de corte-pegar para que despois sexa máis doado volver a ingresar o comando que quedou á metade.
Supoñamos que comezou a escribir ...
cd / home / usuario
e recordou que antes había que comprobar algo no directorio actual. Nese caso prema Ctrl + u (Sería algo así como un "corte").
Introduza o comando que había que executar primeiro. Supoña que ...
ls -l
... e logo prema Ctrl + y (Funciona como un "pegar").
9. Limpa o terminal facilmente
con Ctrl + l o terminal pódese limpar nun instante.
10. Vaia a un directorio, execute un comando e volva ao directorio actual
Este truco é unha delicia. Para executar unha serie de comandos sen saír do directorio actual, só hai que agrupalos entre parénteses. Como case todo o mundo sabe, para executar unha serie de comandos, ten que concatealos usando &&. Usando estes conceptos, podemos executar algo como o seguinte:
(cd / tmp && ls)
O resultado deste comando (fíxate entre parénteses) será unha lista dos ficheiros e directorios dentro do cartafol / Tmp. Todo sen saír do noso directorio actual. Unha xoia!
Yapa. Enumere os comandos máis usados
Para velos comandos máis usados só tes que executar o seguinte:
historia | awk '{a [$ 2] ++} END {for (i in a) {print a [i] "" i}}' | ordenar -rn | cabeza
No meu caso, os gañadores foron:
450 yaourt 415 sudo 132 git 99 cd 70 leafpad 70 killall 68 ls 52 pacman 50 xrandr 45 top
Recoméndovos visitalos aos fanáticos do terminal, como este servidor liña de comandos. Ademais, por que non, non deixes de mirar o Archivo do noso blogue.
30 comentarios, deixa os teus
Houbo un que usei que omitía maiúsculas no meu inputrc, porque sinceramente moitos ficheiros que comezaban así se escorregarían en min.
Creo que un dos máis importantes é o comando history no que devolve unha lista numerada
dos comandos que usou e se quere usar algún deles só use a seguinte liña
! 22
que executará o comando que está no seu historial no número 22 😀
Para buscar un comando con autocompletar é
ctrl + r
Tamén uso sempre Ctrl + r para repetir o último comando; unha vez que apareza o último, pode desprazarse cara atrás polo historial premendo Up Pag (frecha cara arriba).
Saúdos.
Bo artigo. Grazas por compartir eses consellos.
Quero compartir un que uso a diario, que é 'fg', que che permite abrir as aplicacións que detiviches anteriormente con 'Ctrl + z'.
E con 'bg' envialas a segundo plano 🙂
Mírate ... bo truco! Grazas por compartilo.
Abrazo! Paul.
A publicación é excelente, sempre fan que recordes cousas que sabías e que eventualmente esqueciches, pero que son realmente útiles.
Os trucos de terminal sempre son benvidos.
Increíblemente non sabía que a historia engadiu un espazo ao comando.
Moitas grazas, Saúdos !!
para usar o historial de filtrado completado automaticamente engada no ficheiro $ HOME / .inputrc
"\ E [5 ~": historial-busca-atrás
"\ E [6 ~": historial-busca-adiante
e por exemplo nalgún momento empregara:
$ cd / one / path / longer / than / the / shit
e agora quere usalo de novo, ten que facer:
$cd
e logo prema as teclas "Páxina arriba" ou "Páxina abaixo" para navegar por todos os comandos do historial que comezaron con "cd".
OU ... Sen editar nada, preme Ctrl + R e logo cd (se quere buscar algo con 'cd') e premendo Ctrl + R varias veces verá todos os comandos que o conteñen ata chegar ao que desexa. Obviamente, se é o inmediatamente anterior, obterás un.
Moi bo!
En realidade ls / tmp debería ser suficiente para listar o directorio sen saír do actual.
Tamén pode concatenar o comando usando ";" como no exemplo n ° 10 sería así:
(cd / tmp; ls)
lembranzas
El ";" Funciona de xeito diferente ao "&&" (e), cando facemos comando-1 && comando-2, o segundo comando só se executa se a saída do primeiro é "0", é dicir, sen erro. No caso do punto e coma, o segundo comando execútase independentemente da saída do primeiro. Para ampliar, existe o operador «||» (ou), neste caso o segundo comando só se executa se o primeiro lanza un erro na saída. Saúdos.
Para que cada liña que recorda o historial teña data e hora, hai unha variable de entorno no ~ .bashrc do usuario normal ou root.
# nano .bashrc
exportar HISTTIMEFORMAT = »% F% T»
# historia
492 2014-09-02 14:25:57 revdep-rebuild -i -v
493 2014-09-02 14:31:14 eclean-dist -d
494 2014-09-02 14:31:23 localepurge -v
495 2014-09-02 14:31:29 etc-update
496 2014-09-02 14:31:54 emerxer –depclean –pretend
497 2014-09-02 14:39:08 actualizadob
Hai máis opcións, que son para a cantidade de liñas que aforra, estou probándoas.
Moi bo post. Realmente moi útil. O truco número 4, o de executar un comando sen que se gardase no historial, só funcionou para min en Ubuntu, non en Debian ou Centos.
Funcionou para min en raspbian e non en arch.
Merveilleux!!
Ola,
que poñer un espazo antes de executar un comando para que non se rexistre no historial, xa que non funciona ...
[usuario @ host /] $ ls -l
104 total
dr-xr-xr-x. 2 raíz raíz 4096 21 ago 03:55 bin
dr-xr-xr-x. 5 raíz raíz 3072 20 de agosto 17:26 arranque
drwxr-xr-x. 2 raíz raíz 4096 9 de decembro de 2013 cgroup
[usuario @ host /] $ historial
1024 ls
1025 ls
1026 historia
1027 ls -l
1028 historia
interesante artigo ..
cumprimento
Sentímolo, por non ler todas as publicacións,
A proba tamén se fai en centos.
Bo con Ctrl + U e Ctrl + Y.
No meu sistema, a lista de comandos máis usados funcionou para min cambiando a variable a $ 5.
Exemplo de saída:
1122 sudo
362 ls
279 despexado
214 cd
142 cavar
141 xaurt
130 vnstat
122 mv
112 viu
112 historia
Isto ocorre porque no meu ficheiro .bashrc teño a seguinte liña:
# Amosar a data ao comando historial
exportar HISTTIMEFORMAT = '% F% T:'
Estou case seguro de que moitos por aquí usaron varios terminais ao mesmo tempo.
Agora, non sei se dicirche que é un truco para o terminal, pero como normalmente teño moitas fiestras ou uso a pantalla para ter varios terminais abertos, isto habilita calquera comando introducido nun deses terminais, xa que se reflectirá en .
Isto vai no ficheiro .bashrc:
HISTSIZE = 90000
HISTFILESIZE = $ HISTSIZE
HISTCONTROL = ignorespace: ignoredups
historial () {
_bash_history_sync
historial incorporado "$ @"
}
_bash_history_sync () {
historia incorporada -a # 1
HISTFILESIZE = $ HISTSIZE # 2
historia incorporada -c # 3
historia incorporada -r # 4
}
PROMPT_COMMAND = _bash_history_sync
Moi boa achega! Grazas por pasar.
Abrazo! Paul.
Parabéns polo artigo.
Moi práctico e aprendín algúns comandos.
Aínda que xa teño algo de "experiencia" nestes asuntos, sempre se agradecen estes trucos, así que ... polo baúl dos trucos !!!
xenial, grazas polos trucos, son realmente útiles 😀
Os camiños da consola son inescrutables 😉
O truco de premer control + u e control + y non depende do shell, senón da configuración que ten o tty. A día de hoxe, baixo linux, as entidades son entidades moi complexas, de feito estiven investigando o seu funcionamento e podo asegurar que teñen moitos máis detalles do que parece. O tty ten algúns caracteres de control que cambian o seu estado, por exemplo a min sucedeume ás veces que fago un gato nun ficheiro binario e, despois de que apareza todo o "lixo" na pantalla, o aviso semella estraño ou con outro codificación. Isto ocorre porque nun ficheiro aleatorio hai unha alta probabilidade de atopar caracteres de control tty.
Por exemplo, executa isto nun intérprete de comandos:
imprimir '33c'
Isto borrará a pantalla (coma se foses claro).
Outras combinacións, como control + L para limpar a pantalla, proceden do propio shell que se está a usar, as clásicas / bin / shells normalmente non traen esta característica.
Ademais, hoxe hai moitas opcións complexas para manexar ficheiros e sockets baixo Linux. Por exemplo, se abre un dispositivo tty usando open (), no modo AIO (entrada / saída asíncrona), o proceso recibirá un SIGIO cada vez que haxa datos dispoñibles no buffer de entrada.
Se, por exemplo, bash funciona simplemente lendo as liñas e executando comandos (como fai cando se executa un script), ao premer control + L, esta secuencia de caracteres simplemente incluiríase como parte dos comandos, pero xa que bash ten o control do buffer de a entrada pode detectalo.
Por exemplo, ás veces ao programar usei fcntl para obter un búfer de entrada sen bloqueo, que usei incluso coas bibliotecas ncurses (manipule o control tty antes de iniciar ncurses no programa).
Saúdos!
Para aqueles que non traballaron co espazo ao comezo e quizais para engadilo á nota, hai unha variable chamada HISTIGNORE onde o carácter que se engade antes dun comando está configurado para ser ignorado no historial.
Nalgunhas instalacións esta variable non procede
Un saúdo e bo post! directo aos favoritos!
Teña en conta que nos comentarios tamén vin varias cousas interesantes .. !!
Todo realmente moi útil. Grazas.