<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Cli on Заметки инженера</title>
    <link>https://notes.alchi.ru/tags/cli/</link>
    <description>Recent content in Cli on Заметки инженера</description>
    <generator>Hugo</generator>
    <language>ru-ru</language>
    <lastBuildDate>Tue, 01 Sep 2026 09:09:20 +0000</lastBuildDate>
    <atom:link href="https://notes.alchi.ru/tags/cli/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Хоткеи командной строки (bash/readline)</title>
      <link>https://notes.alchi.ru/posts/bash-hotkeys/</link>
      <pubDate>Tue, 01 Sep 2026 09:09:20 +0000</pubDate>
      <guid>https://notes.alchi.ru/posts/bash-hotkeys/</guid>
      <description>&lt;p&gt;Шпаргалка по хоткеям bash. Два режима: обычный readline (emacs-биндинги, дефолт) и &lt;code&gt;set -o vi&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;emacs-режим-по-умолчанию&#34;&gt;Emacs-режим (по умолчанию)&lt;/h2&gt;
&lt;h3 id=&#34;навигация-по-строке&#34;&gt;Навигация по строке&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Хоткей&lt;/th&gt;
          &lt;th&gt;Действие&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl A&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;в начало строки&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl E&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;в конец строки&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl XX&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;прыжок курсор ↔ начало строки&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;слова&#34;&gt;Слова&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Хоткей&lt;/th&gt;
          &lt;th&gt;Действие&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Alt B&lt;/code&gt; / &lt;code&gt;Alt F&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;слово назад / вперёд&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl W&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;удалить слово перед курсором&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Alt D&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;удалить слово после курсора&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Alt T&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;поменять местами два слова&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Alt U&lt;/code&gt; / &lt;code&gt;Alt L&lt;/code&gt; / &lt;code&gt;Alt C&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;UPPER / lower / Capitalize слова&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;редактирование-строки&#34;&gt;Редактирование строки&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Хоткей&lt;/th&gt;
          &lt;th&gt;Действие&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl U&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;стереть от курсора до начала&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl K&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;стереть от курсора до конца&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl Y&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;вставить последнее стёртое&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl T&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;поменять местами два символа&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;история&#34;&gt;История&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Хоткей&lt;/th&gt;
          &lt;th&gt;Действие&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl R&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;поиск по истории (повтор — искать дальше)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl G&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;выйти из поиска&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl P&lt;/code&gt; / &lt;code&gt;Ctrl N&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;предыдущая / следующая команда&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Alt .&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;вставить последний аргумент предыдущей команды (можно жать повторно)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;!!&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;предыдущая команда целиком&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;!$&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;последний аргумент предыдущей команды&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;!*&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;все аргументы предыдущей команды&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;управление-процессом&#34;&gt;Управление процессом&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Хоткей&lt;/th&gt;
          &lt;th&gt;Действие&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl C&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;прервать команду&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl Z&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;приостановить (вернуть — &lt;code&gt;fg&lt;/code&gt;)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl L&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;очистить экран&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Ctrl D&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;EOF / выйти из шелла&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;автодополнение&#34;&gt;Автодополнение&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Хоткей&lt;/th&gt;
          &lt;th&gt;Действие&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Tab Tab&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;показать все варианты&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Alt *&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;вставить все варианты дополнения в строку&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;vi-режим-set--o-vi&#34;&gt;Vi-режим (&lt;code&gt;set -o vi&lt;/code&gt;)&lt;/h2&gt;
&lt;p&gt;Старт в insert-режиме, &lt;code&gt;Esc&lt;/code&gt; переключает в normal, где работают vi-движения. Команды можно комбинировать со счётчиком, например &lt;code&gt;3dw&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
