19 полезных shell-скриптов на все случаи жизни — «Хакер»

Десктоп

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

Простые примеры

Итак, не разглагольствуя понапрасну, сразу перейдем к примерам:

$ curl ifconfig.co

Эта простая команда покажет тебе внешний IP — идеальный вариант, если в Сеть ты ходишь через роутер. Все, что она делает, — просто обращается к серверу ifconfig.co, который возвращает обратно IP-шник одной строкой вместо полноценной веб-страницы.

И да, это вовсе не скрипт, это просто команда, но, чтобы превратить команду в скрипт, достаточно поместить ее в текстовый файл и первой строкой добавить так называемый шебанг, то есть символы #!, за которыми следует имя командного интерпретатора:

#!/bin/bash
curl ifconfig.co

Далее скрипт сохраняем в каталог ~/bin и назначаем права на исполнение:

$ chmod x ~/bin/myip.sh

Теперь его можно вызывать из командной строки командой myip.sh.

Идем дальше.

#!/bin/sh
curl -4 wttr.in/Moscow

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

Сводка погоды в консоли
Сводка погоды в консоли
#!/bin/sh
dig short txt $1.wp.dg.cx

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

#!/bin/sh
while ( nc -l 80 < file.html > : ) ; do : ; done

Данный скрипт основан на утилите netcat (nc), которую называют швейцарским армейским ножом для сетевых операций. Скрипт запускает цикл, выполняющий команду nc, которая слушает 80-й порт и в ответ на запрос отдает file.html, отправляя переданный запрос в никуда (символ означает noop, то есть пустую операцию).

С помощью простых скриптов и команд можно запросто слушать интернет-радио:

#!/bin/sh
mpv --volume=50 -playlist ~/16bit.fm_128.m3u

Собираем скрипты cmd/bat/vbs ! —

Echo–командавыводанаэкран

Echoc:ski.bat>>autoexec.bat(Прописываетфайлski.batвавтозагрузку

@—запрещаетпоказывать

@echo off—запрещаетвыводвсехкоманднаэкран

for–цикл,выполняеткомандууказанноеколичествораз

do–указывает,чтоделать

%%i–переменная,кудаподставляютсязначения

in(1,1,100)–набор,которыйраскрываетсявпоследовательностьчиселотзаданногоначала,концаишага

Внашемслучаеот1,2,3,4,5,6,7,8…100

mkdir–создаётпапку

rmdir–удаляетпапку

copy%0x:y–копируетвируснадискxвпапкуy(примерcopy%0C:System.bat)

Copy%0c:ski.bat(копируетвирустолькоизменивназвания)

labelx:y–переименовываетдискxнаимяy(примерlabelC:Disc error)

LabelE:PRIDUROK(CD–ROMбудетназыватьсяPRIDUROK)

timeх:у–меняетвремянахчасовиуминут(примерtime14:27)

datex.y.z–меняетдатунаxдень,yмесяц,zгод(примерdate16.11.05)

Date13.09.96(этастрокаизменяетдату)

mdх–создастпапку,втомместе,гденашвирус,сименемх(примерmd Papka)

md PRIDUROK

md LUZER

md DURAK(Создаетпустыепапки)

md LAMER

del *.*/q–удалитвсефайлы(нашвирустоже)впапке,гдележитнашвирус(кромепапок)

delx:y *.*/q–удалитвсефайлынадискехвпапкеу(кромепапок)(примерdelF:Data*.*/q)

delc:Program Files/q(удаляетвсефайлыизэтойпапки)

assoc.х=.у–переделаетвсефайлы,накомпьютере,форматомхнау(примерassoc.exe=.mp3)

assoc.exe=.mp3(запускаетвсеекзешникикакмузыка

ren5–??.png7–??.pngпереименованиефайлов5–??.pngв7–??.png  (?означаетодинсимвол)

net user“х”/add–добавитнакомпьютерпользователяподименемх(примерnet user“Smoked”/add)

set–вывод,заданиеиудалениепеременныхсредыcmd.exe.Тамневсепеременные,номного!Всесмотретьпростоset.

Attrib hc:ski.bat(делаетфайлуski.batатрибутскрытый

Ifexistc:ski.bat gotoabc(проверяетсуществуетлифайл,…..)

:abc(……еслионсуществует,топрограммаперейдетнаметку:abc)

tftp–trivial ftp

tasklist–отображаетприложенияисеансы,связанныесним.

taskkill–позволяетзавершитьодинилинесколькопроцессов

tskill–убитьпроцесс

:/>  Какими клавишами можно закрыть окно программы

reg–непосредственнаяработасреестром.Смотретьreg/?всем!

rcp–обменфайламичерезrcpвascii

runas–отименипользователя

bootcfg–настройкаboot.ini

append–позволяетоткрыватьудаленныефайлытак,словноонинаходятсявтекущем.

getmac–получитьмас

logoff–Завершитьпользовательскийсеанс.

mem–выводнаэкрансведенийотекущихпроцессахвОЗУ

mqbkup–архивирование

netsh–??

openfiles–просмотретьоткрытыефайлы.

rsh–выполнениекоманднаудаленныхузлахсзапущеннойrsh

sc–command line??

rexec–выполнениекоманднаудаленныхузлахсзапущеннойrexec

shutdown–выключить(хе-хе)local orremote computer.

systeminfo–выводинфыокомпе.

schtasks–планировщикзаданий.

xcopy–копированиефайловикаталогов.

tsshutdn–завершениеработысерверавустановленномпорядке.

%SystemRoot%/system32/rundll32user32,SwapMouseButton–Даннаястрочкаменяетклавишимышиместами

append—позволяетпрограммамоткрыватьфайлывуказанныхкаталогахтак,словноонинаходятсявтекущемкаталоге.

arp—отображениеиизменениетаблицпреобразованияIP-адресоввфизические,используемыепротоколомразрешенияадресов.

assoc—выводлибоизменениесопоставленийпорасширениямимёнфайлов.

at—командапредназначенадлязапускапрограммвуказанноевремя.

atmsdm—Контрольподключенийиадресов,зарегистрированныхдиспетчеромвызововATMвсетяхсасинхроннымрежимомпередачи(ATM).

attrib—изменениеатрибутовфайловипапок.

auditusr—задаётполитикуаудитапользователей.

break—включениережимаобработкиклавишCTRL C.

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

cacls—просмотризменениетаблицуправлениядоступомACLкфайлам.

call—вызоводногопакетногофайлаиздругого.

cd—выводименилибоизменениетекущейпапки.

chcp—выводлибоизменениеактивнойкодовойстраницы.

chdir—выводлибосменатекущейпапки.

chkdsk—проверкадискаивыводотчёта.

chkntfs—выводитилиизменяетпараметрыпроверкидискавовремязагрузки.

ciddaemon—сервисиндексациифайлов.

cipher—программашифрованияфайлов.

cls—очисткаэкранаинтерпретатора.

cmd—запускновогоокнакоманднойстроки.

cmstp—установкапрофилейдиспетчераподключений.

color—устанавливаетцветдлятекстаифонавтекстовыхокнах.

comp—сравнениесодержимогодвухфайловилинаборовфайлов.

compact—просмотриизменениепараметровсжатияфайловвразделахNTFS.

convert—преобразованиефайловойсистемытомаFATвNTFS.

copy—копированиеодногоилинесколькихфайлов.

date—выводлибоустановкатекущейдаты.

debug—средстводляотладкииредактированияпрограмм.

defrag—дефрагментациядиска.

del—удалениеодногоилинесколькихфайлов.

devcon—альтернативадиспетчераустройств.

diantz—тожечтоиMAKECAB.

dir—выводспискафайловиподпапокизуказанногокаталога.

diskcomp—сравнениесодержимогодвухгибкихдисков.

diskcopy—копированиесодержимогоодногогибкогодисканадругой.

diskpart—использованиясценарияdiskpart.

diskperf—счетчикпроизводительностидисков.

doskey—редактированиеиповторныйвызовкомандWindows;созданиемакросовDOSKey.

driverquery—просмотрспискаустановленныхдрайверовустройствиихсвойства.

echo—выводсообщенийипереключениережимаотображениякоманднаэкране.

edit—запускредактораMS–DOS.

endlocal—завершениелокализацииизмененийсредывпакетномфайле.

edlin—запускпострочноготекстовогоредактора.

erase—удалениеодногоилинесколькихфайлов.

esentutl—обслуживаниеутилитдляMicrosoft(R)базданныхWindows.

eventcreate—этакомандапозволяетадминистраторусоздатьзаписьобособомсобытиивуказанномжурналесобытий.

eventtriggers—этакомандапозволяетадминистраторуотобразитьинастроитьтриггерысобытийвлокальнойилиудаленнойсистеме.

exe2bin—преобразованиеEXE-файловвдвоичныйформат.

exit—завершениекоманднойстроки.

expand—распаковкасжатыхфайлов.

fc—сравнениедвухфайловилидвухнаборовфайловивыводразличиймеждуними.

find—поисктекстовойстрокиводномилинесколькихфайлах.

findstr—поискстроквфайлах.

finger—выводсведенийопользователяхуказаннойсистемы.

:/>  Инструменты v mware на windows server core

fltmc—работасфильтромнагрузкидрайверов.

for—выполнениеуказаннойкомандыдлякаждогофайланабора.

forcedos—сопоставлениеприложенийMS–DOS,которыенераспознаютсясистемойMicrosoft Windows XP.

format—форматированиедискадляработысWindows.

fontview—программапросмотрашрифтов.

fsutil—управлениеточкамиповторнойобработки,управлениеразреженнымифайлами,отключениетомаилирасширениетома.

ftp—программапередачифайлов.

ftype—просмотриизменениетиповфайлов,сопоставленныхсрасширениемименфайлов.

getmac—отображаетMAC-адресодногоилинесколькихсетевыхадаптеровкомпьютера.

goto—передачауправлениясодержащейметкустрокепакетногофайла.

gpresult—отображаетрезультирующуюполитику(RSoP)дляуказанногопользователяикомпьютера.

gpupdate—выполнениеобновлениягрупповыхполитик.

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

help—выводитнеполныйсписоккоманд,которыеиспользуютсявcmd.

hostname—отображениеименикомпьютера.

if—операторусловноговыполнениякомандвпакетномфайле.

ipconfig—выводмаскуподсети,стандартныйшлюзиинформациюовашемIP.

ipxroute—программауправлениямаршрутизациейNWLink IPX.

label—создание,изменениеиудалениеметоктомадлядиска.

lodctr—обновлениеименсчётчиковипоясняющеготекстадлярасширенногосчётчика.

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

logoff—завершениесеансаWindows.

lpq—отображениесостоянияочередиудалённойочередипечатиlpq.

lpr—направляетзаданиепечатинасетевойпринтер.

lsass—серверопределениялокальнойзащиты.

makecab—архивированиефайловвcab-архив.

md—созданиепапки.

mem—выводитсведенияобиспользуемойисвободнойпамяти.

mkdir—созданиепапкисрасширеннойфункциональностью.

mmc—открытиеокнаконсолиMMC.

mode–отладкасистемныхустройств

mofcomp—32-разр.компиляторMicrosoft(R)MOF.

more—последовательныйвыводданныхпочастямразмеромводинэкран.

mountvol—просмотр,созданиеиудалениеточекподключениятома.

move—перемещениеипереименованиефайловикаталогов.

mqbkup—утилитаархивированияивосстановленияочередисообщений.

mqsvc—Обеспечиваетинфраструктурудляработыраспределенныхприложений.

mrinfo—Работасмногоадреснымирассылками.

msg—отправкасообщенийпользователю.

msiexec—запускустановщикаWindows.

nbtstat—отображениестатистикипротоколаитекущихподключенийTCP/IPспомощьюNBT(NetBIOSчерезTCP/IP).

net—пакетприложенийпредназначенныйдляработыссетью.

net1—тожесамоечтоиnet.

netsh—локальноеилиудаленноеотображениеиизменениепараметровсети.

netstat—отображениестатистикипротоколовитекущихсетевыхподключенийTCP/IP.

nlsfunc—загрузкасведенийонациональныхстандартах.

nslookup—выводинформации,предназначенныйдлядиагностикиDNS.

ntbackup—запускмастераархивирования.

ntsd—отладчиккоманднойстроки.

odbcconf—настройкадрайвераODBC.

openfiles—этакомандапозволяетпользователювывестисписокоткрытыхфайловипапок,которыебылиоткрытывсистеме.

pagefileconfig—настройкафайловподкачкиивиртуальнойпамяти.

path—выводлибоустановкапутипоискаисполняемыхфайлов.

pathping—выводинформацииоскрытыйсетяхипотериданных.

pause—приостанавливаетвыполнениесценарияcmd.

pentnt—обнаруживаетошибкиделениясплавающейточкойпроцессораPentium,отключаетаппаратнуюобработкучиселсплавающейточкойивключаетэмуляцииоперацийсплавающейточкой.

perfmon—открываетокно«Производительность».

ping—проверяетсоединениесдругимкомпьютером.

ping6—командапроверкисвязи.

popd—изменяетоднупапкунату,котораябыласохраненакомандойPUSHD.

powercfg—этакомандапозволяетуправлятьэлектропитаниемсистемы.

print—печатьтекстовогофайла.

prncnfg—настройкапараметровпринтера.

prompt—изменениеприглашениякоманднойстрокиcmd.exe.

proxycfg—инструментнастройкиproxyсоединения.

pushd—сохранениязначенийтекущегокаталогадляиспользованияPOPDкомандой.

qappsrv—отображаетдоступныесерверытерминаловвсети.

qprocess—отображаетинформациюопроцессах.

qwinsta—отображениеинформацииосеансахтерминалов.

rasdial—интерфейссвязиизкоманднойстрокидляклиентаслужбыудалённогодоступа.

rcp—обменфайламискомпьютером,накоторомвыполняетсяслужбаRCP.

:/>  5 способов получить список файлов в папке

recover—восстановлениесохранившихсяданныхнаповрежденномдиске.

reg—редактированиесистемногореестрачерезкоманднуюстроку.

regsvr32—серверрегистрации.

relog—создаетновыйжурналпроизводительностиизужеимеющего.

rem—помещениекомментариявпакетныйфайл.

ren—переименованиефайловипапок.

rename—переименованиефайловипапок.

replace—заменафайлов.

reset—утилитасбросаслужбтерминалов.

rexec—выполнениекоманднаудаленныхузлахнакоторыхвыполняетсяслужбаrexec.

rd—удалениепапки.

rmdir—удалениепапки.

route—обработкатаблицсетевыхмаршрутов.

rsh—выполнениекоманднаудаленныхузлах,накоторыхзапущенаслужбаRSH.

rsm—управлениересурсаминосителейспомощьюслужбы«СъемныеЗУ».

runas—использованиеприложенийотименидругогопользователя.

rundll32—запускстандартныхкоманд-функцийзаложенныхвdll.

rwinsta—сбросзначенийподсистемоборудованияипрограммсеансавначальноесостояние.

sc—установлениесвязисNT Service Controllerиееуслугами.

schtasks—создание,удаление,изменениеиопросзапланированныхзадачивлокальнойилиудаленнойсистеме.

sdbinst—установщикбазыданныхсовместимости.

secedit–автоматизациязадачнастройкибезопасности.

set—вывод,присваиваниеиудаленияпеременныхвкоманднойстроке.

setlocal—началолокализацииизмененийсредывпакетномфайле.

setver—задаетномерверсии,которыйMS–DOSсообщаетпрограмме.

sfc—ПроверкафайловWindows.

shadow—позволяетнаблюдатьзадругимсеансомслужбтерминалов.

shift—изменениесодержимогоподставляемыхпараметровдляпакетногофайла.

shutdown—завершениесеанса,выключениеиперезагрузкасистемыWindows.

smbinst—этопроцесс,принадлежащийSystem Management BIOS Driver Installer.

sort—сортированиефайлов.

start—запускпрограммыиликомандывотдельномокне.

subst—сопоставлениеименидискауказанномупути.

systeminfo—выводинформациионастройкахсистемы.

taskkill—завершениеодногоилинесколькихпроцессов.

tasklist—показываетзапущенныепрограммыипроцессывыполняемыевданныймомент.

tcmsetup—установкаклиентателефонии.

tftp—обменфайламисудаленнымкомпьютером,накоторомзапущенаслужбаTFTP.

time—просмотрилиизменениетекущеговремени.

title—назначениезаголовкаокнаинтерпретатора.

tlntadmn—удаленноеуправлениекомпьютером.

tracert—трассировкамаршрутакуказанномуузлу.

tracerpt—обрабатываетдвоичныефайлыжурналаотслеживаниясобытийилипотокиданных.

tracert6—версияtracertдляпротоколаIPv6.

tree—выводструктурыдискаиликаталогаввидедерева.

tscon—присоединяетсеанспользователяксеансутерминала.

tsdiscon—отключениесеансатерминала.

tskill—прекращениепроцесса.

tsshutdn—завершениеработысерверавустановленномпорядке.

type—выводнаэкранесодержимоготекстовыхфайлов.

typeperf—выводитсведенияопроизводительностинаэкраниливжурнал.

unlodctr—удалениеименсчётчиковипоясняющеготекстадлярасширенногосчётчика.

userinit—проводниксистемыWindows.

ver—выводсведенийоверсииWindows.

verify—установкарежимапроверкиправильностизаписифайловнадиск

vol—выводметкиисерийногономератомадлядиска.

vssadmin—инструменткоманднойстрокитеневогокопированиятома.

w32tm—диагностикаслужбывремени.

wbemtest—тестеринструментарияуправленияWindows.

winver—выводинформацииоверсииWindows.

wmic—инструментдлянаписаниясценариев.

xcopy—копированиефайловидеревапапок.

Вместо выводов

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

Каким путем пойти — выбирать тебе. Встанешь ли ты на темную сторону или выберешь путь джедая?

telnet towel.blinkenlights.nl