Вы можете использовать:
pr -t -2 file
Остерегайтесь, он обрезает строки, ширина которых превышает половину ширины страницы (72 символа по умолчанию, см. - w
возможность изменить его).
(обратите внимание, что с реализацией GNU выравнивание столбцов может быть отключено, если файл содержит многобайтовые символы, символы нулевой или двойной ширины ). Или:
pr -t -2 -s file
, чтобы разделить столбцы одним символом табуляции, например paste
(тогда усечения нет).
Обратите внимание, что pr
обрабатывает символ перевода страницы ( ^ L
) как разделитель страниц. Не проблема, если этого символа нет в вашем файле.
Или с помощью zsh
:
print -r -C2 -- ${(f)"$(
$ (: получить содержимое файла
(f)
: разделить его в строке f символы eed (новая строка) -r
: print r aw -C2
: в 2 C столбцах. Обычно диспетчеры отображения X запускают сценарий оболочки / etc / X11 / Xsession
, и этот сценарий создает или запускает сценарии из каталога ] /etc/X11/Xsession.d
.
В семействе дистрибутивов Ubuntu (и, возможно, в других производных от Debian) один из стандартных файлов в этом каталоге является источником файла .xsessionrc
в вашем домашнем каталоге, если он существует (он не , по умолчанию).
Если вы создаете этот файл, вы можете поместить в него соответствующие команды, включая поиск другого файла . * Rc
или другую команду. В основном полезно устанавливать переменные среды для приложений, не являющихся оболочкой (то есть приложений, которые не работают в какой-либо эмуляции терминала).
Примечания:
.xsessionrc
отсутствует. Вам следует проверить каталог /etc/X11/Xsession.d
. Источник .xsessionrc
пользователя обычно выполняется с помощью сценария /etc/X11/Xsession.d/40x11-common_xsessionrc
. Если этот файл не существует, и никакой другой сценарий не является источником вашего .xsessionrc
, вы всегда можете добавить свой собственный сценарий для его создания. / etc / X11 / Xsession
, обычно называется / bin / sh
- которая может быть или не быть символической ссылкой на вашу любимую оболочку. Вы должны проверить возможности этой оболочки. Например, использование [[
] может не работать. . Команды
и экспорт
обычно безопасны. .zshrc
- это конфигурационный файл zsh. Он считывается при запуске интерактивного экземпляра zsh. Интерактивная оболочка - это оболочка, с которой вы взаимодействуете на терминале. Вход в систему с графическим интерфейсом не включает интерактивную оболочку (и, кстати, вообще не включает zsh в обычной системе).
.zshrc
не может помочь вам с настройкой графического интерфейса. Он считывается, когда вы открываете эмулятор терминала, или когда вы входите в систему через текстовую консоль или по сети. Он никогда не читается в нужное время для того, что вы хотите сделать.
Не существует полностью переносимого способа запуска команды при открытии сеанса. Самый надежный способ - это использовать возможности программы запуска среды рабочего стола или оконного менеджера, если таковой имеется (в большинстве случаев). Это единственный способ, который не зависит от дистрибутива.
Если вы запускаете GUI с помощью startx
, это приводит к выполнению вашего ~/.xinitrc
, поэтому поместите команду туда.
Для входа в систему в графическом режиме, если вам нужен способ, не зависящий от DE/WM, то вам нужно будет предоставить несколько хуков в зависимости от дистрибутива. В зависимости от диспетчера дисплеев¹, от окружения рабочего стола (или менеджера сеансов, или менеджера окон) и от того, как ваш дистрибутив (или ваш системный администратор) настроил типы сеансов, может существовать или не существовать файл, в котором вы можете указать команды для выполнения при входе в систему в графическом интерфейсе.
~/.xsession
only. Задача этого файла - запустить все, включая DE/SM/WM. ~/.xprofile
. ~/.xsessionrc
. Если файл типа .xprofile
или .xsessionrc
выполняется слишком рано, вам может понадобиться прибегнуть к грязным трюкам, чтобы заставить ваш код выполняться позже. Проверьте скрипты в /etc/X11/Xsession.d
или аналогичные. Это еще больше зависит от дистрибутива. И снова, самый простой и переносимый способ выполнения кода при входе в систему с графическим интерфейсом и способ, который будет выполняться после всех системных вещей, - это объявить команду запуска вашему оконному менеджеру или среде рабочего стола. На самом деле, основная причина использования сценария, который подключается к сценарию запуска системной сессии, заключается в том, чтобы ваш код выполнялся раньше, например, потому что вы хотите изменить способ вызова WM/DE.
¹ Диспетчер дисплея - это программа, которая запрашивает ваш пароль при входе в систему в графическом режиме.
Я не уверен, что вы понимаете под "session open", но файл .xxxrc
для конкретной оболочки вызывается (согласно POSIX) всякий раз, когда запускается интерактивная оболочка.
Это верно как для оболочки входа, так и для вложенной оболочки в текущем сеансе.