- Выполнение команд через shell-скрипты в Linux
- Требования
- Начало работы
- Создание и запуск базового shell-скрипта
- Использование переменных в скриптах
- Чтение ввода из командной строки
- Определение функций
- Заключение
- Как открыть файл в терминале Linux
- Команды cat и tac
- Команды head и tail
- Команды more и less
- Команда most
- Текстовый редактор Nano
Выполнение команд через shell-скрипты в Linux
Оболочка — это интерпретатор командной строки, который позволяет пользователю взаимодействовать с системой. Он отвечает за получение входных данных от пользователя и вывод данных.
Сценарии оболочки — это серия команд, записанных в порядке выполнения. Сценарии могут содержать функции, циклы, команды и переменные. Они упрощают сложные серии команд и повторяющиеся задачи.
В этом мануале мы разберем, как создавать и выполнять сценарии оболочки для командной строки в Linux.
Требования
- Умение пользоваться терминалом.
- Знание текстового редактора.
- Знание команд: chmod, mkdir и cd.
Читайте также:
Начало работы
Скрипты оболочки нужно сохранять с расширением .sh.
Файл должен начинаться с шебанга (#!), чтобы система Linux понимала, какой интерпретатор использовать для сценария оболочки.
В этом мануале предполагается, что вы используете среду bash.
В скриптах также могут содержаться комментарии, они нужны для упрощения их читаемости. Удобный сценарий всегда содержит комментарии, которые помогают понять принцип работы скрипта и причины выбора тех или иных команд.
Создание и запуск базового shell-скрипта
Скрипт оболочки можно создать с помощью редактора vi, команды cat или текстового редактора.
Мы будем создавать с помощью vi:
Команда запустит редактор vi и создаст файл basic_script.sh.
Затем нажмите i на клавиатуре для запуска INSERT MODE. Добавьте следующие строки:
Скрипт запускает команды whoami и date. Команда whoami отображает активное имя пользователя, а date — текущую системную метку времени.
Чтобы сохранить и выйти из редактора vi:
Теперь можно запустить сценарий с помощью команды:
root Fri Jun 19 16:59:48 UTC 2020
Первая строка вывода соответствует команде whoami, а вторая команде date.
Можно запустить скрипт без указания bash:
Запуск файла таким образом может потребовать разрешение пользователя. Запуск с помощью bash не требует этого разрешения.
~bash: ./basic_script.sh: Permission denied
Команда bash filename требует только прав на чтение.
Команда ./filename запускает файл как исполняемый и требует разрешения execute.
Для выполнения сценария нужно обновить привилегии.
Эта команда применит chmod и дает права x (исполнение) текущему пользователю.
Использование переменных в скриптах
Скрипты могут включать пользовательские переменные. По мере увеличения размера сценариев важно иметь четко определенные переменные с информативными именами.
Добавьте в скрипт следующие строки:
#!/bin/bash # This is a comment # defining a variable GREETINGS="Hello! How are you" echo $GREETINGS
GREETINGS — это переменная, определенная с помощью символа $ (знак доллара). В строке, в которой переменным присваивается значение, не должно быть пробелов.
На экран выведется присвоенное переменной значение:
Как видите, переменная GREETINGS успешно определена в сценарии и доступна при запуске скрипта.
Чтение ввода из командной строки
Shell-скрипты можно сделать интерактивными с возможностью принимать ввод из командной строки. Сохранить ввод командной строки в переменной можно с помощью команды read.
Добавьте в скрипт следующие строки:
#!/bin/bash # This is a comment # defining a variable echo "What is your name?" # reading input read NAME # defining a variable GREETINGS="Hello! How are you" echo $NAME $GREETINGS
Переменная NAME принимает ввод из командной строки. Этот скрипт ожидает, пока пользователь введет значение NAME. Затем он выводит NAME и GREETINGS.
What is your name? 8host 8host Hello! How are you
В примере пользователь ввел значение 8host.
Определение функций
Пользователи могут определять свои функции в сценариях. Эти функции могут принимать несколько аргументов.
Добавьте в скрипт следующие строки:
#!/bin/bash #This is a comment # defining a variable echo "What is the name of the directory you want to create?" # reading input read NAME echo "Creating $NAME . " mkcd () mkdir "$NAME" cd "$NAME" > mkcd echo "You are now in $NAME"
Этот скрипт запрашивает имя каталога. Затем он c помощью mkdir создает требуемый каталог и переходит в него.
What is the name of the directory you want to create? test_dir Creating test_dir . You are now in test_dir
В данном примере мы ввели test_dir. Далее скрипт создаст новый каталог с этим названием. Наконец, скрипт перейдет из текущего рабочего каталога пользователя в test_dir.
Заключение
В этом мануале мы разобрали, как создавать и запускать скрипты оболочки для командной строки в Linux.
Подумайте о повторяющихся или отнимающих много времени задачах, которые вы часто выполняете – возможно, такие команды полезнее заменить скриптами.
Как открыть файл в терминале Linux
В Linux все настройки программ и самой операционной системы хранятся в текстовых документах. Также в текстовых документах сохраняются логи и другие необходимые данные. Поэтому при работе с Linux постоянно приходится просматривать и редактировать подобные текстовые и конфигурационные файлы.
В данной инструкции мы расскажем о том, как открыть файл в терминале Linux и какие команды для этого можно использовать. Материал будет актуален для любого дистрибутива Linux, включая Ubuntu, Debian, Kali Linux, CentOS и т.д.
Команды cat и tac
Если вам нужно открыть файл в терминале Linux, то для этого предусмотрено множество простых и эффективных способов. Пожалуй, самая часто используемая команда такого рода – это команда « cat ».
Чтобы использовать ее просто введите « cat » и название файла. Например, если вам нужно просмотреть содержимое файла « file_name.txt », то команда должна выглядеть вот так:
После выполнение данной команды все содержимое указанного файла будет выведено в терминал Linux. Данный способ вывода удобен для быстрого просмотра небольших файлов.
При использовании команды « cat » может понадобиться нумерация строк. В этом случае команду нужно вводить с параметром « -n ».
Также есть команда « tac », которая открывает файлы точно также как « cat », но выводит строки в обратном порядке (начиная с конца).
Обратите внимание , для того чтобы узнать больше о « cat » и « tac », а также других командах Linux, введите в терминал « man » (от англ. manual) и через пробел название интересующей вас команды, например, « man tac ». Это выведет подробную информацию о команде и список всех поддерживаемых параметров.
Команды head и tail
Если нужно открыть в терминале Linux большой файл, то вместо команды « cat » можно использовать « head » или « tail ». Данные команды выводят в терминал только часть файла. В случае « head » выводится только начало документа, а в случае « tail » только конец.
Чтобы открыть файл с помощью данной команды просто введите « head » или « tail » и название файла:
head file_name.txt tail file_name.txt
По умолчанию команды « head » и « tail » выводят по 10 строк с начала или конца файла. Но, при необходимости это значение можно изменить при помощи параметра « -n ». Для этого вводим « -n » и число строк (не отделяя пробелом). Выглядит это примерно так:
head -n3 file_name.txt tail -n5 file_name.txt
Кроме этого, вы можете ограничить количество информации, которую выводят команды « head » и « tail », указав значение в байтах. Для этого нужно использовать параметр « -c ». Например, чтобы вывести 100 байт нужно добавить параметр « -c » и указать значение 100 (не отделяя пробелом). Выглядит это примерно так:
head -c100 file_name.txt tail -c200 file_name.txt
Команды « head » и « tail » имеют общий набор параметров, но у « tail » есть уникальный параметр « -f », которого нет у « head ». При вызове « tail -f file_name.txt » выводимая информация будет автоматически обновляться. Это может быть удобно для наблюдения за логами.
Команды more и less
Для открытия больших файлов в терминале Linux можно использовать команды « more » и « less ». Команда « more » открывает файл в терминале Linux и позволяет пролистывать его только вниз при помощи клавиш Enter (одна строка вниз) и Space (страница вниз). Пролистывания вверх нет, поэтому, если вы случайно проскочили нужное вам место в файле, то вернуться назад не получится.
Чтобы открыть файл в терминале Linux с помощью команды « more » и « less » нужно ввести следующее:
more file_name.txt less file_name.txt
Команда « less » также позволяет открывать большие файлы в терминале Linux, но она уже предоставляет больше возможностей. С помощью « less » можно пролистывать содержимое документа как вниз ( Page Down ), так и вверх ( Page Up ), переходить в конец ( End ) и начало файла ( Home ), пролистывать текст по одной строке ( Enter ), а также выполнять поиск в обоих направлениях.
Для того чтобы выполнить поиск после выполнения « less » нужно ввести слеш ( / ) и любой кусок текста. Чтобы перейти к следующему найденному отрывку нужно нажать N , а Shift-N возвращает к предыдущему найденному отрывку. Для поиска в обратном направлении вместо знака слеш ( / ) нужно вводить знак вопроса ( ? ) и после этого любой текст.
Учитывая большие возможности команды « less », для открытия файлов в терминале Linux в основном используют именно ее, а не команду « more ».
Команда most
Если возможностей « less » не хватает, то можно использовать команду « most ». Она предоставляет еще больше возможностей для открытия файлов в терминале Linux, но она может быть не установлена по умолчанию.
Если вы используете Ubuntu Linux , то для установки « most » нужно выполнить вот такую команду:
Команда « most » позволяет открывать сразу несколько файлов и переключаться между ними при необходимости. Также « most » позволяет редактировать текущий файл, переходить к нужной строке файла, разделять экран пополам, блокировать или пролистывать оба экрана одновременно и многое другое. По умолчанию, « most » не обертывает длинные строки, а использует горизонтальную прокрутку.
Для того чтобы открыть файл в терминале Linux с помощью « most » нужно выполнить вот такую команду:
Для перемещения по открытому файлу в «most» можно использовать стрелки на клавиатуре, Tab (вправо), Enter (вниз), T (начало), B (конец), J и G (переход к n-й строке), SPACE и D (один экран вниз), DELETE и U (один экран вверх). Для поиска вперед S , f или слеш , для поиска назад знак вопроса (?).
Текстовый редактор Nano
Если вам нужно не просто открыть файл в терминале Linux, но и отредактировать его, то лучше всего использовать не « most », а какой-нибудь более продвинутый текстовый редактор для терминала. Например, это может быть редактор Nano .
В Ubuntu Linux текстовый редактор Nano установлен по умолчанию, но если его нет в вашей системе, то вы можете его установить следующими командами:
Чтобы открыть файл в терминале Linux при помощи редактора Nano нужно выполнить следующую команду:
Интерфейс программы Nano включает в себе верхнюю строку с информацией о редакторе и открытом файле, область редактирование с содержимым открытого файла, нижнюю панель с информацией о комбинациях клавиш.
Для управления текстовым редактором Nano используются следующие комбинации клавиш:
- Ctrl-G или F1 – просмотр справки;
- Ctrl-X или F2 – выход из программы;
- Ctrl-O или F3 – сохранение открытого файла;
- Ctrl-J или F4 – выровнять текущий абзац;
- Ctrl-R или F5 – загрузить содержимое другого файла в текущий;
- Ctrl-W или F6 – выполнить поиск;
- Ctrl-Y или F7 – пролистать страницу вперед;
- Ctrl-V или F8 – пролистать страницу назад;
- Ctrl-K или F9 – вырезать строку и запомнить;
- Ctrl-U или F10 – вставить;
- Ctrl-C или F11 – положение курсора;
- Ctrl-T или F12 – проверить орфографию;