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.
→
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.
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 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'naltirishstdin
.>
: qayta yo'naltirishstdout
.|
: 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 ../
.
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 mv
fayllar 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
: fayl nusxasini yaratish
cp my_source_file target_directorymy_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.
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
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
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 stdin
ushbu buyruqni quvur liniyasining bir qismi sifatida ishlatish.
tail my_file
: fayl oxiridan satrlarni o'qiydi. Ushbu buyruq quvur liniyasida ham ishlatilishi mumkin.
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.
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.
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.
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.
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.
В ~/.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 -
Hurmatli o'quvchilar! Ushbu maqolada muhokama qilinganlarga yangi boshlanuvchilar uchun foydali bo'lgan qanday buyruqlarni qo'shgan bo'lardingiz?
→
Manba: www.habr.com