Работая в терминале очень часто приходится работать с файловой системой. В этой статье мы узнаем с помощью каких утилит можно работать с файловой системой и в какой папке что лежит.
Работаем с файловой системой
Для работы с файловой системой существует небольшой набор утилит, которые очень часто используются в повседневной жизни. Вот список этих утилит:
- pwd — показывает директорию в которой вы находитесь;
- ls — выводит список папок и файлов в текущей директории, так же можно посмотреть список файлов и папок в любой директории просто указав путь к ней — ls /путь/к/папке. По умолчанию список выводится в некрасивом виде, для изменения вида списка необходимо указать аргумент -l — ls -l /путь/к/папке;
- cat — выводит содержимое файла, например cat /путь/к/файлу;
- cd — переходит в указанную папку, например cd /путь/к/папке;
- cp — копирует файл/папку, например cp -R /что/скопировать /куда/скопировать;
- mv — перемещает файл/папку, например mv /что/переместить /куда/переместить;
- rm — удаляет файл/папку, например rm -r /путь/к/файлу_или_папке;
- du — считает размер директории, например du -hc /путь/к/папке;
- mkdir — создаёт директорию, например mkdir /путь/к/папке;
- touch — создаёт файл, например touch /путь/к/файлу.
Небольшие уловки:
- Чтоб вернуться в предыдущую директорию, необходимо выполнить cd -;
- Чтобы перейти на одну директорию вверх, необходимо выполнить cd …;
- Чтобы перейти в домашнюю директорию, необходимо выполнить cd ~;
- Чтобы создать папку внутри еще не существующей директории, необходимо выполнить mkdir -p /несуществующая_папка/папка_которую_нужно_создать;
- ls по умолчанию не показывает скрытые файлы и папки, чтобы он их отобразил необходимо добавить аргумент -a — ls -l -a /путь/к/папке;
Что где лежит и зачем оно там?
… если оно там лежит, значит так и должно быть, не трожь это!
Иерархия файловой система в *nix‐системах кардинально отличается от оной в MS Windows. В ней нету так называемых дисков (A:, C:, D:…), для сравнения, иерархия файловой системы в *nix можно представить как иерархию диска C: в MS Windows.
- / — корень файловой системы, внутри него располагается всё;
- /bin, /sbin, /usr/bin — тут располагаются различные исполняемые файлы (программы);
- /boot — тут располагается ядро linux, и загрузчик (grub, lilo, и т.д.);
- /dev — тут находятся все физические и виртуальные устройства (диски, клавиатуры, видео- и аудио‐карты, и т.д.);
- /etc — тут находятся различные файлы настроек различных системных программ, демонов;
- /home — тут располагаются домашние директории пользователей;
- /lib — тут находятся модули ядра linux, и тут лучше ничего не трогать :);
- /media — тут располагаются все примонтированные оптические диски (а так же и флэшки, жёсткие диски);
- /mnt — тут должны находиться примонтированные жёсткие диски и флешки, но зачастую они оказываются в /media;
- /opt — тут находятся установленные проприетарные приложения и библиотеки;
- /proc, /sys — системные директории с виртуальной файловой системой, хранят в себе информацию о системе, ядре, и прочей ерунде;
- /root — домашняя директория пользователя root;
- /usr — тут хранятся установленные программы, их ресурсы и библиотеки;
- /usr/lib, /usr/lib32 — хранят в себе различные библиотеки;
- /usr/include — хранят в себе заголовочные файлы различных библиотек, которые используются при разработке ПО;
- /usr/local — имеет такую же структуру как и /usr, только хранит в себе вручную собранные и установленные приложения и библиотеки;
- /usr/share — тут находятся различные ресурсы библиотек и приложений (изображения, звуки, шрифты, документация)
- /var — директория в которой хранятся логи, файлы данных различных системных приложений (например базы данных mysql), сокет‐файлы;
- /tmp — директория для хранения временных файлов, очищается при перезагрузке системы;
- . — текущая директория;
- … — директория на один уровень выше текущей.
Более подробную информацию о иерархии файловой системы можно почитать в man hier.
Заключение
Если вы не уверенны в том, что некий файл/папку можно изменить/удалить без последствий, то лучше этого не делайте. Как говорится, «работает не трожь! ».
И как всегда, я не несу никакой ответственности за то, что вы возможно натворите в своей системе. Если вы удалите что нибудь и у вас после этого система не загрузится — не пишите мне о том, что я в этом виноват :).
P.S. Подробную информацию по каждой команде можно посмотреть с помощью man <название_команды>