[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен

Аудармасы бүгін біз жариялап отырған материал Linux пәрмен жолын меңгергісі келетіндерге арналған. Бұл құралды тиімді пайдалану мүмкіндігі көп уақытты үнемдейді. Атап айтқанда, біз мұнда Bash қабығы және 21 пайдалы команда туралы айтатын боламыз. Ұзын нұсқауларды теруді жылдамдату үшін пәрмен жалаулары мен Bash бүркеншік атын қалай пайдалану керектігі туралы да сөйлесеміз.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен

Сондай-ақ біздің блогта bash сценарийлері туралы бірқатар жарияланымдарды оқыңыз

Терминдер

Linux пәрмен жолымен жұмыс істеуді үйренген кезде сіз шарлау үшін пайдалы болатын көптеген ұғымдарды кездестіресіз. Олардың кейбіреулері, мысалы, «Linux» және «Unix», немесе «қабық» және «терминал» кейде шатастырады. Осы және басқа да маңызды терминдер туралы сөйлесейік.

Unix 1970 жылдары Bell Labs әзірлеген танымал операциялық жүйе. Оның коды жабылды.

Linux Unix тәрізді ең танымал операциялық жүйе. Ол қазір көптеген құрылғыларда, соның ішінде компьютерлерде қолданылады.

терминал (терминал), немесе терминал эмуляторы операциялық жүйеге кіруге мүмкіндік беретін бағдарлама. Бір уақытта бірнеше терминал терезесін ашуға болады.

Shell (қабық) операциялық жүйеге арнайы тілде жазылған командаларды жіберуге мүмкіндік беретін программа.

Bash Bourne Again Shell дегенді білдіреді. Бұл операциялық жүйемен әрекеттесу үшін қолданылатын ең көп таралған қабық тілі. Сондай-ақ, Bash қабығы macOS жүйесінде әдепкі болып табылады.

Командалық жол интерфейсі (Command Line Interface, CLI) – адам мен компьютер арасындағы өзара әрекеттесу әдісі, оның көмегімен пайдаланушы пернетақтадан командаларды енгізеді, ал компьютер осы командаларды орындай отырып, хабарламаларды пайдаланушыға мәтіндік формада көрсетеді. CLI негізгі қолдануы файлдар сияқты белгілі бір нысандар туралы өзекті ақпаратты алу және файлдармен жұмыс істеу болып табылады. Пәрмен жолы интерфейсін бірінші кезекте тінтуірді пайдаланатын графикалық пайдаланушы интерфейсінен (GUI) ажырату керек. Пәрмен жолы интерфейсі жиі жай пәрмен жолы деп аталады.

Сценарий (скрипт) – қабық командаларының тізбегін қамтитын шағын бағдарлама. Сценарийлер файлдарға жазылады, оларды қайталап қолдануға болады. Сценарийлерді жазу кезінде айнымалыларды, шартты мәндерді, циклдарды, функцияларды және басқа мүмкіндіктерді пайдалануға болады.

Енді біз маңызды терминдерді қарастырғаннан кейін, мен мұнда «Bash», «shell» және «командалық жол» терминдерін, сондай-ақ «каталог» және «қалта» терминдерін бір-бірінің орнына қолданатынымды атап өткім келеді.

Стандартты ағындар, бұл жерде біз стандартты енгізуді қолданамыз (стандартты енгізу, stdin), стандартты шығыс (стандартты шығыс, stdout) және стандартты қате шығысы (стандартты қате, stderr).

Төменде келтірілген мысалда пәрмендер болса, сіз осындай нәрсені таба аласыз my_whatever - бұл бұл фрагментті сіздің бір нәрсеңізбен ауыстыру керек дегенді білдіреді. Мысалы, файл атауы.

Енді осы материалға арналған командаларды талдауға кіріспес бұрын, олардың тізімін және олардың қысқаша сипаттамасын қарастырайық.

21 Bash пәрмендері

▍Ақпарат алу

  • man: Пәрменге арналған пайдаланушы нұсқаулығын (анықтама) көрсетеді.
  • pwd: жұмыс каталогы туралы ақпаратты көрсетеді.
  • ls: каталогтың мазмұнын көрсетеді.
  • ps: іске қосылған процестер туралы ақпаратты көруге мүмкіндік береді.

▍Файлдық жүйені манипуляциялау

  • cd: жұмыс каталогын өзгерту.
  • touch: файл жасау.
  • mkdir: каталог жасау.
  • cp: Файлды көшіріңіз.
  • mv: файлды жылжыту немесе жою.
  • ln: сілтеме жасау.

▍Енгізу/шығаруды қайта бағыттау және құбырлар

  • <: қайта бағыттау stdin.
  • >: қайта бағыттау stdout.
  • |: бір команданың шығысын басқа пәрменнің кірісіне құбыр арқылы жіберді.

▍Файлдарды оқу

  • head: файлдың басын оқыңыз.
  • tail: файлдың соңын оқу.
  • cat: Файлды оқыңыз және оның мазмұнын экранға басып шығарыңыз немесе файлдарды біріктіріңіз.

▍Файлдарды жою, процестерді тоқтату

  • rm: файлды жою.
  • kill: процесті тоқтату.

▍Іздеу

  • grep: ақпаратты іздеу.
  • ag: іздеуге арналған кеңейтілген пәрмен.

▍Мұрағаттау

  • tar: мұрағат құру және олармен жұмыс жасау.

Бұл командалар туралы толығырақ сөйлесейік.

Топ мәліметтері

Бастау үшін, нәтижелері пішінде шығарылатын командалармен айналысайық stdout. Әдетте бұл нәтижелер терминал терезесінде пайда болады.

▍Ақпарат алу

man command_name: пәрмен нұсқаулығын, яғни анықтама ақпаратын көрсету.

pwd: ағымдағы жұмыс каталогына жолды көрсету. Пәрмен жолымен жұмыс істеу барысында пайдаланушы жиі жүйеде қай жерде екенін білуі керек.

ls: каталогтың мазмұнын көрсетеді. Бұл пәрмен де жиі қолданылады.

ls -a: жасырын файлдарды көрсету. жалау осы жерде қолданылады -a командалар ls. Жалаушаларды пайдалану командалардың әрекетін реттеуге көмектеседі.

ls -l: файлдар туралы толық ақпаратты көрсетеді.

Жалаушаларды біріктіруге болатынын ескеріңіз. Мысалы - келесідей: ls -al.

ps: Жұмыс істеп тұрған процестерді көру.

ps -e: Ағымдағы пайдаланушы қабығымен байланыстырылғандарды ғана емес, барлық іске қосылған процестер туралы ақпаратты көрсетіңіз. Бұл пәрмен осы пішінде жиі қолданылады.

▍Файлдық жүйені манипуляциялау

cd my_directory: жұмыс каталогын өзгерту my_directory. Каталогтар ағашында бір деңгейге жоғары жылжыту үшін пайдаланыңыз my_directory салыстырмалы жол ../.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
cd командасы

touch my_file: файл жасау my_file берілген жол бойымен.

mkdir my_directory: қалта жасаңыз my_directory берілген жол бойымен.

mv my_file target_directory: файлды жылжыту my_file қалтаға target_directory. Мақсатты каталогты көрсеткенде, оған абсолютті жолды пайдалану керек (және сияқты құрылысты емес ../).

Команда mvфайлдар мен қалталардың атын өзгерту үшін де пайдалануға болады. Мысалы, ол келесідей болуы мүмкін:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: файлдың көшірмесін жасау my_source_file және оны қалтаға салыңыз target_directory.

ln -s my_source_file my_target_file: символдық сілтеме жасау my_target_file файлға my_source_file. Сілтемені өзгертсеңіз, бастапқы файл да өзгереді.

Егер файл my_source_file содан кейін жойылады my_target_file қалады. Жалау -s командалар ln каталогтар үшін сілтемелер жасауға мүмкіндік береді.

Енді енгізу/шығару бағытын өзгерту және конвейерлер туралы сөйлесейік.

▍Енгізу/шығаруды қайта бағыттау және құбырлар

my_command < my_file: стандартты енгізу файлы дескрипторын ауыстырады (stdin) файлға my_file. Бұл пәрмен пернетақтадан кейбір енгізуді күтіп тұрса және бұл деректер файлда әлдеқашан сақталған болса пайдалы болуы мүмкін.

my_command > my_file: пәрменнің нәтижелерін қайта бағыттайды, яғни әдетте нені енгізеді stdout және экранға, файлға шығару my_file. Егер файл my_file жоқ – ол жасалған. Егер файл бар болса, ол қайта жазылады.

Мысалы, пәрменді орындағаннан кейін ls > my_folder_contents.txt ағымдағы жұмыс каталогындағы тізімді қамтитын мәтіндік файл жасалады.

Егер таңбаның орнына > құрылысын қолданыңыз >>, содан кейін, пәрменнің шығысы қайта бағытталатын файл бар болған жағдайда, бұл файл қайта жазылмайды. Деректер осы файлдың соңына қосылады.

Енді деректер құбырын өңдеуді қарастырайық.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
Бір команданың шығысы басқа команданың кірісіне беріледі. Бұл бір құбырды екіншісіне қосу сияқты

first_command | second_command: конвейер белгісі, |, бір команданың шығысын басқа командаға жіберу үшін қолданылады. Сипатталған құрылымның сол жағындағы команда неге жібереді stdout, түсу stdin құбыр белгісінің оң жағындағы пәрмен.

Linux жүйесінде деректерді кез келген жақсы пішімделген пәрменді қолдану арқылы жасауға болады. Көбінесе Linux-та бәрі құбыр желісі деп айтылады.

Құбыр таңбасын пайдаланып бірнеше пәрмендерді тізбектей аласыз. Бұл келесідей көрінеді:

first_command | second_command | third_command

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
Бірнеше командалардан тұратын конвейерді конвейермен салыстыруға болады

Таңбаның сол жағындағы команда болған кезде ескеріңіз |, бір нәрсені шығарады stdout, ол шығаратын нәрсе ретінде бірден қолжетімді болады stdin екінші команда. Яғни, құбырды пайдалана отырып, біз командаларды параллель орындаумен айналысамыз. Кейде бұл күтпеген нәтижелерге әкелуі мүмкін. Бұл туралы мәліметтерді оқуға болады осында.

Енді файлдардан деректерді оқу және оларды экранда көрсету туралы сөйлесейік.

▍Файлдарды оқу

head my_file: файлдың басынан бастап жолдарды оқиды және оларды экранға басып шығарады. Сіз файлдардың мазмұнын ғана емес, сонымен қатар пәрмендердің не шығаратынын да оқи аласыз stdinосы пәрменді құбырдың бөлігі ретінде пайдалану.

tail my_file: файл соңындағы жолдарды оқиды. Бұл пәрменді құбыр желісінде де пайдалануға болады.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
Басы (бас) алдында, ал құйрығы (құйрығы) артында

Егер сіз pandas кітапханасын пайдаланып деректермен жұмыс істеп жатсаңыз, онда пәрмендер head и tail сізге таныс болуы керек. Егер олай болмаса, жоғарыдағы суретке назар аударыңыз, сонда сіз оларды оңай есте сақтайсыз.

Файлдарды оқудың басқа жолдарын қарастырайық, пәрмен туралы сөйлесейік cat.

команда cat файлдың мазмұнын экранға басып шығарады немесе бірнеше файлдарды біріктіреді. Бұл шақырылған кезде осы пәрменге қанша файл жіберілетініне байланысты.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
мысық командасы

cat my_one_file.txt: бір файл осы пәрменге жіберілгенде, ол оны шығарады stdout.

Егер сіз оған екі немесе одан да көп файл берсеңіз, ол басқаша әрекет етеді.

cat my_file1.txt my_file2.txt: кіріс ретінде бірнеше файлды қабылдағаннан кейін, бұл пәрмен олардың мазмұнын біріктіреді және не болғанын көрсетеді stdout.

Файлды біріктіру нәтижесін жаңа файл ретінде сақтау қажет болса, операторды пайдалануға болады >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Енді файлдарды қалай жою және процестерді тоқтату туралы сөйлесейік.

▍Файлдарды жою, процестерді тоқтату

rm my_file: файлды жою my_file.

rm -r my_folder: қалтаны жояды my_folder және оның құрамындағы барлық файлдар мен қалталар. Жалау -r пәрменнің рекурсивті режимде орындалатынын көрсетеді.

Файл немесе қалта жойылған сайын жүйенің растауды сұрамауы үшін жалаушаны пайдаланыңыз -f.

kill 012345: Көрсетілген іске қосу процесін тоқтатып, оны әдемі түрде өшіруге уақыт береді.

kill -9 012345: Белгіленген іске қосу процесін мәжбүрлеп тоқтатады. Жалауды көру -s SIGKILL тумен бірдей дегенді білдіреді -9.

▍Іздеу

Деректерді іздеу үшін әртүрлі пәрмендерді пайдалануға болады. Сондай-ақ - grep, ag и ack. Осы командалармен танысуымызды келесіден бастайық grep. Бұл уақыт тексерілген, сенімді пәрмен, дегенмен ол басқаларға қарағанда баяу және олар сияқты пайдалану ыңғайлы емес.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
grep командасы

grep my_regex my_file: іздейді my_regex в my_file. Сәйкестік табылса, әрбір сәйкестік үшін бүкіл жол қайтарылады. Әдепкі my_regex тұрақты өрнек ретінде қарастырылады.

grep -i my_regex my_file: Іздеу регистрді ескермейтін түрде орындалады.

grep -v my_regex my_file: құрамында жоқ барлық жолдарды қайтарады my_regex. Жалау -v инверсия дегенді білдіреді, ол операторға ұқсайды NOT, көптеген бағдарламалау тілдерінде кездеседі.

grep -c my_regex my_file: Файлда табылған ізделетін үлгіге сәйкестіктер саны туралы ақпаратты қайтарады.

grep -R my_regex my_folder: көрсетілген қалтада және оған кірістірілген қалталарда орналасқан барлық файлдарда рекурсивті іздеуді орындайды.

Енді командаға тоқталайық ag. Ол кейінірек келді grep, ол жылдамырақ, онымен жұмыс істеу ыңғайлы.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
ag командасы

ag my_regex my_file: жол нөмірлері және сәйкестіктер табылған жолдардың өздері туралы ақпаратты қайтарады my_regex.

ag -i my_regex my_file: Іздеу регистрді ескермейтін түрде орындалады.

команда ag файлды автоматты түрде өңдейді .gitignore және сол файлда тізімделген қалталарда немесе файлдарда табылғандарды шығыстан алып тастайды. Бұл өте ыңғайлы.

ag my_regex my_file -- skip-vcs-ignores: нұсқаны автоматты түрде басқару файлдарының мазмұны (мысалы .gitignore) іздеуде есепке алынбайды.

Оған қоса, ұжымға айту мақсатында ag іздеуден шығарып тастағыңыз келетін файл жолдарында файл жасай аласыз .agignore.

Бұл бөлімнің басында біз команданы атап өттік ack. Командалар ack и ag өте ұқсас, олар 99% ауыстырылады деп айта аламыз. Дегенмен, команда ag жылдамырақ жұмыс істейді, сондықтан мен оны сипаттадым.

Енді мұрағатпен жұмыс істеуге тоқталайық.

▍Мұрағаттау

tar my_source_directory: қалтадағы файлдарды біріктіреді my_source_directory бір tarball файлына. Мұндай файлдар файлдардың үлкен жинағын біреуге тасымалдау үшін пайдалы.

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен
tar командасы

Бұл пәрмен арқылы жасалған tarball файлдары кеңейтімі бар файлдар болып табылады .tar (Таспа архиві). «Таспа» (таспа) сөзінің команданың атауында және ол жасайтын файлдар атауларының кеңейтімде жасырылуы бұл команданың қанша уақыт болғанын көрсетеді.

tar -cf my_file.tar my_source_directory: атты tarball файлын жасайды my_file.tar қалта мазмұнымен my_source_directory. Жалау -c «жасау» (жасау) және жалауды білдіреді -f «файл» (файл) ретінде.

Файлдарды шығару үшін .tar-файл, пәрменді пайдаланыңыз tar жалаулармен -x («сығынды», экстракция) және -f («файл», файл).

tar -xf my_file.tar: файлдарды шығарып алады my_file.tar ағымдағы жұмыс каталогына.

Енді қалай қысу және ашу туралы сөйлесейік .tar-файлдар.

tar -cfz my_file.tar.gz my_source_directory: мұнда жалауша қолданылады -z («zip», қысу алгоритмі) алгоритмді файлдарды қысу үшін пайдалану керектігін көрсетеді. gzip (GNUzip). Файлды қысу мұндай файлдарды сақтау кезінде дискідегі орынды үнемдейді. Егер файлдарды, мысалы, басқа пайдаланушыларға беру жоспарланса, бұл файлдарды жылдамырақ жүктеп алуға ықпал етеді.

Файлды ашыңыз .tar.gz жалауша қосуға болады -z мазмұнды шығару пәрменіне .tar-файлдар, біз жоғарыда қарастырдық. Бұл келесідей көрінеді:

tar -xfz my_file.tar.gz
Айта кету керек, команда tar Тағы да көптеген пайдалы жалаулар бар.

Bash бүркеншік аттары

Bash бүркеншік аттары (бүркеншік аттар немесе аббревиатуралар деп те аталады) пәрмендердің қысқартылған атауларын немесе олардың ретін құруға арналған, оларды кәдімгі пәрмендердің орнына пайдалану жұмысты тездетеді. Егер сізде бүркеншік ат болса bu, ол пәрменді жасырады python setup.py sdist bdist_wheel, содан кейін бұл пәрменді шақыру үшін осы бүркеншік атты пайдалану жеткілікті.

Мұндай бүркеншік атты жасау үшін файлға келесі пәрменді қосыңыз ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Жүйеде файл жоқ болса ~/.bash_profile, содан кейін пәрменді пайдаланып оны өзіңіз жасай аласыз touch. Бүркеншік атты жасағаннан кейін терминалды қайта іске қосыңыз, содан кейін бұл бүркеншік атты пайдалануға болады. Бұл жағдайда екі таңбаны енгізу пәрменнің үш ондаған таңбасының енгізуін ауыстырады, ол жиындар Python пакеттері.

В ~/.bash_profile кез келген жиі қолданылатын пәрмендерге бүркеншік аттар қосуға болады.

▍Нәтижелер

Бұл постта біз 21 танымал Bash пәрмендерін қарастырдық және пәрмен бүркеншік атын жасау туралы айттық. Егер сізді осы тақырып қызықтырса - қараңыз Башқа арналған басылымдар сериясы. Бұл Сіз бұл басылымдардың pdf нұсқасын таба аласыз. Сондай-ақ, егер сіз Bash тілін үйренгіңіз келсе, кез келген басқа бағдарламалау жүйесі сияқты тәжірибе маңызды екенін есте сақтаңыз.

Құрметті оқырмандар! Осы мақалада талқыланғандарға жаңадан бастағандар үшін пайдалы қандай пәрмендерді қосар едіңіз?

Сондай-ақ біздің блогта bash сценарийлері туралы бірқатар жарияланымдарды оқыңыз

[бетбелгіленген] Жаңадан бастаушыларға арналған Bash: 21 пайдалы пәрмен

Ақпарат көзі: www.habr.com

пікір қалдыру