[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr

Bu gün tərcüməsini dərc etdiyimiz material Linux komanda xəttini mənimsəmək istəyənlər üçün nəzərdə tutulub. Bu alətdən səmərəli istifadə etmək çox vaxta qənaət edə bilər. Xüsusilə, burada Bash qabığı və 21 faydalı əmr haqqında danışacağıq. Uzun təlimatların yazılmasını sürətləndirmək üçün komanda bayraqlarından və Bash ləqəblərindən necə istifadə etmək barədə də danışacağıq.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr

Bloqumuzda bash skriptləri haqqında bir sıra nəşrləri də oxuyun

Şərtlər

Linux komanda xətti ilə işləməyi öyrəndikcə, naviqasiya üçün faydalı olan bir çox anlayışla qarşılaşacaqsınız. "Linux" və "Unix" və ya "shell" və "terminal" kimi bəziləri bəzən qarışdırılır. Bu və digər vacib şərtlər haqqında danışaq.

Unix 1970-ci illərdə Bell Labs tərəfindən hazırlanmış məşhur əməliyyat sistemidir. Onun kodu bağlanmışdı.

Linux Unix-ə bənzər ən məşhur əməliyyat sistemidir. İndi bir çox cihazda, o cümlədən kompüterlərdə istifadə olunur.

Terminal (terminal) və ya terminal emulyatoru əməliyyat sisteminə giriş imkanı verən proqramdır. Eyni anda birdən çox terminal pəncərəsini aça bilərsiniz.

Qabıq (shell) əməliyyat sisteminə xüsusi dildə yazılmış əmrləri göndərməyə imkan verən proqramdır.

Güclü vurmaq Bourne Again Shell deməkdir. Bu, əməliyyat sistemi ilə qarşılıqlı əlaqə üçün istifadə olunan ən çox yayılmış qabıq dilidir. Həmçinin, Bash qabığı macOS-da defoltdur.

Komanda xətti interfeysi (Command Line Interface, CLI) insan və kompüter arasında qarşılıqlı əlaqə üsuludur, istifadə edərkən istifadəçi klaviaturadan əmrlər daxil edir və kompüter bu əmrləri yerinə yetirərək istifadəçi üçün mesajları mətn şəklində göstərir. CLI əsasən müəyyən obyektlər haqqında, məsələn, fayllar haqqında aktual məlumat almaq və fayllarla işləmək üçün istifadə olunur. Komanda xətti interfeysi əsasən siçan istifadə edən qrafik istifadəçi interfeysindən (GUI) fərqləndirilməlidir. Komanda xətti interfeysi çox vaxt sadəcə əmr xətti kimi istinad edilir.

Skript (skript) qabıq əmrlərinin ardıcıllığını ehtiva edən kiçik proqramdır. Skriptlər fayllara yazılır, onlar təkrar istifadə edilə bilər. Skriptlər yazarkən siz dəyişənlərdən, şərtilərdən, döngələrdən, funksiyalardan və digər funksiyalardan istifadə edə bilərsiniz.

İndi vacib şərtləri əhatə etdikdən sonra qeyd etmək istəyirəm ki, mən burada "Bash", "shell" və "command line" terminlərini, həmçinin "kataloq" və "qovluq" terminlərini bir-birini əvəz edəcəm.

Standart axınlar, burada istifadə edəcəyimiz standart girişdir (standart giriş, stdin), standart çıxış (standart çıxış, stdout) və standart səhv çıxışı (standart xəta, stderr).

Əgər nümunədə aşağıda veriləcək əmrlər varsa, buna bənzər bir şey tapacaqsınız my_whatever - bu o deməkdir ki, bu fraqmenti sizin bir şeyinizlə əvəz etmək lazımdır. Məsələn, faylın adı.

İndi bu materialın həsr olunduğu əmrlərin təhlilinə davam etməzdən əvvəl onların siyahısına və qısa təsvirlərinə nəzər salaq.

21 Bash əmrləri

▍Məlumat əldə etmək

  • man: Komanda üçün istifadəçi təlimatını (kömək) göstərir.
  • pwd: iş kataloqu haqqında məlumatı göstərir.
  • ls: kataloqun məzmununu göstərir.
  • ps: Çalışan proseslər haqqında məlumatı nəzərdən keçirməyə imkan verir.

▍Fayl sisteminin manipulyasiyası

  • cd: iş kataloqunu dəyişdirin.
  • touch: fayl yaradın.
  • mkdir: kataloq yaradın.
  • cp: Faylı kopyalayın.
  • mv: Faylı köçürün və ya silin.
  • ln: keçid yaradın.

▍I/O yönləndirilməsi və boru kəmərləri

  • <: yönləndirmə stdin.
  • >: yönləndirmə stdout.
  • |: bir əmrin çıxışını başqa bir əmrin girişinə ötürür.

▍Faylların oxunması

  • head: faylın əvvəlini oxuyun.
  • tail: faylın sonunu oxumaq.
  • cat: Faylı oxuyun və onun məzmununu ekrana çap edin və ya faylları birləşdirin.

▍Faylların silinməsi, proseslərin dayandırılması

  • rm: Faylı silin.
  • kill: prosesi dayandırın.

▍Axtar

  • grep: məlumat axtarın.
  • ag: axtarış üçün qabaqcıl əmr.

▍Arxivləşdirmə

  • tar: arxiv yaratmaq və onlarla işləmək.

Bu əmrlər haqqında daha ətraflı danışaq.

Komanda Təfərrüatları

Başlamaq üçün, nəticələri formada verilən əmrlərlə məşğul olaq stdout. Adətən bu nəticələr terminal pəncərəsində görünür.

▍Məlumat əldə etmək

man command_name: komanda təlimatını, yəni yardım məlumatını göstərin.

pwd: cari iş qovluğuna gedən yolu göstərin. Komanda xətti ilə işləyərkən istifadəçi tez-tez sistemin harada olduğunu dəqiq öyrənməlidir.

ls: kataloqun məzmununu göstərir. Bu əmr də olduqca tez-tez istifadə olunur.

ls -a: gizli faylları göstərin. bayraq burada tətbiq olunur -a komandalar ls. Bayraqların istifadəsi əmrlərin davranışını fərdiləşdirməyə kömək edir.

ls -l: Fayllar haqqında ətraflı məlumatı göstərin.

Qeyd edək ki, bayraqlar birləşdirilə bilər. Məsələn - bu kimi: ls -al.

ps: Çalışan proseslərə baxın.

ps -e: Yalnız cari istifadəçi qabığı ilə əlaqəli deyil, bütün çalışan proseslər haqqında məlumatı göstərin. Bu əmr tez-tez bu formada istifadə olunur.

▍Fayl sisteminin manipulyasiyası

cd my_directory: iş kataloqunu dəyişdirin my_directory. Kataloq ağacında bir səviyyə yuxarı hərəkət etmək üçün istifadə edin my_directory nisbi yol ../.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
cd əmri

touch my_file: fayl yaradılması my_file verilmiş yol boyunca.

mkdir my_directory: qovluq yaradın my_directory verilmiş yol boyunca.

mv my_file target_directory: faylı köçürün my_file qovluğa target_directory. Hədəf kataloqunu təyin edərkən, ona mütləq yoldan istifadə etməlisiniz (və bu kimi bir tikinti deyil ../).

komanda mvfayl və ya qovluqların adını dəyişmək üçün də istifadə edilə bilər. Məsələn, bu belə görünə bilər:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: faylın surətini yaradın my_source_file və qovluğa qoyun target_directory.

ln -s my_source_file my_target_file: simvolik əlaqə yaradın my_target_file fayl başına my_source_file. Linki dəyişdirsəniz, orijinal fayl da dəyişəcək.

Əgər fayl my_source_file sonra silinəcək my_target_file qalacaq. Bayraq -s komandalar ln kataloqlar üçün keçidlər yaratmağa imkan verir.

İndi I/O yönləndirilməsi və boru kəmərləri haqqında danışaq.

▍I/O yönləndirilməsi və boru kəmərləri

my_command < my_file: standart giriş faylı deskriptorunu əvəz edir (stdin) fayl başına my_file. Bu, əgər komanda klaviaturadan bəzi daxiletmələri gözləyirsə və bu məlumat artıq faylda saxlanılırsa faydalı ola bilər.

my_command > my_file: əmrin nəticələrini yönləndirir, yəni adətən nəyə daxil olur stdout və ekrana, fayla çıxış my_file. Əgər fayl my_file mövcud deyil - yaradılmışdır. Əgər fayl varsa, onun üzərinə yazılır.

Məsələn, əmri yerinə yetirdikdən sonra ls > my_folder_contents.txt cari iş kataloqunda olanların siyahısını ehtiva edən mətn faylı yaradılacaq.

Əgər simvol əvəzinə > tikintidən istifadə edin >>, sonra, əmrin çıxışının yönləndirildiyi fayl mövcud olduqda, bu faylın üzərinə yazılmayacaq. Məlumat bu faylın sonuna əlavə olunacaq.

İndi məlumat boru kəmərinin işlənməsinə nəzər salaq.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
Bir əmrin çıxışı digər komandanın girişinə verilir. Bu, bir boruyu digərinə birləşdirmək kimidir

first_command | second_command: konveyer simvolu, |, bir əmrin çıxışını digər komandaya göndərmək üçün istifadə olunur. Təsvir edilən strukturun sol tərəfindəki əmr nəyə göndərilir stdout, Düşmək stdin boru kəməri simvolunun sağında əmr.

Linux-da, məlumatı demək olar ki, hər hansı yaxşı formalaşmış əmrdən istifadə etməklə nəql etmək olar. Tez-tez deyirlər ki, Linux-da hər şey bir boru xəttidir.

Boru kəməri simvolundan istifadə edərək çoxlu əmrləri zəncirləyə bilərsiniz. Bu belə görünür:

first_command | second_command | third_command

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
Bir neçə əmrdən ibarət boru kəməri boru kəməri ilə müqayisə edilə bilər

Qeyd edək ki, əmr simvolun solunda olduqda |, üçün bir şey çıxarır stdout, onun çıxışları dərhal olaraq mövcuddur stdin ikinci komanda. Yəni belə çıxır ki, boru kəmərindən istifadə edərək, biz əmrlərin paralel icrası ilə məşğul oluruq. Bəzən bu gözlənilməz nəticələrə səbəb ola bilər. Bu barədə təfərrüatları oxumaq olar burada.

İndi fayllardan məlumatların oxunması və onların ekranda göstərilməsi haqqında danışaq.

▍Faylların oxunması

head my_file: faylın əvvəlindən sətirləri oxuyur və onları ekrana çap edir. Siz yalnız faylların məzmununu deyil, həm də əmrlərin nədən çıxdığını oxuya bilərsiniz stdinboru kəmərinin bir hissəsi kimi bu əmrdən istifadə edin.

tail my_file: faylın sonundan sətirləri oxuyur. Bu əmr boru kəmərində də istifadə edilə bilər.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
Baş (baş) qabaqda, quyruq (quyruq) isə arxadadır

Əgər siz pandalar kitabxanasından istifadə edərək verilənlərlə işləyirsinizsə, o zaman əmrlər head и tail sizə tanış olmalıdır. Əgər belə deyilsə, yuxarıdakı rəqəmə nəzər salın və onları asanlıqla xatırlayacaqsınız.

Faylları oxumağın digər yollarını nəzərdən keçirək, komanda haqqında danışaq cat.

Komanda cat ya faylın məzmununu ekrana çap edir, ya da bir neçə faylı birləşdirir. Bu, çağırılan zaman bu əmrə neçə faylın ötürülməsindən asılıdır.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
pişik əmri

cat my_one_file.txt: bir fayl bu əmrə ötürüldükdə, onu çıxarır stdout.

Əgər ona iki və ya daha çox fayl verirsinizsə, o, fərqli davranır.

cat my_file1.txt my_file2.txt: bir neçə faylı giriş kimi qəbul etdikdən sonra bu əmr onların məzmununu birləşdirir və baş verənləri göstərir stdout.

Fayl birləşməsinin nəticəsini yeni fayl kimi saxlamaq lazımdırsa, operatordan istifadə edə bilərsiniz >:

cat my_file1.txt my_file2.txt > my_new_file.txt

İndi faylları necə silmək və prosesləri dayandırmaq barədə danışaq.

▍Faylların silinməsi, proseslərin dayandırılması

rm my_file: faylı silin my_file.

rm -r my_folder: qovluğu silir my_folder və tərkibindəki bütün fayl və qovluqlar. Bayraq -r əmrin rekursiv rejimdə işləyəcəyini bildirir.

Fayl və ya qovluq hər dəfə silindikdə sistemin təsdiq istəməsinin qarşısını almaq üçün bayraqdan istifadə edin -f.

kill 012345: Müəyyən edilmiş işləmə prosesini dayandırır, ona zərif şəkildə bağlanması üçün vaxt verir.

kill -9 012345: Müəyyən edilmiş işləmə prosesini məcburi şəkildə dayandırır. Bayrağa baxın -s SIGKILL bayraqla eyni deməkdir -9.

▍Axtar

Məlumat axtarmaq üçün müxtəlif əmrlərdən istifadə edə bilərsiniz. Xüsusilə - grep, ag и ack. Bu əmrlərlə tanışlığımıza başlayaq grep. Bu, vaxtla sınaqdan keçirilmiş, etibarlı bir əmrdir, lakin digərlərindən daha yavaşdır və istifadə etmək onlar qədər rahat deyil.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
grep əmri

grep my_regex my_file: axtarışlar my_regex в my_file. Uyğunluq aşkar edilərsə, hər uyğunluq üçün bütün sətir qaytarılır. Defolt my_regex müntəzəm ifadə kimi qəbul edilir.

grep -i my_regex my_file: Axtarış hərflərə həssas olmayan şəkildə həyata keçirilir.

grep -v my_regex my_file: olmayan bütün sətirləri qaytarır my_regex. Bayraq -v inversiya deməkdir, operatora bənzəyir NOT, bir çox proqramlaşdırma dillərində rast gəlinir.

grep -c my_regex my_file: Faylda tapılan axtarılan nümunə üçün uyğunluqların sayı haqqında məlumatı qaytarır.

grep -R my_regex my_folder: göstərilən qovluqda və onun içindəki qovluqlarda yerləşən bütün fayllarda rekursiv axtarış aparır.

İndi komanda haqqında danışaq ag. Daha sonra gəldi grep, daha sürətlidir, onunla işləmək daha rahatdır.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
ag əmri

ag my_regex my_file: sətir nömrələri və uyğunluqların tapıldığı sətirlərin özləri haqqında məlumatları qaytarır my_regex.

ag -i my_regex my_file: Axtarış hərflərə həssas olmayan şəkildə həyata keçirilir.

Komanda ag faylı avtomatik emal edir .gitignore və həmin faylda sadalanan qovluqlarda və ya fayllarda olanları çıxışdan xaric edir. Çox rahatdır.

ag my_regex my_file -- skip-vcs-ignores: avtomatik versiyaya nəzarət fayllarının məzmunu (məsələn .gitignore) axtarışda nəzərə alınmır.

Bundan əlavə, komandaya izah etmək üçün ag axtarışdan xaric etmək istədiyiniz fayl yollarında fayl yarada bilərsiniz .agignore.

Bu bölmənin əvvəlində əmri qeyd etdik ack. Komandalar ack и ag çox oxşardır, deyə bilərik ki, onlar 99% bir-birini əvəz edir. Bununla belə, komanda ag daha sürətli işləyir, ona görə təsvir etdim.

İndi arxivlərlə işləmək haqqında danışaq.

▍Arxivləşdirmə

tar my_source_directory: qovluqdakı faylları birləşdirir my_source_directory tək tarball faylına. Bu cür fayllar böyük fayl dəstlərini kiməsə ötürmək üçün faydalıdır.

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr
tar əmri

Bu əmrlə yaradılan tarball faylları uzantılı fayllardır .tar (Kaset arxivi). Əmr adında və yaratdığı faylların adlarının uzantısında “lent” (lent) sözünün gizlədilməsi bu əmrin nə qədər müddətə mövcud olduğunu göstərir.

tar -cf my_file.tar my_source_directory: adlı tarball faylı yaradır my_file.tar qovluq məzmunu ilə my_source_directory. Bayraq -c "yaratmaq" (yaratmaq) və bayraq deməkdir -f "fayl" (fayl) kimi.

Faylları çıxarmaq üçün .tar-fayl, əmrindən istifadə edin tar bayraqlarla -x ("çıxarış", çıxarış) və -f ("fayl", fayl).

tar -xf my_file.tar: faylları çıxarır my_file.tar cari iş qovluğuna.

İndi sıxışdırmaq və dekompressiya etmək haqqında danışaq .tar-fayllar.

tar -cfz my_file.tar.gz my_source_directory: burada bayraqdan istifadə edilir -z ("zip", sıxılma alqoritmi) faylları sıxmaq üçün alqoritmin istifadə edilməli olduğunu göstərir gzip (GNUzip). Faylın sıxılması bu cür faylları saxlayarkən disk sahəsinə qənaət edir. Faylların, məsələn, digər istifadəçilərə ötürülməsi planlaşdırılırsa, bu, belə faylların daha sürətli yüklənməsinə kömək edir.

faylı açın .tar.gz bayraq əlavə edə bilərsiniz -z məzmun çıxarmaq əmrinə .tar-yuxarıda müzakirə etdiyimiz fayllar. Bu belə görünür:

tar -xfz my_file.tar.gz
Qeyd etmək lazımdır ki, komanda tar Daha çox faydalı bayraqlar var.

Bash ləqəbləri

Bash ləqəbləri (həmçinin ləqəblər və ya abbreviaturalar adlanır) əmrlərin qısaldılmış adlarını və ya onların ardıcıllığını yaratmaq üçün nəzərdə tutulmuşdur, onlardan adi əmrlər əvəzinə istifadəsi işi sürətləndirir. Əgər ləqəbiniz varsa bu, əmri gizlədir python setup.py sdist bdist_wheel, onda bu əmri çağırmaq üçün bu ləqəbdən istifadə etmək kifayətdir.

Belə bir ləqəb yaratmaq üçün fayla aşağıdakı əmri əlavə etmək kifayətdir ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Sisteminizdə fayl yoxdursa ~/.bash_profile, sonra əmrdən istifadə edərək özünüz yarada bilərsiniz touch. Ləqəbi yaratdıqdan sonra terminalı yenidən başladın, bundan sonra bu ləqəbdən istifadə edə bilərsiniz. Bu halda, iki simvolun daxil edilməsi əmrin üç ondan çox simvolunun daxil edilməsini əvəz edir. məclislər Python paketləri.

В ~/.bash_profile tez-tez istifadə olunan hər hansı əmrlər üçün ləqəblər əlavə edə bilərsiniz.

▍Nəticələr

Bu yazıda biz 21 məşhur Bash əmrini əhatə etdik və komanda ləqəblərinin yaradılması haqqında danışdıq. Bu mövzu ilə maraqlanırsınızsa - burada Başa həsr olunmuş bir sıra nəşrlər. Burada Bu nəşrlərin pdf versiyasını tapa bilərsiniz. Həmçinin, Bash öyrənmək istəyirsinizsə, unutmayın ki, hər hansı digər proqramlaşdırma sistemində olduğu kimi, təcrübə əsasdır.

Hörmətli oxucular! Bu məqalədə müzakirə olunanlara yeni başlayanlar üçün faydalı olan hansı əmrləri əlavə edərdiniz?

Bloqumuzda bash skriptləri haqqında bir sıra nəşrləri də oxuyun

[əlfəcinlər] Başlayanlar üçün Bash: 21 faydalı əmr

Mənbə: www.habr.com

Добавить комментарий