- Команды Linux для работы с файлами
- 1. ls — просмотр содержимого папки
- 2. cd — изменить папку
- 3. rm — удалить файлы
- 4. rmdir — удалить папку
- 5. mv — перемещение файлов
- 6. cp — копирование файлов
- 7. mkdir — создать папку
- 8. ln — создание ссылок
- 9. chmod — изменить права
- 10. touch — создать файл
- 11. mc
- Выводы
- Sysadminium
- Определение текущего или рабочего каталога
- Перемещение по каталогам
- Просмотр списка файлов и подкаталогов
- Абсолютный и относительный пути
- Создание каталогов
- Дополнительные примеры
- Команда cd Linux
- Команда cd Linux
- Использование cd в linux
- Выводы
Команды Linux для работы с файлами
Чтобы быть профессионалом в использовании терминала Linux, нужно научится управлять файлами через терминал. Это чуть ли не основа всего, включая редактирование конфигурационных файлов, сборку программ, администрирование и множество других вещей. Просмотр содержимого папок, переход между папками, создание и удаление файлов — это необходимая база, для удобной работы в терминале.
В этой статье мы рассмотрим самые часто используемые команды Linux для работы с файлами и каталогами, после их освоения терминал больше не будет казаться таким непонятным и объемлемым. Вот какие команды будут нас сегодня интересовать:
- ls — список файлов в директории;
- cd — переход между директориями;
- rm — удалить файл;
- rmdir — удалить папку;
- mv — переместить файл;
- cp — скопировать файл;
- mkdir — создать папку;
- ln — создать ссылку;
- chmod — изменить права файла;
- touch — создать пустой файл.
А теперь перейдем к подробному рассмотрению всех этих команд.
1. ls — просмотр содержимого папки
Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:
Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:
2. cd — изменить папку
Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:
Вы также можете указать полный путь к папке:
Команда cd .. переходит в папку, которая находится выше на одну в файловой системе:
Вы также можете вернуться в предыдущую рабочую папку:
3. rm — удалить файлы
Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:
Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:
Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
7. mkdir — создать папку
Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
Если нужно создать папку в другом каталоге, укажите полный путь к нему:
8. ln — создание ссылок
Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:
ln -s /home/user/Downloads/ /home/user/test/
Для создания жесткой ссылки никаких опций задавать не нужно:
ln /home/user/Downloads/ /home/user/test/
9. chmod — изменить права
chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:
Чтобы убрать флаг исполняемый используйте опцию -x:
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Sysadminium
На этом уроке рассмотрим перемещение по каталогам Linux. Научимся перемещаться по дереву каталогов и создавать новые каталоги.
Определение текущего или рабочего каталога
Все команды на этом уроке можно выполнять и на Ubuntu 22.04 и на Debian 11, при этом поведение будем одинаковым!
Первым делом нужно понять в каком каталоге вы находитесь, для этого есть команда pwd:
Из вывода ясно что вы находитесь в каталоге /home/alex, это домашний каталог пользователя alex. Тот каталог в котором вы находитесь называют текущим или рабочим каталогом.
Перемещение по каталогам
Перемещаться по каталогам в Linux не сложно, и для этого используют команду — cd:
Я перешёл в корневой каталог «/», и посмотрел в каком каталоге я нахожусь.
Просмотр списка файлов и подкаталогов
Чтобы посмотреть какие файлы и каталоги находятся в текущем каталоге нужно использовать команду ls:
alex@ubu:/$ ls bin etc lib lib64 lost+found mnt proc run snap swap.img tmp var boot dev home lib32 libx32 media opt root sbin srv sys usr
alex@deb:/$ ls bin dev home initrd.img.old lib32 libx32 media opt root sbin sys usr vmlinuz boot etc initrd.img lib lib64 lost+found mnt proc run srv tmp var vmlinuz.old
Как вы видите многие каталоги взяты из стандарта FHS, хотя есть небольшие отхождения от стандарта. Например в Ubuntu есть каталог snap.
Абсолютный и относительный пути
Для перемещения по дереву каталогов используют команду cd и путь к каталогу в который хотят попасть. Различают два вида пути:
- относительный — относительно текущего каталога;
- абсолютный — всегда начинающийся с корня (/).
Например чтобы перейти обратно в свой домашний каталог из корня нужно выполнить:
А чтобы тоже самое сделать из каталога /home можно использовать или относительный путь или абсолютный. Вот пример с относительным путём:
alex@deb:~$ cd /home/ alex@deb:/home$ cd alex alex@deb:~$ pwd /home/alex
То есть в каталоге home существует каталог alex, поэтому при переходе из home в alex необязательно указывать абсолютный путь (/home/alex/), можно просто указать относительный (alex).
Еще при переходе по каталогам можно использовать служебные символы:
- . — текущий каталог;
- .. — родительский каталог;
- — — предыдущий каталог;
- ~ — домашний каталог;
Если команде cd не указать в какой каталог переходить, то вы перейдете в свой домашний каталог.
Например из каталога /home/alex перейдём в каталог /home и вернёмся обратно в свой домашний каталог:
alex@deb:~$ pwd /home/alex alex@deb:~$ cd .. alex@deb:/home$ pwd /home alex@deb:/home$ cd alex@deb:~$ pwd /home/alex
Создание каталогов
Для создания нового каталога используется команда mkdir. Давайте в домашнем каталоге создадим два подкаталога:
alex@deb:~$ mkdir dir1 alex@deb:~$ mkdir dir2 alex@deb:~$ ls dir1 dir2
Дополнительные примеры
Как вы могли заметить, некоторые команды выводят на экран какую-то информацию (ls, pwd), а другие нет (mkdir, cd).
Теперь перейдем в каталог dir1 и из него перейдем в каталог dir2 используя относительный путь, и вернемся обратно:
alex@deb:~$ cd dir1 alex@deb:~/dir1$ cd ../dir2 alex@deb:~/dir2$ cd - /home/alex/dir1 alex@deb:~/dir1$ pwd /home/alex/dir1
Как вы могли заметить, приглашение ввода команды меняется в зависимости от того в каком каталоге вы находитесь, это настроено по умолчанию и в Ubuntu 22.04 и в Debian 11.
Команда cd Linux
При работе в терминале все команды привязываются к текущей папке. В ней будут создаваться файлы, если не был указан точный адрес, в ней же могут создаваться временные файлы. Да и просто адресовать файлы команде намного удобнее из текущей папки, просто указав имя файла, а не полный путь в файловой системе.
По умолчанию, в качестве текущей папки используется домашняя, но для большего удобства нам приходится часто менять ее на другую. Для этого существует команда cd linux. В этой небольшой статье мы рассмотрим как использовать эту команду и какие у нее есть возможности.
Команда cd Linux
Перед тем как мы перейдем к работе с утилитой, давайте рассмотрим ее синтаксис и основные опции. Строго говоря, это вообще никакая не утилита. Ее нет в файловой системе. Это встроенная команда Bash и меняет текущую папку только для оболочки, в которой выполняется. Вот основной синтаксис команды:
$ cd опции папка_назначения
Опций всего две, это -P и -L. Они влияют на то, как будут обрабатываться символы возврата в предыдущую директорию и символические ссылки:
- -P — позволяет следовать по символическим ссылкам перед тем, как будут обработаны все переходы «..»;
- -L — переходит по символическим ссылкам только после того, как были обработаны «..»;
- -e — если папку, в которую нужно перейти не удалось найти — выдает ошибку.
Дальше нужно указать директорию, в которую следует перейти. Если этого не сделать, а вызвать cd без параметров, то рабочей папкой будет выбран ваш домашний каталог. А теперь давайте рассмотрим несколько примеров работы с cd linux.
Использование cd в linux
Я не буду здесь описывать какими бывают пути в Linux. Мы рассматривали эту тему в отдельной статье. По умолчанию, в качестве рабочего каталога используется домашняя папка пользователя. Давайте сначала перейдем в одну из подпапок домашней папки:
Домашняя папка обозначается как ~/. Поэтому следующая команда выполнит аналогичное действие:
Правда, здесь есть преимущество. В первой команде используется относительный путь, тогда как вторая правильно выполнится из любой папки. Теперь переместимся в папку /usr/lib относительно корня:
С помощью символа черты «-» вы можете вернуться в предыдущую папку:
Используя двойную точку «..» можно перейти в родительский каталог:
Вы можете использовать несколько блоков с точками для перемещения на несколько уровней вверх:
Как уже говорилось, если не передать папку, в которую нужно перейти, будет открыта домашняя папка:
Аналогичный результат выдаст команда:
Для упрощения перехода по папкам можно использовать символ звездочки. Правда, автодополнение сработает только если на указанные символы будет начинаться только одна папка.
Кроме cd, есть еще две дополнительные команды, это pushd и popd. Можно сказать, что простая реализация стека для рабочих каталогов. Когда вы выполняете pushd, текущий рабочий каталог сохраняется в памяти, а на его место устанавливается указанный:
Теперь наберите popd, чтобы вернуться в предыдущий каталог:
Это реализация стека, поэтому количество каталогов в памяти не ограничено двумя. Вы можете перемещаться по такому количеству папок, как вам нужно.
Наконец, еще один момент, если вам нужно перейти в каталог, в имени которого есть пробелы, используйте символ экранирования обратный слэш «\» или просто возьмите его имя в скобки:
cd ~/Загрузки/новая\ папка/
$ cd «~/Загрузки/новая папка/»
Выводы
Теперь вы знаете зачем нужна команда cd Linux, а также как максимально эффективно ею пользоваться при работе в терминале. Надеюсь, эта информация была полезной для вас. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.