$ perl -pi -e 's/AccountSettings/Users/ if $. == 1' input.txt
-pi позволяет вносить изменения для входного файла на месте, т. е. изменять фактический файл. Если вы хотите увидеть результат перед перезаписью файла, используйте -p, вместо этого s/AccountSettings/Users/ выполните первую замену для шаблона. $. - обработанный номер строки $ awk 'NR==1{sub("AccountSettings","Users")};1' input.txt
<template name="Users">
AccountSettings
-pi позволяет вносить изменения для входного файла на месте, т. е. изменять фактический файл. Если вы хотите увидеть результат перед перезаписью файла, используйте -p, а NR==1{} - количество обработанных строк, в частности, мы смотрим, если количество строк равно 1. s/AccountSettings/Users/ выполнить первая замена шаблона. 1 - шаблон с опущенным действием. Действие по умолчанию для шаблона, которое является истинным, заключается в печати, а создание шаблона 1 гарантирует, что мы напечатаем результирующие строки. Один лайнер с чтением stdin:
$ python -c 'import sys;print("\n".join([ l.strip().replace("AccountSettings","Users") if i==0 else l.strip() for i,l in enumerate(sys.stdin)]))' < input.txt
Версия скрипта:
#!/usr/bin/env python
from sys import argv;
with open(argv[1]) as f:
for index,line in enumerate(f):
text = line.strip().replace("AccountSettings","User") if index == 0 else line.strip()
print(text)
[ f12] - количество обработанных строк, в частности, мы смотрим, если количество строк равно 1. Мы используем структуру variable = value_1 if condition else value_2 для создания списка строк с соответствующими значениями в одном слоте, а в скрипте присвоение версии переменной text и немедленная печать этой переменной. Условие для замены - это, конечно, номер строки $ ruby -pe '$_=$_.sub(/AccountSettings/,"Users") if $. == 1' input.txt
<template name="Users">
AccountSettings
Мы используем структуру variable = value_1 if condition else value_2 для создания списка строк с соответствующими значениями в одно- liner, в то время как при назначении версии сценария к переменной text и немедленной печати этой переменной выполняется. Условием замены является, конечно, номер строки 1 - шаблон с опущенным действием. Действие по умолчанию для шаблона, которое является истинным, заключается в печати, а создание шаблона 1 гарантирует, что мы печатаем результирующие строки. Я редактировал /etc/lightdm/lightdm.conf
с этим контентом:
[SeatDefaults]
greeter-session=unity-greeter
user-session=gnome-shell
autologin-user=paul
И он автоматически запускается в gnome-shell.
, чтобы изменить значение по умолчанию для каждого пользователя, проверьте
blockquote>
/var/lib/AccountsService/users
похоже, что этот набор
.dmrc
в домашнем доме пользователя.приветствия
Я считаю, что установка любого из вышеперечисленных значений отменяется последним сеансом пользователей, хранящимся в lightdm. Возможно, вам придется удалить или отредактировать пользовательские файлы в /var/cache/lightdm/dmrc
, чтобы включить глобальную настройку по умолчанию. Или индивидуально, отредактировав файл user.dmrc
, который имеет следующее содержимое:
[Desktop]
Session=ubuntu
Это может не работать в Ubuntu, но это сработало для меня в Fedora. Мне потребовались дни, и я хотел бы поделиться им:
Перейдите к /usr/share/xsessions
и /usr/share/wayland-sessions
и добавьте префиксы с другим номером и тире для каждого файла, заканчивающегося на .desktop. Самое низкое число будет по умолчанию. Например, я хочу, чтобы xfce был моим по умолчанию, так что файл называется 1-xfce.desktop
Надеюсь, что это поможет.
Чтобы изменить сеанс по умолчанию в Lightdm
sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
– wim
23 October 2011 в 18:09
Я редактировал /etc/lightdm/lightdm.conf
с этим контентом:
[SeatDefaults]
greeter-session=unity-greeter
user-session=gnome-shell
autologin-user=paul
И он автоматически запускается в gnome-shell.
, чтобы изменить значение по умолчанию для каждого пользователя, проверьте
blockquote>
/var/lib/AccountsService/users
похоже, что этот набор
.dmrc
в домашнем доме пользователя.приветствия
Я считаю, что установка любого из вышеперечисленных значений отменяется последним сеансом пользователей, хранящимся в lightdm. Возможно, вам придется удалить или отредактировать пользовательские файлы в /var/cache/lightdm/dmrc
, чтобы включить глобальную настройку по умолчанию. Или индивидуально, отредактировав файл user.dmrc
, который имеет следующее содержимое:
[Desktop]
Session=ubuntu
Это может не работать в Ubuntu, но это сработало для меня в Fedora. Мне потребовались дни, и я хотел бы поделиться им:
Перейдите к /usr/share/xsessions
и /usr/share/wayland-sessions
и добавьте префиксы с другим номером и тире для каждого файла, заканчивающегося на .desktop. Самое низкое число будет по умолчанию. Например, я хочу, чтобы xfce был моим по умолчанию, так что файл называется 1-xfce.desktop
Надеюсь, что это поможет.
Странно, что LightDM (диспетчер отображения Ubuntu 11.10 , который предоставляет графический экран входа в систему ) не помнит ваш выбор в reboots.
Вы можете вручную отредактировать соответствующий файл конфигурации, который называется .dmrc
, и находится в вашей домашней папке. В Nautilus (файловый браузер) вам нужно нажать Ctrl + H (или Просмотреть > Показать скрытые файлы ), чтобы увидеть его и другие файлы, начинающиеся с .
. Если у вас есть этот файл, который вы, вероятно, сделаете, то его содержимое будет выглядеть следующим образом:
[Desktop]
Session=ubuntu
Для GNOME Classic вы можете изменить его, чтобы сказать:
[Desktop]
Session=gnome-classic
Или для GNOME Classic (без эффектов) вы можете изменить его, чтобы сказать:
[Desktop]
Session=gnome-fallback
Если вам захотелось использовать Unity 2D (сеанс type Ubuntu 2D ), вы можете изменить его, чтобы сказать:
[Desktop]
Session=ubuntu-2d
Если у вас нет файла вообще, вы можете создать его с соответствующим содержимым.
Если вы хотите установить GNOME Classic или GNOME Classic (без эффектов) в качестве типа сеанса по умолчанию для всех пользователей - или вы предпочтете не для, но вышеупомянутый пользовательский метод не работает - тогда вы можете отредактировать /etc/lightdm/lightdm.conf
, изменив строку, которая говорит user-session=ubuntu
, вместо этого скажите user-session=gnome-classic
или user-session=gnome-fallback
(или user-session=ubuntu-2d
). Несколько соображений, которые следует учитывать при рассмотрении этого вопроса:
sudo cp /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.old
. gksu gedit /etc/lightdm/lightdm.conf
(либо в окне терминала, либо в графическом Run Application
текстовом поле, когда вы можете получить, нажав Alt + F2) или sudo -H gedit /etc/lightdm/lightdm.conf
в окне терминала. Кажется вероятным, что поведение, которое вы испытываете, является ошибкой, поэтому, собрав дополнительную информацию, посмотрев, работает ли вручную ~/.dmrc
, вы можете сообщить об этом как один. Сначала прочтите это внимательно , затем после поиска, чтобы узнать, была ли обнаружена аналогичная ошибка, инициируйте процесс отчетности, вызвав ubuntu-bug
с помощью PID работающего процесса lightdm
или, почти так же хорошо , запустите ubuntu-bug lightdm
... что должно иметь смысл после того, как вы прочитали , что руководство .
Кстати, помимо Unity (тип сеанса Ubuntu ), Unity 2D (тип сеанса Ubuntu 2D ) и GNOME 3 Fallback ( GNOME Classic и GNOME Classic (без эффектов) ), вы можете также рассмотреть как еще более легкие варианты Xfce4 (установить пакет xubuntu-desktop
и выбрать тип сеанса Xubuntu ) и LXDE (установить пакет lubuntu-desktop
и выбрать тип сеанса Lubuntu ).
ubuntu-mate-desktop
(см. Ubuntu MATE ). Также есть GNOME 3 с оболочкой GNOME вместо Unity (установите пакет gnome-shell
и выберите GNOME
) и KDE 4 Плазма (установите пакет kubuntu-desktop
и выберите Kubuntu
), но вряд ли они будут менее ресурсоемкими, чем перечисленные выше опции.