Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux Mint ΠΈ Π΅Π³ΠΎ Cinnamon. ΠžΡ‡Π΅Ρ€ΠΊΠΈ примСнитСля». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 24

Автор АлСксСй Π€Π΅Π΄ΠΎΡ€Ρ‡ΡƒΠΊ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π½Π΅ ограничиваСтся ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой β€” Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ популярных Π² POSIX-ΠΌΠΈΡ€Π΅ тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΎΡ‚ простых Nano ΠΈΠ»ΠΈ joe Π΄ΠΎ Π³Ρ€Π°Π½Π΄ΠΈΠΎΠ·Π½ΠΎΠ³ΠΎ vim ΠΈ монструозного emacs. построСны ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с keybindings, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Bash, вСсьма ΠΏΠΎΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ Π²ΠΈΡ€Ρ‚ΡƒΠΎΠ·Π½ΠΎΠΌΡƒ освоСнию любого ΠΈΠ· этих инструмСнтов.

И Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” дСйствиС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ. Π½Π΅ зависит Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ физичСского устройства ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π½ΠΎ ΠΈ ΠΎΡ‚ Π΅Π΅ раскладки β€” ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π½Π° ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ справно, ΠΊΠ°ΠΊ ΠΈ Π² Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π΅.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄

ВозмоТности Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ рСдактирования строки особСнно ярко ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² сочСтании с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ, прСдоставляСмой ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°ΠΌΠΈ β€” доступом ΠΊ истории ΠΊΠΎΠΌΠ°Π½Π΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ: Ρ€Π°Π· ввСдСнная Π² строкС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π½Π΅Π±Ρ‹Ρ‚ΠΈΠ΅ послС исполнСния, Π° помСщаСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ памяти. ΠšΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΠΈ всС Π² Unix'Π°Ρ…, имСнуСтся вСсьма Π½Π΅Π·Π°Ρ‚Π΅ΠΉΠ»ΠΈΠ²ΠΎ β€” Π±ΡƒΡ„Π΅Ρ€ истории ΠΊΠΎΠΌΠ°Π½Π΄. ΠžΡ‚ΠΊΡƒΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° (со всСми Π΅Ρ‘ опциями ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π° для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. Или β€” для рСдактирования ΠΈ исполнСния Π² Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅ΠΈΠ½ΠΊΠ°Ρ€Π½Π°Ρ†ΠΈΠΈ.

Π‘ΡƒΡ„Π΅Ρ€ истории ΠΊΠΎΠΌΠ°Π½Π΄ сохраняСтся Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ всСго сСанса Ρ€Π°Π±ΠΎΡ‚Ρ‹. Однако Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· сСанса Π±ΡƒΡ„Π΅Ρ€ истории сохраняСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΅Π³ΠΎ содСрТимоС оказываСтся доступным ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ запускС шСлла. Имя этого Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ…, Π½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ history (Π² Bash β€” ~/.bash_history).Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ суТдСна вСчная Тизнь.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ совсСм вСчная. И Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° истории ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈ количСство строк Π² Ρ„Π°ΠΉΠ»Π΅ истории β€” Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли установлСнный ΠΏΡ€Π΅Π΄Π΅Π» ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½, Ρ‚ΠΎ старыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ. Однако ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ Π±ΡƒΡ„Π΅Ρ€Π°, ΠΈ количСство строк Π² Ρ„Π°ΠΉΠ»Π΅ истории ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ. РазумССтся, Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… β€” Π½Π΅ знаю, сущСствуСт Π»ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ° памяти ΠΈ дискового пространства. А Ссли ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π°, ΠΈ ΠΈΠ· памяти с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… настроСк (со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ я расскаТу, ΠΊΠ°ΠΊΠΈΡ…) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΈ Π΅Ρ‰Ρ‘ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΎΠΉ мусор β€” Ρ‚ΠΎ ΠΌΠΎΠ΅ заявлСниС ΠΎ Π²Π΅Ρ‡Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ выглядит ΡΡ‚ΠΎΠ»ΡŒ ΡƒΠΆ ΠΏΡ€Π΅ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ.

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ срСдство доступа ΠΊ Π±ΡƒΡ„Π΅Ρ€Ρƒ истории ΠΊΠΎΠΌΠ°Π½Π΄ β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, встроСнная Π²ΠΎ всС ΡˆΠ΅Π»Π»Ρ‹, Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ β€” history (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дистрибутивов Linux ΠΎΠ½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ псСвдоним β€” h). Данная Π±Π΅Π· ΠΎΠΏΡ†ΠΈΠΉ, эта ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΈΡ… историчСской (ΠΈΠ·Π΄Ρ€Π΅Π²Π»Π΅ ΠΊ соврСмСнности) ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ настройками (ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ·Π΄Π½Π΅Π΅).

Π’ качСствС ΠΎΠΏΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. НапримСр, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°

$ history -2

Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π΄Π²Π΅ послСдниС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° истории вмСстС с ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ:

1023  joe shell.html

1024  less ~/.zshrc

Π›ΡŽΠ±Π°Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ истории ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π½Π° исполнСниС. Для этого достаточно Π½Π°Π±Ρ€Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС символ ! (Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ) ΠΈ Π·Π°Ρ‚Π΅ΠΌ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»Π° β€” Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² спискС Π±ΡƒΡ„Π΅Ρ€Π°. НапримСр,

$ !1023

для ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ„Π°ΠΉΠ» shell.html Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ joe.

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ доступа ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° истории β€” ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ клавиш Control+P ΠΈ Control+N, слуТащиС для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΅Π³ΠΎ просмотра (ΠΊΠ°ΠΊ Π±Ρ‹ «пролистывания») Π½Π°Π·Π°Π΄ ΠΈ, соотвСтствСнно, Π²ΠΏΠ΅Ρ€Π΅Π΄ (разумССтся, Ссли Π΅ΡΡ‚ΡŒ ΠΊΡƒΠ΄Π°). Они Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ клавишами управлСния курсором Up ΠΈ Down (Π½Π°Π·Π°Π΄ ΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄, соотвСтствСнно). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Meta+< ΠΈ Meta+&rt; ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ истории.

Π›ΡŽΠ±Π°Ρ извлСчСнная (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стрСлок ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ) ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° истории Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π½Π° исполнСниС β€” Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиши Enter ΠΈΠ»ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π΅Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ Control+M. ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ β€” ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ, ΠΈΠ»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, β€” Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ.

Поиск Π² истории

Π’ΠΎ всСх соврСмСнных Β«Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Ρ…Β» ΡˆΠ΅Π»Π»Π°Ρ… прСдусмотрСны срСдства поиска ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ истории β€” простым ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Meta+P β€” Π½Π°Π·Π°Π΄ ΠΈ Meta+N β€” Π²ΠΏΠ΅Ρ€Π΅Π΄).

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π½Π΅ смотря Π½Π° Π³Ρ€ΠΎΠΌΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ поиск Π½ΠΈΡ‡Π΅ΠΌ практичСски Π½Π΅ отличаСтся ΠΎΡ‚ пролистывания историчСского списка курсорными стрСлками. Π§Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ истории ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вСсьма ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. И ΠΏΠΎΡ‚ΠΎΠΌΡƒ для Π΅Π΅ облСгчСния прСдусмотрСна такая интСрСсная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°Ρ€Π°Ρ‰ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ поиск (incremental search) Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ истории ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ (ΠΈΠ»ΠΈ нСскольким) ΠΈΠ· ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π΅Π΅ символов.

ВыполняСтся ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΉ поиск Ρ‚Π°ΠΊ: послС наТатия (ΠΏΡ€ΠΈ пустой ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС) клавишной ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Control+R появляСтся ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ввСсти Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ символ (ΠΈΠ»ΠΈ β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹), Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ входящий Π² состав Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ bck-i-search: _

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

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ поиска ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ достиТСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ нахоТдСния Ρ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, которая Π½ΡƒΠΆΠ½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ сСйчас. НаТатиС клавиши Enter Π² любой ΠΈΠ· этих ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² запускаСт Π½Π°ΠΉΠ΄Π΅Π½Π½ΡƒΡŽ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½Π½ΡƒΡŽ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку) ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° исполнСниС, с Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ поиска. Поиск обрываСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Control+C. ΠŸΠ΅Ρ€Π΅Π΄ запуском найдСнная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° стандартными срСдствами β€” с использованиСм ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ.

РСгулярныС выраТСния

Как извСстно, всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ-POSIX'ивисты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· сСми смСртных Π³Ρ€Π΅Ρ…ΠΎΠ². И Π³Ρ€Π΅Ρ… этот β€” Π»Π΅Π½ΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ пригодности линуксоида. Π’ соотвСтствиС со своСй Π»Π΅Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ POSIX-систСм ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°ΡŽΡ‚ способы, ΠΊΠ°ΠΊ Π±Ρ‹ ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои усилия. А ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΠΈ ΠΈΠ· Π»Π΅Π½ΠΈ ΠΈΠ·ΠΎΡ‰Ρ€ΡΡŽΡ‚ΡΡ Π² использовании этих ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π’ частности β€” Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ Π½Π°Π±ΠΎΡ€ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

БобствСнно говоря, этой Ρ†Π΅Π»ΠΈ слуТили ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, описанныС Π²Ρ‹ΡˆΠ΅. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΠ΅. А ΠΈΠΌΠ΅Π½Π½ΠΎ β€” рСгулярныС выраТСния, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚.Π½. ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов (ΠΈΠ»ΠΈ мСтасимволов).

ЭлСмСнтарная, ΠΈ вСсьма частая, Π² Π΄ΡƒΡ…Π΅ ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹Ρ…, Π·Π°Π΄Π°Ρ‡Π°: ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° dir1 трСбуСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dir2. Π’Π°ΠΊ Π½Π΅ΡƒΠΆΠ΅Π»ΠΈ всС ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ пСрСчислСны Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cp? НСт, Π½Π΅Ρ‚, ΠΈ Π΅Ρ‰Ρ‘ Ρ€Π°Π· Π½Π΅Ρ‚. Ибо для этой Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Π°ΠΌΡ‹ΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ * (Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ я ΠΎ Π½Π΅ΠΌ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»?). Он подмСняСт собой любоС количСство Π»ΡŽΠ±Ρ‹Ρ… символов (Π² Ρ‚ΠΎΠΌ числС β€” ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ отсутствиС символов Π²ΠΎΠΎΠ±Ρ‰Π΅). Π’ΠΎ Π΅ΡΡ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π°ΠΌ достаточно Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ cp dir1/* dir2

Π§ΡƒΡ‚ΡŒ услоТним условия: ΠΊ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ· dir1 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ Π½Π΅ всС Ρ„Π°ΠΉΠ»Ρ‹, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ html-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ суффикс html. РСшСниС ΠΎΡ‚ этого Π½Π΅ становится слоТнСС:

$ cp dir1/*html dir2

Однако Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ html-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ htm. НС пропустим Π»ΠΈ ΠΌΡ‹ ΠΈΡ… Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ? Π’Π°ΠΊΠΈΠΌ β€” бСзусловно, пропустим. Однако Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ шаблон β€” символ ?. А соотвСтствуСт ΠΎΠ½ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΌΡƒ символу (ΠΈΠ»ΠΈ β€” Π΅Π³ΠΎ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ, Ρ‚.Π΅. символу null). И Π·Π½Π°Ρ‡ΠΈΡ‚, Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ cp dir1/*htm? dir2

Ρ‚ΠΎ ΠΎΠ½Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ маски html-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π’Ρ€ΠΎΠ΄Π΅ всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Однако Π½Π΅Ρ‚: ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° dir1 Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π° β€” file1, file2, file3. НС придСтся Π»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС с ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ (Π° вСдь ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π² Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ‚ΠΈΠΏΠ° dir1/dir11/dir111)? ВсС Ρ€Π°Π²Π½ΠΎ Π½Π΅ придСтся, Π½Π° ΡΡ‚ΠΎΠ»ΡŒ Ρ…ΠΈΡ‚Ρ€ΡƒΡŽ... постановку Π·Π°Π΄Π°Ρ‡ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌ с Π»Π΅Π²ΠΎΠΉ Ρ€Π΅Π·ΡŒΠ±ΠΎΠΉ β€” символы Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками. Π§Ρ‚ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ выглядит Ρ‚Π°ΠΊ:

$ cp path/{file1,file2,file3} dir2

И ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΡ€Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ всСх Ρ‚Ρ€Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dir2. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ сгруппированныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятыми Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². И Π΅Ρ‰Ρ‘: Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Bash Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ придСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ. Но Π²ΠΎΡ‚ Π² Zsh Π½Π° Π½ΠΈΡ… распространяСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автодополнСния, Π΄Π° ΠΈ запятая послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ появляСтся автоматичСски (ΠΈ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ автоматичСски исчСзаСт ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки).