Невозможно изменить значение PS1 в терминале Gnome v3.28.1 (Linux Mint 19.2 с Cinnamon)

Для обычного пользователя, чтобы смонтировать том (, даже если у него есть полный доступ к файлу устройства ), необходима запись в /etc/fstab. Это явно не работает с динамическими именами устройств.

udev может только добавлять символические ссылки, но не изменять имя блочного устройства. Но для записи в fstab нужно настоящее имя.

Но вместо имени устройства можно использовать UUID файловой системы. udev может сделать устройство доступным для чтения для вашего пользователя и установить символическую ссылку, чтобы ваш пользовательский скрипт мог определить UUID.

запись fstab

UUID=8186709a-ab1f-4d18-80bb-b219cb126398 /mnt/tmp   ext4       defaults,noauto,user,nofail 0 0

скрипт монтирования

current_uuid=$(blkid --output export /dev/myusb | grep ^UUID=)
mount "$current_uuid"

сопоставитель устройств

Другой подход заключается в размещении устройства отображения устройств поверх USB-устройства(man dmsetup). Преимущество заключается в том, что таким образом вы получаете статическое имя, например. /dev/mapper/myusb. Но я не знаю, как отреагирует DM устройство, если выдернуть флешку. Для этого вам могут понадобиться правила отключения udev. Это кажется намного более сложным и, вероятно, не стоит статического имени.

1
27.08.2019, 20:53
1 ответ

Bash читает .profileтолько из оболочек входа в систему, для других интерактивных оболочек он читает вместо этого .bashrc. (То же для /etc/profileи /etc/bash.bashrc). Во многих системах, включая Debian, значение по умолчанию /etc/bash.bashrcустанавливает PS1, поэтому для оболочек входа без -это то, что используется.

Ваш эмулятор терминала, вероятно, запускает оболочку как не -оболочку входа в систему, хотя, по крайней мере, некоторые из них могут быть настроены для запуска вместо нее оболочки входа. Например. Терминал Gnome должен иметь флажок «Выполнять команду как оболочку входа в систему», и если эмулятор позволяет вам изменить команду, которую он вызывает, вы можете использовать/bin/bash -l(-lили --loginдля обозначения оболочки входа ).

Если вы не установили PS1в одном из файлов bashrc, оболочка, которая была запущена без PS1в среде, в конечном итоге имела бы PS1по умолчанию, давая что-то вроде bash-4.4$, поэтому, вероятно, безопаснее всего установить PS1в bashrc.

Также обратите внимание, что если оболочка запущена как оболочка входа в систему, она не будет читать bashrcсама по себе. Вот почему файлы profile, например. Debian делает это явно.

Связанные:

0
28.01.2020, 00:01

Теги

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