Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaPróxima revisiónAmbos lados, revisión siguiente |
es:howtos:software:efficient_cli_navigation [2019/08/28 14:15 (UTC)] – [Bash Completion] slackwarespanol | es:howtos:software:efficient_cli_navigation [2019/08/28 15:23 (UTC)] – [Stack (pila) de directorios en bash] slackwarespanol |
---|
<code>cd da[TAB]p[TAB]p[TAB]e[TAB]c[TAB]</code> | <code>cd da[TAB]p[TAB]p[TAB]e[TAB]c[TAB]</code> |
| |
If each directory contained only one subdirectory, I could have done the following: | Si cada directorio contuviera solo un subdirectorio, podría haber hecho lo siguiente: |
| |
<code>cd [TAB][TAB][TAB][TAB][TAB]</code> | <code>cd [TAB][TAB][TAB][TAB][TAB]</code> |
| |
Not only does the bash completion reduce the number of key strokes, but it also comes handy if you do not remember directory names. | El autocpmpletado de bash no solo reduce la cantidad de pulsaciones de teclas, sino que también resulta útil si no recuerda los nombres de directorio. |
| |
Please note that bash completion works also on files: | Tenga en cuenta que el autocpmpletado de bash también funciona en archivos: |
| |
<code>$ cp data/projects/scripts/sync-script.sh .</code> | <code>$ cp data/projects/scripts/sync-script.sh .</code> |
| |
Keystrokes used: | Pulsaciones de teclas utilizadas: |
| |
<code>$ cp d[TAB]p[TAB]s[TAB]s[TAB] .</code> | <code>$ cp d[TAB]p[TAB]s[TAB]s[TAB] .</code> |
| |
The dot (.) represents the current directory so the command will copy ''sync-script.sh'' to the current directory. | El punto (.) representa el directorio actual, por lo que el comando copiará '' sync-script.sh '' al directorio actual. |
| |
===== Programmable Bash Completion ===== | ===== Autocompletado de Bash Programmable ===== |
| |
To take advantage of all Bash completion features, you need to install an additional package from ''/extra'': | Para aprovechar todas las funciones de autocompletado de Bash, debe instalar un paquete adicional desde '' / extra '': |
| |
<code># slackpkg install bash-completion</code> | <code># slackpkg install bash-completion</code> |
===== CDPATH ===== | ===== CDPATH ===== |
| |
If you work in certain directories on a regular basis, you might want to include them in the $CDPATH variable. Suppose you often work in the ''slackbuilds'' directory which contains some builds: | Si trabaja en ciertos directorios de manera regular, es posible que desee incluirlos en la variable $ CDPATH. Suponga que a menudo trabaja en el directorio '' slackbuilds '' que contiene algunas compilaciones: |
| |
<code>$ cd ~/data/projects/slackbuilds/ | <code>$ cd ~/data/projects/slackbuilds/ |
<code>CDPATH=$CDPATH:~/data/projects/slackbuilds/</code> | <code>CDPATH=$CDPATH:~/data/projects/slackbuilds/</code> |
| |
Please note the path included in the CDPATH variable is the path to the **parent directory** where the said directories are located. | Tenga en cuenta que la ruta incluida en la variable CDPATH es la ruta al ** directorio padre ** donde se encuentran dichos directorios. |
| |
After you have sourced ''.bashrc'' (''source ~/.bashrc''), you can ''cd'' to any of those directories from any place: | Después de obtener '' .bashrc '' ('' source ~ / .bashrc ''), puede '' cd '' a cualquiera de esos directorios desde cualquier lugar: |
| |
<code>$ pwd | <code>$ pwd |
/home/user/data/projects/slackbuilds/yajl</code> | /home/user/data/projects/slackbuilds/yajl</code> |
| |
If you would like to enable Tab completion within the directories added through the CDPATH variable, you need to install ''bash-completion'' from Slackware's ''/extra'' directory. | |
| |
<note important>It is NOT recommended to give your directories names similar to the system ones, eg. ''usr'', ''etc'', which can result in unpredictable behaviour.</note> | Si desea habilitar el autocompletado de TAB dentro de los directorios agregados a través de la variable CDPATH, debe instalar '' bash-complete '' desde el directorio '' / extra '' de Slackware. |
| |
===== Symlinks ===== | <note important>NO se recomienda dar a sus directorios nombres similares a los del sistema, por ejemplo. '' usr '', '' etc '', que puede dar lugar a un comportamiento impredecible.</note> |
| |
In some situations you may consider using [[slackbook:shell?s[]=symlinks#linking|symlinks]] to create //shortcuts// to regularly visited directories: | ===== Enlaces simbólicos ===== |
| |
| En algunas situaciones, puede considerar usar [[slackbook: shell? S [] = enlaces simbólicos # vinculación | enlaces simbólicos]] para crear // accesos directos // a directorios visitados regularmente: |
| |
<code>$ ln -s /home/user/data/projects/scripts/slackbuilds ./slackbuilds</code> | <code>$ ln -s /home/user/data/projects/scripts/slackbuilds ./slackbuilds</code> |
| |
| |
===== Bash Aliases ===== | ===== Alias Bash ===== |
| |
You can make your life easier by creating aliases (= shortcuts) for commands that you use often. The syntax is very simple: | Puede facilitarle la vida creando alias (= accesos directos) para los comandos que utiliza con frecuencia. La sintaxis es muy simple: |
| |
<code>name_of_the_alias='value'</code> | <code>name_of_the_alias='value'</code> |
| |
You can place your aliases in ''~/.bashrc''. You might need to create this file. Each time you edit this file you need to ''source'' it afterwards for the changes to take effect: | Puede colocar sus alias en '' ~ /.bashrc ''. Es posible que deba crear este archivo. Cada vez que edite este archivo, debe '' recargar '' después para que los cambios surtan efecto: |
| |
<code>source ~/.bashrc</code> | <code>source ~/.bashrc</code> |
| |
or | o |
| |
<code>. ~/.bashrc</code> | <code>. ~/.bashrc</code> |
| |
When it comes to navigation, one could, for example, create a few aliases to speed up navigating up the directory tree: | Cuando se trata de navegación, uno podría, por ejemplo, crear algunos alias para acelerar la navegación en el árbol de directorios: |
| |
<code>alias 1.='cd .. ; pwd' | <code>alias 1.='cd .. ; pwd' |
alias 4.='cd ../../../.. ; pwd'</code> | alias 4.='cd ../../../.. ; pwd'</code> |
| |
The value of an alias can be quite complex. As you can see, ''4.'' will first change directories ''cd ../../../..'' and then print the current working directory - ''pwd''. Please note a semi-colon ('';'') separating the commands. | El valor de un alias puede ser bastante complejo. Como puede ver, '' 4. '' primero cambiará los directorios '' cd ../../../ .. '' y luego imprimirá el directorio de trabajo actual - '' pwd ''. Tenga en cuenta un punto y coma (''; '') que separa los comandos. |
| |
<code>$ cd data/projects/python-dir/euler/ | <code>$ cd data/projects/python-dir/euler/ |
/home/user/data</code> | /home/user/data</code> |
| |
Aliases can be used in a number of different ways. A few more examples: | Los alias se pueden usar de diferentes maneras. Algunos ejemplos más: |
| |
<code>alias epyt='emacs -nw /home/user/data/projects/python-dir/euler/32-problem.py' | <code>alias epyt='emacs -nw /home/user/data/projects/python-dir/euler/32-problem.py' |
alias slacktop='ssh user@slacktop'</code> | alias slacktop='ssh user@slacktop'</code> |
| |
===== Directory Stack ===== | ===== Stack (pila) de directorios en bash ===== |
| |
| BASH presenta algunos complementos útiles de la pila de directorios que lo ayudan a navegar por los directorios visitados recientemente. |
| |
BASH features some helpful directory stack buildins that help you navigate recently visited directories. | |
| |
* ''pushd'' - push a directory into the directory stack and ''cd'' to it. | * ''pushd'': guarda el directorio actual al principio del stack de directorios. Si le pasamos como parámetro un directorio guardará el directorio actual y el especificado (este último primero). |
* ''popd'' - remove a directory from the directory stack and ''cd'' to it. | * ''popd'': elimina el primer directorio del stack de directorios y hace un «cd» contra ese directorio. |
* ''dirs'' - display the list of the directories in the stack. | * ''dirs'': muestra el listado de directorios almacenados en el stack. |
| |
==== How does it work in practice? ==== | ==== How does it work in practice? ==== |