Linux buyruq qobig'i. Buyruq qobig'i. Birinchi dars. Tizim ma'lumotlarini o'rganish

Ushbu maqola asoslarni qamrab oladi Windows buyruq qatori, ya'ni:

  • Buyruqlar qatori tushunchasi;
  • Shell buyruqlari ma'lumotnomasi;
  • Buyruqni bajarishda voqealar ketma-ketligi;
  • Buyruqlar qatori skriptlarini yaratish;
  • Matn va buyruqlar ko'rinishini boshqarish;
  • Tizim ma'lumotlarini o'rganish uchun buyruqlar;
  • Ro'yxatga olish kitobidan foydalanish uchun buyruqlar;
  • Tizim xizmatlarini boshqarish;
  • Tizimlarni buyruq satridan qayta ishga tushirish va o'chirish;
  • Ilovalar va jarayonlarni buyruq satridan boshqaring.

Buyruqlar qatori tushunchasi

Buyruqlar satrini qo'llab-quvvatlash Microsoft Windows operatsion tizimiga o'rnatilgan va unga buyruq qobig'i oynasi orqali kirish mumkin. Buyruqlar satri Windowsning barcha versiyalarida qo'llab-quvvatlanadi va o'rnatilgan buyruqlar, yordamchi dasturlar va skriptlarni ishga tushirish uchun ishlatiladi. Buyruqlar satrining kuchi va moslashuvchanligiga qaramay, ba'zi Windows ma'murlari undan hech qachon foydalanmaydi. Agar sizda etarlicha grafik boshqaruv vositalari mavjud bo'lsa, ulardan faqat foydalanuvchi interfeysi elementlarini bosish orqali foydalanishingiz mumkin.

Biroq, tajribali Windows ma'murlari, malakali texnik yordam mutaxassislari va ilg'or foydalanuvchilar buyruq satrisiz qila olmaydi. Buyruqlar qatoridan qanday qilib to'g'ri foydalanishni bilish, xususan, qaysi buyruq qatori vositalarini tanlash va ular samarali ishlashi uchun ularni qanday va qachon ishlatish - ko'p muammolardan qochish va operatsiyalaringizning muammosiz bajarilishini ta'minlashga yordam beradi. Agar siz bir nechta domenlar yoki tarmoqlarni qo'llab-quvvatlasangiz, buyruq qatori bilan ishlashning vaqtni tejash usullarini tushunish nafaqat muhim, balki kundalik operatsiyalarni avtomatlashtirish uchun zarurdir.

Windowsning har bir yangi versiyasi bilan buyruq qatori yaxshilandi va uning imkoniyatlari kengaytirildi. Buyruqlar qatori nafaqat unumdorlikni oshirish, balki moslashuvchanlikni oshirish bilan bog'liq bo'lgan sezilarli o'zgarishlarga duch keldi. Endi siz Windows-ning oldingi versiyalarida hal qilib bo'lmaydigan muammolarni hal qilish uchun Windows buyruq qatoridan foydalanishingiz mumkin.

Windows buyruq qobig'i muhiti turli yo'llar bilan ishga tushiriladi, xususan, Cmd.exe faylini ishga tushirishda parametrlarni belgilash yoki katalogda saqlangan o'zining boshlang'ich faylidan foydalanish orqali. %SystemRoot%\System32.

Bundan tashqari, buyruq qatori buyruqlar to'plamini bajarish uchun ommaviy rejimda ishga tushirilishi mumkin. Ommaviy rejimda buyruq qatori buyruqlarni birin-ketin o'qiydi va bajaradi.

Windows buyruq satri bilan ishlashda siz foydalanadigan buyruqlar qaerdan kelganligini tushunishingiz kerak. "Native" buyruqlar (operatsion tizimga o'rnatilgan) ikki xil bo'ladi:

  • Mahalliy– buyruqlar qobig‘ida mavjud, ularda alohida bajariladigan fayllar yo‘q;
  • Tashqi- odatda %SystemRoot%\System32 katalogida saqlanadigan alohida bajariladigan fayllarda amalga oshiriladi.

Shell buyruqlariga tezkor havola (Cmd.exe)

  • dots- xaritalarni ko'rsatadi yoki o'zgartiradi ( uyushmalar) fayl turlari;
  • tanaffus— disk raskadrovka paytida to'xtash nuqtalarini o'rnatadi
  • qo'ng'iroq qiling— skriptdan protsedura yoki boshqa skriptni chaqiradi;
  • cd (chdir) - joriy katalog nomini ko'rsatadi yoki joriy katalogni o'zgartiradi;
  • cls— buyruq qatori oynasini va ekran buferini tozalaydi;
  • rang— buyruq qobig‘i oynasining matn va fon ranglarini o‘rnatadi;
  • kechirasiz— fayllarni nusxalaydi yoki fayllarni birlashtirishni amalga oshiradi;
  • sana— joriy sanani ko'rsatadi yoki o'rnatadi;
  • del (o'chirish) - belgilangan faylni, fayllar guruhini yoki katalogni o'chiradi;
  • rej— joriy yoki ko‘rsatilgan katalogdagi kichik kataloglar va fayllar ro‘yxatini ko‘rsatadi;
  • aks-sado— buyruq satri oynasida matnni ko'rsatadi yoki buyruqlar ekranda ko'rsatilishi kerakligini belgilaydi (on|off);
  • endlokal— mahalliylashtirish tugashini bildiradi ( mahalliy qamrov) o'zgaruvchilar;
  • chiqish— buyruq satri qobig'idan chiqish;
  • uchun— to'plamdagi har bir fayl uchun berilgan buyruqni bajaradi;
  • ftype Dasturlarga fayl kengaytmalari moslamalarida joriy fayl turlarini ro'yxatga oladi yoki o'zgartiradi;
  • borish— buyruq tarjimoni partiya skriptida berilgan yorliqli qatorga o‘tishi kerakligini belgilaydi;
  • agar— shartlarga muvofiq buyruqlarni bajaradi;
  • md (mkdir)— joriy yoki belgilangan katalogda kichik katalog yaratadi;
  • harakat— Fayl yoki fayllar guruhini joriy yoki koʻrsatilgan manba katalogidan koʻrsatilgan katalogga koʻchiradi. Shuningdek, katalog nomini o'zgartirishi mumkin;
  • yo'l— bajariladigan fayllar va skriptlarni qidirishda operatsion tizim tomonidan qo‘llaniladigan buyruqlar yo‘lini ko‘rsatadi yoki o‘rnatadi;
  • pauza— ommaviy ish faylining bajarilishini to'xtatadi va klaviaturadan kiritishni kutadi;
  • popd— nomi PUSHD buyrug'i bilan saqlangan katalogni joriy qiladi;
  • taklif— taklif satrida qanday matn ko'rsatilishi kerakligini belgilaydi;
  • surish— joriy katalog nomini saqlaydi va kerak bo'lganda ko'rsatilgan katalogni joriy qiladi;
  • rd (rmdir)— katalog yoki katalogni uning pastki kataloglari bilan birga o‘chiradi;
  • rem— ommaviy skript yoki Config.nt da sharhlarni belgilaydi;
  • ren (nomini o'zgartirish)— Fayl yoki fayllar guruhi nomini o‘zgartiradi;
  • o'rnatish— joriy muhit o‘zgaruvchilarini ko‘rsatadi yoki joriy buyruqlar qobig‘i uchun vaqtinchalik o‘zgaruvchilarni o‘rnatadi;
  • setlocal— mahalliylashtirishning boshlanishini bildiradi ( mahalliy qamrov) paketli skriptlardagi o'zgaruvchilar;
  • siljish— partiya skriptlarida almashtirilgan parametrlar o‘rnini o‘zgartiradi;
  • boshlash— alohida oynada belgilangan dastur yoki buyruqni ishga tushiradi;
  • vaqt— tizim vaqtini ko'rsatadi yoki o'rnatadi;
  • sarlavha— buyruq qobig'i oynasining sarlavhasini o'rnatadi;
  • turi— matnli fayl mazmunini ko‘rsatadi;
  • tekshirish— diskka yozishdan keyin fayllarni tekshirish rejimini yoqadi;
  • jild— disk hajmining yorlig'i va seriya raqamini ko'rsatadi.

Har qanday ichki buyruq sintaksisi ( va eng tashqi) buyruq satriga buyruq nomini kiritish orqali olinishi mumkin, masalan:

Buyruq qobig'i- buyruqlar va skriptlar bilan ishlash uchun juda kuchli muhit. Buyruqlar qatori har xil turdagi buyruqlarni bajarishga imkon beradi: o'rnatilgan buyruqlar, Windows yordam dasturlari va ilovalarning buyruq qatori versiyalari. Turidan qat'i nazar, siz foydalanadigan har bir buyruq bir xil sintaksis qoidalariga amal qilishi kerak. Ushbu qoidalarga ko'ra, buyruq nomidan keyin zarur yoki ixtiyoriy argumentlar keladi. Bundan tashqari, argumentlar kiritish, chiqish yoki standart xatolarni qayta yo'naltirishdan foydalanishi mumkin.

Buyruqni bajarishda voqealar ketma-ketligi

  • Buyruqlar qobig'i buyruq matniga kiritilgan har qanday o'zgaruvchilarni joriy qiymatlari bilan almashtiradi;
  • Agar bir nechta buyruqlar guruhi yoki zanjiri kiritilsa, chiziq alohida buyruqlarga bo'linadi, ular o'z navbatida buyruq nomi va argumentlarga bo'linadi. Keyinchalik, buyruqlar alohida qayta ishlanadi;
  • Agar buyruq nomi yo'lni ko'rsatsa, qobiq shu yo'lda buyruqni qidiradi. Belgilangan katalogda bunday buyruq bo'lmasa, qobiq xatoni qaytaradi;
  • Agar buyruq nomi yo'lni o'z ichiga olmasa, qobiq birinchi navbatda buyruq nomini ichki hal qilishga harakat qiladi. Agar xuddi shu nomdagi ichki buyruq topilsa, u holda ichki buyruq chaqirilgan va darhol bajarilishi mumkin. Agar bir xil nomli ichki buyruq bo'lmasa, qobiq birinchi navbatda joriy katalogdagi buyruqning bajariladigan faylini, so'ngra PATH muhit o'zgaruvchisi ro'yxatidagi kataloglardan qidiradi. Agar buyruq fayli ushbu kataloglarning birortasida bo'lmasa, qobiq xatolikni qaytaradi;
  • Agar buyruq topilsa, u berilgan argumentlar bilan bajariladi va agar kerak bo'lsa, kiritish ushbu argumentlarda ko'rsatilgan manbadan o'qiladi. Buyruqning chiqishi va xatolar Buyruqning satri oynasida ko'rsatiladi yoki belgilangan chiqish va xatoliklarni qabul qiluvchiga yuboriladi.
  • Ko'rib turganingizdek, buyruqlar bajarilishiga ko'plab omillar ta'sir qiladi, jumladan, buyruqlar yo'llari, kiritish/chiqarish yo'nalishi va buyruqlarni guruhlash yoki zanjirlash.

Buyruqlar qobig'i bilan ishlaganda, siz uni Boshlash menyusini ochish orqali boshlagan bo'lishingiz mumkin ( Boshlash) va Dasturlarni tanlash ( Dasturlar) yoki Barcha dasturlar ( Barcha dasturlar), keyin Aksessuarlar ( Standart) va buyruq satri ( Buyruqlar qatori). Buyruqlar qatorini ishga tushirishning boshqa usullari - Run dialog oynasi ( Dasturni ishga tushirish) yoki boshqa ochiq buyruq qobig'i oynasiga cmd kiriting. Bu usullar buyruq qatorini ishga tushirishda argumentlarni belgilash imkonini beradi: buyruq qatori ishini boshqaruvchi kalitlar va qo'shimcha buyruqlar bajarilishini boshlaydigan parametrlar. Masalan, buyruq qobig'ini jim rejimda ishga tushirishingiz mumkin ( ya'ni echo chiqishini o'chirib qo'ying) cmd /q buyrug'i bilan yoki buyruq qobig'ini bajarish uchun berilgan buyruqni bajaring va chiqing - buning uchun cmd /c ni kiriting, undan keyin tirnoq ichida buyruq matni kiriting.

Quyidagi misol buyruq qobig'ini ishga tushiradi, ipconfig buyrug'ini ishga tushiradi, natijalarni faylga chiqaradi va chiqadi:

Cmd /c "ipconfig > c:\ipconfig.txt"

Buyruqlar qatori skriptlarini yaratish

Buyruqlar qatori skriptlari- bajarmoqchi bo'lgan buyruqlar bilan matnli fayllar. Bular odatda Windows buyruqlar qobig'iga kiritadigan buyruqlardir. Biroq, buyruqlarni har safar kerak bo'lganda yozish o'rniga, ularni skript qilib, hayotingizni osonlashtirishingiz mumkin.

Skriptlar standart matn belgilaridan iborat bo'lganligi sababli, ularni har qanday standart matn muharririda yaratish va tahrirlash mumkin, masalan, Notepad ( daftar). Buyruqlarni kiritishda birgalikda bajarilishi kerak bo'lgan har bir buyruq yoki buyruqlar guruhini yangi satrda boshlashni unutmang. Bu ularning to'g'ri bajarilishini ta'minlaydi. Buyruqlar qatori skriptini yaratishni tugatganingizdan so'ng, skript faylini .bat yoki .cmd kengaytmasi bilan saqlang. Ikkala kengaytma ham bir xil ishlaydi. Masalan, tizim nomini, Windows versiyasini va IP konfiguratsiyasini ko'rsatish uchun skript yaratishingiz kerak bo'lsa, SysInfo.bat yoki SysInfo.cmd fayliga quyidagi uchta buyruqni kiriting:

Xost nomi ver ipconfig -all

Matn va buyruqlar ko'rinishini boshqarish

Jamoa ECHO ikkita maqsadga xizmat qiladi: matnni chiqishga yozish ( masalan, buyruq qobig'i oynasiga yoki matn fayliga) va buyruq echo displeyini yoqish/o'chirish uchun. Odatda, skript buyruqlarini ishga tushirganingizda, buyruqlarning o'zi va bu buyruqlarning chiqishi konsol oynasida ko'rsatiladi. Bu buyruq aks-sadosi deb ataladi ( buyruq aks-sadosi).

Matnni ko'rsatish uchun ECHO buyrug'idan foydalanish uchun echo so'ng, keyin ko'rsatmoqchi bo'lgan matnni kiriting:

Echo Tizim xost nomi: hostname

ECHO yordamida buyruqlar aks-sadosini boshqarish uchun echo off yoki echo on ni kiriting, masalan:

Echo off echo Tizim xost nomi: hostname

Chiqishni qobiq oynasiga emas, balki faylga yo'naltirish uchun chiqishni qayta yo'naltirishdan foydalaning, masalan:

Echo off echo Tizim xost nomi: > current.txt hostname » current.txt

Endi buyruq aks-sadosi qanday bostirilganligini ko'rib chiqamiz. Buyruqlar qobig'ini ishga tushiring, echo off, so'ngra boshqa buyruqlarni kiriting. Siz buyruq satri endi ko'rsatilmasligini ko'rasiz. Buning o'rniga, faqat konsol oynasida yozilgan narsa va bajarilgan buyruqlar chiqishi paydo bo'ladi. Skriptlarda ECHO OFF buyrug'i buyruqlar aks-sadosini va buyruq satrini o'chiradi. Skriptlaringizga ECHO OFF buyrug'ini qo'shish orqali siz qobiq oynangiz yoki faylingiz buyruq matni bilan to'lib ketishining oldini olasiz, agar siz faqat ushbu buyruqlarning chiqishi bilan qiziqsangiz.

Tizim ma'lumotlarini o'rganish

Ko'pincha foydalanuvchining kompyuteri yoki masofaviy server bilan ishlashda tizim haqida asosiy ma'lumotlarni olish kerak bo'ladi, masalan, unda ro'yxatdan o'tgan foydalanuvchining nomi, joriy tizim vaqti yoki ma'lum bir faylning joylashuvi. Asosiy tizim ma'lumotlarini to'playdigan buyruqlar quyidagilarni o'z ichiga oladi:

  • HOZIR- joriy tizim sanasi va vaqtini 24 soatlik formatda ko'rsatadi, masalan Sal 9-may 12:30:45 2003. Faqat Windows Server 2003 Resurs Kitida mavjud;
  • WHOAMI— hozirda tizimda roʻyxatdan oʻtgan foydalanuvchi nomi haqida xabar beradi, masalan, adatum\administrator;
  • QAYERDA— qidiruv namunasi yordamida fayllarni qidiradi ( qidiruv namunasi) va mos keladigan natijalar ro'yxatini qaytaradi.

NOW yoki WHOAMI-dan foydalanish uchun buyruq qobig'i oynasiga buyruqni kiriting va Enter tugmasini bosing. WHERE uchun eng keng tarqalgan sintaksisi quyidagicha ko'rinadi:

Bu erda /r tayanch_katalog_fayl_nomi

Bu erda /r parametri ko'rsatilgan katalogdan (base_directory) boshlanib, uning barcha pastki kataloglarini o'z ichiga olgan rekursiv qidiruv uchun ko'rsatilgan, fayl_nomi esa qidirilayotgan faylning to'liq yoki qisman nomi bo'lib, joker belgilarni o'z ichiga olishi mumkin: ? bitta belgi o'rnini bosadi va * belgisi belgilar guruhini almashtiradi, masalan data???.txt yoki data*.*. Quyidagi misol C:\ katalogini va uning barcha pastki kataloglarini nomlari ma'lumotlar bilan boshlanadigan barcha matnli fayllarni qidiradi.

Bu erda /r C:\data*.txt

Shuningdek, nomlari ma'lumotlar bilan boshlanadigan barcha turdagi fayllarni topishingiz mumkin:

Bu erda /r C:\data*.*

Ba'zan tizim konfiguratsiyasi yoki tizim muhiti haqida ma'lumot olishingiz kerak bo'ladi. Muhim ahamiyatga ega tizimlarda ushbu ma'lumot saqlanishi yoki ma'lumot uchun chop etilishi mumkin. Quyida tizim haqida ma'lumot to'plash imkonini beruvchi buyruqlar keltirilgan.

  • DRIVERQUERY— barcha oʻrnatilgan qurilma drayverlari roʻyxati va ularning xususiyatlari, jumladan modul nomi, displey nomi ( ko'rsatiladigan ism), haydovchi turi va tuzilgan sanasi ( haydovchi havola sanasi). Barcha ma'lumotlarni ko'rsatish (/V) rejimi drayverning holati va holatini, ishga tushirish rejimini, xotiradan foydalanish ma'lumotlarini va fayl tizimi yo'lini xabar qiladi. /V opsiyasi barcha imzolanmagan drayverlar haqida batafsil ma'lumotni ham yoqadi.
  • SYSTEMINFO- Tizim konfiguratsiyasi, shu jumladan operatsion tizim versiyasi, turi va ishlab chiqaruvchisi, protsessor, BIOS versiyasi, xotira hajmi, mintaqaviy standartlar, vaqt zonasi va tarmoq adapteri konfiguratsiyasi haqida batafsil ma'lumot beradi.
  • NLSINFO- Batafsil mintaqaviy ma'lumotlarni, shu jumladan standart tilni ko'rsatadi ( standart til), Windows kod sahifasi, vaqt va raqamlarni ko'rsatish formatlari, vaqt mintaqasi va o'rnatilgan kod sahifalari. Bu buyruq faqat Windows Server 2003 resurs to'plamida mavjud.

Mahalliy kompyuteringizda ushbu buyruqlardan foydalanish uchun buyruq qobig'i oynasiga kerakli buyruq nomini kiriting va Enter tugmasini bosing.

Ro'yxatga olish kitobidan foydalanish uchun buyruqlar

Windows ro'yxatga olish kitobi operatsion tizim, ilovalar, foydalanuvchilar va apparat uchun konfiguratsiya ma'lumotlarini saqlaydi. Ushbu ma'lumotlar bo'limlarda ( kalitlari) va parametrlar ( qadriyatlar) ma'lum bir ildiz bo'limida joylashgan ro'yxatga olish kitobi ( ildiz kaliti), bo'limlar va parametrlar qanday va qachon ishlatilishini nazorat qiladi.

Agar siz bo'limlarga boradigan yo'llarni bilsangiz va bo'limlarda ruxsat etilgan ma'lumotlar turlarini tushunsangiz, buyruqdan foydalanishingiz mumkin REG bo'limlar va parametrlarni ko'rish va ularni turli usullar bilan boshqarish. REG bir nechta kichik buyruqlarni qo'llab-quvvatlaydi:

  • REG qo'shish— reestrga yangi bo‘lim yoki element qo‘shadi;
  • REG o'chirish— reestrdan kichik bo‘lim yoki elementni o‘chiradi;
  • REG so'rovi— boʻlim elementlari va boʻlim nomlari roʻyxatini koʻrsatadi ( agar ular mavjud bo'lsa);
  • REG solishtiring— kichik bo'limlar yoki registr elementlarini solishtiradi;
  • REG Kechirasiz— registr elementini mahalliy yoki masofaviy tizimda belgilangan boʻlim yoʻliga nusxa koʻchiradi;
  • REG tiklash— avval saqlangan bo‘limlar, elementlar va parametrlarni reyestrga yozadi;
  • REG saqlash— ko‘rsatilgan pastki kalitlar, elementlar va ro‘yxatga olish kitobi sozlamalarining nusxasini faylga saqlaydi.

Tizim xizmatlarini boshqarish

Xizmatlar ish stantsiyalari va serverlar uchun asosiy funksiyalarni ta'minlaydi. Mahalliy va masofaviy tizimlarda tizim xizmatlarini boshqarish uchun xizmat boshqaruvchisi buyrug'idan foydalaning ( xizmat boshqaruvchisi buyrug'i) S.C., quyi buyruqlar to'plamiga ega, ularning faqat bir qismi quyida tavsiflanadi:

  • SC konfiguratsiyasi— xizmatlarni ro‘yxatdan o‘tkazish va ishga tushirish uchun hisoblarni o‘rnatish;
  • SC so'rovi— kompyuterda sozlangan barcha xizmatlar roʻyxatini koʻrsatish;
  • SC qc— muayyan xizmat konfiguratsiyasini ko'rsatish;
  • SC boshlanishi— ishga tushirish xizmatlari;
  • SC to'xtashi— xizmatlarni toʻxtatish;
  • SC pauzasi— xizmatlarni toʻxtatib turish;
  • SC davom etadi— xizmatlarni qayta tiklash;
  • SC etishmovchiligi— xizmat ishlamay qolganda bajariladigan amallarni belgilash;
  • SC q muvaffaqiyatsizligi- Xizmat ishlamay qolganda bajarilgan harakatlarni ko'ring.

Barcha buyruqlarda siz xizmatlari bilan ishlamoqchi bo'lgan masofaviy kompyuter nomini belgilashingiz mumkin. Buning uchun siz foydalanayotgan kichik buyruq oldiga kompyuterning UNC nomini yoki IP manzilini kiriting. Mana sintaksis:

Sc ServerName kichik buyrug'i

Tizimlarni buyruq satridan qayta ishga tushirish va o'chirish

Tizimlar ko'pincha qayta ishga tushirilishi yoki o'chirilishi kerak. Buning bir usuli - bu mahalliy va masofaviy tizimlar bilan ishlash imkonini beruvchi O'chirish yordam dasturidan foydalanish. Tizimni o'chirish yoki qayta ishga tushirishni boshqarishning yana bir usuli - o'chirish vazifasini belgilash. Bu erda siz Schtasks-dan o'chirish vaqtini belgilashingiz yoki alohida tizimlar uchun o'chirish buyruqlari ro'yxati bilan skript yaratishingiz mumkin.

Quyidagi buyruqlar mahalliy tizimni qayta ishga tushirish va o'chirishni boshqarish imkonini beradi.

Mahalliy tizimni o'chirish:

O'chirish /s /t O'chirishni kechiktirish /1 /f

O'chirish /r /t O'chirishni kechiktirish /1 /f

Ilova, jarayon va samaradorlikni boshqarish

Har safar operatsion tizim yoki foydalanuvchi xizmat, dastur yoki buyruqni ishga tushirganda, Microsoft Windows tegishli dasturni boshqarish uchun bir yoki bir nechta jarayonni boshlaydi. Bir nechta buyruq qatori yordamchi dasturlari sizga dasturlarni kuzatish va boshqarishni osonlashtiradi. Ushbu yordamchi dasturlarga quyidagilar kiradi:

  • Pmon (Jarayon resurslari menejeri) - ishlash statistikasini, jumladan xotira va protsessordan foydalanishni va mahalliy tizimda ishlaydigan barcha jarayonlar ro'yxatini ko'rsatadi. Sizga batafsil ma'lumot olish imkonini beradi " rasmlar» jalb qilingan resurslar va bajarilgan jarayonlar. Pmon Windows resurs to'plami bilan birga keladi;
  • Vazifalar roʻyxati (Vazifalar roʻyxati) - barcha ishlaydigan jarayonlarni nom va jarayon identifikatori bo'yicha sanab o'tadi, foydalanuvchi sessiyasi va band qilingan xotira haqida ma'lumot beradi;
  • Taskkill (Vazifani o'ldirish) - nom yoki identifikator bilan belgilangan jarayonning bajarilishini to'xtatadi. Filtrlardan foydalanib, jarayonlarni ularning holati, seans raqami, protsessor vaqti, xotira maydoni, foydalanuvchi nomi va boshqa parametrlarga qarab to'xtatishingiz mumkin.

Men sizga Windows buyruq qatorining asoslari haqida aytmoqchi bo'lgan narsam shu edi.

Asl: Shell skriptlari bo'yicha boshlanuvchilar uchun qo'llanma: asoslar
Muallif: Yatri Trivedi
Nashr qilingan sana: 2015 yil 29 sentyabr
Tarjimasi: A. Panin
Tarjima sanasi: 2016 yil 4 oktyabr

Linux operatsion tizimiga bag'ishlangan forumlarda qobiq skriptlarini ishlab chiqish mavzusi doimiy ravishda ko'tariladi, biroq ko'plab foydalanuvchilar hali ham u bilan tanish emas. Ushbu oddiy va kuchli dasturlash texnikasini o'rganish vaqtni tejashga, buyruq qatori yordam dasturlari bilan ko'proq tanishishga va muntazam fayllarni boshqarish vazifalarini soddalashtirishga yordam beradi.

Shell skriptini ishlab chiqish jarayoni haqida ko'proq bilib oling

Linux operatsion tizimining foydalanuvchisi ertami-kechmi tizimning buyruq qatori interfeysi bilan shug'ullanishi kerak. Xohlaysizmi yoki yo'qmi, ba'zi vazifalarni ushbu interfeys yordamida hal qilish ixtisoslashtirilgan dasturning GUI-ning turli elementlarini bosishdan ko'ra osonroqdir. Tizimning buyruq qatori interfeysidan qanchalik ko'p foydalansangiz, uning imkoniyatlarini shunchalik ko'p tushunasiz. Aslida, bu interfeys alohida dastur, ya'ni buyruq qobig'i doirasida amalga oshiriladi. Bugungi kunda Linux distributivlarining aksariyati Bash qobig'idan foydalanadi, bu erda siz buyruqlar kiritasiz.

Linuxga o'tishdan oldin Windows bilan faol ishlaganlaringiz, ehtimol, ommaviy ish fayllari haqida eslashadi. Bu kichik matnli fayllar bo'lib, ularga buyruqlar ketma-ketligi Windows tomonidan keyingi bajarilishi uchun joylashtirilishi mumkin. Bu turli xil operatsiyalarni bajarish uchun oqilona va qulay mexanizmdir, masalan, kataloglar yoki yorliqlarni yaratish imkoni bo'lmagan taqdirda maktab kompyuter sinfida o'yinlarni ishga tushirish. Ommaviy fayllar Windows-da foydali bo'lishi mumkin bo'lsa-da, ular shunchaki arzon taqlid qobiq skriptlari.

Shell skriptlari sizga buyruqlar zanjirini yaratish va ularni ommaviy ish fayllari bilan bir xil tarzda bajarish imkonini beradi. Shu bilan birga, ular sizga juda ko'p miqdordagi foydali funktsiyalarni taqdim etadi, bu sizga buyruqlarni almashtirish kabi amallarni bajarishga imkon beradi. Masalan, sana kabi buyruqni ishga tushirishingiz va uning chiqishini fayl nomlash sxemasining bir qismi sifatida ishlatishingiz mumkin. Shunday qilib, har bir nusxa ko'chirilgan fayl nomiga joriy sanani qo'shish orqali ma'lumotlaringizning zaxira nusxalarini yaratish jarayonini avtomatlashtirishingiz mumkin. Biroq, qobiq skriptlarining mazmuni buyruq chaqiruvlari bilan cheklanmasligi kerak. Asosiysi, bu skriptlar to'liq huquqli dasturlardir. Shu sababli, skriptlarni ishlab chiqishda siz to'g'ridan-to'g'ri tizim buyruq qatori interfeysi darajasida for tsikllari, if/then/else va boshqalar kabi klassik dasturlash tili sintaksisidan foydalanishingiz mumkin. Va siz boshqa dasturlash tilini o'rganishingiz shart emas, chunki siz allaqachon bilgan interfeysdan foydalanasiz: buyruq satri.

Menimcha, bu erda tizimning buyruq qatori interfeysining kuchi yotadi. Siz allaqachon ma'lum bo'lgan buyruqlar, shuningdek, deyarli barcha dasturlash tillarida qo'llaniladigan sintaktik tuzilmalar asosida dasturlar yaratishingiz kerak bo'ladi. Har qanday takrorlanadigan va zerikarli ishni bajarishingiz kerakmi? Siz shunchaki avtomatik ravishda ishga tushirish uchun qobiq skriptini yaratishingiz mumkin! Murakkab buyruqni bajarish uchun yorliq kerakmi? Bunday holda siz qobiq skriptini ham yaratishingiz mumkin! Dastur uchun oddiy buyruq qatori interfeysini yaratmoqchimisiz? Faqat qobiq skriptini yarating!

Boshlashdan oldin

Ushbu maqolalar turkumida qobiq skriptlarini ishlab chiqishni ko'rib chiqishdan oldin, bir nechta narsalarni hisobga olish kerak. Biz deyarli barcha Linux distributivlarida standart qobiq bo'lgan Bash qobig'idan foydalanamiz. Biroq, Cygwin kutubxonalari to'plami mavjudligi tufayli u Mac OS va Windows foydalanuvchilari uchun ham mavjud. Ushbu ko'p qirralilik tufayli siz foydalanayotgan dasturiy platformadan qat'i nazar, qobiq skriptlarini yaratishingiz mumkin. Bundan tashqari, shuni ta'kidlash kerakki, skriptlar o'zgartirilmasdan yoki minimal o'zgartirishlar bilan ko'rsatilgan barcha dasturiy platformalarda ishlaydi, agar ularda ishlatiladigan barcha yordamchi dasturlar tizimda mavjud bo'lsa.

Shell skriptlari "administrator" yoki "superuser" imtiyozlarini talab qiladigan yordamchi dasturlardan foydalanishi mumkin, shuning uchun uni ishlab chiqarishga qo'yishdan oldin har bir skriptni yaxshilab sinab ko'rishga arziydi. Bundan tashqari, skriptlarni ishlab chiqishda siz sog'lom fikrdan foydalanishingiz kerak, masalan, ular yordamida qayta ishlangan fayllarning zaxira nusxalari mavjudligini tekshirish. To'g'ri buyruq parametrlarini ishlatish juda muhim, masalan, interaktiv rejimni majburlaydigan rm buyrug'ining -i parametri. Bu ba'zi noxush xatolardan qochadi. Xuddi shu sababga ko'ra, siz tarmoqdan yuklab olingan skriptlarni diqqat bilan o'rganishingiz va har qanday holatda shaxsiy ma'lumotlarning zaxira nusxalarini yaratishingiz kerak.

Asosiysi, qobiq skriptlari oddiy matnli fayllardir. Ularni tahrirlash uchun istalgan matn muharriridan foydalanishingiz mumkin: gedit, emacs, vim, nano... Va ro‘yxat davom etadi. Siz tanlagan matn muharriri maxsus belgili fayllar yoki ofis paketlaridan biri ishlatadigan fayllar emas, balki oddiy matnli fayllarda skript kodini saqlashi mumkinligiga ishonch hosil qilishingiz kerak. Menga nano matn muharririning soddaligi yoqqanligi sababli, men undan foydalanaman.

Skript fayl nomlari va ruxsatlari

Shell skriptlari odatdagi dasturlar kabi bajariladi, shuning uchun ularni bajarish uchun ular to'g'ri ruxsatlarga ega bo'lishi kerak. Quyidagi buyruqni ishga tushirish orqali skriptni bajariladigan qilishingiz mumkin:

Chmod +x ~/somecrazyfolder/skript1

Bu buyruq istalgan foydalanuvchiga berilgan nom bilan skriptni bajarishga imkon beradi. Agar siz faqat ushbu skriptni bajarishingizni istasangiz, yuqoridagi buyruq o'rniga ushbu buyruqni ishlatishingiz kerak bo'ladi:

Chmod u+x ~/somecrazyfolder/skript1

Skriptni bajarishni boshlash uchun siz cd buyrug'i yordamida u bilan katalogga o'tishingiz va uni ishga tushirishingiz kerak bo'ladi:

Cd ~/somecrazyfolder ./script1

Shell skriptlarini ishlab chiqish jarayonini soddalashtirish uchun siz barcha skriptlaringizni uy katalogingizda joylashgan bin katalogiga joylashtirishingiz mumkin:

Aksariyat zamonaviy tarqatishlar ushbu katalogni avtomatik ravishda yaratmaydi, lekin siz uni har doim qo'lda yaratishingiz mumkin. Ushbu katalog bitta foydalanuvchiga tegishli bo'lgan va boshqa barcha foydalanuvchilar uchun mavjud bo'lmagan bajariladigan fayllarni saqlash uchun mo'ljallangan. Skriptlaringizni u yerga joylashtirganingizdan so'ng, ma'lum bir katalogga o'tmasdan yoki "./" prefiksidan foydalanmasdan, xuddi tizim buyruqlarida bo'lgani kabi, oddiygina nomlarini terish orqali ularni bajarishingiz mumkin.

Skript nomini kiritishdan oldin, tizimingizda bir xil nomdagi dastur yo'qligiga ishonch hosil qilish uchun quyidagi buyruqni bajarishingiz kerak:

Qaysi [script_name]

Ko'pgina yangi qobiq skriptlari "test" kabi nomlar bilan skript fayllarini yaratadi va keyin ularni terminal emulyatoridan ishga tushirishga harakat qiladi va hech qanday natijani olmaydi. Bu skript fayli nomi va test tizimi buyrug'i nomi o'rtasida ziddiyat mavjudligi sababli yuzaga keladi, agar argumentlar bo'lmasa, hech narsa qilmaydi. Har doim skript nomi mavjud buyruqlardan biriga zid kelmasligiga ishonch hosil qiling, chunki agar shunday qilsangiz, osonlikcha oldini olish mumkin bo'lgan muammoni hal qilish uchun ko'p vaqtni behuda sarflashingiz mumkin!

Yuqorida aytib o'tganimdek, har bir qobiq skript fayli asosan matnli fayldir. Lekin bu, albatta, unda xohlagan narsangizni yozishingiz mumkin degani emas. Ushbu matn faylini bajarishga urinayotganda, qobiqlar faylning qobiq skript fayli ekanligini va uni qanday qilib to'g'ri qayta ishlash kerakligini aniqlash uchun uning mazmunini tahlil qiladi. Shu sababli, qobiq skriptlarini ishlab chiqish uchun bir nechta oddiy qoidalarni eslab qolishingiz kerak bo'ladi.

  1. Har bir skript "#!/bin/bash" qatoridan boshlanishi kerak.
  2. Har bir yangi skript qatori yangi buyruqni o'z ichiga olishi kerak
  3. Fikr satrlari # belgisi bilan boshlanishi kerak
  4. O'zgartirish buyruqlari qavs ichiga joylashtirilishi kerak ()

Hash portlash

Matn fayli mazmunini tahlil qilishda skriptning asosiy identifikatori uning birinchi qatori hisoblanadi:

#!/bin/bash

Agar siz boshqa buyruq qobig'idan foydalanayotgan bo'lsangiz, ushbu direktivada uning bajariladigan fayliga yo'lni almashtirishingiz mumkin. Sharh satrlari har doim funt belgisi (#) bilan boshlanadi, lekin agar birinchi funt belgisidan keyin undov belgisi (!) va qobiq bajariladigan faylga yo'l bo'lsa, ushbu qoidadan istisno mavjud, bu sizga qobiq yordamida skript, bajariladigan faylga yo'l, u ko'rsatilgan fayl.

Yangi qator = yangi buyruq

Skriptning har bir yangi qatori yangi buyruq yoki murakkabroq sintaktik konstruktsiyaning komponenti sifatida ko'rib chiqilishi kerak. If/then/else iboralari, masalan, bir nechta satrlarni qamrab olishi mumkin, lekin ularning har bir elementi baribir yangi satrda bo'ladi. Buyruqlarni yangi satrlarga o'ramasligingiz kerak, chunki bu birinchi qatorni qisqartiradi va ikkinchisini bajarishga urinayotganda xato xabarini ko'rsatadi. Agar matn muharriringiz ushbu amalni o'zi bajarsa, har qanday holatda avtomatik chiziq o'rash funksiyasini o'chirib qo'yishingiz kerak. Nano matn muharririda avtomatik chiziq uzilishi funksiyasi Alt+L tugmalar birikmasi yordamida o‘chirib qo‘yilgan.

Sharhlar odatda # belgisi bilan boshlanadi

Agar siz # belgisini satr boshiga qo'ysangiz, qobiq bu qatorni e'tiborsiz qoldiradi. Chiziq sharhga aylanadi, undan oldingi buyruq nima chiqishini yoki keyingisi nima qilishini eslatish uchun foydalanishingiz mumkin. Shunga qaramay, siz avtomatik chiziqni uzish funksiyasini o'chirib qo'yishingiz kerak va agar siz chiziqni buzishingiz kerak bo'lsa, birinchi funt belgisini unutmang. Batafsil sharhlardan foydalanish ajoyib amaliyot bo'lib, siz va uchinchi tomon foydalanuvchilari uchun skriptlaringizni o'zgartirishni osonlashtiradi. Ushbu qoidadan yagona istisno yuqorida aytib o'tilgan hashbang konstruktsiyasidir, shuning uchun izohlarda xesh belgisidan (#) keyin undov belgisini (!) darhol ishlatmaslik kerak.

O'zgartirish buyruqlari qavslar ichida joylashgan

Yaqinda barcha buyruqlar o'rnini bosish belgisi (`, klaviaturada tilda ~ bilan bir xil tugmachada joylashgan) yordamida amalga oshirildi. Biz bu mavzuni hozircha yoritmaymiz, lekin ko‘pchilik kirish maqolalarini qaytadan o‘qiganligi sababli, orqadagi belgilar o‘rniga qavslardan foydalanish kerakligini ta’kidlash joiz. Buni bajarishga arziydi, chunki buyruqlarni joylashtirishda, ya'ni buyruqlarni boshqa buyruqlar ichiga joylashtirishda qavslar yaxshiroq ishlaydi.

Sizning birinchi skriptingiz

Keling, nomlariga sana qo'shilgan fayllarni nusxalash imkonini beruvchi oddiy skriptni ishlab chiqishdan boshlaylik. Keling, ushbu skriptni "datecp" deb ataymiz. Avvalo, skript nomi hech qanday tizim yordam dasturining nomiga zid kelmasligiga ishonch hosil qilishni taklif qilaman:

Ko'rib turganingizdek, qaysi buyruq hech qanday natijani chiqarmaydi, shuning uchun bizni ushbu skript fayl nomidan foydalanishga hech narsa to'xtata olmaydi.

Endi ~/bin katalogida bo'sh fayl yaratamiz:

Unutishdan oldin biz yaratgan skript fayli uchun standart ruxsatlarni o'zgartirishimiz kerak:

Endi siz skript kodi ustida ishlashni boshlashingiz mumkin. Buning uchun tanlangan matn muharririda yaratilgan bo'sh faylni oching. Aytganimdek, nano matn muharririning soddaligi menga yoqadi, shuning uchun men bundan foydalanaman.

Nano ~/bin/datecp

Va nihoyat, faylga skriptning to'g'ri ishlashi uchun zarur bo'lgan birinchi qatorni, shuningdek, uning funktsiyalarini tavsiflovchi sharhni qo'shishimiz mumkin.

Keyin o'zgaruvchini e'lon qilishingiz kerak. Agar siz allaqachon algebrani o'rgangan bo'lsangiz, ehtimol bu nima ekanligini bilasiz. O'zgaruvchi ma'lumotni saqlash va u bilan muayyan manipulyatsiyalarni amalga oshirish imkonini beradi. Skriptning boshqa joyida eslatib o'tilganda o'zgaruvchilar "kengaytirilishi" mumkin. Ya'ni, ularning nomlarini ko'rsatish o'rniga ularda saqlangan qiymatlar ko'rsatiladi. Keyinchalik, siz yangi ma'lumotlarni o'zgaruvchida saqlashingiz mumkin va bu yangi ma'lumotlar ushbu o'zgaruvchi bilan keyingi operatsiyalarda qo'llaniladi. Bu ma'lum ma'lumotlarni saqlash uchun juda qulay ob'ekt.

O'zgaruvchimizda qanday ma'lumotlarni saqlaymiz? Keling, unda sana va vaqtni saqlaymiz! Buning uchun sana buyrug'ini chaqirishimiz kerak bo'ladi.

Sana buyrug'ining chiqishini ko'rsatadigan terminal oynasining quyidagi skrinshotiga e'tibor bering:

% belgisi bilan boshlanadigan turli formatlash opsiyalarini qo‘shish orqali buyruq chiqishi formatini o‘z xohishingizga ko‘ra o‘zgartirishingiz mumkinligini ko‘rish oson. Qo'shimcha ma'lumot olish uchun sana buyrug'ining man sahifasini ko'rishingiz mumkin.

Keling, sana buyrug'ining formatlash opsiyalari to'plamidagi oxirgi variantdan foydalanamiz, ya'ni skriptimizdagi "date +%m_%d_%y-%H.%M.%S".

Agar biz ushbu skriptni hozir saqlasak va uni ishga tushirsak, sana buyrug'idan kutilgan natijani olamiz:

Ammo keling, ishlarni biroz boshqacha qilaylik. Men ushbu buyruqning natijasini date_formatted kabi berilgan nomli o'zgaruvchida saqlashni taklif qilaman. Ushbu operatsiya uchun to'g'ri sintaksis quyidagicha:

O'zgaruvchi=$(buyruq -parametrlar argumentlari)

Bizning holatda, bu sintaktik qurilish quyidagicha ko'rinadi:

Date_formatted=$(sana +%m_%d_%y-%H.%M.%S)

Bu buyruqni almashtirish deb ataladigan narsa. Biz bashga aytamizki, har doim "date_formatted" o'zgaruvchisi aytilsa, qavs ichiga olingan buyruq bajarilishi kerak. Shundan so'ng, har safar "date_formatted" o'zgaruvchisi chiqish sifatida tilga olinsa, uning nomi o'rniga qavs ichidagi buyruq chiqishi ishlatiladi.

Va bu misol skript va uning chiqishi:

E'tibor bering, chiqishda ikkita bo'sh joy mavjud. Bu belgilar echo buyrug'idagi qo'shtirnoq oldidan, shuningdek o'zgaruvchi nomidan oldin paydo bo'ladi. Agar ular chiqishda paydo bo'lishini xohlamasangiz, bo'sh joydan foydalanmang. Shuni ham yodda tutingki, agar "echo" buyrug'i bilan chiziq bo'lmasa, skript hech qanday ma'lumot chiqarmaydi.

Keling, stsenariyimizga qaytaylik. Unga faylni nusxalash buyrug'ini qo'shamiz:

Cp -iv $1 $2.$date_formatted

Bu holda faylni nusxalash buyrug'i -i va -v parametrlari bilan ishlatiladi. Birinchi parametr faylni qayta yozishdan oldin niyatlaringizni tasdiqlash imkonini beradi, ikkinchisi esa buyruqqa o'tkazilgan parametrlar haqidagi ma'lumotlarni ko'rsatishga imkon beradi.

Keyinchalik, siz $1 parametrini qo'shganimni bilib olishingiz mumkin. Skriptlarni ishlab chiqishda raqamli qiymatdan keyin dollar belgisi ($) ushbu raqamli qiymatga teng raqamlangan skript argumentiga mos keladi. Masalan, quyidagi buyruqda:

Cp -iv Trogdor2.mp3 ringtone.mp3

birinchi argument "Trogdor2.mp3" va ikkinchi "ringtone.mp3" .

Agar siz skript kodiga yana qarasangiz, faylni nusxalash buyrug'iga ikkita skript argumentini o'tkazganimizni ko'rasiz:

Bu shuni anglatadiki, biz skriptni ishga tushirganimizda, uning to'g'ri ishlashi uchun unga ikkita argument berishimiz kerak bo'ladi. Birinchi argument, $1, "cp -iv" buyrug'iga birinchi argument sifatida taqdim etiladigan nusxa ko'chiriladigan fayl nomi.

Ikkinchi argument, $2, xuddi shu buyruq uchun maqsadli fayl nomi sifatida ishlaydi. Ammo siz muhim farqni ham bilib olishingiz mumkin. Men unga nuqta belgisini va yuqorida muhokama qilingan "date_formatted" o'zgaruvchisiga havolani qo'shdim. Ushbu dizayn nima uchun ekanligiga qiziqyapsizmi?

Va bu skriptni ishga tushirgandan keyin chiqishi:

Shubhasiz, maqsadli fayl nomi skriptga ikkinchi argument sifatida berilgan fayl nomidan iborat, $2 , undan keyin nuqta belgisi va sana buyrug'ining chiqishi! Hammasi mantiqiy, shunday emasmi?

Endi, datecp buyrug'ini bajarganingizda, ushbu skript ishga tushiriladi, bu sizga joriy sana va vaqt haqidagi ma'lumotlarni maqsadli fayl nomiga avtomatik ravishda qo'shadigan faylni nusxalash imkonini beradi. Agar siz fayllarni zaxiralashingiz kerak bo'lsa, bu juda qulay!

Agar tizimingiz o'zingiz xohlagan tarzda ishlashini istasangiz, qobiq skriptlarini ishlab chiqish juda muhimdir. Buning uchun yangi dasturlash tilini o'rganishingiz shart emas. Tizim buyruqlari asosida o'z qobiq skriptlaringizni yaratishda mashq qiling va ularni keyinchalik nima uchun ishlatishingiz haqida o'ylab ko'ring.

O'zingizning qobiq skriptlaringizni yaratish tajribangiz bormi? Ajam foydalanuvchilarga aytadigan gapingiz bormi? Tajribangizni sharhlar bo'limida baham ko'ring! Biz turkumning keyingi maqolalarida qobiq skriptini yaratish jarayonining boshqa jihatlarini ko'rib chiqamiz!

Albatta, Linux OS bilan aloqada bo'lganlarning barchasi kamida bir marta BASH buyruq qobig'i bilan ishlagan (hech bo'lmaganda ular aniq eshitgan). Ammo BASH nafaqat buyruqlar qobig'i, balki u ajoyib skript dasturlash tilidir.
Ushbu maqolaning maqsadi foydalanuvchilarni bash qilishni yaxshiroq tanishtirish, tilning sintaksisi, asosiy texnikasi va xususiyatlari haqida gapirishdir, shunda hatto oddiy foydalanuvchi ham kundalik (haftalik, oylik) muntazam ishlarni bajarish uchun oddiy skriptni tezda yozishi mumkin. , ayting, "tizzada" »Katalogning zaxira nusxasini yaratish uchun skript yarating.

Kirish

BASH - Bourne-Again SHell (uni "u qayta tug'ilgan" yoki "Bourne-Again SHell" deb tarjima qilish mumkin), Unix-ga o'xshash tizimlarda, ayniqsa GNU/Linux-da eng mashhur buyruq tarjimoni. Quyida biz skriptlarni yaratishda foydalanadigan bir qator o'rnatilgan buyruqlar mavjud.

Break for, while yoki qadar sikllaridan chiqadi
continue for, while yoki qadar sikllarining keyingi iteratsiyasini bajaradi
echo chop etish maydoni bilan ajratilgan argumentlarni standart chiqishga
qobiqdan chiqish
eksport argumentlarni muhitdagi bolalar jarayonlariga uzatiladigan o'zgaruvchilar sifatida belgilaydi
xesh argument sifatida ko'rsatilgan buyruqlarning to'liq yo'l nomlarini eslab qoladi, shuning uchun keyingi safar ularga kirishda ularni qidirmaslik
kill jarayonga tugatish signalini yuboradi
pwd joriy ishchi katalogni chop etadi
o'qish qobiq kiritishidan satrni o'qiydi va undan belgilangan o'zgaruvchilarga qiymatlarni belgilash uchun foydalanadi.
return qobiq funksiyasining belgilangan qiymat bilan chiqishiga olib keladi
shift pozitsion parametrlarni chapga siljitadi
test shartli ifodani baholaydi
times shell va uning bolalari tomonidan ishlatiladigan foydalanuvchi nomi va tizim vaqtini ko'rsatadi
trap qobiq signalni qabul qilganda bajarilishi kerak bo'lgan buyruqlarni belgilaydi
sozlanmagan qobiq o'zgaruvchilari yo'q qilinishiga olib keladi
kutish bola jarayonining chiqishini kutadi va chiqish holati haqida xabar beradi.

Va, albatta, o'rnatilgan buyruqlarga qo'shimcha ravishda, biz jarayonda tanish bo'lgan tashqi, alohida buyruq dasturlaridan foydalanamiz.

Eng boshidan nimani bilishingiz kerak

1. Har qanday bash skripti quyidagi qatordan boshlanishi kerak:

#!/bin/bash
bu qatorda # dan keyin! bash tarjimoniga yo'l ko'rsatilgan, shuning uchun agar siz uni boshqa joyga o'rnatgan bo'lsangiz (qaerda, whereis bash deb yozish orqali bilib olishingiz mumkin) uni yo'lingizga o'zgartiring.
2. Izohlar # belgisi bilan boshlanadi (birinchi qatordan tashqari).
3. Bash-da o'zgaruvchilar turiga ega emas (biz ularni quyida muhokama qilamiz)

O'zgaruvchilar va skript parametrlari

Sizga kichik bir misol keltiraman, biz ko'rib chiqamiz:

#!/bin/bash
#bash tarjimoni qayerda saqlanishini belgilang
parametr1=$1 #parametr1 oʻzgaruvchisiga birinchi skript parametrining qiymatini tayinlang
script_name=$0 #script_name o'zgaruvchisini skript nomi qiymatiga tayinlang
echo "Siz $script_name nomli va $parametr1 parametrli skriptni ishga tushirdingiz" # echo buyrug'i ma'lum bir qatorni ko'rsatadi, o'zgaruvchilarga $variable_name orqali kirish mumkin.
echo "Siz $script_name nomli va $parametr1 parametrli skriptni ishga tushirdingiz" # bu yerda biz turli qo'shtirnoqlarni ko'ramiz, farqi shundaki, bitta qo'shtirnoq ichida o'zgaruvchi almashtirish yo'q.
chiqish 0 #0 kodi bilan chiqish (skriptni muvaffaqiyatli yakunlash)

Ite@ite-desktop:~$ ./test.sh qwerty
Siz ./test.sh nomi va qwerty parametri bilan skriptni ishga tushirdingiz
Siz $script_name va $parametr1 parametrli skriptni ishga tushirdingiz

Endi biz o'zgaruvchilardan qanday foydalanishni va parametrlarni skriptga o'tkazishni o'rgandik, endi zaxiralangan o'zgaruvchilar bilan tanishish vaqti keldi:

$DIRSTACK - kataloglar stekining yuqori qismi tarkibi
$EDITOR - standart matn muharriri
$EUID - Samarali UID. Agar siz boshqa foydalanuvchi buyruqlarini bajarish uchun su dasturidan foydalangan bo'lsangiz, bu o'zgaruvchi o'sha foydalanuvchining UID-ni o'z ichiga oladi, shu bilan birga...
$UID - ... haqiqiy identifikatorni o'z ichiga oladi, u faqat login paytida o'rnatiladi.
$FUNCNAME - skriptdagi joriy funksiyaning nomi.
$GROUPS - joriy foydalanuvchi tegishli bo'lgan guruhlar massivi
$HOME - foydalanuvchining uy katalogi
$HOSTNAME - sizning xost nomingiz
$HOSTTYPE - mashina arxitekturasi.
$LC_CTYPE - belgilar kodlashni aniqlaydigan ichki o'zgaruvchi
$OLDPWD - eski ishchi katalog
$OSTYPE - OT turi
$PATH - dasturni qidirish yo'li
$PPID - asosiy jarayon identifikatori
$SECONDS - skriptning ishlash vaqti (sekundlarda)
$# - skriptga o'tkazilgan parametrlarning umumiy soni
$* - barcha argumentlar skriptga o'tkazilmaydi (satrga chiqish)
$@ - avvalgisi bilan bir xil, ammo parametrlar ustunda ko'rsatiladi
$! - Fonda ishlaydigan oxirgi jarayonning PID
$$ - skriptning o'zi PID

Shartlar

Shartli operatorlar, menimcha, hech bo'lmaganda bir marta biror narsaga dastur yozishga harakat qilgan deyarli har bir kishiga tanish. Bashda shartlar quyidagicha yoziladi. yo'l (odatdagidek misolda):
#!/bin/bash
source=$1 #skriptning birinchi parametrini manba oʻzgaruvchisiga qoʻying
dest=$2 #skriptning ikkinchi parametrini dest o'zgaruvchisiga qo'ying

Agar [[ "$source" -eq "$dest" ]] # qo'shtirnoq ichida biz taqqoslash uchun o'zgaruvchilar nomlarini ko'rsatamiz. -eq - "teng" ni bildiruvchi mantiqiy taqqoslash
keyin # agar ular haqiqatan ham teng bo'lsa, unda
echo "User $dest va source $source bir xil fayl!" #xato xabarini ko'rsatish, chunki $source va $dest biz uchun teng
chiqish 1 # xato bilan chiqish (1 - xato kodi)
Aks holda # agar ular teng bo'lmasa
cp $source $dest # keyin cp buyrug'ini bajaring: manbani belgilangan joyga nusxalash
echo "Muvaffaqiyatli nusxalash!"
fi # shartning tugashini bildiradi.

Skriptni bajarish natijasi:
ite@ite-desktop:~$ ./primer2.sh 1 1
1-ilova va 1-manba bir xil fayl!
ite@ite-desktop:~$ ./primer2.sh 1 2
Baxtli nusxa!

if-then-else tuzilishi quyidagicha ishlatiladi:
agar<команда или набор команд возвращающих код возврата(0 или 1)>
keyin
<если выражение после if истино, то выполняется этот блок>
boshqa
<если выражение после if ложно, тот этот>
[[ , [ , test, (()) tuzilmalari yoki boshqa (yoki bir nechta) Linux buyruqlari qaytish kodini qaytaruvchi buyruqlar sifatida ishlatilishi mumkin.
test - mantiqiy taqqoslash uchun ishlatiladi. ifodadan keyin "]" yopish qavs kerak
[ test buyrug'ining sinonimidir
[[ - "[" ning kengaytirilgan versiyasi (2.02 versiyasidan beri) (misoldagi kabi), uning ichida || (yoki), & (va). Yopuvchi qavs bo'lishi kerak "]]"
(()) - matematik taqqoslash.
shaklning ko'p darajali shartlarini qurish uchun:
agar...
keyin....
boshqa
agar....
keyin....
boshqa....

Kodning qisqaligi va o'qilishi uchun siz quyidagi tuzilmadan foydalanishingiz mumkin:
agar ..
keyin...
elif...
keyin...
elif...

Shartlar. Ko'p tanlov

Agar bitta o'zgaruvchini ko'p sonli parametrlar bilan solishtirish kerak bo'lsa, u holda case operatoridan foydalanish maqsadga muvofiqdir.
#!/bin/bash
echo "Ishga tushirish uchun muharrirni tanlang:"
echo "1 Run nano"
echo "2 Run vi dasturi"
echo "3 Start emacs"
echo "4 chiqish"
o'qing #bu yerda biz standart kiritishdan $doing o'zgaruvchisini o'qiymiz

Case $ bajarmoqda
1)
/usr/bin/nano # agar $doing 1 bo'lsa, nano-ni ishga tushiring
;;
2)
/usr/bin/vi # agar $doing 2 ni o'z ichiga olsa, vini ishga tushiring
;;
3)
/usr/bin/emacs # agar $doing 3 ni o'z ichiga olsa, emacsni ishga tushiring
;;
4)
chiqish 0
;;
*) #agar klaviaturadan tavsiflanmagan biror narsa kiritilsa, quyidagilarni bajaring:
echo "Yaroqsiz harakat kiritildi"

Esac # ishning oxiri bayoni.

Natija:
ite@ite-desktop:~$ ./menu2.sh
Ishga tushirish uchun muharrirni tanlang:
1 Nano-dasturni ishga tushiring
2 vi dasturini ishga tushiring
3 emacs-ni ishga tushiring
4 Chiqish

Raqamni tanlab, Enter tugmasini bosgandan so'ng, siz tanlagan muharrir ishga tushadi (agar, albatta, barcha yo'llar to'g'ri ko'rsatilgan bo'lsa va sizda ushbu muharrirlar o'rnatilgan bo'lsa :))
Men if-then-else-fi konstruktsiyasi uchun ishlatiladigan mantiqiy operatorlar ro'yxatini beraman:
-z # qator bo'sh
-n # qator bo'sh emas
=, (==) # satr teng
!= # satr teng emas
-eq # teng
-ne # teng emas
-lt,(<) # меньше
-le,(<=) # меньше или равно
-gt,(>) #ko'proq
-ge,(>=) #katta yoki teng
! #mantiqiy ifodani inkor qilish
-a,(&&) #mantiqiy “VA”
-o,(||) # mantiqiy "YOKI"

Maqolani ortiqcha yuklamaslik uchun til va shartlarning asoslarini ko'rib chiqdik, men uni bir necha qismlarga ajrataman (aytaylik, 3). Ikkinchi qismda biz sikl operatorlari va matematik amallarni bajarishni tahlil qilamiz.

UPD: Ba'zi xatolar tuzatildi
UPD: If-then-else shartlari haqidagi qism yangilandi



Shell skriptlari kompyuterlar paydo bo'lganidan beri tizim ma'murlari va dasturchilarga odatiy vazifalarni avtomatlashtirishga yordam berdi. Ushbu kitobning birinchi nashri 2004 yilda nashr etilganidan beri ko'p narsa o'zgardi, ammo bash qobig'i faqat etakchilik mavqeini mustahkamladi. Shu sababli, uning barcha imkoniyatlaridan foydalanish qobiliyati tizim ma'murlari, muhandislar va ishqibozlar uchun favqulodda ehtiyojga aylanadi. Ushbu kitobda, masalan, dasturiy ta'minotni yig'ish yoki boshqa dasturlarni muvofiqlashtirishda duch kelishi mumkin bo'lgan umumiy muammolar tasvirlangan. Yechimlar esa shunday berilganki, ular osonlikcha asos qilib olinadi va shunga o‘xshash boshqa muammolarga ekstrapolyatsiya qilinadi.

Ushbu kitobning maqsadi bash skriptini dasturlashning amaliy usullarini namoyish etish va juda ko'p tafsilotlarga kirmasdan qisqa, ixcham misollar orqali eng keng tarqalgan yordamchi dasturlarni taqdim etishdir. Ushbu skriptlar bilan tajriba qiling - ular qanday ishlashini tushunish uchun ularni sindiring, tuzating va ehtiyojlaringizga moslang. Bu eng murakkab muammolarni hal qilishning yagona yo'li.

Ikkinchi nashrda nima g'oyib bo'ldi

Ushbu kitobda dasturiy ta'minotni yig'ish yoki boshqa dasturlarni muvofiqlashtirish kabi ko'chma avtomatlashtirilgan yechim yozishga urinishda duch kelishi mumkin bo'lgan umumiy qiyinchiliklar va ularni qanday yengish mumkinligi tasvirlangan. Kitobdagi yechimlar shunday taqdim etilganki, siz ularni asos qilib olishingiz va boshqa shunga o'xshash muammolarga ekstrapolyatsiya qilishingiz mumkin. Misol uchun, 1-bobda biz echo dasturining portativ versiyasini kichik o'rash skripti sifatida yozamiz. Ko'pgina tizim ma'murlari ushbu maxsus skriptni foydali deb topishlari mumkin, ammo asosiy g'oya platformalarda izchil harakatni ta'minlaydigan o'ram skriptini yaratishdir. Kitobning keyingi qismida biz bash skriptining ba'zi qiziqarli xususiyatlarini va Unix tizimlarida mavjud bo'lgan odatiy yordamchi dasturlarni ko'rib chiqamiz, bu bizga eng kuchli variantlarni beradi.

Bu kitob siz uchun, agar...

Bash Unix-ga o'xshash operatsion tizimlar bilan ishlaydigan serverlar yoki ish stantsiyalari bilan ishlaydigan har bir kishi, jumladan veb-ishlab chiquvchilar (ularning ko'pchiligi OS X da ishlab chiqadi va o'z ilovalarini Linux serverlariga joylashtiradi) , tahlilchilar, mobil ilovalarni ishlab chiquvchilar va dasturchilar uchun asosiy vosita bo'lib qolmoqda. Bundan tashqari, maishiy texnikani avtomatlashtirish uchun Raspberry Pi kabi ochiq arxitekturali mikrokompyuterlarida Linuxni ishlatadigan ishqibozlar soni ortib bormoqda. Shell skriptlari bu barcha holatlar uchun juda yaxshi.

Kitobda taqdim etilgan skriptlar amaliy misollarni o'rganish orqali o'zlarining katta tajribalarini kengaytirmoqchi bo'lganlar uchun ham, terminal yoki qobiq skriptlarini vaqti-vaqti bilan ishlatadiganlar uchun ham foydali bo'ladi. Agar siz ikkinchi lagerda bo'lsangiz, bashning ilg'or xususiyatlariga kirishni o'qib, bilimingizni yangilashingiz yoki kengaytirishingiz kerak bo'ladi.

Bu kitob darslik emas! Bizning maqsadimiz amaliy bash skript texnikasini namoyish qilish va (asosan) qisqa va ixcham misollar orqali umumiy yordamchi dasturlarni joriy qilishdir, lekin biz ularni satr satr tasvirlamaymiz. Biz faqat eng asosiy qismlarni tushuntiramiz, ammo tajribali skriptchilar kodning qolgan qismi qanday ishlashini o'zlari o'qib bilib olishlari mumkin. Umid qilamizki, siz, aziz o'quvchi, ular qanday ishlashini tushunish uchun ushbu skriptlar bilan tajriba o'tkazasiz - ularni buzasiz, tuzatasiz va ehtiyojlaringizga moslashtirasiz. Bizning asosiy maqsadimiz har qanday texnik mutaxassisga duch keladigan tarmoqni boshqarish yoki fayllarni sinxronlashtirish kabi odatiy vazifalarni qanday hal qilishni ko'rsatishdir.

Kitob tuzilishi

Ushbu ikkinchi nashr kengaytirilgan original 12 bobni va 3 ta yangi bobni o'z ichiga oladi. Har bir bob qobiq skripti uchun yangi xususiyat yoki foydalanish holatlarini namoyish etadi va ular birgalikda Unixda ishlashni osonlashtirish uchun skript yaratish imkoniyatlarining kengligini qamrab oladi. Kitobda keltirilgan skriptlarning aksariyati Linux va OS X da ishlaydi. Boshqa hollarda biz bu haqda to'g'ridan-to'g'ri yozamiz.

0-bob: Shell skriptiga qisqacha kirish
Bu ikkinchi nashrda kiritilgan mutlaqo yangi bob boʻlib, yangi Unix foydalanuvchilariga bash shell tilining sintaksisi va undan qanday foydalanish haqida qisqacha maʼlumot beradi. Ushbu bobda 1-bobni muvaffaqiyatli o'qish uchun kerak bo'lgan hamma narsa tezda va ortiqcha so'zsiz qamrab olinadi, oddiygina qobiq skriptlarini aniqlashdan tortib oddiy misollarni yaratish va bajarishgacha.

1-bob: Yo'qolgan kutubxona
C, Perl va Python kabi Unix muhitlarida keng qo'llaniladigan dasturlash tillarida raqamlar formatlarini tekshirish, sanalar orasidagi vaqt oralig'ini hisoblash va boshqa ko'plab vazifalar uchun turli xil funktsiyalar va yordamchi dasturlarning keng qamrovli kutubxonalari mavjud. Ammo buyruq qobig'i bilan ishlaganda, biz deyarli hamma narsani o'zimiz hal qilishimiz kerak, shuning uchun bu bob qobiq skriptlarini foydalanuvchilarga qulayroq qiladigan vositalar va usullarni qamrab oladi. Birinchi bobda o'rgangan har bir narsa sizga ushbu kitobda duch keladigan skriptlarni o'qishga va o'zingizni yozishingizga yordam beradi. Biz kiritishni tekshirishning turli funktsiyalarini, BC ga oddiy va kuchli interfeysni, katta raqamlarning o'qilishini yaxshilash uchun tezda vergul qo'shish vositasini, echo buyrug'i foydali -n bayrog'ini qo'llab-quvvatlamaydigan Unix lazzatlari uchun hiylani kiritdik. va skriptlarda ANSI ranglar ketma-ketligini ishlatish uchun skript.

2 va 3-boblar: Maxsus buyruqlarni takomillashtirish va yordamchi dasturlarni yaratish
Ushbu ikki bob standart Unix asboblar to'plamini to'ldiruvchi va kengaytiruvchi yangi buyruqlarni taqdim etadi. Zero, doimiy rivojlanish va takomillashtirish Unixning o'ziga xos xususiyatlaridan biridir. Biz ham ushbu jarayonda ishtirok etamiz va 2 va 3-boblarda biz amalga oshiradigan skriptlarni taklif qilamiz: qulay interaktiv kalkulyator, fayllarni diskdan o'chirmaydigan fayllarni o'chirish vositasi, ikkita eslatma va hodisalarni kuzatish tizimi, joylashishni aniqlash buyrug'ining takomillashtirilgan versiyasi. , bir nechta vaqt zonalarini qo'llab-quvvatlaydigan sana buyrug'i va katalog tarkibi ro'yxatiga qo'shimcha ma'lumotlarni qo'shadigan ls buyrug'ining yangi versiyasi.

4-bob: Unix-ni sozlash
Bu bid'atga o'xshab ko'rinishi mumkin, ammo Unixning ba'zi jihatlari o'nlab yillar davomida rivojlanganidan keyin ham haligacha rivojlanmagandek tuyuladi. Agar siz Unix-ning turli versiyalaridan foydalansangiz, masalan, bepul Linux distributivlaridan Unix-ning OS X, Solaris yoki Red Hat kabi tijorat versiyalariga o'tsangiz, etishmayotgan bayroqlar va buyruqlar, ba'zi buyruqlarning nomuvofiq xatti-harakati va boshqa shunga o'xshash holatlarga duch kelasiz. muammolar. Shuning uchun, ushbu bob Unix buyruqlarining qayta ishlangan versiyalari va interfeyslarini taqdim etadi, bu ularni Unix-ning boshqa lazzatlari bilan bir oz qulayroq yoki mosroq qiladi. Boshqa narsalar qatorida, u GNU bo'lmagan buyruqlarga GNU uslubidagi uzun bayroqlarni qo'shish usulini tasvirlaydi. Bu erda siz turli xil fayllarni siqish yordamchi dasturlari bilan ishlashni osonlashtiradigan bir nechta aqlli skriptlarni topasiz.

5 va 6-boblar: Tizim ma'muriyati: Foydalanuvchilarni boshqarish va tizimga texnik xizmat ko'rsatish
Agar siz ushbu kitobga qiziqsangiz, administrator huquqlariga ega bo'lishingiz va bir yoki bir nechta Unix tizimlarini boshqarish uchun javobgar bo'lishingiz mumkin, hatto u Ubuntu yoki BSD bilan ishlaydigan shaxsiy kompyuter bo'lsa ham. Ushbu ikki bobda ma'muriyatda sizga yordam beradigan bir nechta skriptlar mavjud, jumladan: disk maydonidan foydalanishni tahlil qilish uchun yordamchi dasturlar, diskdagi bo'sh joydan oshib ketganda foydalanuvchilarni avtomatik ravishda elektron pochta orqali xabardor qiladigan disk kvotasi tizimi, killall buyrug'ining takomillashtirilgan amalga oshirilishi va test skripti crontab, jurnal faylini aylantirish vositasi va bir nechta zaxira yordam dasturlari.

7-bob: Internet foydalanuvchilari
Ushbu bobda Internetdagi resurslar bilan ishlashda Unix buyruqlar qatoridan foydalanishning bir qancha ajoyib va ​​oddiy usullarini ko'rsatadigan chindan ham qiziqarli qobiq skriptlari to'plami mavjud. Jumladan: har qanday veb-sahifadan URL-manzillarni olish vositasi, ob-havo ma'lumotlarini olish vositasi, video ma'lumotlar bazalarini qidirish vositasi va veb-saytga avtomatik ravishda elektron pochta orqali xabar beradigan o'zgarishlarni aniqlash vositasi.

8-bob: Webmaster vositalari
Agar siz webmaster bo'lsangiz va o'zingizning Unix tizimingizda yoki tarmoqdagi uzoq serverda ishlaydigan veb-saytga ega bo'lsangiz, ushbu bobda siz tezda veb-sahifalar yaratish, fotosuratlar bilan veb-albomlar yaratish va hatto jurnalga kirish uchun juda qiziqarli vositalarni topasiz. veb-qidiruv natijalari.

9 va 10-boblar: Veb-serverni boshqarish va Internet-serverni boshqarish
Ushbu ikki bobda Internetga ulangan serverlar ma'murlari tez-tez duch keladigan muammolarni hal qilish usullari tasvirlangan. Bu yerda siz veb-server trafigini qayd etishning turli jihatlarini tahlil qiluvchi ikkita skriptni, veb-saytdagi yaroqsiz ichki yoki tashqi havolalarni aniqlash vositalarini va .htaccess fayllarini saqlashni osonlashtiradigan qulay Apache veb-server parolini boshqarish vositasini topasiz. Bundan tashqari, kataloglar va butun veb-saytlarni aks ettirish texnikasi o'rganiladi.

11-bob: OS X uchun skriptlar
Tijoriy jihatdan muvaffaqiyatli va jozibali grafik interfeysi bilan OS X Unix-ni foydalanuvchilarga qulay operatsion tizimga aylantirishda oldinga katta qadam bo'ldi. Eng muhimi, OS X - bu silliq interfeys ortida yashiringan to'liq huquqli Unix operatsion tizimi, ya'ni siz u uchun yozishingiz mumkin bo'lgan juda ko'p foydali va ta'lim skriptlari mavjud. Ushbu bobda nima haqida gap boradi. Ekran tasvirini avtomatlashtirish vositasi bilan ta'minlashdan tashqari, ushbu bob iTunes musiqa kutubxonangiz tuzilishini o'rganishga, Terminal oynalari sarlavhalarini o'zgartirishga va ochish buyrug'ini yaxshilashga yordam beradigan skriptlarni taqdim etadi.

12-bob: O'yinlar va o'yin-kulgi uchun skriptlar
Dasturlash haqida hech bo'lmaganda bir-ikkita o'yinchoq bo'lmasa, bu qanday kitob? 12-bob ilgari taqdim etilgan ko'plab g'oyalar va usullarni birlashtiradi va oltita qiziqarli va juda qiyin o'yinlarni yaratishni tasvirlaydi. Garchi bo'lim sizni xursand qilish uchun yozilgan bo'lsa-da, har bir o'yin uchun kod juda ibratli. Ba'zi bir hiyla va g'ayrioddiy skript dasturlash usullarini namoyish etadigan "Hangman" o'yini ayniqsa diqqatga sazovordir.

13-bob: Bulutda ishlash
Ushbu kitobning birinchi nashri chop etilgandan beri Internet kundalik hayotimizning bir qismiga aylandi. Qurilmalar va fayllarni iCloud, Dropbox va Google Drive kabi bulut xizmatlari bilan sinxronlashtirish mavzusi biz uchun ayniqsa muhimdir. Ushbu bobda ushbu xizmatlardan to'liq foydalanish va fayllar va kataloglarning sinxronlashtirilishi va o'z vaqtida nusxalanishini ta'minlash uchun qobiq skriptlari ko'rsatilgan. Bundan tashqari, bu erda siz fotosuratlar bilan ishlash va matnni o'qish uchun OS X xususiyatlaridan foydalanadigan bir nechta skriptlarni topasiz.

14-bob: ImageMagick va tasvirni qayta ishlash
Buyruqlar qatori ilovalari nafaqat matnli ma'lumotlarni, balki grafiklarni ham qayta ishlay oladi. Ushbu bobda asosiy e'tibor ochiq manbali ImageMagick dasturiy ta'minotini o'z ichiga olgan grafik vositalar to'plamidan foydalangan holda buyruq satridan tasvirlarni aniqlash va qayta ishlashga qaratilgan. Ushbu bobdagi skriptlar tasvir turlarini aniqlashdan tortib kesish va moybo'yoqqa qo'shishgacha bo'lgan umumiy tasvir operatsiyalarini, shuningdek, bir nechta boshqa foydalanish holatlarini amalga oshiradi.

15-bob: Kunlar va sanalar
Yakuniy bobda sanalar va vaqtlar bilan operatsiyalarni soddalashtiradigan texnikalar ko'rsatilgan: ikki sanani necha kun ajratib turadi, sana haftaning qaysi kuniga to'g'ri keladi yoki unga qancha kun qolgan. Biz bu muammolarni ishlatish uchun qulay qobiq skriptlari yordamida hal qilamiz.

Ilova A: Windows 10 da Bash-ni o'rnatish
Biz ikkinchi nashr ustida ishlayotganimizda, Microsoft ochiq kodli dasturiy ta'minotga bo'lgan munosabatini sezilarli darajada o'zgartirdi va hatto 2016 yilda Windows 10 uchun to'liq bash tizimini chiqardi. Garchi kitobdagi misollar bashning ushbu versiyasida sinab ko'rilmagan bo'lsa-da, ko'pchilik g'oyalar va echimlarni unga o'tkazish oson bo'ladi. Ilovada biz sizga Windows 10 da bash-ni o'rnatishni ko'rsatamiz, shunda siz Windows kompyuteringizda skript yaratishda o'z kuchingizni sinab ko'rishingiz mumkin!

Qo'shimcha B: Qo'shimcha stsenariylar
Har qanday yaxshi skaut har doim zaxira rejasi bo'lishi kerakligini biladi! Ushbu kitob ustida ishlayotganda, asosiylaridan birini almashtirish kerak bo'lsa, biz zaxira skriptlarini yaratdik. Oxir-oqibat, bizga zaxira skriptlari kerak emas edi, lekin ularni siz, do'stlarimizdan sir saqlashimiz qo'pollik bo'lar edi. Bu ilova uchta qoʻshimcha skriptni oʻz ichiga oladi: fayl nomini oʻzgartirish, ommaviy buyruqlarni bajarish va oy fazalarini hisoblash uchun – 101 ta stsenariyni koʻrsatganimizdan keyin ularni yashira olmadik.

Mualliflar haqida

Deyv Teylor 1980 yildan beri kompyuter sanoatida ishlaydi. U BSD 4.4 UNIX ni yaratishda yordam bergan va uning dasturlari barcha asosiy UNIX distributivlariga kiritilgan. Ajoyib ma'ruzachi va jurnal va gazetalar uchun minglab maqolalar muallifi. U 20 dan ortiq kitoblar yozgan, jumladan Learning Unix for OS X (O'Reilly Media), Solaris 9 for Dummies (Wiley Publishing) va Sams Teach Yourself Unix in 24 Hours (Sams Publishing). Linux Journal uchun mashhur sharhlovchi va askdavetaylor.com veb-sayti asoschisi, u foydalanuvchilarga texnik yordam ko'rsatadi va yangi gadjetlar sharhlarini joylashtiradi.

Brandon Perry.NET - Mono ning ochiq kodli ilovasi chiqarilishi bilan C# tilida ilovalar yozishni boshladi. Bo'sh vaqtida u Metasploit ramkasi uchun modullar yozishni, ikkilik fayllarni o'rganishni va narsalarni sinab ko'rishni yaxshi ko'radi.

Ilmiy sharhlovchi haqida

Jordi Gutierrez Hermoso- dasturchi, matematik va frilanser xaker. 2002 yildan buyon u Debian GNU/Linux-dan nafaqat uyda, balki ishda ham foydalanadi. Jordi Matlab bilan asosan mos keladigan bepul hisoblash muhiti GNU Octave va tarqatilgan versiyalarni boshqarish tizimi Mercurialni ishlab chiqishda ishtirok etadi. Xobbilarga sof va amaliy matematika, konkida uchish, suzish va trikotaj kiradi. So'nggi paytlarda u issiqxona gazlari chiqindilari muammolari haqida ko'p o'ylaydi va karkidonlarni saqlash bo'yicha harakatlarda qatnashadi.

» Kitob haqida batafsil ma’lumotni quyidagi manzildan olishingiz mumkin

Buyruqlar qatori bilan ishlash

Anton Boyarshinov, Kirill Maslinskiy

Samarali professional ish Linux buyruq satridan foydalanmasdan tasavvur qilib bo'lmaydi. Grafik interfeysga ega tizimlarda ishlashga odatlangan foydalanuvchilar uchun buyruq qatori bilan ishlash noqulaydek tuyulishi mumkin: buyruq satrida bitta sudrab olib tashlash bilan nima qilish mumkinligi uchun klaviaturadan bir necha so‘zni yozish kerak bo‘ladi: argumentli buyruqlar. Biroq, ichida Linux bu turdagi interfeys har doim asosiy bo'lib kelgan va shuning uchun yaxshi rivojlangan. Qo'llaniladigan buyruq qobig'ida Linux, eng keng tarqalgan amallarni bajarishda kuchni tejashning ko'plab usullari mavjud (klavishalarni bosish): uzun buyruq nomlari yoki fayl nomlarini avtomatik ravishda to'ldirish, ilgari bajarilgan buyruqni qidirish va qayta bajarish, fayl nomlari ro'yxatini ba'zilariga ko'ra almashtirish. naqsh va boshqalar. Buyruqlar qatorining afzalliklari, ayniqsa, ko'plab ob'ektlarda shunga o'xshash operatsiyalarni bajarish kerak bo'lganda aniq bo'ladi. GUI tizimida sichqonchani tortish va tushirishlar qancha ob'ektlar bo'lsa, buyruq satrida bitta (uzun va murakkab bo'lsa ham) buyruq etarli bo'ladi;

Ushbu bo'limda buyruq qatori yordamida har qanday foydalanuvchi vazifalarini hal qilish imkonini beradigan asosiy vositalar tasvirlanadi: fayllar va kataloglar bilan arzimas operatsiyalardan (nusxa olish, nom o'zgartirish, qidirish) foydalanuvchining amaliy ishida yuzaga keladigan ommaviy o'xshash operatsiyalarni talab qiladigan murakkab vazifalargacha. , katta hajmdagi ma'lumotlar yoki matnlar bilan ishlashda va tizim boshqaruvida. Avvalo, biz ALT Linux 2.4 Master tarqatishda buyruq satri bilan ishlash qobiliyatini ta'minlaydigan vositalarni (buyruqlar qobig'i va terminal emulyatorlari), so'ngra fayl bilan eng muhim operatsiyalarni bajaradigan asosiy buyruq qatori yordamchi dasturlarini tasvirlaymiz. tizim va ma'lumotlar.

Buyruq qobig'i

Chig'anoqlar haqida umumiy ma'lumot

Buyruq qobig'i(yoki buyruq tarjimoni) - bu dastur bo'lib, uning vazifasi sizning buyruqlaringizni operatsion tizim va amaliy dasturlarga va ularning sizga javoblarini uzatishdir. Vazifalari bo'yicha u command.com ga mos keladi MS-DOS yoki cmd.exe ichida Windows, lekin funktsional ravishda qobiq Linux beqiyos boyroq. Buyruqlar qobig'i tilida siz fayllar va ulardagi ma'lumotlar - skriptlar (skriptlar) bilan ketma-ket amallarni bajarish uchun kichik dasturlarni yozishingiz mumkin.

Tizimga kirganingizdan so'ng (foydalanuvchi nomingiz va parolingizni kiritish orqali) siz buyruq satrini ko'rasiz - bu belgi bilan tugaydigan qator. $ (bundan keyin bu belgi buyruq qatorini belgilash uchun ishlatiladi). Agar o'rnatish paytida grafik interfeys tizim ishga tushganda ishga tushirilishi uchun sozlangan bo'lsa, u holda siz istalgan virtual matn konsolida buyruq satriga o'tishingiz mumkin (bosish orqali). Ctrl-Alt-F1 - Ctrl-Alt-F6) yoki xterm kabi har qanday terminal emulyatsiya dasturidan foydalanish. Terminal emulyatorlari haqida ko'proq ma'lumot olish uchun "Terminallar" bo'limiga qarang. Quyidagi buyruq qobiqlari ALT Linux 2.4 Master tarqatishda mavjud:


Eng keng tarqalgan qobiq Linux. U buyruqlar va fayllar nomlarini to'ldirishi mumkin, buyruqlar tarixini yuritadi va ularni tahrirlash imkoniyatini beradi.

Tizimlarda yaxshi ma'lum bo'lgan makkajo'xori qobig'ining klonlari UNIX buyruq qobig'i.

Ushbu qobiqning o'ziga xos xususiyati shundaki, u umumiy kutubxonalarga bog'liq emas va ba'zi eng muhim yordamchi dasturlarning soddalashtirilgan ilovalarini o'z ichiga oladi, masalan. ls, dd Va gzip. Shuning uchun, kanat, ayniqsa, muayyan tizim nosozliklarini tiklashda yoki muhim umumiy kutubxonalar versiyasini yangilashda foydalidir.

C qobig'ining takomillashtirilgan versiyasi.

Bu erda sanab o'tilgan qobiqlarning eng yangisi, u buyruq argumentlari va qobiq bilan ishlashni yanada qulayroq va samaraliroq qiladigan boshqa ko'plab funktsiyalar uchun rivojlangan avtoto'ldirish imkoniyatlarini amalga oshiradi. Biroq, barcha zsh kengaytmalari sukut bo'yicha o'chirilganligini unutmang, shuning uchun siz ushbu qobiqdan foydalanishni boshlashdan oldin uning hujjatlarini o'qib chiqishingiz va kerakli xususiyatlarni yoqishingiz kerak.

Standart qobiq bash ( Bourne Again Shell). Qaysi qobiqdan foydalanayotganingizni tekshirish uchun buyruqni bajaring: echo $SHELL.

Chig'anoqlar bir-biridan nafaqat qobiliyatlari, balki buyruqlar sintaksisi bilan ham farqlanadi. Agar siz yangi foydalanuvchi bo'lsangiz, ushbu qobiqda ishlashni tavsiflovchi quyidagi misollardan foydalanishni tavsiya qilamiz;

bash qobig'i

Bash-dagi buyruq qatori buyruq nomidan keyin tuzilgan kalitlari(variantlar) - buyruqning harakatini o'zgartiruvchi ko'rsatmalar. Kalitlar belgi bilan boshlanadi - yoki -- , va ko'pincha bitta harfdan iborat. Tugmalar bilan bir qatorda buyruqlar ham bajarilishi mumkin argumentlar(parametrlar) - buyruq bajarilishi kerak bo'lgan ob'ektlarning nomlari (ko'pincha fayllar va kataloglarning nomlari).

Buyruqni kiritish tugmani bosish bilan yakunlanadi Kirish, shundan so'ng buyruq bajarish uchun qobiqqa uzatiladi. Buyruqni bajarish natijasida foydalanuvchi terminalida buyruqning bajarilishi yoki xatolar haqida xabarlar paydo bo'lishi va boshqa buyruq qatori so'rovi paydo bo'lishi mumkin (belgi bilan tugaydi). $ ) - buyruq bajarilganligi va keyingisini kiritish mumkinligi belgisi.

Bash buyruq satriga kirish va tahrirlashni osonlashtiradigan bir nechta fokuslarga ega. Masalan, klaviatura yordamida siz:

qatorning boshiga o'ting, bu tugmani bosish orqali ham amalga oshirilishi mumkin Uy;

joriy qatorni o'chirish;

Joriy buyruqni bekor qiling.

Belgidan foydalanishingiz mumkin ; bir qatorga bir nechta buyruqlar kiritish uchun. bash barcha bajarilgan buyruqlar tarixini yozib oladi, shuning uchun oldingi buyruqlardan birini takrorlash yoki tahrirlash oson. Buning uchun tarixdan kerakli buyruqni tanlash kifoya: kalit yuqoriga oldingi buyruqni chop etadi, pastga- keyingisi. Butun tarixni aylanmasdan, allaqachon bajarilganlar orasida ma'lum bir buyruqni topish uchun yozing Ctrl-R va siz izlayotgan buyruqda ishlatiladigan har qanday kalit so'zni kiriting.

Tarixda mavjud bo'lgan buyruqlar ro'yxatda raqamlangan holda ko'rsatiladi. Muayyan buyruqni bajarish uchun quyidagilarni kiriting:

! jamoa raqami

Kirsangiz !! , terilgan buyruqlarning oxirgisi ishga tushadi.

Ba'zan ichida Linux dastur va buyruq nomlari juda uzun. Yaxshiyamki, bashning o'zi nomlarni to'ldirishi mumkin. Tugmani bosish Tab, siz buyruq, dastur yoki katalog nomini to'ldirishingiz mumkin. Masalan, siz bunzip2 dekompressiya dasturidan foydalanmoqchisiz deylik. Buning uchun yozing:

Keyin bosing Tab. Hech narsa sodir bo'lmasa, buyruqni bajarish uchun bir nechta mumkin bo'lgan variantlar mavjud. Tugmani bosish Tab yana bir bor, siz bilan boshlanadigan ismlar ro'yxatini olasiz bu .

Masalan, tizimda dasturlar mavjud buildhash, qurilgan, bunzip2:

$bu buildhash qurilgan bunzip2 $bu

Tering n > (bunzip uchinchi harfi bo'lgan yagona ism n) va keyin bosing Tab. Qobiq nomni to'ldiradi va siz faqat bosishingiz kerak Kirish buyruqni bajarish uchun!

E'tibor bering, bash tizim o'zgaruvchisida ko'rsatilgan kataloglarda buyruq satridan chaqiriladigan dasturni qidiradi YO'L. Ushbu kataloglar ro'yxatida sukut bo'yicha Yo'q belgilangan joriy katalogni o'z ichiga oladi ./ (nuqta chiziq). Shuning uchun, joriy katalogdan prog dasturini ishga tushirish uchun siz buyruq berishingiz kerak ./prog.

Asosiy buyruqlar

Har qanday tizimda hal qilinishi kerak bo'lgan birinchi vazifalar: ma'lumotlar bilan ishlash (odatda fayllarda saqlanadi) va tizimda ishlaydigan dasturlarni boshqarish ( jarayonlar). Quyida fayllar va jarayonlar ustida eng muhim operatsiyalarni bajarishga imkon beruvchi buyruqlar keltirilgan. Ulardan faqat birinchisi - CD- bu buyruq qobig'ining ajralmas qismi, qolganlari alohida taqsimlanadi, lekin har doim istalgan tizimda mavjud. Linux. Quyidagi barcha buyruqlar matn konsolida yoki grafik rejimda (xterm, KDE konsoli) ishga tushirilishi mumkin. Buyruqlarning har biri haqida batafsil ma'lumot olish uchun buyruqdan foydalaning odam, Masalan:

Man ls

Joriy katalogni o'zgartirishga imkon beradi (fayl tizimi bo'ylab harakatlanish). U mutlaq va nisbiy yo'llar bilan ishlaydi. Aytaylik, siz o'zingizning uy katalogingizdasiz va uning pastki katalogiga o'tmoqchisiz tmp/. Buning uchun nisbiy yo'lni kiriting:

Katalogga o'tish uchun /usr/bin, turi (mutlaq yo'l):

CD /usr/bin/

Buyruqning ba'zi foydalanishlari:

ota-katalogni joriy qilish imkonini beradi (oradagi bo'shliqqa e'tibor bering CD Va .. ).

oldingi katalogga qaytish imkonini beradi. Jamoa CD parametrlarsiz, qobiqni uy katalogiga qaytaradi.

ls (ro'yxati) joriy katalogdagi fayllar ro'yxatini beradi. Ikki asosiy variant: -a- barcha fayllarni, shu jumladan yashirinlarini ko'rish; -l- batafsil ma'lumotni ko'rsatish.

Ushbu buyruq fayllarni o'chirish uchun ishlatiladi. Diqqat: faylni o'chirib tashlaganingizdan keyin uni qayta tiklay olmaysiz! . Sintaksis: rm Fayl nomi .

Ushbu dastur bir qator parametrlarga ega. Eng tez-tez ishlatiladigan: -i- faylni o'chirishni so'rash, -r- rekursiv o'chirish (ya'ni, quyi kataloglar va yashirin fayllarni o'z ichiga olgan o'chirish). Misol:

Rm -i ~/html/*.html

Barcha fayllarni o'chiradi .html, katalogingizda html .

Mkdir, rmdir

Jamoa mkdir katalog yaratish imkonini beradi, holbuki rmdir bo'sh bo'lsa, katalogni o'chiradi. Sintaksis:

Mkdir katalog_nomi rmdir katalog_nomi

Jamoa rmdir ko'pincha buyruq bilan almashtiriladi rm -rf, bu kataloglarni bo'sh bo'lmasa ham o'chirish imkonini beradi.

Ozroq matnni sahifama-sahifa ko‘rish imkonini beradi. Sintaksis:

Ozroq Fayl nomi

Faylni tahrirlashdan oldin uni oldindan ko'rish foydali bo'lishi mumkin; Ushbu buyruqning asosiy qo'llanilishi dasturlar zanjirining yakuniy bo'g'ini bo'lib, u bitta ekranga sig'maydigan va aks holda juda tez yonib-o'chib ketadigan katta miqdordagi matnni aks ettiradi. Chiqish uchun Ozroq bosing q (tark et).

Bu buyruq fayldagi belgilar qatorini topish imkonini beradi. shu esta tutilsinki grep tomonidan qidiradi muntazam ifoda, ya'ni bir vaqtning o'zida butun so'z sinfini qidirish uchun shablonni o'rnatish imkoniyatini beradi. Muntazam iboralar tilida siz, masalan, qatorlarning quyidagi sinflarini tavsiflovchi shablonlarni yaratishingiz mumkin: "bo'shliqlar bilan o'ralgan ketma-ket to'rtta raqam". Shubhasiz, bunday ibora raqamlar bilan yozilgan barcha yillar uchun matnni qidirish uchun ishlatilishi mumkin. Oddiy ifodalarni qidirish imkoniyatlari juda keng, siz batafsil ma'lumot uchun ekrandagi hujjatlarga murojaat qilishingiz mumkin. grep (odam grep). Sintaksis:

Grep search_patternfayl

Joriy jarayonlar ro'yxatini ko'rsatadi. Buyruqlar ustunida jarayon nomi, PID (jarayon identifikatori) - jarayon raqami (jarayon bilan operatsiyalar uchun ishlatiladi - masalan, buyruq bilan signallarni yuborish) o'ldirish). Sintaksis:

PS argumentlar

Argument u sizga ko'proq ma'lumot beradi, bolta sizga tegishli bo'lmagan jarayonlarni ko'rish imkonini beradi.

Agar dastur javob berishni to'xtatsa yoki qotib qolsa, uni tugatish uchun ushbu buyruqdan foydalaning. Sintaksis:

O'ldiring PID_raqam

PID_raqam bu erda jarayon identifikatsiya raqami, buyruq yordamida har bir ishlaydigan dastur uchun jarayon raqamini bilib olishingiz mumkin ps. Odatda jamoa o'ldirish jarayonga oddiy tugatish signalini yuboradi, lekin ba'zida bu ishlamaydi va siz foydalanishingiz kerak bo'ladi o'ldirish -9 PID_raqam - bu holda buyruq ma'lumotlarni saqlash imkoniyatisiz (g'ayritabiiy tugatish) tizim tomonidan darhol bajariladi. Buyurtma beruvchi signallar ro'yxati o'ldirish jarayonga yuborish mumkin buyruq berish orqali olinishi mumkin o'ldirish - l.

Yarim tun qo'mondoni

Agar siz ko'p yillar davomida ishlagan bo'lsangiz MS-DOS / Windows, keyin siz o'zingizni biroz "joysiz" his qilasiz. Tanish muhitga kirish uchun Midnight Commander buyrug'i bilan ishga tushiring mc. Midnight Commander - Norton Commanderning bepul analogi va uning hozirgi mashhur avlodi - Far. Agar biron bir vaqtda siz Midnight Commander biror narsa qila olmaydi deb o'ylasangiz, bu noto'g'ri. Uning tavsifini o'qing /usr/share/doc/mc-version_number yoki buyruq bering man mc.

coreutils paketi

Anton Boyarshinov

Plastik sumka coreutils fayllar va kataloglar (yaratish, nusxalash va hokazo) va matn satrlari (birlashtirish, saralash va boshqalar) bilan ishlash uchun ko'plab kichik yordamchi dasturlarni o'z ichiga oladi. Ushbu yordamchi dasturlarning ishlash printsipi operatsion tizimdan meros qilib olingan UNIX: ularning barchasi grafik interfeysga ega emas va turli argumentlar bilan buyruq satridan chaqiriladi, oddiy matn formatidagi ma'lumotlar bilan ishlaydi va bitta buyruqning chiqishini to'g'ridan-to'g'ri kompyuterga uzatish imkonini beruvchi standart kiritish/chiqarish mexanizmidan foydalanadi. oraliq fayllardan foydalanmasdan keyingi ishlov berish uchun boshqasining kiritilishi ( konveyer).

Ushbu yordam dasturlari bilan samarali ishlash aynan ularning kombinatsiyasida yotadi, ular sizga bitta (juda uzoq bo'lsa ham) buyruq bilan fayllar va matnli ma'lumotlar bilan ishlash bo'yicha katta hajmdagi operatsiyalarni bajarishga imkon beradi, bu esa inson vaqtini tejaydi. Ushbu paketdagi yordamchi dasturlar ko'pincha qobiq skriptlarini yozishda ishlatiladi. Quyida paketga kiritilgan yordamchi dasturlarning ko'pchiligi tasvirlangan. coreutils, har bir yordamchi dastur uchun uning funksiyalarining qisqacha tavsifi berilgan. Ushbu yordamchi dasturga kalit bilan qo'ng'iroq qilib, rus tilida har bir yordam dasturining batafsil tavsifini olishingiz mumkin --yordam, va eng to'liq hujjatlar (afsuski, faqat ingliz tilida) - buyruq berish orqali ma'lumot yordamchi dastur .




Yuqori