Просто быстрый вопрос. Можно ли вкладывать вывод на 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. Вы можете увидеть небольшой пример того, как это сделать, в сообщении блога, с которого сделан скриншот выше. Как подробно использовать эти так называемые escape-последовательности ANSI, как использовать более удобные инструменты, как применять изменения по умолчанию в новых терминалах и т. Д., Выходит за рамки этого ответа. Но если вы решите использовать эту технику, в Интернете есть множество учебных пособий и дополнительной информации.
YOUR COMMAND | indentили если вам нужно было набрать другую команду перед ней (может быть только подчеркивание), как_ YOUR COMMAND?