[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq

Tarjimasi bugungi kunda biz nashr etayotgan material Linux buyruq qatorini o'zlashtirmoqchi bo'lganlar uchun mo'ljallangan. Ushbu vositadan samarali foydalanish qobiliyati ko'p vaqtni tejash imkonini beradi. Xususan, biz bu erda Bash qobig'i va 21 ta foydali buyruqlar haqida gapiramiz. Shuningdek, uzun ko'rsatmalarni yozishni tezlashtirish uchun buyruq bayroqlari va Bash taxalluslaridan qanday foydalanish haqida gaplashamiz.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq

Shuningdek, bizning blogimizda bash skriptlari haqida bir qator nashrlarni o'qing

atamalar

Linux buyruq satri bilan ishlashni o'rganganingizda, siz navigatsiya qilish uchun foydali bo'lgan ko'plab tushunchalarga duch kelasiz. Ulardan ba'zilari, masalan, "Linux" va "Unix" yoki "qobiq" va "terminal" ba'zan chalkashib ketadi. Keling, ushbu va boshqa muhim shartlar haqida gapiraylik.

Unix 1970-yillarda Bell Labs tomonidan ishlab chiqilgan mashhur operatsion tizim. Uning kodi yopiq edi.

Linux Unix-ga o'xshash eng mashhur operatsion tizimdir. Endi u ko'plab qurilmalarda, jumladan, kompyuterlarda ham qo'llaniladi.

terminal (terminal) yoki terminal emulyatori operatsion tizimga kirish imkonini beruvchi dasturdir. Bir vaqtning o'zida bir nechta terminal oynalarini ochishingiz mumkin.

chig'anoq (qobiq) - bu maxsus tilda yozilgan buyruqlarni operatsion tizimga yuborish imkonini beruvchi dastur.

Bash Bourne Again Shell degan ma'noni anglatadi. Bu operatsion tizim bilan ishlash uchun ishlatiladigan eng keng tarqalgan qobiq tilidir. Bundan tashqari, Bash qobig'i macOS-da standart hisoblanadi.

Buyruqlar qatori interfeysi (Command Line Interface, CLI) - bu odam va kompyuter o'rtasidagi o'zaro ta'sir qilish usuli bo'lib, uning yordamida foydalanuvchi klaviaturadan buyruqlar kiritadi va kompyuter ushbu buyruqlarni bajarib, foydalanuvchi uchun xabarlarni matn shaklida ko'rsatadi. CLI ning asosiy qo'llanilishi ba'zi ob'ektlar, masalan, fayllar haqida dolzarb ma'lumotlarni olish va fayllar bilan ishlashdir. Buyruqlar qatori interfeysi asosan sichqonchani ishlatadigan grafik foydalanuvchi interfeysidan (GUI) farqlanishi kerak. Buyruqlar qatori interfeysi odatda oddiy buyruq qatori deb ataladi.

Skript (skript) - qobiq buyruqlar ketma-ketligini o'z ichiga olgan kichik dastur. Skriptlar fayllarga yoziladi, ularni qayta-qayta ishlatish mumkin. Skriptlarni yozishda siz o'zgaruvchilar, shartlar, tsikllar, funktsiyalar va boshqa funktsiyalardan foydalanishingiz mumkin.

Endi biz muhim shartlarni ko'rib chiqdik, shuni ta'kidlamoqchimanki, men bu erda "Bash", "qobiq" va "buyruqlar qatori" atamalarini, shuningdek, "katalog" va "papka" atamalarini bir-birining o'rnida ishlataman.

Standart oqimlar, biz bu erda standart kirishdan foydalanamiz (standart kirish, stdin), standart chiqish (standart chiqish, stdout) va standart xato chiqishi (standart xato, stderr).

Agar quyida keltirilgan misol buyruqlarida siz shunga o'xshash narsani topasiz my_whatever - bu shuni anglatadiki, bu parchani sizniki bilan almashtirish kerak. Masalan, fayl nomi.

Endi, ushbu material bag'ishlangan buyruqlarni tahlil qilishni davom ettirishdan oldin, ularning ro'yxati va ularning qisqacha tavsiflarini ko'rib chiqaylik.

21 Bash buyruqlari

▍Ma'lumot olish

  • man: Buyruq uchun foydalanuvchi qo'llanmasini (yordam) ko'rsatadi.
  • pwd: ishchi katalog haqidagi ma'lumotlarni ko'rsatadi.
  • ls: katalog tarkibini ko'rsatadi.
  • ps: Ishlayotgan jarayonlar haqidagi ma'lumotlarni ko'rish imkonini beradi.

▍Fayl tizimini manipulyatsiya qilish

  • cd: ishchi katalogni o'zgartirish.
  • touch: fayl yaratish.
  • mkdir: katalog yaratish.
  • cp: Faylni nusxalash.
  • mv: Faylni koʻchirish yoki oʻchirish.
  • ln: havola yarating.

▍I/Uni qayta yo'naltirish va quvurlar

  • <: qayta yo'naltirish stdin.
  • >: qayta yo'naltirish stdout.
  • |: bitta buyruqning chiqishini boshqa buyruqning kiritilishiga o'tkazdi.

▍Fayllarni o'qish

  • head: faylning boshini o'qing.
  • tail: fayl oxirini o'qish.
  • cat: Faylni oʻqing va uning mazmunini ekranga chop eting yoki fayllarni birlashtiring.

▍Fayllarni o'chirish, jarayonlarni to'xtatish

  • rm: Faylni oʻchirish.
  • kill: jarayonni to'xtating.

▍Qidiruv

  • grep: ma'lumot qidirish.
  • ag: qidiruv uchun kengaytirilgan buyruq.

▍Arxivlash

  • tar: arxiv yaratish va ular bilan ishlash.

Keling, ushbu buyruqlar haqida batafsilroq gaplashamiz.

Jamoa tafsilotlari

Boshlash uchun, keling, natijalar shaklda chiqarilgan buyruqlar bilan shug'ullanamiz stdout. Odatda bu natijalar terminal oynasida ko'rinadi.

▍Ma'lumot olish

man command_name: buyruq qo'llanmasini, ya'ni yordam ma'lumotlarini ko'rsatish.

pwd: joriy ishchi katalogga yo'lni ko'rsatish. Buyruqlar qatori bilan ishlash jarayonida foydalanuvchi ko'pincha tizimning qayerda ekanligini aniqlab olishi kerak.

ls: katalog tarkibini ko'rsatish. Bu buyruq ham tez-tez ishlatiladi.

ls -a: yashirin fayllarni ko'rsatish. bayroq bu yerda qo'llaniladi -a jamoalari ls. Bayroqlardan foydalanish buyruqlarning harakatini moslashtirishga yordam beradi.

ls -l: Fayllar haqida batafsil ma'lumotni ko'rsatish.

Bayroqlarni birlashtirish mumkinligini unutmang. Masalan - bu kabi: ls -al.

ps: Ishlayotgan jarayonlarni ko‘rish.

ps -e: Faqat joriy foydalanuvchi qobig'i bilan bog'langan emas, balki barcha ishlaydigan jarayonlar haqida ma'lumotni ko'rsatish. Ushbu buyruq ko'pincha ushbu shaklda ishlatiladi.

▍Fayl tizimini manipulyatsiya qilish

cd my_directory: ishchi katalogni o'zgartiring my_directory. Katalog daraxtida bir daraja yuqoriga ko'chirish uchun foydalaning my_directory nisbiy yo'l ../.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
cd buyrug'i

touch my_file: fayl yaratish my_file berilgan yo'l bo'ylab.

mkdir my_directory: jild yaratish my_directory berilgan yo'l bo'ylab.

mv my_file target_directory: faylni ko'chirish my_file jildga target_directory. Maqsadli katalogni belgilashda siz unga mutlaq yo'lni ishlatishingiz kerak (va shunga o'xshash qurilish emas ../).

jamoa mvfayllar yoki papkalarni nomini o'zgartirish uchun ham foydalanish mumkin. Masalan, u quyidagicha ko'rinishi mumkin:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: fayl nusxasini yaratish my_source_file va uni jildga qo'ying target_directory.

ln -s my_source_file my_target_file: ramziy havola yarating my_target_file fayl boshiga my_source_file. Agar siz havolani o'zgartirsangiz, asl fayl ham o'zgaradi.

Agar fayl my_source_file keyin o'chiriladi my_target_file qoladi. Bayroq -s jamoalari ln kataloglar uchun havolalar yaratish imkonini beradi.

Endi I/U qayta yo'naltirish va quvurlar haqida gapiraylik.

▍I/Uni qayta yo'naltirish va quvurlar

my_command < my_file: standart kirish fayli deskriptorini almashtiradi (stdin) har bir fayl uchun my_file. Agar buyruq klaviaturadan ma'lum bir kiritishni kutayotgan bo'lsa va bu ma'lumotlar allaqachon faylda saqlangan bo'lsa, bu foydali bo'lishi mumkin.

my_command > my_file: buyruq natijalarini qayta yo'naltiradi, ya'ni odatda nimaga kiradi stdout va ekranga, faylga chiqarish my_file. Agar fayl my_file mavjud emas - u yaratilgan. Agar fayl mavjud bo'lsa, uning ustiga yoziladi.

Masalan, buyruqni bajargandan so'ng ls > my_folder_contents.txt joriy ishchi katalogdagi narsalar ro'yxatini o'z ichiga olgan matnli fayl yaratiladi.

Agar belgi o'rniga > qurilishdan foydalaning >>, keyin, agar buyruqning chiqishi qayta yo'naltiriladigan fayl mavjud bo'lsa, bu fayl qayta yozilmaydi. Ma'lumotlar ushbu faylning oxiriga qo'shiladi.

Keling, ma'lumotlar quvurlarini qayta ishlashni ko'rib chiqaylik.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
Bir buyruqning chiqishi boshqa buyruqning kiritilishiga kiritiladi. Bu bir quvurni boshqasiga ulashga o'xshaydi

first_command | second_command: konveyer belgisi, |, bir buyruqning natijasini boshqa buyruqqa yuborish uchun ishlatiladi. Ta'riflangan strukturaning chap tomonidagi buyruq nimaga yuboradi stdout, ichiga tushish stdin quvur liniyasi belgisining o'ng tomonidagi buyruq.

Linuxda ma'lumotlarni deyarli har qanday yaxshi shakllangan buyruq yordamida uzatish mumkin. Ko'pincha Linuxda hamma narsa quvur liniyasi ekanligi aytiladi.

Quvur liniyasi belgisi yordamida bir nechta buyruqlarni zanjirlashingiz mumkin. Bu shunday ko'rinadi:

first_command | second_command | third_command

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
Bir nechta buyruqlardan iborat quvur liniyasini quvur liniyasi bilan taqqoslash mumkin

Belgining chap tomonidagi buyruq qachon ekanligini unutmang |, biror narsani chiqaradi stdout, u chiqadigan narsa darhol sifatida mavjud stdin ikkinchi jamoa. Ya'ni, quvur liniyasidan foydalanib, biz buyruqlarni parallel ravishda bajarish bilan shug'ullanamiz. Ba'zida bu kutilmagan natijalarga olib kelishi mumkin. Bu haqda batafsil ma'lumotni o'qishingiz mumkin shu yerda.

Endi fayllardan ma'lumotlarni o'qish va ularni ekranda ko'rsatish haqida gapiraylik.

▍Fayllarni o'qish

head my_file: fayl boshidan satrlarni o'qiydi va ularni ekranga chiqaradi. Siz nafaqat fayllarning mazmunini, balki buyruqlar nimani chiqarishini ham o'qishingiz mumkin stdinushbu buyruqni quvur liniyasining bir qismi sifatida ishlatish.

tail my_file: fayl oxiridan satrlarni o'qiydi. Ushbu buyruq quvur liniyasida ham ishlatilishi mumkin.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
Bosh (bosh) oldinda, dumi (dumi) orqada

Agar siz pandalar kutubxonasidan foydalangan holda ma'lumotlar bilan ishlayotgan bo'lsangiz, u holda buyruqlar head и tail sizga tanish bo'lishi kerak. Agar bunday bo'lmasa, yuqoridagi rasmga qarang va ularni osongina eslab qolasiz.

Fayllarni o'qishning boshqa usullarini ko'rib chiqing, keling, buyruq haqida gapiraylik cat.

komanda cat fayl mazmunini ekranga chop etadi yoki bir nechta fayllarni birlashtiradi. Bu chaqirilganda ushbu buyruqqa qancha fayl uzatilishiga bog'liq.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
mushuk buyrug'i

cat my_one_file.txt: bitta fayl bu buyruqqa uzatilsa, uni chiqaradi stdout.

Agar siz unga ikkita yoki undan ortiq fayl bersangiz, u boshqacha harakat qiladi.

cat my_file1.txt my_file2.txt: kirish sifatida bir nechta fayllarni qabul qilgan holda, bu buyruq ularning mazmunini birlashtiradi va nima sodir bo'lganligini ko'rsatadi stdout.

Agar faylni birlashtirish natijasini yangi fayl sifatida saqlash kerak bo'lsa, siz operatordan foydalanishingiz mumkin >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Endi fayllarni qanday o'chirish va jarayonlarni to'xtatish haqida gapiraylik.

▍Fayllarni o'chirish, jarayonlarni to'xtatish

rm my_file: faylni o'chirish my_file.

rm -r my_folder: jildni o'chiradi my_folder va undagi barcha fayl va papkalar. Bayroq -r buyruq rekursiv rejimda ishlashini bildiradi.

Tizim har safar fayl yoki jild oʻchirilganda tasdiqlashni soʻrashining oldini olish uchun bayroqdan foydalaning -f.

kill 012345: Belgilangan ishlash jarayonini to'xtatib, uni chiroyli tarzda o'chirish uchun vaqt beradi.

kill -9 012345: Belgilangan ishlash jarayonini majburan tugatadi. Bayroqni ko'rish -s SIGKILL bayroq bilan bir xil ma'noni anglatadi -9.

▍Qidiruv

Ma'lumotlarni qidirish uchun turli xil buyruqlardan foydalanishingiz mumkin. Ayniqsa - grep, ag и ack. Keling, ushbu buyruqlar bilan tanishuvimizni shundan boshlaylik grep. Bu vaqt sinovidan o'tgan, ishonchli buyruq, ammo boshqalarga qaraganda sekinroq va ulardan foydalanish unchalik qulay emas.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
grep buyrug'i

grep my_regex my_file: qidiruvlar my_regex в my_file. Agar moslik topilsa, har bir moslik uchun butun satr qaytariladi. Standart my_regex muntazam ifoda sifatida qaraladi.

grep -i my_regex my_file: Qidiruv katta-kichik harflarni sezmaydigan tarzda amalga oshiriladi.

grep -v my_regex my_file: o'z ichiga olmagan barcha qatorlarni qaytaradi my_regex. Bayroq -v inversiyani bildiradi, operatorga o'xshaydi NOT, ko'plab dasturlash tillarida mavjud.

grep -c my_regex my_file: Faylda topilgan qidirilayotgan naqsh uchun mosliklar soni haqidagi ma'lumotni qaytaradi.

grep -R my_regex my_folder: belgilangan papkada va unga joylashtirilgan papkalarda joylashgan barcha fayllarda rekursiv qidiruvni amalga oshiradi.

Endi jamoa haqida gapiraylik ag. U keyinroq keldi grep, u tezroq, u bilan ishlash qulayroq.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
ag buyrug'i

ag my_regex my_file: satr raqamlari va mos keladigan satrlarning o'zlari haqidagi ma'lumotlarni qaytaradi my_regex.

ag -i my_regex my_file: Qidiruv katta-kichik harflarni sezmaydigan tarzda amalga oshiriladi.

komanda ag faylni avtomatik ravishda qayta ishlash .gitignore va ushbu faylda ko'rsatilgan papkalar yoki fayllarda topilgan narsalarni chiqishdan chiqarib tashlaydi. Bu juda qulay.

ag my_regex my_file -- skip-vcs-ignores: avtomatik versiya boshqaruv fayllari tarkibi (masalan .gitignore) qidiruvda hisobga olinmaydi.

Bundan tashqari, jamoaga aytish uchun ag qaysi fayl yo'llari bo'yicha qidiruvdan chiqarib tashlamoqchi bo'lsangiz, fayl yaratishingiz mumkin .agignore.

Ushbu bo'limning boshida biz buyruqni eslatib o'tdik ack. Jamoalar ack и ag juda o'xshash, biz ular 99% bir-birini almashtirish mumkin, deb aytish mumkin. Biroq, jamoa ag tezroq ishlaydi, shuning uchun men buni tasvirlab berdim.

Endi arxivlar bilan ishlash haqida gapiraylik.

▍Arxivlash

tar my_source_directory: papkadagi fayllarni birlashtiradi my_source_directory bitta tarball fayliga. Bunday fayllar katta hajmdagi fayllarni kimgadir o'tkazish uchun foydalidir.

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq
tar buyrug'i

Ushbu buyruq tomonidan yaratilgan tarball fayllari kengaytmali fayllardir .tar (Tasma arxivi). Buyruqning nomida va u yaratgan fayllar nomlarining kengaytmasida “lenta” (lenta) so‘zining yashirin bo‘lishi bu buyruq qancha vaqtdan beri mavjud bo‘lganligini ko‘rsatadi.

tar -cf my_file.tar my_source_directory: nomli tarball faylini yaratadi my_file.tar jild mazmuni bilan my_source_directory. Bayroq -c "yaratish" (yaratish) va bayroqni anglatadi -f "fayl" (fayl) sifatida.

Fayllarni chiqarib olish uchun .tar-fayl, buyrug'idan foydalaning tar bayroqlar bilan -x ("ekstrakt", ekstraksiya) va -f ("fayl", fayl).

tar -xf my_file.tar: dan fayllarni chiqaradi my_file.tar joriy ishchi katalogga.

Keling, qanday qilib siqish va ochish haqida gapiraylik .tar-fayllar.

tar -cfz my_file.tar.gz my_source_directory: bu yerda bayroqdan foydalaniladi -z ("zip", siqish algoritmi) algoritm fayllarni siqish uchun ishlatilishi kerakligini bildiradi. gzip (GNUzip). Fayllarni siqish bunday fayllarni saqlashda disk maydonini tejaydi. Agar fayllar, masalan, boshqa foydalanuvchilarga o'tkazilishi rejalashtirilgan bo'lsa, bu bunday fayllarni tezroq yuklab olishga yordam beradi.

Faylni oching .tar.gz bayroq qo'shishingiz mumkin -z tarkibni chiqarish buyrug'iga .tar-fayllar, biz yuqorida muhokama qilganmiz. Bu shunday ko'rinadi:

tar -xfz my_file.tar.gz
Shuni ta'kidlash kerakki, jamoa tar Yana ko'p foydali bayroqlar mavjud.

Bash taxalluslari

Bash taxalluslari (shuningdek, taxalluslar yoki qisqartmalar deb ataladi) buyruqlarning qisqartirilgan nomlarini yoki ularning ketma-ketligini yaratish uchun mo'ljallangan, ulardan oddiy buyruqlar o'rniga foydalanish ishni tezlashtiradi. Agar sizda taxallus bo'lsa bu, bu buyruqni yashiradi python setup.py sdist bdist_wheel, keyin ushbu buyruqni chaqirish uchun ushbu taxallusdan foydalanish kifoya.

Bunday taxallusni yaratish uchun faylga quyidagi buyruqni qo'shish kifoya ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Agar tizimingizda fayl bo'lmasa ~/.bash_profile, keyin buyruq yordamida uni o'zingiz yaratishingiz mumkin touch. Taxallusni yaratgandan so'ng, terminalni qayta ishga tushiring, shundan so'ng siz ushbu taxallusdan foydalanishingiz mumkin. Bunday holda, ikkita belgining kiritilishi buyruqning o'ndan ortiq belgilarini kiritish uchun mo'ljallangan o'rnini bosadi. yig'ilishlar Python paketlari.

В ~/.bash_profile har qanday tez-tez ishlatiladigan buyruqlar uchun taxalluslar qo'shishingiz mumkin.

▍Natijalar

Ushbu postda biz 21 ta mashhur Bash buyruqlarini ko'rib chiqdik va buyruq taxalluslarini yaratish haqida gaplashdik. Agar siz ushbu mavzuga qiziqsangiz - ko'raylik Bashga bag'ishlangan bir qator nashrlar. u Siz ushbu nashrlarning pdf versiyasini topishingiz mumkin. Bundan tashqari, agar siz Bash dasturini o'rganmoqchi bo'lsangiz, boshqa har qanday dasturlash tizimida bo'lgani kabi, amaliyot ham muhim ekanligini unutmang.

Hurmatli o'quvchilar! Ushbu maqolada muhokama qilinganlarga yangi boshlanuvchilar uchun foydali bo'lgan qanday buyruqlarni qo'shgan bo'lardingiz?

Shuningdek, bizning blogimizda bash skriptlari haqida bir qator nashrlarni o'qing

[xatcho'plar] Yangi boshlanuvchilar uchun Bash: 21 ta foydali buyruq

Manba: www.habr.com

a Izoh qo'shish