Просто быстрый вопрос. Можно ли вкладывать вывод на 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
?