Значение тильды в ударе Linux (не корневой каталог)

Это может сработать для вас (GNU sed):

sed 's/.*000/#&/' file
102
задан Vadim Kotov 5 July 2017 в 16:49
поделиться

6 ответов

Являются ли они домашними каталогами пользователей в / etc / passwd ? Такие службы, как postgres, sendmail, apache и т. Д., Создают пользователей системы, у которых есть домашние каталоги, как и у обычных пользователей.

17
ответ дан 24 November 2019 в 04:34
поделиться

На моей машине, из-за того, как я все настроил, выполняю:

cd ~             # /work1/jleffler
cd ~jleffler     # /u/jleffler

Первый обращает внимание на значение переменной окружения $ HOME ; Я намеренно установил в моем $ HOME локальную файловую систему, а не файловую систему, смонтированную по NFS. Второй читает из файла паролей (приблизительно; NIS немного усложняет ситуацию) и обнаруживает, что в файле паролей указано, что мой домашний каталог - / u / jleffler , и переходит в этот каталог.

Раздражает то, что что большая часть программного обеспечения ведет себя так, как указано выше (и спецификация POSIX для оболочки требует этого поведения). Я использую какое-то программное обеспечение (и у меня нет особого выбора его использовать), которое обрабатывает информацию из файла паролей как текущее значение $ HOME, что неверно.

Применяя это к вопросу - как указывали другие вне, '

9
ответ дан 24 November 2019 в 04:34
поделиться

Это домашние каталоги пользователей. Например, попробуйте cd ~ (ваше имя пользователя) .

33
ответ дан 24 November 2019 в 04:34
поделиться

это пользователи, проверьте, что ваш / etc / passwd

cd ~ имя пользователя

приведет вас в домашний каталог этого пользователя

14
ответ дан 24 November 2019 в 04:34
поделиться

Расширение тильды в Bash:

http://bash-hackers.org/wiki/doku.php/syntax/expansion/tilde

5
ответ дан 24 November 2019 в 04:34
поделиться

Это функция Bash, которая называется « тильда ». Это функция оболочки, а не ОС. Например, вы получите другое поведение с csh.

Чтобы ответить на ваш вопрос о том, откуда берется информация: ваш домашний каталог берется из переменной $ HOME (независимо от того, что вы там храните), в то время как дома других пользователей извлекаются в реальном времени с помощью getpwent () . Эта функция обычно контролируется NSS ; поэтому по умолчанию значения извлекаются из / etc / passwd , хотя его можно настроить для получения информации из любого желаемого источника, такого как NIS, LDAP или база данных SQL.

Расширение тильды - это больше чем поиск в домашнем каталоге. Вот краткое изложение:

~              $HOME
~fred          (freds home dir)

~+             $PWD   (same effect as ./)
~-             $OLDPWD (your previous directory)
~1             `dirs +1`
~2             `dirs +2`
~-1            `dirs -1`

dirs и ~ 1 , ~ -1 ,

67
ответ дан 24 November 2019 в 04:34
поделиться
Другие вопросы по тегам:

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