по умолчанию ~
задается значение/home/username/
т.е. если я использую команду, cd ~
она переходит в каталог/home/username/
Как изменить его значение на какой-либо другой файл, например /home/username/filename?
Я знаю, что это может быть опасно, но я работаю над CTF, так что все в порядке.
решение1
Тильда (~) интерпретируется вашей оболочкой как краткая форма
$HOME
.Попробуйте выполнить следующие команды:
echo ~ HOME=foo echo ~
Сначала должен быть выведен ваш настоящий домашний каталог, а затем «foo», поскольку вы установили $HOME` на это значение.
Значение по умолчанию
$HOME
берется из конфигурации вашей системы. Используйтеgetent passwd
для перечисления всех известных пользователей и их домашних каталогов. В зависимости от конфигурации вашей системы эти записи могут поступать из/etc/passwd
любой удаленной службы каталогов.Если вы хотите временно переопределить свой домашний каталог, просто задайте другой
$HOME
.Если вы хотите изменить его навсегда, вам придется изменить запись пароля, например, вручную отредактировав
/etc/passwd
.
решение2
Попробуйте изменить $HOME
переменную , так как тильда ( ~
) — это краткая форма $HOME
, или измените домашний каталог пользователя на , /etc/passwd
но это не рекомендуется.
Почему вы не пытаетесь сделать ипсевдонимдля cd /home/username/filename
этого типа:
alias documents='cd ~/Documents'
Теперь при вводе текста documents
он изменится на/home/user/Documents
Дополнительная информация вman alias
.
Чтобы сделать этот псевдоним постоянным,проверьте этот вопрос.