[Белгиленген] Жаңы баштагандар үчүн Bash: 21 пайдалуу буйрук

Котормосу биз бүгүн жарыялап жаткан материал Linux командалык сабын өздөштүрүп алууну каалагандар үчүн арналган. Бул куралды натыйжалуу колдонуу мүмкүнчүлүгү көп убакытты үнөмдөй алат. Атап айтканда, биз бул жерде Bash кабыгы жана 21 пайдалуу буйруктар жөнүндө сүйлөшөбүз. Биз ошондой эле узун нускамаларды терүүнү тездетүү үчүн буйрук желектерин жана Bash лакап аттарын кантип колдонуу керектиги жөнүндө сүйлөшөбүз.

[Белгиленген] Жаңы баштагандар үчүн Bash: 21 пайдалуу буйрук

Ошондой эле биздин блогдон баш сценарийлери жөнүндө бир катар басылмаларды окуңуз

шарттары

Linux буйрук сабы менен иштөөнү үйрөнгөнүңүздө, багыттоо үчүн пайдалуу болгон көптөгөн түшүнүктөрдү табасыз. Алардын айрымдары, мисалы, "Linux" жана "Unix", же "shell" жана "terminal" кээде чаташып калат. Ушул жана башка маанилүү терминдер жөнүндө сүйлөшөлү.

Unix 1970-жылдары Bell Labs тарабынан иштелип чыккан популярдуу операциялык система. Анын коду жабылган.

Linux Unix сыяктуу эң популярдуу операциялык система. Ал азыр көптөгөн түзмөктөрдө, анын ичинде компьютерлерде колдонулат.

акыркы пункт (терминал), же терминал эмулятору операциялык системага кирүү мүмкүнчүлүгүн берген программа. Сиз бир эле учурда бир нече терминал терезелерин ача аласыз.

жумуртканын кабыгы (shell) – операциялык системага атайын тилде жазылган буйруктарды жөнөтүүгө мүмкүндүк берүүчү программа.

Баш Bourne Again Shell дегенди билдирет. Бул операциялык система менен иштешүү үчүн колдонулган эң кеңири таралган кабык тили. Ошондой эле, Bash кабыгы MacOS үчүн демейки болуп саналат.

Буйрук сабынын интерфейси (Command Line Interface, CLI) – бул адам менен компьютердин өз ара аракеттенүү ыкмасы, аны колдонууда колдонуучу клавиатурадан буйруктарды киргизет, ал эми компьютер бул буйруктарды аткарып, билдирүүлөрдү колдонуучу үчүн текст түрүндө көрсөтөт. CLI негизинен белгилүү бир объектилер жөнүндө, мисалы, файлдар жөнүндө актуалдуу маалыматты алуу жана файлдар менен иштөө үчүн колдонулат. Буйрук сабынын интерфейси биринчи кезекте чычканды колдонгон графикалык колдонуучу интерфейсинен (GUI) айырмаланышы керек. Буйрук сабынын интерфейси көбүнчө буйрук сабы деп аталат.

Скрипт (скрипт) - кабык буйруктарынын ырааттуулугун камтыган кичинекей программа. Скрипттер файлдарга жазылат, аларды кайра-кайра колдонууга болот. Скрипттерди жазууда сиз өзгөрмөлөрдү, шарттууларды, циклдерди, функцияларды жана башка функцияларды колдоно аласыз.

Эми биз маанилүү терминдерди карап чыккандан кийин, мен бул жерде "Баш", "кабык" жана "буйрук сабы" терминдерин, ошондой эле "каталог" жана "папка" терминдерин алмаштырып аларымды белгилегим келет.

-стандартты, агымдар, биз бул жерде колдоно турган стандарттык киргизүү (стандарттык киргизүү, stdin), стандарттык чыгаруу (стандарттык чыгаруу, stdout) жана стандарттык ката чыгаруу (стандарттык ката, stderr).

Төмөндө келтирилген буйруктар мисалында, сиз ушул сыяктуу нерсени таба аласыз my_whatever - бул фрагментти сиздики менен алмаштыруу керек дегенди билдирет. Мисалы, файлдын аты.

Эми, бул материал арналган буйруктарды талдоону улантуудан мурун, алардын тизмесин жана алардын кыскача сүрөттөмөсүн карап көрөлү.

21 Bash буйруктары

▍Маалымат алуу

  • man: Буйрук үчүн колдонуучу колдонмосун (жардам) көрсөтөт.
  • pwd: жумушчу каталог жөнүндө маалыматты көрсөтөт.
  • ls: каталогдун мазмунун көрсөтөт.
  • ps: Иштеп жаткан процесстер жөнүндө маалыматты көрүүгө мүмкүндүк берет.

▍Файл тутумунун манипуляциясы

  • cd: жумушчу каталогун өзгөртүү.
  • touch: файл түзүү.
  • mkdir: каталог түзүү.
  • cp: Файлды көчүрүү.
  • mv: Файлды жылдыруу же жок кылуу.
  • ln: шилтеме түзүү.

▍I/O кайра багыттоо жана түтүктөр

  • <: багыттоо 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 каталогдорго шилтемелерди түзүүгө мүмкүндүк берет.

Эми I/O кайра багыттоо жана түтүктөр жөнүндө сүйлөшөлү.

▍I/O кайра багыттоо жана түтүктөр

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: 21 пайдалуу буйрук

Source: www.habr.com

Комментарий кошуу