Windows дээрх скриптээр дамжуулан ubuntu-г удирдах. Линукс эхлэх эсвэл унтрах үед скрипт ажиллуулна. # Мультимедиа болон кодлогч

Учир нь энгийн bash скрипт бичих, бид дараах энгийн алхмуудыг хийх хэрэгтэй:

Энэ бүхэн хэрхэн ажилладаг вэ:

Манай скриптийг амжилттай ажиллуулахын тулд #!/bin/bash скриптийн эхний мөр зайлшгүй шаардлагатай.

Хоёрдахь мөр mkdir testdir нь testdir санг үүсгэдэг

Гурав дахь мөр cd testdir нь үүсгэсэн лавлах testdir руу очих боломжийг танд олгоно

баг хүрэхдараагийн мөрөнд мэдрэгчтэй файл1 файл2 файл3 гурван файл үүсгэнэ

Манай скриптийн мөрөнд байгаа сүүлчийн тушаал ls -al нь өмнөх мөрийн ачаар гурван хоосон файл гарч ирсэн одоогийн директорийн агуулгыг харуулах боломжийг танд олгоно.

Бидний харж байгаагаар манайд энгийн скриптбүх тушаалууд эхэлдэг шинэ мөр. Скриптийг ажиллуулахдаа мөр бүр тодорхой үйлдлүүдийг гүйцэтгэдэг.

Хэрэв та өдөр бүр Линукс дээр ижил төстэй командуудын гинжийг (тогтмол параметрүүдтэй) гүйцэтгэдэг бол та үүнийг бичих нь зүйтэй болов уу. энгийн bash скрипт, энэ нь таны цагийг хэмнэж, ажлаа автоматжуулах боломжийг олгоно.

Юуны өмнө энэ нь юу болохыг олж мэдье скриптмөн яагаад хэрэгтэй вэ.

СкриптАнгли хэлнээс орчуулсан - хувилбар. Бид бүгд кино үздэг, бидний ихэнх нь жүжиг үздэг. Кино/жүжгийг бүтээхийн тулд сценаристууд тэдэнд зориулж скрипт бичдэг бөгөөд үүний үндсэн дээр жүжигчид өөрсдийн дүрийг тайзан дээр, үзэгдэл бүрээр гүйцэтгэдэг бөгөөд үүнээс кино/жүжгийг бүтээдэг. Скрипт бүтээх ажил нь маш хэцүү ажил бөгөөд та бүх зүйлийг хамгийн жижиг нарийн ширийн зүйлийг анхаарч үзэх хэрэгтэй бөгөөд ингэснээр уран бүтээлчид кино зохиолчийн зорьсон зүйлийг биелүүлж, үзэгчид бүрэн бүтээлийг үзэх боломжтой болно.

Үүний нэгэн адил скриптүүд нь хэрэглэгчийн цуглуулсан даалгаврын жагсаалтыг (код) гүйцэтгэхийн тулд тэдгээрийг хялбар бөгөөд хурдан гүйцэтгэхийн тулд бичигдсэн байдаг. үйлдлийн систем. Энгийн скрипт бичихийн тулд програмист боловсрол эзэмших шаардлагагүй.

Эхлээд хамгийн энгийнийг бүтээцгээе скрипт-Shellсистемийг шинэчлэх.

Би бүх үйлдлийг системээр хийх болно Ubuntu, гэхдээ тэдгээр нь бусад системд ч бас хамаатай Линукс, Аас гаралтай Ubuntu. Үүний тулд бидэнд хэрэгтэй: Текст засварлагчскрипт (код) үүсгэх шаардлагатай даалгавруудаар дүүргэх ба Терминал- үүсгэсэн скриптийг гүйцэтгэх. Эдгээр хэрэгслүүдийг ямар ч түгээлтэд суулгасан байдаг Линуксанхдагч.

За ингээд нээцгээе текст засварлагч Гедитгэж нэрлэдэг эхний шаардлагатай тэмдэгтүүдийг оруулна уу Шебанг.
Шебангпрограмчлалын хувьд энэ нь хэш ба хоёр тэмдэгтийн дараалал юм анхаарлын тэмдэг (#! ) скрипт файлын эхэнд. Мөн эдгээр тэмдэгтүүдийг хоосон зайгүйгээр нэмнэ үү /бин/ш- скриптийг гүйцэтгэх орчуулагч. /бин/ш- энэ нь ихэвчлэн байдаг Борн бүрхүүлэсвэл тохирох командын мөрийн орчуулагч "зам/хөл/скрипт"эхний параметр болгон.
Скриптийн эхний шаардлагатай мөр дараах байдлаар харагдах болно.

# Миний анхны Ubuntu шинэчлэлтийн скрипт

Мөрийн хамгийн эхэнд байгаа хэш тэмдэг (#) нь орчуулагч/терминалд энэ мөрийг уншиж, гүйцэтгэх шаардлагагүй гэдгийг ойлгуулна. Ирээдүйд ийм олон мөр байх үед төөрөгдүүлэхгүйн тулд скриптийг бүтээгч кодын энэ сегмент/үзэгдэлд юу хийх гэж байгаагаа мэдэж байхын тулд мөр нь энэ скриптийн кодонд хэрэгтэй. Хэш тэмдэг бүхий ийм мөрүүдийг - гэж нэрлэдэг. тайлбар хийлээ .

sudo apt шинэчлэлт
sudo apt upgrade -y

-yХоёрдахь командын төгсгөлд энэ үйлдэл/тушаалыг автоматаар гүйцэтгэх ёстойг орчуулагч/терминалд тодорхой болгож, хэрэглэгч товчлуур дарснаар нэмэлт баталгаажуулалтгүйгээр Оруулна уу. y- Англи хэлний товчлол тиймээ, өөрөөр хэлбэл Тиймээ.

Тэгээд л болоо. Таны анхны скрипт үүсгэгдлээ. Та зураг шиг зүйлийг авах ёстой:


Үүсгэсэн файл/скриптийг хадгалаад өгөх л үлдлээ Нэрэцэст нь заавал сунгах - .sh. Өргөтгөл .shгүйцэтгэх файлд хуваарилагдсан.
Би түүнд өгсөн Нэр - update.sh, хадгална Нүүр хавтасхэрэглэгч:


Үүсгэсэн файл/скриптийг гүйцэтгэх боломжтой болгохын тулд үүнийг хийх зөвшөөрөл өгөх ёстой. Үүнийг хийх хоёр арга бий.

1. Терминал дээр дараах тушаалыг ажиллуулна уу:

sudo chmod +x update.sh

2. Эсвэл файлын менежерийг нээнэ үү Нүүр хавтас(үүсгэсэн скриптийг хадгалсан газар), контекст цэсэн дэх файл дээр хулганы баруун товчийг дарна уу - Properties - Эрхмөн зүйлийг идэвхжүүлэх - Гүйцэтгэл: Файлыг програм болгон ажиллуулахыг зөвшөөрнө үү:


Үүсгэсэн скриптийг ажиллуулахын тулд та терминалыг нээх хэрэгтэй (нийтлэлийн эхэнд терминал бол скриптийг гүйцэтгэхэд шаардлагатай шинж чанар/хэрэгсэл гэж бичсэн байсан) гэж оруулна уу. Ш, скриптийн нэрийг зайгаар тусгаарлана - update.shболон товчлуурыг дар Оруулна уу:


Эсвэл бид терминал руу ордог Ш-аас чирнэ үү файлын менежерскрипт бүхий үүсгэсэн файл (мөн зайгаар тусгаарлагдсан):


Командын дараа файлын зам гарч ирсний дараа Шболон зай, зүгээр л товчлуурыг дарна уу Оруулна ууСистемийн шинэчлэлийг хийхийн тулд (Оруулна уу):


Одоо та хүссэн үедээ өөрийн скрипт ашиглан системийг шинэчлэх боломжтой.

Тийм ээ, терминал дээр эдгээр хоёр командыг гүйцэтгэснээр системийг шинэчлэх нь тийм ч хэцүү биш гэж хэн нэгэн маргаж магадгүй, яагаад зарим скриптүүдийг хөөргөж, үүсгэх хэрэгтэй вэ? Яг зөв. Гэхдээ энэ бол "савыг бурхад шатаадаггүй" гэдгийг харуулах энгийн скрипт бүтээх жишээ юм.

Дээр дурдсанчлан гараар бүртгүүлэх боломжтой хэдий ч үүнийг автоматаар хийх зарим скриптүүдийг тохируулах нь илүү дээр юм.

Скриптүүдийн багц нь нэвтрэх үйл явцыг автоматжуулж, PPP-г эхлүүлдэг тул таны хийх ёстой зүйл бол (root буюу PPP бүлгийн гишүүний хувьд) холболтоо эхлүүлэхийн тулд ганц тушаал өгөх явдал юм.

15.1 Хэрэглэгчийн нэр/нууц үгээр баталгаажуулах холболтын скриптүүд

Хэрэв таны ISP PAP/CHAP шаарддаггүй бол эдгээр нь танд хэрэгтэй скриптүүд юм!

Хэрэв ppp багцыг зөв суулгасан бол танд хоёр жишээ файл байх ёстой. PPP 2.1.2-ын хувьд тэдгээр нь /usr/sbin, PPP 2.2-ын хувьд /etc/ppp/scripts-д байна. Тэднийг дууддаг

PPP-2-ын хувьд. 1.2

болон PPP-2-ын хувьд. 2

ppp-off ppp-on ppp-on-diler

Одоо, хэрэв та PPP 2.1.2 ашиглаж байгаа бол би танаас жишээ файлуудыг устгахыг зөвлөж байна. Тэдэнтэй холбоотой боломжит асуудлууд байгаа (мөн тэд маш сайн ажилладаг гэж битгий хэлээрэй), би тэдгээрийг маш удаан хугацаанд ашигласан (мөн үүнийг HOWTO-ийн эхний хувилбарт санал болгосон)!

PPP 2.1.2 хэрэглэгчийн хувьд боломжтой ШИЛДЭГ хувилбарзагварыг PPP 2.2 түгээлтээс авсан. Би танд хуучин PPP-2.1.2 скриптийн оронд эдгээр скриптүүдийг хуулж ашиглахыг санал болгож байна.

15.2 ppp-н скрипт

Энэ бол холболтыг эхлүүлсэн ХООС скриптүүдийн эхнийх нь юм.

#!/bin/sh # # PPP холболтыг эхлүүлэх скрипт. Энэ бол хэд хэдэн скриптийн эхний хэсэг юм. # Эдгээр нь нууц скрипт биш, учир нь кодууд нь ps командын тусламжтайгаар харагдах болно. # Гэсэн хэдий ч энэ бол жишээ юм. # # Эдгээр нь параметрүүд юм. Шаардлагатай бол тэдгээрийг өөрчил. УТАС=555-1212 # Утасны дугаархолболтууд ACCOUNT=george # Нэвтрэх хэрэглэгчийн нэр ("Жорж Бернс") PASSWORD=gracie # Энэ бүртгэлийн нууц үг (болон "Грэйси Аллен") LOCAL_IP=0.0.0.0 # Хэрэв мэдэгдэж байгаа бол локал IP хаяг. Динамик = 0.0.0.0 REMOTE_IP=0.0.0.0 # Хэрэв хүсвэл алсын IP хаяг. Ихэвчлэн 0.0.0.0 NETMASK=255.255.255.0 # Хэрэв шаардлагатай бол харгалзах сүлжээний маск # # Тэдгээрийг "ppp-on-diler" экспортын УТАСНЫ БҮРТГЭЛИЙН НУУЦ ҮГ # # Энэ нь дууддаг скриптийн байршил юм. утсаар холбогдож # системээр бүртгүүлнэ. Connect # сонголт нь $PATH хувьсагчийг ашигладаггүй тул үнэмлэхүй файлын нэрийг ашиглана уу. (Хэрэв та үүнийг хийвэл "root" данс # аюулгүй байдлын цоорхой байх тул битгий асуугаарай.) # DIALER_SCRIPT=/etc/ppp/ppp-on-diler # # Холболт эхлүүлж байна # # exec /usr/sbin /pppd дибаг / dev/ttySx 38400 \ $LOCAL_IP:$REMOTE_IP \ $DIALER_SCRIPT-г холбох

Энэ бол залгагч дээрх ppp скрипт юм:

#!/bin/sh # # Энэ бол ppp-on скриптийн хоёр дахь хэсэг юм. Энэ нь хүссэн # холболтыг тохируулдаг. # /usr/sbin/chat -v \ ХУГАЦААНЫ ХУГАЦААНЫ 3 \ ЦОГЦОЛТ "\nЗАВГҮЙ\r" \ ЦОГЦОЛТ "\nХариултгүй\r" \ ЗОГСООХ "\nХАНГАХ\r\n\r\nХАНГАХ\r" \ "" \rAT \ "OK-+++\c-OK" ATH0 \ ЗААВАР ТОВЧЛОЛТ 30 \ OK ATDT$ УТАС \ ХОЛБООТОЙ "" \ ogin:--ogin: $ACCOUNT \ assword: $PASSWORD

PPP-2.2-ын хувьд ppp-off скрипт нь дараах байдалтай байна.

#!/bin/sh ########################################### ## ########################### # # Тасалдах төхөөрөмжийг тодорхойл. # if [ "$1" = "" ]; дараа нь DEVICE=ppp0 өөр DEVICE=$1 fi ####################################### ########################### # # Хэрэв ppp0 pid файл байгаа бол програм ажиллана. Түүнийг зогсоо. хэрэв [ -r /var/run/$DEVICE.pid ]; дараа нь kill -INT `cat /var/run/$DEVICE.pid` # # Хэрэв устгах амжилтгүй бол энэ pid доор ямар ч процесс ажиллахгүй. # Энэ нь бас гадаад цоожтой файл байна гэсэн үг юм. # Та үүнийг устгахыг хүсэж магадгүй. хэрэв [! "$?" = "0" ]; дараа нь rm -f /var/run/$DEVICE.pid echo "АЛДАА: хуучирсан pid файлыг устгасан" 1 fi # # Гайхалтай. pppd-д алдаагаа засах боломж олгоорой. echo "$DEVICE-ийн PPP холбоосыг зогсоосон." exit 0 fi # # ppp процесс ppp0-д ажиллахгүй байна echo "АЛДАА: PPP холбоос $DEVICE дээр идэвхгүй байна" Гарах 1

15.3 PPP эхлүүлэх скриптүүдийг засварлах

Шинэ скриптүүд хоёр хэсэгт хуваагддаг тул бид тэдгээрийг ээлжлэн засварлах болно.

ppp-on скрипт

Та өөрийн ISP дээрх хэрэглэгчийн нэр, ISP дээрх нууц үг, ISP утасны дугаараа оруулахын тулд скриптийг засах шаардлагатай.

TELEPHONE= гэх мэт мөр бүр нь =-ийн баруун талд байгаа мэдээллийг агуулсан бүрхүүлийн хувьсагч юм (мэдээж тайлбарыг эс тооцвол). Эдгээр мөр бүрийг өөрийн ISP болон холболтод тохируулан засна уу.

Мөн та /etc/ppp/options файлын IP хаягийг (хэрэв танд хэрэгтэй бол) тохируулж байгаа тул гэсэн мөрийг АРИЛГА.

$LOCAL_IP:$REMOTE_IP \

Мөн үүнийг анхаарч үзээрэй бүрхүүлийн хувьсагч DIALER_SCRIPT нь таны ашиглах гэж буй залгах скриптийн бүтэн зам болон нэрийг заадаг. Хэрэв та үүнийг зөөсөн эсвэл скриптийн нэрийг өөрчилсөн бол энэ мөрийг ppp-on скрипт дээр зөв засварласан эсэхээ шалгаарай!

ppp-on-diler скрипт

Энэ бол бидний ppp холболтыг нэмэгдүүлдэг хоёр дахь скрипт юм.

Анхаарна уу: чатын скрипт нь ихэвчлэн нэг мөрт скрипт байдаг. Урвуу налуу зураасыг олон тооны физик шугамын хоорондох мөрүүдийг зайлахад ашигладаг (хүн уншихад тохиромжтой) ба скриптийн нэг хэсгийг үүсгэхээс зайлсхийдэг.

Гэсэн хэдий ч, бид яг юу болж байгааг ойлгохын тулд үүнийг нарийвчлан үзэх нь маш хэрэгтэй юм!

15.4 Чатын скрипт нь юу гэсэн үг вэ...

Чатын скрипт - хосуудын дараалал хүлээгдэж буй мөрилгээсэн мөр. Ялангуяа бид ямар нэгэн зүйл илгээхээсээ өмнө ямар нэг зүйлийг үргэлж хүлээж байдаг гэдгийг анхаарна уу.

Хэрэв бид эхлээд юу ч хүлээж авалгүйгээр ямар нэг зүйлийг илгээх шаардлагатай бол бид хоосон хүлээх мөрийг (""-ээр тэмдэглэсэн) ашиглах ёстой бөгөөд юу ч илгээхгүйгээр ямар нэг зүйлийг хүлээж байх ёстой! Мөн хэрэв мөр нь олон үгээс бүрдэх бол (жишээ нь, NO CARRIER) та чатыг бүхэлд нь авч үзэхийн тулд тэмдэгт мөрийн эргэн тойронд хашилт хийх ёстой.

Манай загвар дахь чатын шугам:

Exec /usr/sbin/chat -v

Чат руу залгах үед -v сонголт нь чат руу БҮХ I/O-г системийн бүртгэлд хуулахыг хэлдэг (ихэвчлэн /var/log/messages). Чат скрипт найдвартай ажиллаж байгаа гэдэгт итгэлтэй болмогц энэ мөрийг засварлаж -v-г устгаж, системийн бүртгэлдээ шаардлагагүй мэдээллийг хадгална уу.

Энэ нь хүлээгдэж буй оролтыг хүлээн авах түр зогсолтыг 3 секунд болгож тохируулна. Хэрэв та удаан модем ашиглаж байгаа бол энэ утгыг 5 эсвэл 10 секунд хүртэл нэмэгдүүлэх боломжтой!

"\nЗАВГҮЙ\r"-г ЗОГСООХ

Хэрэв BUSY мөр хүлээн авбал үйл ажиллагаа хэвийн бусаар тасалдана.

"\nХариултгүй\r"-г ЗОГСООХГҮЙ

NO ANWER гэсэн мөр хүлээн авбал үйл ажиллагаа хэвийн бусаар тасалдана.

"\nХАНГАХ\r\n\r\nХАНГАХ\r"-г ЗОГСООХ

Хэрэв (бид давтан) RINGING мөрийг хүлээн авбал үйл ажиллагаа хэвийн бусаар тасалдана.

Учир нь хэн нэгэн таны утасны шугамд байна!

Бид модемоос юу ч хүлээхгүй бөгөөд бид түүн рүү шугам илгээх болно

OK-+++\c-OK ATH0

Энэ нь чатын зарим алдааг сэргээх боломжуудыг ашигладаг тул арай илүү төвөгтэй юм.

Юу гэж хэлэх вэ гэвэл... Бид хүлээж байна БОЛЖ БАЙНА УУХэрэв хүлээн аваагүй бол (модем командын горимд ороогүй тул) +++ илгээнэ үү (Хэйс нийцтэй модемуудын стандарт шугам, модемийг буцаана. тушаалын горим) ба хүлээнэ үү БОЛЖ БАЙНА УУ.

Дараа нь бид ATH0 (модемийн холболтыг зогсоох шугам) илгээдэг. Энэ нь таны скриптийг дуудлагын үеэр таны модем унжсан асуудлыг шийдвэрлэх боломжийг олгоно!

Үлдсэн скрипт командуудад 30 секундын завсарлага тохируулъя. Хэрэв та завсарлагааны улмаас чатын скрипт эвдэрсэн бол энэ утгыг 45 секунд ба түүнээс дээш болгож нэмэгдүүлнэ үү.

За ATDT $ TELEPHONE

Бид хүлээж байна БОЛЖ БАЙНА УУ(модемийн ATH0 командын хариу) болон бидний залгахыг хүссэн дугаар руу залгана уу

Бид CONNECT шугамыг хүлээж байна (алсын модем хариулах үед манай модем илгээдэг) хариуд нь юу ч илгээдэггүй.

Ogin:--Ogin: $ACCOUNT

Дахин хэлэхэд бид зарим алдааны засваруудыг оруулж байна. Бид нэвтрэх хүлээх мөрийг (...ogin:) хүлээж байгаа боловч түр завсарласны дараа хүлээн авахгүй бол бид буцах илгээмж илгээж, дараа нь нэвтрэх хүсэлтийг дахин хайдаг. Зөвлөмжийг хүлээн авах үед бид хэрэглэгчийн нэрийг илгээдэг ($ACCOUNT бүрхүүлийн хувьсагчид хадгалагдсан).

Assword: $PASSWORD

Бид нууц үгийн хүсэлтийг хүлээж, нууц үгээ илгээдэг (үүнтэй адил бүрхүүлийн хувьсагчд хадгалагддаг).

Энэ чатын скрипт нь боломжийн алдаа засах чадвартай. чат ихээхэн ач холбогдолтой их хэмжээнийэнд үзүүлсэнээс илүү боломжууд. Учир нь дэлгэрэнгүй мэдээлэлзөвлөх хүн чат (ман 8 чат).

Холболтын сервер талд PPP ажиллаж байна

Ppp-on-diler скрипт нь таныг нэвтэрсэн даруйдаа сервер талд pppd-г автоматаар эхлүүлдэг серверүүдэд маш сайн байдаг ч зарим серверүүд сервер дээр эхлүүлэхийн тулд PPP-г тодорхой тушаал өгөхийг шаарддаг.

Хэрэв та сервер дээр PPP-г эхлүүлэх команд өгөх шаардлагатай бол залгагч дээрх ppp скриптийг засах ёстой.

Скриптийн төгсгөлд (нууц үгийн мөрийн дараа) нэвтрэх мөрийг хайж олох нэмэлт хүлээлт-илгээх мөрийг нэмнэ үү (Боурны бүрхүүлд тусгай утгатай тэмдэгтүүдийг ялгах: $ ба [ эсвэл ] (нээлттэй, хаалттай) дөрвөлжин хаалт).

Чат програм нь бүрхүүлийн командын мөрийг олсны дараа таны ISP-ийн PPP серверт шаардлагатай ppp эхлүүлэх командыг өгөх ёстой.

Миний хувьд миний PPP сервер стандарт bash Linux мөрийг ашигладаг

мөн намайг бичихийг хүсч байна

сервер дээр PPP эхлүүлэх.

Энд зарим алдааг анхаарч үзэх нь зүйтэй болов уу, жишээ нь миний хувьд би ашигладаг

Хартр - хартр ppp

Энэ нь хэрэв бид өгөгдсөн завсарлагаан дотор сануулга хүлээн авахгүй бол бид тэрэгний буцаалтыг илгээж, сануулгыг дахин хайна гэсэн үг юм.

Зөвлөмжийг хүлээн авсны дараа бид ppp мөрийг илгээнэ.

Чат бүхэл бүтэн чатын скриптийг нэг мөр гэж бодохын тулд өмнөх мөрийн төгсгөлд \ нэмэхээ бүү мартаарай!

Харамсалтай нь зарим сервер дээр зөвлөмжийн багц байнга өөрчлөгддөг!

Та юу болоод байгааг ойлгохын тулд миником ашиглан хэд хэдэн удаа нэвтрэх шаардлагатай байж магадгүй хүлээгдэж буйшугам.

15.5 PAP/CHAP холболтод зориулсан чатын скрипт

Хэрэв таны ISP PAP/CHAP ашигладаг бол таны чатын скрипт илүү хялбар болно.

Таны бүх чатын скрипт үүнийг хийх ёстой: утасны дугаар руу залгаж, холболтыг хүлээгээд pppd-д нэвтрэхийг зөвшөөрнө үү!

#!/bin/sh # # Энэ бол ppp-on скриптийн 2-р хэсэг юм. Энэ нь хүссэн холболтын холболтын # протоколыг гүйцэтгэх болно. # exec /usr/sbin/chat -v \ ХУГАЦААНЫ ХУГАЦААНЫ 3 \ ЦОГЦОЛТ "\nЗАВГҮЙ\r" \ ЗОГСООХ "\nХариултгүй\r" \ ЗОГСООХ "\nХАНГАХ\r\n\r\nХАНГАХ\r" \ "" \ rAT \ "OK-+++\c-OK" ATH0 \ ХУГАЦАА 30 \ OK ATDT$ УТАС \ ХОЛБОО "" \

15.6 pppd болон файлын option_file сонголтыг дибаг хийх

Өмнө нь үзсэнчлэн та дибаг хийх мэдээллийг pppd-д -d сонголтоор идэвхжүүлж болно. Дибаг хийх сонголт нь үүнтэй тэнцүү байна.

Бид шинэ скриптээр шинэ холболт үүсгэж байгаа тул одоо дибаг хийх сонголтыг шалгана уу.

Хэрэв таны дискний зай бага бол pppd бүртгэлүүд нь таны syslog файлыг хурдан нэмэгдүүлж, асуудал үүсгэж болзошгүй.

Бүх зүйл зөв ажиллаж байгаад баяртай байгаа бол та энэ сонголтыг устгаж болно.

Хэрэв та ppp сонголтын файлаа /etc/ppp/options эсвэл /etc/ppp/options.ttySx-ээс өөр нэрлэсэн бол файлын нэрийг pppd-д файлын сонголтоор зааж өгнө үү.

Exec /usr/sbin/pppd дибаг хийх файлын сонголтууд.myserver /dev/ttyS0 38400 \

Юуны өмнө энэ нь юу болохыг олж мэдье скриптмөн яагаад хэрэгтэй вэ.

СкриптАнгли хэлнээс орчуулсан - хувилбар. Бид бүгд кино үздэг, бидний ихэнх нь жүжиг үздэг. Кино/жүжгийг бүтээхийн тулд сценаристууд тэдэнд зориулж скрипт бичдэг бөгөөд үүний үндсэн дээр жүжигчид өөрсдийн дүрийг тайзан дээр, үзэгдэл бүрээр гүйцэтгэдэг бөгөөд үүнээс кино/жүжгийг бүтээдэг. Скрипт бүтээх ажил нь маш хэцүү ажил бөгөөд та бүх зүйлийг хамгийн жижиг нарийн ширийн зүйлийг анхаарч үзэх хэрэгтэй бөгөөд ингэснээр уран бүтээлчид кино зохиолчийн зорьсон зүйлийг биелүүлж, үзэгчид бүрэн бүтээлийг үзэх боломжтой болно.

Үүний нэгэн адил скриптүүд нь үйлдлийн систем дээр гүйцэтгэхэд хялбар, хурдан болгохын тулд хэрэглэгчийн цуглуулсан даалгаврын жагсаалтыг (код) гүйцэтгэхийн тулд бичигдсэн байдаг. Энгийн скрипт бичихийн тулд програмист боловсрол эзэмших шаардлагагүй.

Эхлээд хамгийн энгийнийг бүтээцгээе скрипт-Shellсистемийг шинэчлэх.

Би бүх үйлдлийг системээр хийх болно Ubuntu, гэхдээ тэдгээр нь бусад системд ч бас хамаатай Линукс, Аас гаралтай Ubuntu. Үүний тулд бидэнд хэрэгтэй: Текст засварлагчскрипт (код) үүсгэх шаардлагатай даалгавруудаар дүүргэх ба Терминал- үүсгэсэн скриптийг гүйцэтгэх. Эдгээр хэрэгслүүдийг ямар ч түгээлтэд суулгасан байдаг Линуксанхдагч.

Тиймээс, текст засварлагчийг нээнэ үү Гедитгэж нэрлэдэг эхний шаардлагатай тэмдэгтүүдийг оруулна уу Шебанг.
Шебангпрограмчлалын хувьд энэ нь хэш ба анхаарлын тэмдэг гэсэн хоёр тэмдэгтийн дараалал юм. #! ) скрипт файлын эхэнд. Мөн эдгээр тэмдэгтүүдийг хоосон зайгүйгээр нэмнэ үү /бин/ш- скриптийг гүйцэтгэх орчуулагч. /бин/ш- энэ нь ихэвчлэн байдаг Борн бүрхүүлэсвэл тохирох командын мөрийн орчуулагч "зам/хөл/скрипт"эхний параметр болгон.
Скриптийн эхний шаардлагатай мөр дараах байдлаар харагдах болно.

# Миний анхны Ubuntu шинэчлэлтийн скрипт

Мөрийн хамгийн эхэнд байгаа хэш тэмдэг (#) нь орчуулагч/терминалд энэ мөрийг уншиж, гүйцэтгэх шаардлагагүй гэдгийг ойлгуулна. Ирээдүйд ийм олон мөр байх үед төөрөгдүүлэхгүйн тулд скриптийг бүтээгч кодын энэ сегмент/үзэгдэлд юу хийх гэж байгаагаа мэдэж байхын тулд мөр нь энэ скриптийн кодонд хэрэгтэй. Хэш тэмдэг бүхий ийм мөрүүдийг - гэж нэрлэдэг. тайлбар хийлээ .

sudo apt шинэчлэлт
sudo apt upgrade -y

-yХоёрдахь командын төгсгөлд энэ үйлдэл/тушаалыг автоматаар гүйцэтгэх ёстойг орчуулагч/терминалд тодорхой болгож, хэрэглэгч товчлуур дарснаар нэмэлт баталгаажуулалтгүйгээр Оруулна уу. y- Англи хэлний товчлол тиймээ, өөрөөр хэлбэл Тиймээ.

Тэгээд л болоо. Таны анхны скрипт үүсгэгдлээ. Та зураг шиг зүйлийг авах ёстой:


Үүсгэсэн файл/скриптийг хадгалаад өгөх л үлдлээ Нэрэцэст нь заавал сунгах - .sh. Өргөтгөл .shгүйцэтгэх файлд хуваарилагдсан.
Би түүнд өгсөн Нэр - update.sh, хадгална Нүүр хавтасхэрэглэгч:


Үүсгэсэн файл/скриптийг гүйцэтгэх боломжтой болгохын тулд үүнийг хийх зөвшөөрөл өгөх ёстой. Үүнийг хийх хоёр арга бий.

1. Терминал дээр дараах тушаалыг ажиллуулна уу:

sudo chmod +x update.sh

2. Эсвэл файлын менежерийг нээнэ үү Нүүр хавтас(үүсгэсэн скриптийг хадгалсан газар), контекст цэсэн дэх файл дээр хулганы баруун товчийг дарна уу - Properties - Эрхмөн зүйлийг идэвхжүүлэх - Гүйцэтгэл: Файлыг програм болгон ажиллуулахыг зөвшөөрнө үү:


Үүсгэсэн скриптийг ажиллуулахын тулд та терминалыг нээх хэрэгтэй (нийтлэлийн эхэнд терминал нь скриптийг гүйцэтгэхэд шаардлагатай шинж чанар/хэрэгсэл гэж бичсэн байсан) гэж оруулна уу. Ш, скриптийн нэрийг зайгаар тусгаарлана - update.shболон товчлуурыг дар Оруулна уу:


Эсвэл бид терминал руу ордог Шүүсгэсэн файлыг скриптийн хамт файлын менежерээс чирнэ үү (мөн зайгаар тусгаарлагдсан):


Командын дараа файлын зам гарч ирсний дараа Шболон зай, зүгээр л товчлуурыг дарна уу Оруулна ууСистемийн шинэчлэлийг хийхийн тулд (Оруулна уу):


Одоо та хүссэн үедээ өөрийн скрипт ашиглан системийг шинэчлэх боломжтой.

Тийм ээ, терминал дээр эдгээр хоёр командыг гүйцэтгэснээр системийг шинэчлэх нь тийм ч хэцүү биш гэж хэн нэгэн маргаж магадгүй, яагаад зарим скриптүүдийг хөөргөж, үүсгэх хэрэгтэй вэ? Яг зөв. Гэхдээ энэ бол "тогоог бурхад шатаадаггүй" гэдгийг харуулахын тулд энгийн скрипт бүтээсний жишээ юм 😃.

Энгийн скрипт бичиж, ашиглаж сурсны дараа та системийг тохируулах скрипт үүсгэх боломжтой бөгөөд ингэснээр системийг дахин суулгасан тохиолдолд интернетээс ижил төстэй тохиргоотой сайтуудыг хайх шаардлагагүйгээр үүсгэсэн скриптийг ашиглах боломжтой болно.

Та нарын ихэнх нь дараагийн хувилбарын дараа нийтлэх сайтууд гэх мэт системийн тохиргооны сайтуудыг ашигладаг байх. Ubuntu - Суулгасны дараа Ubuntuэсвэл ижил төстэй сайтууд. Эдгээр сайтуудын аль нэгийг нээнэ үү: http://compizomania.blogspot.com/2016/04/ubuntu-1604.html, дараа нь скрипт үүсгэхийн тулд текст засварлагч.
Жишээлбэл, би дараах хоосон зайг хийсэн.

Текст засварлагч дээр эхний шаардлагатай мөрийг оруулна уу:

# Суулгасны дараа Ubuntu-г тохируулж байна
# Системийн шинэчлэл

Дараах нь системийг шинэчлэх командууд юм.

sudo apt шинэчлэлт
sudo apt upgrade -y

Тодорхойлолтын мөр: Хадгалах газар нэмэх:

# Хадгалах газар нэмж байна

Програм хангамжийг цаашид суулгахад шаардлагатай агуулахуудыг нэмнэ үү:

sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) түнш" -y
sudo add-apt-repository ppa:atareao/telegram -y
sudo add-apt-repository ppa:atareao/atareao -y

sudo add-apt-repository ppa:nemh/systemback -y
sudo add-apt-repository ppa:gerardpuig/ppa -y
sudo add-apt-repository ppa:haecker-felix/gradio-daily -y

Шаардлагатай агуулахуудыг нэмсний дараа (би давтан хэлэхэд, та өөрийн хадгалах газартай байж магадгүй, надад жишээ байна) та системийг шинэчлэх хэрэгтэй:

Тодорхойлолтын мөр:

# Хадгалах газрыг холбосны дараа системийн шинэчлэлт

Мөн гүйцэтгэх тушаал:

sudo apt шинэчлэлт

Хадгалах газрууд нэмэгдэж, систем шинэчлэгдсэн тул одоо програм суулгах цаг болжээ.

# Програм суулгаж байна

Програм суулгахын тулд командыг нэг удаа оруулна уу sudo apt суулгахдараа нь доторх зайгаар энэ мөрхүссэн хэмжээгээрээ олон програм нэмж оруулаарай, гол зүйл бол тэдгээрийг зөв эмхэтгэсэн явдал юм. Хэрэв програм нь хэд хэдэн үгээс бүрдсэн бол түүний тушаал нь цул байх ёстой, өөрөөр хэлбэл. доторх бүх үгсийг зураасаар оруулах ёстой, жишээлбэл: эв нэгдлийг засах хэрэгсэл:

sudo apt суулгах my-weather-indicator телеграм скайп lm-sensors hddtemp psensor gdebi systemback unity-tweak-tool ubuntu-cleaner gradio -y

Нэмэлт кодлогч суулгаж байна

# Мультимедиа болон кодлогч

sudo apt install ubuntu-restricted-extras -y

Системийн алдааг идэвхгүй болгох

# Системийн гэмтлийн мэдээг идэвхгүй болгох

sudo sed -i "s/enabled=1/enabled=0/g" "/etc/default/appport"

За ингээд л болоо биз дээ. Энэ үүсгэсэн скрипт файл нь иймэрхүү харагдах ёстой:


Та үүнийг хадгалах хэрэгтэй (товчлуур дээр дарна уу Хадгалах) ба өгөх Нэрөргөтгөлтэй .sh. Би түүнийг дуудсан Тохиргоо\Ubuntu.sh(та үүнийг өөрөөр нэрлэж болно, гэхдээ .sh өргөтгөлийг ашиглахаа мартуузай):


Үүсгэсэн скриптийг гүйцэтгэх боломжтой болгоё:

sudo chmod +x Setup\Ubuntu.sh

Үүсгэсэн скриптийг ажиллуулахын тулд терминал руу оруулна уу Шболон үүсгэсэн скриптийн нэрийг зайгаар тусгаарласан, эсвэл Ш, хоосон зайг сонгоод үүсгэсэн файлыг хамгийн энгийн скрипт дээр тайлбарласны дагуу терминал руу чирээд товчлуурыг дарна уу. Оруулна уу, үүнийг хэрэгжүүлэх.

Анхаарна уу. Тушаал дахь урвуу зураас Тохиргоо\Ubuntu.shтерминал файлын нэр дэх хоёр тусдаа үгийн хоорондох зайг арилгана.

Скриптийг ажиллуулсны дараа системийг дахин суулгаж, дахин тохируулахын тулд үүнийг ирээдүйд хадгалах, хавтас дахь хатуу дискний тусдаа хэсэгт байрлуулах нь дээр. /гэр. Хэрэв байхгүй бол үүлэн үйлчилгээ(Үүлэн өгөгдөл хадгалах) төрөл: DropBox, Cloud Mail.Ru, Mega.coгэх мэт. Ингэснээр та хүссэн үедээ скриптийг өөрөө ашиглах эсвэл найз нөхөд, хамаатан садандаа системийг тохируулахад туслах боломжтой.

Бүрхүүлийн скрипт нь дахин дахин ашиглах боломжтой командуудын дараалал юм. Энэ дарааллын гүйцэтгэлийг ихэвчлэн оруулах замаар гүйцэтгэдэг тушаалын мөрскрипт нэр. Нэмж хэлэхэд, cron-ийн тусламжтайгаар та даалгавруудыг автоматжуулахын тулд скрипт ашиглаж болно. Скриптүүдийн өөр нэг хэрэглээ бол ачаалах, зогсоох процедур юм UNIX системүүд, init скриптүүд демонууд болон үйлчилгээнүүдийн үйлдлийг тодорхойлох үед.

Бүрхүүлийн скрипт үүсгэхийн тулд засварлагчдаа шинэ хоосон файл нээнэ үү. Үүний тулд та ямар ч текст засварлагч ашиглаж болно: vim, emacs, gedit, dtpadгэх мэт; Хэн ч хийх болно. Гэсэн хэдий ч та илүү дэвшилтэт засварлагчийг сонгож болно vimэсвэл emacs, учир нь ийм засварлагч нь shell болон Bash синтаксийг танихаар тохируулагдсан бөгөөд шинэхэн хүмүүсийн байнга гаргадаг хаалт хаах, цэг таслал хэрэглэх гэх мэт алдаанаас зайлсхийхэд сайн туслах болно.

Залгах UNIX командуудТа тэдгээрийг командын мөрөнд оруулсан шиг шинэ хоосон файлд. Өмнөх бүлэгт дурдсанчлан ("Команд ажиллуулах" хэсгийг үзнэ үү) тушаалууд нь бүрхүүлийн функцууд, суурилуулсан командууд, UNIX командууд эсвэл бусад скриптүүд байж болно.

Скриптдээ юу хийдгийг харуулсан мнемоник нэр өгнө үү. Таны скриптийн нэр одоо байгаа тушаалуудтай зөрчилдөхгүй байгаа эсэхийг шалгаарай. Төөрөгдөл гаргахгүйн тулд скриптийн нэр нь ихэвчлэн .sh өргөтгөлөөр төгсдөг. Гэсэн хэдий ч таны систем дээр таны сонгосон ижил нэртэй өөр скриптүүд байж болно. Командуудыг ашиглах аль, хаана байнаболон бусад, одоо байгаа програмууд болон ийм нэртэй файлуудын талаарх мэдээллийг хайж олоорой:

Аль нь - скрипт_нэр хаана байна скрипт_нэр хаана байна скрипт_нэр ( ойролцоогоор. : script_name-г скриптийнхээ нэрээр солино).

Скрипт script1.sh

Энэ жишээнд бид командыг ашигладаг цуурай, Bash-д суурилуулсан бөгөөд энэ нь гаралтыг өгөхөөс өмнө юу хийх шаардлагатайг хэрэглэгчдэд мэдээлэх болно. Хэрэглэгчдэд скрипт юу хийдэг талаар мэдээлэл өгөхийг зөвлөж байна Тэдэнд скрипт юу ч хийхгүй байгаа юм шиг санагдсан бол сандарсангүй. Бид "Интерактив скрипт бичих" 8-р бүлгийн хэрэглэгчдэд мэдэгдэх сэдэв рүү буцах болно.


Зураг 2.1. Скрипт script1.sh

Өөртөө зориулж ижил скрипт бичээрэй. Таны скриптүүд байрлах ~/scripts лавлах үүсгэх нь сайн санаа байх болно. Энэ лавлахыг контентод нэмнэ үү PATH хувьсагч:

PATH="$PATH:~/scripts" экспортлох

Хэрэв та Bash-г дөнгөж эхэлж байгаа бол өөр өөр бүрхүүлийн бүтцэд өөр өөр өнгө ашигладаг текст засварлагчийг ашиглаарай. Синтакс онцлохыг дэмждэг vim, gvim, (x) emacs, бичихболон бусад олон редакторуудын хувьд өөрийн дуртай засварлагчийн баримт бичгийг үзнэ үү.

Скриптийг гүйцэтгэж байна

Скриптийг ажиллуулахын тулд зохих хэрэглэгчдэд зориулсан зөвшөөрөлтэй байх ёстой. Зөвшөөрөл тохируулсны дараа шаардлагатай зөвшөөрлөө тохируулсан эсэхээ шалгана уу. Үүнийг хийсний дараа скриптийг бусад командын нэгэн адил ажиллуулж болно:

Willy:~/scripts> chmod u+x script1.sh willy:~/scripts> ls -l script1.sh -rwxrw-r-- 1 willy willy 456 12-р сарын 24 17:11 script1.sh willy:~> script1.sh Скрипт одоо эхэлж байна. Сайн уу Вилли! Би одоо холбогдсон хэрэглэгчдийн жагсаалтыг авчрах болно: 18 хоногийн 15:38, 5:37, 4 хэрэглэгч, ачаалал дундаж: 0.12, 0.22, 0.15 ХЭРЭГЛЭГЧИЙН TTY LOGIN@ СУУДАЛТАЙ JCPU PCPU ЯМАР root tty2 - Бямба 14:00 16:25 0.24с 0.05с -bash willy:0 - Бямба 14:00 ? 0.00с? - willy pts/3 - Sat 14pm 3:33m 36.39s 36.39s BitchX willy ir willy pts/2 - Sat 14pm 3:33m 0.13s 0.06s /usr/bin/screen Би одоо хоёр хувьсагчийг тохируулж байна. Энэ бол мөр юм. : хар Мөн энэ бол тоо: 9 Би одоо таны хүсэлтийг буцааж өгч байна. willy:~/scripts> echo $COLOUR willy:~/scripts> echo $VALUE willy:~/scripts>

Энэ бол скриптийг гүйцэтгэх хамгийн түгээмэл арга юм. Ийм скриптүүдийг дэд бүрхүүлд ажиллуулах нь илүү дээр юм. Энэ дэд бүрхүүлд үүсгэгдсэн хувьсагчид, функцууд болон бусад нэрүүд нь зөвхөн тухайн дэд бүрхүүлийн тухайн bash сессэд л мэдэгддэг. Энэ бүрхүүлээс гарч, эх бүрхүүл хяналтыг авах үед бүх тохиргоонууд арилах бөгөөд скриптээр тухайн бүрхүүлийн төлөвт хийсэн өөрчлөлтүүд мартагдах болно.

Хэрэв та скриптүүдийг заагаагүй бол эсвэл . (одоогийн лавлах), та скриптийг дараах байдлаар идэвхжүүлж болно:

./script_name.sh

Скриптийг одоо байгаа бүрхүүл дотор ажиллуулах боломжтой боловч энэ нь ихэвчлэн скрипт өөр бүрхүүлтэй ажиллаж байгаа эсэхийг шалгах эсвэл дибаг хийх зорилгоор ул мөр үүсгэх гэх мэт тусгай функцуудыг авахыг хүсвэл л хийдэг. ойролцоогоор.- script_name-ийн оронд скриптийнхээ нэрийг зааж өгнө үү):

Rbash script_name.sh sh script_name.sh bash -x script_name.sh

Заасан тушаалын бүрхүүл нь таны одоогийн бүрхүүлийн дэд бүрхүүл болж скриптийг гүйцэтгэх болно. Энэ нь скриптийг тодорхой параметрээр эсвэл скриптэд өөрөө заагаагүй тодорхой нөхцөлд ажиллуулахыг хүссэн үед хийгддэг.

Хэрэв та шинэ бүрхүүл эхлүүлэхийг хүсэхгүй байгаа ч скриптийг одоогийн бүрхүүлд ажиллуулахыг хүсвэл эх тушаалыг ашиглана уу:

Эх сурвалж script_name.sh

Энэ тохиолдолд скрипт нь гүйцэтгэх эрх шаардлагагүй. Командууд нь одоогийн бүрхүүлийн контекст дээр хийгдэх тул скриптийг гүйцэтгэж дуусахад таны орчинд хийсэн өөрчлөлтүүд харагдах болно:

Willy:~/scripts> source script1.sh --output ormitted-- willy:~/scripts> echo $VALUE 9 willy:~/scripts>