Solo una pregunta rápida. ¿Es posible tabular la salida en Ubuntu 16.04 LTS? He creado dos imágenes a continuación para tratar de ilustrar lo que quiero decir con esto.
Solo una pregunta rápida. ¿Es posible tabular la salida en Ubuntu 16.04 LTS? He creado dos imágenes a continuación para tratar de ilustrar lo que quiero decir con esto.
Respuestas:
Podría hacer algo como esto, con descriptores de archivo:
guardar el descriptor de salida actual para que podamos restaurarlo más tarde
exec 3>&1
redirigir la secuencia de salida a una sustitución de proceso que inserte la pestaña, por ejemplo
exec 1> >(paste /dev/null -)
A partir de este punto, cualquier proceso que escriba en la salida estándar tendrá esa salida 'filtrada' a través del paste
comando para insertar pestañas al inicio.
Cuando haya terminado, puede reanudar el comportamiento normal restaurando el descriptor de archivo guardado y cerrando el temporal
exec 1>&3 3>&-
less
herramientas similares para permitir el desplazamiento de la salida, como por ejemplo man
.
Entiendo que esta respuesta no es óptima para usted, pero podría hacer una función Bash con el nombre simple _
(o cualquier otra cosa que aún no se use) que ejecute el comando que obtiene como argumentos y sangra todo su resultado con una pestaña.
Un ejemplo:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
El código de esta función solo sería este:
_(){ sed "s/^/\t/" <($*); }
Puede agregarlo a su ~/.bashrc
archivo para que esté disponible en todas las sesiones de Bash de su usuario ejecutando:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Si desea que esté disponible para todos los usuarios, añádalo en su /etc/bash.bashrc
lugar (requiere derechos de administrador):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
Alternativamente, también podría crear un archivo de script como /usr/local/bin/_
el siguiente contenido para lograr lo mismo sin las funciones Bash y para todos los usuarios:
#!/bin/bash
sed "s/^/\t/" <($*)
Debe hacer que el script sea ejecutable después de guardar el archivo usando
sudo chmod +x /usr/local/bin/_
Con echo
específicamente, se puede tener escapes interpretar como barra invertida \t
(una tabulación ) con el -e
interruptor:
echo -e "\tHello World"
Pero difícilmente sería factible (o probablemente posible) modificar la salida de cada comando de esa manera. Si su objetivo es la facilidad de lectura, es posible que desee personalizar la apariencia (por ejemplo, el color) de su símbolo del sistema, como se muestra aquí:
Puede personalizar su solicitud cambiando el contenido de la variable de entorno PS1
. Puede ver un pequeño ejemplo de cómo hacerlo en la publicación del blog de la que proviene la captura de pantalla anterior. Cómo usar las llamadas secuencias de escape ANSI en detalle, cómo usar herramientas que sean más cómodas, cómo aplicar los cambios por defecto en los nuevos terminales, etc., están más allá del alcance de esta respuesta. Pero si decide utilizar esa técnica, hay muchos tutoriales e información adicional en la web.
YOUR COMMAND | indent
o si tiene que escribir otro comando delante de él (incluso podría ser solo un guión bajo) como_ YOUR COMMAND
?