Как узнать домашнюю директорию любого пользователя Linux

Команда cd («изменить каталог») используется для изменения текущего рабочего каталога в Linux и других Unix-подобных операционных системах. Это одна из самых основных и часто используемых команд при работе в терминале Linux.

В предыдущих командах мы начали взаимодействовать с путями. Этот термин имеет огромное значение для знания Linux. Всякий раз, когда мы ссылаемся на файл или каталог в командной строке, мы ссылаемся на путь. Путь — это средство доступа к определенному файлу или каталогу в системе.

Мы можем использовать 2 типа путей: абсолютный и относительный . Всякий раз, когда мы ссылаемся на файл или каталог, мы используем один из этих путей.

Для начала, мы должны понимать, что файловая система в Linux является иерархической структурой. На самом верху структуры находится то, что называется корневым каталогом. Обозначается одной косой чертой (/). У него есть подкаталоги, у них есть подкаталоги и так далее. Файлы могут находиться в любом из этих каталогов.

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

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

Например:

Строка 1 — Мы запустили pwd только для того, чтобы проверить, где мы сейчас находимся.

Строка 2 — Мы запустили ls, указав относительный путь. Документы это каталог в нашем текущем местоположении. Эта команда может давать разные результаты в зависимости от того, где мы находимся.

 			Как узнать домашнюю директорию любого пользователя Linux

Строка 3 — Мы запустили ls, предоставив ему абсолютный путь. Эта команда будет выдавать один и тот же вывод независимо от нашего текущего местоположения при запуске.

Способы

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

  • ~ (тильда) — это ярлык для вашего домашнего каталога. Например, если ваш домашний каталог — / home / ryan, то вы можете обратиться к каталогу Documents с путем / home / ryan / Documents или ~ / Documents
  • ., (точка) — это ссылка на ваш текущий каталог. Например, в приведенном выше примере мы ссылались на документы в строке 4 с относительным путем. Он также может быть записан как ./Documents (обычно этот дополнительный бит не требуется, но в следующих разделах мы увидим, где он пригодится).
  • .. (точка) — это ссылка на родительский каталог. Вы можете использовать это несколько раз в пути, чтобы продолжать идти вверх по иерархии. Например, если вы находитесь в пути / home / ryan, вы можете выполнить команду ls ../../, и это сделает список корневого каталога.

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

Всякий раз, когда вы ссылаетесь на файл или каталог в командной строке, вы на самом деле ссылаетесь на путь. Соответственно, путь может быть создан с использованием любого из этих элементов. Лучший подход — тот, который вам удобнее.

Например:

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

Операции с файлами

Команда Действие
ls показать список файлов и каталогов
ls -al показать все файлы на сервере (даже скрытые) + размер + владельца + права на фалы + дату изменения
cd директория перейти в указанную директорию;
cd перейти в домашний каталог
pwd показать текущую папку
mkdir директория создать папку «директория»
rm имя_файла удалить файл с именем имя_файла
rm -r диретория удалить папку «директория»
cp файл1 файл2 скопировать файл1 в файл2
cp -r папка1 папка2 скопировать папка1 в папка2
touch файл создать файл и с именем «файл»
cat > файл направить стандартный ввод в «файл»
more файл показать содержимое файл
head файл показывает первые 10 строк из файла
tail файл показывает последние 10 строк из файла

Где хранится системная информация о домашних каталогах пользователей в Linux

При создании нового пользователя в Unix-системах, каждому пользователю обязательно домашний каталог. О том, где и как располагается запись о домашней директории пользователя в файле /etc/passwd, подробно описано в → этой статье. Для понимания вопроса сейчас требуется знать, что это предпоследнее (шестое) поле home в строке записи пользователя в этом файле:

login:password:UID:GID:GECOS:home:shell

Поэтому, можно в цикле обходить этот файл в поиске записи нужного пользователя, разбивать строку на подстроки и брать значение 6-го поля… Но это слишком длинный способ. Есть короче и проще. 😉

cd Command

cd — это встроенная оболочка, и ее поведение может немного отличаться от оболочки к оболочке. Он использует переменные среды оболочки для определения необходимой информации для его выполнения.

Мы рассмотрим встроенную в Bash версию cd .

Синтаксис команды cd следующий:

cd [OPTIONS] directory

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

  • −L , переходить по символическим ссылкам . По умолчанию cd ведет себя так, как если бы указана опция -L .
  • −P , не переходите по символическим ссылкам. Другими словами, когда эта опция указана, и вы пытаетесь перейти к символической ссылке, которая указывает на каталог, cd перейдет в каталог.

В простейшей форме, при использовании без аргументов, cd перенесет вас в ваш домашний каталог.

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

Чтобы переключиться в каталог, у вас должны быть разрешения на выполнение для этого каталога.

Читайте также:  TMT Group — реальные отзывы жертв брокера-мошенника

Команда pwd позволяет узнать, в каком каталоге вы сейчас находитесь.

Прочие команды Linux и языки программирования

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

sed — мощная утилита для обработки текста.

awk — язык для обработки текста.

grep — утилита поиска текста с использованием регулярных выражений, часто используется в связке с другими командами. grep ‘^a’ » — покажет все строки в файле , которые начинаются с буквы а.

emacs — продвинутый текстовый редактор, обладающий большим количеством функций, вплоть до встроенных игр. Для опытных пользователей.

gcc — компилятор языка C, с помощью которого можно получить исполняемые файлы программ, которые распространяются в исходных кодах. Или откомпилировать свои программы.

gcc hello.c -o privet — компиляция программы hello.c, результатом компиляции будет программа с названием privet. По умолчанию (без опции -o) выходной файл будет называться GCC — это целый набор компиляторов (GNU Compiler Collection). Кроме C есть поддержка программ на C++, Fortran, Ada, Objective-C, Java и Go.

g++ — компилятор языка C++ из GCC. perl — мощный скриптовый язык.

python — вызов интерпретатора языка Python. Это современный и мощный язык, который может быть рекомендован начинающим.

exit — завершение текущей сессии, может применяться для отключения от удаленного компьютера, закрытия терминала.