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

Понимание команд оболочки: простое использование сценария «Explain Shell» в Linux


При работе на платформе Linux всем нам в какой-то момент нужна помощь по командам оболочки. Хотя встроенная справка, такая как manpages, команда whatis, полезна, но вывод справочных страниц слишком длинный, и до тех пор, пока у вас не появится некоторый опыт работы с Linux, получить ее очень сложно. любая помощь с огромных страниц руководства. Вывод команды whatis редко превышает одну строку, чего недостаточно для новичков.

Существуют сторонние приложения, такие как «cheat», которые мы рассмотрели здесь «Шпаргалка по командной строке для пользователей Linux». Хотя Cheat — исключительно хорошее приложение, которое показывает справку по командам оболочки, даже если компьютер не подключен к Интернету, оно показывает справку только по предопределенным командам.

Существует небольшой фрагмент кода, написанный Джексоном, который может очень эффективно объяснить команды оболочки в оболочке bash и догадаться, что самое приятное в том, что вам не нужно устанавливать какой-либо сторонний пакет. Он назвал файл, содержащий этот фрагмент кода, 'explain.sh'.

Возможности утилиты объяснения

  1. Простое встраивание кода.
  2. Никаких сторонних утилит устанавливать не нужно.
  3. Выведите ровно столько информации в ходе объяснения.
  4. Для работы требуется подключение к Интернету.
  5. Чистая утилита командной строки.
  6. Способен объяснить большинство команд оболочки в оболочке bash.
  7. Никакого участия root-аккаунта не требуется.
Предварительное условие

Единственное требование — это пакет 'curl'. В большинстве последних дистрибутивов Linux пакет Curl поставляется предустановленным, если его нет, вы можете установить его с помощью менеджера пакетов, как показано ниже.

apt-get install curl 	[On Debian systems]
yum install curl 		[On CentOS systems]

Установка утилиты объяснения.sh в Linux

Нам нужно вставить приведенный ниже фрагмент кода, как он есть в файле ~/.bashrc. Код должен быть вставлен для каждого пользователя и каждого файла .bashrc. Рекомендуется вставлять код только в файл .bashrc пользователя, а не в файл .bashrc пользователя root.

Обратите внимание, что первая строка кода, начинающаяся с хеша (#), является необязательной и добавляется только для того, чтобы отличать остальные коды .bashrc.

# объяснения.sh отмечает начало кодов, которые мы вставляем в файл .bashrc внизу этого файла.


explain.sh begins
explain () {
  if [ "$#" -eq 0 ]; then
    while read  -p "Command: " cmd; do
      curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$cmd"
    done
    echo "Bye!"
  elif [ "$#" -eq 1 ]; then
    curl -Gs "https://www.mankier.com/api/explain/?cols="$(tput cols) --data-urlencode "q=$1"
  else
    echo "Usage"
    echo "explain                  interactive mode."
    echo "explain 'cmd -o | ...'   one quoted command to explain it."
  fi
}

Работа утилиты объяснения.sh

После вставки кода и его сохранения вам необходимо выйти из текущего сеанса и снова войти в систему, чтобы изменения вступили в силу. Обо всем заботится команда 'curl', которая передает входную команду и флаг, требующий объяснения, на сервер mankier, а затем выводит только необходимую информацию команде Linux. -линия. Не говоря уже о том, что для использования этой утилиты вы должны всегда быть подключены к Интернету.

Давайте протестируем несколько примеров команд, значение которых мне неизвестно, с помощью скрипта explain.sh.

1. Я забыл, что делает «du -h». Все, что мне нужно сделать, это:

explain 'du -h'

2. Если вы забыли, что делает «tar -zxvf», вы можете просто сделать:

explain 'tar -zxvf'

3. Один из моих друзей часто путает использование команд «whatis» и «whereis», поэтому я посоветовал ему.

Перейдите в интерактивный режим, просто набрав команду explain на терминале.

explain

а затем введите команды одну за другой, чтобы увидеть, что они делают в одном окне, например:

Command: whatis
Command: whereis

Для выхода из интерактивного режима ему просто нужно нажать Ctrl + c.

4. Вы можете попросить объяснить несколько команд, связанных конвейером.

explain 'ls -l | grep -i Desktop'

Аналогичным образом вы можете попросить свою оболочку объяснить любую команду оболочки. Все, что вам нужно, это работающее подключение к Интернету. Вывод генерируется на основе объяснения, необходимого от сервера, и, следовательно, результат вывода не подлежит настройке.

Для меня эта утилита очень полезна, и я удостоился чести быть добавленным в мой .bashrc. Дайте мне знать, что вы думаете об этом проекте? Чем это может быть полезно для вас? Удовлетворительно ли объяснение?

Оставьте нам свой ценный отзыв в комментариях ниже. Ставьте лайк и делитесь нами, помогите нам распространиться.