Обратная косая черта часто используется, чтобы сказать «сделать следующий символ сам по себе, вместо того, чтобы придавать ему особое значение». Мы говорим, что обратная косая черта помещает в кавычки следующий символ. Это значение присутствует во многих языках программирования, включая синтаксис оболочки. Например, в rpm-qa rpmname \ *
обратная косая черта вызывает передачу символа *
в аргументе команды rpm-qa
. Напротив, rpm-qa rpmname *
заменит rpmname *
списком имен файлов в текущем каталоге, начиная с rpmname
.(Если подходящего файла нет, то bash оставляет только rpmname *
; по умолчанию zsh будет жаловаться на отсутствие совпадений.)
Оболочка предлагает другой способ интерпретировать символ буквально, т. Е. Сделать его стоять за себя, а не интерпретироваться каким-то особым образом. Это цитирование, отменяющее особое значение целой последовательности символов. Есть два вида цитат:одинарные кавычки '
заставляют каждый символ стоять сам за себя до следующей одинарной кавычки, тогда как двойные кавычки «
сохраняют особое значение для нескольких символов (»
, ] $
, \
и `
). В echo 'that' \ '' s no moon '
команда echo
принимает единственный аргумент, который представляет собой конкатенацию , что
(записанное с буквальным строка, а не то, что в этом конкретном случае был какой-либо символ со специальным значением), '
(одинарная кавычка с обратной косой чертой отменяет особое значение этой одинарной кавычки, поэтому она заменяется одним символом одинарной кавычки), и s no moon
(пробелы теряют свое особое значение, поскольку они заключены в кавычки: вместо разделения аргументов они являются частью аргумента).
В оболочке, когда обратная косая черта имеет особое значение, это обычно заключается в заключении следующего символа в кавычки. Но:
"$ \`
. В противном случае и обратная косая черта, и следующий символ интерпретируются буквально, например, "\ a"
представляет собой двухсимвольную строку \ a
. \ n
- это N в нижнем регистре, «\ n»
- это обратная косая черта + n, но $ '\ n'
- это символ новой строки. В grep '\ s / tmp' / etc / fstab
одинарные кавычки приводят к тому, что grep
получает аргумент \ s / tmp
. Этот аргумент является регулярным выражением . Существует множество вариантов синтаксиса для регулярных выражений, но большинство из них основано на одном из двух стандартов: Базовые регулярные выражения POSIX (BRE) и расширенные регулярные выражения (ERE) . ERE следуют широко распространенному соглашению, согласно которому обратная косая черта, за которой следует что-либо, кроме буквы или цифры, помещает следующий символ в кавычки. Но по историческим причинам в BRE обратная косая черта иногда может сделать следующий символ особенным, хотя иначе это было бы не так. В этом случае \ s
- это расширение GNU grep для базового синтаксиса регулярных выражений, доступное как с BRE, так и с ERE, что означает один пробельный символ. Таким образом, grep '\ s / tmp' / etc / fstab
перечисляет строки в / etc / fstab
, содержащие / tmp
, которым предшествует пробел или табуляция.
Придя сегодня с работы и включив ноутбук, я обнаружил, что проблема решилась сама собой. Это первый раз, когда у меня была такая проблема на любой машине.
Мое лучшее предположение - это то, что это как-то связано с перегревом. Мой ноутбук имеет тенденцию сильно нагреваться.
Убедитесь, что в Chrome используется правильная кодировка символов:
https://support.google.com/news/answer/61689?hl=en
установил Unicode UTF-8