Урок 2 из 8 · 20 мин · обновлено
Файлы и папки: где я и как перемещаться
Как устроена файловая система Linux, что показывают pwd и ls, как ходить по папкам командой cd, чем абсолютный путь отличается от относительного и что значат ~, . и ..
Дерево папок
В Windows у каждого диска своё начало: C:\, D:\. В Linux одна общая структура, и начинается она с корня — /. Внутри — системные папки:
/home— домашние папки пользователей:/home/anna;/etc— настройки системы и программ;/var/log— журналы, или логи;/usr/bin— программы, в том числе сами команды.
Работать мы будем в своей домашней папке. Для практики создайте учебную папку — подробно команды разберём в следующем уроке:
mkdir -p ~/practice/photos ~/practice/docs
touch ~/practice/notes.txt ~/practice/photos/cat.jpg ~/practice/photos/dog.jpg ~/practice/photos/sea.png
pwd и ls: где я и что вокруг
pwd
/home/anna
pwd показывает текущую папку — ту, где вы сейчас находитесь. Все команды по умолчанию работают в ней.
ls practice
docs notes.txt photos
ls показывает содержимое папки: без аргумента — текущей. Полезные параметры:
ls -l— подробный список: права, владелец, размер, дата изменения;ls -a— показать и скрытые файлы. В Linux скрыт любой файл, имя которого начинается с точки, например.bashrcс настройками bash;ls -lh— размеры в понятном виде:4,0K,12M.
cd: переходим между папками
cd practice
pwd
cd photos
pwd
/home/anna/practice
/home/anna/practice/photos
Особые обозначения:
~— домашняя папка:cd ~вернёт домой из любого места. Простоcdбез аргумента делает то же;.— текущая папка;..— папка уровнем выше:cd ..изphotosприведёт вpractice;cd -— вернуться в предыдущую папку, где вы были.
Абсолютные и относительные пути
Путь к файлу можно записать двумя способами:
- абсолютный — от корня, начинается с
/:/home/anna/practice/photos/cat.jpg. Работает откуда угодно; - относительный — от текущей папки: если вы в
practice, тот же файл —photos/cat.jpg. А из папкиdocs—../photos/cat.jpg: подняться на уровень выше, потом зайти вphotos.
Ошибка «No such file or directory» — «нет такого файла или папки» — чаще всего значит, что вы не в той папке или путь неверен. Проверьте pwd и ls.
Имена в Linux чувствительны к регистру: Photos и photos — разные папки. А пробелы в именах неудобны: такое имя берут в кавычки, cd "My Photos". Поэтому в работе пробелы заменяют дефисом или подчёркиванием.
Попробуйте сами. Находясь в папке ~/practice/docs, одной командой покажите содержимое папки photos, не переходя в неё. Потом перейдите в photos и вернитесь обратно в docs самым коротким способом.
Решение
cd ~/practice/docs
ls ../photos
cd ../photos
cd -
pwd
cat.jpg dog.jpg sea.png
/home/anna/practice/docs
/home/anna/practice/docs
../photos — относительный путь: подняться в practice и зайти в photos. cd - возвращает в предыдущую папку и сразу печатает её путь, поэтому строка с путём выводится дважды — второй раз её напечатал pwd.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Вы не понимаете, в какой папке сейчас находитесь. Какая команда подскажет?
pwd (print working directory) печатает полный путь текущей папки.
-
Чем путь /home/anna/practice отличается от practice?
Абсолютный путь начинается с / и всегда ведёт в одно место. Относительный зависит от того, где вы сейчас.
-
Вы в папке /home/anna/practice/photos. Куда приведёт cd ..?
Две точки — папка уровнем выше. Из photos это practice.
-
Почему ls не показывает файл .bashrc, хотя он есть?
Точка в начале имени делает файл скрытым. Так обычно хранят настройки программ.