Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Документация openSUSE
  3. Start-Up
  4. Часть II. Основы
  5. Глава 8. Основы оболочки

8.6. Полезные особенности оболочки

8.6. Полезные особенности оболочки

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

История

По умолчанию, Bash «запоминает» команды, которые вы ввели. Это особенность называется история. Вы можете просматривать команды, которые вы ввели раньше, выбрать ту, которую вы хотите повторить и затем выполнить ее снова. Для этого повторно нажимайте ↑ до тех пор, пока нужная команда появится в строке. Для того, чтобы перейти вперед в вписке ранее выполненных команд, нажмите ↓.

Теперь вы можете редактировать выбранную команду (например, изменить имя файла или путь) перед тем, как выполнить ее нажатием Enter. Для редактирования командной строки просто перемещайте курсор к нужной позиции, используя клавиши со стрелками и начинайте печатать.

Вы также можете искать определенную команду в истории. Нажмите Ctrl+R для запуска функции инкрементного поиска, показывающей следующую строку:

 (reverse-i-search)`': 

Просто введите один или несколько символов из команды, которую вы ищете. С каждым символ, который вы ввели, сужается область поиска. Соответствующий результат поиска показан справа двоеточия, тогда как то, что вы вводите появляется слева него. Для принятия результата поиска нажмите Esc. Строка примет свой обычный вид и покажет команду, которую вы выбрали. Теперь вы можете редактировать команду или напрямую выполнить ее, нажав Enter.

Дополнение

Дополнение имени файла или каталога до его полной длины после ввода его первых символов является другой полезной особенностью Bash. Для этого введите первые символы, затем нажмите →| (Табулятор). Если имя файла или пути уникально он дополняется сразу и курсор перемещается в конец имени файла. Затем, при необходимости, вы можете ввести следующий параметр команды. Если имя файла или пути не уникально (потому что существует несколько имен файлов, начинающихся с тех же символов), имя файла или пути дополняется лишь до места, где оно снова неоднозначно. Затем вы можете получить список вариантов, нажав →| второй раз. После этого вы можете ввести следующие символы файла или пути, затем снова попробовать дополнение, нажав →|. При дополнении имен файлов или путей при помощи →| вы можете одновременно проверять, существует ли файл или путь, который вы хотите ввести (также вы можете удостовериться в правильном написании).

Безразличные символы

Вы можете заменить один или более символов в имени файла при помощи безразличного символа для расширения имени пути. Безразличные символы — это символы, которые могут означать другие символы. Существует три их типа в Bash:

Безразличные символ

Действие

?

Соответствует точно одному произвольному символу

*

Соответствует любому количеству символов

[set]

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

8.6.1. Примеры использования истории, дополнения и безразличных символов

Следующие примеры иллюстрируют, как воспользоваться этими удобными особенностями Bash.

Если вы уже выполнили примеры, которые содержит Раздел 8.3.1, «Примеры работы с файлами и каталогами», ваша оболочка должна быть наполнена командами, которые вы можете получить, используя функцию истории.

  1. Повторно нажимайте ↑ до тех пор, пока появится команда cd ~.

  2. Нажмите Enter для выполнения команды и перехода в ваш домашний каталог.

    По умолчанию, ваш домашний каталог содержит два подкаталога, начинающихся с одной буквы, Documents и Desktop.

  3. Введите cd D и нажмите →|.

    Ничего не произойдет, так как Bash не может определить, к какому из подкаталогов вы хотите перейти.

  4. Нажмите →| еще раз и вы увидите список возможных вариантов:

    tux@knox:~> cd D
         Desktop/   Documents/
         tux@knox:~> cd D
  5. Строка по-прежнему показывает ваш первоначальный ввод. Напечатайте следующий символ подкаталога, к которому вы хотите перейти и нажмите →| снова.

    Теперь Bash дополнит путь.

  6. Теперь вы можете выполнить команду нажатием Enter.

Теперь, предположим, ваш домашний каталог содержит некоторое число файлов с различными расширениями. В него также входят несколько вариантов одного файла, которые вы сохранили под различными именами myfile1.txt, myfile2.txt и т.д. Вы хотите найти определенные файлы по их свойствам.

  1. Сначала создайте некоторые тестовые файлы в вашем домашнем каталоге:

    1. Используйте команду touch, которые вы уже знаете, для создания нескольких (пустых) файлов с различными расширениями, например .pdf, .xml и .jpg.

      Вы можете сделать это последовательно (не забывайте использовать функцию истории Bash) или же используйте одну команду touch: просто добавьте несколько имен файлов, разделенных пробелом.

    2. Создайте по крайней мере два файла, которые имеют одно и то же расширение, например .html.

    3. Для создания нескольких «вариантов» одного файла введите

      touch myfile{1..5}.txt

      Эта команда создает последовательно пять пронумерованных файлов:

      myfile1.txt,…,myfile5.txt
    4. Проверьте содержимое вашего домашнего каталога. Он должен выглядеть примерно так:

      -rw-r--r-- 1 tux users   0 2006-07-14 13:34 foo.xml
      -rw-r--r-- 1 tux users   0 2006-07-14 13:47 home.html
      -rw-r--r-- 1 tux users   0 2006-07-14 13:47 index.html
      -rw-r--r-- 1 tux users   0 2006-07-14 13:47 toc.html
      -rw-r--r-- 1 tux users   0 2006-07-14 13:34 manual.pdf
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile1.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile2.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile3.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile4.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:49 myfile5.txt
      -rw-r--r-- 1 tux users   0 2006-07-14 13:32 tux.png
             
  2. При помощи безразличных символов выберите определенные подмножества файлов, в соответствии различным признакам:

    1. Для получения списка всех файлов с расширением .html введите

       ls -l *.html
    2. Для получения списка всех «вариантов» myfile.txt введите

      ls -l myfile?.txt

      Заметьте, здесь вы можете использовать только безразличный символ ?, потому что нумерация файлов одноразрядная. Как только у вас появится файл под именем myfile10.txt, вы будете должны использовать безразличный символ * для просмотра всех вариантов myfile.txt (или добавить другой вопросительный знак так, что ваша строка бы выглядела наподобие myfile??.txt).

    3. Для удаления, например, вариантов 1-3 и варианта 5 myfile.txt введите

      rm myfile[1-3,5].txt
    4. Проверьте результат при помощи

      ls -l

      Из всех вариантов myfile.txt должен остаться только myfile4.txt.

Конечно, вы также можете совмещать несколько безразличных символов в одной команде. В вышеприведенном примере rm myfile[1-3,5].* приведет к тому же результату, что и rm myfile[1-3,5].txt, потому что есть файлы только с одним расширением, .txt.

[Note]Использование безразличных символов с командой rm

Безразличные символы в команде rm могут быть очень полезны, но также и очень опасны: вы можете удалить больше файлов из вашего каталога, чем нужно. Для того, чтобы узнать, какие файлы будут подвержены rm, запустите сначала вашу строку с безразличным символом с ls вместо rm.

Перекрёстные ссылки книги для 8.6. Полезные особенности оболочки

  • 8.5. Изменение прав доступа к файлу
  • Вверх
  • 8.7. Редактирование текстов

Book navigation

  • Start-Up
    • Об этом руководстве
    • Часть I. Установка и настройка
    • Часть II. Основы
      • Глава 7. Основные концепции
      • Глава 8. Основы оболочки
        • 8.2. Ввод команд
        • 8.3. Работа с файлами и каталогами
        • 8.4. Становление root
        • 8.5. Изменение прав доступа к файлу
        • 8.6. Полезные особенности оболочки
        • 8.7. Редактирование текстов
        • 8.8. Поиск файлов или содержимого
        • 8.9. Просмотр текстовых файлов
        • 8.10. Перенаправление и каналы
        • 8.11. Управление процессами
    • Часть III. Мобильность
    • Часть IV. Помощь и разрешение проблем
    • Приложение A. Лицензии GNU
  • KDE Quick Start
  • GNOME Quick Start

Последние материалы

  • Приложение scanimage
    1 day ago
  • Утилита sensors
    5 days ago
  • Сканер Rkhunter
    1 week 6 days ago
  • Программа resize2fs
    2 weeks 4 days ago
  • Аудиопроигрыватель QMMP
    3 weeks 3 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru