[էջանշված] Bash սկսնակների համար. 21 օգտակար հրամաններ

Նյութը, որի թարգմանությունը հրապարակում ենք այսօր, նախատեսված է նրանց համար, ովքեր ցանկանում են տիրապետել Linux հրամանի տողին։ Այս գործիքը արդյունավետ օգտագործելու ունակությունը կարող է շատ ժամանակ խնայել: Մասնավորապես, այստեղ կխոսենք Bash shell-ի և 21 օգտակար հրամանների մասին։ Մենք նաև կխոսենք այն մասին, թե ինչպես օգտագործել հրամանների դրոշները և Bash անունները երկար հրահանգների մուտքագրումն արագացնելու համար:

[էջանշված] Bash սկսնակների համար. 21 օգտակար հրամաններ

Կարդացեք նաև մեր բլոգում մի շարք հրապարակումներ բաշ սցենարների մասին

Պայմաններ

Երբ դուք սովորում եք աշխատել Linux հրամանի տողի հետ, դուք կհանդիպեք բազմաթիվ հասկացությունների, որոնք օգտակար են նավարկելու համար: Նրանցից ոմանք, ինչպիսիք են «Linux»-ը և «Unix»-ը, կամ «shell»-ը և «terminal»-ը, երբեմն շփոթվում են: Եկեք խոսենք այս և այլ կարևոր տերմինների մասին:

Յունիքս հայտնի օպերացիոն համակարգ է, որը մշակվել է Bell Labs-ի կողմից 1970-ականներին: Նրա ծածկագիրը փակ էր։

Linux Unix-ի նման ամենահայտնի օպերացիոն համակարգն է: Այժմ այն ​​օգտագործվում է բազմաթիվ սարքերում, այդ թվում՝ համակարգիչներում:

Տերմինալ (տերմինալ), կամ տերմինալային էմուլյատորը ծրագիր է, որը հնարավորություն է տալիս մուտք գործել օպերացիոն համակարգ: Դուք կարող եք միաժամանակ մի քանի տերմինալային պատուհաններ բացել:

Shell (shell)-ը ծրագիր է, որը թույլ է տալիս օպերացիոն համակարգ ուղարկել հատուկ լեզվով գրված հրամաններ։

Ուժեղ հարվածել նշանակում է Bourne Again Shell: Այն ամենատարածված shell լեզուն է, որն օգտագործվում է օպերացիոն համակարգի հետ փոխազդելու համար: Բացի այդ, Bash shell-ը լռելյայն է macOS-ում:

Հրամանի տողի ինտերֆեյս (Command Line Interface, CLI) մարդու և համակարգչի միջև փոխգործակցության մեթոդ է, որն օգտագործելիս օգտատերը հրամաններ է մուտքագրում ստեղնաշարից, իսկ համակարգիչը, կատարելով այդ հրամանները, ցուցադրում է հաղորդագրությունները տեքստային ձևով օգտագործողի համար: CLI-ն հիմնականում օգտագործվում է որոշակի սուբյեկտների, օրինակ, ֆայլերի մասին արդի տեղեկատվություն ստանալու և ֆայլերի հետ աշխատելու համար: Հրամանի տողի միջերեսը պետք է տարբերվի գրաֆիկական ինտերֆեյսից (GUI), որը հիմնականում օգտագործում է մկնիկը: Հրամանի տողի ինտերֆեյսը հաճախ կոչվում է պարզապես հրամանի տող:

Սցենար (script)-ը փոքր ծրագիր է, որը պարունակում է կեղևի հրամանների հաջորդականություն: Սցենարները գրվում են ֆայլերում, դրանք կարող են օգտագործվել բազմիցս: Սցենարներ գրելիս կարող եք օգտագործել փոփոխականներ, պայմանականներ, հանգույցներ, ֆունկցիաներ և այլ հնարավորություններ:

Այժմ, երբ մենք անդրադարձանք կարևոր տերմիններին, ես ուզում եմ նշել, որ այստեղ կօգտագործեմ «Bash», «shell» և «command line» տերմինները, ինչպես նաև «տեղեկատու» և «թղթապանակ» տերմինները:

Ստանդարտ հոսքեր, որը մենք կօգտագործենք այստեղ ստանդարտ մուտքագրումն է (ստանդարտ մուտքագրում, 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 (Ժապավենի արխիվ): Այն փաստը, որ «tape» (ժապավեն) բառը թաքնված է հրամանի անվան մեջ և նրա ստեղծած ֆայլերի անունների ընդլայնման մեջ, ցույց է տալիս, թե որքան ժամանակ է գոյություն ունի այս հրամանը:

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): Ֆայլերի սեղմումը խնայում է սկավառակի տարածությունը նման ֆայլեր պահելիս: Եթե ​​ֆայլերը նախատեսվում է, օրինակ, փոխանցել այլ օգտվողներին, դա նպաստում է նման ֆայլերի ավելի արագ ներբեռնմանը:

Unzip ֆայլը .tar.gz կարող եք դրոշ ավելացնել -z էքստրակտի բովանդակության հրամանին .tar- ֆայլեր, որոնք մենք քննարկել ենք վերևում: Այն կարծես այսպիսին է.

tar -xfz my_file.tar.gz
Նշենք, որ թիմը tar Կան շատ ավելի օգտակար դրոշներ:

Բաշի փոխանունները

Bash կեղծանունները (նաև կոչվում են կեղծանուններ կամ հապավումներ) նախատեսված են հրամանների կամ դրանց հաջորդականությունների կրճատ անուններ ստեղծելու համար, որոնց օգտագործումը սովորական հրամանների փոխարեն արագացնում է աշխատանքը։ Եթե ​​դուք ունեք կեղծանուն bu, որը թաքցնում է հրամանը python setup.py sdist bdist_wheel, ապա այս հրամանը կանչելու համար բավական է օգտագործել այս կեղծանունը։

Նման կեղծանուն ստեղծելու համար պարզապես ֆայլում ավելացրեք հետևյալ հրամանը ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Եթե ​​ձեր համակարգը չունի ֆայլը ~/.bash_profile, ապա դուք կարող եք ստեղծել այն ինքներդ՝ օգտագործելով հրամանը touch. Փոխանունը ստեղծելուց հետո վերագործարկեք տերմինալը, որից հետո կարող եք օգտագործել այս կեղծանունը։ Այս դեպքում երկու նիշերի մուտքագրումը փոխարինում է հրամանի երեք տասնյակից ավելի նիշերի մուտքագրմանը, որը նախատեսված է. հավաքներ Python փաթեթներ.

В ~/.bash_profile Դուք կարող եք անուն-ազգանուններ ավելացնել հաճախ օգտագործվող ցանկացած հրամանի համար:

▍Արդյունքներ

Այս գրառման մեջ մենք անդրադարձել ենք Bash-ի 21 հայտնի հրամաններին և խոսել հրամանների այլանունների ստեղծման մասին: Եթե ​​ձեզ հետաքրքրում է այս թեման - այստեղ Բաշին նվիրված հրապարակումների շարք։ Այստեղ Դուք կարող եք գտնել այս հրապարակումների pdf տարբերակը: Բացի այդ, եթե ցանկանում եք սովորել Bash, հիշեք, որ ինչպես ցանկացած այլ ծրագրավորման համակարգում, պրակտիկան կարևոր է:

Հարգելի ընթերցողներ: Ի՞նչ հրամաններ, որոնք օգտակար են սկսնակների համար, կավելացնեիք այս հոդվածում քննարկվածներին:

Կարդացեք նաև մեր բլոգում մի շարք հրապարակումներ բաշ սցենարների մասին

[էջանշված] Bash սկսնակների համար. 21 օգտակար հրամաններ

Source: www.habr.com

Добавить комментарий