Bash სკრიპტი-I ნაწილი | Cyber Community | Hi-Tech World - CYBSECGROUP
Welcome to the CYBSECGROUP Forum
You have the opportunity to get acquainted with interesting projects in an interesting environment
Registration

Bash სკრიპტი-I ნაწილი

  • Thread starter კახა ჯელაძე
  • Start date

კახა ჯელაძე

სტუმარი
#1
Bash (Bourne Again Shell) ეს არის უმეტესი GNU/Linux გარემოს ძირითადი შელი. ბრძანებები იწერება შელის ტერმინალში.იგი ემსახურება ოპერაციული სისტემის ბრძანებებით მართვას,მოდიფიცირებას ან თუნდაც მასზე ან ქსელში არსებულ მოწყობილობებზე ინფორმაციის მიღებას.ტერმინალს გააჩნია ორი ძირითადი ფორმატი:
username@hostname$
ან
root@hostname#
უფრო მარტივად რომ ვთქვათ $ ან #.სადაც $ ნიშნავს ჩვეულებრივ მომხმარებელს/სტუმარს და # აღნიშნავს ROOT-ს,მომხმარებელს სრული უფლებებით. (ადმინისტრატორი/სუპერმომხმარებელი)

აქვე გეტყვით იმსაც,რომ სისტემაში პირდაპირ root მომხმარებლით შესვლა გარკვეულ საფრთხესთან არის დაკავშირებული.შექმენით მომხმარებელი და თუ საჭირო იქნება ბრძანება გაუშვით sudo-ს მეშვეობით,რადგან უმეტესწილად შეცდომითი ბრძანების გაშვება ადმინისტრატორის უფლებებით აზიანებს სისტემას.

შელის სკრიპტი არის ტექსტური ფაილი, რომელიც იწყება ეგრედწოდებული Shebang-ით (სამწუხაროდ ზუსტი თარგმანი ვერ მოვიძიე...)

Bash:
#! /bin/bash
Shebang არის ხაზი რომელშიც #! ადგენს ინტერპრეტერის წყაროს.ხოლო /bin/bash არის ინტერპრეტერის ბრძანების გზა Bash-ისკენ
ანუ ყოველი ფაილი რომელიც
Bash ენაზეა დაწერილი,აუცილებლად უნდა დაიწყოს
#! /bin/bash რათა ინტერპრეტერი მიხვდეს თუ რა სერვისი გაუშვას რომ მოხდეს მითითებული ბრძანებიდან გამომდინარე შესაბამისი შედეგის დადგომა.
Bash ფაილის ტერმინალში გაშვება რამოდენიმე ხერხით შეიძლება:
Bash:
bash  test.sh   # ამ შემთხვევაში bash გამოიყენება არსებული ფაილის დირექტორიიდან
                        #ანუ როცა ვიმყოფებით მაგალითად
                        #/Desktop/bash/  დირექტორიაში,რომელიც ჩვენ შევმენით და არა სისტემამ
                        #როგორც ეს /bin/bash - ის შემთხვევაშია.
Bash:
bash /Desktop/bash/test.sh    #ამ შემთხვევაში ჩვენ მივუთითეთ სრული წყარო
                                                 #ანუ /Desktop/bash რირექტორია რომელშიც მდებარეობს
                                                 #ბეშ ფორმატის მქონე ფაილი
Bash:
chmod a+x test.sh               #ამ შემთხვევაში ფაილს ვანიჭებთ შესრულებად ნებართვას
                                             #ანუ "executable permissions"

./test.sh                                #ტერმინალში გაშვების შემდეგ პირდაპირ შეასრულებს ბრძანებას
                                             #   "./" ტერმინალი ცნობს წყაროს
                                             # ანუ  /Desktop/bash/test.sh
Bash-ში თითოეული ბრძანება ან მათი მიმდევრობა შეიძლება გამოვყოთ ; -ით
მაგალითად:


Bash:
cmd1    ;    cmd2
                                      # ანუ პირველი წარმოადგენს ორი ბრძანების მიმდევრობით გაშვებას ერთ ხაზზე
                                      #ხოლო მეოთხე და მეხუთე ხაზი წარმოადგენს ბრძანებათა ახალი ხაზიდან გაშვებას
cmd1
cmd2
უფრო გასაგები რომ იყოს... მაგ:
Code:
apt-get update && apt-get upgrade -y
 #დაახლოებით იგივე პრინციპია
apt-get update
apt-get upgrade -y
# რათქმაუნდა გამოიყენება კომენტარებისთვის.

სკრიპტში ბეჭდვითი მოქმედების შესრულება ხდება echo ბრძანებით სხვადასხვანაირად.
Bash:
echo "Welcome to first Bash tutorial"

#გამოიტანს შემდეგ ტექსტს

Welcome to first Bash tutorial
Bash:
echo  Welcome to first Bash tutorial

#ასევე გამოიტანს იგივე შედეგს ანუ ""  მითითების გარეშეც...

Welcome to first Bash tutorial
Bash:
echo 'Welcome to first Bash tutorial'

#ასევე ექნება იგივე შედეგი

Welcome to first Bash tutorial
მაგრამ რა ხდება როცა რაიმე სიმბოლოს ჩაწერა გვინდა ტექსტში,რომელიც უკვე დაკავებულია/ჩაშენებულია რაიმე მნიშვნელობით?
მაგალითისთვის ავღოთ
! სიმბოლო
Bash:
echo "Welcome to first Bash tutorial!"   #ამოაგდებს შეცდომას რადგან ორმაგფრჩხილში ! სიმბოლო
#სხვანაირად აღიქმება ამიტომ უნდა გამოვიყენოთ "\"
echo "Welcome to first Bash tutorial\!"
Welcome to first Bash tutorial!

echo Welcome to first Bash tutorial!   #ამ მაგალითში საჭირო არ არის \ სიმბოლოს გამოყენება
Welcome to first Bash tutorial!            # \ სიმბოლო "" -ში გამოიყენება მხოლოდ

echo 'Welcome to first Bash tutorial\!'    #როგორც ხედავთ არც ამ შემთხვევაშია საჭირო \ სიმბოლო
Welcome to first Bash tutorial!
როცა ვიყენებთ echo ბრძანებას რაიმე ვარიანტის დამატების გარეშე,მის მიერ ჩაწერილი ტექსტი ახალი ხაზიდან იწყება.
თუ მას დავუმატებთ
n ვარიანტს ახალი ხაზიდან დაწყება გამოირიცხება,ხოლო თუ e ვარიანტს მივმართავთ გამორიცხავს ეგრედწოდებულ backslash-ს.
Bash:
#!/bin/bash                                                                    
echo "Welcome to first Bash tutorial"                    
echo -n "Welcome to first Bash tutorial"        
echo -e "\nbackslashis \t simboloebis  \t gamoricxva"       #სადაც \t tab-ით დაშორებაა
ხოლო \n ახალი ხაზიდან დაწყება
 
Last edited by a moderator: