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

Примеры использования file

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

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

Как видно на примере, картинки с расширениями gif и tiff в действительности оказались текстовыми документами, а архив с расширением zip — PDF документом. Кстати, команда file даёт возможность не только проверить, является ли архив архивом, но и заглянуть внутрь, чтобы узнать, что в нём содержится. Для этой цели используется опция -z:

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

Иногда нужно узнать не просто тип файла, а его MIME-тип. В таком случае на помощь приходит опция -i:

Нередко по каким-либо причинам утилита не может найти указанный файл: например, вы ошиблись буквой в его названии или неверно указали папку, в которой он находится. Тогда вывод информации об этом файле предваряет фраза cannot open. Впрочем, есть возможность видоизменить результат, добавив в него сообщение об ошибке. Для этого используйте опцию -E.

Сравните вывод команды с опцией -E и без неё:

Еще один способ работы с утилитой file — запись названий и адресов документов в простой текстовый файл. Применяя этот способ на практике, не забывайте добавлять к команде опцию —files-from, после которой указывайте имя файла, содержащего список документов, и путь к нему.

Виды программ в Linux

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

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

  • Бинарные программы — содержат инструкции процессору уже готовые к выполнению, большинство программ находятся в таком формате, они быстрые и выполняются сразу же системой;
  • Программы на байт-коде — это уже не процессорные инструкции, а инструкции определенной виртуальной машины, которая может их выполнять, без виртуальной машины такие команды не могут быть выполнены. Такие программы потребляют больше ресурсов, но тоже достаточно быстрые, их преимущество в том, что они могут выполняться без изменения везде где может работать виртуальная машина. К таким программам можно отнести программы на Java.
  • Скриптовые программы — эти программы состоят из набора команд в виде обычного текста, которые выполняет специальный интерпретатор. Такие программы более медленные, но зато они проще в разработке и их код можно легко и быстро изменить.

А теперь перейдем к запуску программ.

Редактирование файлов

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

Чтобы переместить курсор на определенную строку и номер символа, используйте команду . Меню в нижней части экрана изменится. Введите число (а) в поле «Введите номер строки, номер столбца:» и нажмите .

Поиск и замена

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

Если вы хотите найти и заменить, нажмите . Введите поисковый запрос и текст, который нужно заменить. Редактор перейдет к первому совпадению и спросит, заменить ли его. После нажатия или он перейдет к следующему матчу. Нажатие заменит все совпадения.

Копирование, резка и склеивание

Чтобы выделить текст, переместите курсор в начало текста и нажмите . Это установит отметку выбора. Переместите курсор в конец текста, который хотите выделить, с помощью клавиш со стрелками. Выбранный текст будет выделен. Если вы хотите отменить выделение, нажмите

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

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

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

Мониторинг папки и выполнение задачи

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

Прежде чем мы начнем, нам нужен каталог для хранения файлов, которые уже были обработаны. Создайте каталог с именем «processed» — обработано:

1 mkdir processed

Затем создайте новый скрипт с именем «watch-incoming.sh» и добавьте в него следующее:

1
2
3
4
5
6
7
8
9
10
11
12

#!/bin/bash
 

TARGET=~/incoming/

PROCESSED=~/processed/
 

inotifywait-m-ecreate-emoved_to—format»%f»$TARGET\

|whileread FILENAME

do

echo Detected$FILENAME,moving andzipping

mv»$TARGET/$FILENAME»»$PROCESSED/$FILENAME»

gzip»$PROCESSED/$FILENAME»

done

Сценарий выполняет команду inotifywait с параметром -m. Каждый раз, когда обнаруживается новое событие, имя файла передается команде чтения и вводится в переменную «FILENAME». Выполняется блок в цикле while, в котором файл сначала перемещается в «обработанный» каталог, а затем распаковывается. Исходный файл заменяется сжатым файлом, а имя файла заканчивается на «.gz».

Давайте предоставим права на выполнение этого скрипта и запустим его из нашего домашнего каталога.

1
2

chmodu+xwatch-incoming.sh

./watch-incoming.sh

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

Необработанный текстовый файл, который мы скопировали в папку «incoming», был обнаружен сценарием, скопирован в папку «processed» и затем сжат с помощью gzip.

Теперь мы можем выполнять некоторые интересные задачи. Например, мы могли бы наложить водяной знак на файлы изображений, сжать оригинальные видео в формат mp4 и даже загрузить каждый новый файл, который мы видим, в корзину Amazon S3. Этот сценарий является хорошей отправной точкой для развертывания ваших собственных рабочих процессов и автоматизации общих задач в вашей системе.

Просмотр файлов Linux в сжатом файле

Бывает что вы находите файлы с форматом gz. Это так называемые «сжатые» файлы. Они могут использоваться для множества программ, конфигурации информации ядер и логов для программ. Для того чтобы открыть файл в Linux не распаковывая его есть огромное количество хороших утилит. Но мы расскажем только про самые удобные  и понятные для новичка. Обычно используются такие как zless, zcat, zgerp и zegrep.

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

Или например более интересный пример, сначала распаковываем а затем копируем информацию из файла в текущую директорию:

Вы также можете использовать утилиту less для сжатых файлов:

Если вам нужно будет отфильтровать информацию в сжатом файле, то для этого также есть утилиты. Используйте zgrep и zegrep. Например, чтобы найти в сжатом файле какие-то ошибки:

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

Команда more.

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

Откроем для просмотра текстовый файл:

Теперь можно управлять просмотром текста с помощью нажатия следующих кнопок на клавиатуре:

SPACE Переместиться на одну страницу вниз
ENTER Переместиться на одну строку вниз
d Переместиться на полстраницы вниз
b Переместиться на одну страницу вверх
h Помощь
q Выход

У команды more есть и опции.

Если мы хотим читать текст по определенному количеству строк, то указываем — (тире/минус) и количество строк:

Если хотим начать чтение с определенной строки, то указываем + (плюс) и номер строки, с которой нужно начать чтение:

У команды more очень много недостатков. Нельзя читать текст вверх, только вниз. Текст остается в терминале после просмотра. Поэтому и была разработана less.

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

Все, что нужно для разрешения проблем, связанных с правами в Linux.

  • sudo — выдает права суперпользователя. Используется перед любой другой командой в терминале, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt-get update. При этом система запросит пароль администратора.
  • sudo su — переводит терминал в режим суперпользователя. В нем каждая введенная команда будет восприниматься системой так, будто перед ней ввели sudo. Помогает запускать несколько скриптов и утилит, требующих права администратора, без необходимости постоянно корректировать их или вводить пароль от учетной записи.
  • sudo gksudo — используется для запуска графических утилит от имени администратора. В Windows для этого есть специальная кнопка в контекстном меню, а в Linux — префикс. Синтаксис такой:
​sudo gksudo название приложения, нуждающееся в запуске от имени администратора
  • sudo !! — запускает предыдущую команду от имени администратора. Используется, если до этого была неудачная попытка запустить программу. Помогает не тратить время на повторный ввод большого количества символов.
  • chmod — корректирует права доступа к выбранному файлу. Применяется исключительно с набором аргументов, обозначающих список прав. Допустим, я хочу выдать права на чтение и запись файла Timeweb.html на рабочем столе. Для этого введу в терминал: chmod 777 ~/Desktop/timeweb.html. Теперь его можно открывать и редактировать. Аналогичным образом пользователи поступают с системными файлами, когда приходит время что-то в них менять. По умолчанию большая их часть защищена от записи.
  • chown — назначает владельца для выбранной директории, документа, картинки или любого другого элемента в файловой системе. Синтаксис следующий:
chown имя учетной записи, которому надо передать права путь до файла, права на который нужно передать

Типы файлов в Linux

В

Linux

всё является файлами и tty терминалы не исключение.

Выполните

ls -l $(tty)

Или аналогичную команду

ls -l /dev/pts/1

crw—w—-. 1 andrei tty 136, 1 Nov 19 12:43 /dev/pts/1

Первый символ — это тип файла.

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

— : regular file

d : directory

c : character device file

b : block device file

s : local socket file

p : named pipe

l : symbolic link

Тип c означает character. То есть этот файл может
принимать и показывать символы

Если выполнить

ls -ld /etc

drwxr-xr-x. 118 root root 8192 Nov 19 11:02 /etc

Видно, что тип файла d. То есть directory

Для просмотра дисков/блоков выполните

lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 8G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 7G 0 part
├─centos-root 253:0 0 6.2G 0 lvm /
└─centos-swap 253:1 0 820M 0 lvm
sr0 11:0 1 57.7M 0 rom /run/media/andrei/VBox_GAs_6.1.10

Если выполнить

ls -l /dev/sda*

brw-rw—-. 1 root disk 8, 0 Nov 19 11:02 /dev/sda
brw
-rw—-. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1
brw-rw—-. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

Можно убедитсья, что тип файлов b. То есть block

? означает что должен быть один любой символ.

ls -l /dev/sda?

brw-rw—-. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1
brw-rw—-. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

означает что должен быть либо символ 1 либо символ 2

ls -l /dev/sda

brw-rw—-. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1
brw-rw—-. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

Когда вы хотите узнать версию системы вы можете выполнить

ls -l /etc/system-release

lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release

Тип файла l означает link то есть это не настоящий файл, а ссылка

Выполните

ls -l /etc/system-release /etc/centos-release /etc/redhat-release

-rw-r—r—. 1 root root 37 Oct 23 17:53 /etc/centos-release
lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/redhat-release -> centos-release
lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release

/etc/centos-release — это настоящий (regular) файл а остальные — ссылки на него.

Если бы вы пользовались redhat то настоящим был бы redhat-release

Ещё один способ получить информацию о версии — выполнить lsb_release -d где -d означает description

lsb_release -d

Description: CentOS Linux release 7.9.2009 (Core)

Использование инструмента Pyrenamer GUI

Pyrenamer — еще один удобный инструмент, который можно использовать для переименования нескольких файлов в Linux. Для установки этого инструмента в Ubuntu выполните:

Чтобы открыть Pyrenamer, выполните:

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

Чтобы изменения вступили в силу, необходимо нажать на кнопку Переименовать.

Оригинал статьи — https://linoxide.com/linux-how-to/how-to-rename-files-in-linux/

Если вы хотите освоить профессию системного администратора Linux, но не уверены в своих силах, советуем посмотреть программу практикума Linux by Rebrain.

Команда cat.

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

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

Например:

Чтобы отобразить номера строк, нужно использовать опцию -n:

С помощью перенаправления стандартного потока вывода мы можем делать интересные вещи.

К примеру, можно создать копию текущего файла:

Можно добавить текст из одного файла в другой:

Можно объединить несколько файлов в один:

Как упоминалось выше, |less и |more можно использовать для просмотра стандартных потоков вывода. Команда cat не исключение:

Базовые команды Linux

pwd для показа текущей рабочей директории

Откройте консоль и введите туда

pwd

У меня вывелось:

/home/mial

Здесь (первый слеш) – это корень, home – это название папки (директории), далее (второй слеш) – отделяет название вложенной папки, mial – название второй вложенной папки.

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

mkdir для создания новых директорий

После mkdir укажите название папки, которую вы хотите создать. Если вы укажите относительный путь, например, так:

mkdir test1

То будет создана новая папка test1 в текущей рабочей директории, т.е. в моём случае путь до неё будет

/home/mial/test1

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

mkdir /home/mial/test2

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

ls
test1  test2  test.sh  Видео  Документы  Загрузки  Изображения  Музыка  Общедоступные  Рабочий стол  Шаблоны

Теперь мы можем убедиться, что папки test1 и test2 действительно были созданы.

Чтобы список выглядел лучше, можно использовать команду ls с опцией -l

ls -l

После команды и опций можно указать путь до папки, содержимое которой вы хотим посмотреть. Чтобы увидеть содержимое директории /var/log нужно ввести:

ls -l /var/log

Для просмотра содержимого корневой директории:

ls -l /

cd для перехода по папкам (смены текущей рабочей директории)

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

cd test1
cd /home/mial/test2

Символ . (одна точка) означает текущую директорию, а символ … (две точки) означаете родительскую директорию. Следовательно, для перехода на один уровень вверх нужно набрать

cd ..

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

Если вам нужно скопировать файл в другую директорию, то используется команда cp. После неё указывается файл, который нужно скопировать и затем через пробел директория, куда вы хотите поместить файл, например:

cp test.sh test1

Этой командой я скопировал файл test.sh в директорию test1. Проверим

ls -l test1
итого 4
-rw-r--r-- 1 mial mial 84 дек 11 15:48 test.sh

mv для переименования и перемещения файлов.

После команды mv указывается имя файла, который вы хотите переименовать или переместить. Затем через пробел пишется директория, куда вы хотите переместить файл (тогда файл будет перемещён в неё с исходным именем), или директория и новое имя файла (тогда файл будет перемещён и переименован), или только новое имя файла (тогда файл будет переименован).

Файл test.sh из каталога test1 я переместил в каталог test2:

mv test1/test.sh test2

Файл test.sh в каталоге test2 я переименовал в test2.sh:

mv test2/test.sh test2/test2.sh

Файл test2.sh в каталоге test2 я переместил в каталог test1 и присвоил ему имя new.txt:

mv test2/test2.sh test1/new.txt

rm для удаления файлов и папок

Чтобы удалить наши тестовые директории, воспользуемся командой rm. После этой команды укажите путь до файла или папки, которые нужно удалить. Если вы собираетесь удалить директорию, то используйте также опцию -r, она означает рекурсивно удалять каталоги и их содержимое. Можно указать сразу несколько файлов и (или) каталогов:

 rm -r test1 test2

Для понимания иерархии файловой системы рекомендуется ещё одна статья для новичков «Структура директорий Linux. Важные файлы Linux».

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

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

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

Используйте следующий синтаксис для создания текстового файла через этот символ:

$ > filename.txt

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

Можно ввести текст в файле через любимый текстовый редактор. В следующем примере я использую Редактор Vim для редактирования файла посредством следующей команды:

$ vim MyTextFile.txt

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

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

Как переименовать файл в терминале

Терминал может показаться пугающим, но он имеет много преимуществ. Команды терминала обычно одинаковы для разных версий Linux. Следующие команды переименования работают независимо от выбранной вами настольной операционной системы Linux или окружения рабочего стола. Он также работает на серверах без какого-либо рабочего стола вообще.

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

Переименование файлов с помощью команды Linux ‘mv’

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

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

Примечание. Если вы действительно хотите переместить файлы с помощью команды mv , а не вводить новое имя файла, вместо этого введите целевой каталог.

Переименование файлов с помощью команды Linux «переименовать»

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

Допустим, у вас есть набор текстовых файлов (TXT), которые вы хотите превратить в файлы Markdown (MD). Во-первых, как в приведенном выше примере, используйте команду cd для перехода в соответствующую папку (в качестве альтернативы вы можете использовать Правый клик> Открыть в терминале ). Затем введите следующую команду:

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

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

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

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

Редактирование текстовых файлов

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

Скорее всего у вас уже установлен либо nano либо

vi

Создать новый файл можно командой touch

touch new_file

Удалить файл можно командой rm

rm new_file

Создать сразу несколько файлов:

touch file1 file2 file3 file4

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

touch ‘file with spaces in name’

Создать новую директорию можно командой mkdir

mkdir расшифровывается как Make Directory

mkdir new_folder

Если нужно создать вложенные директории — воспользуйтесь флагом -p (parent)

mkdir -p city/district/street

Чтобы создать директорию и сразу туда перейти используйте

mkdir example && cd $_

Чтобы выйти из текущего процесса нажмите CTRL + C

Лучше не использовать следующие символы для названий файлов и папок:

‘ » ` { } ( ) < > ! ? & ] : ; \ ^
$ @ ~ * #

Попробуйте открыть файл с помощью cat -vet

cat -vet somefile

Можно увидеть, что в конце строки стоит $ а также кодировку кириллических символов.

ls — просмотр содержимого папки

Команда ls позволяет вывести список файлов заданной папки, по умолчанию, будет выведен список файлов текущей папки:

ls

  • Вы можете вывести список файлов из всех подкаталогов рекурсивно, для этого используйте опцию -R:
  • ls -R
  • Чтобы вывести список файлов нужной папки, вы можете передать ее адрес утилите, например, /home:
  • ls /home

Чтобы получить больше информации и вывести все имена файлов в виде списка используйте опцию -l:

ls -l /home/

2. cd — изменить папку

Команда cd позволяет изменить текущую папку на другую. По умолчанию, текущей считается домашняя папка, например, cd Desktop меняет папку на рабочий стол, если вы выполните ее из домашнего каталога:

cd Desktop

Вы также можете указать полный путь к папке:

cd /usr/share/

Команда cd … переходит в папку, которая находится выше на одну в файловой системе:

cd …

Вы также можете вернуться в предыдущую рабочую папку:

cd —

3. rm — удалить файлы

Команда rm позволяет удалить файл. Будьте очень осторожны с ней, она не будет спрашивать подтверждения:

rm file

Например, rm file удалит файл с именем file, который находится в текущей папке. Как и в предыдущих вариантах, вы можете указать полный путь к файлу linux. Например:

  1. rm /usr/share/file
  2. Если вы хотите удалить папку, то нужно использовать опцию -r. Она включает рекурсивное удаление всех файлов и папок на всех уровнях вложенности:
  3. rm -r /home/user/photo/
  4. Будьте осторожны, потому что эта команда удаляет файлы безвозвратно.

4. rmdir — удалить папку

Команда rmdir позволяет удалить пустую папку. Например, команда rmdir directory удалит папку directory, которая находится в текущей папке:

rmdir directory

Если вам нужно удалить папку с файлами, то нужно использовать утилиту rm вместе с опцией -r.

5. mv — перемещение файлов

Команда mv перемещает файл в новое место. Она также может использоваться для переименования файлов. Например, mv file newfile переименует файл file в newfile:

mv file newfile

Чтобы переместить файл в другую папку нужно указать путь к ней, например, переместим файл file в папку /home/user/tmp/

mv file /home/user/tmp/

6. cp — копирование файлов

Эта cp и mv — это похожие команды linux для работы с файлами. Они работают аналогичным образом, только исходный файл остается на своем месте.

cp file newfile

Вы также можете рекурсивно скопировать всю папку с помощью команды cp -r. Эта команда скопирует всю папку вместе со всеми файлами и вложенными папками в новое место. Например, скопируем папку /etc/:

cp -r /etc /etc_back

7. mkdir — создать папку

  • Команда mkdir позволяет создать новую папку mkdir test создаст папку в текущем каталоге:
  • mkdir test
  • Если нужно создать папку в другом каталоге, укажите полный путь к нему:
  • mkdir /home/user/test

8. ln — создание ссылок

Утилита ln позволяет создавать жесткие и символические ссылки на файлы или папки. Для создания символической ссылки используется опция -s. Например, вы создадим ссылку на папку с загрузками:

  1. ln -s /home/user/Downloads/ /home/user/test/
  2. Для создания жесткой ссылки никаких опций задавать не нужно:
  3. ln /home/user/Downloads/ /home/user/test/

9. chmod — изменить права

chmod позволяет изменить права доступа к файлам. Например, chmod +x script.sh добавляет флаг исполняемости к файлу script.sh:

  • chmod +x  script.sh
  • Чтобы убрать флаг исполняемый используйте опцию -x:
  • chmod -x script.sh
  • Подробнее о том, как работают разрешения для файлов смотрите в статье права доступа к файлам в Linux.

10. touch — создать файл

  1. Команда touch создает пустой файл. Например, touch file создаст пустой файл в текущей папке с именем file:
  2. touch file
  3. Для создания файлов через терминал существует еще несколько команд, они рассмотрены в статье как создать файл в linux.

# 1 – Cat

Cat — популярная и простая команда для вывода содержимого файла на терминал.

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

cat  имя файла

$ cat /etc/pamac.conf
### Pamac configuration file
## When removing a package, also remove those dependencies
## that are not required by other packages (recurse option):
#RemoveUnrequiredDeps
## How often to check for updates, value in hours (0 to disable):
RefreshPeriod = 6
## When there are no updates available, hide the tray icon:
NoUpdateHideIcon
## When applying updates, enable packages downgrade:
#EnableDowngrade
## When installing packages, do not check for updates:
#SimpleInstall
## Allow Pamac to search and install packages from AUR:
EnableAUR

Cat прост, но эффективен при использовании с другими опциями. Чтобы узнать, как использовать команду cat, прочтите -> man cat.

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

Один из способов упростить работу cat — использовать дополнительно утилиту less.

Синтаксис и опции file

Синтаксис команды file достаточно простой. Записывать её в эмуляторе терминала или консоли следует так:

file опции название_документа

Что же касается опций, то их у этой команды несколько десятков. Мы рассмотрим лишь основные:

  • -b, —brief — запрет на демонстрацию имен и адресов файлов в выводе команды;
  • -i, —mime — определение MIME-типа документа по его заголовку;
  • —mime-type, —mime-encoding — определение конкретного элемента MIME;
  • -f, —files-from — анализ документов, адреса которых указаны в простом текстовом файле;
  • -l, —list — список паттернов и их длина;
  • -s, —special-files — предотвращение проблем, которые могут возникнуть при чтении утилитой специальных файлов;
  • -P — анализ определенной части файла, которая обозначается различными параметрами;
  • -r, —raw — отказ от вывода /ooo вместо непечатных символов;
  • -z — анализ содержимого сжатых документов.

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

Перенаправление вывода

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

> удалит из файла предыдущие записи

Если вы выполните перенаправление два раза в один и тот же файл. Останется только последнее

Как видите, запись про ноутбуки не сохранилась

Как добавить запись в конец файла Bash

Чтобы не перезаписывать а добавлять новую строку нужно воспользоваться
>>

Результат работы команды можно направить в другую команду.

Если вы делаете листинг директории с большим количеством файлов
командой ls, например ls /usr/bin
результат не поместится на один экран.

Может быть удобно сразу направить этот вывод в less

ls /usr/bin | less

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

grep

Допустим, у вас есть список партнёров сайта

andreyolegovich.ru

, который называется

partners.txt
.

Если выполнить

less partners.txt

Список получится очень длинным

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

Допустим, вы хотите найти всех партнёров категории Android

grep Android partners.txt

Этот список можно отсортировать в алфавитном порядке и сохранить в
файл

android_partners.txt

grep Android partners.txt | sort > android_partnets.txt

cat android_partners.txt

Подсчитаем сколько в этом списке партнёров в категории Education.

cut -f 2 partners.txt | grep Education | wc -l

4

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: