- Команды Linux для работы с файлами
- 1. ls — просмотр содержимого папки
- 2. cd — изменить папку
- 3. rm — удалить файлы
- 4. rmdir — удалить папку
- 5. mv — перемещение файлов
- 6. cp — копирование файлов
- 7. mkdir — создать папку
- 8. ln — создание ссылок
- 9. chmod — изменить права
- 10. touch — создать файл
- 11. mc
- Выводы
- Основы 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. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
rm -r /home/user/photo/
Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.
4. rmdir — удалить папку
Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:
Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.
5. mv — перемещение файлов
Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:
mv file newfile
Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/
mv file /home/user/tmp/
6. cp — копирование файлов
Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.
cp file newfile
Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:
cp -r /etc /etc_back
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:
chmod +x script.sh
Чтобы убрать флаг исполняемый используйте опцию -x:
chmod -x script.sh
Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.
10. touch — создать файл
Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.
11. mc
Работа с файлами Linux через терминал может выполняться не только с помощью обычных консольных команд, каждая из которых выполняет только определенное действие. Вы можете использовать полнофункциональный файловый менеджер с псевдографическим интерфейсом на основе ncurses. Midnight Commander — это файловый менеджер, который можно использовать прямо в терминале. Для установки mc в Ubuntu выполните:
sudo apt install mc
После завершения установки достаточно выполнить команду mc:
Используйте клавиши со стрелками для перемещения по файлах, Tab для перехода на другую панель, Alt+1 для просмотра справки и Alt+2 для вывода меню:
Если терминальное окружение поддерживает мышь, то вы можете ее использовать в Midnight Commander.
Выводы
В этой статье мы рассмотрели как выполняется работа с файлами и каталогами в linux, с помощью терминала. Когда вы освоите все эти команды, вы сможете сделать большинство основных действий в терминале. А как часто вы пользуетесь терминалом? Используете его для работы с файлами? Напишите в комментариях!
Источник
Основы Linux. Работа с файлами и каталогами
Многие пользователи Windows, по разным причинам, задумываются о переходе на Linux. Почему это так, рассуждать не будем, потому что философствовать на эту тему можно до бесконечности. Точно также как и не будем обсуждать что лучше — Windows или Linux, эта тема тоже философская. Одно можно сказать с полной уверенностью, многих людей останавливает стереотип, что Linux это очень сложно и надо быть крутым хацкером. На самом деле это полный бред, ничего сверхъестественного в этой операционной системе нет, и через какое-то время использования ты будешь себя чувствовать не менее комфортно чем в Windows.
И для тех кто всё-таки принял волевое решение, небольшой гайд по основам работы с файлами и каталогами.
Начнём с файловой системы, здесь нет привычных, пользователям Windows, дисков C, D и так далее, файловая система Linux имеет древовидную структуру и в основе её лежит корневой каталог, который обозначается символом «/», а за ним находятся остальные папки.
Конечно же в Linux есть набор стандартных каталогов которые унифицированы согласно стандарту FHS (Filesystem Hierarchy Standard), и среднестатистическому пользователю Windows разобраться где здесь чего, может быть сложновато, поэтому для большего понимания, давай ознакомимся с основными:
- /bin — основные двоичные модули (стандартные утилиты);
- /boot — содержит конфигурационные файлы загрузчика GRUB, образы ядра и другие вспомогательные файлы загрузчика;
- /dev — содержит файлы устройств, тут не лишним будет заметить, что в Linux все подключенные устройства представлены в виде файлов и обращение к ним происходит именно через файлы в этом каталоге;
- /etc — содержит конфигурационные файлы операционной системы и всех сетевых служб, здесь находятся именно общесистемные конфигурационные файлы, а пользовательские конфигурационные файлы находятся в домашнем каталоге каждого пользователя;
- /home — здесь находятся домашние каталоги всех пользователей, которые зарегистрированы в системе, а именно хранятся пользовательские данные и конфигурационные файлы конкретного пользователя. Обычный пользователь имеет права записи только в своем домашнем каталоге, а что бы изменять другие файлы в системе нужно иметь права доступа root;
- /lib – здесь находятся различные библиотеки и модули ядра, именно сюда устанавливаются различные зависимости необходимые для корректной работы приложений;
- /lost+found — в этот каталог система будет помещать поврежденные файла, в последствии их можно попробовать восстановить;
- /media — подключаемые носители, когда вставишь в компьютер флешку в этом каталоге создастся подкаталог с именем тома твоего устройства и используя его можно получить доступ к содержимому устройства;
- /mnt — в этот каталог можно мониторовать внешние или дополнительные файловые системы
- /opt — каталог содержащий вспомогательные пакеты, туда могут устанавливаться дополнительные пакеты программного обеспечения;
- /proc — содержит файлы с информацией о системе и процессах;
- /root – домашний каталог пользователя root;
- /run — в этом каталоге приложения могут хранить вспомогательные файлы, в том числе идентификаторы процессов;
- /sbin — содержит двоичные файлы, необходимые для администрирования системы;
- /srv – хранятся данные сервисных служб;
- /sys — информация о системе;
- /tmp – временные файлы;
- /usr — находятся приложения и файлы, используемые пользователями;
- /var — содержит наиболее часто изменяющиеся файлы, например, кэши программ, файлы системных журналов, временные файлы и т.д.
Теперь перейдём непосредственно к работе с каталогами и файлами и конечно, же работать с ними мы будем из терминала, потому в Linux без терминала никак, прими это за аксиому, в терминале работать быстро, надёжно и удобно (когда разберёшься). Поэтому давай разберём наиболее часто используемые команды.
И начнем мы с обновления системы. Есть несколько способов, в том числе это можно делать из пункта меню «Центра приложений», но проще это сделать командами:
sudo apt update | синхронизирует информацию из репозитория с локальным кэшем, эту команду необходимо выполнять перед установкой любых пакетов |
sudo apt full-upgrade | обновит все пакеты, для которых вышли новые версии, в том числе установит необходимые зависимости и удалит мешающие пакеты, а также обновится ядро системы, если вышла новая версия |
В предыдущем примере, для обновления системы, мы использовали менеджер пакетов — apt, как понятно из названия, он используется для установки, обновления и удаления программных пакетов в системе:
apt-get install program | установить/обновить program |
apt-get remove program | удалить program, сохранив файлы конфигурации |
apt-get purge program | удалить program и файлы конфигурации |
apt-get check | проверить зависимости |
apt-get autoclean | удалить старые архивные файлы пакетов |
Одна из команд которую ты будешь применять очень часто это cd. Это команда изменения каталога, она позволяет перемещаться между каталогами:
cd /home/user | перейти в указанный каталог |
cd / | перейти корневой каталог |
cd | перейти в домашний каталог текущего пользователя |
cd ../.. | перейти в каталог на два уровня выше |
cd — | перейти в каталог в котором находился до перехода в текущий |
Следующая очень полезная команда: ls. Просмотр содержимого каталога:
ls | покажет файлы и каталоги в текущей папке |
ls -l | покажет содержимое с подробной информацией (дата создания, размер, права доступа и т.д.) |
ls -a | покажет содержимое включая скрытые файлы (начинаются с символа «.») |
Иногда возникает необходимость увидеть полный путь к каталогу в котором ты работаешь, для этого используется команда: pwd
Что бы создать новый каталог, нужно воспользоваться командой mkdir и указать название нового каталога (не забывай, что ты можешь создавать новые каталоги только внутри папки в которой у тебя есть права на запись (о правах доступа будет чуть ниже)):
mkdir newfolder | создаст каталог с именем newfolder |
mkdir new new1 | создаст два каталога с именами new и new1 |
mkdir -p new/new1/new2 | создаст указанное дерево директорий |
Рассмотрим команды копирования:
cp file1 file2 | скопировать файл file1 в файл file2 (если файлы не в текущем каталоге необходимо указывать полный путь к файлам |
cp file1 /home/user1/ | скопировать файл file1 в каталог user1 |
cp -r folder1 folder2 | скопировать каталог folder1 в каталог folder2 (если каталога folder2 не существует он будет создан) (folder1/2 это полный путь к каталогу) |
Команды удаления:
rm file1 | удалить file1 |
rm -r folder1 | удалить каталог folder1 |
Команды переименования/перемещения:
mv file1 newname | переименовать файл (каталог) file1 в newname |
mv file1 folder1 | переместить файл file1 в каталог folder2 |
mv folder1 folder2 | переместить каталог folder1 в каталог folder2 |
Просмотр содержимого файлов:
cat file1 | показать содержимое файла file1 в терминале |
tac file1 | показать содержимое файла file1 в терминале начиная с конца |
less file1 | показать содержимое файла file1 в терминале, постранично, с возможно листать страницы |
Права доступа к файлам и каталогам
Чтобы изменить права доступа необходимо воспользоваться командой chmod, она имеет такой синтаксис:
chmod кому-какие-права-предоставить имя_файла |
Права доступа к файлам:
r — право на чтение данных;
w — право на изменение содержимого (но не удаление);
x — право на исполнение файла;
Права доступа к каталогам:
r — право на чтение каталога (можно прочитать содержимое, т.е. получить список объектов, находящихся в каталоге)
w — право на изменение содержимого каталога (можно создавать и удалять объекты)
x — позволяет войти в каталог
Существует три типа пользователей, каждому права задаются отдельно:
u — пользователь, который владеет этим файлом;
g — пользователи из группы, владеющей данным файлом;
o — все остальные пользователей
Для того чтобы упростить процесс изменения прав проще использовать такие, наиболее распространённые комбинации;
400 (-r——–) | Владелец имеет право чтения; никто другой не имеет права выполнять никакие действия |
644 (-rw-r–r–) | Все пользователи имеют право чтения; владелец может редактировать |
660 (-rw-rw—-) | Владелец и группа могут читать и редактировать; остальные не имеют права выполнять никаких действий |
664 (-rw-rw-r–) | Все пользователи имеют право чтения; владелец и группа могут редактировать |
666 (-rw-rw-rw-) | Все пользователи могут читать и редактировать |
700 (-rwx——) | Владелец может читать, записывать и запускать на выполнение; никто другой не имеет права выполнять никакие действия |
744 (-rwxr–r–) | Все пользователи могут читать, владелец имеет право редактировать и запускать на выполнение |
755 (-rwxr-xr-x) | Все пользователи имеет право читать и запускать на выполнение; владелец может редактировать |
777 (-rwxrwxrwx) | Все пользователи могут читать, редактировать и запускать на выполнение |
1555 (-r-xr-xr-t) | Все пользователи имеют право читать и запускать на выполнение; удалить файл может только владелец этого файла |
2555 (-r-xr-sr-x) | Все пользователи имеют право читать и запускать на выполнение с правами группы(user group) владельца файла |
4555 (-r-sr-xr-x) | Все пользователи имеют право читать и запускать на выполнение с правами владельца файла |
chmod 777 file1 | все пользователи могут читать, редактировать и запускать файл file1 |
Для первого раза, пожалуй, хватит. Перечисленных мною команд, как мне кажется, будет достаточно среднестатистическому пользователю для работы с файлами и каталогами в Linux. А в следующих уроках разберемся как работать с дисками, сетью, процессами и т.д., поэтому не забывай возвращаться к нам.
Источник