Команды для работы с файловой системой линукс

Обновлено: 05.07.2024

В статье систематизирована информация об основных командах в Linux. Приведенные команды будут одинаково верно работать во многих дистрибутивах, таких как: ASPLinux, Debian, Gentoo, Ubuntu, ALTLinux и во многих других. Автором статьи преследовалась цель составления наиболее полного списка основных команд Linux`а, для более легкого и эффективного изучения этой операционной системы.

Все команды Linux `а разбиты на тематические разделы и подразделы, которые имеют краткие описания. Список команд линукса постоянно обновляется и дополняется.

Содержание

Linux команды, которым не нашлось место ни в каком другом разделе.

В этом разделе собраны команды Linux предназначенные для: создания и удаления файлов и директорий, команды навигации между ними и команды для назначения владельца и прав доступа.

2.1 Директории и файлы Наверх

2.2 Права доступа Наверх

4.1 Просмотр установленных пакетов Наверх

4.2 Установка и удаление пакетов Наверх

5. Команды Linux: мониторинг работы и просмотр логов.

Команды Linux необходимые для мониторинга работы операционной системы. Все показания выводятся на экран в реальном времени. Число, стоящее после команды означает интервал между выводом информации.

7.1 Информация о файловой системе и жестком диске Наверх

7.2 Производительность жесткого диска Наверх

7.3 Монтирование разделов жесткого диска Наверх

8.1 Конфигурация сети Наверх

8.2 Маршрутизация Наверх

8.3 Управление портами (брандмауэр) Наверх

8.4 Управление NAT Наверх

Команды Linux необходимые для работы с пользователями и группами пользователей. Все запущенные процессы имеют уникальные номера - PID.

Важные сигналы посылаемые процессам:

  • 1 - HUP остановить процесс
  • 2 - INT прервать процесс
  • 3 - QUIT выйти
  • 9 - KILL “убить” процесс
  • 15 - TERM завершить процесс

После загрузки ядра Linux начинают загружаться различные демоны и программы, такие как NetworkManager, Evolution и т. д., результат которых мы видим у себя после загрузки на рабочем столе. Загрузка каждой службы осуществляется скриптом. Все скрипты лежат в /etc/init.d.

Runlevels – это целое число, которое определяет “уровень загрузки”.

“Уровни загрузки” бывают:

  • Runlevels=0 Выключение компьютера;
  • Runlevels=1 режим Single-User;
  • Runlevels=2 Текстовый режим без поддержки сети;
  • Runlevels=3 Текстовый режим с поддержкой сети;
  • Runlevels=4;
  • Runlevels=5 Графический режим;
  • Runlevels=6 Перезагрузка компьютера.

То есть скрипты, которые должны загружаться только в текстовом режиме с поддержкой сети, имеют Runlevels равный 3.

Более простой вариант настройки:

13.1 Работа с ядром системы Наверх

13.2 Работа с модулями ядра Наверх

15. Команды Linux: конвертирование различной информации;

15.1 Конвертирование текста Наверх

15.2 Конвертирование PDF в JPEG Наверх

15.3 Конвертирование видео Наверх

15.4 Конвертирование аудио Наверх

Жоска) а где двойные щелчки и ПКМ?)

Можно все это сделать и щелчками мыши, но это не наш путь))
Не путь системного администратора.

>Отличный ресурс. Оформление приятно для глаз, быстрочитабельно…
Спасибо!

Респект и увага :]

Отличная статья! Информация хорошо структурирована. Узнал несколько неведанных ранее удобных команд. Спасибо.

>Дмитрий
Рад стараться

Огромное спасибо! Давно искал удобный краткий справочник.

Всё просто класс! Только непонятны 2 вещи:
1. Как сменить пользователя?
2. Как чистить логи?

2. Просто удалить *.log :))

1. Добавил
2. Надосуге посмотрю команду ip. Про ее старость не знал, спасибо.)) Чего в ней старого, команда как команда. Командует и ладно
3. Добавил
4. Спасибо, старался

спасибо огромное! отличный справочник.
распечатал и на системник вывесил))

Mut@NT: 2. Просто удалить *.log :))

Просто удалять файл с розшерением *.log не рекомендуется. Их нужно чистить следующим образом echo > *.log

Большое спасибо за публикацию! Действительно качественная статья с понятными (даже для новичка) пояснениями и чрезвычайно удобной структурой представления информации. Поскольку я нахожусь еще только на начальном этапе освоения Linux, шпаргалка уходит в закладки браузера и, я думаю, мне придется еще не раз к ней обращаться. В общем, как говорят буржуи, респект!

Большое спасибо,страничка в закладках.очень помогает в освоении системы

Спасибо! Удобный справочник. Отличный в целом сайт.

шикарно.. одним словом))))

спасибо за мануал по основным командам линукс!
сразу сделал печатную версию!

Спасибо автору за труд. Давно искал что-то подобное по линуху. Очень хорошо структурировано и просто удобно. У меня тоже печатный вариант уже на столе.

Ну просто нет слов :) СУПЕР СУПЕР СУПЕР Респект :)

а сделайте еще в самом низу ссылочку на скачивание) пригодилась бы)
Спс за справочник!

takprosto: нам надо бы тоже кнопку “донате” внедрять, как говориться “лучше помоги материально”

А где работа с загрузчиками?

И неплохо бы поработать над ошибками. Глаза режет.

А кто может сказать, как иксы запускать с консоли ?

SHok: А кто может сказать, как иксы запускать с консоли ?

startx

Там один текст полез на другой. Неудобно читать.

Rasul: Один вопрос: эти команды стандартны для всех дистрибутивов, в том числе и реализованных не под x86?

Команды по большей части все схожи, есть некоторые нюансы, но очень незначительные.

Отличный сайт, и супер шпаргалка. Спасибо, сайт в избранном!

очень полезная статья но команды далеко не все

tehnik: очень полезная статья но команды далеко не все

Вы правы. Все команды не объять

Здравствуйте! Не могу установить принтер HP LJ M1120 MFU . Помогите, пожалуйста.

inok: Давно отвык от досовских комманд, теперь вспоминаем навыки, за шпаргалку спасибо…

Досу и не снилось о такой гибкости как в Linux

Flash: Здравствуйте! Не могу установить принтер HP LJ M1120 MFU . Помогите, пожалуйста.

Я попробовал, но тоже не могу, руки не дотягиваются )))

спасибо, очень пригодились )

Quickern: dpkg -l |more

прочел все коменты и обсалютно согласен, а вообще по всем этим утилитам в систему вшиты маны )

Fish: прочел все коменты и обсалютно согласен, а вообще по всем этим утилитам в систему вшиты маны )

В MAN ах есть все, но только на английском языке ;)

А как запустить графический интерфейс?

Нуб: А как запустить графический интерфейс?

Все бы так свои сайты декорировали,а то иной раз глаза сломать можно то зеленым по черному ,то синим по зеленному.Спасибо за инфу и целые глаза)))

Подскажите есть возможность на Debian сделать жесткий диск доступным в сети виндоус.И возможно ли завести Debian в рабочую группу виндоус?Буду очень признателен за ответ.

Всеволод: Подскажите есть возможность на Debian сделать жесткий диск доступным в сети виндоус.

Можно. Вроде ExtFS прога называется

Всеволод: И возможно ли завести Debian в рабочую группу виндоус?Буду очень признателен за ответ.

Вам нужно настраивать Samba

Огромное спасибо за статью, все четко и кратко

Спасибо огромное, но: в описании iconv ошибка.

Борис Борисович: Не Вы выбираете Linux, Linux должен выбрать Вас.

Mut@NT: Можно все это сделать и щелчками мыши, но это не наш путь

Mut@NT: В MAN ах есть все, но только на английском языке ;)

Сейчас уже многие маны переведены на русский. Не знаю правда как в Ubuntu, но в Archlinux точно. Недавно они были ужасными, а сейчас видимо кто-то над ними серьёзно поработал и маны стали очень даже читабедьными. Хотя я и оригинал без проблем читаю, но на родном языке всё равно приятней :)

Как переместиться в другой раздел жесткого диска или перейти на другой жесткий диск(например, на /dev/sdb4) и установить оттуда пакет?

опишите еще про установку с /usr/src/

а не подскажете какой командой можно поменять порт сетевого интерфейса?

Azur: а не подскажете какой командой можно поменять порт сетевого интерфейса?

Что значит поменять порт? Поясните.

Спасибо за справочник, много нужного и полезного.

Это по моему в винде такое, если сглючит, или не полностью установлена. Ввести логин администратора (root)и пароль.

Вот ещё одна памятка:

А где команды? Почему я ничего не вижу?

Пробовал на практике, благодарствуем.

Спасибо на автору этот статье..

Спасибо за такую исчерпывающую информацию, очень часто этой страницей пользуюсь. Еще раз спасибо)))

Автор немного согрешил, в тегах написал Репозиторий, а в статье об этом ни слова. Не надо так

Во время выполнения различных задач по администрированию системы может понадобится работать с файловой системой Linux, форматировать разделы, изменять их размер конвертировать файловые системы, выполнить дефрагментацию в Linux или восстановление файловых систем.

Многие из этих действий выполняются в графическом интерфейсе, многие и вовсе автоматически. Но может возникнуть ситуация, в которой придется делать все через терминал. Также при администрировании удаленных серверов работать с ними приходится только через ssh, а это означает недоступность графического интерфейса.

В этой статье мы рассмотрим как выполняется работа с файловой системой Linux в терминале. За основу возьмем семейство файловых систем ext2/3/4, так как они самые распространенные среди большого многообразия дистрибутивов Linux.

Основные команды

Для управления файловой системой ext в Linux используется целый набор команд из пакета e2progs. Сюда входят как команды для управления флагами файлов, создания и изменения файловых систем, так и утилиты для отладки файловой системы.

Рассмотрим основные утилиты, которые будем использовать:

  • badblocks - если у вас старый жесткий диск и на нем накопилось много битых блоков, вы можете с помощью этой утилиты пометить их все на уровне файловой системы, чтобы больше не использовать.
  • e2label - позволяет изменить метку раздела с файловой системой ext.
  • fsck - проверка файловой системы linux и исправление найденных ошибок
  • mkfs - позволяет создать файловую систему Linux.
  • resize2fs - изменить размер раздела с файловой системой
  • tune2fs - позволяет изменить файловую систему Linux, настроить ее параметры.

А теперь будет рассмотрена работа с файловой системой linux на примерах.

Работа с файловой системой в Linux

Перед тем как переходить к работе с реальным жестким диском важно попрактиковаться. Если сменить метку или проверить на битые сектора можно и рабочий диск, то создавать новую файловую систему, изменять ее размер, рискуя потерять данные на реальном диске не рекомендуется. Можно отделить небольшой раздел диска для экспериментов с помощью Gparted и выполнять все действия в нем. Допустим, у нас этот раздел будет называться /dev/sda6.

Создание файловой системы

Создать файловую систему linux, семейства ext, на устройстве можно с помощью команды mkfs. Ее синтаксис выглядит следующим образом:

sudo mkfs -t тип устройство

Доступны дополнительные параметры:

  • -с - проверить устройство на наличие битых секторов
  • -b - размер блока файловой системы
  • -j - использовать журналирование для ext3
  • -L - задать метку раздела
  • -v - показать подробную информацию о процессе работы
  • -V - версия программы

Создаем файловую систему на нашем устройстве. Будем создавать ext3:

sudo mkfs -t ext4 -L root /dev/sda6

Creating filesystem with 7847168 4k blocks and 1962240 inodes
Filesystem UUID: 3ba3f7f5-1fb2-47af-b22c-fa4ca227744a
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Изменение метки файловой системы

Утилита e2label позволяет изменить или посмотреть метку раздела диска. Принимает всего два параметра - устройство и новую метку если нужно.

sudo e2label /dev/sda6

sudo e2label /dev/sda6 root1

Настройка файловой системы linux

Различные параметры файловой системы, такие как размер блока данных, иноды или зарезервированное место под данные пользователя root можно настроить. Для этого существует утилита tune2fs.

Синтаксис команды очень прост:

$ tune2fs опции устройство

Поддерживаются следующие опции:

  • -j - создать файл журнала. Позволяет превратить файловую систему ext2 в ext3.
  • -J - настроить параметры журнала
  • -l - получить содержимое суперблока
  • -L - изменить метку раздела
  • -m - изменить процент дискового пространства, зарезервированного для суперпользователя
  • -M - изменить последнюю папку монтирования
  • -U - задать UUID файловой системы
  • -C - изменить значение счетчика монтирования
  • -T - изменить последнюю дату проверки файловой системы
  • -с - изменить периодичность проверок файловой системы с помощью fsck
  • -O - изменить опции файловой системы.

Изменить размер зарезервированного места для суперпользователя до пяти процентов:

sudo tune2fs -m 5 /dev/sda6

Setting reserved blocks percentage to 5% (392358 blocks)

Посмотреть информацию из суперблока, эта команда показывает всю доступную информацию параметрах файловой системы:

Изменить счетчик количества монитрований:

tune2fs -C 0 /dev/sda6

Setting current mount count to 0

Думаю тут смысл понятен, нужно только немного со всем этим поэкспериментировать.

С помощью опции -O мы вообще можем превратить нашу ext3 в ext4 следующей командой:

sudo tune2fs -O extents,uninit_bg,dir_index

После этого действия нужно выполнить проверку файловой системы на ошибки в fsck. Подробнее об этом поговорим ниже.

sudo fsck -np /dev/sda6

Таким образом вы можете изменить файловую систему linux, и настроить по своему усмотрению любые ее параметры.

Изменение размера файловой системы Linux

Раньше такая функция поддерживалась в утилите parted, но потом ее убрали и для этого действия приходится использовать утилиту из набора e2fsprogs - resize2fs.

Запустить утилиту очень просто. Ей нужно передать всего два параметра:

$ resize2fs [опции] устройство размер

Доступны также опции:

  • -M уменьшить файловую систему до минимального размера
  • -f - принудительное изменение, не смотря на потерю данных
  • -F - очистить буфер файловой системы

Размер передается, как и во многих других утилитах, целым числом с указанием единиц измерения, например, 100М или 1G.

Для примера уменьшим размер нашего раздела до 400 Мегабайт:

sudo resize2fs /dev/sda6 400M

Resizing the filesystem on /dev/sda7 to 102400 (4k) blocks.
The filesystem on /dev/sda7 is now 102400 blocks long

Проверка файловой системы Linux

При неправильном отключении носителей или неожиданном отключении питания, файловая система Linux может быть повреждена. Обычно проверка корневой файловой системы и домашнего каталога на ошибки выполняется во время загрузки. Но если эта проверка не была выполнена или нужно поверить другой носитель, придется все делать вручную. Для этого есть утилита fsck.

$ fsck [опции] устройство

  • -p - автоматическое восстановление
  • -n - только проверка, без восстановления
  • -y - ответить да на все запросы программы
  • -с - проверить на битые сектора (аналог badblocks
  • -f - принудительная проверка, даже если раздел помечен как чистый
  • -j - внешний журнал файловой системы

Проверка файловой системы Linux выполняется такой командой, проверим диск /dev/sda6, заметьте, что диск должен быть не примонтирован:

sudo fsck -a /dev/sda6

root: clean, 11/32704 files, 37901/102400 blocks

Дефрагментация файловой системы

Хотя и фрагментация нехарактерное явление для файловых систем семейства ext, при очень интенсивном использовании может накапливаться фрагментированость, что будет замедлять работу файловой системы. Для дефрагментации можно использовать стандартную утилиту e4defrag. Просто выполните:

Чтобы проверить нужна ли дефрагментация в Linux выполните эту же команду с опцией -c:

Total/best extents 26247/24953
Average size per extent 1432 KB
Fragmentation score 0
[0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
This device (/dev/sda6) does not need defragmentation.
Done.

В поле Fragmentation score отображен процент фрагментации, как видите, у меня 0, нормой считается до 30, 31-55 небольшие проблемы, и больше 56 - нужна дефрагментация.

Выводы

В одной из предыдущих статей мы рассмотрели как выполняется разметка диска с помощью parted. Из этой статьи вы узнали все что нужно о работе с файловой системой. Теперь у вас не возникнет проблем если у вас вдруг не будет доступа к графическим утилитам и нужно будет исправлять ошибки или настраивать файловую систему. Если остались вопросы, спрашивайте в комментариях!

Продолжение перевода первой части руководства. Начало тут.

В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.

Использование команд Linux

Знакомство с ls

А сейчас, мы быстренько пройдемся по команде ls. Скорее всего вы уже хорошо знакомы с этой командой, и знаете, что набрав ls получите список содержимого текущей рабочей директории:

Указав опцию -a, вы можете увидеть полный список, включая скрытые файлы и директории, начинающиеся с ".". Как видно в следующем примере, ls -a выводит также особые связывающие директории "." и "..":

Развернутые списки директорий

Вы также можете задать одну и более директорий или файлов в командной строке с ls. Если вы укажите файл, то ls покажет вам только этот файл. А если зададите директорию, то ls выдаст ее содержимое. Опция -l очень удобна, когда необходимо посмотреть права доступа, владельца, время последнего изменения и размер в списке содержимого директории.

В следующем примере мы использовали опцию -l чтобы отобразить содержимое моей директории /usr:

Первая колонка показывает информацию о правах доступа для каждого элемента. Чуть позже я объясню, как её интерпретировать. Следующая колонка содержит числа ссылок на каждый элемент файловой системы, позже мы вернемся к этому. Третья и четвертая колонки — это список владельцев и групп, соответственно. Пятая колонка — размер объекта. Шестая — время последнего изменения (mtime) объекта. И наконец, последняя колонка с именами объектов. Если файлы являются символическими ссылками, то вы увидите стрелку -> и путь, куда указывает эта символическая ссылка.

Смотрим на директории

Иногда вы захотите взглянуть на директорию, а не внутрь нее. В этом случае вы можете указать опцию -d, которая скажет ls рассматривать любую директорию, как внутреннюю:

Рекурсивный и инодный списки

Так вы можете использовать -d чтобы смотреть на директорию, но также можно использовать -R для противоположного: не только лишь глянуть внутрь директории, но и рекурсивно посмотреть все директории с файлами внутри нее! Мы не включим в руководство никакого примера вывода для этой опции (поскольку обычно он очень объемный), но возможно вы захотите попробовать несколько команд ls -R и ls -Rl, чтобы почувствовать как это работает.

Наконец, опция -i может использоваться для отображения номеров инодов для объектов в списке файловой системы:

Понятие инода

Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки "." и "..", которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория "..", мы сперва взглянем на номер инода у /usr/local:

$ ls -id /usr/local
5120 /usr/local

У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:

$ ls -id /usr/local/bin/..
5120 /usr/local/bin/..

На самом деле, мы даже можем увидеть общее количество ссылок ведущих на этот, 5120 инод, используя команду ls -dl:

Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:

/usr/local
/usr/local/.
/usr/local/bin/..
/usr/local/games/..
/usr/local/lib/..
/usr/local/sbin/..
/usr/local/share/..
/usr/local/src/..

mkdir

Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:

$ cd /tmp
$ mkdir tic tac toe

По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:

$ mkdir won/der/ful
mkdir: cannot create directory `won/der/ful': No such file or directory
$ mkdir won
$ mkdir won/der
$ mkdir won/der/ful

Однако, у mkdir есть очень удобная опция -p, которая говорит mkdir создавать любые отсутствующие родительские директории, как можете увидеть тут:

$ mkdir -p easy/as/pie

В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.

touch

Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:

$ cd /tmp
$ touch copyme

Команда touch обновляет «mtime» (время последней модификации — прим. пер.) файла, если тот существует (вспомните шестую колонку в выводе ls -l). Если файл не существует, то новый, пустой файл будет создан. Сейчас у вас должен быть файл /tmp/copyme с нулевым размером.

Теперь, когда файл существует, давайте добавим немного данных в него. Можно сделать это с помощью команды echo, которая принимает аргументы и печатает их на стандартный вывод. Сперва, команда echo сама по себе:

$ echo "firstfile"
firstfile

А сейчас, та же команда echo, но с перенаправлением вывода:

$ echo "firstfile" > copyme

Знак «больше» сообщает оболочке записывать вывод echo в файл по имени copyme. Этот файл будет создан, если не существовал, или перезаписан, если существует. Набрав ls -l, увидим, что файл copyme имеет размер в 10 байт, так как содержит слово firstfile и символ новой строки:

cat и cp

Чтобы вывести содержимое файла на терминал, используйте команду cat:

$ cat copyme
firstfile

Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:

$ cp copyme copiedme

Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:

А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.

Номер инода у перемещаемого файла остается прежним до тех пор, пока файл назначения находится в той же файловой системе, что и исходный файл. Мы подробнее рассмотрим файловую систему в третьей части нашего руководства.

Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться

$ mv /var/tmp/myfile.txt /home/drobbins

После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile.txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.

Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:

$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins

Об авторах

Daniel Robbins

Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.

Chris Houser

Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.

Aron Griffis

Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».

В этом руководстве для начинающих пользователей мы ознакомимся с основными командами для работы с файлами и каталогами (иногда их еще называют директориями) в Linux-системах.

Требования

Cервер с Ubuntu 20.04

Все команды, описанные ниже, будут работать и в других дистрибутивах Linux.

Расположение каталогов в файловой системе

При входе на сервер, вы, как правило, попадаете в домашний каталог вашей учетной записи, отведенный для хранения файлов и создания директорий.

Для того чтобы узнать, где располагается каталог, в котором мы сейчас находимся, используется команда:

Результат выполнения команды выглядит следующим образом:

Домашний каталог располагается после имени учетной записи пользователя, в приведенном примере он называется /demo. Этот каталог находится в каталоге с именем /home и в каталоге верхнего уровня, который называется root или корневой каталог, поэтому представлен одной косой чертой /.

Просмотр содержимого каталогов

Для просмотра содержимого каталога используется команда ls. Название этой команды является сокращением слов list files.

Просмотреть содержимое любой директории можно следующими способами:

Либо введя команду:

В результате выполнения команды отображаются файлы и каталоги, находящиеся внутри данного каталога:

К команде ls можно добавлять дополнительные флаги, например, чтобы показать детализированное представление (права, список владельцев файлов или папок, размер, дату последнего модифицирования) файлов и директорий в текущей директории, можно использовать флаг -l:

Результат выполнения команды:

Для просмотра списка всех файлов, включая скрытые файлы и каталоги, вы можете добавить флаг -a:

Результат выполнения команды:

Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип, можно с помощью команды:

Результат выполнения команды:

Перемещение между каталогами

Для перехода в домашний каталог используется команда cd. Название этой команды является сокращением слов change directory.

Для перехода в домашний каталог пользователя user используется команда:

Для перехода в предыдущую директорию, в которой мы находились до перехода в текущую директорию также используется команда cd.

В Linux-системах каждый файл и каталог находятся в самой верхней директории, которая называется «корневой» и обозначается одним символом слэш /.

Абсолютный путь указывает на расположение каталога по отношению к этой директории верхнего уровня. Это позволяет обращаться к справочникам однозначным образом из любого места в файловой системе.

Каждый абсолютный путь должен начинаться с косой черты — символа слэш /.

Для перехода в директорию уровнем выше используется команда:

Для перехода в директорию двумя уровнями выше:

Операции с файлами и каталогами

Далее приведен список основных команд навигации в консоли 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.


Команда cd используется для перехода в домашний каталог (директорию) /home пользователя.

user для перехода в домашний каталог пользователя можно воспользоваться и этой командой.

Для перехода в любой другой каталог пропишите команду cd и через пробел путь к нужному каталогу.

Например введя в консоли команду cd /home перейдем в каталог /

cd… команда для перехода в каталог уровнем выше того, в котором сейчас находитесь.

cd . /… команда для перехода в каталог двумя уровнями выше того, в котором сейчас находитесь.

cd — переход в каталог в котором вы находились до перехода в текущий каталог.

Команды linux для просмотра содержимого каталогов:

pwd эта команда linux показывает полный путь к каталогу в котором вы сейчас находитесь.

ls команда показывает все содержимое текущего каталога, т.е. каталога в котором вы сейчас находитесь.

ls -F отображает все содержимое текущего каталога и добавляет к файлам и подкаталогам символы, характеризующие их тип.

ls -l кроме содержимого каталога показывает время создания файлов, размер, права доступа и количество файлов в подкаталогах.

ls -a команда отображает скрытые файлы в вашем текущем каталоге.

ls *8* команда показывает список файлов и директорий, содержащие в своем имени цифры.

tree показывает древовидный список файлов и каталогов в вашем текущем каталоге. Также подсчитывает их количество. В зависимости от количества файлов подсчет файлов может занять некоторое время.

dir показывает содержимое вашего текущего каталога в алфавитном порядке и с учётом регистра названий.

df выводит в консоли количество занятого и свободного места на жестком диске для каждого каталога системы.

А команда du покажет вам количество блоков диска, занятых каждым файлов в вашем текущем каталоге.

Команды linux для работы с файлами и каталогами:

(небольшое примечание: Для работы с файлами нужно иметь права доступа к ним. Что это такое можно почитать здесь)

mkdir dir1 создает

каталог с именем dir1

mkdir dir1 dir2 создает два каталога с именами dir1 и dir2

mkdir -p /home/dir1/dir2 создает в каталоге /home дерево директорий. Это значит что создается каталог dir1 с находящимся внутри него каталогом dir2.

rm -f file1 команда линукс для удаления файла с именем file1

rmdir dir1 команда для удаления каталога с именем dir1

rm -rf dir1 удаляет каталог с именем dir1 вместе со всем его содержимым.

rm -rf dir1 dir2 одновременно удаляет два каталога dir1 и dir2 вместе с их содержимым.

Используя linux команду mv можно перемещать и переименовывать файлы и каталоги.

mv dir1 new_dir эта команда перемещает либо переименовывает файл или каталог из dir1 в new_dir

Команды linux для копирования файлов:

cp file1 file2 команда для копирования файла file1 в файл file2

копирует все файлы из каталога dir в текущий каталог.

cp -a /tmp/dir1 команда копирует каталог dir1 из /tmp/ со всем своим содержимым в ваш текущий каталог.

cp -a dir1 dir2 данная команда копирует каталог dir1 в каталог dir2

ln -s file1 lnk1 при помощи этой команды создается символическая ссылка на файл file1 или на каталог.

ln file1 lnk1 а этой командой создается так называемая «жёсткая» (физическая) ссылка на файл file1 или на каталог.

Читайте также: