Аудармасы бүгін біз жариялап отырған материал Linux пәрмен жолын меңгергісі келетіндерге арналған. Бұл құралды тиімді пайдалану мүмкіндігі көп уақытты үнемдейді. Атап айтқанда, біз мұнда Bash қабығы және 21 пайдалы команда туралы айтатын боламыз. Ұзын нұсқауларды теруді жылдамдату үшін пәрмен жалаулары мен Bash бүркеншік атын қалай пайдалану керектігі туралы да сөйлесеміз.
→
Терминдер
Linux пәрмен жолымен жұмыс істеуді үйренген кезде сіз шарлау үшін пайдалы болатын көптеген ұғымдарды кездестіресіз. Олардың кейбіреулері, мысалы, «Linux» және «Unix», немесе «қабық» және «терминал» кейде шатастырады. Осы және басқа да маңызды терминдер туралы сөйлесейік.
Енді біз маңызды терминдерді қарастырғаннан кейін, мен мұнда «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
салыстырмалы жол ../
.
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_directorymy_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
ағымдағы жұмыс каталогындағы тізімді қамтитын мәтіндік файл жасалады.
Егер таңбаның орнына >
құрылысын қолданыңыз >>
, содан кейін, пәрменнің шығысы қайта бағытталатын файл бар болған жағдайда, бұл файл қайта жазылмайды. Деректер осы файлдың соңына қосылады.
Енді деректер құбырын өңдеуді қарастырайық.
Бір команданың шығысы басқа команданың кірісіне беріледі. Бұл бір құбырды екіншісіне қосу сияқты
first_command | second_command
: конвейер белгісі, |
, бір команданың шығысын басқа командаға жіберу үшін қолданылады. Сипатталған құрылымның сол жағындағы команда неге жібереді stdout
, түсу stdin
құбыр белгісінің оң жағындағы пәрмен.
Linux жүйесінде деректерді кез келген жақсы пішімделген пәрменді қолдану арқылы жасауға болады. Көбінесе Linux-та бәрі құбыр желісі деп айтылады.
Құбыр таңбасын пайдаланып бірнеше пәрмендерді тізбектей аласыз. Бұл келесідей көрінеді:
first_command | second_command | third_command
Бірнеше командалардан тұратын конвейерді конвейермен салыстыруға болады
Таңбаның сол жағындағы команда болған кезде ескеріңіз |
, бір нәрсені шығарады stdout
, ол шығаратын нәрсе ретінде бірден қолжетімді болады stdin
екінші команда. Яғни, құбырды пайдалана отырып, біз командаларды параллель орындаумен айналысамыз. Кейде бұл күтпеген нәтижелерге әкелуі мүмкін. Бұл туралы мәліметтерді оқуға болады
Енді файлдардан деректерді оқу және оларды экранда көрсету туралы сөйлесейік.
▍Файлдарды оқу
head my_file
: файлдың басынан бастап жолдарды оқиды және оларды экранға басып шығарады. Сіз файлдардың мазмұнын ғана емес, сонымен қатар пәрмендердің не шығаратынын да оқи аласыз stdin
осы пәрменді құбырдың бөлігі ретінде пайдалану.
tail my_file
: файл соңындағы жолдарды оқиды. Бұл пәрменді құбыр желісінде де пайдалануға болады.
Басы (бас) алдында, ал құйрығы (құйрығы) артында
Егер сіз pandas кітапханасын пайдаланып деректермен жұмыс істеп жатсаңыз, онда пәрмендер head
и tail
сізге таныс болуы керек. Егер олай болмаса, жоғарыдағы суретке назар аударыңыз, сонда сіз оларды оңай есте сақтайсыз.
Файлдарды оқудың басқа жолдарын қарастырайық, пәрмен туралы сөйлесейік cat
.
команда cat
файлдың мазмұнын экранға басып шығарады немесе бірнеше файлдарды біріктіреді. Бұл шақырылған кезде осы пәрменге қанша файл жіберілетініне байланысты.
мысық командасы
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
. Бұл уақыт тексерілген, сенімді пәрмен, дегенмен ол басқаларға қарағанда баяу және олар сияқты пайдалану ыңғайлы емес.
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
, ол жылдамырақ, онымен жұмыс істеу ыңғайлы.
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 файлына. Мұндай файлдар файлдардың үлкен жинағын біреуге тасымалдау үшін пайдалы.
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
. Бүркеншік атты жасағаннан кейін терминалды қайта іске қосыңыз, содан кейін бұл бүркеншік атты пайдалануға болады. Бұл жағдайда екі таңбаны енгізу пәрменнің үш ондаған таңбасының енгізуін ауыстырады, ол
В ~/.bash_profile
кез келген жиі қолданылатын пәрмендерге бүркеншік аттар қосуға болады.
▍Нәтижелер
Бұл постта біз 21 танымал Bash пәрмендерін қарастырдық және пәрмен бүркеншік атын жасау туралы айттық. Егер сізді осы тақырып қызықтырса -
Құрметті оқырмандар! Осы мақалада талқыланғандарға жаңадан бастағандар үшін пайдалы қандай пәрмендерді қосар едіңіз?
→
Ақпарат көзі: www.habr.com