Как узнать домашнюю директорию любого пользователя Linux
Для того, чтобы правильно и безопасно хранить данные на сервере, (особенно, если на этом сервере несколько пользователей), следует точно знать, где располагаются их домашние папки, до которых у пользователей есть доступ (у каждого в свою, но нет доступа в чужие папки с чужими данными). Например, для того, чтобы дать пользователю доступ по ftp только к его данным или подсказать полный путь до его www-директории. В этой статье рассмотрим то, как узнать домашнюю директорию любого пользователя Linux несколькими способами.
Где хранится системная информация о домашних каталогах пользователей в Linux
При создании нового пользователя в Unix-системах, каждому пользователю обязательно домашний каталог. О том, где и как располагается запись о домашней директории пользователя в файле /etc/passwd , подробно описано в → этой статье. Для понимания вопроса сейчас требуется знать, что это предпоследнее (шестое) поле home в строке записи пользователя в этом файле:
login : password : UID : GID : GECOS : home : shell
Поэтому, можно в цикле обходить этот файл в поиске записи нужного пользователя, разбивать строку на подстроки и брать значение 6-го поля. Но это слишком длинный способ. Есть короче и проще. 😉
Команда pwd в Unix
Команда pwd выводит текущий путь к директории, в которой находится пользователь. Выполнив команду pwd , получим этот путь:
root@server:~# pwd /root
У пользователя root в Unix по умолчанию домашней директорией является /root .
Оператор ~ (тильда) в Debian
Другой способ того, как определить домашнюю директорию текущего пользователя. Достаточно посмотреть значение оператора ~ (тильда):
root@server:~# echo ~ /root
Результат не сильно отличается от предыдущего, но к ~ можно добавлять дополнительные пути к папкам и/или файлам пользователя, используя её как точку отсчёта в домашней директории пользователя. Что сильно облегчает работу с написанием относительных путей (относительно не только корня файловой системы, но и корня домашней папки пользователя).
Ещё одним полезным свойством ~ является то, что с помощью этого оператора можно получить путь до домашней директории любого пользователя в системе (если конечно пользователь есть в системе, то есть прописан в файле /etc/passwd , например посмотреть содержимое домашнего каталога пользователя ftp можно так, поставив перед ним тильду ~ :
root@server:~# ls ~ftp welcome.msg
А теперь посмотреть содержимое этого файла:
root@server:~# cat ~ftp/welcome.msg Welcome, archive user %U@%R ! The local time is: %T This is an experimental FTP server. If you have any unusual problems, please report them via e-mail to .
Ну и то, к чему мы стремились: посмотреть путь к домашней директории пользователя:
root@amorale:~# echo ~ftp /srv/ftp
Так гораздо удобнее, чем парсить и разбирать файл /etc/passwd . За нас всю эту работу делает операционная система! 😉
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉
06. Пути и директории
Для работы с файлами и директориями в графическом интерфейсе есть программы, называемые файловыми менеджерами. У разных графических окружений могут быть разные программы, тот же GNOME, который стоит на CentOS, по умолчанию использует файловый менеджер под названием nautilus. Я думаю все знают, что можно делать с файлами и директориями – смотреть информацию о них, копировать, вырезать, удалять, переименовывать, создавать директории и всё такое. И в командой строке это также просто.

Мы знаем, что посмотреть содержимое директории можно с помощью команды ls. По умолчанию она показывает содержимое текущей директории. Заметьте, что ls показывает директории одним цветом, а файлы другим. Чтобы понять, в какой директории мы сейчас находимся, нужна команда pwd – print working directory.
Когда вы открываете терминал, как правило он использует домашнюю директорию пользователя – это личная директория пользователя, где находятся все его файлы. С помощью ls можно смотреть содержимое и других директорий, для этого нужен путь к другой директории.

Кстати о пути. В корне находятся директории, внутри которых тоже есть какие-то директории. Например, в корне у нас есть директория home, где обычно лежат домашние директории пользователей, например, нашего пользователя user. А внутри домашней директории пользователя есть какие-то его личные директории.

То есть, чтобы мне зайти, допустим, в директорию Documents у пользователя user, мне нужно зайти в корень, потом открыть home, user и зайти в директорию Documents. Чтобы переходить по директориям в командной строке, используем команду cd – сhange directory – сменить директорию. И так, пишем cd /, то есть заходим в корень (слеш – это путь к корню), проверяем текущую директорию (pwd), и смотрим её содержимое(ls). Дальше пишем cd home и повторяем всё тоже самое. Не стесняйтесь использовать tab – допустим, пишете cd h, нажимаете tab и он автоматом добавляет ome, так как никаких других директорий, начинающихся на h здесь нет. Точно также для user и Documents.
cd / pwd ls cd home pwd ls cd user pwd ls cd Documents pwd ls

Чтобы сразу зайти в Documents, мы можем разом написать cd /home/user/Documents, разделяя директории знаком слэш.
cd /home/user/Documents/
Когда мы в начале указываем корень (/), а потом пишем первую директорию, которая находится в корне, а потом то что внутри и т.д. — это полный путь. /home/user/Documents – пример полного пути. Он всегда начинается со знака / — то есть мы возвращаемся в самое начало файловой системы и оттуда начинаем писать путь. Такой путь универсальный — где бы вы сейчас не находились, вы можете указать полный путь и попасть туда куда вам надо.

В домашнюю директорию пользователя можно вернуться просто написав cd. Я вижу (ls), что здесь есть директория Documents. Если я хочу зайти в эту директорию, мне не обязательно писать полный путь – cd /home/user/Documents, я могу просто написать cd Documents. Или допустим, давайте зайдём в cd /home/. Я могу написать cd user/Documents. То есть, я строю путь не с корня, а с текущей директории. Такой путь называется относительным. Но что, если я нахожусь в директории /home/user/Documents и хочу попасть на директорию выше, то есть в /home/user ? Для этого в каждой директории есть ссылки на вышестоящую директорию – две точки (..). Если я напишу cd .. , я попаду в /home/user . Я могу делать всякие комбинации, допустим, находясь в директории Documents, я могу написать cd ../Pictures. То есть, я разом вернулся в директорию /home/user и зашёл в Pictures. Чтобы сразу вернуться туда, где я был раньше, я могу написать cd — . Также есть ссылка на текущую директорию – одна точка. Зачем это нужно мы разберём чуть позже. Также есть готовая ссылка на домашнюю директорию нашего пользователя – тильда (~). Где бы мы не находились, мы всегда можем написать cd ~ и попасть в домашнюю директорию, либо использовать это для относительного пути, например cd ~/Documents . Ну и возвращаясь к теме ls, мы можем посмотреть содержимое любой директории, где бы мы сейчас не находились, используя полный или относительный пути. Допустим, ls /home/user/Documents или ls Documents или ls ~/Pictures.
cd pwd ls cd /home pwd cd user/Documents/ cd .. cd Documents cd ../Pictures cd - cd . cd ~ cd ~/Documents ls ~/Pictures

С путями разобрались. Теперь давайте посмотрим, как работать с директориями. Начнём с создания директории, для этого используем команду mkdir – make directory – создать директорию. В качестве аргумента мы должны указать название новой директории – допустим:
mkdir test ls
Можно разом создать несколько директорий:
mkdir test1 test2 test3 ls
Очень не рекомендую использовать пробелы в названиях, так как командная строка воспринимает пробелы как переход на новый аргумент или опцию. Как я показал выше, если я напишу:
mkdir this is a new directory ls
у меня создастся пять директорий. Но если всё же вам необходимо создать директорию с пробелами в названии, вы можете взять название новой директории в кавычки:
mkdir "New Dir"
Теперь, чтобы зайти в эту директорию, нужно либо использовать кавычки, либо использовать специальный символ — \ (обратный слэш) перед пробелом.
cd "New Dir" cd .. cd New\ Dir
Это называется экранированием символов. В данном случае это позволит консоли игнорировать пробел как переход на новый аргумент.

Если я хочу создать сразу директорию 1, а внутри неё директорию 2, а внутри неё директорию 3, для этого нужна опция -p – parents – создавать родительские директории. То есть, написав:
mkdir -p dir1/dir2/dir3
я создам несколько вложенных директорий.

Для удаления пустой директории используется команда rmdir – remove directory – удалить директорию. Например:
rmdir test1
Можно разом удалять несколько директорий:
rmdir test2 test3
Если директория не пустая, то rmdir откажется её удалять. Поэтому, когда вам нужно удалить директорию со всем содержимым, используется команда rm -r . Например:
rm -r New\ Dir
Тогда я удалю как New Dir, так и директории dir1, dir2 и dir3. Вообще, rm используется для удаления файлов, но о файлах мы поговорим в следующий раз. А опцию -r вы часто будете встречать – она означает рекурсивно, то есть со всем, что находится внутри. Допустим, та же команда ls уже с большим -R покажет содержимое директории вместе с содержимым поддиректорий.
ls -R /home/user
Осталось ещё рассмотреть копирование, перемещение и прочее, но так эти команды совпадают с командами по работе с файлами, а тема уже получилась достаточно большая, оставшееся мы рассмотрим в следующий раз. Чтобы не забывать пройденное, обязательно практикуйтесь. Например, найдите в ролике все команды с опциями, которые я вводил, выпишите, повторите на различных директориях. Добейтесь того, чтобы вы знали без всяких раздумий, для чего нужна каждая из этих команд и ключей.
© Copyright 2021, GNU Linux Pro, CC-BY-SA-4.0. Ревизия 5f665cc2 .
RENOTES
Серия постов по работе с Linux для начинающих. Предыдущий пост: Системные shell-команды.
Перейти в директорию /home:
cd /home
Переход в директорию уровнем выше:
Перейти в директорию двумя уровнями выше:
Перейти в домашнюю директорию:
Переход в домашнюю директорию пользователя user:
cd ~user
Переход в предыдущую директорию:
Путь текущей директории:
Содержимое текущей директории с добавлением к именам символов, характеризующих тип:
ls -F
Детализированное представление файлов и директорий в текущей директории:
ls -l
ls -a
mkdir my_dir
Создание дерева директорий:
mkdir -p /my_dir1/my_dir2
rm -f file.txt
Рекурсивное удаление директории, поддиректорий, файлов:
rm -r my_dir
Переименование или перемещение файла или директории:
mv my_dir new_dir
Скопировать файл file1 в файл file2
cp file1 file2
Копировать все файлы директории dir в текущую директорию:
cp dir/* .
Копировать директорию dir1 со всем содержимым в текущую директорию:
cp -a /tmp/dir1 .
Копировать директорию dir1 в директорию dir2:
cp -a dir1 dir2
Создать символическую ссылку на файл или директорию:
ln -s file1 lnk1*
Создать «жёсткую» (физическую) ссылку на файл или директорию:
ln file1 lnk1
Фундаментальные основы Linux. Часть II: Первые шаги в изучении интерфейса командной строки
Оригинал: Linux Fundamentals
Автор: Paul Cobbaut
Дата публикации: 16 октября 2014 г.
Перевод: А.Панин
Дата перевода: 11 декабря 2014 г.
Глава 6. Работа с директориями
В данной главе приводится краткий обзор большинства стандартных команд, используемых при работе с директориями: pwd , cd , ls , mkdir и rmdir . Эти команды доступны при работе с любой системой Linux (или Unix).
Кроме того, в данной главе обсуждаются понятия абсолютных и относительных путей , а также описывается методика использования механизма завершения путей командной оболочки bash.
Команда pwd
С помощью команды pwd (расшифровывается как Print Working Directory — вывести информацию о рабочей директории) может быть получена информация о вашем текущем местонахождении в рамках файловой системы. Попробуйте выполнить эту команду: получите доступ к интерфейсу командной строки системы (воспользовавшись одним из приложений со следующими названиями: terminal, console или xterm) и введите команду pwd . Командная оболочка выведет путь к вашей текущей директории .
paul@debian8:~$ pwd /home/paul
Команда cd
Вы можете изменить вашу текущую директорию с помощью команды cd (расшифровывается как Change Directory — изменить директорию).
paul@debian8$ cd /etc paul@debian8$ pwd /etc paul@debian8$ cd /bin paul@debian8$ pwd /bin paul@debian8$ cd /home/paul/ paul@debian8$ pwd /home/paul
Команда cd ~
Команда cd также может использоваться для быстрого перехода назад в вашу домашнюю директорию. Простое исполнение команды cd без задания пути к целевой директории приведет к перемещению в домашнюю директорию. Исполнение команды cd ~ приведет к аналогичному эффекту.
paul@debian8$ cd /etc paul@debian8$ pwd /etc paul@debian8$ cd paul@debian8$ pwd /home/paul paul@debian8$ cd ~ paul@debian8$ pwd /home/paul
Команда cd ..
Для перехода в родительскую директорию (ту директорию, которая находится над вашей текущей директорией в дереве директорий) следует использовать команду cd .. .
paul@debian8$ pwd /usr/share/games paul@debian8$ cd .. paul@debian8$ pwd /usr/share
Для того, чтобы остаться в текущей директории, просто введите команду cd . 😉 Позднее мы все же познакомимся с практическим примером использования символа . , представляющего текущую директорию.
Команда cd —
Другой полезный вариант использования команды cd заключается в выполнении простой команды cd — для перехода в предыдущую директорию.
paul@debian8$ pwd /home/paul paul@debian8$ cd /etc paul@debian8$ pwd /etc paul@debian8$ cd - /home/paul paul@debian8$ cd - /etc
Абсолютные и относительные пути
Вы должны иметь представление об абсолютных и относительных путях в рамках дерева директорий файловой системы. Если вы вводите путь, начинающийся с символа слэша (/) , подразумевается, что путь будет указан относительно корневой директории файловой системы. Если же вы не начинаете ввод пути с символа слэша, подразумевается, что точкой отсчета будет текущая директория.
В примере ниже показано, что текущей директорией является директория /home/paul . Для перехода из этой директории в директорию /home вам придется ввести команду cd /home вместо команды cd home .
paul@debian8$ pwd /home/paul paul@debian8$ cd home bash: cd: home: Нет такого файла или каталога paul@debian8$ cd /home paul@debian8$ pwd /home
При нахождении в директории /home вам придется ввести команду cd paul вместо команды cd /paul для перехода в поддиректорию paul текущей директории /home .
paul@debian8$ pwd /home paul@debian8$ cd /paul bash: cd: /paul: Нет такого файла или каталога paul@debian8$ cd paul paul@debian8$ pwd /home/paul
В том же случае, если вашей текущей директорией является корневая директория / , то и команда cd /home , и команда cd home позволят вам переместиться в директорию /home .
paul@debian8$ pwd / paul@debian8$ cd home paul@debian8$ pwd /home paul@debian8$ cd / paul@debian8$ cd /home paul@debian8$ pwd /home
Этот пример был последним примером, в котором используются команды pwd . С этого момента информация о текущей директории будет всегда выводиться в рамках приглашения командной оболочки. Далее в данной книге будут даны пояснения относительно того, как следует использовать переменную командной оболочки $PS1 для вывода описанной информации.
Завершение путей
Клавиша TAB может помочь избежать ошибок при вводе путей. Нажатие клавиши TAB после ввода части команды cd /et приведет к завершению команды до вида cd /etc/ . При этом нажатие клавиши TAB после ввода команды cd /Et не приведет ни к чему, так как была допущена ошибка при вводе части пути (использована буква E в верхнем регистре).
Вам придется нажимать меньше клавиш в случае использования клавиши TAB , к тому же, при использовании этой клавиши вы можете быть уверены в том, что введенный путь является корректным!
Утилита ls
Вы можете вывести список содержимого директории с помощью утилиты ls .
paul@debian8:~$ ls allfiles.txt dmesg.txt services stuff summer.txt paul@debian8:~$
Команда ls -a
Часто используемым параметром утилиты ls является параметр -a , который предназначен для вывода информации обо всех файлах. Под выводом информации обо всех файлах подразумевается вывод информации в том числе и о скрытых файлах . В том случае, если имя файла в рамках файловой системы Linux начинается с символа точки, он считается скрытым файлом и не включается в обычные списки содержимого директорий.
paul@debian8:~$ ls allfiles.txt dmesg.txt services stuff summer.txt paul@debian8:~$ ls -a . allfiles.txt .bash_profile dmesg.txt .lesshst stuff .. .bash_history .bashrc services .ssh summer.txt paul@debian8:~$
Команда ls -l
Вам придется многократно использовать параметры утилиты ls для вывода информации о содержимом директории в различных форматах или для вывода информации о различных файлах из директории. Команда ls без параметров позволяет получить список файлов, расположенных в директории. Команда ls -l (в качестве параметра использована строчная буква L, а не число 1) позволяет получить более подробный список файлов.
paul@debian8:~$ ls -l итого 17296 -rw-r--r-- 1 paul paul 17584442 сен 17 00:03 allfiles.txt -rw-r--r-- 1 paul paul 96650 сен 17 00:03 dmesg.txt -rw-r--r-- 1 paul paul 19558 сен 17 00:04 services drwxr-xr-x 2 paul paul 4096 сен 17 00:04 stuff -rw-r--r-- 1 paul paul 0 сен 17 00:04 summer.txt
Команда ls -lh
Другим периодически используемым параметром утилиты ls является параметр -h . Он позволяет выводить числовые значения (соответствующие размерам файлов) в формате, лучше читаемом человеком. Также в примере ниже показаны варианты передачи параметров утилите ls . Позднее в данной книге будут даны подробные пояснения относительно выводимых данных.
Обратите внимание на то, что мы используем строчную букву L, а не число 1 в качестве параметра утилиты в данном примере.
paul@debian8:~$ ls -l -h итого 17M -rw-r--r-- 1 paul paul 17M сен 17 00:03 allfiles.txt -rw-r--r-- 1 paul paul 95K сен 17 00:03 dmesg.txt -rw-r--r-- 1 paul paul 20K сен 17 00:04 services drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff -rw-r--r-- 1 paul paul 0 сен 17 00:04 summer.txt paul@debian8:~$ ls -lh итого 17M -rw-r--r-- 1 paul paul 17M сен 17 00:03 allfiles.txt -rw-r--r-- 1 paul paul 95K сен 17 00:03 dmesg.txt -rw-r--r-- 1 paul paul 20K сен 17 00:04 services drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff -rw-r--r-- 1 paul paul 0 сен 17 00:04 summer.txt paul@debian8:~$ ls -hl итого 17M -rw-r--r-- 1 paul paul 17M сен 17 00:03 allfiles.txt -rw-r--r-- 1 paul paul 95K сен 17 00:03 dmesg.txt -rw-r--r-- 1 paul paul 20K сен 17 00:04 services drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff -rw-r--r-- 1 paul paul 0 сен 17 00:04 summer.txt paul@debian8:~$ ls -h -l итого 17M -rw-r--r-- 1 paul paul 17M сен 17 00:03 allfiles.txt -rw-r--r-- 1 paul paul 95K сен 17 00:03 dmesg.txt -rw-r--r-- 1 paul paul 20K сен 17 00:04 services drwxr-xr-x 2 paul paul 4.0K сен 17 00:04 stuff -rw-r--r-- 1 paul paul 0 Sep 17 00:04 summer.txt paul@debian8:~$
Утилита mkdir
Обход дерева директорий файловой системы Unix является интересным занятием, но еще больший интерес представляет создание ваших собственных директорий с помощью утилиты mkdir . Вам придется передавать как минимум один параметр утилите mkdir , а именно, имя новой директории, которая должна быть создана. При этом следует серьезно задумываться перед использованием начального символа / в именах директорий.
paul@debian8:~$ mkdir mydir paul@debian8:~$ cd mydir paul@debian8:~/mydir$ ls -al итого 8 drwxr-xr-x 2 paul paul 4096 сен 17 00:07 . drwxr-xr-x 48 paul paul 4096 сен 17 00:07 .. paul@debian8:~/mydir$ mkdir stuff paul@debian8:~/mydir$ mkdir otherstuff paul@debian8:~/mydir$ ls -l итого 8 drwxr-xr-x 2 paul paul 4096 сен 17 00:08 otherstuff drwxr-xr-x 2 paul paul 4096 сен 17 00:08 stuff paul@debian8:~/mydir$
Команда mkdir -p
Исполнение следующей команды закончится неудачей, так как родительской директории для директории threedirsdeep не существует.
paul@debian8:~$ mkdir mydir2/mysubdir2/threedirsdeep mkdir: невозможно создать каталог "mydir2/mysubdir2/threedirsdeep": Нет такого файла или каталога
В случае использования параметра -p утилиты mkdir при необходимости будут создаваться родительские директории.
paul@debian8:~$ mkdir -p mydir2/mysubdir2/threedirsdeep paul@debian8:~$ cd mydir2 paul@debian8:~/mydir2$ ls -l итого 4 drwxr-xr-x 3 paul paul 4096 сен 17 00:11 mysubdir2 paul@debian8:~/mydir2$ cd mysubdir2 paul@debian8:~/mydir2/mysubdir2$ ls -l итого 4 drwxr-xr-x 2 paul paul 4096 сен 17 00:11 threedirsdeep paul@debian8:~/mydir2/mysubdir2$ cd threedirsdeep/ paul@debian8:~/mydir2/mysubdir2/threedirsdeep$ pwd /home/paul/mydir2/mysubdir2/threedirsdeep
Утилита rmdir
В том случае, если директория пуста, вы можете использовать утилиту rmdir для удаления этой директории.
paul@debian8:~/mydir$ ls -l итого 8 drwxr-xr-x 2 paul paul 4096 сен 17 00:08 otherstuff drwxr-xr-x 2 paul paul 4096 сен 17 00:08 stuff paul@debian8:~/mydir$ rmdir otherstuff paul@debian8:~/mydir$ cd .. paul@debian8:~$ rmdir mydir rmdir: не удалось удалить "mydir": Каталог не пуст paul@debian8:~$ rmdir mydir/stuff paul@debian8:~$ rmdir mydir paul@debian8:~$
Команда rmdir -p
И по аналогии с параметром mkdir -p , вы также можете использовать утилиту rmdir для рекурсивного удаления директорий.
paul@debian8:~$ mkdir -p test42/subdir paul@debian8:~$ rmdir -p test42/subdir paul@debian8:~$
Практическое задание: работа с директориями
1. Выведите путь к вашей текущей директории.
2. Перейдите в директорию /etc.
3. А теперь перейдите в вашу домашнюю директорию с помощью ровно трех нажатий клавиш.
4. Перейдите в директорию /boot/grub с помощью ровно одиннадцати нажатий клавиш.
5. Перейдите в родительскую директорию для текущей директории.
6. Перейдите в корневую директорию.
7. Выведите список содержимого корневой директории.
8. Выведите подробный список содержимого корневой директории.
9. Оставаясь в текущей рабочей директории, выведите список содержимого директории /etc.
10. Оставаясь в текущей директории, выведите список содержимого директорий /bin и /sbin.
11. Оставаясь в текущей директории, выведите список содержимого директории ~.
12. Выведите список всех файлов (включая скрытые файлы), находящихся в вашей домашней директории.
13. Выведите список файлов, находящихся в директории /boot, с использованием формата величин для облегчения чтения человеком.
14. Создайте директорию testdir в вашей домашней директории.
15. Перейдите в директорию /etc и, оставаясь в ней, создайте директорию newdir в вашей домашней директории.
16. Создайте с помощью одной команды директории ~/dir1/dir1/dir2/dir3 (директория dir3 является поддиректорией директории dir2, а директория dir2 — поддиректорией директории dir1).
17. Удалите директорию testdir.
18. Если позволяет время (или вы ждете момента, когда остальные студенты закончат выполнение данного практического задания), попытайтесь воспользоваться командами pushd и popd и понять принцип их работы. Обратитесь к странице руководства man для командной оболочки bash с целью поиска информации о данных командах.
Корректная процедура выполнения практического задания: работа с директориями
1. Выведите путь к вашей текущей директории.
2. Перейдите в директорию /etc.
cd /etc
3. А теперь перейдите в вашу домашнюю директорию с помощью ровно трех нажатий клавиш.
cd (и нажатие клавиши Enter)
4. Перейдите в директорию /boot/grub с помощью ровно одиннадцати нажатий клавиш.
cd /boot/grub (Используйте клавишу Tab)
5. Перейдите в родительскую директорию для текущей директории.
cd .. (Между cd и .. должен быть пробел)
6. Перейдите в корневую директорию.
7. Выведите список содержимого корневой директории.
8. Выведите подробный список содержимого корневой директории.
ls -l
9. Оставаясь в текущей рабочей директории, выведите список содержимого директории /etc.
ls /etc
10. Оставаясь в текущей директории, выведите список содержимого директорий /bin и /sbin.
ls /bin /sbin
11. Оставаясь в текущей директории, выведите список содержимого директории ~.
12. Выведите список всех файлов (включая скрытые файлы), находящихся в вашей домашней директории.
ls -al ~
13. Выведите список файлов, находящихся в директории /boot, с использованием формата величин для облегчения чтения человеком.
ls -lh /boot
14. Создайте директорию testdir в вашей домашней директории.
mkdir ~/testdir
15. Перейдите в директорию /etc и, оставаясь в ней, создайте директорию newdir в вашей домашней директории.
cd /etc ; mkdir ~/newdir
16. Создайте с помощью одной команды директории ~/dir1/dir1/dir2/dir3 (директория dir3 является поддиректорией директории dir2, а директория dir2 — поддиректорией директории dir1).
mkdir -p ~/dir1/dir2/dir3
17. Удалите директорию testdir.
rmdir testdir
18. Если позволяет время (или вы ждете момента, когда остальные студенты закончат выполнение данного практического задания), попытайтесь воспользоваться командами pushd и popd и понять принцип их работы. Обратитесь к странице руководства man для командной оболочки bash с целью поиска информации о данных командах.
man bash # открытие страницы руководства /pushd # поиск раздела с описанием команды pushd n # переход к следующему разделу (повторите это действие два/три раза)
Командная оболочка Bash поддерживает две встроенных команды с именами pushd и popd. Обе команды предназначены для работы со стандартным стеком посещенных ранее директорий. Команда pushd позволяет поместить директорию в стек и переместиться в новую текущую директорию, команда popd удаляет директорию из стека и устанавливает предыдущую текущую директорию.
paul@debian7:/etc$ cd /bin paul@debian7:/bin$ pushd /lib /lib /bin paul@debian7:/lib$ pushd /proc /proc /lib /bin paul@debian7:/proc$ popd /lib /bin paul@debian7:/lib$ popd /bin
| Предыдущий раздел: | Оглавление | Следующий раздел: |
| Глава 5. Страницы руководств man | Глава 7. Работа с файлами |