Поиск по сайту:

Исправление ошибок в предыдущих консольных командах в Linux

Исправьте ошибки и опечатки в консольных командах Linux

Вы когда-нибудь неосознанно выполняли команду с опечаткой? Что ж, вы можете просто нажать стрелку ВВЕРХ/ВНИЗ, чтобы открыть историю команд, найти команду с ошибкой, отредактировать опечатку и, наконец, повторно запустить ее. Это то, что обычно делает большинство из нас! Однако есть и другие способы исправить опечатки в ранее введенных командах. В этом уроке мы увидим все возможные способы исправления ошибок в предыдущих консольных командах в Linux и Unix.

Отказ от ответственности:

Эта статья содержит слово NSFW (небезопасно для работы) и в некоторых местах необычное слово. Хоть я и слегка замаскировал это слово, полностью избежать его мне не удалось. Поскольку исключить это слово невозможно, заранее примите мои извинения, если этот пост причинил вам дискомфорт и если я вас чем-то обидел.

1. Исправьте ошибки в предыдущих консольных командах с помощью приложения thef*ck.

Утилита Thef*ck используется для исправления ошибок и опечаток в ранее выполненных командах в Linux.

Вы в спешке выполнили команду с опечаткой? Вы забыли добавить sudo в команду? Без проблем! Это приложение автоматически покажет исправленную команду(и) для ранее выполненной команды!!

Вы можете выбрать правильную команду и нажать ENTER, чтобы запустить ее. Не нужно перемещаться по истории команд, чтобы вручную исправить опечатку в команде!

Разработчик этого приложения вдохновился твитом и создал это классное приложение. Он написан на языке Python. Это приложение с открытым исходным кодом, и его код общедоступен на GitHub.

1.1. Монтаж

Мы можем установить его с помощью менеджера пакетов PiP или менеджера пакетов по умолчанию в дистрибутиве.

Убедитесь, что у вас установлен PiP.

После установки PiP выполните следующую команду, чтобы установить его, как показано ниже:

pip3 install --user thefuck

Будет установлена последняя доступная версия.

Он также упакован для многих дистрибутивов Linux и Unix, поэтому вы можете установить его с помощью менеджера пакетов вашего дистрибутива по умолчанию. Обратитесь к странице проекта на GitHub (приведенной в конце), чтобы узнать, как установить его с помощью диспетчера пакетов ОС.

1.2. Конфигурация

Рекомендуется добавить следующую строку в ваш .bash_profile, .bashrc, .zshrc или другой сценарий запуска.

nano ~/.bashrc

Добавьте следующую строку:

eval $(thefuck --alias fixthis)

Здесь я использовал «fixthis» в качестве псевдонима. В качестве псевдонима вы можете использовать все, что захотите.

Нажмите Ctrl+o и ENTER, чтобы сохранить файл, и Ctrl+x, чтобы закрыть его.

Выполните следующую команду, чтобы обновить изменения:

source ~/.bashrc

1.3. Применение

«Fixthis» работает на основе набора встроенных правил. Полный список активированных правил можно найти здесь. Вы также можете создавать свои собственные правила.

При запуске команды с ошибкой будет предпринята попытка сопоставить предыдущую команду с правилом. Если совпадение найдено, новая команда создается с использованием совпавшего правила и выполняется.

Давайте посмотрим несколько примеров.

Я собираюсь обновить свою систему Manjaro, используя следующую команду от имени обычного пользователя:

pacman -Syu

Пример вывода:

error: you cannot perform this operation unless you are root.

Как видите, приведенная выше команда отображает ошибку разрешения. Потому что я не добавил sudo перед командой.

Нет необходимости добавлять sudo и повторно запускать команду. Все, что вам нужно сделать, это просто запустить команду «fixthis», как показано ниже:

fixthis

Теперь он будет отображать допустимые предложения команд для ранее выполненной команды.

Если это тот, который вы хотите запустить, просто нажмите ENTER, чтобы выполнить его. Если это не так, нажмите стрелки ВВЕРХ/ВНИЗ, чтобы отобразить другие предлагаемые команды.

В моем случае я использую первую команду, которая является правильной, как показано в выводе ниже.

sudo pacman -Syu [enter/↑/↓/ctrl+c]

Исправьте ошибки в предыдущих консольных командах с помощью fixthis приложения.

Видеть? Если предыдущая команда не выполнена из-за ошибки разрешения, приложение fixthis добавит к команде sudo и запустит ее снова. Круто, правда? Чтобы прервать выполнение команды, нажмите ctrl+c.

Аналогично, если вы выполнили команду с ошибкой, она исправит орфографическую ошибку и запустит команду еще раз.

pithon

Пример вывода:

bash: pithon: command not found
fixthis
python3 [enter/↑/↓/ctrl+c]

Если вы хотите рекурсивно исправлять команды до достижения успеха, вы можете использовать опцию -r:

fixthis -r

Дополнительные примеры смотрите в официальном скриншоте ниже, сделанном разработчиком.

Исправьте ошибки и опечатки в предыдущих консольных командах с помощью приложения fixthis.

Несмотря на то, что это приложение очень полезно для быстрого исправления опечаток и ошибок в командах Linux, оно имеет деликатное и неподходящее имя, поэтому в некоторых ситуациях вы можете не захотеть использовать его.

Если вам неудобно выполнять эту команду в таких ситуациях, вы можете просто создать псевдоним (например, «пожалуйста, исправьте это»), как показано в разделе «Конфигурация» выше.

2. Исправьте ошибки в командах с помощью Fix

Fix – еще одна интересная утилита, которая помогает быстро исправлять ошибки и опечатки в команде. Несмотря на то, что Fix делает то же самое, что и thef*ck, он немного отличается.

Thef*ck силен в синтаксисе, тогда как Fix лучше, когда важен семантический аспект. Черт возьми, он не может сказать вам, какой пакет установить, если скрипт не работает.

Утилита Fix предназначена для использования в тех случаях, когда вы не знаете, как исправить проблему самостоятельно. Он предлагает несколько решений для неправильно набранных или написанных команд.

Он использует ИИ Кодекса OpenAI, чтобы предлагать все возможные решения для исправления ошибок в командах. Все, что вам нужно сделать, это просто добавить к команде слово «исправить», и ИИ предложит оптимальные решения.

2.1. Установить исправление в Linux

Установить Fix очень просто!

1. Во-первых, вам необходимо получить доступ к API Кодекса OpenAI.

2. И git клонируем репозиторий:

git clone https://github.com/tom-doerr/fix.git

Он клонирует содержимое репозитория проекта на GitHub в локальную папку с именем «fix».

3. перейдите в каталог «fix»:

cd fix

4. Добавьте main.py в свой путь `:

cp $PWD/main.py ~/.local/bin/fix

2.2. Применение

Чтобы исправить опечатку в команде, просто добавьте «исправить» перед командой, как показано ниже:

fix mkdir abc/def

Чтобы исправить последнюю команду, просто выполните:

fix !!

ИИ генерирует в основном неправильные решения, но достаточное количество сгенерированных решений на самом деле работает, чтобы быть полезным.

Вот визуальная демонстрация приложения Fix.

Исправьте ошибки в командах с помощью Fix в Linux.

Рекомендуем прочитать:

  • Различные способы повторить последнюю команду в Linux

3. Исправьте неправильно написанные команды Bash с помощью символа каретки.

Этот трюк сработает только на BASH.

Этот трюк очень прост. Мы просто заменяем слово с ошибкой на правильное слово, используя символ Варок (^).

Допустим, вы хотите создать каталог с помощью команды «mkdir». Но вы пропустили «i» в команде и вместо этого ввели «mkdr», как показано ниже.

$ mkdr ostechnix
bash: mkdr: command not found

Чтобы исправить опечатку в приведенной выше команде, мы можем просто заменить «dr» на «dir» с символом каретки, как показано ниже:

^dr^dir^

Теперь Bash интерпретирует это как «mkdir», запустит его и отобразит выходные данные, как показано ниже.

mkdir ostechnix

Исправьте неправильно написанные команды Bash с помощью символа каретки.

4. Исправьте опечатки при использовании команды cd.

Я часто пытался быстро печатать в консоли и получал опечатки при переходе cd в каталог.

$ cd Pctures
bash: cd: Pctures: No such file or directory

Я пропущу пару слов при вводе имени каталога. Если вы чем-то похожи на меня, вот как автоматически исправлять опечатки при использовании команды cd.

Чтобы исправить эту неприятность, отредактируйте файл ~/.bashrc:

nano ~/.bashrc

Добавьте в конце следующую строку:

shopt -s cdspell

Нажмите Ctrl+o и ENTER, чтобы сохранить файл, и Ctrl+x, чтобы закрыть его.

Выполните следующую команду, чтобы обновить изменения:

source ~/.bashrc

С этого момента ваша оболочка автоматически распознает правильный путь к каталогу, даже если в нем допущена опечатка.

Исправьте опечатки при использовании команды cd.

У этого трюка есть некоторые недостатки. Важен случай и порядок.

Например, если вы используете 'pctures' вместо 'Pictures', путь не распознается. Здесь я использовал строчные буквы 'p' для каталога 'Pictures'.

$ cd pctures
bash: cd: pctures: No such file or directory

Кроме того, если вы используете 'Pctrues' вместо 'Pctures', он все равно не распознает путь к каталогу, даже если вы используете правильный регистр, и будет жаловаться, что такого пути нет. файл или каталог.

$ cd Pctrues
bash: cd: Pctrues: No such file or directory

Здесь я изменил порядок букв в каталоге «Изображения».

Кроме того, если в пути к каталогу отсутствовало более одной буквы, это также не будет работать.

Обратите внимание, что этот совет предназначен только для команды «cd». Кроме того, этот совет предназначен только для Bash. В Fish и Zsh эта функция встроена.

Бонус: предложите установку пакета при запуске отсутствующей команды.

Вы должны были заметить, что при запуске недоступной команды вы получите сообщение об ошибке, как показано ниже:

bash: ....: command not found

Если вы знаете, какой пакет предоставляет отсутствующую команду, вы можете просто установить этот пакет и повторно запустить команду. Однако, если вы этого не знаете, вам может понадобиться небольшая помощь.

Чтобы решить эту проблему, существует пакет под названием «command-not-found». Будет предложен список пакетов для установки, чтобы использовать команду unavailable.

Он будет автоматически искать официальные репозитории при вводе нераспознанной или недоступной команды. Подробную информацию можно найти по следующей ссылке.

  • Предлагать установку пакетов при запуске недоступной команды

Заключение

Вот и все! Это несколько способов борьбы с опечатками и ошибками командной строки в системах Linux и Unix. Вы можете выбрать тот, который вам подходит, или использовать комбинацию из двух или более. Например, я время от времени использую «Fix» и «thef*ck», чтобы исправить ошибки и опечатки в консольных командах.

Ресурсы:

  • Этот чертов репозиторий GitHub
  • Исправить репозиторий GitHub

Рекомендуется к прочтению:

  • Как использовать функцию проверки орфографии в текстовом редакторе Vim
  • GNU Aspell — бесплатная независимая программа проверки орфографии с открытым исходным кодом

Статьи по данной тематике