Какой ключ нужно передать команде mkdir чтобы создать несколько вложенных каталогов одной командой
Перейти к содержимому

Какой ключ нужно передать команде mkdir чтобы создать несколько вложенных каталогов одной командой

  • автор:

Создайте сразу несколько каталогов с помощью mkdir (Linux – Ubuntu)

Мануал

Автор cryptoparty На чтение 2 мин Опубликовано 03.05.2018

Мы перечислили некоторые команды, которые позволят вам создать несколько каталогов с помощью команды mkdir.

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

Команды работают во всех Linux-средах, и они могут выполняться через файл bash или терминал.

Первой и самой простой является команда mkdir, которая использует несколько аргументов для создания каталогов.

# mkdir myfirstdirectory myseconddirecroty mythirddirectory

В приведенной выше команде аргументы используются как имена каталогов.

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

mkdir folder

50 папок от folder1 до folder50

mkdir -p folder/folder

50 папок будут созданы следующим порядком; folder1 до folder50 (-p создаст родительские каталоги, если они не существуют.)

mkdir 123

26 каталогов от a123 до z123

Создает папки 1, 2 и 3.

mkdir test

20 каталогов от test01 до test20

mkdir -p `date ‘+% y% m% d’` /

Добавляет дату в имя папки.

mkdir -p $ USER /

Добавляет текущее имя пользователя в папку.

Если у вас есть список имен папок, вы можете просто сделать:

mkdir `cat list`

Это создаст папку для каждой строки в указанном списке.

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!

Добавить комментарий Отменить ответ

Поддержать нас

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (110)
  • Книги (27)
  • Мануал (2 359)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (831)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (116)
  • Статьи (360)
  • Философия (124)
  • Юмор (18)

Наш Telegram

Социальные сети
Поделиться

Anything in here will be replaced on browsers that support the canvas element

  • �� Каковы различные форматы сертификатов? 27.10.2023

Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]

Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]

Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. �� Почему процессы в контейнерах […]

Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]

Давайте поговорим о классификации вредоносных программ. Когда антивирусная программа или средство защиты от вредоносного ПО обнаруживает что-то потенциально вредоносное, она использует определенный формат, чтобы помочь вам или другим специалистам понять, с какой именно угрозой вы имеете дело. Формат может выглядеть примерно так: Type:Platform/Family.Variant!Suffixes Это не всегда будет выглядеть именно так, поскольку, как вы помните, не […]

Как создавать каталоги в Linux (команда mkdir)

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

В этом руководстве рассматриваются основы использования команды mkdir , включая повседневные примеры.

Синтаксис команды Linux mkdir

Синтаксис команды mkdir следующий:

mkdir [OPTION] [DIRECTORY] 

Команда принимает в качестве аргументов одно или несколько имен каталогов.

Как создать новый каталог

Чтобы создать каталог в Linux, передайте имя каталога в качестве аргумента команды mkdir . Например, чтобы создать новый каталог newdir вы должны выполнить следующую команду:

mkdir newdir

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

ls -l
drwxrwxr-x 2 username username 4096 Jan 20 03:39 newdir 

При указании только имени каталога без полного пути он создается в текущем рабочем каталоге.

Текущий рабочий каталог — это каталог, из которого вы запускаете команды. Чтобы изменить текущий рабочий каталог, используйте команду cd .

Чтобы создать каталог в другом месте, вам необходимо указать абсолютный или относительный путь к файлу родительского каталога. Например, чтобы создать новый каталог в каталоге /tmp вы должны ввести:

mkdir /tmp/newdir

Если вы попытаетесь создать каталог в родительском каталоге, в котором у пользователя недостаточно прав, вы получите сообщение об ошибке Permission denied :

mkdir /root/newdir
mkdir: cannot create directory '/root/newdir': Permission denied 

Параметр -v ( —verbose ) указывает mkdir печатать сообщение для каждого созданного каталога.

Как создать родительские каталоги

Родительский каталог — это каталог, который находится над другим каталогом в дереве каталогов. Чтобы создать родительские каталоги, используйте параметр -p .

Допустим, вы хотите создать каталог /home/linuxize/Music/Rock/Gothic :

mkdir /home/linuxize/Music/Rock/Gothic

Если какой-либо из родительских каталогов не существует, вы получите сообщение об ошибке, как показано ниже:

mkdir: cannot create directory '/home/linuxize/Music/Rock/Gothic': No such file or directory 

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

mkdir -p /home/linuxize/Music/Rock/Gothic

Когда используется опция -p , команда создает каталог, только если он не существует.

Если вы попытаетесь создать каталог, который уже существует, а параметр -p не mkdir , mkdir выведет сообщение об ошибке File exists :

mkdir newdir
mkdir: cannot create directory 'newdir': File exists 

Как установить разрешения при создании каталога

Чтобы создать каталог с определенными разрешениями, используйте параметр -m ( -mode ). Синтаксис для назначения разрешений такой же, как и для команды chmod .

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

mkdir -m 700 newdir

Когда опция -m не используется, вновь созданные каталоги обычно имеют права доступа 775 или 755 , в зависимости от значения umask .

Как создать несколько каталогов

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

mkdir dir1 dir2 dir3

Команда mkdir также позволяет создать сложное дерево каталогов с помощью одной команды:

mkdir -p Music/,Classical/Baroque/Early>

Приведенная выше команда создает следующее дерево каталогов :

Music/ |-- Classical | `-- Baroque | `-- Early |-- Disco |-- Folk |-- Jazz | `-- Blues `-- Rock |-- Gothic |-- Progressive `-- Punk 

Выводы

Команда mkdir в Linux используется для создания новых каталогов.

Для получения дополнительной информации о mkdir посетите страницу руководства mkdir .

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

�� Команда mkdir в Linux — подробно и с примерами

В Linux и других unix-подобных системах, таких как Mac, мы используем mkdir для создания нового каталога из терминала. Для этого откройте новый терминал и убедитесь, что вы находитесь в правильном каталоге, используя команду cd.

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

mkdir [ОПЦИИ] имя_каталога

, где dir_name — это имя вашего нового каталога, а [OPTIONS] — необязательные параметры.

Например, чтобы создать новый каталог с именем «hello_world», мы должны ввести:

mkdir hello_world

Если вы хотите создать несколько каталогов, просто поместите их в фигурные скобки и разделите каждый каталог запятой. Например, приведенный ниже код создает два каталога с именами «hello» и «world»:

mkdir

Параметры для mkdir

mkdir имеет 3 параметра, которые мы можем добавить к нашей команде:

-p - это позволяет нам создавать несколько каталогов друг в друге. -v - выводит информацию о созданном каталоге или каталогах. -m — это позволяет нам установить значение chmod/mode для нашего каталога, то есть 777.

Создание нескольких вложенных друг в друге каталогов с помощью mkdir -p

Допустим, мы хотели создать структуру папок, в которой у нас есть папка проекта в родительской папке, в главной папке. Если бы мы использовали только mkdir, нам пришлось бы создавать каждый отдельно. Вместо этого мы можем использовать mkdir -p, чтобы сделать их все сразу.

mkdir -p master/parent/project

Это создаст три каталога, каждый внутри другого.

Убедитесь, что папка создана с помощью mkdir

Если мы хотим увидеть сообщение об успешном выполнении mkdir или нет, мы можем использовать mkdir -v.

mkdir -v master

Приведенное выше выведет следующее сообщение:

mkdir: created directory 'master'

К сожалению, -p и -v не будут работать вместе, поэтому вам придется использовать либо одно, либо другое.

Установка chmod или режима каталога с помощью mkdir

Если мы хотим установить режим каталога, мы можем установить его непосредственно с помощью mkdir. Например, чтобы создать каталог со значением chmod 777, мы должны написать следующее:

mkdir -m777 master

Создание нескольких каталогов с определенным chmod или режимом с помощью mkdir

При желании мы можем объединить -m и -p для mkdir в одну команду. Например, приведенный ниже код создаст структуру папок master/parent/project и установит для каждого каталога режим 777:

mkdir -p -v -m777 master/parent/project

�� Похожие статьи на сайте

  • Методы монтирования дисков в Linux
  • Введение в диспетчер логических томов (LVM)
  • Локальное туннелирование с помощью SSH: несколько примеров
  • Альтернативы SSH, которые в некоторых случаях лучше оригинала
  • Полный набор лучших и современных консольных программ для Linux
  • Установка ZoneMinder на Ubuntu 22.04 (Linux Mint 21) и nginx
  • Устанавливаем GIMP в Ubuntu 22.04 (Linux Mint 21)
  • Устанавливаем qBittorrent в Linux Ubuntu/Mint
  • Исправляем ошибку — network unreachable resolving ‘./NS/IN’: 2001:503:c27::2:30#53
  • Установка remmina из ppa в Ubuntu 22.04 или Mint 21
  • Исправляем: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg)
  • Что такое зомби-процесс в Linux?
  • Хитрости командной строки Bash, которые помогут вам работать быстрее
  • Команда ls в Linux — подробно и с примерами
  • Команда mkdir в Linux — подробно и с примерами
  • Список непечатаемых символов Linux, MacOS или Windows
  • Команда chmod в Linux — подробно и с примерами
  • Команда cat и примеры её использования в Linux
  • Как установить приложение Yarock Music Player
  • Запуск нескольких команд Linux одной составной командой
  • Файловый менеджер nnn
  • Версия системы и версия ядра Ubuntu/Mint
  • Запуск команд на удаленном сервере через SSH
  • Цветовые схемы и внешний вид MC (midnight commander)
  • Переключение кодировок в MC
  • Шпаргалка по горячим клавишам для файловых панелей MC (midnight commander)
  • Ошибка NO_PUBKEY. Как найти GPG-ключ и добавить его в базу apt системы Ubuntu
  • Установка драйвера wifi Asus wl-167g v3 (rtl8192) для Ubuntu 16.04 и 18.04
  • Как настроить wifi из командной строки в Ubuntu
  • Изменение имени сетевого интерфейса в Ununtu/Mint
  • nmon — удобный инструмент для мониторинга Linux систем
  • Ошибка: 502 bad gateway — connect() to unix:/run/php/php-fpm.sock failed (11: Resource temporarily unavailable)
  • Команда history или работа с историей введенных команд
  • Шпаргалка по архиватору 7z (7-Zip) в Linux Ubuntu/Mint
  • Преобразование видео от 1080p до 720p с наименьшими потерями с использованием ffmpeg
  • Как посмотреть все доступные шрифты в терминале (CLI)?
  • Команда id — найти UID пользователя или GID
  • Лучшие рекомендации по повышению безопасности для серверов OpenSSH
  • Разрешения файлов директории .SSH
  • Настройка Nginx FastCGI Cache для сокращения времени отклика сервера WordPress
  • Как получить реальный IP-адрес пользователя в nginx за обратным прокси-сервером nginx
  • Чем отличается прямой прокси от обратного прокси
  • Руководство по iptables (Iptables Tutorial 1.1.19)
  • Настройка автозапуска скриптов в Linux Ubuntu/Mint
  • Устанавливаем оболочку bash про умолчанию
  • SOCS5 прокси сервер DANTE — установка и настройка
  • Сервис online настройки параметров сервера nginx
  • nmblookup — аналог команды Windows nbtstat для Linux.
  • Inxi — программа вывода информации о системе и железе в Linux
  • dnstop — мониторинг и анализатор DNS-трафика

Основные команды Linux: делаем первые шаги в командной строке

url image

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

  • Навигация
  • Поиск
  • Работа с папками
  • Работа с файлами
  • Переименование, перемещение и копирование

Навигация

После подключения к серверу Linux вы оказываетесь в домашней директории пользователя. Чтобы узнать точный путь к вашему текущему местонахождению, воспользуйтесь командой:

Она выведет текущую рабочую директорию (print working directory).

Если вам нужно перейти в другую директорию, для этого используется команда cd (change directory) с указанием пути к нужной вам директори:

cd /home

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

текущая директория, в которой вы сейчас находитесь. Например, чтобы найти документ с именем hello.txt в текущей директории, можно использовать команду:

find . -name hello.txt

директория, расположенная на уровень выше текущей. Если вы находитесь в /home/user , то комбинация .. будет обозначать папку /home . То есть, чтобы вернуться на один уровень назад, достаточно выполнить команду:

домашняя директория текущего пользователя. Например, запустить скрипт some-script.sh из домашней директории, когда вы находитесь в другой, можно с помощью команды:

sh ~/some-script.sh

предыдущая посещённая директория. Представим, что вы перешли в /home , потом вам потребовалось изменить настройки в /etc . Чтобы вернуться назад, достаточно использовать команду:

Для навигации с помощью команды cd есть два формата указания пути к нужной директории: абсолютный и относительный.

Абсолютный путь — это полный путь от корневого каталога сервера «/» . Например, вот такой:

/var/www/data/username/data/www/example.com/

Также к абсолютным относятся пути, в которых используется ~ — указание на домашний каталог текущего пользователя. Например, при доступе к файлу ~/.bash_profile он всегда будет открываться из одного и того же места: вместо ~ будет использоваться значение переменной окружения $HOME, которое не меняется.

Относительный путь — это неполный путь. Он указывается относительно какого-то объекта: например, текущей рабочей директории. То есть в начале отсутствует символ корневого каталога «/» .

./docs/files/file.txt file.txt

Представим, что мы сейчас работаем с файлами в /var/www/data/username . Нам нужно отредактировать содержимое в директории на уровень выше — /var/www/data . Чтобы управлять данными в этой директории, нам не обязательно постоянно указывать полный путь к ним — можно работать с относительным, начиная его с «../» .

Также относительные пути используются, когда нужно выполнить операцию над файлом или папкой в директории, в которой мы сейчас работаем. Для выполнения команды достаточно указать имя, и система поймёт, что мы имеем в виду объект из текущего каталога.

Чтобы отобразить список содержимого каталога, можно использовать команду ls (list). Она покажет названия объектов в текущем каталоге:

Если дополнить её ключом -al , команда покажет типы данных, разрешения и скрытые объекты. Например, в этом случае она выведет в терминал подробный список содержимого /etc:

ls -al /etc

Чтобы немного упростить себе жизнь, можно использовать консольные файловые менеджеры для Linux, например mc .

apt -y install mc
yum -y install mc

Его особенность — примитивный графический интерфейс. Он позволяет быстро ориентироваться в структуре каталогов, перемещаться между ними, создавать новые директории. Интерфейс разбит на два окна, между которыми вы можете перемещать объекты. Помимо прочего, в нём можно работать и с помощью мыши — перемещаться с помощью двойного клика, использовать кнопки в нижней части панели.

Поиск

С помощью команды find можно найти на сервере директорию или файл по набору условий. Структура команды проста:

find [где искать] [как искать] [что искать]

Например, мы знаем название скрипта hello.txt , но не знаем, где именно на сервере он лежит. Найти его поможет команда:

find / -name "hello.txt"
  • / указывает, что искать надо, начиная с корневой директории сервера. Если вам известно, где может лежать искомое, можно задать путь точнее.
  • «hello.txt» — имя файла, который нам нужно найти. Если известна только часть имени, можно указать сокращённый вариант: «hello*» , «*.txt»

Кроме -name , команда find имеет множество опций, которые позволяют уточнить условия поиска. Вот список наиболее полезных параметров:

Позволяет указать тип искомых данных: -type f — файлы, -type d — директории

Позволяет вывести файлы с определённым уровнем доступа. Например, — perm 777

Отображает только пустые файлы или папки

Позволяет искать данные среди файлов, принадлежащих конкретному пользователю: -user root

Позволяет искать данные среди файлов, принадлежащих определённой группе пользователей: -group www-data

Позволяет задать условие относительно времени изменения:

  • -mtime 7 — менявшиеся в течение последних 7 дней;
  • -mtime +7 — менявшиеся более чем 7 дней назад;
  • -mtime -14 — менявшиеся менее чем 14 дней назад.

Позволяет задать условие относительно времени последнего доступа, аналогично mtime

Позволяет уточнить размер (или диапазон размера)

Позволяет применить к найденным файлам команду COMMAND

Больше информации о возможностях команды find можно узнать в документации. Здесь на помощь пользователям приходит команда man — используя её, вы сможете получить полную справочную информацию о любой команде Linux:

man find

Из встроенных инструментов поиска можно также отметить утилиту whereis . Она предназначена для поиска бинарных и системных файлов и директорий служб. Следующий пример выведет список всех объектов, имеющих прямое отношение к php :

whereis php

Работа с папками

Для создания новых директорий в системе Linux используется команда mkdir с указанием пути. Например, команда ниже создаст директорию /new в /home/user :

mkdir /home/user/new

Если нужно создать сразу несколько вложенных папок, можно использовать параметр -p . В таком случае все несуществующие директории, указанные в пути, будут созданы автоматически. Представим, что нам нужно создать вложенные папки docs/photos/2020-08-17 в текущей директории — тогда команда будет выглядеть так:

mkdir -p docs/photos/2020-08-17

Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:

mkdir docs pictures games

Удалить директорию можно с помощью команды rmdir с указанием пути. При этом она будет удалена только в случае, если она пуст (можно использовать параметр —ignore-fail-on-non-empty , чтобы удалить ее в любом случае). Для удаления нескольких вложенных папок можно аналогично использовать параметр -p . Например, команда ниже удалит /photos и все папки внутри нее:

rmdir -p docs/photos

Для удаления есть более эффективный инструмент — команда rm , о ней расскажем чуть позже.

Работа с файлами

Создание

Для создания новых файлов в ОС Linux есть несколько полезных команд.

Самый простой способ, одновременно создающий и файл, и недостающие папки — команда touch . Для этого ей достаточно только передать полный путь. Например, создадим в директории docs папку copies , а внутри неё — copies-list.txt :

touch docs/copies/copies-list.txt

Несуществующая папка copies создастся автоматически.

Если нужно создать сразу несколько файлов, можно просто перечислить их через пробел:

touch file1.txt file2.txt file3.txt file4.txt file5.txt

Ещё один способ — вызвать какой-нибудь консольный текстовый редактор с указанием полного пути к файлу. Тогда редактор автоматически создаст его и откроет для редактирования. Однако все папки придётся создать заранее, а файл придётся сохранить (даже пустой), иначе он не будет создан.

Команда ниже создаст new-file.txt с помощью редактора vi :

vi new-file.txt

Для сохранения и выхода в vi нужно нажать клавишу Esc , ввести сочетание :wq и нажать Enter . Для выхода без сохранения нужно также нажать Esc , ввести сочетание :q! и нажать Enter .

Также создать пустой файл можно с помощью команды cat или команды echo:

cat > new-file.txt echo > new-file.txt

Редактирование

Для редактирования используются консольные текстовые редакторы. Самые известные — vi и nano . В некоторых дистрибутивах vi заменён на vim ( vi improved, улучшенный vi ) или vim.tiny

Редактор vi будет доступен вам по умолчанию на большинстве Linux-систем.

А теперь к делу. Vi (более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки, а вопрос «как выйти из Vim?» стал практически культовым среди пользователей Linux-систем.

Запуск редактора без аргументов откроет его в режиме справки:

Чтобы закрыть Vim (без сохранения), введите сочетание :q!

Если указать редактору путь к файлу, он откроет его для редактирования. Если его не существовало, то он будет создан:

vi new-file.txt

При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.

Чтобы начать ввод, нужно перейти в режим редактирования с помощью клавиши I . Чтобы вернуться в режим просмотра, нажмите Esc .

Перемещение по тексту выполняется с клавиатуры:

  • перемещение в начало текста: Esc + дважды G
  • перемещение в конец текста: Shift + G
  • перемещение по строке горизонтально: стрелки ← →
  • перемещение по строкам вертикально: стрелки ↑ ↓
  • отображение номеров строк: Esc , введите :set number , нажмите Enter
  • перемещение по номерам строк: Esc , введите : номер строки, нажмите Enter

Для выхода с сохранением файла нажмите Esc и введите :wq!

Текстовый редактор vim — краткое руководство

Более современной и удобной альтернативой Vim считается редактор nano . Современные дистрибутивы Linux включают его по умолчанию, но на ранних версиях устанавливать придётся вручную:

apt -y install nano
yum -y install nano

Вызов nano без аргументов откроет пустой редактор. Можно начать ввод (при сохранении вам будет предложено указать имя и сохранить файл) или вызвать режим помощи со списком доступных команд с помощью сочетания Ctrl + G .

Для сохранения нажмите Ctrl + O — редактор предложит ввести имя файла: введите имя и нажмите Enter . Если файл существовал и имя изменять не требуется, просто нажмите Enter .

Для выхода из редактора нажмите Ctrl + X .

Чтение

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

Например, команда cat позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:

cat example.txt

Однако, если мы заведомо знаем, что в файле большой объём информации, нет смысла выводить его целиком. Например, команды head и tail могут вывести часть содержимого с начала или конца соответственно. Если добавить к ним ключ -n , можно уточнить, сколько строк текста нужно вывести:

head -n 3 example.txt

tail -n 3 example.txt

Помимо прочего, команда tail очень удобна для чтения логов с ключом -f . В таком режиме она открывает файл в режиме ожидания и выводит все добавляемые данные. Это может пригодиться для тестирования или дебаггинга.

Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less — она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:

less example.com

В режиме чтения команда less можно перемещаться, искать текст и многое другое. Все командные последовательности и горячие клавиши можно вывести с помощью параметра —help :

less --help

Для выхода из режима чтения введите q и нажмите Enter .

Удаление

Для удаления используется команда rm . Она крайне опасна — неправильное применение грозит удалением всего содержимого сервера. Поэтому, как говорится, семь раз отмерь, один раз отрежь: категорически важно перепроверять путь, который вы указываете для удаления.

Самая простая версия команды rm удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter :

rm new-file.txt

Для полного же уничтожения всего и вся к команде добавляются параметры -rf . Первый отвечает за рекурсивное удаление данных (т.е. удаление вложенных файлов и папок), второй позволяет отключить подтверждение при удалении. Например, следующая команда удалит папку photos , размещённую в docs , и всё её содержимое:

rm -rf docs/photos

Эта команда приобрела некоторую популярность из-за того, что её используют ради шутки над неопытными администраторами и пользователями, которые только начинают своё знакомство с системой Linux. Им под тем или иным предлогом предлагают выполнить из терминала команду rm -rf [/] (без квадратных скобок). Она удаляет всё содержимое сервера от корня. Результат — все данные безвозвратно теряются, а сервер перестаёт работать.

Скачивание и загрузка

Для передачи файлов на сервер и скачивании их с с сервера есть много способов. Самый простой — использование программ wget , curl или утилиты scp .

    wget позволяет скачивать данные на сервер. Она поддерживает HTTP, HTTPS и FTP протоколы.

wget [как скачать] [откуда скачать]

Скачать файл по ссылке в вашу текущую рабочую директорию можно с помощью команды:

wget https://ru.wordpress.org/latest-ru_RU.tar.gz

С помощью параметра -P можно указать путь, куда нужно сохранить скачиваемое:

wget -P /var/www/example.com https://ru.wordpress.org/latest-ru_RU.tar.gz

Полный список параметров wget можно посмотреть с помощью команды man :

man wget
curl [как скачать] [откуда скачать / куда загрузить]
  • Ubuntu и Debian:
    apt -y install curl
  • CentOS:
    yum -y install curl

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

curl -O https://ru.wordpress.org/latest-ru_RU.tar.gz

В примере мы скачиваем архив latest-ru_RU.tar.gz по ссылке и сохраняем его в текущую рабочую директорию с таким же именем — за это отвечает ключ -O . Если использовать опцию -o , можно задать своё имя ( wp.tar.gz ) для сохраняемого файла:

curl -o wp.tar.gz https://ru.wordpress.org/latest-ru_RU.tar.gz

Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:

curl -T filename.txt https://example.com/downloads/filename.txt

Здесь filename.txt из текущей рабочей директории загружается на сайт example.com в директорию downloads и сохраняется с именем filename.txt . Пример подразумевает, что у нас есть права на запись в указанный каталог.

Остальные возможности curl можно узнать в справочной информации с помощью команды:

man curl
scp [откуда копируем] [куда копируем]

Например, для передачи filename.txt с нашего сервера на удалённый сервер 1.2.3.4 в директорию new-documents пользователя username можно использовать в терминале следующую команду:

scp ~/documents/filename.txt username@1.2.3.4:/home/username/new-documents

В процессе система запросит у нас пароль пользователя username для подключения к удалённому серверу. После авторизации файл будет скопирован на целевой сервер в указанную директорию. Чтобы скачать файл с удалённого сервера, достаточно немного видоизменить нашу команду:

scp username@1.2.3.4:/home/username/documents/filename.txt ~/new-documents/

Здесь мы в качестве источника для получения копии указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере. С помощью scp аналогичным образом можно копировать данные между двумя удалёнными серверами:

scp username1@1.2.3.4:/home/username1/documents/filename.txt username2@2.3.4.5:/home/username2/new-documents

Запуск исполняемых bash-скриптов

Чтобы запустить скрипт script.sh на сервере Linux, нужно выполнить два шага:

    Настроить права на запуск файла для пользователей с помощью команды chmod :

chmod +x ./script.sh
./script.sh

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

sh ./script.sh
/bin/bash ./script.sh

Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой в терминале, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.

Весь список существующих алиасов системы можно вывести с помощью команды alias :

Создать свой постоянный алиас можно с помощью файла .bashrc , размещённого в домашнем каталоге вашего пользователя. Нужно открыть его для редактирования:

vi ~/.bashrc

В соответствующем разделе нужно добавить ваш алиас в следующем формате:

alias [короткая команда]='[исходная команда]'

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

alias myScript='sh /путь/к/скрипту/script.sh'

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

source ~/.bashrc

После этого вы сможете вызывать ваш скрипт с помощью короткой команды.

Скрипт можно добавить в расписание планировщика cron , чтобы он запускался регулярно.

Как настроить cron по ssh

Переименование, перемещение и копирование файлов и папок

Скопировать файл в терминале Linux можно с помощью команды:

cp [что копируем] [куда копируем]

К примеру, вы можете сделать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию nginx.conf :

cp nginx.conf nginx.conf.copy

Директории копируются аналогично. При необходимости скопировать каталог со всем содержимым (рекурсивно) нужно добавить к команде ключ -r :

cp -r /docs /files

Здесь мы создаём копию docs со всем её содержимым с именем files .

Переместить файл также просто, для этого используем в терминале команду mv :

mv [что переместить/переименовать] [куда переместить/как назвать]

Например, следующая команда переместит файл file.txt в директорию new :

mv file.txt docs/new

Переименовать файл тоже не составит труда. В Linux переименование аналогично перемещению в ту же самую папку, но с новым именем. Например, команда ниже переименует file.txt (в директории /docs/new/) в todolist.txt:

mv /docs/new/file.txt /docs/new/todolist.txt

В этом примере file.txt переименовывается в todolist.txt

Аналогично можно перемещать и переименовывать директории.

Теперь, когда вы знаете базовые команды для работы с терминалом Linux, самое время познакомиться с файловой системой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *