Для конфигурации Ubuntu 16.04 для приветствия берутся из файлов конфигурации в следующей иерархии:
/usr/share/lightdm/lightdm.conf.d/*.conf / etc / lightdm / lightdm. conf.d / *. conf /etc/lightdm/lightdm.confМесто для добавления изменений конфигурации является вторым в списке, при условии, что в последнем файле списка нет ничего, чтобы переопределить значения вы хотите изменить.
Итак, создаем файл /etc/lightdm/lightdm.conf.d/50-myconfig.conf и вставляем его
[Seat:*]
greeter-hide-users=false
greeter-show-manual-login=true
allow-guest=false
Первые швы входа список пользователей входа. Вторая запись позволяет вводить пользователя вручную. Третий вход отключает гостевую учетную запись ПРИМЕЧАНИЕ. Для версий Ubuntu до /etc/lightdm/lightdm.conf.d/50-myconfig. conf замените [Seat: *] на [SeatDefaults]
Когда изменения были сделаны, перезапустите службу lightdm, чтобы применить изменения.
sudo service lightdm restart
или [ ! d19]
sudo systemctl restart lightdm.service
Для получения дополнительной информации см .: Ubuntu LightDM Wiki
if [ "$(which gimp)" != ""]
]
должен быть последним аргументом команды [
, и это должен быть отдельный аргумент, поэтому перед ним должен быть пробел. См. Bash Pitfall 10 .
Но не используйте which
. Это нестандартная внешняя команда, которая ищет файл в PATH. Он ведет себя по-разному в разных системах, и вы не можете полагаться на полезный выход или состояние выхода. Оболочка уже предоставляет более эффективные способы проверки, существует ли команда и будет ли она работать согласованно в любой системе, поэтому лучше изучите ее. См. Bash FAQ 81 . Однако в этом случае вам не нужно проверять, существует ли gimp, просто запустите gimp -version
или запросите dpkg относительно версии пакета gimp (см. dpkg-query (1) ), уже скажу вам, существует ли он или нет.
if [ "$(gimp -version)" != 2.8 ]
AndAC уже дал решение для этого, но я предоставлю другое; сравнивая номера версий. dpkg предоставляет возможность сравнить две версии, а именно dpkg --compare-versions ver1 op ver2
. Например. dpkg --compare-versions 2.6.12 '<' 2.8.0-1ubuntu0ppa6~precise
вернет true, поскольку версия 2.6.12 старше, чем 2.8.0-1ubuntu0ppa6 ~ точная. См. dpkg (1) .
Все скобки ({
и }
) в этом скрипте бессмысленны, они не имеют смысла, так что вы можете также удалить их .
Собираем все это вместе:
#!/usr/bin/env bash
# Query dpkg to get the version of the currently installed gimp package.
# The command returns false if the package is not installed.
if version=$(dpkg-query -W -f='${Version}' gimp 2>/dev/null); then
# Check if it's older than 2.8
if dpkg --compare-versions "$version" '<' 2.8; then
apt-get remove gimp || exit
else
printf 'Looks good.\n'
exit
fi
fi
add-apt-repository ppa:otto-kesselgulasch/gimp &&
apt-get update &&
apt-get install gimp
if [ "$(which gimp)" != ""]
]
должен быть последним аргументом команды [
, и это должен быть отдельный аргумент, поэтому перед ним должен быть пробел. См. Bash Pitfall 10 .
Но не используйте which
. Это нестандартная внешняя команда, которая ищет файл в PATH. Он ведет себя по-разному в разных системах, и вы не можете полагаться на полезный выход или состояние выхода. Оболочка уже предоставляет более эффективные способы проверки, существует ли команда и будет ли она работать согласованно в любой системе, поэтому лучше изучите ее. См. Bash FAQ 81 . Однако в этом случае вам не нужно проверять, существует ли gimp, просто запустите gimp -version
или запросите dpkg относительно версии пакета gimp (см. dpkg-query (1) ), уже скажу вам, существует ли он или нет.
if [ "$(gimp -version)" != 2.8 ]
AndAC уже дал решение для этого, но я предоставлю другое; сравнивая номера версий. dpkg предоставляет возможность сравнить две версии, а именно dpkg --compare-versions ver1 op ver2
. Например. dpkg --compare-versions 2.6.12 '<' 2.8.0-1ubuntu0ppa6~precise
вернет true, поскольку версия 2.6.12 старше, чем 2.8.0-1ubuntu0ppa6 ~ точная. См. dpkg (1) .
Все скобки ({
и }
) в этом скрипте бессмысленны, они не имеют смысла, так что вы можете также удалить их .
Собираем все это вместе:
#!/usr/bin/env bash
# Query dpkg to get the version of the currently installed gimp package.
# The command returns false if the package is not installed.
if version=$(dpkg-query -W -f='${Version}' gimp 2>/dev/null); then
# Check if it's older than 2.8
if dpkg --compare-versions "$version" '<' 2.8; then
apt-get remove gimp || exit
else
printf 'Looks good.\n'
exit
fi
fi
add-apt-repository ppa:otto-kesselgulasch/gimp &&
apt-get update &&
apt-get install gimp
if [ "$(which gimp)" != ""]
]
должен быть последним аргументом команды [
, и это должен быть отдельный аргумент, поэтому перед ним должен быть пробел. См. Bash Pitfall 10 .
Но не используйте which
. Это нестандартная внешняя команда, которая ищет файл в PATH. Он ведет себя по-разному в разных системах, и вы не можете полагаться на полезный выход или состояние выхода. Оболочка уже предоставляет более эффективные способы проверки, существует ли команда и будет ли она работать согласованно в любой системе, поэтому лучше изучите ее. См. Bash FAQ 81 . Однако в этом случае вам не нужно проверять, существует ли gimp, просто запустите gimp -version
или запросите dpkg относительно версии пакета gimp (см. dpkg-query (1) ), уже скажу вам, существует ли он или нет.
if [ "$(gimp -version)" != 2.8 ]
AndAC уже дал решение для этого, но я предоставлю другое; сравнивая номера версий. dpkg предоставляет возможность сравнить две версии, а именно dpkg --compare-versions ver1 op ver2
. Например. dpkg --compare-versions 2.6.12 '<' 2.8.0-1ubuntu0ppa6~precise
вернет true, поскольку версия 2.6.12 старше, чем 2.8.0-1ubuntu0ppa6 ~ точная. См. dpkg (1) .
Все скобки ({
и }
) в этом скрипте бессмысленны, они не имеют смысла, так что вы можете также удалить их .
Собираем все это вместе:
#!/usr/bin/env bash
# Query dpkg to get the version of the currently installed gimp package.
# The command returns false if the package is not installed.
if version=$(dpkg-query -W -f='${Version}' gimp 2>/dev/null); then
# Check if it's older than 2.8
if dpkg --compare-versions "$version" '<' 2.8; then
apt-get remove gimp || exit
else
printf 'Looks good.\n'
exit
fi
fi
add-apt-repository ppa:otto-kesselgulasch/gimp &&
apt-get update &&
apt-get install gimp
if [ "$(which gimp)" != ""]
]
должен быть последним аргументом команды [
, и это должен быть отдельный аргумент, поэтому перед ним должен быть пробел. См. Bash Pitfall 10 .
Но не используйте which
. Это нестандартная внешняя команда, которая ищет файл в PATH. Он ведет себя по-разному в разных системах, и вы не можете полагаться на полезный выход или состояние выхода. Оболочка уже предоставляет более эффективные способы проверки, существует ли команда и будет ли она работать согласованно в любой системе, поэтому лучше изучите ее. См. Bash FAQ 81 . Однако в этом случае вам не нужно проверять, существует ли gimp, просто запустите gimp -version
или запросите dpkg относительно версии пакета gimp (см. dpkg-query (1) ), уже скажу вам, существует ли он или нет.
if [ "$(gimp -version)" != 2.8 ]
AndAC уже дал решение для этого, но я предоставлю другое; сравнивая номера версий. dpkg предоставляет возможность сравнить две версии, а именно dpkg --compare-versions ver1 op ver2
. Например. dpkg --compare-versions 2.6.12 '<' 2.8.0-1ubuntu0ppa6~precise
вернет true, поскольку версия 2.6.12 старше, чем 2.8.0-1ubuntu0ppa6 ~ точная. См. dpkg (1) .
Все скобки ({
и }
) в этом скрипте бессмысленны, они не имеют смысла, так что вы можете также удалить их .
Собираем все это вместе:
#!/usr/bin/env bash
# Query dpkg to get the version of the currently installed gimp package.
# The command returns false if the package is not installed.
if version=$(dpkg-query -W -f='${Version}' gimp 2>/dev/null); then
# Check if it's older than 2.8
if dpkg --compare-versions "$version" '<' 2.8; then
apt-get remove gimp || exit
else
printf 'Looks good.\n'
exit
fi
fi
add-apt-repository ppa:otto-kesselgulasch/gimp &&
apt-get update &&
apt-get install gimp
if [ "$(which gimp)" != ""]
]
должен быть последним аргументом команды [
, и это должен быть отдельный аргумент, поэтому перед ним должен быть пробел. См. Bash Pitfall 10 .
Но не используйте which
. Это нестандартная внешняя команда, которая ищет файл в PATH. Он ведет себя по-разному в разных системах, и вы не можете полагаться на полезный выход или состояние выхода. Оболочка уже предоставляет более эффективные способы проверки, существует ли команда и будет ли она работать согласованно в любой системе, поэтому лучше изучите ее. См. Bash FAQ 81 . Однако в этом случае вам не нужно проверять, существует ли gimp, просто запустите gimp -version
или запросите dpkg относительно версии пакета gimp (см. dpkg-query (1) ), уже скажу вам, существует ли он или нет.
if [ "$(gimp -version)" != 2.8 ]
AndAC уже дал решение для этого, но я предоставлю другое; сравнивая номера версий. dpkg предоставляет возможность сравнить две версии, а именно dpkg --compare-versions ver1 op ver2
. Например. dpkg --compare-versions 2.6.12 '<' 2.8.0-1ubuntu0ppa6~precise
вернет true, поскольку версия 2.6.12 старше, чем 2.8.0-1ubuntu0ppa6 ~ точная. См. dpkg (1) .
Все скобки ({
и }
) в этом скрипте бессмысленны, они не имеют смысла, так что вы можете также удалить их .
Собираем все это вместе:
#!/usr/bin/env bash
# Query dpkg to get the version of the currently installed gimp package.
# The command returns false if the package is not installed.
if version=$(dpkg-query -W -f='${Version}' gimp 2>/dev/null); then
# Check if it's older than 2.8
if dpkg --compare-versions "$version" '<' 2.8; then
apt-get remove gimp || exit
else
printf 'Looks good.\n'
exit
fi
fi
add-apt-repository ppa:otto-kesselgulasch/gimp &&
apt-get update &&
apt-get install gimp
if [ "$(which gimp)" != ""]
]
должен быть последним аргументом команды [
, и это должен быть отдельный аргумент, поэтому перед ним должен быть пробел. См. Bash Pitfall 10 .
Но не используйте which
. Это нестандартная внешняя команда, которая ищет файл в PATH. Он ведет себя по-разному в разных системах, и вы не можете полагаться на полезный выход или состояние выхода. Оболочка уже предоставляет более эффективные способы проверки, существует ли команда и будет ли она работать согласованно в любой системе, поэтому лучше изучите ее. См. Bash FAQ 81 . Однако в этом случае вам не нужно проверять, существует ли gimp, просто запустите gimp -version
или запросите dpkg относительно версии пакета gimp (см. dpkg-query (1) ), уже скажу вам, существует ли он или нет.
if [ "$(gimp -version)" != 2.8 ]
AndAC уже дал решение для этого, но я предоставлю другое; сравнивая номера версий. dpkg предоставляет возможность сравнить две версии, а именно dpkg --compare-versions ver1 op ver2
. Например. dpkg --compare-versions 2.6.12 '<' 2.8.0-1ubuntu0ppa6~precise
вернет true, поскольку версия 2.6.12 старше, чем 2.8.0-1ubuntu0ppa6 ~ точная. См. dpkg (1) .
Все скобки ({
и }
) в этом скрипте бессмысленны, они не имеют смысла, так что вы можете также удалить их .
Собираем все это вместе:
#!/usr/bin/env bash
# Query dpkg to get the version of the currently installed gimp package.
# The command returns false if the package is not installed.
if version=$(dpkg-query -W -f='${Version}' gimp 2>/dev/null); then
# Check if it's older than 2.8
if dpkg --compare-versions "$version" '<' 2.8; then
apt-get remove gimp || exit
else
printf 'Looks good.\n'
exit
fi
fi
add-apt-repository ppa:otto-kesselgulasch/gimp &&
apt-get update &&
apt-get install gimp
if [ "$(which gimp)" != ""]
]
должен быть последним аргументом команды [
, и это должен быть отдельный аргумент, поэтому перед ним должен быть пробел. См. Bash Pitfall 10 .
Но не используйте which
. Это нестандартная внешняя команда, которая ищет файл в PATH. Он ведет себя по-разному в разных системах, и вы не можете полагаться на полезный выход или состояние выхода. Оболочка уже предоставляет более эффективные способы проверки, существует ли команда и будет ли она работать согласованно в любой системе, поэтому лучше изучите ее. См. Bash FAQ 81 . Однако в этом случае вам не нужно проверять, существует ли gimp, просто запустите gimp -version
или запросите dpkg относительно версии пакета gimp (см. dpkg-query (1) ), уже скажу вам, существует ли он или нет.
if [ "$(gimp -version)" != 2.8 ]
AndAC уже дал решение для этого, но я предоставлю другое; сравнивая номера версий. dpkg предоставляет возможность сравнить две версии, а именно dpkg --compare-versions ver1 op ver2
. Например. dpkg --compare-versions 2.6.12 '<' 2.8.0-1ubuntu0ppa6~precise
вернет true, поскольку версия 2.6.12 старше, чем 2.8.0-1ubuntu0ppa6 ~ точная. См. dpkg (1) .
Все скобки ({
и }
) в этом скрипте бессмысленны, они не имеют смысла, так что вы можете также удалить их .
Собираем все это вместе:
#!/usr/bin/env bash
# Query dpkg to get the version of the currently installed gimp package.
# The command returns false if the package is not installed.
if version=$(dpkg-query -W -f='${Version}' gimp 2>/dev/null); then
# Check if it's older than 2.8
if dpkg --compare-versions "$version" '<' 2.8; then
apt-get remove gimp || exit
else
printf 'Looks good.\n'
exit
fi
fi
add-apt-repository ppa:otto-kesselgulasch/gimp &&
apt-get update &&
apt-get install gimp
Вместо того, чтобы записывать вывод и видеть, что он пуст
if [ "$(which gimp)" != ""]
, используйте это, что просто рассматривает статус выхода команды (0 = успех)
if which gimp &>/dev/null
then
Ваше использование скобок для группировки команд не требуется, но не повредит.
Первая строка, «которая» имеет низкий регистр:
if [ "$(which gimp)" != ""]
Здесь:
if [ "$(gimp -version)" != 2.8 ]
Вы можете использовать:
gimp_ver=$(gimp -version)
gimp_ver=$(echo ${gimp_ver##* } | cut -f1-2 -d'.')
if [ $gimp_ver != "2.8" ]
Поскольку нет никакой информации о том, что пойдет не так, это трудно помочь. Но, по крайней мере, вы должны исправить неверное произношение «который», вы написали его с капиталом W, а bash чувствителен к регистру.
Несколько технических замечаний и проблем, с которыми вы столкнетесь:
Все, что сказал @AndAC. add-apt-repository не может быть установлена в системе каждого пользователя. На чистых установках, которые я видел, 12.04 включает его по умолчанию, но более старые - нет. Вам может потребоваться остановка в начале выполнения if [ "$(which add-apt-repository)" != ""], а в тех случаях, когда она не существует, принудительно установите родительский пакет в качестве зависимости, прежде чем продолжить в скрипте (примечание: опустите sudo, если вы возьмете третий маркер в этот список как часть вашего сценария): sudo apt-get install python-software-properties Вы можете использовать описанные здесь методы, чтобы весь ваш скрипт выполнялся как суперпользователь. И я говорю это, потому что в некоторых системах существует sudoers политика, требующая пароль для каждого экземпляра использования sudo. У меня есть несколько сценариев, которые в этом нуждаются, и добавив информацию в ответ, который я связал, вы можете частично избежать этой проблемы, потребовав, чтобы вы запускали скрипт как суперпользователь (через sudo).Так как нет информации о том, что идет не так, трудно помочь. Но, по крайней мере, вы должны исправить неправильное написание слова "который", вы написали его заглавной буквой W, а bash чувствителен к регистру.
Вместо того, чтобы захватывать вывод и видеть, пусто ли оно
if [ "$(which gimp)" != ""]
, используйте это, которое просто учитывает состояние выхода команды (0 = успех)
if which gimp &>/dev/null
then
Ваше использование скобок для групповых команд не нужно, но не повредит.
Несколько технических замечаний и проблем, с которыми вы столкнетесь:
add-apt-repository
может не быть установленным в системе каждого. На чистых установках, которые я видел, 12.04 включает его по умолчанию, но на старых нет. Возможно, вы захотите сделать остановку в начале if [ "$(which add-apt-repository)" != ""], а в тех случаях, когда он не существует, принудительно установите родительский пакет в качестве зависимости, прежде чем продолжить в сценарии (примечание: опустите sudo, если вы берете третий пункт в этот список является частью вашего скрипта):
sudo apt-get install python-software-properties
sudoers
, требующая пароль для каждого экземпляра использования sudo
. У меня есть несколько скриптов, которые нуждались в этом, и, добавив информацию в ответ, который я связал, вы можете частично избежать этой проблемы, требуя, чтобы вы запускали скрипт как суперпользователь (через sudo
). Первая строка, «which» в нижнем регистре:
if [ "$(which gimp)" != ""]
Здесь:
if [ "$(gimp -version)" != 2.8 ]
Вы можете использовать:
gimp_ver=$(gimp -version)
gimp_ver=$(echo ${gimp_ver##* } | cut -f1-2 -d'.')
if [ $gimp_ver != "2.8" ]
Так как нет информации о том, что идет не так, трудно помочь. Но, по крайней мере, вы должны исправить неправильное написание слова "который", вы написали его заглавной буквой W, а bash чувствителен к регистру.
Вместо того, чтобы захватывать вывод и видеть, пусто ли оно
if [ "$(which gimp)" != ""]
, используйте это, которое просто учитывает состояние выхода команды (0 = успех)
if which gimp &>/dev/null
then
Ваше использование скобок для групповых команд не нужно, но не повредит.
Несколько технических замечаний и проблем, с которыми вы столкнетесь:
add-apt-repository
может не быть установленным в системе каждого. На чистых установках, которые я видел, 12.04 включает его по умолчанию, но на старых нет. Возможно, вы захотите сделать остановку в начале if [ "$(which add-apt-repository)" != ""], а в тех случаях, когда он не существует, принудительно установите родительский пакет в качестве зависимости, прежде чем продолжить в сценарии (примечание: опустите sudo, если вы берете третий пункт в этот список является частью вашего скрипта):
sudo apt-get install python-software-properties
sudoers
, требующая пароль для каждого экземпляра использования sudo
. У меня есть несколько скриптов, которые нуждались в этом, и, добавив информацию в ответ, который я связал, вы можете частично избежать этой проблемы, требуя, чтобы вы запускали скрипт как суперпользователь (через sudo
). Первая строка, «which» в нижнем регистре:
if [ "$(which gimp)" != ""]
Здесь:
if [ "$(gimp -version)" != 2.8 ]
Можно использовать:
gimp_ver=$(gimp -version)
gimp_ver=$(echo ${gimp_ver##* } | cut -f1-2 -d'.')
if [ $gimp_ver != "2.8" ]
Так как нет информации о том, что идет не так, трудно помочь. Но, по крайней мере, вы должны исправить неправильное написание слова "который", вы написали его заглавной буквой W, а bash чувствителен к регистру.
Вместо того, чтобы захватывать вывод и видеть, пусто ли оно
if [ "$(which gimp)" != ""]
, используйте это, которое просто учитывает состояние выхода команды (0 = успех)
if which gimp &>/dev/null
then
Ваше использование скобок для групповых команд не нужно, но не повредит.
Несколько технических замечаний и проблем, с которыми вы столкнетесь:
add-apt-repository
может не быть установленным в системе каждого. На чистых установках, которые я видел, 12.04 включает его по умолчанию, но на старых нет. Возможно, вы захотите сделать остановку в начале if [ "$(which add-apt-repository)" != ""], а в тех случаях, когда он не существует, принудительно установите родительский пакет в качестве зависимости, прежде чем продолжить в сценарии (примечание: опустите sudo, если вы берете третий пункт в этот список является частью вашего скрипта):
sudo apt-get install python-software-properties
sudoers
, требующая пароль для каждого экземпляра использования sudo
. У меня есть несколько скриптов, которые нуждались в этом, и, добавив информацию в ответ, который я связал, вы можете частично избежать этой проблемы, требуя, чтобы вы запускали скрипт как суперпользователь (через sudo
). Первая строка, «which» в нижнем регистре:
if [ "$(which gimp)" != ""]
Здесь:
if [ "$(gimp -version)" != 2.8 ]
Вы можете использовать:
gimp_ver=$(gimp -version)
gimp_ver=$(echo ${gimp_ver##* } | cut -f1-2 -d'.')
if [ $gimp_ver != "2.8" ]
Вместо того, чтобы захватывать вывод и видеть, пусто ли оно
if [ "$(which gimp)" != ""]
, используйте это, которое просто учитывает состояние выхода команды (0 = успех)
if which gimp &>/dev/null
then
Ваше использование скобок для групповых команд не нужно, но не повредит.
Так как нет информации о том, что идет не так, трудно помочь. Но, по крайней мере, вы должны исправить неправильное написание слова "который", вы написали его заглавной буквой W, а bash чувствителен к регистру.
Несколько технических замечаний и проблем, с которыми вы столкнетесь:
add-apt-repository
может не быть установленным в системе каждого. На чистых установках, которые я видел, 12.04 включает его по умолчанию, но на старых нет. Возможно, вы захотите сделать остановку в начале if [ "$(which add-apt-repository)" != ""], а в тех случаях, когда он не существует, принудительно установите родительский пакет в качестве зависимости, прежде чем продолжить в сценарии (примечание: опустите sudo, если вы берете третий пункт в этот список является частью вашего скрипта):
sudo apt-get install python-software-properties
sudoers
, требующая пароль для каждого экземпляра использования sudo
. У меня есть несколько скриптов, которые нуждались в этом, и, добавив информацию в ответ, который я связал, вы можете частично избежать этой проблемы, требуя, чтобы вы запускали скрипт как суперпользователь (через sudo
). Первая строка, «which» в нижнем регистре:
if [ "$(which gimp)" != ""]
Здесь:
if [ "$(gimp -version)" != 2.8 ]
Вы можете использовать:
gimp_ver=$(gimp -version)
gimp_ver=$(echo ${gimp_ver##* } | cut -f1-2 -d'.')
if [ $gimp_ver != "2.8" ]
Так как нет информации о том, что идет не так, трудно помочь. Но, по крайней мере, вы должны исправить неправильное написание слова "который", вы написали его заглавной буквой W, а bash чувствителен к регистру.
Вместо того, чтобы захватывать вывод и видеть, пусто ли оно
if [ "$(which gimp)" != ""]
, используйте это, которое просто учитывает состояние выхода команды (0 = успех)
if which gimp &>/dev/null
then
Ваше использование скобок для групповых команд не нужно, но не повредит.
Первая строка, «which» в нижнем регистре:
if [ "$(which gimp)" != ""]
Здесь:
if [ "$(gimp -version)" != 2.8 ]
Можно использовать:
gimp_ver=$(gimp -version)
gimp_ver=$(echo ${gimp_ver##* } | cut -f1-2 -d'.')
if [ $gimp_ver != "2.8" ]