uy - Routerni sozlash
Fon jarayonlarini ishga tushirish va qayta ishlash: ishni boshqarish. Jarayonlar va ishlarni boshqarish Linux fon rejimi
  1. Natijasi bir necha soat yoki kun kutishingiz kerak bo'lgan SQL so'rovini bajarishingiz kerakmi?
  2. Ilovani fonda ishga tushirishingiz kerakmi?
  3. Dasturni fonda ishga tushirishingiz va unga qaytishingiz kerakmi?
  4. Siz Linux konsolidan foydalanasizmi va ssh bilan ishlayapsizmi?

Keyin, albatta, bu haqda bilishingiz kerak ekran.

Ekran asoslari

Linuxda ekran- bular "Windows'dagi oynalar"ga o'xshaydi, ularni minimallashtirish/kengaytirish mumkin. Siz bitta oynada biror narsa qilishingiz mumkin, masalan, fotosuratlarga qarang. Ammo, agar siz fotosuratlarni ko'rishdan tashqari musiqa tinglashingiz kerak bo'lsa, unda siz ochasiz yangi oyna (explorer), musiqa katalogiga o'ting va audio dasturida qo'shiqni oching.

Linux konsoli haqida gap ketganda (ayniqsa, ustida ishlayotganda ssh), unda bir konsolda turli xil ilovalarni ishga tushirish biz uchun juda noqulay bo'ladi. Yoki, ehtimol, birinchi operatsiya o'z ishini davom ettirayotganda, ikkinchi operatsiyani bajarish umuman mumkin bo'lmaydi. Bu birinchi nuqta. Ikkinchi nuqta shundaki, siz tomondan (mijoz tomonidan) biron bir nosozlik bo'lsa, joriy operatsiya to'xtatiladi. Ssh bilan ishlashda sizga bir nechta misollar kerak bo'lishi mumkin ekran:

  • agar siz katta hajmdagi fayllarni bir katalogdan boshqasiga ko'chirsangiz yoki ko'chirsangiz
  • agar siz og'ir sql so'rovini bajarayotgan bo'lsangiz
  • agar siz konsolni "o'g'irlaydigan" dasturni ishga tushirishingiz kerak bo'lsa

Tasodifan yopilgan terminal yoki quvvatning oshishi tufayli 10 soatdan ko'proq vaqt davomida ishlayotgan SQL so'rovi to'xtatilganda, ehtimol siz juda xafa bo'lishingiz mumkin. Ekran holatida, ekran serverda ishlaydi, so'rovning tashabbuskori ekran ob'ekti bo'ladi va mijozning muammolari tufayli so'rov endi to'xtatilmaydi. Agar ulanish yo'qolsa, jarayonlar to'xtamaydi, lekin ishlashda davom etadi va siz istalgan vaqtda ularga qaytishingiz mumkin.

Ekran bilan ishlash

Yaratish uchun ekran va u bilan ishlashni boshlang, buyruq qatoriga yozing:

bu erda test1 ekran ob'ektining ixtiyoriy nomi bo'lsa, qulaylik uchun uni xohlaganingizcha chaqirishingiz mumkin.

Bu nom ostida ekran hosil qiladi test 1. Endi siz har qanday uzoq muddatli operatsiyalarni bajarishingiz mumkin. Masalan, sql so'rovini bajaring:

Mysql -u ... dan * ni tanlang ... yangilash ...

Allaqachon ushbu bosqichda, agar siz Internetni yo'qotsangiz, siz tasodifan terminal yorlig'ini yopasiz, kompyuter qayta ishga tushadi - siz hech qanday ma'lumotni yo'qotmaysiz va sql so'rovi to'xtatilmaydi.

Ekrandan chiqish uchun quyidagi tugmalarni bosing:

+ & — ekrandan chiqish. So‘rov ishlashda davom etadi. Ekranlarda ishlaydigan barcha jarayonlar ishlashda davom etadi.

Ekraningizga yoki boshqa ekran oynasiga qaytish uchun barcha mavjud ekranlarni ko'rishingiz mumkin:

ekran -r — ekranlardan birini tanlang va yoqing.

Ekran seansi endi kerak bo'lmaganda, ekran seansini to'liq tugatish uchun screen -r yordamida ekranni faollashtiring va uning ichiga bosing + yoki chop etish chiqish.

Linux bilan ishlaydigan serverni boshqarish ko'pincha terminal oynasida buyruqlarning bir nechta manipulyatsiyasi bilan birga keladi. Bu Linuxda serverlarni boshqaradiganlar uchun tanish rasm va ba'zi hollarda buyruqlarni fonda ishlatish qulay. Bu amalda qo'llanilishi mumkin va bu foydali bo'lishi mumkin bo'lgan sabablarni ta'kidlash kerak:
— Terminal xabarlar to'plami bilan haddan tashqari yuklanganda va parallel ravishda qo'shimcha harakatlarni amalga oshirish mumkin bo'lmaganda;
— Agar siz terminalni yopsangiz, joriy jarayon va uning asosiy jarayonlari to‘xtaydi;
Bu muammolarni oddiygina hal qilish mumkin, oddiy qilib aytganda, biz ishlaydigan jarayonni boshqaruv terminalidan butunlay ajratishimiz kerak.

Ushbu postda biz Linux-ning fonda buyruqlarni ishlatish uchun foydali qobiliyatini ko'rib chiqamiz. Boshqacha qilib aytganda, siz boshlagan jarayon boshqaruv terminalidan alohida amalga oshiriladi.

Orqa fonda buyruqlar yoki jarayonlarni qanday ishga tushirish kerak
Agar jarayoningiz terminal oynasida ishlayotgan bo'lsa, buyruq yordamida uni to'xtatib qo'yishingiz mumkin Ctrl+Z, ehtimol, ko'p odamlar buni bilishadi va o'ylaydilar, shuning uchun nima. Qizig'i shundaki, jarayonni to'xtatib, biz uni fonda davom ettirishimiz mumkin, buning uchun buyruqni kiritishimiz kerak.

Ushbu buyruqni kiritgandan so'ng, jarayon davom etadi, lekin fonda. Fonda ishlaydigan barcha jarayonlarni ko'rish uchun siz buyruqni kiritishingiz mumkin

Keling, buni qanday qo'llash mumkinligi haqidagi oddiy misolni ko'rib chiqaylik. Aytaylik, bizda , uni ochishimiz kerak, lekin kutishga vaqtimiz yo'q va biz parallel ravishda ishlashni xohlaymiz.

Orqa fonda arxivni ochish

$ tar -czf home.tar.gz .

bosing Cntr+Z, keyin buyruqlarni kiriting

$bg$ ish

Ikkinchi usul - buyruqning oxiriga & belgisini qo'shish, bu tizimga buyruqni fonda ishga tushirishni bildiradi.

$ tar -czf home.tar.gz . &$ishlar

Bu usul jarayonlarning fonda ishlashiga imkon beradi, ammo STDIN, STDOUT, STDERR hali ham terminalga ulangan. Endi terminal yopiq bo'lsa ham jarayon ishlashini ta'minlaylik.

Terminal oynasini yopgandan keyin jarayonni bajarish
Terminal oynasi yopilgandan keyin ham jarayonni davom ettirish uchun biz buyruqni ishlatishimiz mumkin rad etish. U jarayonni terminal oynasining qobig'idan "ochadi", shundan so'ng u konsol oynasi yopilgandan keyin ham bajariladi.
Standart buyruqni ishlatish misolini ko'rib chiqamiz rsync, keling, uni fonda bajarishga harakat qilaylik va jarayonni terminaldan ajratamiz.

$ sudo rsync shablonlari/* /var/www/html/ & $ ishlari $ rad etish -h %1 $ ish

Buyruqdan ham foydalanishingiz mumkin nohup, u foydalanuvchi tizim qobig'idan chiqqanda ham jarayonni davom ettirishga imkon beradi.

$ nohup tar -czf iso.tar.gz Andozalar/* & $ ish o'rinlari

Linux boshqaruv terminalidan jarayonni qanday ajratish mumkin
Jarayonni boshqaruv terminalidan to'liq ajratish uchun siz grafik foydalanuvchi interfeysidan (GUI), masalan, Firefox brauzeridan foydalanganda samarali bo'ladigan buyruqdan foydalanishingiz mumkin.

$firefox/dev/null &

Linuxda (va deyarli barcha Unix tizimlarida) /dev/null - bu maxsus qurilma fayli bo'lib, u "null qurilma" deb ham ataladi. Unga yozish, yozilgan ma'lumotlarning miqdoridan qat'i nazar, muvaffaqiyatli amalga oshiriladi; undan o'qish faylning oxirini (EOF) o'qishga teng.

Linux terminal xizmati sukut bo'yicha bitta vazifa rejimida ishlaydi. Bu shuni anglatadiki, ishga tushirilgan har qanday ekipaj u tugaguniga qadar terminalni to'sib qo'yadi. Bu yondashuv uzoq bajarish vaqtini talab qiladigan dasturlarni ishga tushirishda qulay emas. Ushbu muammoni ikki yo'l bilan hal qilish mumkin: qo'shimcha terminal oynasini oching va unda boshqa buyruqni bajaring yoki fon rejimidan foydalaning. Barcha joriy operatsion tizimlar, shu jumladan Linux, ko'p vazifali bo'lib, bu bir vaqtning o'zida bir nechta dasturlarni bajarish qobiliyatini anglatadi.

Buyruqlar satri interfeysiga darhol kirishim uchun brigadani fonda qanday boshqarishim mumkin? Ishga majbur bo'lgan ekipaj fon jarayoni deb ataladi. Fondagi jarayonlar ekranda ko'rsatilmaydi. Masalan, Apache HTTPD serveri veb-sahifalarga xizmat ko'rsatish uchun fonda ishlaydi. Siz qobiq skriptini yoki har qanday buyruqni past ustuvorlik rejimiga qo'yishingiz mumkin. Vazifa (masalan, ekipaj yoki skript) buyruq satrining oxiriga "&" qo'shish orqali fonga qo'yilishi mumkin. Ushbu bayonot buyruqni fonga qo'yadi va terminalda joy bo'shatadi. Orqa fonda ishlaydigan jamoa ish deb ataladi. Fon buyrug'i ishlayotganda, boshqa istalgan buyruqlarni bajarish mumkin. Sintaksis quyidagicha:

buyruq & skript nomi & /path/to/command arg1 arg2 & buyruq-1 | buyruq-2 arg1 & buyruq-1 | buyruq-2 -arg1 -arg2 >/path/to/output &

Terminal oynasini bloklamasdan dasturlarni fonda ishga tushirish uchun siz maxsus "&" instruktoridan foydalanishingiz kerak. Buyruq nomini, variantlarni va kiritish parametrlarini ko'rsatgandan so'ng, ushbu belgini qatorning eng oxiriga qo'ying. Umuman olganda, bu ketma-ketlikni “command_name -option input_parameter &” shaklida yozish mumkin.

ls ~/* > ~/test-file.txt &
18960

Enter tugmasini bosgandan so'ng, dastur avtomatik ravishda fonda boshlanadi. Bunday holda, terminal quyidagi tarkibga ega bo'lgan qatorni ko'rsatadi “[vazifa_raqami] jarayon_identifikatori” va sizdan yangi yaratilgan buyruqni kiritishingizni taklif qiladi.

Linuxda fonda ishlaydigan buyruqlarni toping

Quyidagi buyruqni bajaring:

Ma'lumotlar chiqishiga misol:

find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
+ Ishlayotgan grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Buyurtma identifikatorlari qayerda.

Standart translatsiyalarga qo'shimcha ravishda ish identifikatorlari uchun jarayon identifikatorlarini ko'rsatish uchun -l opsiyasini o'tkazing:

Ma'lumotlar chiqishiga misol:

7307 Ishlayotgan qidiruv / -iname "*.c" 2> /dev/null > /tmp/output.txt &
+ 7324 ishlayotgan grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Faqat jarayon identifikatorlarini ko'rsatish uchun quyidagilarni kiriting:

Ma'lumotlar chiqishiga misol:

Orqa fonda ishlaydigan buyruqlarni bajarishni to'xtating

Jarayonni majburan yoki chiroyli tarzda tugatish uchun o'ldirish buyrug'idan foydalaning. Sintaksis quyidagicha:

PIDni o'ldiring
o'ldirish -15 PID
o'ldirish -9 PID
killall jarayoni - Ism - Bu erda
killall -15 jarayon-Ism-bu yerda
killall -9 jarayon-Ism-bu yerda

Linuxda dasturni oldingi rejimga qaytarish

Linux nafaqat fonda dasturlarni ishga tushirish, balki agar xohlasangiz, ularni normal bajarilishiga qaytarish imkonini beradi. Buning uchun ikkita vosita mavjud: buyruq ( Jamoa - bu umumiy maqsadlar va manfaatlar asosida birlashgan odamlar guruhi.) fg va % operatori. Ularning harakat tamoyili juda oddiy. fg parametr sifatida ish raqamini ko'rsatishni talab qiladi va bo'sh joysiz operatordan keyin darhol % ga almashtirilishi kerak.

toping / -name .ini 2> ~/results.txt &
19090
fg 1
bash: fg: vazifa tugadi
+ Chiqish 1 toping / -name .ini 2> ~/results.txt

Boshqa ko'p vazifali tizimlar singari, Linux ham bir vaqtning o'zida bir nechta jarayonlarni bajaradi. Umuman olganda, men sizni adashtirmayman, chunki oddiy bitta protsessorli kompyuter ma'lum bir vaqtda faqat bitta vazifani bajarishi mumkin, shuning uchun Linux jarayonlarni bajarish uchun navbatga qo'yadi.

Jarayonlarni boshqarish uchun bir nechta asosiy buyruqlar mavjud

  • ps- ishlaydigan jarayonlar ro'yxatini ko'rsatish
  • o'ldirish- bir yoki bir nechta jarayonlarga signal yuboradi (asosan ularni "o'ldirish" uchun)
  • ish o'rinlari- siz bajarayotgan jarayonlarni ko'rishning muqobil usuli
  • bg- jarayonning bajarilishini fonga qo'yadi
  • fg- jarayonning bajarilishini fondan chiqaradi

Garchi bu bilim mavhum bo'lib ko'rinsa-da, hatto grafik interfeysdan foydalanadigan oddiy foydalanuvchi uchun ham amaliy dasturlarga ega bo'lishi mumkin. Ko'pgina grafik dasturlarni (agar hammasi bo'lmasa ham) buyruq qatori yordamida ishga tushirish mumkinligini hali bilmasligingiz mumkin. Misol uchun, brauzerni ishga tushirishga harakat qilaylik, menimcha, ko'pchilik Linux qurilmalarida Google Chrome yoki FireFox mavjud

Enej@linux:/home/pub/www/vv$ google-chrome Mavjud brauzer seansida yangi oyna yaratildi.

Siz ochmoqchi bo'lgan URL manzilini belgilashingiz mumkin

Enej@linux:/home/pub/www/vv$ google-chrome http://site Mavjud brauzer seansida yangi oyna yaratildi.

Menda allaqachon GUI orqali ishlaydigan Chrome bor, shuning uchun brauzer mavjud seansda yangi oyna yaratilayotgani haqida xabar beradi va buyruq qatoriga boshqaruv beradi. Yoki, masalan, ildiz huquqlariga ega grafik fayl menejerini ochishingiz kerak bo'lsa (misol Nautilus o'rnatilgan Gnome grafik qobig'i uchun ishlaydi)

Enej@linux:/home/pub/www/vv$ sudo nautilus /root/ enej uchun parol:

Jarayon fonda boshlanmaganligi sababli, ushbu terminal oynasida endi hech qanday amalni bajara olmaysiz (jarayonni tugatish uchun CTRL + C tugmalarini bosishingiz mumkin).

Fon rejimi

Hayotni osonlashtirish uchun uzoq vaqt davomida ishlashi mumkin bo'lgan grafik dasturlar yoki jarayonlarni ishga tushirishda ularning bajarilishi odatda fonga qo'yiladi, masalan, brauzerni fonda ishga tushiramiz.

Enej@linux:/home/pub/www/vv$ google-chrome http://site & 9248

Ampersand belgisi ( & ) buyruq chaqiruvining oxirida jarayonning bajarilishi fonga joylashtirilishi kerakligini anglatadi. Bunday holda, ushbu terminal oynasi bilan ishlash mumkin bo'lib qoladi.

Lekin birdan siz qo'ng'iroqning oxirida ampresant qo'yishni unutdingiz, keyin boshqa yo'l bor. Avval CTRL + Z tugmalarini bosib ijroni to'xtatishingiz kerak, keyin biz buyruq satrini nazorat qilamiz va buyruqni chaqirishimiz mumkin. bg, bu oxirgi ishlaydigan jarayonni fonga qo'yadi. Misol orqali aytilgan

Enej@linux:/home/pub/www/vv$ google-chrome http://site ^Z + To'xtatilgan google-chrome http://site enej@linux:/home/pub/www/vv$ bg + google- chrome http://sayt &

Jamoa fg Oxirgi ishlaydigan jarayonni fondan chiqaradi.

Ishlayotgan jarayonlar ro'yxati

Endi siz fonda buyruqlarni qanday ishlatishni bilganingiz uchun, ularning ro'yxatini ko'rish yaxshi bo'ldi. Buning uchun buyruqdan foydalaning ish o'rinlari yoki kuchliroq ps

Enej@linux:/home/pub/www/vv$ jobs - nm-applet & (wd: ~/bin) ishga tushirish + google-chrome http://site & enej@linux:/home/pub/www/vv ishga tushirish $ ps PID TTY TIME CMD 2304 pts/0 00:00:02 bash 11104 pts/0 00:00:01 chrome 11108 pts/0 00:00:00 chrome 11110 pts/0 00:00:00 chrome 111/ 00:00:00 chrome 12088 pts/0 00:00:00 ps 21165 pts/0 00:00:27 nm-applet

Jarayonni qanday "o'ldirish" mumkin?

Agar jarayon javob berishni to'xtatsa (ya'ni osilib qolsa), uni majburan "o'ldirish" kerak. Menimcha, FireFox-dan foydalanadiganlar bunga duch kelishgan. Bunday vazifalar uchun buyruq ishlatiladi o'ldirish. Lekin avval siz qandaydir tarzda jarayonni aniqlashingiz kerak. Buning uchun siz buyruqdan foydalanishingiz mumkin ish o'rinlari yoki ps. Birinchisidan foydalanib, jarayon raqamini, ikkinchisidan esa uning identifikatorini bilib olishingiz mumkin.

Enej@linux:/home/pub/www/vv$ google-chrome http://freaksidea..com & 15181 enej@linux:/home/pub/www/vv$ ps PID TTY TIME CMD 2304 pts/0 00: 00:02 bash 15181 pts/0 00:00:00 chrome 15238 pts/0 00:00:00 ps 21165 pts/0 00:00:27 nm-applet enej@linux:/home/pub/www/vv$ o'ldirish 15181

Jamoalar fg Va bg birinchi argument sifatida ular fonga/dan keyingi kiritish/chiqarish uchun ishlaydigan jarayonning raqamini olishlari mumkin.

O'ldirish haqida ko'proq bilib oling

Aslida jamoa o'ldirish jarayonlarga turli signallarni yuborish uchun ishlatiladi. Ko'p hollarda bu signal buyruqqa uni tugatish kerakligini aytadi. Agar dasturlar to'g'ri yozilgan bo'lsa, ular operatsion tizimdan turli xil signallarni tinglaydi va ularga javob beradi. Misol uchun, matn muharriri foydalanuvchilarning tizimdan chiqib ketayotgani yoki kompyuter o'chirilganligi haqida xabar beradigan har qanday signalni tinglashi kerak. U (matn muharriri) bunday signalni "eshitganda" ishini tugatmasdan oldin ochiq hujjatlarni saqlashi kerak. Jamoa o'ldirish bir necha turdagi signallarni yuborishi mumkin, qaysi biri ekanligini bilish uchun kiriting o'ldirish - l. Quyida eng ko'p ishlatiladigan signallar ro'yxati keltirilgan (qavs ichidagi raqam signal raqamidir)

Standart buyruq o'ldirish yuboradi SIGTERM signal, lekin siz signal raqamini yoki uning nomini ham belgilashingiz mumkin. Aytaylik, sizning Chrome muzlatilgan (ba'zida mening flesh-pleerim etarli darajada ishlamay qoladi)

Enej@linux:/home/pub/www/vv$ google-chrome http://site & 22066 enej@linux:/home/pub/www/vv$ jobs - nm-applet & ishga tushirish (wd: ~/bin) + Ishlayotgan google-chrome http://site & enej@linux:/home/pub/www/vv$ kill -SIGTERM %2 enej@linux:/home/pub/www/vv$ kill -SIGKILL %2 enej@linux :/home/pub/www/vv$ kill -9 %2

P.S.: Menimcha, 2 ta buyruq yangi boshlanuvchilar uchun juda qiziqarli bo'ladi: xabar berish - yuborish(grafik qobiq orqali xabar yuboradi, Gnome-ning yuqori o'ng tomonida paydo bo'ladi) va gapirmoq(nutq sintezatori). Agar sizda ulardan hech biri bo'lmasa, ularni buyruq yordamida o'rnatishingiz mumkin apt-get

Enej@linux:/home/pub/www/vv$ sudo apt-get install espeak notify-send

Asosan, operatsion tizim yadro va turli vazifalarni bajarish, tizimni saqlash va foydalanuvchi ehtiyojlarini qondirish uchun mo'ljallangan ulkan dasturlar to'plamidan iborat. Foydalanuvchi va operatsion tizim o'rtasidagi deyarli barcha o'zaro aloqalar dasturlar orqali amalga oshiriladi. Shuning uchun, yangi boshlanuvchilar uchun Linuxda dasturni qanday ishga tushirishni, ishga tushirish vaqtida nima sodir bo'lishini va ishga tushirish usullari qanday ekanligini tushunish muhimdir.

Dasturlarni ishga tushirishga o'tishdan oldin, avvalo dastur nima ekanligini tushunishimiz kerak. Linuxda dasturlar boshqa fayllardan faqat bajariladigan bayroqlar to'plamiga egaligi bilan farq qiladi. Men bu haqda allaqachon maqolada batafsil yozganman, shuning uchun uni takrorlamayman.

Barcha dasturlarni bir necha turga bo'lish mumkin:

  • Ikkilik dasturlar- protsessorga bajarilishi uchun tayyor bo'lgan ko'rsatmalarni o'z ichiga oladi, ko'pchilik dasturlar shu formatda bo'ladi, ular tez va tizim tomonidan darhol bajariladi;
  • Bytecode dasturlari- bular endi protsessor ko'rsatmalari emas, balki ularni bajara oladigan ma'lum bir virtual mashinaning ko'rsatmalari; virtual mashinasiz bunday buyruqlarni bajarib bo'lmaydi. Bunday dasturlar ko'proq resurslarni sarflaydi, lekin ayni paytda juda tezdir, ularning afzalligi shundaki, ular ishlashlari mumkin bo'lgan har qanday joyda o'zgartirilmasdan bajarilishi mumkin. virtual mashina. Bunday dasturlarga Java dasturlari kiradi.
  • Skript dasturlari- bu dasturlar maxsus tarjimon tomonidan bajariladigan oddiy matndagi buyruqlar majmuasidan iborat. Bunday dasturlar sekinroq, lekin ularni ishlab chiqish osonroq va ularning kodini osongina va tez o'zgartirish mumkin.

Endi dasturlarni ishga tushirishga o'tamiz.

Terminalda dasturlarni ishga tushirish

Dastlab ichida operatsion tizimlar Unix va Linux grafik interfeysga ega emas edi, shuning uchun dasturlar terminaldan buyruqlar yordamida ishga tushirildi. Endi bu ham mumkin va tajribali foydalanuvchilar tomonidan faol foydalanilmoqda. Dasturni ishga tushirish sintaksisi quyidagicha ko'rinadi:

/yo'l/to/fayl/dastur variantlari

Parametrlar faqat kerak bo'lganda ko'rsatiladi, ammo qobiq har doim dasturning to'liq yo'lini bilishi kerak. Dastur nomi va bo'sh joydan keyingi hamma narsa parametrdir. Dasturlarni bajarishda biz odatda to'liq yo'lni ko'rsatmasligimizni allaqachon sezgan bo'lsangiz kerak. Bu juda uzoq va noqulay bo'lar edi.

Ishlab chiquvchilar vaqtinchalik yechim topishdi. PATH o'zgaruvchisi yaratildi, u odatda dasturlar joylashgan papkalarga barcha yo'llarni saqlaydi - /bin, /sbin, /usr/bin, /usr/sbin va boshqalar. Uning tarkibini buyruq bilan ko'rishingiz mumkin:

Dastur nomini kiritganingizda, tizim PATH papkasining barcha papkalarida shu nomdagi bajariladigan faylni qidiradi va agar topsa, uni bajaradi. Agar bunday fayl bo'lmasa, u holda xabar ko'rsatiladi - buyruq topilmadi. Shunday qilib, birini ishga tushirish tizim dasturlari faqat bajariladigan fayl nomini yozing, masalan:

Va bo'sh joydan keyin parametrlarni o'tkazishingiz mumkin:

Agar dastur ushbu kataloglarda bo'lmasa, unga to'liq yo'lni ko'rsatishingiz kerak:

/usr/local/bin/ls1

Agar siz dasturni joriy papkada joylashgan ubuntu terminali orqali ishga tushirmoqchi bo'lsangiz, vaziyat biroz boshqacha bo'ladi. Tizim faqat papkalarni qidiradi PATH o'zgaruvchisi, u joriy katalogda qidirmaydi. Shuning uchun, agar siz bajariladigan fayl nomini yozsangiz, siz xatoga duch kelasiz. To'liq yo'lni ko'rsatishingiz kerak, esingizda bo'ladi./:

Ba'zan ba'zi bir maxsus o'tkazish zarur bo'ladi. Masalan, EDITOR o'zgaruvchisi qaysini ko'rsatadi matn muharriri standart sifatida ishlatilishi kerak. Sintaksis yordamida buyruq nomidan oldin o'zgaruvchi nomini va uning qiymatini belgilashingiz mumkin:

o'zgaruvchi_nomi = qiymat buyrug'i

Masalan:

EDITOR=nano visudo

Odatiy bo'lib, bu buyruq Vim muharririda sozlamalarni ochadi, ammo bu muhit o'zgaruvchisi bilan sozlamalar nano muharririda ochiladi.

Dasturlarni boshqa foydalanuvchi sifatida ishga tushirish

Siz Linux terminalida dasturni qanday ishga tushirishni allaqachon bilasiz, lekin boshqa foydalanuvchilar haqida nima deyish mumkin? Windows-da dasturlarni administrator sifatida ishga tushirish odatiy holdir, shunda dastur tizimda ko'proq kirish huquqiga ega bo'ladi. Buning uchun Linuxda sudo yordam dasturidan foydalaniladi. Uning ismini shunday tushunish mumkin s jodugar u ser qil- foydalanuvchini o'zgartirish va bajarish. Odatiy bo'lib, yordamchi dastur ildiz superuser sifatida buyruqni bajaradi:

sudo buyrug'i
sudo whoami

Ammo -u opsiyasidan foydalanib, dasturni tizimga kirgan har qanday foydalanuvchi sifatida ishga tushirishingiz mumkin:

sudo -u foydalanuvchi nomi buyrug'i
sudo -u postgres whoami

Whoami (kimman) buyrug'i joriy foydalanuvchining ismini ko'rsatadi.

Dasturni fonda qanday ishga tushirish kerak

Ba'zan keyingi ishlarga xalaqit bermasligi uchun terminalda uzoq muddatli dasturni ishga tushirish kerak bo'ladi. Buning uchun dasturni ishga tushirishdan foydalanishingiz mumkin fon linux:

dastur_nomi &

Masalan:

dd if=/dev/nol of=~/fayl soni=100000 &

Tizim dasturning noyob identifikatori bo'lgan PIDni chiqaradi, undan keyin uni yopish uchun ishlatishingiz mumkin:

Linuxda skriptni qanday ishga tushirish kerak

Dasturlar binarga bo'linadi va izohlanadi, deb aytgan edik. Ilgari biz faqat ikkilik dasturlar haqida gapirgan edik. Tarjima qilingan dasturlarni ishga tushirish uchun sizga to'g'ridan-to'g'ri tarjimon kerak bo'ladi; bunday dasturlarga Java, Python, Perl, Ruby, PHP, NodeJS va boshqalar kabi tillarda yozilgan dasturlar kiradi. Bunday dasturni ishga tushirish sintaksisi boshqacha:

tarjimon /yo'l/to/fayl/dastur variantlari

Turli tarjimonlar boshqacha yo'l tutishadi, shuning uchun darhol dasturga to'liq yo'lni ko'rsatish yaxshiroqdir. Python odatda skriptlarni tanlaydi joriy papka to'liq yo'lni ko'rsatmasdan:

python hellowrld.py

A Java dasturlari uni shunday ishga tushirishingiz kerak:

java -jar dasturi.jar

Sharhlangan dastur fayllari uchun bajarilish bayrog'i ixtiyoriy, chunki ular asosiy dasturga parametr sifatida uzatiladi. Faqat Bash skriptlar istisno hisoblanadi. Skriptni tarjimon yordamida ishga tushirishingiz mumkin:

Yoki shunchaki skriptga yo'lni yozing:

Qobiqning o'zi o'z skriptlarini bajarilish bayrog'i bilan aniqlaydi va ularni bajaradi. Agar bajarilish bayrog'i o'rnatilmagan bo'lsa, uni qo'shishingiz kerak:

sudo chmod u+x ./script.sh

Shuning uchun, ko'pgina sharhlangan dasturlar uchun tezda ishga tushirilishi mumkin bo'lgan oddiy sh skriptlari yaratilgan.

GUIda Linux dasturlarini ishga tushirish

Dasturlarni grafik interfeys orqali ishga tushirish ancha qulayroq. Agar konsol dasturlari Bu tarzda ishga tushirish mumkin emas, keyin barcha grafik yordam dasturlari uchun tizimning asosiy menyusida topishingiz mumkin bo'lgan yorliqlar mavjud:

Shu bilan bir qatorda, dasturni ishga tushirishingiz mumkin fayl menejeri, sichqonchani ikki marta bosish orqali, lekin keyin buning uchun bajarilish bayrog'i o'rnatilishi kerak.

GUIda skriptlarni ishga tushirish xuddi shunday ishlaydi. Menyuning barcha yorliqlarini /usr/share/applications/ katalogida topishingiz mumkin. Har qanday dasturni bu yerdan ikki marta bosish orqali ishga tushirish mumkin. Ammo keling, yorliq ichida nima borligini ko'rib chiqaylik; buni amalga oshirish uchun uni matn muharririda oching:


Boshqa narsalar qatorida, Exec qatori ishlaydigan buyruqni belgilaydi linux dasturlari yorliqni ikki marta bosganingizda. Siz mavjud yorliqlardan birini olishingiz va unga asoslanib, o'zingizni yaratishingiz mumkin. Bu shunchaki dasturning nomi. Ammo shuni ta'kidlash kerakki, yorliqlar, skriptlar, cron va boshqalar kabi joylarda to'liq yo'lni ko'rsatish yaxshiroq, bu xatolar sonini kamaytiradi, chunki bu holda tizim PATH yoki yo'lni tekshiradimi yoki yo'qligini bilolmaysiz. dasturni faqat joriy katalogdan qidiring. Endi siz Linuxda dasturni qanday ishga tushirish haqida hamma narsani bilasiz.

xulosalar

Ushbu maqolada biz dasturni ubuntu terminali yoki boshqasi orqali qanday ishga tushirishni ko'rib chiqdik Linux distributivlari. Bu juda oddiy mavzu bo'lib ko'rinsa ham, foydali bo'lishi mumkin bo'lgan qiziqarli fikrlar mavjud. Ammo siz ular haqida allaqachon bilasiz. Agar sizda biron bir savol bo'lsa, sharhlarda so'rang!



 


O'qing:



Eng yaxshi simsiz minigarnituralar reytingi

Eng yaxshi simsiz minigarnituralar reytingi

Universal quloqlarni arzon sotib olish mumkinmi? 3000 rubl - bunday pulga yuqori sifatli eshitish vositalarini sotib olish mumkinmi? Ma'lum bo'lishicha, ha. Va nutq ...

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi.

Mobil qurilmaning asosiy kamerasi odatda tananing orqa tomonida joylashgan bo'lib, fotosuratlar va videolarni olish uchun ishlatiladi.

Yaxshilangan xarakteristikalar va yuqori avtonomiyaga ega planshet telefonining yangilangan versiyasi.Acer tomonidan ishlab chiqarilgan smartfonlar kamdan-kam hollarda tashrif buyuruvchilarga aylanadi...

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Raqamingizni saqlab qolgan holda boshqa operatorga qanday o'tish mumkin

Rossiyada 1 dekabrdan boshlab abonent boshqa uyali aloqa operatoriga o‘tganda telefon raqamini saqlab qolish to‘g‘risidagi qonun kuchga kirdi. Biroq, ma'lum bo'lishicha, ...

phabletni ko'rib chiqish, qimmat, lekin juda malakali

phabletni ko'rib chiqish, qimmat, lekin juda malakali

Qimmatbaho, lekin juda malakali fablet sharhi 20.03.2015 Men dunyodagi etiksiz yagona poyabzalchiman, o'z smartfonimsiz smartfon sharhlovchisiman....

tasma tasviri RSS