Monday, July 8, 2013

Linux Command Line ნაწილი 1

ლინუქსის არსის წვდომისთვის და მისი კარგად შესწავლისთვის პირველ რიგში უნდა ვისწავლოთ მისი კომანდ ლაინი. ვინაიდან კომანდ ლაინი ეს არის ერთადერთი ინსტრუმენტი ლინუქსში, რომელიც მოგცემთ საშუალებას გააკეთოთ ყველაფერი როგორც გინდათ და რა დროსაც და რა ხერხითაც გინდათ ლინუქსის ოპერაციულ სისტემასთან მიმართებაში. ვინდოუსს ასეთი რამ კარგა ხანს არ გააჩნდა. ვინდოუსის cmd არის ძალიან "ფერმკრთალი"  ანალოგი ლინუქსის კომანდ ლაინის. თუმცა მძლავრი კომანდ ლაინის არსებობა რომ საჭიროა ეს დამტკიცდა თუნდაც იმით, რომ მაიკროსოფტმა შეიმუშავა და წარმოადგინა Powershell. ამით მაიკროსოფტმა მისცა ვინდოუსის ადმინისტრატორებს ისეთივე მძლავრი ინსტრუმენტი, როგორიც ლინუქსის ადმინისტრატორებს ქონდათ პრაქტიკულად ლინუქსის დასაბამიდანვე.

ლინუქსთან მუშაობისას თქვენ ხშირად მოგიწევთ შელთან (shell) მუშაობა. რა არის შელი? მარტივად რომ ვთქვად შელი არის პრაქტიკულად ის კომანდ ლაინი, რომელშიც ჩვენ ჩაწერთ რაღაც ბრძანებებს და ლინუქსი ამ ბრძანებეს შეძლებისდაგვარად შეასრულებს (მთავარია წინასწარ იცოდეთ ლინუქის შესაძლებლობების მაქსიმუმი და ის თუ როგორ უთხრათ ესა თუ ის ბრძანება). შელს, რომელთანაც  თქვენ ხშირად მოგიწევთ მუშაობა, ქვია ბაში (bash - bourne again shell; პირველი შელი (Bourne shell (sh) ) Unix ტიპის ოპერაციული სისტემებისთვის დაწერილი იყო  Stephen Bourne მიერ ჯერ კიდევ 1977 წელს, ხოლო მერე 1989 წელს Brian Fox გამოუსვა გაუმჯობესებული ვერსია, რომელიც  Stephen Bourne საპატივცემულოდ დაარქვა bash)

შელის გამოსაძახებლად თქვენ გჭირდებათ შესაბამისი პუნქტის გამოძახება  გრაფიკულ გარსში (მაგ.: Konsole-კდეში, Terminal- გნომი და ა.შ.).

ტერმინალის ეკრანზე ჩვენ ვხედავთ მისალმებას  და ბრძანების შეყვანის შეთავაზებას. გავარჩიოთ ეს მისალმება. წარწერა user@user-ubuntu12:~$  ბევრ ინფროს გვაწვდის. კერძოდ, user არის მოხმარებლის სახელი მერე ძაღლუკას ნიშნის მერე მოდის კომპიუტერის სახელი, რომელიც ჩვენ შემთხვევაში არის user-ubuntu12. მაგალითად თუ თქვენი იუზერი იქნება giorgi და კომპის სახელი giorgi-pc წარწერის ეს ნაწილი იქნება, როგორც giorgi@giorgi-pc ანუ იუზერი გიორგი იმყოფება კომპ giorgi-pc-ში. რას ნიშნავს მაშინ ტილდა ანუ ~ ეს ნიშანი ლინუქსის კომანდ ლაინში აღნიშნავს იუზერის ე.წ. home directory-ს, ანუ იმ ცენტრალურ ადგილას სადაც დევს იუზერის ყველა ფაილი და პრინციპში რომლის ფარგლებშიც ვრცელდება მისი ძალაუფლება). ის რომ აღნიშნული იუზერი მოქმედებს მხოლოდ იუზერის უფლებამოსილებით აღნიშნავს ბოლოში მდგომი დოლარის ნიშანი. თუ ჩვენ გვექნება ასეთი სურათი, ეს ნიშნავს იმას რომ ჩვენმა იუზერმა მოიპოვა სუპერ ანუ  რუთის  (root) ძალაუფლება და მის ნებას ვერაფერი აღუდგება წინ.

საბოლოო ჯამში # ნიშანი მისალმების ბოლოს ნიშნავს იმას, რომ თქვენ შეუზღუდავი ძალაუფლება გაქვთ მოცემულ სისტემაში და ეს კი თქვენგან მეტ პასუხისმგემლობას მოითხოვს, ვინაიდან ერთი არასწორი ნაბიჯი და ფაფუ თქვენი სისტემა :))

რამოდენიმე რჩევა კომანდ ლაინში კომფორთული მუშაობისთვის. თუ თქვენ გინდათ დაუბრუნდეთ წინათ აკრეფილ ბრძანებას, მაშინ უბრალოდ დააჭირეთ ზევით მიმართულ ისარს კლავიატურაზე.  როგორც წესი  მოცემულ გახსნილ ფანჯარაში შეყვანილო ბოლო 500 ბრძანება დამახსოვრებულია. ასევე უნდა გაითვალისწინოთ, რომ კოპირების და ჩასმის სტანდარტული კომბინაციები (ანუ Ctrl+C და Ctrl+V) ტერმინალში არ მუშაობს. რაიმე ტექსტს თქვენ დააკოპირებთ უბრალოდ მისი მონიშვნით, ხოლო ჩასვამთ მაუსის შუა ღილაკზე (გორგოლაჭზე) დაჭერით.

რა მარტივი ბრძანებები შეგვიძლია გამოვიყენოთ?
მაგალითად გამოვიძახოთ კალენდარი :) ბრძანება cal

ან მივიღოთ დეტალური ინფორმაცია დღევანდელი თარიღის შესახებ. ბრძანება date.

როგორც ზემოთ აღვნიშნეთ როდესაც თქვენ ხსნით კომანდ ლაინს, თქვენ აღმოჩნდებით home directory-ში, რომელიც გამოდის როგორც current working directory. ნებისმიერ ერთ მოცემულ მომენტში ჩვენ შეგვიძლია ვიმყოფებოდეთ მხოლოდ ერთ კონკრეტულ  current working directory. როგორ გადავიდეთ სხვა დირექტორიაში? პირველ რიგში უნდა დავიმახსოვროთ რომ დირექტორიდან დირექტორიაში გადასასვლელად ჩვენ გვჭირდება ბრძანება cd მერე კი შესაბამისი მისამართი. აქვე უნდა აღვნიშნოთ, რომ ლინუქს ვინდოუსისგან განსხვავებით აქვს ერთი ფუძე ყველა დისკისთვის, დისკები უბრალოდ მაუნტდებიან შესაბამის ადგილებში. ასე რომ რომელიმე სხვა ფოლდერში გადასვლისას cd ბრძანების არგუმენტად ჩვენ უნდა მივუთითოთ  ან აბსოლუტური მისამართი მაგალითად /home/user/desktop ან ე.წ. რელატიური, რომლის გამოყენებისას ნაკლები ბეჭდვა დაგვჭირდება. რელატიურად მისამართად შეიძლება გამოგვადგეს ~: ნებისმიერ დირექტორიაში ყოფნისას თუ ჩვენ ავკრეფთ cd ~ და დავაჭერთ ენთერს აღმოვჩნდებით home directory-ში. გარდა ამისა არსებობს . და .. სიმბოლოები. სიმბოლო . ნიშნავს იმას რომ ჩვენ მივმართავთ იმ დირქქტორიაში მყოფ ფოლდერს თუ ფაილს რომელშიც ამჟამად ვიმყოფებით. მაგალითად, თუ ჩვენ ვიმყოფებით ფოლდერ /home/user -ში და გვინდა გადავიდეთ ფოლდერ Downloads -ში, რომელიც იმავე ფოლდერშია განლაგებული, საკმარისია ავკრიფოთ cd ./Downloads (მართალი რომ გითხრათ საკმარისია ავკრიფოთ cd Downloads, ვინაიდან ამ დროს სისტემა გაჩუმების პრინცით გამოიყენებს ./ )
ორი წერთილი ანუ .. კი ზედა დირექტორიას აღნიშნავს, განსახილველ მაგალითში თუ ჩვენ ავკრეფთ cd .. ჩვენ აღმოვჩნდებით ზედა /home დირექტორიაში (pwd ბრძანებას სრულად გამოაქვს current working directory მისამართი).

კომანდ ლაინთან მუშაობის სპეციფიკიდან გამომდინარე ფაილების სახელებში შეეცადეთ არ გამოიყენოთ გამოტოვება არამედ _, მაგალითად: ჯობია ფაილს დაარქვათ chemi_konfigi ვიდრე chemi konfigi.

ბრძანება ls გამოიტანს მოცემული current working directory -ს შიგთავსს, ხოლო ls -a  კი current working directory -ს შიგთავსს დამალული ფაილებით თუ ფოლდერებით (ხშირად ლურჯ ფერად არის ფოლდერები და თეთრად კი ფაილები)

3 comments:

  1. კარგი წამოყებაა, მთავარია არ გაჩერდე, ერთი კითხვა მაქ
    "ლინუქს ვინდოუსისგან განსხვავებით აქვს ერთი ფუძე ყველა დისკისთვის, დისკები უბრალოდ მაუნტდებიან შესაბამის ადგილებში" ეს შეგიძლია განმიმარტო ?

    ReplyDelete
  2. Nika ვინდოუსში გაქ ც დ დისკები რომლებიც ერთმანეთისგან დამოუკიდებლები არიან ხომ მასეა? ანუ დ დისკზე რაღაც მისამართი იქნება D:\Pictures და არა C:\D:\Pictures. ლინუქსში არის ყოველითვის ერთი ფუძე ე.წ. რუთი ანუ \. სხვა ლოგიკური დისკიც რო გააკეთო მისი მისამართი ყოველთვის ისევ \ იქნება დმაოკიდებული. ანუ გააკეთე ცალკე ლოგიკური დისკი home და ზედ გექნება Pictures ფოლდერი. ამ ფოლდერის სრული მისამართი იქნება \home\Pictures

    ReplyDelete
  3. აჰა გასაგებია, სპასიბა გაიხარე, ველოდები გაგრძელებებს :)

    ReplyDelete