- Работа с файлами и каталогами в Linux
- Введение
- Требования
- Расположение каталогов в файловой системе
- Просмотр содержимого каталогов
- Перемещение между каталогами
- Операции с файлами и каталогами
- Создание
- Удаление
- Перемещение
- Копирование
- Редактирование файлов
- Заключение
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Linux: команды для работы с файлами и директориями
- Основы
- Команды для работы с файлами и директориями
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Основные операции с файлами и папками в Linux
- Команда touch
- Команда cp
- Команда mv
- Команда rm
- Команда file
- Команда find
- Команда cpio
- Команда dd
- Команда gzip
- Команда bzip2
- Команда tar
Работа с файлами и каталогами в Linux
Введение
В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.
Требования
Cервер с Ubuntu 20.04
Все команды, описанные ниже, будут работать и в других дистрибутивах Linux.
Расположение каталогов в файловой системе
При входе на сервер, вы, как правило, попадаете в домашний каталог вашей учетной записи, отведенный для хранения файлов и создания директорий.
Для того чтобы узнать, где располагается каталог, в котором мы сейчас находимся, используется команда:
Результат выполнения команды выглядит следующим образом:
Домашний каталог располагается после имени учетной записи пользователя, в приведенном примере он называется /demo. Этот каталог находится в каталоге с именем /home и в каталоге верхнего уровня, который называется root или корневой каталог, поэтому представлен одной косой чертой /.
Просмотр содержимого каталогов
Для просмотра содержимого каталога используется команда ls. Название этой команды является сокращением слов list files.
Просмотреть содержимое любой директории можно следующими способами:
Либо введя команду:
В результате выполнения команды отображаются файлы и каталоги, находящиеся внутри данного каталога:
К команде ls можно добавлять дополнительные флаги, например, чтобы показать детализированное представление (права, список владельцев файлов или папок, размер, дату последнего модифицирования) файлов и директорий в текущей директории, можно использовать флаг -l:
Результат выполнения команды:
Для просмотра списка всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a:
Результат выполнения команды:
Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип, можно с помощью команды:
Результат выполнения команды:
Перемещение между каталогами
Для перехода в домашний каталог используется команда cd. Название этой команды является сокращением слов change directory.
Для перехода в домашний каталог пользователя user используется команда:
Для перехода в предыдущую директорию, в которой мы находились до перехода в текущую директорию также используется команда cd.
В Linux-системах каждый файл и каталог находятся в самой верхней директории, которая называется «корневой» и обозначается одним символом слэш /.
Абсолютный путь указывает на расположение каталога по отношению к этой директории верхнего уровня. Это позволяет обращаться к справочникам однозначным образом из любого места в файловой системе.
Каждый абсолютный путь должен начинаться с косой черты — символа слэш /.
Для перехода в директорию уровнем выше используется команда:
Для перехода в директорию двумя уровнями выше:
Операции с файлами и каталогами
У каждой команды имеется множество параметров, чтобы узнать их, наберите команду и параметр —help, например:
Далее приведен список основных команд навигации в консоли Linux.
Создание
Создание файлов производится с помощью команды:
Создание каталогов выполняется с помощью команды вида:
Название этой команды является сокращением слов make directory.
Создание двух каталогов одновременно выполняется с помощью команды:
Для создания дерева каталогов используется команда следующего вида:
Удаление
Для удаления директорий используется команда rmdir имя_директории. Название этой команды является сокращением слов remove directory.
Для удаления файлов используется команда rm. Например, для удаления файла с именем file1 используется команда:
Команда rm также позволяет удалять не только файлы, но и каталоги.
Для удаления директории с именем dir1 со всеми подкаталогами и файлами используется опция -r (от слова recursive):
Можно удалить одновременно две директории со всем их содержимым:
Также можно использовать параметр -f, который означает, что при удалении не будет запрашиваться подтверждение.
Команда для удаления файла будет выглядеть так:
Команда для удаления каталога:
Перемещение
Для перемещения и переименования файлов и каталогов используется команда mv. Название этой команды является сокращением слова move.
Переименовать файл можно с помощью команды:
Для того чтобы переместить файл, используется команда:
Копирование
Для копирования используется команда cp. Название этой команды является сокращением слова copy.
Чтобы скопировать файл file1 и назвать его file2, используется команда:
Для того чтобы копировать директорию dir1 в директорию dir2, используется команда:
Скопировать файл с именем file1 в директорию с именем dir1, можно с помощью команды:
Редактирование файлов
Мы ознакомились с основными командами для работы с каталогами и файлами.
Далее мы изучим, как редактировать файлы и добавлять в них содержание.
Команда nano позволяет работать в одном из самых простых текстовых редакторов командной строки Linux, который занимает весь терминал в течение всего срока его использования.
В результате ввода в терминал команды nano будет открыт чистый файл.
Интерфейс выглядит следующим образом:
В верхней части открывшегося редактора отображается имя приложения и имя файла, который мы редактируем.
В середине должно располагаться содержимое файла, в настоящее время оно пустое.
В нижней части интерфейса расположен ряд комбинаций клавиш, которые указывают с основными элементами управления текстового редактора. Для каждого из них символ ^ означает клавишу CTRL.
Для того чтобы открыть справку используйте сочетание клавиш CTRL-G.
Закрывается справка с помощью сочетания клавиш CTRL-X. После закрытия справки мы возвращаемся к редактированию.
Вводить и редактировать можно любой текст, например, можно ввести: “Hello World!”
Для сохранения внесенных изменений следует нажать сочетание клавиш CTRL-O. Внимание! Это буква О, а не ноль.
Далее система попросит вас ввести либо подтвердить имя файла, который вы хотите сохранить:
Как вы можете видеть, параметры в нижней части окна редактирования также изменились. Они являются контекстными, то есть будут меняться в зависимости от того, что вы пытаетесь сделать.
После ввода имени файла нажмите клавишу ENTER.
Для того чтобы выйти из тестового редактора нажмите сочетание клавиш CTRL-X.
Если вы внесли изменения и не сохранили файл, вам будет предложено сохранить сделанные вами изменения:
Вы можете нажать клавишу Y, чтобы сохранить изменения, клавишу N для отмены изменений и выхода, или сочетание клавиш CTRL-C, чтобы отменить операцию выхода из режима редактирования файла.
Если вы решили сохранить изменения, вам будет предложено сохранить их в том же файле, который был отредактирован.
Нажмите клавишу ENTER, чтобы сохранить файл и выйти из редактора.
Заключение
Мы ознакомились с возможностями просмотра доступных файлов и каталогов, с основными командами для работы с файлами, которые позволяют просматривать, копировать, перемещать и удалять файлы, а также с основами редактирования в текстовом редакторе nano.
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Linux: команды для работы с файлами и директориями
4 минуты чтения
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Основы
Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:
/tmp/file1 — относительный путь;
Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.
Команды для работы с файлами и директориями
Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:
- cd — смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root ;
- pwd — команда покажет текущий путь к директории, в которой вы находитесь в данный момент;
- ls — вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax , то команда выведет форматированный список всех файлов и директорий (в том числе скрытые);
- cat — показывает содержимое файла, к примеру – cat /root/file.txt ;
- tail — например, tail /root/file.txt , выводит только конец файла, удобно при работе с логами;
- cp — копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию
- mkdir — создание директории, например, mkdir /root/1 ;
- rmdir — удаление директории, синтаксис такой же, как и у команды выше;
- rm -rf — очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами;
- mv — переименование файла или директории, сначала указывается целевая директория и затем её новое название;
- locate — поиск файла с заданным названием;
Для наглядности, посмотрите на вывод команды tail
В примере выше, команда tail вывела только последние 11 строк.
Работа с архивами
Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком 🙂
- tar cf example.tar /home/example.txt — создание .tar архива, который будет содержать в себе текстовый файл example.txt;
- tar cjf example1.tar.codez2 /home/example1.txt — команда с тем же функционалом, только будет использоваться сжатие Bzip2;
- tar czf example2.tar.gz /home/example2.txt — опять архивация, только на этот раз со сжатием Gzip;
- tar xf example.tar — распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно);
Работа с .rpm пакетами
Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution 🙂 Команды требуют наличие прав супер — пользователя.
- rpm -qa — вывод списка всех установленных RPM пакетов в системе;
- rpm –i rpmpackage.rpm — установка пакета с именем rpmpackage;
- rpm –e rpmpackage — удаление пакета с таким именем;
- dpkg -i *.rpm — установка всех пакетов в директории;
Про жёсткие диски
Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS — сервер)
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Основные операции с файлами и папками в Linux
В данной статье мы рассмотрим такие вопросы как, копирование, перенос и удаление файлов. Копирование нескольких файлов и папок в том числе рекурсивно. Удаление файлов и папок в том числе рекурсивно. Использование групповых символов. Отбор файлов по типу, размеру, дате и.т.д. Утилиты tar , cpio и dd .
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Исходя из обозначенных выше вопросов будем разбираться со следующим списком команд: cp , find , mkdir , mv , ls , rm , rmdir , touch , tar , cpio , dd , file , gzip , gunzip , bzip2 , xz , file globbing .
А также захватим основные виды архиваторов и посмотрим, как с ними работать.
Команда touch
Данная команда меняет отметки времени файла. При помощи этой команды мы можем создавать новые файлы и менять время доступа к файлу.
Например, мы можем посмотреть, что в текущей директории нет текстовых фалов. Убедится мы можем командой ls , а посмотреть в какой директории pwd. Соответственно вводим touch 123.txt и файл появляется.
Есть так же другая команда для создания директорий mkdir . Описание можно по ней посмотреть, через ввод команды man mkdir . Данная команда создает директорию, например, mkdir folder1 создаст нам директорию folder1. Для просмотра используем команду ls . По данной команде мы тоже можем посмотреть мануал man ls . В описании написано, что показывает содержимое папки. Мы так же ее можем использовать с ключем –l , листинг, т.е в виде списка.
В таком формате мы можем увидеть, кто владелец папки или файла, группу права на папку или файл. Достаточно информативно получается использование данной команды.
Создадим еще один файл 456.txt и файл 1.txt в папке folder1
и групповое создание файлов touch folder1/<2,3>.txt , а так же мы можем посмотреть, что у нас получилось в папке folder1.
Команда cp
Команда предназначена для копирования файлов и директорий.
Самый простой пример сделать копию: cp 123.txt copy123.txt . Можно скопировать директорию cp folder1 folder2 . И команда откажется выполнятся, потому, что по умолчанию рекурсивно не работает. В папке folder1 находятся файлы. И если мы хотим это осуществить то используем ключ –r или –R .
Данная команда очень важна, т.к приходится использовать ее достаточно часто, например при настройке, какого–нибудь важного демона. Прежде чем вносить правки в файл конфигурации данного демона, оригинальный конфигурационный файл лучше всего скопировать.
Команда mv
Данная команда позволяет перенести файлы или папки, или переименовать (перенести данные из одного имени в другое). Для примера, скажем файл 456.txt перенести в файл something.txt , т.е mv 456.txt something.txt . Как мы видим файл 456 исчез, а появился something.txt
Данная команда можем переносить так же в другую папку, например, глубже
Вот так будет выглядеть команда. А также можно вернуть его обратно, командой:
В конце знак точки выполняет функцию обозначения текущей папки. Аналогичные действия мы можем производить с папками. С помощью команд mv и cp .
Команда rm
Данная команда предназначена для удаления папок и файлов.
- rm 123.txt — удаление файла
- rm folder1 – удаление каталога, но команда выдает ошибку. Это происходит потому, что в папке находится файл. Если мы хотим удалить рекурсивно, то необходимо добавить ключ –r , а если без предупреждений и принудительно , то еще ключик –f . Итоговая команда будет выглядеть следующим образом.
Есть еще одна команда которая удаляет непосредственно папки, называется она rmdir . Мануал посмотреть вы можете по ней командой man rmdir . Данная команда удаляет непосредственно пустые директории. Работает достаточно близко по функционалу к rm .
Команда file
Команда определяет тип файла. Перейдем в папку Folder.
Попробуем определить тип файла file yandex.url , как мы можем убедится команда выдает, что данный файл является текстовым.
Если мы наберем, например, File * , то команда применится ко всем файлам в текущей директории и определит все типы файлов.
Важной частью работы с файлами и папками являются Групповые Символы.
- * — все что угодно (заменяет любое количество символов)
- ? – любой символ (одиночный символ, ?? – два символа)
- ! – не (отрицание)
- [ac] – a или с
- [a-c] – a,b,c
Создал несколько новых файлов:
ls * — дает занимательную картинку, где видны файлы и папки.
Команда ls *.* нам покажет только те файлы которые имеют расширения. Первая звездочка, означает любое имя, вторая звездочка указывает на любое расширение. Мы можем указать на конкретное количество символов обозначив их знаками “?” . Например, ls *. – это означает, что подходят любые файлы, у которых расширение из 3-х любых символов. Знаки вопросов и звездочек, можно использовать с сочетаниями букв и других символов. Можно сказать, покажи нам все файлы, которые начинаются с букв a или b, команда ls [ab]* .
Также можно использовать конструкцию ls [a-m]* . Следовательно, работают все конструкции с групповыми символами.
Команда find
Данная команда будет осуществлять поиск файлов по иерархической структуре папок.
Попробуем найти в директории все файлы:
Получим вот такой ответ на данную команду. У данной команды очень много ключей. Можем для примера взять такую конструкцию find . –name “In*” . Данная конструкция обозначает поиск в текущей папке, по имени, которое начинается с In и имеет в имени любое количество символов. Данную команду можно использовать для поиска файлов например по размеру: find . –size +5M . Следовательно, данным запросом мы ищем все файлы в текущем каталоге с размером более 5 MB.
Команда cpio
Работа с архивами очень важная часть операций с файлами. Для того, чтобы разобраться в данном вопросе рассмотрим следующую команду.
Данная команда позволяет копировать файлы в архивы и из архивов. Данная команда позволяет работать с архивами, грубо говоря это двоичный архиватор. Смотрим, что есть в директории ls .
Далее даем вот такую команду: ls | cpio –o > ../test.cpio
В результате получили файл
Пояснения, что мы сделали. Мы взяли вывод команды ls по конвейеру передали на вход команды cpio с ключем –o , который создает архив и то, что должно получится мы указали папку .. т.е родительская директория и файл test.cpio . Команда выполнилась и вывела число блоков, сколько обработалось. И переместившись на уровень выше, в родительскую директорию мы можем увидеть, что файл появился.
А можем сделать следующую вещь: find . –name ”*.txt” | cpio –o > test2.cpio . Т.е мы можем выполнит поиск всех текстовых файлов в текущей директории и заархивировать, причем положить в текущую директорию.
Создадим папку mkdir extract . И перейдем в нее cd /root/extract . Теперь мы попробуем разархивировать cpio –id
Как мы видим все текстовые файлы появились. По сути, что мы сделали. Мы сказали команде cpio подняться на уровень выше взять test2.cpio и разархивировать в текущий каталог. Как видите там же попался каталог folder2, а попался т.к в нем тоже есть текстовые файлы. Напоминаю, что команда find работает так же со вложенными файлами, поэтому данный каталог и попал в архив.
Команда dd
Еще немного про архивы.
Конвертирует и копирует файлы. Данная команда умеет копировать, не части файловой системы, как файлы или папки, а умеет копировать блочные устройства или его части, например, диск. Для того, чтобы показать, как это работает я примонтировал еще один раздел на 5 ГБ.
Далее пишем следующее, находясь в директории cd /root/extract .
- dd — сама команда
- if (Input файл) — диск
- of (Output файл) — путь куда положить.
Мы видим, что команда столько-то получила, столько-то отправила данных в файл.
Как можно увидеть, команда отработала. Следовательно, команда dd может сделать целиком резервную копию блочного устройства.
Команда gzip
Переходим непосредственно к архиваторам.
Утилита, которая позволяет разжимать и упаковывать файлы.
Получаем в итоге, что вместо drive.img гигантского, получился более компактный drive.img.gz т.е команда gzip не просто создает архив , но и убивает оригинальный файл. Соответственно если мы хотим его отзиповать, то используем команду gunzip drive.img.gz
Все архиваторы различаются по типу сжатия.
Команда bzip2
Данный архиватор уже работает с блоками. Если его запустить аналогичным образом предыдущему архиватору, то получим файл немного меньшего размера. Это значить, что данный архиватор работает более эффективно с данным типами файлов. Разархивация осуществляется так же аналогично.
Команда tar
Теперь посмотрим легендарный архиватор tar
Наиболее часто использующийся архиватор. С множеством функций и ключей. Пример использования.
Синтаксис простой, команда с – создать , v — показывать процесс, f — файл, archive.tar — путь к месту где создастся архив, folder2 папка которую архивируем.
Теперь мы можем подключить сжатие архиватора gzip, в опции надо добавить ключ “ z ” и выходной файл надо назвать archive.tar.gz .
Для разархивации мы указываем ключи xvf и путь до архива.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник