Какая команда в unix служит для создания файла

Обновлено: 07.07.2024

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

Я написал это руководство с целью облегчить изучение, запоминание и ссылки на основные утилиты файловой системы UNIX. На практике macOS и GNU / Linux являются системами UNIX. macOS - это сертифицированная UNIX, основанная на BSD UNIX, а GNU / Linux - это UNIX-подобная версия или производная UNIX.

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

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

Разрешения

Содержание файлов

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

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

В этом руководстве я, в частности, исследую файловую систему UNIX, которую можно найти на компьютерах с macOS и GNU / Linux. Файловая система Windows отличается, хотя Windows 10 сПодсистема Windows для LinuxУстановленный позволяет использовать те же утилиты, которые я описываю здесь.

Файловая система начинается с / . Это корневой узел, на котором размещаются каталоги первого уровня.

Обычные каталоги, которые вы найдете в системе UNIX:

  • /bin содержит основные системные команды
  • /etc содержит конфигурацию системы
  • /dev содержит системные устройства
  • /usr содержит пользовательские файлы
  • /tmp содержит временные файлы

… Есть еще кое-что, но вы поняли.

Сколько зависит от типа используемой системы. Linux стандартизировал папки, используя стандарт Linux Standard Base, и обычно у вас есть:

  • /bin основные системные команды
  • /boot файлы, используемые для загрузки машины (не существующие в macOS)
  • /dev системные устройства
  • /etc файлы конфигурации системы
  • /etc/opt файлы конфигурации программ пользователя
  • /home домашние каталоги пользователей (/ Users в macOS)
  • /lib системные библиотеки (отсутствуют в macOS)
  • /mnt смонтированные файловые системы
  • /opt пользовательские программы
  • /proc пользователь по ядру и процессам (не существует в macOS)
  • /root домашняя папка пользователя root (не существует в macOS)
  • /run (не существует в macOS)
  • /sbin пользователь системных двоичных файлов для загрузки системы
  • /tmp временные файлы
  • /usr содержит пользовательское программное обеспечение, библиотеки и инструменты
  • /usr/bin бинарные файлы пользователя
  • /usr/include файлы заголовков пользователей
  • /usr/lib пользовательские библиотеки
  • /usr/local используется пользовательским программным обеспечением для хранения установок, например Homebrew на macOS
  • /usr/sbin системные двоичные файлы
  • /usr/share содержит независимые от архитектуры данные. Он может содержать много разного, включая документацию и справочные страницы.
  • /usr/src содержит исходный код установленных пакетов (не существует в macOS)
  • /var содержит временные файлы, журналы и многое другое

В macOS есть разные папки, в том числе

  • /Applications хранит приложения пользователей
  • /Library содержит библиотеку (настройки и ресурсы), которые глобально используются пользователями системы
  • /System содержит системные файлы
  • /private хранит системные файлы, журналы и многое другое

Каждая папка содержит файлы и каталоги, которые, в свою очередь, могут содержать другие файлы и каталоги, и так далее.

У всех файлов и папок есть имена.

Что делает имя правильным? Он может содержать от 1 до 255 символов и должен состоять из любых буквенно-цифровых символов ( a-z / A-Z / 0-9 ), символ подчеркивания ( _ ), точка ( . ) и запятая ( , ) символы.

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

В зависимости от системы файловая система может быть чувствительной к регистру. В macOS файловая системанетпо умолчанию чувствителен к регистру, поэтому у вас не может быть файла / папки с именем test а другой позвонил Test . Это одно и то же.

Теперь я собираюсь представить различные служебные команды. Они выполняются в контексте оболочки, такой как Bash, Fish или Zsh. Когда вы запустите оболочку, вы окажетесь в своем домашнем каталоге. В macOS это находится в /Users/<yourname>/ дорожка.

Команды не изменяются, если вы меняете используемую оболочку, потому что это основные, фундаментальные команды UNIX. Вы, вероятно, будете использовать эти команды в течение многих десятилетий, если не произойдет какая-то революция в мире вычислений (а они случаются, но эти серверные вещи обычно продвигаются медленно). Чтобы дать вам некоторую перспективу, mkdir Команда, которую вы сейчас увидите, была представлена в UNIX AT&T версии 1 в начале 80-х годов.

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

mkdir

Вы создаете папки, используя mkdir команда:

Вы можете создать несколько папок с помощью одной команды:

Вы также можете создать несколько вложенных папок, добавив -p вариант:

Параметры в командах UNIX обычно принимают эту форму. Вы добавляете их сразу после имени команды, и они изменяют поведение команды. Вы также можете часто комбинировать несколько вариантов.

Создав папку, вы можете перейти в нее, используя cd команда. cd средстваcповеситьdкаталог. Вы вызываете его, указывая папку, в которую нужно перейти. Вы можете указать имя папки или весь путь.

Теперь вы в fruits папка.

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

Вы можете использовать его для формирования пути:

Есть еще один специальный индикатор пути, который . , и указываетТекущийпапка.

Вы также можете использовать абсолютные пути, которые начинаются с корневой папки. / :

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

Он напечатает текущий путь к папке.

rmdir

Так же, как вы можете создать папку, используя mkdir , вы можете удалить папку, используя rmdir :

Вы также можете удалить сразу несколько папок:

Папка, которую вы удаляете, должна быть пустой.

Чтобы удалить папки с файлами в них, мы будем использовать более общий rm команда, которая удаляет файлы и папки, используя -rf опции:

Будьте осторожны, так как эта команда не запрашивает подтверждения и немедленно удаляет все, что вы просите удалить.

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

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

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


ls принимает много вариантов. Одна из моих любимых комбинаций опций - -al . Попытайся:


по сравнению с равниной ls , это возвращает гораздо больше информации.

У вас слева направо:

  • права доступа к файлам (и если ваша система поддерживает ACL, вы также получите флаг ACL)
  • количество ссылок на этот файл
  • владелец файла
  • группа файла
  • размер файла в байтах
  • дата и время изменения файла
  • имя файла

Этот набор данных генерируется l вариант. В a опция вместо этого также показывает скрытые файлы.

Скрытые файлы - это файлы, начинающиеся с точки ( . ).

touch

Вы можете создать пустой файл, используя touch команда:

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

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

В pear файл теперь перемещен в new_pear . Вот как тыпереименоватьфайлы и папки.

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

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

Для копирования папок необходимо добавить -r возможность рекурсивного копирования всего содержимого папки:

Давайте теперь познакомимся с концепцией ссылок. Ссылка - это файл, который указывает на другой файл. Они есть во всех основных операционных системах.

Мы можем создавать ссылки двух типов: жесткие ссылки и символические (мягкие) ссылки. Мы не можем создать жесткую ссылку на каталог, но можем создать символическую. По этой причине символические ссылки (также называемыесимволические ссылки) встречаются гораздо чаще.

Мы создаем символическую ссылку, используя этот синтаксис: ln -s original linkname . Пример:


Обратите внимание, как я использовал ll команда. Это не стандартная команда, апсевдонимза ls -al . В оболочке вы можете определить псевдонимы, которые являются ярлыками для общих комбинаций команд и аргументов.

Разрешения

Я кратко упоминал о разрешениях ранее, когда представлял ls -al команда.

Странная строка, которую вы видите в каждой строке файла, например drwxr-xr-x , определяет права доступа к файлу или папке.

Давайте рассмотрим это.

Первая буква указывает на тип файла:

  • - означает, что это нормальный файл
  • d означает, что это каталог
  • l означает, что это ссылка

Тогда у вас есть 3 набора значений:

  • Первый набор представляет разрешениявладелецфайла
  • Второй набор представляет собой разрешения членовгруппафайл связан с
  • Третий набор представляет разрешениявсе остальные

Эти наборы состоят из 3 значений. rwx означает, что конкретныйперсонаимеет доступ на чтение, запись и выполнение. Все, что удаляется, заменяется на - , который позволяет формировать различные комбинации значений и относительных разрешений: rw- , r-- , r-x , и так далее.

Вы можете изменить разрешения, предоставленные файлу, используя chmod команда.

chmod можно использовать 2 способами. Первый использует символьные аргументы, второй - числовые аргументы. Начнем сначала с символов, что более интуитивно понятно.

Вы печатаете chmod за которым следует пробел и буква:

  • a означаетвсе
  • u означаетПользователь
  • g означаетгруппа
  • o означаетдругие

Затем вы вводите либо + или же - чтобы добавить разрешение или удалить его. Затем вы вводите один или несколько символов разрешений ( r , w , x ).

За всем следует имя файла или папки.

Вот некоторые примеры:

Вы можете применить одни и те же разрешения к нескольким персонажам, добавив несколько букв перед + / - :

Если вы редактируете папку, вы можете применить разрешения к каждому файлу, содержащемуся в этой папке, с помощью -r (рекурсивный) флаг.

Числовые аргументы работают быстрее, но мне трудно их запомнить, когда вы не используете их изо дня в день. Вы используете цифру, которая представляет разрешения персонажа. Это числовое значение может быть максимум 7, и оно рассчитывается следующим образом:

  • 1 если есть разрешение на исполнение
  • 2 если есть разрешение на запись
  • 4 если есть разрешение на чтение

Это дает нам 4 комбинации:

  • 0 нет разрешений
  • 1 может выполнить
  • 2 могу писать
  • 3 может писать, выполнять
  • 4 может читать
  • 5 может читать, выполнять
  • 6 может читать, писать
  • 7 может читать, писать и выполнять

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

Владелец и группа

Вы можете изменить владельца файла, используя chown команда:

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

Управление содержимым файлов

В less Я часто использую команду. Он показывает содержимое, хранящееся внутри файла, в красивом интерактивном интерфейсе.

Использование: less <filename> .


Как только вы окажетесь внутри less сеанс, вы можете выйти, нажав q .

Вы можете перемещаться по содержимому файла, используя up и down клавишами или с помощью space bar и b для навигации по страницам. Вы также можете перейти к концу файла, нажав G и вернитесь к началу нажатия g .

Вы можете искать содержимое внутри файла, нажав / и введите слово для поиска. Этот поисквперед. Вы можете искать в обратном направлении, используя ? символ и ввод слова.

Эта команда просто визуализирует содержимое файла. Вы можете напрямую открыть редактор, нажав v . Он будет использовать системный редактор, который в большинстве случаев vim .

Нажатие на F ключ входитрежим следования, или жережим часов. Когда файл изменяется кем-то другим, например, из другой программы, вы можете увидеть изменения.жить. По умолчанию этого не происходит, и вы видите только версию файла на момент его открытия. Вам нужно нажать ctrl-C чтобы выйти из этого режима. В этом случае поведение похоже на запуск tail -f <filename> команда.

Вы можете открывать несколько файлов и перемещаться по ним с помощью :n (перейти к следующему файлу) и :p (перейти к предыдущему).

Я только что упомянул tail в предыдущей команде, поэтому давайте воспользуемся этой возможностью, чтобы объяснить, что она делает.

На мой взгляд, его лучший вариант использования - это вызов с -f вариант. Он открывает файл в конце и следит за изменениями файла. Каждый раз, когда в файле появляется новое содержимое, оно печатается в окне. Это отлично подходит для просмотра файлов журналов, например:

Для выхода нажмите ctrl-C .

Вы можете распечатать последние 10 строк файла:

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

tail может сделать гораздо больше, и, как всегда, мой совет - проверить man tail .

Похожий на tail каким-то образом у нас есть cat . Кроме cat также может добавлять содержимое в файл, что делает его очень мощным.

В простейшем использовании cat выводит содержимое файла на стандартный вывод:

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

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

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

При просмотре файлов исходного кода приятно видеть номера строк, и вы можете cat распечатайте их, используя -n вариант:

Вы можете добавить число только в непустые строки, используя -b , или вы также можете удалить все несколько пустых строк, используя -s .

cat часто используется в сочетании с оператором трубы | чтобы передать содержимое файла в качестве входных данных другой команде: cat file1 | anothercommand .

wc средстваколичество слов. Вот наиболее частое использование:

  • wc -l file1 подсчитывать строки
  • wc -w file1 подсчитывать слова
  • wc -c file1 подсчитывать символы
  • wc -m file1 подсчет символов с многобайтовой поддержкой (т.е. смайлики считаются как 1, а не как несколько символов)

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


В find Команда может использоваться для поиска файлов или папок, соответствующих определенному шаблону поиска. Ищет рекурсивно.

Давайте узнаем это на примере.

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

Важно использовать кавычки вокруг специальных символов, например * чтобы оболочка не интерпретировала их.

Найдите каталоги под текущим деревом, соответствующие имени «src»:

Использовать -type f для поиска только файлов, или -type l для поиска только символьных ссылок.

-name чувствителен к регистру. использовать -iname для выполнения поиска без учета регистра.

Вы можете искать по нескольким корневым деревьям:

Найдите каталоги в текущем дереве, соответствующие имени «node_modules» или «public»:

Вы также можете исключить путь, используя -not -path :

Вы можете искать файлы, содержащие более 100 символов (байтов):

Искать файлы размером более 100 КБ, но меньше 1 МБ:

Искать файлы, отредактированные более 3 дней назад

Искать файлы, отредактированные за последние 24 часа

Вы можете удалить все файлы, соответствующие поисковому запросу, добавив -delete вариант. Это удалит все файлы, отредактированные за последние 24 часа:

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

обратите внимание на прекращение \; . <> заполняется именем файла во время выполнения.

Командная строка, во многом, делает нашу жизнь несколько проще, так как благодаря ей мы можем автоматизировать некоторые повседневные задачи и сделать работу более простой. Вместо того, чтобы щёлкать по графическому интерфейсу (GUI), мы можем быстро запустить несколько команд, которые выполнят все нужные задачи.

Unix shell - это интерпретатор командной строки или оболочка, которая предоставляет пользовательский интерфейс для работы из командной строки для Unix-подобных операционных систем. Shell является одновременно интерактивным языком команд и языком скриптов, и он используется операционной системой для управления работой системы с использованием встроенных скриптов оболочки.

Любая операционная система на базе Linux или Mac имеет командную строку, доступную по умолчанию, именуемую как "Терминал". Командная строка (CLI) позволяет нам легко создавать, перемещать, удалять, переименовывать файлы, сортировать данные и перемещаться по папкам, просматривая содержимое.

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

Повысьте свою продуктивность с помощью этих консольных команд

1. grep

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

grep

Например, выполним команду grep, чтобы найти в файле все совпадения со строкой json

Опция -i позволяет нам искать строку в данном файле без учета регистра. Он соответствует словам типа "JSON", "JsoN" и "Json".

Мы так же можем получить количество строк, которое соответствует данной строке/шаблону указав флаг -c (count).

grep_c

Эта команда подсчитывает, сколько раз в файле было найдено совпадение со строкой json

Вот, кстати, забавный и интересный комикс посвящённый команде grep , который я нашел в интернете (на английском).

grem-meme

Кроме того, есть вариант вызова программ egrep и fgrep что тождественно вызову grep -E и grep -F соответственно. Эти варианты устарели, но предусмотрены для сохранения обратной совместимости.

Можете детальнее познакомиться с grep на странице документации.

Unix команда ls выводит список файлов и каталогов по текущему активному пути. Если путь представляет собой файл, ls отображает информацию о файле в соответствии с указанными параметрами. Если путь является папкой, ls отображает информацию о файлах и подпапках в нём.

ls

Используя команду ls , выводим список всей файлов и папок в текущей директории

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

3. pwd

pwd

Выводи полный путь к текущей активной директории

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

4. cat

cat

Отображает содержимое указанного файла

Unix команда cat имеет три функциональные способности в контексте текстового файла:

  • Отображение содержимого файла
  • Объединение копий
  • Создание новых файлов

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

В следующем примере стандартный вывод cat перенаправляется с помощью оператора перенаправления вывода (который представлен угловой скобкой, направленной вправо > ) в файл somefile2 :

cat_2

Создание и копирование содержимого файлов с помощью cat

5. echo

Команда echo в Linux используется для отображения строки текста/строки, переданной в качестве аргумента. Команда echo является встроенной, она, в основном используется в shell-скриптах и пакетных файлах для вывода текста состояния на экран или в файл.

echo

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

6. touch

Команда touch используется для создания файла без какого-либо содержимого. Команда touch может использоваться, когда у пользователя на момент создания файла ещё нет данных о его содержимом.

touch2

Создание нового файла с помощью функции touch

Обратите внимание, на изображении выше мы использовали команду touch для создания файла, а cat - для его просмотра. Поскольку только созданный файл test.txt пуст, команда cat ничего не возвращает.

Есть несколько ключевых различий между cat и touch :

  • cat - используется для создания файла с содержимым.
  • touch - создаёт пустой файл, без содержимого. Помните, что файл, созданный с помощью touct - пуст. Эта команда полезна, когда у пользователя нет данных содержимого файла во время его создания.

7 mkdir

Как вы уже догадались, команда mkdir создаёт новую папку по текущему активному пути. Вместо того, чтобы создавать новую папку через редактор или в графическом интерфейсе, используйте эту команду.

mkdir2

Создание новой папки командой mkdir

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

7.1 rm

Команда rm выполняет удаление папки или файла.

rm

Удаление файла/папки командой rm

По умолчанию команда rm не удаляет папки. Для того, чтобы удалить папку командой rm нужно указать дополнительно флаг -rf .

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

7.2 rmdir

Команда rmdir удаляет именно папку, если в неё нет никакого содержимого.

rmdir

Удаление пустой папки командой rmdir

8. tail

Команда tail читает файл и выводит его последнюю, завершающую часть ("хвост").

tail

Выводим последние строчки содержимого файла

Команда tail полезна при просмотре отчетов о сбоях или длинных журналов логов. Вот пример его полезности при работе с файловыми логами:

9. wget

Мы ещё раньше разбирали работу с этой программой, рассматривая основные опции и возможность парсинга и сохранения сайтов с её помощью.

wget

Сохраняем главную страницу всеми нами любимого сайта

GNU Wget обладает множеством функций, облегчающих получение больших файлов или выкачивание всего веб-сайта или FTP-сайта. Wget обладает такими преимуществами, в том числе:

В одной из прошлыъ статей мы ужа рассматривали работу с Wget, и его пользу при парсинге сайтов. Советую ознакомиться с этой статьей подробнее по ссылке.

10. find

Команда find позволяет быстро найти файл или папку. Это полезно, когда вы работаете над большим проектом с сотнями файлов и папок.

find

Поиск файла с названием CallbackApiService.php

Поиск файлов определенного типа

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

find_js

Поиск всех файлов с расширением .js в директории

11. mv

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

mv_old

Перемещаем файл в другую папку

Резюме

Спасибо за чтение этой статьи, надеюсь, вы узнали что-то новое. Оставайтесь голодными и жадными к новым знаниям! В этой статье я рассмотрел основные unix команды терминала, которые каждый день используются при разработке, или деплое на сервер.

Я создал для вас небольшой справочник команд unix, которые обязан знать каждый разработчик, администратор, или обычный пользователь *unix-овых систем. Этот справочник покрывает все аспекты реального пользования операционной системой, и содержит: unix команды для копирования, создания, удаления и фильтра файлов.

Как создавать файлы в системе Linux: ультимативное руководство для начинающих

В Linux файловая система — это способ организации, управления, структурирования и хранения данных, что-то вроде карты, с помощью которой система ориентируется в файлах, сохраненных на физическом носителе. Все файловые системы с открытым исходным кодом относятся к категории файловых систем Linux. Ключевое отличие в том, что Linux абсолютно все компоненты обнаруживает как файл, даже сам по себе жесткий диск, Linux посчитает данными! Поэтому в линуксах, в отличии от Windows, нет никаких «диск E» или «диск С». Но в Linux есть домашний каталог, аналог «моего компьютера» из виндоуз, там хранятся все рабочие файлы. Внутри домашнего каталога или, как еще говорят, корневой директории, пользователи могут создавать файлы с помощью команд терминала или оболочки.

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

Создание файла на машине с Линуксом – это как демонстрация силы, как показать кто тут главный. И для этого есть множество способов, но, прежде чем приступить, давайте коснемся основ файловой системы Linux. Смотрите, внутри корневого каталога лежат папки с файлами: bin, boot, dev, home, lib, opt, usr, srv и т. д. Не пугайтесь мы не будем досконально изучать ВСЮ файловую систему, только основы, совсем чуть-чуть.

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

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

· Для Ubuntu

· Для Red Hat Type

· Для openSUSE

· Для Arch-подобных дистрибутивов

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


Если вы не хотите видеть перегруженную информацией диаграмму, вы можете просмотреть только основные каталоги с помощью этой команды


1. Команда cat

Команда concatenate или cat используется для создания одного или нескольких файлов. Это позволяет пользователям вместе создавать цепочки или серии файлов. Команда сat может создавать или отображать файлы из локального каталога. Она может просматривать один или несколько файлов. А также может сортировать файлы в зависимости от содержимого нескольких файлов.

Что бы использовать команду cat, или любую другую, для начала стоит открыть терминал. Поищите его с помощью вашего Linux Launcher, или используйте шорткат: Ctrl + Alt + T. Обычно терминал лежит в корневой директории, и файлы, созданные описанным здесь способом, будут сохраняться, соответственно, в корневую директорию. Что бы убедиться в этом, воспользуйтесь командой pwd, она выведет путь к текущей директории.

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

Здесь этот знак «>» (больше) известен как знак перенаправления; скоро я расскажу о нем более подробно.

(Зануда моуд от переводчика, который можно не читать, если ты сам не зануда: технически, команда cat ничего не создает, она выводит содержимое файла в поток, или, если вы захотите, она может последовательно вывести в поток содержимое нескольких файлов и слепить их в один. Операнд «>» записывает вывод, т.е. результат, команды в указанный файл, если указанный файл не существует, он его создаст. Таким образом, набранная в терминале команда cat > newfile101.doc действительно создаст файл с именем newfile101.doc, но сама по себе команда cat тут почти не причём)

2. Команда touch

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

Чтобы создать файл с помощью touch, наберите в терминале следующее:

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


3. Символ «>», известный как математическое больше или редирект (перенаправление)

Если вы системный администратор, вам может потребоваться каждый день создавать тонны файлов для обновления журналов. А что, если вы сможете создавать файлы из терминала, используя только знак «>» ? Обычно в Linux каждый файл связан с другим файлом, и эта связь отображается с помощью знака «>». Но в терминале, если вы поместите символ перенаправления перед именем несуществующего файла вместе с его расширением, он создаст пустой файл в локальном каталоге.

Чтобы создать файл, используя символ перенаправления, просто введите символ «>» в терминале и напишите имя файла. Вот и все! Вы получили свой желанный файл. Как и прежде, проверить наличие файла вы можете с помощью команды ls.


4. Команда echo

В Linux echo используется для помещения любого оператора или аргумента в любой файл. Если ранее был создан пустой текстовый файл, вы можете записать в него строку с помощью команды echo. Предположим, ранее я создал документ с именем newfile101.doc. Теперь я хочу записать в него строку «hello world».

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


5. Vim

Если вы программист и привыкли писать код в IDE, я уверен, что вы не раз слышали название Vim. Vim - текстовый редактор, используемый в интерфейсе командной строки, который, в том числе, пригоден для создания файлов. Чтобы создать файл с помощью vim, просто введите следующую строку в терминале.

Допустим, вы захотите создать файл с именем newfile106.txt, тогда все, что вам нужно для этого - ввод этой команды в терминал.

(Зануда моуд от переводчика: строго говоря команда откроет текстовый редактор vim, а в нем файл с указанным именем, если такого файла нет, она его создаст. И, вместо распространенных в интернете шуток типа «дед: ищет выход из vim», я вам лучше в двух словах расскажу, как файл сохранить и выйти. Воспользуйтесь командой :wq, она сохранит файл и выйдет из редактора. Ну и, если вы хотите подробный, четкий и весёлый гайд по vimу, вы там намекните как-нибудь в комментариях.)

Чтобы убедиться в том, что все сработало как надо - юзайте как и прежде ls lh.

6. Nano

Nano — это популярный текстовый редактор «Что видишь, то и получаешь» (WYSIWYG - What You See Is What You Get) в Linux. В кодировке UTF-8 Nano — это текстовый редактор обычного типа, также известный как GNU nano. Он весьма эффективен и полезен и может ускорить процесс написания кода. А чтобы создать файл с помощью nano, вам нужно продублировать командную строку, приведенную ниже.

(Зануда моуд: опять же, этой командой вы откроете этот файл в редакторе, если файл не существовал до сих пор, он будет создан. Что бы сохранить файл воспользуйтесь шорткатом: Ctrl+O, что бы выйти: Ctrl+X)

После создания файла вы можете просмотреть файл, используя команду ls или команду cat.


7. Команда printf

Все программисты по всему миру знают функцию printf. Чтобы создать текстовый файл с помощью команды printf, вам нужно использовать следующую запись в терминале.

(Зануда моуд: это команда, используется для форматирования данных, в качестве аргументов принимает методы форматирования и список элементов для форматирования. В конечном счете, команда, приведенная ниже, сработает, но напрашивается сравнение про гвозди и микроскопы.)

Для просмотра типа файла и содержимого файла из терминала ls и cat вам в помощь:

8. Команда head

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

Предположим, что я хочу открыть некий файл логов. Для этого я могу открыть список файлов из терминала. А затем использовать команду head для вывода первых 10 строк этого файла. 10 строк – это дефолтный параметр и его легко поменять с помощью соответствующего аргумента.


9. Команда tail

Команда tail аналогична команде head. Единственное отличие заключается в том, что команда tail выводит последние 10 строк файла, вместо первых. Эта команда обычно используется для просмотра последнего вывода данных в датасете, например.

Например, если вы захотите вывести в поток последние 10 строк файла fontconfig.log.

10. Команда truncate

В Linux команда truncate используется для уменьшения или увеличения размера файла. Давайте сначала создадим текстовый файл с помощью touch, а затем посмотрим, как увеличить размер этого файла с помощью truncate.

В примере ниже я создаю файл newfile112.txt. Затем с помощью команды truncate я задаю ему размер 1024 Кб (1 Мб). Еще ниже, используя ту же команду, я снова меняю размер файла до 1.5 Мб.


Создание файлов определенного размера в Linux

Иногда админам нужны файлы конкретного размера, чтобы проверить возможности хранения, скорость сети или производительность системы. Такие файлы – что-то вроде заглушки или типографской рыбы, просто тест для проверки работы базы данных. Вот зачем стоит уметь создавать файлы определенного размера. Ниже мы рассмотрим некоторые методы создания таких тестовых файлов.

1. И снова truncate.

Выше мы только что узнали, как увеличить размер файла с помощью команды truncate. Помимо увеличения размеров файлов, вы можете создавать файлы точного размера с помощью этой команды. Здесь я собираюсь показать, как создать файл размером 25M с помощью этой команды. Откройте терминал и введите команду, приведенную ниже.

2. Команда fallocate

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

Допустим, вы хотите создать файл размером 20 КБ. Для этого вам следует произвести вот такое нехитрое математическое действие 20 * 1024 = 20480 КБ.

(А режим зануды и мануал команды говорят нам, что за аргументами офсета и длинны файла может следовать мультипликативный суффикс. KiB (=1024), MiB (=1024*1024) и далее по тексту. И еще, к слову, окончание «iB» опционально, просто K будет значить ровно тоже самое, что и KiB, вуаля, и не надо в математику.)

3. Еще раз про head

Из первой части этой статьи мы уже знаем, что команда head может вывести 10 первых строк логфайла или текста. А сейчас я покажу вам, как вы можете использовать команду head для создания файлов заданного размера. Здесь следует отметить, что каждый файл имеет некоторую системную зарезервированную часть. Вот почему, если вы создадите файл размером 100 МБ, он не будет содержать сто мегабайт данных, из-за системного резервирования.

(благодаря нашей постоянной рубрике «зануда моуд», вы уже и сами догадываетесь какая часть приведенной команды отвечает за создание файла, да?)

4. Perl

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения. Название языка официально расшифровывается как Practical Extraction and Report Language («практический язык для извлечения данных и составления отчётов») Он сочетает в себе некоторые из лучших функций sed, awk и sh, что делает его привычным и простым в использовании для пользователей Unix, чтобы быстро находить решения назойливых проблем.

Теперь я собираюсь показать, как создать файл определенного размера с помощью команды perl. Я выделяю размер файла до 1К.

(«Ну, вы понели», - говорит зануда моуд – это все еще операнд > создает вам необходимый файл, без него команда perl -e'print "a" x 1024' выведет на экран строку «а» в 1024 бита весом. Да, это работает, вопрос только в общем КПД такого действия.)

5. Команда xfs_mkfile

Команда xfs_mkfile — это быстрая команда для создания файла определенного размера в Linux. Здесь термин xfs — это краткая форма высокопроизводительной файловой системы журналирования, а mkfile — это синтаксис Linux, который позволяет пользователям задавать размер файла в байтах, килобайтах, мегабайтах или гигабайтах.

Последние мысли

Изучение файловой системы Linux помогает нам понять иерархию слоев или файловой системы. Создание файлов с помощью шелл-команд— это первый урок изучения файловой системы Linux. Терминальные команды помогают пользователям взаимодействовать с основными файлами. В этом посте описано несколько полезных команд, с помощью которых можно создавать файлы. Для лучшего понимания каждая команда поясняется краткой заметкой и примером. Все эти команды очень просты, и, если вы системный администратор, вам стоит изучить их все.


netconf (как root) Очень хорошая программа настройки сети, использующая для интерактивной работы с пользованием, текстовое меню.
ping [имя_машины] "Проверка на вшивость". Есть или нет контакта с другой машиной (в качестве параметре команде можно передавать сетевое имя машины или IP адрес), нажмите -C когда вся требуемая информация будет получена.
route -n Вывести таблицу маршрутизации (the routing table).
ipfwadm -F -p m Настроить firewall.
ifconfig (как root) Вывести информацию о текущих сетевых интерфейсах (ethernet, ppp, и т.д.) Ваша первая ethernet плата плата будет показана как eth0, вторая как eth1, первый ppp модем как ppp0 и так далее. "lo" - расшифровывается как "loopback only" сетевой интерфейс, который должен быть постоянно активирован. Используйте соответствующие опции (смотрите результат выполнения ifconfig --help) для настройки сетевых интерфейсов.
ifup [имя_сетевого_интерфейса] (/sbin/ifup при работе под обычным пользователем) Активизация соответствующего сетевого интерфейса. Например:
ifup eth0
ifup ppp0
Пользователь может активизировать и выключить сетевое интерфейс ppp только когда установлены соответствующие права доступа (права можно установить в процессе настройки ppp через "netconf")
ifdown [имя_сетевого_интерфейса] (/sbin/ifdown при работе под обычным пользователем). Диактивизация соответствующего сетевого интерфейса..

Простейшие действия


ls Список файлов в текущей директории. Команда выполнении команды dir выполняется команда ls.
cd [директория] Сменить директорию.
cp [что копировать][куда копировать] Копировать файлы.
mcopy [что копировать][куда копировать] Копировать файлы при работе с файловой системой dos (монтировать диска dos необязательно). Например: mcopy a:\autoexec.bat


ps (=print status) Вывести список текущих процессов с их IDs (PID) идентификаторами. Используйте
ps axu
для того чтобы отобразить все процессы запущенные на вашей системе, которые имеют вас в качестве хозяина (это касается и процессов которые отцеплены от терминала).
fg [PID] Вернуть фоновый или приостановленный процесс в интерактивное (высокоприоритетное) состояние;
bg [PID] Сделать процесс фоновым. Обратная функция от fg. Может следовать вслед за комбинацией z.
kill [PID] "Убить" процесс. Для начала определите PID "убиваемого" процесса при помощи ps.
killall [имя_программы] "Убить" все процессы по имени программы.
xkill (в терминале X window) "Убить" процесс, на окно которого укажите курсором.
lpc (как root) Проверить очередь принтера.
lpq Вывести список очереди заданий на печать.
lprm [Номер Задание] Удалить задание из очереди на печать.
nice [имя_программы] Запустить процесс, установив его приоритет.
renice [PID] Изменить приоритет процесса.

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