Да. Если система перестала работать во время начальной загрузки, можно войти в корневую оболочку. Если у Вас есть отдельный/usr, некоторые оболочки успешно могут не запуститься.
Я был бы совет создать учетную запись toor
(uid 0, ценуроз 0) с нестандартной оболочкой, в то время как левый корень с оболочкой по умолчанию.
I-соответствие между abC
и aBc
может легко быть сделан, если abC
преобразовывается к нижнему регистру (однажды), и каждый вход как aBc
переводится в нижний регистр также. Затем нормальное соответствие.
Но возможно это сделано, только путем игнорирования некоторых битов. 65 и 97. Различие равняется 32, питанию 2, таким образом, оно может легко быть замаскировано. Даже 'ä' (228) и 'Ä' (196) имеют различие 32, но я не уверен, содержит ли он для всех символов в расширенном ASCII.
grep
как наиболее регулярное выражение механизмы переводят шаблон, который Вы указываете в детерминированный конечный автомат (DFA).
Распространенный способ выразить нечувствительность к регистру при помощи классов символов для каждого алфавитного, поэтому Ваш пример был бы больше похож [aA][bB][cC]
. Соответствия класса отдельного символа часто реализуются как поиски набора битов где немного набора, содержащего 1
s в соответствии положений a
и A
создается в регулярном выражении-> время компиляции DFA.
Это означает это соответствовать [aA]
DFA должны только принять значение вводимого символа, использовать его в качестве индекса к набору битов - который является O (1) операция - таким образом, Вы не видите combinatoric взрыв времени что Ваш эквивалент
"abc|abC|aBc|aBC|Abc|AbC|ABc|ABC"
предложил бы. Конструкция DFA от регулярных выражений является приложением, "если Вы готовы провести некоторое время впереди (DFA, создающий), можно действительно сохранить циклы позже (распознавание DFA).