Команды терминала linux для начинающих. часть первая

Скрипт «Hello World!»

Для примера можно создать простейший скрипт, выводящий надпись «Hello World!». Вначале создайте файл и сделайте его исполняемым, а затем отредактируйте в Geany. Скрипт в нашем примере имеет название hello.pl, но вы можете дать ему любое другое имя, как с расширением .pl, так и без.

$ touch hello.pl
$ chmod +x hello.pl
$ geany hello.pl &

Первая строка скрипта определяет путь к интерпретатору Perl, обычно это /usr/bin/perl. Для вывода на экран текста используется команда print. Нужно отметить, что Perl чувствителен к регистру и что каждая строка кода должна заканчиваться точкой с запятой. Вот сам код (вы можете его скопировать и вставить в редактор):

#!/usr/bin/perl
#

print "Hello World!\n";

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

$ ./hello.pl

CGI-скрипты и Perl

CGI-скрипты разработаны для отображения динамически изменяющихся веб-страниц. Язык Perl, ассоциированный с веб-сервером LightTPD, позволяет использовать CGI-скрипты в общем адресном пространстве или в виртуальных машинах. Perl вполне приспособлен к Web 2.0 и может генерировать страницы в формате xHTML. Перед тем как использовать CGI-скрипты в SliTaz, вам нужно установить Perl или Microperl и настроить сервер LightTPD. По умолчанию Shell-скрипты (расширение .sh) помещаются в папку /cgi-bin.

Когда сервер настроен должным образом, можно поместить скрипты в папку $HOME/Public/cgi-bin, задав им расширение .pl или .cgi, и просматривать их на локальном или удаленном компьютере. Пример использования скрипта Perl CGI:

#!/usr/bin/perl
#
print "content-type : text/html\n\n";

print "Hello World!\n";

Как сделать файл исполняем в Astra Linux через менеджер файлов?

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

И сделать нужный файл исполняемым у Вас получится легко, быстро, привычно. Для примера скачал игру Kerbal Space Programm и сейчас мы подготовим ее файлы на Linux Astra CE.

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

В свойствах уже установлены флаги на копирование и запись . Все что нужно сделать — это поставить флажки на запуск (ракета) у нужных пользователей. У меня установлена только верхняя. Подтверждаем, нажав «Да».

1] Выполнить файл сценария оболочки, используя WSL

Установите WSL или Windows Subsystem для Linux

Перейдите в Настройки → Обновление и безопасность → Для разработчиков. Проверьте переключатель режима разработчика. Ищите «Функции Windows», выберите «Включить или отключить функции Windows».

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

Выполнить файлы сценариев оболочки

  • Откройте командную строку и перейдите в папку, где доступен файл сценария.
  • Введите Bash script-filename.sh и нажмите клавишу ввода.
  • Он выполнит скрипт, и в зависимости от файла вы должны увидеть вывод.

На платформе Linux вы обычно используете SH, но здесь вам нужно использовать BASH. Тем не менее, BASH в Windows имеет свои ограничения, поэтому, если вы хотите выполнить в среде Linux, вам нужно установить Ubuntu или что-то подобное.

Приложение

Файлы

  1. Файл с цветовыми определениями col_def.txt (при использовании уберите расширение txt).
  2. Скрипт выводящий цветовую палитру терминала colors.txt (при использовании смените расширение на sh).

Ссылки

  1. Терминал VT100 на Википедии
  2. Определение xterm на Википедии
  3. Раздел “Bash Variables” мануала по bash
  4. Раздел “Colours” мануала “Bash Prompt HOWTO”
  5. ANSI Escape sequences – VT100 / VT52
  6. Terminal codes (ANSI/VT100) introduction
  7. Color Bash Prompt на Вики ArchLinux
  8. ANSI escape code на английской Википедии

« Previous Blog Post | | Next Blog Post »

Please enable JavaScript to view the comments powered by Disqus.

comments powered by Disqus

удаленный;

— удаленные вызовы процедур (Remote Procedure Calls — RPC)

RPC — разновидность технологий, которая позволяет компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно, реализация RPC технологии включает в себя два компонента: сетевой протокол (чаще TCP и UDP, реже HTTP) для обмена в режиме клиент-сервер и язык сериализации объектов (или структур, для необъектных RPC).

— сокеты Unix

Сокеты UNIX бывают 2х типов: локальные и сетевые. При использовании локального сокета, ему присваивается UNIX-адрес и просто будет создан специальный файл (файл сокета) по заданному пути, через который смогут сообщаться любые локальные процессы путём простого чтения/записи из него. Сокеты представляют собой виртуальный объект, который существует, пока на него ссылается хотя бы один из процессов. При использовании сетевого сокета, создается абстрактный объект привязанный к слушающему порту операционной системы и сетевому интерфейсу,  ему присваивается INET-адрес, который имеет адрес интерфейса и слушающего порта.

Процесс

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

Linux, как и большинство современных ОС, является многозадачной операционной системой. Это означает, что многие процессы могут выполняться одновременно. Наряду с процессами, которые мы запускаем, в системе могут быть и другие пользователи.

top

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

Давайте разберемся с данной командой

Строка 2 Задачи . Обычно в вашей системе в одно и то же время работает довольно много процессов. Большинство из них будут системными процессами. 

ps

Другая программа для просмотра процессов называется ps, которая обозначает процессы. При обычном использовании онf покажет вам только процессы, запущенные в вашем текущем терминале. Если мы добавим аргумент aux, он покажет полный системный вид, что немного более полезно.

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

Подробнее команду grep мы рассматривали в данной статье.

Классические инструменты для программирования: find, grep, awk, sed

Особенности find

Путь: может иметь несколько вариантов, например .

Критерии:

  • ;
  • ;
  • ;
  • ;
  • критерии могут быть объединены с логическими и .

Действие:

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

Примеры команд для поиска:

  • — xt-файлы в ;
  • — эквивалент ;
  • — все файлы размером более 512M в ;
  • — не символьная ссылка в ;
  • — позволяет удалить все файлы, которые не были доступны в течение года;
  • — все файлы, имеющие расширение .c или .h.

Grep: поиск шаблонов в тексте

Grep изначально представлял собой команду global regular expression print или «g/re/p» в текстовом редакторе ed. Данная функция оказалась настолько полезной, что была разработана отдельная утилита под названием grep.

Grep позволяет извлекать строки из текста, который соответствует определённому шаблону. Также можно находить строки с определённым рисунком в большом объёме текста. Сюда относится:

  • поиск в списке процессов;
  • выборочная проверка большого количества файлов на наличие паттерна;
  • исключение некоторого фрагмента текста из большого текстового объёма.

Анатомия командной строки с использованием grep

Полезные опции grep:

  • : игнорировать случай;
  • : отображение номеров строк вместе со строками;
  • : инвертированный вывод. Отберутся те строки, которые не совпадают с регулярным выражением;
  • : печать конкретного количества совпадающих строк;
  • : включение n-строк после совпадения;
  • : включение n-строк перед совпадением;
  • : печать только совпадающего выражения (а не всей строки);
  • : позволяет использовать «расширенные» регулярные выражения.

Bash скрипты Linux для чайников

Конструкцию bash допускается описать в 7 обязательствах подобным типом: «вызов командного интерпретатора — тело bash скрипта — окончание скрипта». Сочиняются скрипты с поддержкой различного текстового редактора, хранятся они как текстовые компьютерные данные. Но, чтобы было комфортнее, я храню их в совокупности с расширением «*.sh». Но давайте поглядим на все это на образце определенной цели. Есть использование, которое нужно запускать с достаточно большим комплектом характеристик. Стартовать потребуется зачастую, а каждый раз вводить эти характеристики лень. Чтоб являлось определеннее, поглядим, как выглядит это воздействие:

Для этого script-a давайте использовать интерпретатор bash. Первостепенным процессом нам с вами необходим вызов интерпретатора. Открываем текстовый редактор и пишем код.

Добавим эту операцию с учетом введенных переменных:

Текст, который будем вносить в логи будет таким:text=»Баланс пользователя «user» пополнен на «cash» рублей в time»

Аргумент text варьируется в связи от переменных user, cash и time

Теперь, когда нам нужно положить кому-нибудь денежку, мы запускаем скрипт командой «sh sgconf.sh», вводим имя плательщика и сумму платежа. Никаких длинных строчек, никакой головной боли с постоянным вводом одних и тех же значений.

Автозапуск через cron

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

— открыть терминал для написания задания cron

И добавьте туда нужное вам задание, например:

— запускать скрипт каждую минуту.

Можно написать скрипт watch-dog, который по заданию будет проверять, например, статус какого-либо сервиса и, если он не работает, запускать его. На нескольких своих проектах я использую подобную схему.

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

* * * * * /root/test.sh

Допустимые значения для времени запуска заданий cron по порядку:

  • Минуты от 0 до 59
  • Часы от 0 до 59
  • День месяца от 1 до 31
  • Месяц от 1 до 12
  • День недели от 0 до 7 (0 или 7 это воскресение)

В нашем задании скрипт запускается каждую минуту, поэтому там стоят «*».

Так же вы можете разместить нужный вам скрипт в директориях cron:

  • /cron.daily – выполнение скрипта ежедневно
  • /cron.hourly – выполнение скрипта ежечасно
  • /cron.monthly — выполнение скрипта ежемесячно
  • /cron.weekly — выполнение скрипта еженедельно

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

Как запустить Bash скрипт в Linux

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

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

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

В этой статье мы расскажем о всех способах запуска скрипта Bash в Linux.

Подготовка

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

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

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

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

Запустить Bash скрипт из пути к скрипту

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

В качестве примера, скажем, у вас есть Bash-скрипт, расположенный в вашем домашнем каталоге.

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

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

Таким образом вы узнали, как легко запустить Bash-скрипт в своей системе.

Запустить Bash скрипт, используя bash

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

Использование и запуск Bash в Windows 10

Установка Bash в windows 10 завершена. Теперь у вас есть полноценная командная строка Ubuntu в Windows с оболочкой Bash. Поскольку используются одни и те же двоичные файлы, вы можете устанавливать программное обеспечение с помощью Apt-get из репозиториев Ubuntu.

Можно установить любое приложение, но не все будут работать, особенно в Beta версии.

Чтобы запустить Bash в Windows 10 просто откройте меню пуск и наберите Bash или Ubuntu в поиске. После этого вы увидите приложение Bash on Ubuntu on Windows. Вы можете сделать ярлык этого приложения в меню Пуск, на рабочем столе или панели задач.

Уже можно использовать Bash под Windows. Если вы раньше уже пользовались Bash в Linux или MacOS, то будете чувствовать себя здесь как дома. Здесь не нужно использовать команду sudo, поскольку у оболочки уже есть права администратора. Ваша файловая система Windows доступна в /mnt/c.

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

  • Изменить текущий каталог — cd, в DOS — chdir
  • Посмотреть содержимое каталога — ls, в DOS — dir
  • Переместить или переименовать файл — mv, в DOS — move или rename
  • Копирование файла — cp, в DOS — copy
  • Удаление файла — rm, в DOS — del или erase
  • Создать директорию — mkdir, в DOS — mkdir
  • Открыть файл для редактирования — vi или nano, в DOS — edit

Важно также понимать, что в отличии от WIndows, оболочка Bash и ее окружение чувствительны к регистру. Другими словами, file.txt и File.txt, это совсем разные файлы

Для установки и обновления программ необходимо использовать команду apt-get. Вот небольшой список ее параметров:

  • apt-get update — скачать списки программного обеспечения из репозиториев
  • apt-get install пакет — установить пакет
  • apt-cache search слово — поиск пакета по слову
  • apt-get upgrade — загрузка и установка последних обновлений

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

Не забудьте, что устанавливаемые в этой оболочке программы, ограничиваются по области действия оболочкой. Вы не можете получить доступ к ним из обычной командной строки PowerShell, CMD или в любом другом месте Windows. Также Bash под Windows не может напрямую взаимодействовать с исполняемыми файлами Windows, хотя обе среды имеют доступ к одним и тем же файлам на компьютере.

Запуск script bash

Чтобы лучше понять, как работать со скриптами, стоит рассмотреть несложный пример. Допустим, необходимо запустить script bash. Для этого, создам файл «primer.sh», с помощью редактора nano.

Внутри файла пишем следующий код:

echo «Primer vypolneniya scripta»

В представленном примере первая строка – это та самая оболочка, посредством которой выполняется определенное действие. Само действие в данном случае указано во второй строке. Примечательно, что у данного варианта могут быть альтернативные окончания. Например:

  • /bin/sh — bash script.
  • /usr/bin/php — php scpript.
  • /usr/bin/python — язык python.

Далее необходимо сохранить файл. Согласно нашему примеру нажимаем «ctrl + O», затем «ctrl + X».

Чтобы script bash отработал, необходимо дать файлу специальные права на исполнение.

$ chmod ugo+x primer.sh

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

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

А вот указание полного пути. Он будет выглядеть следующим образом:

Запуск через оболочку bash

Далее мы рассмотрим альтернативный способ запуска script, используя для этих целей оболочку. Пользователь может сразу передать ей нужный скрипт для выполнения. Такое не часто встречается на практике в случае с bash, чего не скажешь о скриптах python и php. Как запустить скрипт указанным способом:

Предлагаем вашему вниманию еще один аналогичный способ запуска:

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

Заключение

Знакомство новичка с терминалом Linux часто приводит к некоторым сложностям. Разобравшись в том, как происходит управление устройством, данная проблема быстро пропадает. Данная статья лишь подтверждает это. Запускать script в Линукс действительно легко.

VT100, terminfo, xterm

Начнем с того, что bash, равно как и zsh и другие шеллы являются эмуляторами терминала. Наследие можно проследить от широко известного терминала DEC VT100. VT100 согласно Википедии

Что самое главное, терминал управлялся набором команд, называемыми также escape кодами ANSI. И хоть после VT100 были разработаны более продвинутые терминалы, например серии VT200, но набор команд VT100 стал де-фактом для современных эмуляторов. Поэтому далее в тексте будет приниматься за дефолтный тип терминала именно VT100 и отсылка на более детальное описание команд будет идти на ресурсы, где описываются ANSI escape коды именно терминала VT100 как наиболее общеприменимые.

xterm – данным термином называют эмулятор терминала в среде X Window System. Согласно той же Википедии :

компании DEC. Со временем xterm стал частью X, хоть изначально это и не планировалось. Теперешние шеллы начинали разрабатываться как варианты xterm (в современном терминале есть переменная $TERM, значение которой в bash, zsh как раз и равно “xterm”). Кстати SSH клиент putty также эмулирует xterm.

terminfo (бывший termcap) — база данных описывающая возможности того или иного терминала.

Может показаться, что все шеллы поддерживают строго один тип терминала. Это не так. Какой-нибудь эмулятор может поддерживать vt220 и наследовать другое подмножество команд предоставляемое пользователю. Кстати, в большинстве стартовых скриптов относящихся к работе терминала (шелла), нередка проверка на тип переменной $TERM.

Для получения дополнительной информации советую прочесть больше информации о том терминале, который вы используете. Для получения справочной информации можно воспользоваться командой “man terminfo”.

Создание собственного демона и добавление его в systemd

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

Например, нам нужно запускать все тот же скрипт /root/test.sh после перезагрузки системы. Начнем с создания файла нашей будущей службы:

Содержимое файла будет следующее:

Description=Template Settings Service
After=network.target

Type=oneshot
User=root
ExecStart=/root/test.sh

WantedBy=multi-user.target

Основные параметры:

User – пользователь под которым будет запускаться демон

Type=oneshot — процесс будет завершен до запуска дальнейших юнитов

Проверяем и перезапускаем:

● test-script.service - Test
Loaded: loaded (/etc/systemd/system/test-script.service; disabled; vendor preset: disabled)
Active: active (running)

Если вас устроило то, как работает сервис, добавьте его в автозагрузку:

Created symlink from /etc/systemd/system/multi-user.target.wants/test-script.service to /etc/systemd/system/test-script.service.

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

Как работают скрипты

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

Теперь о том, как работают скрипты. Это обычные файлы, которые содержат текст. Но если для них установлен атрибут исполняемости, то для их открытия используется специальная программа — интерпретатор, например, оболочка bash. А уже интерпретатор читает последовательно строку за строкой и выполняет все команды, которые содержатся в файле. У нас есть несколько способов выполнить запуск скрипта linux. Мы можем запустить его как любую другую программу через терминал или же запустить оболочку и сообщить ей какой файл нужно выполнять. В этом случае не нужно даже флага исполняемости.

Как использовать параметры командной строки в скриптах

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

  ls ~ -a 

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

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

  #! / Bin / Баш

 folder_to_count = $ 1

 file_count = $ (ls $ folder_to_count | wc -l)

 отобразить файлы $ file_count в $ folder_to_count 

На этот раз переменной присваивается значение первого параметра командной строки, .

Остальная часть сценария работает точно так же, как и раньше. Вместо конкретного решения ваш сценарий теперь является общим. Вы можете использовать его в любом каталоге, потому что он не жестко запрограммирован для работы только с «/ dev».

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

  chmod + x fcnt2.sh 

Теперь попробуйте это с несколькими каталогами. Вы можете сначала выполнить команду «/ dev», чтобы убедиться, что вы получите тот же результат, что и раньше. Введите следующее:

  ./fnct2.sh / dev 
  ./fnct2.sh / etc 
  ./fnct2.sh / bin 

Вы получите тот же результат (207 файлов), что и ранее для каталога «/ dev». Это обнадеживает, и вы получаете специфичные для каталога результаты для каждого из других параметров командной строки.

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

  #! / Bin / Баш 

 file_count = $ (ls $ 1 wc -l) 

 эхо $ file_count файлы в $ 1 

.bashrc: автозапуск скриптов при запуске терминала

Если вам требуется выполнять какие-то действия при запуске терминала ssh, вы можете добавить любую команду или выполнение скрипта в .bash_profile или .bashrc. Теоретически, вы можете добавить какое-либо действие в любой из этих файлов, оно выполнится в любом случае. Обычно все необходимое добавляется в .bashrc, а сам .bashrc запускают из .bash_profile.

Я добавил в файл .bashrc команду на рестарт веб-сервиса nginx:

После этого сохранил файл и перезапустил терминал:

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

Или вы хотите, чтобы при запуске терминала, вы сразу попадали в нужную вам директорию и запускали mc, добавьте в .bashrc

Надеюсь эта статья по управлению автозапуском сервисов и скриптов в LInux (статья писалась для CentOS) оказалась полезной для вас. Наверняка тем, кто только познает азы системного администрирования Linux, это информация будет кстати.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
IP-файл
Добавить комментарий

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