Əmrlərlə iş

man əmri

Linuxda hansısa əmr haqqında kömək lazımdırsa, onda man əmrindən istifadə olunur. Bu əmr özünü less əmri kimi aparır.
man <command_name> - bu əmrin ən çox istifadə olunan parametrini göstərək.
man -k <keyword> - keyword sözünün olduğu bütün səhifələri göstərir. Məsələn, əgər man –k head əmrini versəm, onda head sözü olan bütün səhifələri göstərəcək.
man <number> - number saylı bölmədən kömək seçməyi göstərir.
man əmrinin aşağıdakı bölmələri var:
1. İstifadə səviyyəsinin əmr və proqramları;
2. Nüvənin səhvlərinin sistem çağırışları və kodları;
3. Kitabxana funksiyları;
4. Qurğuların drayverləri və şəbəkə protokolları;
5. Faylların standart formatları;
6. Oyunlar və demostrasiya proqrmları;
7. Müxtəlif fayllar və sənədlər;
8. Sistem administratorluğu;
9. Daxili interfeyslər və nüvənin xüsusiyyətləri.
man əmri haqqında daha ətraflı şəkildə məlumatı man man əmrini verməklə ala bilərsiniz.


Standart giriş, çıxış və səhv haqqında mesaj qurğuları

Fayllarla iş zamanı bir çox hallarda əmrlərdən istifadə etmək lazım gələcək. Bu problemlərin həllində Shell əsas rol oynayır. Shell barədə gələn dərsimizdə ətraflı danışacağıq.
Linuxda terminalla işdə input (giriş), output (çıxış) və errorun (səhvin) standart qurğuları anlayışı var.
stdinstandart input qurğusu deməkdir. 0 (sıfır) nömrəli fayl göstəricisinə malikdir. Bütün proseslərdə avtomatik açılır;
stdout standart output qurğusu deməkdir. 1 (bir) nömrəli fayl göstəricisinə malikdir. Bütün proseslərdə avtomatik açılır.
stderr – səhvlərin standart axını. Başqa sözlə, səhvlər haqqında mesajlar üçün xüsusi output qurğusu. 2 (iki) nömrəli fayl göstəricisinə malikdir.
Bütün proseslərlə birgə avtomatik açılır. Linuxun bütün əmrləri susmaya görə informasiyanın inputu üçün stdin; outputu üçün stdout və səhvlər üçün stderr istifadə olunur.

İstiqamətləndirmə operatorları

Əmrlər əvvəlcədən təyin olunmuş üç giriş-çıxış istiqamətinə malikdir -  standart giriş, standart çıxış və standart protokol. Bir qayda olaraq, əmr mənbə məlumatlarını standart girişdən alır və nəticələri standart çıxışda çap edir. Standart protokolda isə səhvlər və diaqnostika haqqında mesaj çap olunur.
İlkin olaraq, standart giriş, çıxış və protokollar terminalda təyin olunublar. Onlar haqqında ətraflı məlumata və onların konstruksiyasına baxaq:

> - standart axını fayla istiqamətləndirir. Bu zaman əgər fayl varsa, onda içindəkilər silinir və yeni informasiya ora yazılır. Əgər yoxdursa, yaranır. Sintaksis aşağıdakı kimidir:
command > file_name (standart çıxış üçün)

P.S. Əslində qaydaya əsasən command file_name sözlərini < > mötərizələrinin daxilində yazmalı idim. Lakin, qeyd etdiyim iki sözün arasında yazdığım > işarəsilə səhv salma ehtimalı olduğu üçün yazmadım. Nəzərə alın ki, command fayl_name sözlərini sadəcə sintaksisi izah etmək üçün yazmışam və ümumi xarakter daşıyırlar.
Burada command bölməsində nəticəsini file_name-ə yazmaq istədiyiniz əmr olmalıdır. Bunu daha aydın şəkildə aşağıdakı misaldan başa düşəcəksiniz.

Məsələn, Tutaq ki,
cat leyla > aliyeva

əmrini vermişik. Burada sintaksisdəki command bölməsində cat leyla dayanır. file_name hissəsində isə aliyeva faylı. Qeyd edim ki, mənim kompüterimdə aliyeva faylı mövcud olmadığından bu misaldakı əmri verdiyim zaman o özü avtomatik yaranacaq. Bu əmr cat leyla əmrinin nəticəsini aliyeva faylına yazacaq. cat leyla əmri aydındır ki, leyla faylını açmadan onun içindəki informasiyaya baxmaq üçün istifadə olunur. Ekrana çıxan həmin məlumatı misalmımızdakı əmr aliyeva faylına yazacaq. Siz cat leyla əvəzinə başqa əmrlərdən də istifadə edə bilərsiniz. Bizim misaldakı əmrin nəticəsini görmək üçün aliyeva faylını açıb içindəki məlumata baxa bilərsiniz. Və ya açmadan sadəcə cat əmrindən istifadə etməklə. Bir daha bunu da xüsusilə vurğulayım ki, əgər mənim aliyeva faylım əvvəlcədən mövcud olsaydı və içində hər hansı məlumat olsaydı, misalda yazdığım ımri verdiyim zaman onun içindəki bütün məlumatlar silinib, yeniləri yazılacaqdı.

>> - fayla standart axını yazır. Bu zaman əgər fayl varsa, onda məlumat onun sonuna əlavə olunur. Fayl mövcud deyilsə, onda yaranır. Sintaksis aşağıdakı kimidir:
command >> file_name

Məsələn, Tutaq ki,
cat leyla >> aliyeva

əmrini vermişik. Bu zaman aliyeva adlı faylım artıq mövcud olduğundan və içərisində məlumat olduğundan cat leyla əmrinin nəticəsi aliyeva faylının daxilindəki məlumatın davamına əlavə olunacaq. cat aliyeva əmrini verməklə və ya faylı açmaqla hansı dəyişikliyin baş verdiyini görə bilərsiniz.

< - göstərilən faylın içindəki məlumatı proqramın standart girişinə göndərir. Sintaksis aşağıdakı kimidir:
file_name < program_name (standart giriş üçün)
Məsələn, tutaq ki, C dilində hər hansı bir proqram yazmısınız və bu proqrama daxil edəcəyiniz giriş verilənləri sizdə mövcud olan variable adlı faylda yerləşir.  Bu məlumatları proqramın girişinə bir-bir əlavə etmək əvəzinə variable faylından proqramın girişinə ötürmək mümkündür. Və bunu yuxarıda qeyd etdiyim operator vasitəsilə həyata keçirə bilərsiniz. İndi bu barədə misal yazmayacam. Proqramlaşdırma dillərinin kompilyatorları ilə bağlı dərsimizdə bununla məşğul olarıq.

> & - standart çıxış axını və səhvlərini bir-birinə göndərir.
Çıxışın istiqamətləndirilməsinin bu cür metodu fayllarla işləmək üçün yaxşıdır.
Belə bir sual yaranır. Bəs necə edək ki, lazım gəldikdə bir proqramın çıxışını digərinin girişinə yönəldə bilək. Bunun üçün Linuxda kanal anlayışı var.


Kanal anlayışı


Kanal – proqram interfeysidir. Proseslərə, məlumatları dəyişməyə imkan verir. Kanalın təşkil olunmasını shell yerinə yetirir. Kanalı idarə etmək üçün | operatoru var. Məsələn,
cat leyla.txt  | tail -n 3 | less
Burada:
cat əmri leyla.txt faylını oxudu və onun içindəki məlumatı tail əmrinin standart girişinə verdi;
tail əmri ona verilən parametrlərə əsasən mətn faylından son 3 sətri götürdü və onları less əmrinin standart girişinə verdi;
less əmri standart girişdəki məlumatları ekrna çıxardı və istifadəçinin faəliyyətini gözləməyə başladı.
Bu qayda ilə kanal vasitəsilə əmrlərdən biri informasiyanl digərinə göndərdi.

 

Digər əmrlər

who – sistemdə kimin işlədiyini göstərir;
whoami – sizin istifadəçi adınızı göstərəcək;
finger – istifadəçi haqqında informasiyanın axtarılmasını həyata keçirir;
last | more – istifadəçilərin sistemə son daxil olmaları haqqında ətraflı məlumat verir;
id <user_name> – user_name istifadəçisinin bütün ID-lərini ekrana çıxarır.
man -k who – istifadəçilərin və proqramların hal-hazırda sistemdə nə etdiyini bilmək üçün verilən bütün əmrlərin siyahısını ekrana çıxarır;


echo <line> - line sətrini ekrana çıxarır;
Məsələn,
echo 12leyla34aliyeva65mehdi
əmrini versəm, nəticədə 12leyla34aliyeva65mehdi sətri ekrana çıxacaq.
echo leyla aliyeva > leyla.txt – bu əmr yeni leyla.txt faylını yaradır və ona “leyla aliyeva” sətrini yazır. Əgər bu fayl mövcuddursa, içindəki mətn silinir və “leyla aliyeva” sətri ora yazılır.
echo leyla aliyeva >> leyla.txt – bu əmr yeni leyla.txt faylını yaradır və ona “leyla aliyeva” sətrini yazır. Əgər bu fayl mövcuddursa, içindəki mətni silmədən ora “leyla aliyeva” sətri yazır.

which <file_name> - file_name faylına gedən yolu göstərir;

Linuxda əmrlərin çoxu --help parametri ilə verilə bilər; bu parametr sizə əmrlər haqqında məlumat verəcək.
Məsələn,
cp --help
əmrini versək, bu zaman ekrana cp əmri haqqında ətraflı məlumat çıxacaq. Qısa məlumat almaq üçün aşağıdakı əmrdən istifadə olunur:
cp --help | less

Hər hansı bir əmr haqqında məlumat almaq üçün info əmrindən də istifadə etmək olar. Onun sintaksisi aşağıdakı kimidir:
info <command_name>
Məsələn, info cp əmrini versək, cp haqqında ətraflı məlumat ekrana çıxacaq. Bu əmrin man əmrindən fərqi ondadır ki, info daha yeni məlumatları verir. Lakin, info əmrinin verdiyi məlumatları başa düşmək çətindir.

Əgər siz əmrlərin adlarını dəqiq bilmirsinizsə, onda apropos əmrindən istifadə edə bilərsiniz. Sintaksisi aşağıdakı kimidir:
apropos <açar_sözü>
Məsələn,
apropos copy
əmrindən istifadə etməklə copy-yə aid olan əmrini adını tapmaq olar.

whatis əmri apropos əmrinə bənzəyir, lakin, o, yalnız əmrlərin adlarına görə axtarış aparır. apropos isə bütün verilənlər bazasında əmrlərin adları və onların təsvirinə əsasən axtarış aparır. Bundan əlavə, whatis əmri qısa məlumat verir. Sintaksisi apropos əmri kimidir.
İdarəetmə menyusuna malik olan bəzi proqramlarda, məsələn, ntsysv, setup, linuxconf və s. F1 düyməsini sıxmaqla, əmrin hansı işi yerinə yetirdiyini öyrənmək olar.

 

No comments:

Post a Comment