[Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ] Bash для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: 21 полСзная ΠΊΠΎΠΌΠ°Π½Π΄Π°

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ сСгодня, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Linux. Π£ΠΌΠ΅Π½ΠΈΠ΅ эффСктивно ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этим инструмСнтом позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ частности, Ρ€Π΅Ρ‡ΡŒ здСсь ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Bash ΠΈ ΠΎ 21 ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„Π»Π°Π³Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ псСвдонимами Bash, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… инструкций.

[Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ] Bash для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: 21 полСзная ΠΊΠΎΠΌΠ°Π½Π΄Π°

β†’ Π’Π°ΠΊΠΆΠ΅ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² нашСм Π±Π»ΠΎΠ³Π΅ Ρ†ΠΈΠΊΠ» ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎ bash-скрипты

Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹

Π’ Ρ…ΠΎΠ΄Π΅ освоСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Linux Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒΡΡ мноТСство понятий, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. НСкоторыС ΠΈΠ· Π½ΠΈΡ…, Π²Ρ€ΠΎΠ΄Π΅ Β«LinuxΒ» ΠΈ Β«UnixΒ», ΠΈΠ»ΠΈ «командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Β» ΠΈ Β«Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Β», ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡƒΡ‚Π°ΡŽΡ‚. ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± этих ΠΈ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ….

Unix β€” это популярная опСрационная систСма, которая Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Bell Labs Π² 1970-Ρ…. Π•Ρ‘ ΠΊΠΎΠ΄ Π±Ρ‹Π» Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ.

Linux β€” это самая популярная Unix-подобная опСрационная систСма. Она Π² наши Π΄Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° мноТСствС устройств, Π² Ρ‚ΠΎΠΌ числС β€” ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ….

Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» (terminal), ΠΈΠ»ΠΈ эмулятор Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΄Π°ΡŽΡ‰Π°Ρ доступ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΎΠΊΠΎΠ½ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° (shell) β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, написанныС Π½Π° особом языкС.

Bash Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Bourne Again SHell. Π­Ρ‚ΠΎ β€” самый распространённый язык ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для взаимодСйствия с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Bash ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² macOS.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (Command Line Interface, CLI) β€” это способ взаимодСйствия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΠΏΡ€ΠΈ использовании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, выполняя эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚, Π² тСкстовом Π²ΠΈΠ΄Π΅, сообщСния для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ основном CLI ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния свСТСй ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π΅ΠΊΠΈΡ… сущностях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки слСдуСт ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (Graphical User Interface, GUI), ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ, Π² основном, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΡ‹ΡˆΡŒ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ просто ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ (script) β€” это нСбольшая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая содСрТит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π² Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. ΠŸΡ€ΠΈ написании скриптов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, условными конструкциями, Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ, функциями ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ возмоТностями.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ рассмотрСли Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹, Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ здСсь я Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ Β«BashΒ», Β«ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Β» ΠΈ «командная строка» ΠΊΠ°ΠΊ взаимозамСняСмыми, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ понятиями «дирСктория» (directory) ΠΈ Β«ΠΏΠ°ΠΏΠΊΠ°Β» (folder).

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ здСсь ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ β€” это стандартный Π²Π²ΠΎΠ΄ (standard input, stdin), стандартный Π²Ρ‹Π²ΠΎΠ΄ (standard output, stdout) ΠΈ стандартный Π²Ρ‹Π²ΠΎΠ΄ ошибок (standard error, 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 полСзная ΠΊΠΎΠΌΠ°Π½Π΄Π°
Head (Π³ΠΎΠ»ΠΎΠ²Π°) находится спСрСди, Π° tail (хвост) β€” сзади

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pandas, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ head ΠΈ tail Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ‹. Если это Π½Π΅ Ρ‚Π°ΠΊ β€” взглянитС Π½Π° Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ рисунок, ΠΈ Π²Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΠΈΡ… Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅.

Рассмотрим Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы чтСния Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ cat.

Команда cat Π»ΠΈΠ±ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° Π½Π° экран, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΡƒΠ΅Ρ‚ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΎ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅.

[Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ] Bash для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: 21 полСзная ΠΊΠΎΠΌΠ°Π½Π΄Π°
Команда 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. Π­Ρ‚ΠΎ β€” провСрСнная Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, надёТная ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая, ΠΏΡ€Π°Π²Π΄Π°, ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ, ΡƒΠ΄ΠΎΠ±Π½Π° Π² использовании.

[Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ] 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 ARchive). Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², создаваСмых Π΅ΠΉ, скрыто слово Β«tapeΒ» (Π»Π΅Π½Ρ‚Π°), Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π°Π²Π½ΠΎ сущСствуСт эта ΠΊΠΎΠΌΠ°Π½Π΄Π°.

tar -cf my_file.tar my_source_directory: создаёт tarball-Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ my_file.tar с содСрТимым ΠΏΠ°ΠΏΠΊΠΈ my_source_directory. Π€Π»Π°Π³ -c Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Β«createΒ» (созданиС), Π° Ρ„Π»Π°Π³ -f ΠΊΠ°ΠΊ Β«fileΒ» (Ρ„Π°ΠΉΠ»).

Для извлСчСния Ρ„Π°ΠΉΠ»ΠΎΠ², находящихся Π² .tar-Ρ„Π°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° tar c Ρ„Π»Π°Π³Π°ΠΌΠΈ -x (Β«extractΒ», ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅) ΠΈ -f (Β«fileΒ», Ρ„Π°ΠΉΠ»).

tar -xf my_file.tar: ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· my_file.tar Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΆΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ .tar-Ρ„Π°ΠΉΠ»Ρ‹.

tar -cfz my_file.tar.gz my_source_directory: здСсь, с использованиСм Ρ„Π»Π°Π³Π° -z (Β«zipΒ», Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сТатия) ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ для сТатия Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ gzip (GNU zip). Π‘ΠΆΠ°Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ дисковоС пространство ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². Если ΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ планируСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, это способствуСт Π±ΠΎΠ»Π΅Π΅ быстрой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .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 ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ создании псСвдонимов для ΠΊΠΎΠΌΠ°Π½Π΄. Если Π²Π°ΠΌ эта Ρ‚Π΅ΠΌΠ° интСрСсна β€” Π²ΠΎΡ‚ Ρ†ΠΈΠΊΠ» ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ, посвящённый Bash. Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ pdf-Π²Π΅Ρ€ΡΠΈΡŽ этих ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Bash, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы, Π²Π°ΠΆΠ½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! КакиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ, Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π±Ρ‹ ΠΊ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ рассмотрСны Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅?

β†’ Π’Π°ΠΊΠΆΠ΅ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² нашСм Π±Π»ΠΎΠ³Π΅ Ρ†ΠΈΠΊΠ» ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎ bash-скрипты

[Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ] Bash для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: 21 полСзная ΠΊΠΎΠΌΠ°Π½Π΄Π°

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ