Как создать файл в Linux: примеры создания при помощи командной строки
Рассмотрим 12 способов создания файла в Linux.
Эти способы тестировались на дистрибутиве Ubuntu, но будут работать на любой системе Linux.
Создание пустого файла при помощи touch
Пояснение: Команда touch предназначена для того, чтобы поменять дату изменения файла на текущую. Однако ее также часто используют для создания файлов.
Создание сразу нескольких пустых файлов при помощи touch
Создание пустого файла при помощи echo
Пояснение: Команда echo предназначена для вывода на экран строки, которая в нее передается. Символ > перенаправляет вывод в файл. Соответственно мы перенаправили пустоту в файл.
Трюк для создания пустых файлов
Пояснение: символ > перенаправляет вывод, а мы ничего не выводим, просто перенаправляем пустоту в файл. Это самый короткий способ создать пустой файл.
Или лучше такой пример:
Двоеточие в начале, чтобы случайно не записать вывод предыдущей команды в файл.
Создание файла с содержимым
Пояснение: Выводим строку 123 и перенаправляем этот вывод в файл. Файл будет содержать строку 123
Создание файла путем объединения других файлов с помощью cat
Пояснение: Команда cat выводит на экран содержимое на экран, однако мы перенаправляем этот вывод в файл. Соответственно мы создали файл big_file в котором находится содержимое из трех других файлов.
Создание файла с помощью любой команды и символа >
Мы можем создать файл, с помощью команд, которые выводят что-то на экран, записав этот вывод в файл. Например ps aux выводит информацию о текущих процессах в системе. Мы просто можно записать весь вывод этой команды в файл file.txt и потом его проанализировать.
Записываем в файл справку по команде man :
Записываем в файл календарь на 2021 год
Создание фала при помощи редактора nano
Этот редактор чуть более привычный простому пользователю, чем Vim, однако он должен быть установлен в вашей системе.
Проверить установлен ли nano в вашей системе можно с помощью следующей команды:
Результатом будет информация об установленном редакторе:
Либо сообщение об ошибке: Command ‘nano’ not found
Создание файла при помощи текстового редактора Vim
Если вы никогда не работали с этим редактором, то этот способ вам не подойдет, т.к. без пары часов за документацией Vim не освоить.
Создание файла определенного размера c помощью fallocate
Таким образом вы создали файл hello.txt размером 10 мегабайт.
Создание файла определенного размера с помощью dd
Создание файла-сокета c помощью команды mkfifo
После создания вам нужно установить на него права, чтобы нужные программы могли им пользоваться
Создание файла при помощи HEREDOC
Пояснение: мы сначала пишем cat file.txt причем вместо EOF может быть любая строка, которой нет в тексте, который мы собираемся написать. Затем когда мы завершили заполнение многострочного файла, просто переходим на следующую строку и вводим EOF. В итоге содержимое нашего файла будет:
Для начала работы в терминале Linux не нужно быть гуру администрирования — достаточно знать список базовых команд для навигации и работы с файлами и папками.
Навигация
После подключения к серверу вы оказываетесь в домашней папке пользователя. Чтобы узнать точный путь к вашему текущему местонахождению, воспользуйтесь командой:
Она выведет текущую рабочую директорию (print working directory).
Если вам нужно перейти в другую папку, для этого используется команда cd (change directory) с указанием пути к нужной вам папке:
Говоря о навигации, нельзя не упомянуть сокращения для обозначения некоторых директорий:
/
корневая папка сервера
.
текущая директория, в которой вы сейчас находитесь. Например, чтобы найти файл с именем hello.txt в текущей директории, можно использовать команду:
домашняя папка текущего пользователя. Например, запустить скрипт some-script.sh из домашней папки, когда вы находитесь в другой директории, можно так:
Для навигации с помощью команды cd есть два формата указания пути к нужной папке: абсолютный и относительный.
Также к абсолютным относятся пути, в которых используется
— указание на домашнюю папку текущего пользователя. Например, при доступе к файлу
/.bash_profile он всегда будет открываться из одного и того же места: вместо
Также относительные пути используются, когда нужно выполнить операцию над файлом или папкой в директории, в которой мы сейчас работаем. Для выполнения команды достаточно указать имя файла или папки — система поймёт, что мы имеем в виду файл из текущего каталога.
А этот выведет в терминал подробный список содержимого папки /etc:
Ubuntu и Debian:
CentOS:
Его особенность — примитивный графический интерфейс. Он позволяет быстро ориентироваться в структуре каталогов, перемещаться между ними, создавать новые директории. Интерфейс разбит на два окна, между которыми вы можете перемещать файлы и папки. Помимо прочего, в нём можно работать и с помощью мыши — перемещаться двойным кликом по папкам, использовать кнопки в нижней части панели.
Поиск
С помощью команды find можно найти на сервере папку или файл по набору условий. Структура команды проста:
Отображает только пустые файлы или папки
Позволяет задать условие относительно времени изменения файлов:
Позволяет задать условие относительно времени последнего доступа к файлу, аналогично mtime
Позволяет уточнить размер (или диапазон размера) искомых файлов
Позволяет применить к найденным файлам команду COMMAND
Больше информации о возможностях find можно узнать в файлах документации:
Работа с папками
Для создания новых директорий используется команда mkdir с указанием пути до создаваемой папки. Пример ниже создаст папку /new в существующей директории /home/user :
Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:
Работа с файлами
Создание
В терминале есть несколько способов создания новых файлов.
Если нужно создать сразу несколько файлов, можно просто перечислить их через пробел:
Ещё один способ создания новых файлов — вызвать какой-нибудь консольный текстовый редактор с указанием полного пути к файлу. Однако все папки придётся создать заранее. Тогда редактор автоматически создаст файл и откроет его для редактирования. Если не сохранить файл в редакторе, даже пустой, он не будет создан. Команда ниже добавит новый файл с помощью редактора vi :
Ещё пара способов создания пустых файлов:
Редактирование
Редактор vi будет доступен вам по умолчанию на большинстве Linux-систем.
А теперь к делу. Vi (более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки.
Запуск редактора без аргументов откроет его в режиме справки:
Чтобы закрыть Vim (без сохранения), введите сочетание :q!
Если указать редактору путь к файлу, он откроет его для редактирования. Если файл не существовал, он будет создан:
При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.
Перемещение по тексту выполняется с клавиатуры:
Для выхода с сохранением файла нажмите Esc и введите :wq!
Текстовый редактор vim — краткое руководство
Ubuntu и Debian:
CentOS:
Чтение
Бывает, что нам нужно получить какую-то информацию из файла без необходимости редактировать его. В таком случае необязательно использовать текстовый редактор — есть более простые инструменты.
Команда cat позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:
Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less — она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:
Удаление
Самая простая версия rm удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter :
Скачивание и загрузка
wget позволяет скачивать данные на сервер. Он поддерживает HTTP, HTTPS и FTP протоколы.
Скачать файл по ссылке в вашу текущую рабочую директорию можно с помощью команды:
Полный список параметров wget можно посмотреть в справочной информации:
curl используется как для скачивания файлов на ваш сервер, так и для передачи данных с него на другие серверы / хранилища. Он универсальнее wget благодаря огромному количеству поддерживаемых протоколов: FTP, HTTP, HTTPS, IMAP, POP3, SCP, SFTP, SMB, SMTP, Telnet и др.
В современных дистрибутивах curl установлен по умолчанию. При необходимости установить его вручную можно следующим образом:
Для работы с curl нужно знать название и расположение файлов, которые необходимо скачать/загрузить. Например, так будет выглядеть команда на скачивание файла по ссылке:
Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:
Остальные возможности curl можно узнать в справочной информации:
Утилита scp позволяет копировать файлы между двумя серверами, используя протокол SSH.
Например, для передачи файла filename.txt с нашего сервера на удалённый сервер 1.2.3.4 в папку new-documents пользователя username можно использовать следующую команду:
В процессе система запросит у нас пароль пользователя username для подключения к удалённому серверу. После авторизации файл будет скопирован на целевой сервер в указанную папку.
Чтобы скачать файл с удалённого сервера, достаточно немного видоизменить нашу команду:
Здесь мы в качестве источника для получения копии файла указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере.
С помощью scp аналогичным образом можно копировать данные между двумя удалёнными серверами:
Запуск исполняемых bash-скриптов
Чтобы запустить скрипт script.sh на сервере, нужно выполнить два шага:
Настроить права на запуск файла для пользователей:
Запустить скрипт. Если вы находитесь в той же директории, где лежит скрипт, достаточно вызвать его по имени:
В некоторых случаях нужно использовать команду sh либо указать путь к исполняемому файлу командной оболочки:
Если вы находитесь в другой директории, для запуска нужно указать полный путь к скрипту.
Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.
Весь список существующих алиасов системы можно вывести с помощью команды alias :
В соответствующем разделе нужно добавить ваш алиас в следующем формате:
Например, если нам потребуется создать псевдоним для скрипта выше, настройки будут выглядеть так:
Чтобы после добавления алиас сразу стал доступен, предварительно нужно обновить командную оболочку:
После этого вы сможете вызывать ваш скрипт с помощью короткой команды.
Как настроить cron по ssh
Переименование, перемещение и копирование файлов и папок
Скопировать файл в терминале можно с помощью команды:
C её помощью можно, к примеру, создать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию конфигурационного файла nginx.conf
Переместить или переименовать файл также просто:
Например, следующая команда переместит файл file.txt в папку new :
Переименовать файл не сложнее:
В этом примере файл file.txt переименовывается в todolist.txt
Аналогично можно перемещать и переименовывать директории.
Теперь, когда вы можете перемещаться по серверу и работать с файлами и папками, самое время познакомиться с файловой структурой Linux-систем.
Знание того, как создать новый файл, является важным навыком для любого, кто регулярно использует Linux. Вы можете создать новый файл либо из командной строки, либо из файлового менеджера рабочего стола.
В этом руководстве мы покажем вам различные способы быстрого создания нового файла в Linux с помощью командной строки.
Подготовка
Чтобы создать новый файл, вам необходимо иметь права на запись в родительский каталог. В противном случае вы получите сообщение об ошибке в разрешении отказано.
Создание файла с помощью сенсорной команды
Команда touch позволяет нам обновлять метки времени в существующих файлах и каталогах, а также создавать новые пустые файлы.
Самый простой и запоминающийся способ создания новых пустых файлов — использовать touch команду.
Чтобы создать новый файл, просто запустите touch команду, после которой укажите имя файла, который вы хотите создать:
Если файл file1.txt не существует, приведенная выше команда создаст его, в противном случае она изменит свои временные метки.
Чтобы создать сразу несколько файлов, укажите имена файлов через пробел:
Создание файла с помощью оператора перенаправления
Перенаправление позволяет захватывать выходные данные команды и отправлять их в качестве входных данных в другую команду или файл. Есть два способа перенаправить вывод в файл. Оператор > перезапишет существующий файл, а оператор >> добавит вывод в файл.
Чтобы создать пустой файл нулевой длины, просто укажите имя файла, который вы хотите создать, после оператора перенаправления:
Это самая короткая команда для создания нового файла в Linux.
Создавая файл с использованием перенаправления, будьте осторожны, чтобы не перезаписать важный существующий файл.
Создание файла с помощью команды cat
Команда cat в основном используется для чтения и объединения файлов, но ее также можно использовать для создания новых файлов.
Чтобы создать новый файл, выполните команду cat, за которой следует оператор перенаправления > и имя файла, который вы хотите создать. Нажмите Enter введите текст и, когда вы закончите, нажмите CRTL+D чтобы сохранить файлы.
Создание файла с помощью команды echo
Команда echo печатает строки, которые передаются в качестве аргументов в стандартный вывод, который можно перенаправить в файл.
Чтобы создать новый файл, запустите команду echo за которой следует текст, который вы хотите напечатать, и используйте оператор перенаправления > чтобы записать вывод в файл, который вы хотите создать.
Если вы хотите создать пустой, просто используйте:
Создание файла с использованием Heredoc
Здесь документ или Heredoc — это тип перенаправления, который позволяет передавать команде несколько строк ввода.
Этот метод в основном используется, когда вы хотите создать файл, содержащий несколько строк текста, из сценария оболочки.
Например, чтобы создать новый файл file1.txt вы должны использовать следующий код:
Тело heredoc может содержать переменные, специальные символы и команды.
Создание большого файла
Иногда в целях тестирования может потребоваться создать большой файл данных. Это полезно, когда вы хотите проверить скорость записи вашего накопителя или проверить скорость загрузки вашего соединения.
Использование команды dd
Команда dd в основном используется для преобразования и копирования файлов.
Чтобы создать файл с именем 1G.test размером 1 ГБ, выполните:
Использование команды fallocate
fallocate командной строки для выделения реального дискового пространства для файлов.
Следующая команда создаст новый файл с именем 1G.test размером 1 ГБ:
Выводы
В этом руководстве вы узнали, как создать новый файл в Linux из командной строки с помощью различных команд и перенаправления.
Если командная строка вам не подходит, вы можете легко создать пустой текстовый файл, используя контекстное меню в диспетчере файлов.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.