19 полезных shell-скриптов на все случаи жизни
Содержание статьи
Командная строка и те невообразимые вещи, которые с ее помощью можно творить, — визитная карточка UNIX и всех ее наследников. А где есть командная строка, там есть скрипты. И сегодня. нет, мы не будем учиться писать скрипты, мы рассмотрим наиболее полезные из них, те, что ты сможешь применять ежедневно для решения самого разного круга задач, начиная от сводки погоды и веб-сервера в одну строку и заканчивая ботом для твиттера в десять строк и скриптом для автоматического запуска любого торрент-клиента.
Сразу оговорюсь, что я вовсе не приверженец шаманизма и ни в коем случае не призываю тебя сидеть в зелено-черной консоли и набирать кучу букв, чтобы выполнить действия, для которых в графическом интерфейсе достаточно навести мышку на нужный элемент. Однако я убежден, что для решения многих задач консоль и скрипты годятся гораздо лучше графического интерфейса и поэтому пренебрегать ими никак нельзя. Тем более что любая DE позволяет создать для скрипта иконку, так что для его запуска даже не надо будет открывать консоль.
Простые примеры
Итак, не разглагольствуя понапрасну, сразу перейдем к примерам:
Эта простая команда покажет тебе внешний IP — идеальный вариант, если в Сеть ты ходишь через роутер. Все, что она делает, — просто обращается к серверу ifconfig.co, который возвращает обратно IP-шник одной строкой вместо полноценной веб-страницы.
И да, это вовсе не скрипт, это просто команда, но, чтобы превратить команду в скрипт, достаточно поместить ее в текстовый файл и первой строкой добавить так называемый шебанг, то есть символы #!, за которыми следует имя командного интерпретатора:
Далее скрипт сохраняем в каталог
/bin и назначаем права на исполнение:
Теперь его можно вызывать из командной строки командой myip.sh.
Этот скрипт позволяет получить сводку погоды на четыре дня. Принцип тут такой же, как в случае с ifconfig.co.
Сводка погоды в консоли
Xakep #212. Секреты даркнета
А так можно получить краткое описание чего-либо в Википедии, причем с помощью DNS-запроса вместо обращения к веб-серверу. Кстати, веб-сервер через командную строку тоже очень легко создать:
Данный скрипт основан на утилите netcat (nc), которую называют швейцарским армейским ножом для сетевых операций. Скрипт запускает цикл, выполняющий команду nc, которая слушает 80-й порт и в ответ на запрос отдает file.html, отправляя переданный запрос в никуда (символ означает noop, то есть пустую операцию).
С помощью простых скриптов и команд можно запросто слушать интернет-радио:
Естественно, плей-лист в формате M3U необходимо заранее скачать с сайта радиостанции. Кстати, если запустить MPlayer с аргументом —input-ipc-server=/tmp/mpvsocket, им можно будет управлять, записывая команды в файл. Например, настроить громкость:
Создай два скрипта: один для запуска, другой для остановки радио (со строкой killall mpv), повесь их на рабочий стол и настрой горячие клавиши DE на управление воспроизведением. Вуаля, у тебя готов плеер для интернет-радио, запустить который можно, просто кликнув по иконке на рабочем столе. И он почти не будет расходовать память или занимать трей.
Но отвлечемся от сетевых операций и вернемся к локальным делам.
Это один из моих любимых скриптов. Он создает архив tar.gz текущего каталога. Особого внимания здесь заслуживает конструкция $
А это уже скрипт, который запускает команду в ответ на изменение файлов в каталоге. Ее можно использовать для множества разных целей, например для автоматического включения плеера при сохранении MP3-файла. Или просто выводить уведомление на десктоп, используя в качестве команды notify-send:
Десктоп
Раз уж мы заговорили о десктопе, то продолжим. Как и консоль, его тоже можно заскриптовать. Вот, например, скрипт, загружающий случайные обои, опубликованные на reddit-канале wallpaper:
Здесь все просто. С помощью wget скрипт загружает страницу www.reddit.com/r/wallpaper, передает ее grep, который ищет на ней ссылки на imgur, выбирает случайную ссылку с помощью shuf, загружает ее опять же с помощью wget и устанавливает в качестве обоев, используя команду feh (это такой миниатюрный просмотрщик изображений, его нужно предварительно установить). Скрипт можно добавить на рабочий стол, и тогда по клику у тебя будут меняться обои.
А это скрипт для включения/выключения тачпада ноутбука: включает, если отключен, и наоборот. В своей работе использует утилиту synclient, позволяющую управлять тачпадами производства Synaptics (90% тачпадов делают они). При запуске без аргументов утилита выводит различную информацию о тачпаде, в том числе строку TouchpadOff = 1, если он активирован, и TouchpadOff = 2, если отключен. Скрипт находит это значение и в зависимости от состояния тачпада включает или отключает его.
А так можно сделать снимок с помощью веб-камеры. Скрипт использует видеоплеер mpv, чтобы записать первые три кадра, снятые камерой, в JPEG-файлы с именами 0000000.jpg, 00000002.jpg, 00000003.jpg, затем переименовывает третий снимок в файл photo.jpg, а остальные удаляет. Три снимка необходимы для того, чтобы камера успела провести инициализацию, обычно первые два получаются просто черными. Иногда изображение выходит перевернутым; чтобы это исправить, mpv следует запускать с флагом -vf flip :
Ту же самую команду можно использовать для создания полноценной камеры слежения, которая делает снимки в моменты, когда юзер прикасается к мыши:
Скрипт входит в бесконечный цикл, ожидая данные на устройстве /dev/input/mouse0 . Если данные есть, значит, мышь сдвинулась или была нажата одна из ее клавиш. После этого он использует mpv, чтобы сделать три снимка, дает третьему снимку имя текущей даты и удаляет остальные.
Для записи полноценного видео с веб-камеры можно использовать такой скрипт:
В результате ты получишь video.avi в формате MPEG4 с битрейтом 1800 и аудиодорожкой в формате MP3 с битрейтом 128.
А так ты можешь записать скринкаст. 1366×768 — разрешение рабочего стола. Просто сделать скриншот отдельного окна всегда можно с помощью команды import:
После ее запуска значок мыши изменится на «прицел», с помощью которого можно выбрать окно. Повесив эту команду на клавиатурную комбинацию, ты получишь практически идеальную систему снятия скриншотов, абсолютно не жрущую память, как это делают специализированные приложения, постоянно висящие в трее.
Подключить и настроить внешний монитор тоже можно из командной строки:
Данный скрипт предполагает, что основной монитор носит имя LVDS, а внешний — VGA-0. Это стандартная ситуация для ноутбуков; если ты не уверен, можешь проверить вывод команды xrandr: при передаче скрипту аргумента off он отключает внешний монитор, аргумент on, в свою очередь, включает его, располагая по левую сторону от основного (аргумент —left-of LVDS в первой команде). Далее скрипт добавляет новую конфигурацию для монитора с разрешением 1920 x 1080 и активирует его. В самом конце скрипт устанавливает дефолтное значение DPI — как показывает практика, при подключении монитора с другим разрешением оно часто слетает.
На самом деле в большинстве случаев команды xrandr —newmode . и xrandr —addmode . не нужны, так как Xorg может получить конфигурацию монитора и поддерживаемые им разрешения с помощью EDID. Иногда, однако, этого не происходит, и строку конфигурации, указываемую после аргумента —newmode, приходится генерировать самостоятельно с помощью инструмента cvt:
Он же поможет сгенерировать нестандартное разрешение, «не поддерживаемое» монитором по умолчанию.
Google, Twitter, Dropbox и торренты
Отвлечемся от десктопных дел и поговорим о сетевых сервисах. Начнем, разумеется, с Google. Вот так будет выглядеть скрипт для получения первых десяти результатов поиска:
Скрипт делает запрос к Google с помощью уже знакомого нам curl, заменяя пробелы в поисковой строке на плюсы. Далее выискивает в ответном HTML ссылки и выводит их на экран. Все просто, хоть и кажется сложным.
Ищем в Google из командной строки
Второй популярный сервис — YouTube:
Здесь все совсем просто. Скрипт всего лишь проигрывает видео с указанным в аргументе ID с помощью плеера mpv. Естественно, youtube-dl придется установить заранее.
Как насчет твиттера? Нет проблем, вот полноценный бот, который на входе принимает команду, выполняет ее с помощью командного интерпретатора и отправляет результат указанному юзеру.
Скрипт использует консольный клиент ttytter, читая в цикле последнее direct message, далее он проверяет, не была ли такая команда уже выполнена, и, если нет, выполняет ее и отправляет указанному в переменной USER пользователю, попутно обрезая до 140 символов.
Чтобы все заработало как надо, тебе придется установить ttytter, запустить его, ввести приведенную им ссылку в адресную строку браузера, скопировать показанный браузером ключ аутентификации и ввести его в ttytter. Естественно, перед тем как это сделать, следует завести для бота отдельного юзера и залогиниться под его учеткой.
Ttytter запрашивает ключ
Твиттер можно использовать не только для выполнения команд, но и для мониторинга машины. Следующий скрипт отправляет в ленту сообщение с информацией о состоянии машины (имя хоста, uptime, нагрузка, свободная память и нагрузка на CPU):
Мониторинг машины с помощью Twitter
Ну и под конец приведу скрипт, не связанный с сетевыми сервисами, но имеющий прямое отношение к сетям и к тому, зачем мы обычно их используем. Это скрипт для запуска и остановки торрент-клиента во время простоя машины:
Скрипт уходит в бесконечный цикл, каждую минуту проверяя, сколько миллисекунд прошло с момента, когда юзер что-либо делал (для этого используется команда xprintidle). Если прошло уже 600 000 мс (десять минут), скрипт выполняет команду, указанную в переменной STARTCMD. В противном случае он выполнит команду STOPCMD, но только тогда, когда до нее была выполнена команда STARTCMD. Если кратко: ничего не делаешь за компом десять минут — запускается STARTCMD, в данном случае это команда запуска всех закачек с помощью Transmission, если нет — приостановка всех закачек. Не любишь Transmission? Нет проблем, вот команды для Deluge:
Вместо выводов
Не удивлюсь, если все описанное в статье покажется тебе очередным велосипедостроением, и даже соглашусь с таким мнением. Все-таки современный Linux — это не та система для сумасшедших экспериментаторов, какой она была пятнадцать лет назад. Сегодня для каждой задачи можно найти отдельный, отлаженный и хорошо работающий инструмент, в том числе графический. Другое дело, что не совсем понятно, стоит ли захламлять систему тяжеловесными написанными на Python приложениями с кучей зависимостей, когда ту же задачу легко решить с помощью простенького скрипта.
Каким путем пойти — выбирать тебе. Встанешь ли ты на темную сторону или выберешь путь джедая?
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Windows unix script editor
Unix Shell Scripting Editor Windows | ||
| ||
Files 1-30 of 60 | Go to 1 2 Next >> page |
|
Photo Editor for Windows 8 is a handy and reliable application designed to provide comprehensive and innovative tools for enhancing digital photos.Photo Editor for Windows 8 bundles a rich set of effects and.
License:Shareware | Price: $0.00 | Downloads (2225 )
Photo Editor for Windows 8 Download
Complete ebook tutorial and reference on Shell Scripting with Bash in Linux/ Unix /BSD. This is the equivalent of a 850-page printed book. It is an official Linux Documentation Project (http://www.tldp.org).
License:Freeware | Price: $0.00 | Size: 2.7 MB | Downloads (2105 )
Advanced Bash Scripting Guide Download
Janotech Unix Shell for Windows provides a complete Unix -like command and programming environment for the Windows operating system. The software consists mainly of a standard set of command-line utilities.
License:Freeware | Price: $0.00 | Size: 3.5 MB | Downloads (353 )
Janotech Unix Shell Download
iPodRobot plist Editor for Windows is a free software that can edit both of XML format and Binary format MAC OS property list file (.plist) under Windows system. Key Features: — Support both XML format.
License:Freeware | Price: $0.00 | Size: 4.2 MB | Downloads (6192 )
plist Editor for Windows Download
PonyPhoto is multi-purpose photo effect processing software designed for vast Windows Phone Users. PonyPhoto is doing the best to let people get their favorite images and enrich their Windows Phone life.
License:Shareware | Price: $0.99 | Size: 4.9 MB | Downloads (164 )
PonyPhoto Editor for Windows Phone 7 Download
Shell Object Editor is a program that allows you to create and delete new Shell objects. A Shell object is not a real folder on your hard drive, but a special shortcut that refers to the real folder. Using.
License:Freeware | Price: $0.00 | Size: 783 KB | Downloads (196 )
Shell Object Editor Download
brePHP is a PHP Editor for Windows written in Delphi. It’s features will include projects, configurable keyboard shortcuts, error checking using php.exe, go to line and go to function, find and replace.
License:Freeware | Price: $0.00 | Downloads (121 )
brePHP — PHP editor for Windows Download
This is a project containing a simple Unix Shell using the C Programming Language that will have features such as an implementation of command line history and more.
License:Freeware | Price: $0.00 | Downloads (117 )
Unix Shell with Extra Features Download
The Heirloom Bourne Shell is a portable variant of the traditional Unix Shell . It has been derived from OpenSolaris code and thus implements the SVR4/SVID3 level of the Shell .Here are some key features of.
License:Freeware | Price: $0.00 | Size: 819 KB | Downloads (107 )
Heirloom Bourne Shell Download
WinEdt is a powerful and versatile text Editor for Windows , with a strong predisposition towards the creation of [La]TeX documents. DO NOT, however, mistake WinEdt itself for a TeX system! You’ll have to.
License:Shareware | Price: $30.00 | Size: 7.3 MB | Downloads (193 )
WinEdt Download
Linspect Editor is a freeware text Editor for Windows . It allows you to open files from remote Linux or Unix servers over an SSH-secured connection, change/update the files and write it back to the server.
License:Freeware | Price: $0.00 | Size: 47.7 MB | Downloads (636 )
Linspect Editor Download
Windows 8 UI Icon Editor gives professional and beginner artists the ability to design and edit all the graphics required in the software development cycle, including icons, static and animated cursors, and.
License:Shareware | Price: $39.95 | Size: 10.5 MB | Downloads (212 )
Windows 8 UI Icon Editor Download
PDF Studio 8 is an easy to use, yet powerful PDF Editor for Windows ; Also works on Mac and Linux / Unix . PDF Studio maintains full compatibility with the PDF format and supports most PDF functions. This.
License:Shareware | Price: $129.00 | Size: 49.0 MB | Downloads (132 )
PDF Studio 8 PDF Software for Windows Download
With Em Editor Professional, a text Editor for Windows , you can create functionally-rich macros using JavaScript or VBScript, allowing you to define most operations. Not only can you define a macro which.
License:Shareware | Price: $39.99 | Size: 1.6 MB | Downloads (324 )
EmEditor Professional (Windows 98/Me) Download
Universal, easy-to-use Editor for Windows Script Files (*.wsf) and scripts (*.vbs, *.js, . ). Re-usable parts of a script code can be referenced as external script files, while the project-specific code is.
License:Shareware | Price: $39.95 | Size: 3.6 MB | Downloads (3169 )
Script Editor Download
Whether you are a professional icon designer, software developer or you simply like to customize your desktop and folders, you will love this icon Editor . Icon Editor for Windows is an all-in-one solution.
License:Shareware | Price: $49.95 | Size: 11.1 MB | Downloads (314 )
Icon Editor for Windows Download
Em Editor Professional, a lightweight text Editor for Windows , supports Unicode (UTF-16, UTF-8, and UTF-7), as well as many international encodings. Em Editor allows you to open huge files (>248GB) quickly.
License:Shareware | Price: $39.99 | Size: 9.6 MB | Downloads (614 )
EmEditor Text Editor Professional Download
Em Editor is a text Editor for Windows that fully supports Unicode, enabling you to edit multiple languages. Em Editor also utilizes an assortment of plug-ins in order to extend the functions of Em Editor for.
License:Shareware | Price: $29.99 | Size: 1.4 MB | Downloads (329 )
EmEditor Standard (Windows 98/Me) Download
PhotoPad image editing software is a free photo Editor for Windows . It allows you to edit and apply effects to photos and other images. When editing photos you can crop, rotate and resize and, if required.
License:Shareware | Price: $19.95 | Size: 510 KB | Downloads (2886 )
PhotoPad Image Editor Download
PDF Studio 7 Pro is an easy to use, yet powerful PDF Editor for Windows , Mac, Linux. PDF Studio maintains full compatibility with the PDF format and supports most PDF functions. This independent user tool.
License:Shareware | Price: $125.00 | Size: 46.8 MB | Downloads (298 )
PDF Studio 7 Pro Windows PDF Editor Download
Oneliner integrates Unix Shell with Emacs text Editor . Oneliner provides various syntax for integration. (e.g. You can connect ‘ Shell pipe’ and ‘Emacs buffer’ directly with simple syntax.)
License:Freeware | Price: $0.00 | Size: 70 KB | Downloads (114 )
Oneliner — Emacs shell mode Download
Command line XML parser using «expat» libraries allowing you to on the fly extract / add / modify / delete / split / format / unformat / count tag value, name and attributes. Usefull for Shell .
License:Freeware | Price: $0.00 | Size: 345 KB | Downloads (126 )
XML-Shell Download
This is another version of the X Editor , which lets you change the font
The X Editor is a text Editor for Windows . It has all of the features you use in a regular text Editor , but it doesn’t.
License:Freeware | Price: $0.00 | Size: 266 KB | Downloads (157 )
X Editor Standard Download
Icon Editor for Windows 8 provides great opportunities for working with Windows 8/7/Vista/XP icons. You will be able to handle Windows 7 Icons with ease. In order to make Windows 8 icons compatible with.
License:Shareware | Price: $29.95 | Size: 6.8 MB | Downloads (280 )
Icon Editor for Windows 8 Download
Editor for Hosts File in Microsoft Windows Operating System is presented in this post. This Free Hosts File Editor for Windows can be used to edit hosts file for all Microsoft Windows Operating Systems like.
License:Freeware | Price: $0.00 | Size: 298 KB | Downloads (256 )
Hosts File Editor Download
Icon Composer gives professional and beginner artists the ability to design and edit all the graphics required in the software development cycle, including icons, static and animated cursors, and other.
License:Shareware | Price: $39.95 | Size: 10.5 MB | Downloads (164 )
Icon Composer Download
Serial Icon Studio gives professional and beginner artists the ability to design and edit all the graphics required in the software development cycle, including icons, static and animated cursors, and other.
License:Shareware | Price: $39.95 | Size: 10.5 MB | Downloads (186 )
Serial Icon Studio Download
A Unix Shell script wrapper for the VI Editor .It is recommended VIB be used as an alias for the VI Editor . VIB creates backups of any files edited using VI to a specified location while maintaining X backup.
License:Freeware | Price: $0.00 | Size: 17 KB | Downloads (107 )
VIB — VI Editor Backup Utility Download
Crimson Editor is a professional source code Editor for Windows . This program is not only fast in loading time, but also small in size (so small that it can be copied in one floppy disk). While it can.
License:Freeware | Price: $0.00 | Size: 1.7 MB | Downloads (196 )
Crimson Editor Portable Download
Power Shell Studio is the most powerful and feature complete Power Shell Integrated Scripting Environment (ISE) available. Our ISE is full of all the tools you need. The updated ribbon UI makes it even easier.
License:Shareware | Price: $349.00 | Size: 70.5 MB | Downloads (133 )
PowerShell Studio Download