Как по умолчанию Unity 2D при автоматическом входе в систему [дублировать]

Когда оболочка встречает текст, заключенный в $( ), он: принимает его за команду и (как говорит bodhi.zazen) запускает команду в подоболочке. Заменяет вывод команды вместо всего выражения (включая открытие $( и закрытие )).

Как объясняет ответ, это один из двух доступных синтаксисов для подстановки команд.

«Что ... заставляет вывод этих двух команд быть одинаковыми?»

На самом деле несколько необычно, что выход ls будет точно таким же, как и выход echo $(ls):

ek@Io:~/tmp$ ls
bar  foo
ek@Io:~/tmp$ echo $(ls)
bar foo

ответ heartsmagic обычно отделяет имена файлов на два или более пробела или новую строку. Это помогает нам легче рассказать об этом, особенно потому, что пространства в именах файлов несколько обычны (но несколько последовательных пробелов, менее распространены).

Разделение слов

Когда я побежал echo $(ls) произошло следующее:

Заставляет его быть командой и (как говорит bodhi.zazen) запускает команду в подоболочке. Затем оболочка выполнила разбиение слов, рассматривая bar и foo в качестве отдельных аргументов команды echo вместо одного аргумента, содержащего пробелы.

Когда echo получает несколько аргументов (кроме таких параметров, как -n, которые обрабатываются специально и вообще не печатаются), он распечатывает их все, с одним пробелом между последующими аргументами. echo затем печатает новую строку (если не была выбрана опция -n).

Таким образом, echo $(ls) показывает вывод, например bar foo вместо bar foo.

Если вы запустите ls, и в нем нет файлов или только одного файла, вывод ls будет точно таким же, как вывод echo $(ls). Даже тогда, это не всегда будет одинаково, например, когда имя файла содержит пробелы, отличные от изолированных (одиночных) пространств:

ek@Io:~/tmp2$ touch 'my   file'
ek@Io:~/tmp2$ ls
my   file
ek@Io:~/tmp2$ echo $(ls)
my file

Когда ls печатает несколько файлов, его вывод вряд ли будет точно так же, как вывод $(ls). Аналогично:

echo a b и echo $(echo a b) выдают один и тот же вывод, но echo 'a b' и echo $(echo 'a b') этого не делают.

Это важная вещь, которую нужно знать о подстановке команд - некотируемые подстановки команд подлежат разбиению слов.

Terminal Detection

Если вы хотите предотвратить слово расщепление, вы можете заключить выражение для подстановки команды в двойные кавычки ("). Обычно это достаточно и, в частности, будет работать с приведенными выше примерами echo, а также с примером ls в каталоге с одной записью, содержащей пробелы:

ek@Io:~/tmp2$ echo "$(ls)"
my   file

Однако, как было отмечено выше, вы можете быть удивлены, обнаружив, что то, что вы видите при запуске ls, часто не является тем, что передается на echo вместо "$(ls)":

ek@Io:~/tmp$ ls
bar  foo
ek@Io:~/tmp$ echo "$(ls)"
bar
foo

Это потому, что ls проверяет, является ли echo терминалом один из двух доступных синтаксисов , когда форматирование вывода явно не указано.

[ f36] и echo $(echo a b) выдают одинаковый вывод, но Когда stdout не является терминалом, ls перечисляет каждую запись в своей строке, например ls -1.

В подстановке команд стандартный вывод не является терминалом, потому что вывод команды не отправляется непосредственно на терминал, чтобы вы могли видеть - вместо этого он захватывается оболочкой и используется как часть другая команда.

Чтобы получить форматирование нескольких столбцов при запуске ls с помощью подстановки команды, передайте ему флаг -C: иногда предлагается

ek@Io:~/tmp$ echo "$(ls -C)"
bar  foo

(dir в качестве альтернативы ls -C, а также будет работать для этого, хотя dir ведет себя как ls -C -b, а не просто ls -C.)

Shell Aliasing

Другая причина [ f58] может иногда отличаться от echo "$(ls)", так это то, что ls может быть dir ведет себя как ls -C -b, а не просто ls -C . Запустите alias ls, чтобы проверить; на Ubuntu вы обычно получаете alias ls='ls --color=auto', а это означает, что когда ls появляется как первое слово команды, которую вы запускаете в интерактивном режиме (и в некоторых, но не во всех других случаях), она заменяется на ls --color=auto.

Например, когда я запускаю ls, он отображает каталоги, окрашенные в синий цвет, и исполняемые файлы окрашены в зеленый цвет (а также реализуют многие другие правила раскраски). --color=auto заставляет ls печатать цветной выход, если стандартный вывод является терминалом, а не иначе.

Чтобы получить цветной выход при запуске ls с помощью подстановки команды, передайте ему --color или [ f70]. Если вы хотите, вы можете комбинировать это с -C:

echo $(ls -C --color)

Обратите внимание, что, хотя вы можете сделать ls псевдоним ls --color или ls --color=always вместо ls --color=auto и [ f76] не волнует, является ли стандартный вывод терминалом ... этот псевдоним все равно не приведет к тому, что ls будет выдавать цветной вывод при вызове путем подстановки команды. Это связано с тем, что псевдонимы оболочки (в передают ему параметр --color или --color=always , подобный bash) расширяются только тогда, когда оболочка видит их в качестве первого слова команды (и они не унаследованы подоболочки).

72
задан 18 May 2012 в 16:13

42 ответа

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 25 July 2018 в 21:09

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 31 July 2018 в 12:42

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 2 August 2018 в 02:49

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 4 August 2018 в 18:36

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 6 August 2018 в 03:01

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 7 August 2018 в 20:42

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 10 August 2018 в 09:05

Список сеансов описан в каталоге /usr/share/xsessions.

Некоторые из наиболее распространенных имен сеансов следующие:

  • Для единства-2d сеанса файл называется ubuntu-2d.desktop
  • Для gnome-classic файл сеанса называется gnome-classic.desktop
  • Для gnome-classic (без эффектов) aka gnome-fallback файл сеанса называется gnome-fallback.desktop
  • Для единства-3d файл сеанса называется ubuntu. desktop
  • Для Lubuntu файл сеанса называется Lubuntu.desktop
  • Для LXDE файл сеанса называется LXDE.desktop

Таким образом, если вы измените конфигурационный файл light-dm на «ubuntu-2d», это будет по умолчанию сеансом для Unity-2D

, то есть

sudo nano /etc/lightdm/lightdm.conf

измените строку

user-session=ubuntu

на

user-session=ubuntu-2d

Примечание - если у вас нет файла lightdm.conf, то для использования автолога следующие значения для этого файла:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu-2d
autologin-user=myusername
autologin-user-timeout=0

Другая возможность:

[f 5]

Например:

sudo /usr/lib/lightdm/lightdm-set-defaults -s ubuntu-2d

Это также создаст файл lightdm.conf, если он еще не присутствовал.

72
ответ дан 15 August 2018 в 21:57
  • 1
    Если строка user-session=ubuntu не существует в файле /etc/lightdm/lightdm.conf, тогда просто введите ее в качестве последней строки: user-session=ubuntu-2d – Sepero 15 October 2015 в 22:10
  • 2
    – Gargravarr 19 January 2018 в 18:13

Чтобы изменить сеанс по умолчанию в Lightdm

sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
12
ответ дан 25 July 2018 в 21:09

Я редактировал /etc/lightdm/lightdm.conf с этим контентом:

[SeatDefaults]
greeter-session=unity-greeter
user-session=gnome-shell
autologin-user=paul

И он автоматически запускается в gnome-shell.

2
ответ дан 25 July 2018 в 21:09

Это может не работать в Ubuntu, но это сработало для меня в Fedora. Мне потребовались дни, и я хотел бы поделиться им:

Перейдите к /usr/share/xsessions и /usr/share/wayland-sessions и добавьте префиксы с другим номером и тире для каждого файла, заканчивающегося на .desktop. Самое низкое число будет по умолчанию. Например, я хочу, чтобы xfce был моим по умолчанию, так что файл называется 1-xfce.desktop

Надеюсь, что это поможет.

0
ответ дан 25 July 2018 в 21:09

Чтобы изменить сеанс по умолчанию в Lightdm

sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
12
ответ дан 31 July 2018 в 12:42

Я редактировал /etc/lightdm/lightdm.conf с этим контентом:

[SeatDefaults]
greeter-session=unity-greeter
user-session=gnome-shell
autologin-user=paul

И он автоматически запускается в gnome-shell.

23
ответ дан 31 July 2018 в 12:42

, чтобы изменить значение по умолчанию для каждого пользователя, проверьте

/var/lib/AccountsService/users

похоже, что этот набор .dmrc в домашнем доме пользователя.

приветствия

13
ответ дан 31 July 2018 в 12:42

Я считаю, что установка любого из вышеперечисленных значений отменяется последним сеансом пользователей, хранящимся в lightdm. Возможно, вам придется удалить или отредактировать пользовательские файлы в /var/cache/lightdm/dmrc, чтобы включить глобальную настройку по умолчанию. Или индивидуально, отредактировав файл user.dmrc, который имеет следующее содержимое:

[Desktop]
Session=ubuntu
1
ответ дан 31 July 2018 в 12:42

Это может не работать в Ubuntu, но это сработало для меня в Fedora. Мне потребовались дни, и я хотел бы поделиться им:

Перейдите к /usr/share/xsessions и /usr/share/wayland-sessions и добавьте префиксы с другим номером и тире для каждого файла, заканчивающегося на .desktop. Самое низкое число будет по умолчанию. Например, я хочу, чтобы xfce был моим по умолчанию, так что файл называется 1-xfce.desktop

Надеюсь, что это поможет.

0
ответ дан 31 July 2018 в 12:42

Чтобы изменить сеанс по умолчанию в Lightdm

sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
12
ответ дан 2 August 2018 в 02:49

Я редактировал /etc/lightdm/lightdm.conf с этим контентом:

[SeatDefaults]
greeter-session=unity-greeter
user-session=gnome-shell
autologin-user=paul

И он автоматически запускается в gnome-shell.

23
ответ дан 2 August 2018 в 02:49

, чтобы изменить значение по умолчанию для каждого пользователя, проверьте

/var/lib/AccountsService/users

похоже, что этот набор .dmrc в домашнем доме пользователя.

приветствия

13
ответ дан 2 August 2018 в 02:49

Это может не работать в Ubuntu, но это сработало для меня в Fedora. Мне потребовались дни, и я хотел бы поделиться им:

Перейдите к /usr/share/xsessions и /usr/share/wayland-sessions и добавьте префиксы с другим номером и тире для каждого файла, заканчивающегося на .desktop. Самое низкое число будет по умолчанию. Например, я хочу, чтобы xfce был моим по умолчанию, так что файл называется 1-xfce.desktop

Надеюсь, что это поможет.

0
ответ дан 2 August 2018 в 02:49

Чтобы изменить сеанс по умолчанию в Lightdm

sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
12
ответ дан 4 August 2018 в 18:36

Я редактировал /etc/lightdm/lightdm.conf с этим контентом:

[SeatDefaults]
greeter-session=unity-greeter
user-session=gnome-shell
autologin-user=paul

И он автоматически запускается в gnome-shell.

23
ответ дан 4 August 2018 в 18:36

Это может не работать в Ubuntu, но это сработало для меня в Fedora. Мне потребовались дни, и я хотел бы поделиться им:

Перейдите к /usr/share/xsessions и /usr/share/wayland-sessions и добавьте префиксы с другим номером и тире для каждого файла, заканчивающегося на .desktop. Самое низкое число будет по умолчанию. Например, я хочу, чтобы xfce был моим по умолчанию, так что файл называется 1-xfce.desktop

Надеюсь, что это поможет.

0
ответ дан 4 August 2018 в 18:36

Чтобы изменить сеанс по умолчанию в Lightdm

sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
12
ответ дан 6 August 2018 в 03:01

Я редактировал /etc/lightdm/lightdm.conf с этим контентом:

[SeatDefaults]
greeter-session=unity-greeter
user-session=gnome-shell
autologin-user=paul

И он автоматически запускается в gnome-shell.

23
ответ дан 6 August 2018 в 03:01

, чтобы изменить значение по умолчанию для каждого пользователя, проверьте

/var/lib/AccountsService/users

похоже, что этот набор .dmrc в домашнем доме пользователя.

приветствия

13
ответ дан 6 August 2018 в 03:01

Я считаю, что установка любого из вышеперечисленных значений отменяется последним сеансом пользователей, хранящимся в lightdm. Возможно, вам придется удалить или отредактировать пользовательские файлы в /var/cache/lightdm/dmrc, чтобы включить глобальную настройку по умолчанию. Или индивидуально, отредактировав файл user.dmrc, который имеет следующее содержимое:

[Desktop]
Session=ubuntu
1
ответ дан 6 August 2018 в 03:01

Это может не работать в Ubuntu, но это сработало для меня в Fedora. Мне потребовались дни, и я хотел бы поделиться им:

Перейдите к /usr/share/xsessions и /usr/share/wayland-sessions и добавьте префиксы с другим номером и тире для каждого файла, заканчивающегося на .desktop. Самое низкое число будет по умолчанию. Например, я хочу, чтобы xfce был моим по умолчанию, так что файл называется 1-xfce.desktop

Надеюсь, что это поможет.

0
ответ дан 6 August 2018 в 03:01

Чтобы изменить сеанс по умолчанию в Lightdm

sudo /usr/lib/lightdm/lightdm-set-defaults --session gnome-shell
12
ответ дан 7 August 2018 в 20:42

, чтобы изменить значение по умолчанию для каждого пользователя, проверьте

/var/lib/AccountsService/users

похоже, что этот набор .dmrc в домашнем доме пользователя.

приветствия

13
ответ дан 7 August 2018 в 20:42

Другие вопросы по тегам:

Похожие вопросы: