Кунг-фу стиля Linux: запуск команд

Вы когда-нибудь были в ситуации, когда вам приходилось несколько раз запускать определенную команду Linux?

Документы автора

Список электронных библиотек интернета. вер. 0002а .pdf pdf1 281 Кб Средства технической разведки .pdf pdf1 975 Кб Сосонкин В.Л. Мартинов Г.М. — Методика программирования станков с ЧПУ на наиболее полном полигоне вспомогательных G-функций .pdf pdf1 514 Кб Степакова В.В. (ред) — Карточки-задания по черчению. 7 кл (1999).pdf pdf1 750 Кб Сорос Дж. — Кризис мирового капитализма. Открытое общество в опасности (1999).pdf pdf1 745 Кб Степакова В.В. (ред) — Карточки-задания по черчению. 8 кл (2000).pdf pdf1 714 Кб Сорос Дж. — Кризис мирового капитализма (1999).pdf pdf1 693 Кб

Команды Linux для навигации в терминале

  1. &&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
  3. cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
  4. clear. Очищает окно терминала от всех сообщений.
  5. history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
  6. man. Отображает руководство по программам и командам Linux. Введите man имя_пакетаили man ваша_команда.
  7. whatis. Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.
Команды Linux для навигации в терминале

Запуск команд из командной оболочки

date ; df ; freeНе запускайте эту последовательность команд в реальной системе!правило наименьшего удивления

Запуск команд из командной оболочки

&&

cd /foo && ls   # команда rm тут не используется, поэтому эта конструкция ничего не испортит&&Более длинная конструкция, в которой используется && (тут тоже есть rm, поэтому будьте очень осторожны, пытаясь запустить нечто подобное в реальной системе)

grep "alw" /etc/passwd || echo No such user

Запуск команд из командной оболочки

Использование ||

Как запустить по расписанию команду?

Для редактирования расписания планировщика cron выполните:

crontab -e

Формат строк расписания имеет вид:

минута час день месяц день_недели команда

Минута — время в минутах от 0 до 59

Час — от 0 до 23 День — день месяца от 1 до 31 Месяц — от 1 до 12 либо буквенные обозначения jan — dec День недели — от 0 до 6 (0 — воскресенье) или sat — sun Команда — строка в формате командного интерпретатора которая будет исполнена, допускается запись типа команда1 && команда2 для запуска нескольких команд подряд.

Значения минут, часов, дней можно указывать следующим образом: Значение — число обозначающее дату или время, допускается подстановочный знак * допускающий полный диапазон значений

Несколько значений — допускается указывать несколько значений через запятую, например 2,14,22 Диапазон значений — указывается через дефис, например 2-10 Шаг значений — указывается через дробь, в знаменатель которой ставится шаг, например */3 — каждое третье значение 0, 3, 6, 9 и т.д. В качестве числителя должен быть диапазон значений либо звездочка.

Читайте также:  Как защитить браузер от взлома — 5 способов

Рассмотрим следующий пример записи:

0 8-19/2 * * 1 /home/tvs/test01

Она означает что каждый второй час с 8 до 19 (8, 10,12,14,16) по понедельникам запускать скрипт test в домашнем каталоге пользователя tvs.

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

* 10-15 * * * /home/tvs/test1 Данная строка приведет к запуску скрипта каждую минуту в диапазоне с 10 до 15 часов. Правильно будет:

0 10-15 * * * /home/tvs/test1

Данная запись позволит запускать скрипт в начале каждого часа указанного диапазона.

Кроме даты можно использовать ряд специальных строк:

@reboot — выполнять команду при перезагрузке @yearly или @annually — выполнять 1 января, аналогично записи: "0 0 1 1 * " @monthly — выполнять 1 числа каждого месяца, аналогично "0 0 1 * * " @weekly — выполнять каждое воскресенье, равносильно "0 0 * * 0" @daily или @midnight — ежедневно в полночь,"0 0 * * * " @hourly — раз в час, "0 * * * * "

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

@midnight /home/tvs/test1

Завершив составление расписания сохраняем файл и выходим из редактора. Пользовательское расписание будет сохранено в /var/spool/cron/crontabs под именем текущего пользователя.

Для системных и административных задач предусмотрен файл /etc/crontab. Синтаксис записей в нем отличается наличием дополнительного значения — пользователя, от чьего имени будет запущено задание:

минута час день месяц день_недели пользователь команда

Пример такой записи:

0 19 * * 1-5 root /etc/backup

Согласно которой в 19:00 с понедельника по пятницу будет запускаться скрипт/etc/backup от имени пользователя root.

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

Как запустить командный файл в Windows 10

Запуск пакетного файла по требованию

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

Проводник

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

  1. Откройте проводник.
  2. Найдите папку со сценарием.
  3. Дважды щелкните командный файл, чтобы запустить его.
  4. (Необязательно) Если вы выполняете команду, требующую прав администратора, вам нужно запустить сценарий от имени администратора, щелкнув правой кнопкой мыши пакетный файл и выбрав опцию Запуск от имени администратора.

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

Командная строка

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

  1. Откройте командную строку от имени администратора.
  2. Введите путь и название командного файла и нажмите Enter:

    C:\PATH\TO\FOLDER\

    Например, следующая команда запускает пакетный файл, расположенный в пользовательской папке «batch» внутри папки «Downloads»:

    C:\Users\user\Documents\scripts\first_

После того, как вы выполните эти шаги, выходные данные будут отображаться на экране, даже если скрипт содержит команду «PAUSE».

Запуск пакетного файла по расписанию

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

  1. Откройте Пуск.
  2. Введите планировщик заданий и щелкните по верхнему результату, чтобы открыть приложение.
  3. Щелкните правой кнопкой мыши ветку «Библиотека планировщика заданий» и выберите опцию Создать папку….
  4. Введите имя для папки – например, MyScripts.

    Необязательно создавать папку, но рекомендуется организовать ваши задачи.

  5. Нажмите кнопку ОК.
  6. Щелкните правой кнопкой мыши папку MyScripts.
  7. Выберите опцию Создать простую задачу.
  8. В поле «Имя» введите краткое описательное имя для задачи – например, SystemInfoBatch.
  9. (Необязательно) В поле «Описание» создайте описание для задачи.
  10. Нажмите кнопку Далее.
  11. Выберите опцию Ежемесячно.

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

  12. Нажмите кнопку Далее.
  13. Используя настройку «Начать», укажите день и время запуска задачи.
  14. Используйте выпадающее меню «Месяцы», чтобы выбрать месяцы года, в которые вы хотите выполнить задачу.
  15. Используйте выпадающее меню «Дни» или «В:», чтобы указать дни, в которые будет выполняться задание.
  16. Нажмите кнопку Далее.
  17. Выберите опцию Запустить программу, чтобы запустить пакетный файл.
  18. В поле «Программа/скрипт» укажите путь к пакетному файлу.
  19. Нажмите кнопку Готово.

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

Запуск пакетных файлов при запуске

Чтобы запустить скрипт при запуске, используйте следующие простые шаги:

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

Мы ориентируем это руководство на Windows 10, но возможность использовать пакетные файлы существует давно, а это означает, что вы можете обратиться к этим инструкциям, если вы всё ещё используете более старую версию, включая Windows 8.1 или Windows 7.

Настройте запуск R-скрипта в фоновом режиме

Если вы не хотите, чтобы при автозапуске R-скрипта на экране появлялось окно командной строки, то скомпилируйте ваш bat-файла в exe — в таком случае скрипт будет работать в фоновом режиме и не будет вам мешать.

3.1. Скачайте бесплатную утилиту «Bat To Exe Converter» по ссылке.

3.2. Укажите bat-файл, который необходимо скомпилировать, а также путь и название будущего exe-файла.

3.3. В области «Видимость приложения» установите переключатель в положение «Невидимое приложение».

3.4. При желании установите иконку для вашего файла.

Чтобы установить иконку, перейдите на вкладку «Информация о версии» и с помощью кнопки «…» выберите нужную иконку в поле «Файл значка».

В качестве иконки можете использовать любое изображение в формате ICO или же нарисовать самостоятельно в бесплатном онлайн-редакторе.

Нажмите кнопку «Компилировать».

  • {«0»:{«lid»:»1573230077755″,»ls»:»10″,»loff»:»»,»li_type»:»em»,»li_name»:»email»,»li_ph»:»Email»,»li_req»:»y»,»li_nm»:»email»},»1″:{«lid»:»1596820612019″,»ls»:»20″,»loff»:»»,»li_type»:»hd»,»li_name»:»country_code»,»li_nm»:»country_code»}} Истории бизнеса и полезные фишки
  • Установка, удаление и обновление пакетов

    Для установки программ в Linux используются менеджеры пакетов. Они разнятся от дистрибутива к дистрибутиву, поэтому команды для управления ими тоже отличаются. Рассмотрим наиболее популярные.

    Debian/Ubuntu

    • sudo apt-get install название пакета — устанавливает программу на выбор. Главное знать, как она называется.
    • sudo apt remove название пакета — стирает с жесткого диска имеющийся в системе пакет.
    • sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключенных репозиториях.
    • sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

    Red Hat Linux/CentOS

    • sudo dnf install название пакета — устанавливает программу на выбор.
    • sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.
    • sudo dnf remove название пакета — стирает с жесткого диска имеющийся в системе пакет.

    Шаг Определение задач по расписанию

    Теперь идет самое «мясо» файла crontab. В третьем разделе мы как раз и планируем выполнение тех заданий, которые нужно запускать.

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

    Поля файла crontab следующие:

    • Minute — определенная минута, когда команда или задание будет запущено (0-59)
    • Hour — определенный час выполнения команды или задания (0-23)
    • Day of the Month — день месяца, когда будет запущена команда или задание (1-31)
    • Month — месяц выполнения команды или задания (1-12)
    • Day of the week — день недели выполнения команды или задания (0-6, воскресенье = 0)
    • User — пользователь, который разрешает выполнение этой команды или задания
    • Command — команда или задание, которое вы хотите запускать по расписанию

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

    Использование Cron для поиска уязвимых серверов

    Теперь давайте представим, что мы хотим просканировать весь Земной шар на предмет IP-адресов, уязвимых для Heartbleed.

    Сообщается, есть больше 300 000 серверов, которые по-прежнему не пропатчены от этой уязвимости. Это очень большое число, при более чем 2 миллиардов IP-адресов по всей планете. Это количество означает, что уязвимым к этой атаке будет только 1 из 10 000 IP-адресов. Это также значит, что нам нужно настроить сканер таким образом, чтобы он повторял поиск по тысячам IP-адресов, для того, чтобы найти хотя бы один уязвимый сервер.

    Это идеальная задача для работы с cron!

    Работа с текстом

    1. Ctrl + A / Ctrl + E

      Клавиши быстрого перехода в начало (А) и конец (E) строки.

    2. Ctrl + Shift + C / Ctrl + Shift + V

      Это сочетание клавиш в Linux позволит быстро скопировать (C) и вставить (V) текст в терминале.

    3. more / less

      Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.

    4. head / tail

      Пара дополняющих друг друга команд для просмотра на одном экране начала и конца текста. Команда head выдаёт 10 (по умолчанию) первых строк текста, tail — последних. Число строк в обоих случаях меняется с помощью аргумента -n. Оператор -f позволяет отслеживать на экране изменения в файле. Чтобы лог (журнал) файла отображался в режиме реального времени, ввести команду:

      tail –nf,

      Для отслеживания логов нескольких файлов применяется модификация команды — multitail.

    5. grep

      (Global Regular Expression and Print). Ищет текст по заданному шаблону. Это очень полезно, когда надо проанализировать работу команды, которая сопровождается большим объёмом текстовой информации. Шаблон может заполняться строкой или регулярным выражением. Пример:

      alias старое_название новое_название

    6. sort

      Сортировка текстовой информации по заданным показателям. Дополнительные переменные позволяют:

    • -n ­— сортировать строки текста по числовому значению;
    • du ­— по размеру;
    • -r ­— применять обратную сортировку;
    • -u ­— удалять дубликаты при сортировке.
    1. wc

      (Word Count). Программа для подсчета заданных параметров в тексте. Считает такие показатели, как символы, слова, строки и байты.

    2. diff

      (Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними. Алгоритм работы:

      diff файл_№1 файл_№2

      Различия между двумя версиями файлов отмечают такие символы, как:

    • c — изменённые строки;
    • d — удалённые строки;
    • а —новые строки.