Просто швидке запитання. Чи можна вкладати вихід на Ubuntu 16.04 LTS? Я створив два зображення нижче, щоб спробувати проілюструвати, що я маю на увазі під цим.
Просто швидке запитання. Чи можна вкладати вихід на Ubuntu 16.04 LTS? Я створив два зображення нижче, щоб спробувати проілюструвати, що я маю на увазі під цим.
Відповіді:
Ви можете зробити щось подібне - з дескрипторами файлів:
збережіть дескриптор поточного виводу, щоб ми могли його відновити пізніше
exec 3>&1перенаправити вихідний потік на підстановку процесу, яка вставляє вкладку - наприклад
exec 1> >(paste /dev/null -)З цього моменту будь-який процес, який записує до стандартного виводу, отримає такий результат "відфільтрований" через pasteкоманду для вставки вкладки на початку.
Після закінчення роботи можна відновити нормальну поведінку, відновивши збережений дескриптор файлів і закривши тимчасовий
exec 1>&3 3>&-lessабо подібні інструменти, щоб дозволити прокручування результатів, наприклад, наприклад man.
Я розумію, що ця відповідь не є оптимальною для вас, але ви можете зробити функцію Bash з простою назвою _(або ще будь-яким іншим, яке ще не використовується), яке виконує команду, яку вона отримує, як аргументи та відступ усього її результату на вкладці.
Приклад:
$ _ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04 LTS
Release: 16.04
Codename: xenial
Код цієї функції був би лише таким:
_(){ sed "s/^/\t/" <($*); }
Ви можете додати його до свого ~/.bashrcфайлу, щоб він був доступний у всіх сесіях Bash вашого користувача, виконавши:
echo '_(){ sed "s/^/\t/" <($*); }' >> ~/.bashrc
Якщо ви хочете зробити його доступним для всіх користувачів, додайте його /etc/bash.bashrcзамість нього (потрібні права адміністратора):
echo '_(){ sed "s/^/\t/" <($*); }' | sudo tee -a /etc/bash.bashrc
Крім того, ви можете також створити файл сценарію, як /usr/local/bin/_із наведеним нижче вмістом, щоб досягти того ж без функцій Bash та для всіх користувачів:
#!/bin/bash
sed "s/^/\t/" <($*)
Ви повинні зробити сценарій виконуваним після збереження файлу за допомогою
sudo chmod +x /usr/local/bin/_
З echoконкретно, ви можете мати його інтерпретувати як зворотний слеш \t(а табулятори ) з -eперемикачем:
echo -e "\tHello World"
Але навряд чи можливо (можливо, можливо) змінити вихідний результат кожної команди таким чином. Якщо легкість читання є вашою метою, ви, можливо, захочете вивчити налаштування вигляду (наприклад, забарвлення) вашого командного рядка, як показано тут:

Ви можете налаштувати своє запит, змінивши вміст змінної середовища PS1. Ви можете побачити невеликий приклад того, як це зробити у публікації блогу, з якого зроблено знімок екрана. Як детально використовувати ці так звані послідовності відходу ANSI, як використовувати зручніші інструменти, як зміни, застосовані за замовчуванням у нових терміналах тощо, не виходять за рамки цієї відповіді. Але якщо ви вирішили скористатися цією методикою, в Інтернеті є багато навчальних посібників та додаткової інформації.
YOUR COMMAND | indentабо якщо вам доведеться набрати перед нею іншу команду (навіть це може бути лише підкреслення), як_ YOUR COMMAND?