Linux как запустить скрипт с флешки

Обновлено: 07.07.2024

  • Файловая система ext3 по умолчанию записывает изменения метаданных на диск каждые 5 секунд. Этот период может быть увеличен путем монтирования файловой системы с параметром commit=N, который говорит ядру задерживать запись на N секунд.
  • Ядро записывает новое время доступа для каждого файла, который был прочитан, что генерирует одну операцию записи на каждое чтение. Это может быть отключено путем монтирования файловой системы с опцией noatime.
  • Оба вышеперечисленных действия могут быть установлены добавлением опций noatime,commit=120,… в файл /etc/fstab. Так же это можно сделать для уже смонтированных файловых систем путем выполнения команды:

mount -o remount,noatime,commit=120 /

Может быть изменена на:

После того как Вы сделаете данные изменения Вам потребуется перезапустить syslogd выполнив команду:

  • /proc/sys/vm/laptop_mode: Через сколько секунд после чтения данных должна начаться запись измененных файлов (это основано на предположении о том, что чтение вызовет раскрутку ранее остановленного диска).
  • /proc/sys/vm/dirty_writeback_centisecs: Как часто ядро должно проверять есть ли «грязные» (измененные) данные для записи на диск (в сантисекундах).
  • /proc/sys/vm/dirty_expire_centisecs: Насколько «грязны» должны быть данные, что бы ядро решило что они достаточно стары для записи на диск. В общем случае, это хорошая идея установить для этой опции такое же значение как и для dirty_writeback_centisecs выше.
  • /proc/sys/vm/dirty_ratio: Максимальный размер памяти (в процентах), для хранения грязных данных прежде чем процесс, их сгенерировавший, будет принужден записать их. Установка этому параметру высокого значения не должно быть проблемой, так как запись будет так же происходить если в системе закончится память.
  • /proc/sys/vm/dirty_background_ratio: Минимальное число памяти (в процентах), где позволено хранить гразные данные вместо записи на диск. Этот параметр должен быть намного меньше чем dirty_ratio что бы позволить записывать куски грязных данных за один проход.

chmod a+x /etc/init.d/kernel-params

и убедитесь что он выполняется с помощью команды

update-rc.d kernel-params defaults

Замечание. Большинство из этих настроек уменьшают число записей на диск путем увеличения использования памяти. Это увеличивает риск ситуации нехватки памяти (что может запустить «убийцу процессов» в ядре). Это может произойти даже если есть доступная свободная память (например, когда ядру требуется выделить более чем одну непрерывную страницу, но доступны только фрагментированные страницы).
Таким образом, с любыми настройками рекомендуется приглядывать за объемом свободной памяти и изменять эти настройки (используя менее агрессивное кэширование и увеличение подкачки) в зависимости от рабочей загрузки.

Python - очень популярный язык программирования для написания различных системных скриптов в Linux. В Windows, там где не хватает возможностей командной оболочки используется PowerShell. В Linux же, когда возможностей Bash не хватает используется язык Python.

На этом языке написано огромное количество системных программ, среди них пакетный менеджер apt, видеоредактор OpenShot, а также множество скриптов, которые вы можете установить с помощью утилиты pip. В этой небольшой статье мы рассмотрим как запустить Python скрипт в Linux с помощью терминала различными способами.

Запуск python скрипта в Linux

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

print("Hello from losst!")


Для того чтобы запустить скрипт необходимо передать его интерпретатору Python. Для этого просто откройте терминал с помощью сочетания клавиш Ctrl + Alt + T, перейдите в папку со скриптом и выполните:


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

python -i script.py


Но как вы могли заметить, при запуске apt или openshot не надо писать слово python. Это намного удобнее. Давайте разберемся как это реализовать. Если вы не хотите указывать интерпретатор в командной строке, его надо указать в самом скрипте. Для этого следует в начало скрипта добавить такую строчку:


Сохраните изменения, а затем сделайте файл скрипта исполняемым с помощью такой команды:

chmod ugo+x script.py

После этого можно запустить скрипт Python просто обращаясь к его файлу:


Если убрать расширение .py и переместить скрипт в каталог, находящийся в переменной PATH, например /usr/bin/, то его можно будет выполнять вот так:

Как видите, запуск команды python Linux выполняется довольно просто и для этого даже есть несколько способов. А каким способом пользуетесь вы? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

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

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

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

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

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

Запуск скрипта sh в Linux

Сначала рассмотрим пример небольшого sh скрипта:

Вторая строка - это действие, которое выполняет скрипт, но нас больше всего интересует первая - это оболочка, с помощью которого его нужно выполнить. Это может быть не только /bin/bash, но и /bin/sh, и даже /usr/bin/python или /usr/bin/php. Также часто встречается ситуация, что путь к исполняемому файлу оболочки получают с помощью утилиты env: /usr/bin/env php и так далее. Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости:

chmod ugo+x script.sh

Мы разрешаем выполнять запуск sh linux всем категориям пользователей - владельцу, группе файла и остальным. Следующий важный момент - это то место где находится скрипт, если вы просто наберете script.sh, то поиск будет выполнен только глобально, в каталогах, которые записаны в переменную PATH и даже если вы находитесь сейчас в той папке где находится скрипт, то он не будет найден. К нему нужно указывать полный путь, например, для той же текущей папки. Запуск скрипта sh в linux:

Или полный путь от корня:

Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в одну из папок, которые указаны в переменной PATH. Одна из них, которая предназначена для ручной установки программ - /usr/local/bin.

cp script.sh /usr/local/bin/script.sh

Теперь вы можете выполнить:

Это был первый способ вызвать скрипт, но есть еще один - мы можем запустить оболочку и сразу же передать ей скрипт, который нужно выполнить. Вы могли редко видеть такой способ с bash, но он довольно часто используется для скриптов php или python. Запустим так наш скрипт:

А если нам нужно запустить скрипт на php, то выполните:

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

Даже запустить процесс linux не так сложно.

Выводы

Как видите, запуск скрипта sh в linux - это довольно простая задача, даже если вы еще плохо знакомы с терминалом. Существует действительно много скриптов и некоторые из них вам возможно придется выполнять. Если у вас остались вопросы, спрашивайте в комментариях!

Сегодня я получил очередной вопрос читателя по поводу заметки Автоматическая настройка Live-USB Ubuntu. Этот вопрос, как и остальные, сводились к одной проблеме: не получается запустить скрипт со съёмного накопителя. Так как с этой проблемой столкнулся не один читатель, рассмотрю её причину и решение.

Предполагаю, что текст скрипта не содержит ошибок, препятствующих его выполнению, сохранён в файле в файловой системе съёмного накопителя (для примера файл /path/to/config.sh ), к этому файлу обеспечен доступ. Причём вместо съёмного накопителя может рассматриваться и внутренний - разницы для решения вопроса здесь нет.

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

Теперь файл /path/to/config.sh стал исполняемым для пользователя.

Однако этот вариант будет работать в тех случаях, если файл хранится в файловой системе, поддерживающей Unix права доступа к файлам и каталогам. Часто пользователи Live-USB Ubuntu используют эту операционную систему параллельно с операционной системой Microsoft Windows. При этом файловые системы, используемые на съёмных накопителях - FAT, FAT32 или NTFS, что даёт беспроблемную возможность использовать накопители как в Microsoft Windows, так и в Ubuntu.

Но файловые системы FAT, FAT32 и NTFS не поддерживают Unix права доступа к файлам и каталогам. Поэтому использование команды chmod не даст результата.

Поэтому предлагаю два варианта решения:

  1. хранить файл Shell скрипта на съёмном накопители с файловой системой, поддерживающей Unix права доступа, и запускать скрипт привычными способом: в терминале или средствами графического оконного менеджера;
  2. продолжить использовать съёмный накопитель с уже существующей на нём файловой системой, но запускать скрипт в терминале, используя команду sh : sh /path/to/config.sh .

Для запуска Bash скрипта вместо команды sh используйте bash .

Считаю ещё одну проблему начинающих пользователей операционных систем на базе ядра Linux решённой.

Другие заметки

CSV в JSON на PowerShell

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

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

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

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

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