Giriş
Başlanğıc əmrlər
Last updated
Was this helpful?
Başlanğıc əmrlər
Last updated
Was this helpful?
Bu yazıda bir neçə populyar Linux əmrləri ilə tanış olacağıq. Biliklərinizi daha çox dərinləşdirmək üçün məqalənin sonundakı xarici mənbələrə üz tuta bilərsiniz.
Bash .sh
skriptlərini dəstəkləyən və mürəkkəb əmrləri icra etməklə bizə istədiyimiz əməliyyatı həyata keçirməyə imkan verən terminal pəncərəsidir.
Terminal pəncərəsini açarkən, öz mühitində dəyişənlərə sahib olan yeni bir Bash prosesi işə salınır. Bu dəyişənlər (Environment variables), terminal sessiyası zamanı işləyən hər hansı bir tətbiqetmənin müxtəlif parametrləri üçün qlobal bir yaddaş formasıdır. Ən çox istinad olunan mühit dəyişkənlərindən biri PATH-dir. PATH dəyişkəni istifadə olunan program qısayollarının əsl yerini axtarmaqda istifadə olunan qovluqlar çoxluğunu özündə birləşdirir. Mühit dəyişənlərini görüntüləmək üçün echo
əmri istifadə edilə bilər:
Mühit dəyişənləri bəzən işlərimizi çox asanlaşdıra bilər. Məsələn siz gələcəkdə bir server üçün penetration test həyata keçirən zaman (təbii ki icazəli) onun İP ünvanını hər dəfə, hər əmrdə yazmaq əvəzinə yeni bir mühit dəyişəni yaradaraq o İP ünvanını o dəyişənə təyin edə bilərik. Beləliklə hər dəfə o İP ünvanını yazmaq əvəzinə, aşağıdakı misalda olduğu kimi sadəcə $ip
yaza bilərik:
export
əmri yeni mühit dəyişəninin yaradılması üçün istifadə olunur. Yaradılmış dəyişənə müraciət etmək üçün dəyişən adının qarşısına $
işarəsi qoyularaq yazılır. Sistemdə olan mühit dəyişənlərinə env
əmri ilə baxmaq olar.
Linux əməliyyat sistemində əksər əmrlər özünə məxsus istifadə qaydasını əks etdirmək üçün man
və ya manual
adlı səhifələr təmin edir. Bu səhifələrə baxmaq üçün linuxda man əmri istifadə edilir. Man səhifələri vasitəsilə hansı linux əmrinin nə işə yaradığını daha asan öyrənə bilərik. Aşağıdakı şəkildə whoami
əmrinə məxsus man səhifəsini görüntülədik.
Göründüyü kimi description
hissəsində bu əmrin nə üçün istifadə edildiyi həmçinin müəllif, müəllif hüquqları və başqa detallar haqqında məlumatlar verilib. Bu səhifəni bağlamaq üçün q düyməsi sıxılır.
Linuxda hal-hazırda terminalın aktiv olduğu qovluqdakı faylları terminaldan görüntüləmək üçün ls
əmri istifadə olunur. Fərqli qovluğa keçid etmək üçün cd
əmri, olduğun qovluğun hansı olduğuna baxmaq üçün isə pwd
əmri istifadə edilir. mkdir
əmrinin köməyi ilə terminalın aktiv olduğu qovluq daxilində yeni qovluq yaratmaq olar. Bunları ardıcıl olaraq aşağıdakı şəkildə görə bilərsiniz.
Faylları axtarmaq üçün əsasən locate
və ya find
əmri istifadə edilir. Aşağıda əmrlərdən sonra faylın adını yazmaqla faylları necə axtara biləcəyimizi görə bilərik. find
əmri özündən sonra ad ilə axtarış etmək istənildiyi halda -name
parametr adı tələb etdiyi halda, locate
əmri isə yalnız parametrin özünü tələb edir.
Əmrlərin sintaksisinin fərqli olduğunu görürük. Minlərlə əmrləri görəcəyimizi hesaba qatarsaq bu qədər əmrin hər birinə aid sintaksis və parametrləri əzbərləmək heç də asan olmadığını görərik. Bunun üçün əksər əmrlərin man səhifəsinə baxmaq və ya əmri yalnız -h
parametri ilə çalışdıraraq (həmişə yox amma 90%) kömək səhifəsinə baxmaq olar. Aşağıda locate
əmrinin kömək səhifəsini görürsünüz.
Terminalda yazdığınız əmrlər terminalın tarixçəsində saxlanılır. Bu tarixçəni görmək üçün sadəcə terminalda history
yazmaq kifayətdir.
Yuxarıda mənim terminalda yazdığım son 3 əmri görürsünüz. Hər hansı bir əmri yenidən lazımdırsa, o əmri təkrar təkrar yazmağa ehtiyac yoxdur. Əmrin tarixçədəki indeksini istifadə etməklə bunu etmək olar. Məsələn yuxarıda indeksi 3 olan əmri yenidən icra etmək üçün aşağıdakı kimi yazmaq olar:
Göründüyü kimi sadəcə terminalda əmr indeksi qarşısına nida yazaraq hər-hansı əmri yenidən icra etmək olar. Terminalda icra olunan son əmri yenidən icra etmək üçün isə sadəcə iki dəfə nida (!!
) yazmaq kifayətdir.
Terminalda icra olunan hər bir əmr özünə məxsus olan məlumat axınlarına (data streams) malikdir. Bu məlumat axınları aşağıdakı kimi qruplaşdırılır:
Standart Input (STDIN) — Programa istifadəçi və ya sistem tərəfindən verilən məlumatlar. Məsələn aşağıdakı ping əmrində ip ünvanı STDIN hesab olunur: kali@kali:~$ ping
10.10.10.64
Standart Output (STDOUT) — Program icra edildikdən sonra istifadəçiyə göstərdiyi nəticə.
Standart Error (STDERR) — Program icra edilərkən yaranan xətalar.
Terminaldakı əmrləri bir birinə qoşmaq üçün |- işarəsi (shift + \
)istifadə edilir. Maraqlıdır bəs nəyə görə əmrləri bir birinə qoşmaq lazımdır?
Bəzən elə hallar yaranır ki, bir əmr nəticəsində yaranan outputun(STDOUT) digər bir əmrdə istifadə olunması lazım gəlir. Məsələn siz sistemdəki çalışan proseslər içərisindən yalnız python
olanları seçmək istəyirsiniz. Belə olan halda siz ps aux
əmrini istifadə etməklə sistemdəki prosesləri terminala çıxarıb orada python olanları saya bilərsiniz. Lakin bu işi daha da qısaltmaq və asanlaşdırmaq üçün bizim köməyimizə əmrləri bir birinə qoşmaq (pipng) gəlir.
Əvvəlcə bütün prosesləri görək. Sağ tərəfdəki scroll-bar-dan da gördüyünüz kimi şəkildə göründüyünün daha 3 qatı qədər proses var və bunların arasında python olanları seçmək heç də az vaxt deyil.
İndi isə 2 əmri bir birinə qoşaraq məqsədimizə çataq. Əvvəlcə ps aux
köməyi ilə bütün prosesləri görüb, sonra isə grep
əmri ilə yalnız python olanları göstərək. Bunun üçün aşağıdakı kimi əmr qurmaq lazımdır:
Yuxarıdakı şəkildən də göründüyü kimi 2 əmri birləşdirərək yalnız özümüzə lazım olan prosesləri görüntüləyə bildik.
İndi isə yönləndirmək (redirection) haqqında danışaq. Tutaq ki, bizə yuxarıdakı kimi içərisində python olan prosesləri tapmaq və onları bir mətn faylına yazmaq lazımdır. Bu halda yönləndirmə istifadə edə bilməsək əmrlərin adını kopyalayıb yeni bir fayl yaradıb həmin faylda manual olaraq yazmalı olacağıq. Yönləndirmə istifadə olunduğu halda bunlara ehtiyac qalmır. Əmrlərin nəticəsini fayla yönləndirmək üçün >
işarəsi istifadə olunur. Aşağıdakı şəkildə bizə lazım olan proseslərin tapılıb bir fayla yönləndirilməsini və cat
əmri vasitəsilə oxunmasını görə bilərsiniz:
Linuxda yönləndirmək istədiyimiz məlumat axını(data stream) tipini özümüz müəyyənləşdirə bilərik. Məsələn bizə bir əmrin icrasından sonra yaranan yalnız errorları fayla yazmaq lazımdırsa belə olan halda yönləndirmə işarəsindən əvvəl 2 lazımdır. Çünki errorlar üçün olan məlumat axını 2 nömrəli indeksə təyin olunub. Eynən aşağıdakı kimi:
Yuxarıdakı şəkildə mövcud olmayan bir proqramı icra etməyə çalışdıq əgər error yaranarsa fayla yazmasını istədik. Gördüyünüz kimi belə proqramın olmadığı haqqında xətanı faylı oxuyaraq görə bildik.