No puedes vivir sin

0 Comments

Un alias de Bash es un método para complementar o anular comandos de Bash con otros nuevos. Los alias de Bash facilitan a los usuarios personalizar su experiencia en un terminal POSIX. A menudo se definen en HOME HOME/.bashrc o bas HOME/bash_aliases (que debe ser cargado por $HOME/.bashrc).

La mayoría de las distribuciones agregan al menos algunos alias populares en el valor predeterminado .archivo bashrc de cualquier nueva cuenta de usuario. Estos son simples para demostrar la sintaxis de un alias de Bash:

alias ls="ls -F"
alias ll="ls -lh"

no todas las distribuciones vienen con alias pre-poblados, sin embargo., Si agrega alias manualmente, debe cargarlos en su sesión de Bash actual:

$ source ~/.bashrc

de lo contrario, puede cerrar su terminal y volver a abrirlo para que vuelva a cargar su archivo de configuración.

Con esos alias definidos en su script de inicialización Bash, puede escribir ll y obtener los resultados de ls-l, y cuando escribe ls obtiene, en lugar de la salida de LS anteriores.

esos alias son geniales de tener, pero simplemente arañan la superficie de lo que es posible. Aquí están los 10 mejores alias de Bash que, una vez que los pruebes, no podrás vivir sin ellos.,

configure primero

Antes de comenzar, cree un archivo llamado ~/.bash_aliases:

$ touch ~/.bash_aliases

a Continuación, asegúrese de que este código aparece en tu ~/.bashrc file:

if ; then
source $HOME/.bash_aliases
fi

Si desea probar cualquiera de los alias de este artículo por sí mismo, introdúzcalos en su .bash_aliases, y luego cargarlos en su sesión de Bash con la fuente~/.comando bashrc.,

Ordenar por tamaño de archivo

si comenzó su vida informática con administradores de archivos GUI como Nautilus en GNOME, el Finder en MacOS o el Explorer en Windows, entonces probablemente esté acostumbrado a ordenar una lista de archivos por su tamaño. También puedes hacerlo en una terminal, pero no es exactamente sucinto.

agregue este alias a su configuración en un sistema GNU:

alias lt="ls --human-readable --size -1 -S --classify"

este alias reemplaza lt con un comando ls que muestra el tamaño de cada elemento, y luego lo ordena por tamaño, en una sola columna, con una notación para indicar el tipo de archivo., Cargue su nuevo alias, y luego pruébelo:

en MacOS O BSD, el comando ls no tiene las mismas opciones, por lo que este alias funciona en su lugar:

alias lt="du -sh * | sort -h"

los resultados de esta versión son un poco diferentes:

$ du -sh * | sort -h
0 compile
0 COPYING
0 install-sh
0 missing
4.0K configure.ac
4.0K dot-gitlab.ci.yml
4.0K flatpak.path.patch
4.0K git-portal.spec
4.0K info.slackermedia.Git-portal.json
4.0K Makefile.am
8.0K README.md
12K config.log
16K bin
24K Makefile
24K Makefile.in
32K config.status
36K LICENSE
44K aclocal.m4
60K share
140K configure
476K autom4te.cache

de hecho, incluso en Linux, ese comando es útil, ya que y enlaces simbólicos como 0 en tamaño, que puede no ser la información que realmente desea. Es tu elección.

Gracias a Brad Alexander por esta idea de alias.

ver solo unidades montadas

el comando mount solía ser muy simple., Con un solo comando, puede obtener una lista de todos los sistemas de archivos montados en su computadora, y se usa con frecuencia para obtener una visión general de las unidades conectadas a una estación de trabajo. Solía ser impresionante Ver más de tres o cuatro entradas porque la mayoría de las computadoras no tienen muchos más puertos USB que eso, por lo que los resultados fueron manejables.,

Las computadoras son un poco más complicadas ahora, y entre LVM, unidades físicas, almacenamiento en red y sistemas de archivos virtuales, los resultados de mount pueden ser difíciles de analizar:

para resolver ese problema, intente un alias como este:

alias mnt="mount | awk -F" " "{ printf \"%s\t%s\n\",\$1,\$3; }" | column -t | egrep ^/dev/ | sort"

Este alias usa awk para analizar la salida de mount por columna, reduciendo la salida a lo que probablemente esté buscando (qué discos duros, y no Sistemas de archivos, están montados):

en MacOS, el comando mount no proporciona una salida terriblemente detallada, por lo que un alias puede ser excesivo., Sin embargo, si prefiere un informe sucinto, intente esto:

alias mnt="mount | grep -E ^/dev | column -t"

los resultados:

encuentre un comando en su historial grep

a veces descubre cómo hacer algo en el terminal y prométase que nunca olvidará lo que acaba de aprender. Luego pasa una hora, y has olvidado por completo lo que hiciste.

buscar en tu historial de Bash es algo que todo el mundo tiene que hacer de vez en cuando., Si sabe exactamente lo que está buscando, puede usar Ctrl+R para hacer una búsqueda inversa a través de su historial, pero a veces no puede recordar el comando exacto que desea encontrar.

Aquí hay un alias para hacer esa tarea un poco más fácil:

alias gh="history|grep"

Aquí hay un ejemplo de cómo usarlo:

$ gh bash
482 cat ~/.bashrc | grep _alias
498 emacs ~/.bashrc
530 emacs ~/.bash_aliases
531 source ~/.bashrc

Ordenar por hora de modificación

sucede todos los lunes: te pones a trabajar, te sientas en tu computadora, abres un terminal y te encuentras con he olvidado lo que estabas haciendo el viernes pasado., Lo que necesita es un alias para listar los archivos modificados más recientemente.

Puede usar el comando ls para crear un alias que le ayude a encontrar dónde lo dejó:

alias left="ls -t -1"

la salida es simple, aunque puede ampliarla con la opción long long si lo prefiere., El alias, como se muestra, muestra esto:

$ left
demo.jpeg
demo.xcf
design-proposal.md
rejects.txt
brainstorm.txt
query-letter.xml

Count files

si necesita saber cuántos archivos tiene en un directorio, la solución es uno de los ejemplos más clásicos de construcción de comandos UNIX: lista los archivos con el comando ls, controle su salida para que sea solo una columna con la opción -1, y luego canalice esa salida al comando wc (word count) para contar cuántas líneas de archivos individuales hay.

es una brillante demostración de cómo la filosofía UNIX permite a los usuarios construir sus propias soluciones utilizando pequeños componentes del sistema., Esta combinación de comandos también es mucho para escribir si lo hace varias veces al día, y no funciona exactamente para un directorio de directorios sin usar la opción-R, que introduce nuevas líneas en la salida y hace que el ejercicio sea inútil.

en su lugar, este alias facilita el proceso:

alias count="find . -type f | wc -l"

Este cuenta los archivos, ignorando los directorios, pero no el contenido de los directorios. Si tiene una carpeta de proyecto que contiene dos directorios, cada uno de los cuales contiene dos archivos, el alias devuelve cuatro, porque hay cuatro archivos en todo el proyecto.,

$ ls
foo bar
$ count
4

crear un entorno virtual de Python

¿codifica en Python?

¿codificas mucho en Python?

si lo hace, entonces sabe que la creación de un entorno virtual de Python requiere, como mínimo, 53 pulsaciones de teclas.
eso es 49 demasiados, pero eso es fácilmente eludido con dos nuevos alias llamados ve y va:

alias ve="python3 -m venv ./venv"
alias va="source ./venv/bin/activate"

Ejecutar ve crea un nuevo directorio, llamado venv, que contiene el sistema de archivos de entorno virtual habitual para Python3., El alias va activa el entorno en tu shell actual:

$ cd my-project
$ ve
$ va
(venv) $

añadir una barra de progreso de copia

todo el mundo se burla de las barras de progreso porque son infamamente inexactas. Y sin embargo, en el fondo, todos Parece que los queremos. El comando UNIX cp no tiene barra de progreso, pero tiene la opción A-v para el nivel de detalle, lo que significa que se hace eco del nombre de cada archivo que se está copiando en su terminal. Ese es un truco bastante bueno, pero no funciona tan bien cuando estás copiando un archivo grande y quieres alguna indicación de cuánto del archivo aún no se ha transferido.,

el comando pv proporciona una barra de progreso durante la copia, pero no es común como una aplicación predeterminada. Por otro lado, el comando rsync está incluido en la instalación predeterminada de casi todos los sistemas POSIX disponibles, y es ampliamente reconocido como una de las formas más inteligentes de copiar archivos tanto de forma remota como local.

mejor aún, tiene una barra de progreso incorporada.,

alias cpv="rsync -ah --info=progress2"

usar este alias es lo mismo que usar el comando cp:

$ cpv bigfile.flac /run/media/seth/audio/
3.83M 6% 213.15MB/s 0:00:00 (xfr#4, to-chk=0/4)

un efecto secundario interesante de usar este comando es que rsync copia ambos archivos y directorios sin la BANDERA-r que cp requeriría de otra manera.

Protéjase de los accidentes de eliminación de archivos

no debe usar el comando rm. El manual de rm incluso lo dice:

advertencia: si usa ‘rm’ para eliminar un archivo, generalmente es posible recuperar el contenido de ese archivo., Si quieres más seguridad de que el contenido es realmente irrecuperable, considera usar ‘shred’.

Si desea eliminar un archivo, debe moverlo a la papelera, al igual que cuando usa un escritorio.

POSIX hace esto fácil, porque la papelera es una ubicación accesible y real en su sistema de archivos. Esa ubicación puede cambiar, dependiendo de su plataforma: en una FreeDesktop, la papelera se encuentra en ~/.local / Compartir / basura, mientras que en MacOS es~/.,Papelera, pero de cualquier manera, es solo un directorio en el que se colocan los archivos que desea fuera de la vista hasta que esté listo para borrarlos para siempre.

este alias simple proporciona una forma de lanzar archivos a la papelera desde su terminal:

alias tcn="mv --force -t ~/.local/share/Trash "

este alias utiliza un indicador MV poco conocido que le permite proporcionar el archivo que desea mover como argumento final, ignorando el requisito habitual para que ese archivo se enumere primero., Ahora puede usar su nuevo comando para mover archivos y carpetas a la Papelera de su sistema:

$ ls
foo bar
$ tcn foo
$ ls
bar

ahora el archivo «se ha ido», pero solo hasta que se dé cuenta en un sudor frío que todavía lo necesita. En ese punto, puede rescatar el archivo de la Papelera de su sistema; asegúrese de inclinar a los desarrolladores de Bash y mv en la salida.

Nota: Si necesita un comando de basura más robusto con mejor cumplimiento de FreeDesktop, consulte Trashy.

Simplifique su flujo de trabajo de Git

todo el mundo tiene un flujo de trabajo único, pero generalmente hay tareas repetitivas sin importar qué., Si trabajas con Git de forma regular, entonces probablemente haya alguna secuencia que te encuentres repitiendo con bastante frecuencia. Tal vez te encuentres volviendo a la rama principal y tirando de los últimos cambios una y otra vez durante el día, o tal vez te encuentres creando etiquetas y luego empujándolas al control remoto, o tal vez sea algo completamente diferente.

no importa qué conjuro de Git te hayas cansado de escribir, es posible que puedas aliviar un poco el dolor con un alias de Bash., En gran parte gracias a su capacidad para pasar argumentos a hooks, Git tiene un rico conjunto de comandos introspectivos que te ahorran tener que realizar hazañas extrañas en Bash.

por ejemplo, si bien es posible que tengas dificultades para localizar, en Bash, el directorio de nivel superior de un proyecto (que, en lo que respecta a Bash, es una designación totalmente arbitraria, ya que el nivel superior absoluto de un equipo es el directorio raíz), Git conoce su nivel superior con una simple consulta., Si estudias en Git hooks, descubrirás todo tipo de información de la que Bash no sabe nada, pero puedes aprovechar esa información con un alias de Bash.,

Aquí hay un alias para encontrar el nivel superior de un proyecto Git, sin importar en qué parte de ese proyecto esté trabajando actualmente, y luego cambiar el directorio a él, cambiar a la rama maestra y realizar una extracción de Git:

alias startgit="cd `git rev-parse --show-toplevel` && git checkout master && git pull"

Este tipo de alias no es de ninguna manera un alias universalmente útil, pero demuestra cómo un alias relativamente simple puede eliminar una gran cantidad de navegación laboriosa, comandos y espera de indicaciones.

Un alias más simple, y probablemente más universal, te devuelve al nivel superior del proyecto Git., Este alias es útil porque cuando estás trabajando en un proyecto, ese proyecto se convierte más o menos en tu directorio «hogar temporal». Debería ser tan simple ir a «casa» como ir a tu casa real, y aquí hay un alias para hacerlo:

alias cg="cd `git rev-parse --show-toplevel`"

ahora el comando cg te lleva a la parte superior de tu proyecto Git, sin importar cuán profundo hayas descendido en su estructura de directorios.,

cambiar directorios y ver el contenido al mismo tiempo

Una vez fue (supuestamente) propuesto por un científico líder que podríamos resolver muchos de los problemas de energía del planeta aprovechando la energía gastada por geeks escribiendo cd seguido de ls.
Es un patrón común, porque generalmente cuando cambias directorios, tienes el impulso o la necesidad de ver lo que hay alrededor.

pero «caminar» el árbol de directorios de su computadora no tiene que ser un proceso de inicio y parada.

Este está haciendo trampa, porque no es un alias en absoluto, pero es una gran excusa para explorar las funciones de Bash., Mientras que los alias son excelentes para sustituciones rápidas, Bash le permite agregar funciones locales en su .archivo bashrc (o un archivo de funciones separado en el que se carga .bashrc, tal como lo hace su archivo de alias).

para mantener las cosas modulares, cree un nuevo archivo llamado~/.bash_functions y luego tener su .,bashrc load it:

if ; then
source $HOME/.bash_functions
fi

en el archivo de funciones, agregue este código:

cargue la función en su sesión de Bash y luego pruébela:

$ source ~/.bash_functions
$ cl Documents
foo bar baz
$ pwd
/home/seth/Documents
$ cl ..
Desktop Documents Downloads

$ pwd
/home/seth

Las funciones son mucho más flexibles que los alias, pero con esa flexibilidad viene la responsabilidad de asegurarse de que su código tenga sentido y haga lo que espera. Los alias están destinados a ser simples, así que manténgalos fáciles, pero útiles. Para modificaciones serias a cómo se comporta Bash, use funciones o scripts de shell personalizados guardados en una ubicación en su ruta.,

para el registro, hay algunos hacks inteligentes para implementar la secuencia de cd y ls como un alias, por lo que si eres lo suficientemente paciente, entonces el cielo es el límite incluso usando alias humildes.

iniciar aliasing y funcionamiento


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *