Десктоп
Раз уж мы заговорили о десктопе, то продолжим. Как и консоль, его тоже можно заскриптовать. Вот, например, скрипт, загружающий случайные обои, опубликованные на 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—выводсведенийопользователяхуказаннойсистемы.
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.
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




