Как сменить каталог на домашний linux

Обновлено: 02.07.2024

Изучите основы перемещения по разным каталогам из командной строки Linux.

Работа с несколькими каталогами из командной строки Linux может быть утомительной, но эти краткие советы по использованию команд навигации по каталогам cd и pushd помогут вам сэкономить время и усилия.

Основные сведения об изменении каталога
В командной строке Linux используйте команду cd, чтобы изменить рабочий каталог, в котором действия выполняются по умолчанию. Вот несколько основных способов использования команды cd:

  • Чтобы перейти в домашний каталог, введите cd и нажмите [Enter].
  • Чтобы перейти в подкаталог, введите cd, пробел и имя подкаталога (например, cd Documents), а затем нажмите [Enter].
  • Чтобы перейти к родительскому каталогу текущего рабочего каталога, введите cd, затем пробел и две точки, а затем нажмите [Enter].
  • Чтобы перейти в каталог, указанный путем, введите cd, затем пробел и путь (например, cd /usr/local/lib) и затем нажмите [Ввод].
  • Чтобы подтвердить, что вы переключились на нужный каталог, введите pwd и нажмите [Enter]. Вы увидите путь к текущему каталогу.

Переключение между разными каталогами с помощью pushd
При работе с двумя каталогами в режиме командной строки вы можете обнаружить, что переключаетесь между ними — и при этом приходится много раз вводить текст заново. Если каталоги не расположены в одном и том же родительском каталоге, вам придется ввести полное имя пути, чтобы перейти от одного каталога к другому, что может быть утомительно. Однако вы можете избавиться от всего этого лишнего ввода, используя один из двух подходов: либо использовать список истории оболочки, либо использовать функцию оболочки pushd, которая является частью утилит Go-Funcs.

Чтобы воспользоваться преимуществами списка истории оболочки, достаточно нажать несколько клавиш. Просто нажмите клавишу со стрелкой вверх, чтобы вызвать команду cd с ранее посещенным каталогом в командной строке. Продолжая нажимать клавишу со стрелкой вверх, пока не увидите ранее посещенный каталог, который вам нужен, а затем нажмите [Enter]. Если два каталога, между которыми вы переключаетесь, относительно близки друг к другу в дереве дисков, вероятно, вам лучше всего подойдет список истории оболочки.

Вот как использовать pushd. Предположим, вы сейчас работаете в /usr/share/fonts. Вам нужно немного поработать в /opt/wonderword/fonts, и вы будете часто переключаться между двумя каталогами. Начиная с одного из каталогов, используйте pushd для переключения на другой каталог. В нашем примере, начиная с /usr/share/fonts, введите pushd /opt/wonderword/fonts и нажмите [Enter]. Теперь вы увидите содержимое стека в следующей строке, например:
/opt/wonderword/fonts /usr/share/fonts

Как видите, когда функция pushd вводится с именем пути, она автоматически создает стек, состоящий из именованного каталога (/opt/wonderword/fonts) и каталога, в котором вы ввели команду (/usr/share/fonts). В нашем примере первый указанный каталог (/opt/wonderword/fonts) находится на «верху» (или в начале) стека.

Чтобы быстро вернуться к предыдущему каталогу, снова введите pushd. При вводе без пути к каталогу pushd просто меняет местами два каталога в верхней части стека и возвращается к новому каталогу верхнего уровня.

Если вам нужно удалить каталог из стека, введите popd, затем имя каталога и нажмите [Enter]. Чтобы просмотреть список каталогов в стеке, введите dirs и нажмите [Enter]. Команды popd и dirs также входят в состав утилит Go-Funcs.

Бесплатная помощь Linux

Вы ищете простой способ улучшить свои навыки работы с Linux? Наша Linux TechMail — это ответ, содержащий ценную информацию, которая поможет вам сэкономить время и силы. Эта статья предлагает хороший пример того, что может предложить TechMail. Получайте советы по печати, работе в сети, безопасности и многому другому прямо в свой почтовый ящик — абсолютно бесплатно! Подпишитесь на рассылку Linux TechMail сегодня!

Закрыто. Этот вопрос не соответствует правилам переполнения стека. В настоящее время ответы не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow.

Закрыт в прошлом году.

Я хотел бы знать, существует ли какая-либо простая команда оболочки для изменения домашнего каталога пользователя в Linux/Unix (подобная chsh, которая изменяет оболочку входа по умолчанию для существующего действительного пользователя), не касаясь файла /etc/passwd. . Спасибо

Почему вы спрашиваете о домашнем каталоге по умолчанию? Вы хотите изменить домашний каталог одного конкретного существующего пользователя или всех пользователей, добавленных в будущем? Обратите внимание, что chsh не изменяет оболочку входа по умолчанию, а только оболочку входа данного пользователя.Чтобы изменить ДОМ определенного пользователя, просто отредактируйте /etc/passwd

Я голосую за то, чтобы закрыть этот вопрос, поскольку он не имеет ничего общего с программированием и лучше всего подходит для Unix и Linux или привилегированного пользователя.

7 ответов 7

Комментарий Ибрагима к другому ответу — это правильный способ изменить домашний каталог существующего пользователя.

Изменить домашний каталог пользователя:

usermod — это команда для редактирования существующего пользователя.
-d (сокращение от --home ) изменит домашний каталог пользователя.

Изменить домашний каталог пользователя + Переместить содержимое текущего каталога пользователя:

-m (сокращение от --move-home ) переместит содержимое из текущего каталога пользователя в новый каталог.

Не только переместить содержимое, я вижу, что это больше похоже на перемещение всей папки = исходная папка (обычно /home/username) удаляется.

@STW Это обратимая задача? Это означает, что если я просто запущу его один раз, а затем изменю параметры, будет ли мой домашний каталог точно таким, каким он был раньше?

@DanGordon все, что вы укажете в аргументе /newhome/username, будет домашним каталогом пользователя. Вы можете вернуть его к предыдущему домашнему каталогу, если знаете, что это было, но опции «отменить» нет.

Неверный порядок параметров для второй команды. usermod -m -d /newhome/username имя пользователя работает.

Просто откройте этот файл с помощью текстового редактора, введите:

Домашний каталог по умолчанию, определяемый переменной HOME, найдите следующую строку:

Замените на:

Сохраните и закройте файл. Теперь вы можете добавить пользователя с помощью обычной команды useradd:

Проверить информацию о пользователе:


usermod -m -d /path/to/new/login/home/dir user изменяет существующий домашний каталог пользователя на новый каталог входа, который создается, если он еще не существует, опция -m перемещает содержимое текущего домашний каталог в новый домашний каталог

Принятый ответ ошибочен, так как с его помощью содержимое исходной пользовательской папки не перемещается. Я собираюсь добавить еще один ответ, чтобы исправить это:

Вам не нужно создавать папку с именем пользователя, и это также переместит ваши файлы из исходной папки пользователя в папку /newhome/username.

На случай, если другие читатели будут искать информацию о команде adduser.

Установить переменную DHOME


Вы можете сделать это с помощью:

Отредактируйте домашний каталог пользователя, а затем переместите в него необходимые файлы и каталоги:

Установите правильное разрешение

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

Помимо символической ссылки, в более поздних дистрибутивах и файловых системах от имени пользователя root вы также можете использовать bind-mount:

Это полезно для предоставления доступа «через» каталог /home к подкаталогам через демоны, которые в противном случае настроены так, чтобы избегать пути через символические ссылки (apache, ftpd и т. д.).

"В Linux есть GUI (графические пользовательские интерфейсы), в которых вы можете указывать, щелкать и перетаскивать, и, надеюсь, выполнять работу без предварительного чтения большого количества документации. Традиционная среда Unix – это CLI (интерфейс командной строки). ), где вы вводите команды, чтобы сообщить компьютеру, что делать. Это быстрее и мощнее, но требует выяснения, что это за команды».
-- из man intro(1)

На этой странице представлено введение в использование терминала интерфейса командной строки, сокращенно именуемого терминалом. Существует много разновидностей Linux, но почти все они используют похожие команды, которые можно вводить из терминала.

Существует также много графических пользовательских интерфейсов (GUI), но каждый из них работает по-своему, и между ними мало стандартизации. Поэтому опытным пользователям, работающим с различными дистрибутивами Linux, будет легче освоить команды, которые можно использовать во всех разновидностях Ubuntu, а также в других дистрибутивах Linux.

Для новичка команды могут показаться сложными:

Однако важно отметить, что даже опытные пользователи часто вырезают и вставляют команды (из руководства или руководства) в терминал; они их не запоминают.

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

В единстве

Unity — это среда рабочего стола по умолчанию, используемая с 11.04. Там, где системы не готовы к Unity, они возвращаются к GNOME, который также использовался в предыдущих выпусках, таких как Ubuntu 10.04 LTS (Lucid), см. следующий подраздел.

Тире -> Поиск терминала

Dash -> Другие приложения -> "Показать больше результатов" -> Терминал

Dash -> Дополнительные приложения -> Аксессуары -> Терминал

Сочетание клавиш: Ctrl + Alt + T

В GNOME

GNOME — это классическая среда рабочего стола для Ubuntu 11.04 (Natty) и является средой рабочего стола по умолчанию в более ранних выпусках, таких как Ubuntu 10.04 LTS (Lucid).

Меню приложений -> Стандартные -> Терминал.

Сочетание клавиш: Ctrl + Alt + T

В Xfce (Xubuntu)

Меню приложений -> Система -> Терминал.

Сочетание клавиш: Super + T

Сочетание клавиш: Ctrl + Alt + T

В KDE (Кубунту)

KMenu -> Система -> Терминальная программа (Консоль).

В LXDE (Lubuntu)

Меню -> Аксессуары -> LXTerminal.

Сочетание клавиш: Ctrl + Alt + T

sudo: выполнение команд с правами администратора

Команда sudo выполняет команду с правами администратора (административный уровень пользователя root), что необходимо, например, при работе с каталогами или файлами, не принадлежащими вашей учетной записи пользователя. При использовании sudo вам будет предложено ввести пароль. Только пользователи с правами администратора могут использовать sudo.

Будьте осторожны при выполнении команд с правами администратора — вы можете повредить свою систему! Вы никогда не должны использовать обычный sudo для запуска графических приложений с правами администратора. Дополнительные сведения о правильном использовании sudo см. в разделе RootSudo.

Команды файлов и каталогов

    Чтобы сэкономить на вводе, вы можете заменить домашний каталог на «~».

Вот пример, когда необходимо выполнить команду с правами администратора. Предположим, что другой пользователь случайно переместил один из ваших документов из каталога Documents в корневой каталог. Обычно, чтобы переместить документ обратно, вы вводите mv /mydoc.odt ~/Documents/mydoc.odt, но по умолчанию вам не разрешено изменять файлы за пределами вашего домашнего каталога. Чтобы обойти это, вы должны ввести sudo mv /mydoc.odt ~/Documents/mydoc.odt. Это позволит успешно переместить документ обратно в правильное место при условии, что у вас есть права администратора.

Запуск файла в каталоге

Итак, вы решили запустить файл с помощью командной строки? Хорошо. для этого тоже есть команда!

./имя_файла.расширение

После перехода к каталогу файла эта команда позволит любому пользователю Ubuntu запускать файлы, скомпилированные с помощью GCC или любого другого языка программирования. Хотя в приведенном выше примере указано расширение имени файла, обратите внимание, что, в отличие от некоторых других операционных систем, Ubuntu (и другие системы на базе Linux) не заботятся о расширениях файлов (они могут быть любыми или никакими). Имейте в виду, что «расширение» будет варьироваться в зависимости от языка, на котором написан исходный код. Кроме того, для скомпилированных языков (таких как C и C++) невозможно запустить исходный код напрямую — файл должен быть скомпилирован. во-первых, это означает, что он будет переведен с удобочитаемого языка программирования на язык, понятный компьютеру. Некоторые возможные расширения: «.c» для исходного кода C, «.cpp» для C++, «.rb» для Ruby, «.py» для Python и т. д. Кроме того, помните, что (в случае интерпретируемых языков, таких как Ruby и Python ) у вас должна быть установлена ​​версия этого языка в Ubuntu, прежде чем пытаться запускать файлы, написанные на нем.

Наконец, файл будет выполнен только в том случае, если права доступа к файлу указаны правильно. Подробнее см. на странице справки FilePermissions.

Команды системной информации

df: Команда df отображает использование дискового пространства файловой системы для всех смонтированных разделов. «df -h», вероятно, самый полезный — он использует мегабайты (M) и гигабайты (G) вместо блоков для отчета. (-h означает "удобочитаемый")

du: Команда du отображает использование диска для каталога. Он может отображать пространство, используемое для всех подкаталогов, или общее количество для каталога, в котором вы его запускаете. Пример:

В приведенном выше примере -s означает "Сводка", а -h означает "Удобочитаемый".

free: команда free отображает количество свободной и используемой памяти в системе. "free -m" предоставит информацию в мегабайтах, что, вероятно, наиболее полезно для современных компьютеров.

top: Команда top («таблица процессов») отображает информацию о вашей системе Linux, запущенных процессах и системных ресурсах, включая использование ЦП, ОЗУ и подкачки, а также общее количество запущенных задач. Чтобы выйти из верхней части, нажмите "q".

uname -a: Команда uname с параметром -a выводит всю системную информацию, включая имя машины, имя и версию ядра и некоторые другие сведения. Наиболее полезно для проверки того, какое ядро ​​вы используете.

lsb_release -a: команда lsb_release с параметром -a выводит информацию о версии используемого вами выпуска Linux, например:

IP-адрес сообщает о сетевых интерфейсах вашей системы.

Добавление нового пользователя

Команда "adduser newuser" создаст в вашей системе нового обычного пользователя с именем "newuser", а для назначения пароля для учетной записи newuser используйте "passwd newuser".

Поведение по умолчанию для команды обычно можно изменить, добавив к команде параметр --option. Команда ls, например, имеет параметр -s, так что "ls -s" будет включать размеры файлов в список. Существует также параметр -h, чтобы получить эти размеры в «удобочитаемом» формате.

Параметры могут быть сгруппированы в кластеры, поэтому "ls -sh" точно такая же команда, как "ls -s -h". Большинство опций имеют длинную версию с двумя дефисами вместо одного, поэтому даже "ls --size --human-readable" является одной и той же командой.

man command, info command и command --help являются наиболее важными инструментами командной строки.

Почти у каждой команды и приложения в Linux есть man-файл (руководство), поэтому найти их так же просто, как ввести «man «command»», чтобы открыть более длинный ручной ввод для указанной команды. Например, "man mv" вызовет руководство mv (перемещение).

Перемещайтесь вверх и вниз по man-файлу с помощью клавиш со стрелками и вернитесь в командную строку, нажав "q".

"man man" вызовет ручной ввод для команды man, с чего стоит начать!

"man intro" особенно полезен - он отображает "Введение в пользовательские команды", которое представляет собой хорошо написанное, довольно краткое введение в командную строку Linux.

Есть также информационные страницы, которые, как правило, содержат больше информации, чем справочные страницы. Попробуйте "info info" для ознакомления с информационными страницами.

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

Практически все команды понимают параметр -h (или --help), который выдает краткое описание использования команды и ее параметров, а затем возвращается в командную строку. Попробуйте "man -h" или "man --help", чтобы увидеть это в действии.

Предостережение: возможно (но редко), что программа не понимает, что параметр -h означает справку. По этой причине сначала проверьте справочную или информационную страницу и попробуйте использовать длинную опцию --help перед -h.

Поиск справочных страниц

Если вы не уверены, какую команду или приложение вам нужно использовать, попробуйте выполнить поиск по страницам руководства. Каждая страница руководства имеет название и краткое описание.

Чтобы найти имена для ввода:

Например, whatis -r cpy выведет список справочных страниц, имена которых содержат cpy. Вывод whatis -r cpy будет частично зависеть от вашей системы, но может быть следующим:

Чтобы найти имена или описания для ввода:

Например, указание -r "copy files" выведет список справочных страниц, имена или описания которых содержат файлы копирования. Вывод из apropos -r "copy files" будет частично зависеть от вашей системы, но может быть следующим:

Улучшенные страницы руководств

Пользователи, у которых установлен Konqueror, будут рады узнать, что они могут читать и искать справочные страницы в контексте веб-браузера, используя выбранные ими настольные шрифты и немного цвета, посетив man:/< em>команда в адресной строке Konqueror. Некоторым это может показаться облегчающим задачу, если есть много документации для чтения/поиска.

Вставка команд

Часто вас будут отсылать к инструкциям, требующим вставки команд в терминал. Вам может быть интересно, почему текст, скопированный с веб-страницы с помощью Ctrl + C, не вставляется с помощью Ctrl + V. Вам ведь не нужно вводить все эти неприятные команды и имена файлов? Расслабляться. ctrl+shift+V вставляет в терминал GNOME; Вы также можете щелкнуть средней кнопкой мыши (обе кнопки одновременно на двухкнопочной мыши) или щелкнуть правой кнопкой мыши и выбрать в меню Вставить. Однако, если вы хотите избежать мыши и все же вставить ее, используйте «Shift + Insert», чтобы вставить команду. Если вам нужно скопировать его с другого терминала / веб-страницы, вы можете использовать «Ctrl + Insert» для копирования.


Это помогает, но я хотел бы изменить свой домашний каталог навсегда, а не только на текущий сеанс.

5 ответов 5

краткий ответ: вы не можете.

длинный ответ:

Главная папка указана в /etc/passwd, 6-е поле. Читается при входе в систему; ваша оболочка запускается с этим домашним каталогом.

Правильный способ изменить домашний каталог для Джо:

  • попросите Джо выйти из системы.
  • используйте usermod -d /new/home joe, чтобы изменить домашний каталог для следующего сеанса.

После запуска сеанса необходимо сделать две вещи:

  • отредактируйте $HOME, чтобы изменить домашний каталог для сеанса (повторять для всех активных сеансов).
  • используйте sudo vipw для редактирования домашнего каталога для следующего сеанса

Кроме того, имейте в виду, что у вас могут возникнуть проблемы с разрешениями/правами собственности на /var/www/html .


редактировать /etc/passwd для учетной записи, которая вошла в систему, а затем начать новый сеанс с той же учетной записью, и он подчиняется новому домашнему каталогу. Для уже зарегистрированной учетной записи этот сеанс по-прежнему имеет старое исходное местоположение в среде.

Вам нужно отредактировать файл /etc/passwd, чтобы изменить домашний каталог пользователей, которые в данный момент вошли в систему.

Отредактируйте /etc/passwd с помощью sudo vipw и измените домашний каталог пользователя.

Настоятельно рекомендуется vipw, кроме vim или других редакторов, так как vipw установит блокировку, чтобы предотвратить повреждение данных.


Команда usermod не будет работать, если вы вошли в систему с пользователем, в отношении которого пытаетесь внести изменения.

На странице руководства по usermod написано:

ВНИМАНИЕ! usermod не позволит вам изменить имя пользователя, вошедшего в систему. Вы должны убедиться, что указанный пользователь не выполняет никаких процессов, когда эта команда выполняется, если числовой идентификатор пользователя меняется. Вы должны изменить владельца любых файлов crontab вручную. Вы должны вручную изменить владельца любого задания at. Вы должны вносить любые изменения, связанные с NIS, на сервере NIS.

Попробуйте войти под другим пользователем и снова запустить команду.

Если это невозможно, вы можете вручную отредактировать файл /etc/passwd (что, собственно, и делает команда usermod). Если вы это сделаете, обязательно сделайте резервную копию файла на случай, если вы случайно сделаете что-нибудь глупое.

Читайте также: