Как сделать

Что такое метасимволы Linux и как вы их используете?

Linux точка

Метасимвол — это любой символ, имеющий особое значение, например, карат (^), знак доллара ($) или звездочка (*). В Linux имеется достаточное количество этих метасимволов, и их значения различаются в зависимости от того, какую команду Linux вы используете.

Полная Остановка как Метасимвол (.)

Полный Стоп ( . ) Указывает текущую позицию при запуске таких команд, как cd , find или sh. В таких приложениях, как awk , grep и sed , это подстановочный знак, который обозначает конкретное число любого символа.

Например, следующая команда находит все файлы MP3 в текущей папке и ее подпапках.

находить . -тип f -name '* .mp3'

Если вы выполните эту команду в текущем рабочем каталоге (pwd), вы увидите возвращенные результаты, при условии, что вы храните файлы MP3 в музыкальной папке в вашей домашней папке.

Теперь посмотрите на эту команду:

ps -ef | grep f..efox

Команда ps выводит список всех запущенных процессов на вашем компьютере. Команда grep принимает строки ввода и ищет шаблон.

Linux точка

Команда ps -ef возвращает список запущенных процессов. Метасимвол pipe ( | ) отправляет этот список в команду grep, которая ищет любую строку в списке, содержащую f..efox , где точки относятся к двум любым символам.

Если Firefox запущен, вы получите совпадение. Аналогично, если запущена программа с именем fonefox или freefox, они также возвращаются.

Если вам нужно искать только один символ, вместо метасимвола с точкой (.), Используйте? метасимволом. Используя ? Метасимвол относится к любому отдельному символу либо в начале, либо в конце шаблона.

Звездочка как метасимвол (*)

Звездочка ( * ) является общеизвестным метасимволом. Это означает ноль или более любого символа при поиске шаблона. Например:

ls * .flac
Список звездочек в Linux

Часть * .flac команды возвращает совпадение для любого имени файла, заканчивающегося на .flac. Аналогично, вы можете использовать звездочку с командой grep в последнем разделе следующим образом:

ps -ef | grep f * efox

Это немного отличается, потому что звездочка означает ноль или более, поэтому, помимо поиска Firefox, Facefox и Fonefox, она также находит Flutefox, Ferretfox и Fefox.

Символ звездочки в Linux

Карат как метасимвол (^)

Карат ( ^ ) используется для обозначения начала строки или строки. Так как это используется?

Команда ls выводит список файлов в папке следующим образом:

ls -a

Если вы хотите перечислить файлы в папке, которая начинается с определенной строки, например, gnome, карат можно использовать для указания этой строки. Например:

ls -a | grep ^ gnome

Здесь перечислены файлы, которые начинаются с gnome. Если вы хотите, чтобы файлы с gnome были где-то в имени файла, используйте звездочку.

Персонаж в каратах

В приведенном выше примере команда ls возвращает список имен файлов и передает этот список команде grep, которая используется для сопоставления с образцом. Grep знает, что символ карат означает найти все, что начинается с символов, следующих за ним, и в данном случае это гном.

Символ доллара как метасимвол ($)

Символ доллара ( $ ) имеет несколько значений в качестве метасимвола в Linux. Когда используется для сопоставления с образцами, это означает противоположность карат и обозначает любой образец, который заканчивается определенной строкой. Например:

ls | grep png $

В этом списке перечислены все файлы, заканчивающиеся на png.

Символ доллара также используется для доступа к переменным среды в оболочке bash. Например:

#! / bin / bash 
export dog = molly
echo $ dog
Linux знак доллара

Строка export dog = molly создает переменную среды с именем dog и устанавливает ее значение molly . Чтобы получить доступ к переменной окружения, используйте символ $. С символом $ оператор echo $ dog отображает Молли. Без этого в выражении echo dog отображается слово dog.

Спасающиеся метасимволы (\\)

Иногда вы не хотите, чтобы метасимвол имел особое значение. Например, если файл называется f.refox, а другой файл называется firefox .

Теперь посмотрите на следующую команду:

ls | grep f.refox

Как вы думаете, что возвращается? И f.refox, и firefox возвращаются, потому что оба соответствуют шаблону.

Linux escape-персонаж

Чтобы вернуть только f.refox, экранируйте точку полной остановки, чтобы фактически означать точку полной остановки следующим образом:

ls | grep f \\. refox

Скобки как метасимвол ([])

Вы можете использовать скобки ( [] ) при поиске шаблонов. Квадратные скобки указывают конкретные буквы для соответствия в любом месте шаблона. Например:

ls | grep [abc]

В этом списке перечислены все файлы, содержащие буквы a, b или c.

Символ скобки Linux

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

Для поиска диапазона букв используйте дефис (-). Например, ls [ah] * возвращает файлы, которые начинаются с любой буквы от a до h.

Метасимвол Акцента Могила

В приведенных выше примерах метасимвол канала отправляет результаты одной команды (например, команды ls) другой команде (например, команде grep).

Альтернативный способ сделать это — использовать обратную кавычку, также известную как accent grave ( ` ), чтобы вставить результаты одной команды в другую команду. Для этого сохраните результат одной команды в переменной. Например:

command = `ls -lah` 
echo $ command
Символ обратной черты в Linux

Пример очень надуманный, и вы, вероятно, никогда не сделаете ничего подобного, но вы можете увидеть, как это работает. Символ обратного удара запускает команду и сохраняет результат. Это может быть полезно в сценариях, но оно менее гибкое, чем использование канала для простых команд.

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone