Относительно того, может ли отличающийся размерный диск использоваться в качестве глобального hotspare, он, вероятно, зависит от RAID-контроллера, определенный ответ. Я знаю, что определенные Дисковые системы хранения IBM сделают это без проблемы, и я думаю, что контроллеры PERC Dell также сделают это.
На массиве хранения данных IBM я знаком с, когда неисправный диск заменяется, он автоматически восстановлен, и когда восстанавливание закончилось, глобальный hotspare становится запасным снова.
Я не думаю, что PERCs Dell делают это автоматически, но можно сделать это вручную через OpenManage.
.
текущий каталог. Таким образом, команда говорит оболочке искать исполняемый файл в текущем каталоге.
Не путайте с . foo
, который является совершенно другой командой.
Жировик Вы выполняете команду без любого префикса затем системы Unix, ищет команду в PATH
. Например, если Вы вводите ls
затем Unix обойдет все пути, перечисленные в PATH
найти ls
двоичный файл.
Например, давайте примем Ваш PATH
установлен на /bin:/usr/bin:/usr/local/bin
затем просто ввод ls
заставит Вашу оболочку найти команду в /bin/ls
и выполните его.
Системы Unix должны оценить пути в порядке, в котором они перечислены PATH
. Таким образом, если у Вас есть несколько ls
установленный это выполнит тот, найденный, сначала игнорируя другие. Таким образом в примере выше Вас мог бы иметь другого ls
установленный в /usr/local/bin/ls
который никогда не используется, если Вы просто вводите ls
. Если Вы хотите выполниться /usr/local/bin/ls
вместо этого затем можно или изменить PATH
или используйте ввод полного пути /usr/local/bin/ls
.
Теперь это прибывает в Ваш ./
префикс. .
просто отсылает текущую папку. Таким образом, если Вы снабжаете префиксом команду ./
Ваша оболочка ищет команду в текущей папке.Действительно?
./command
идентично
`pwd`/command
или (на Bash)
${PWD}/command
Как уже упомянуто на командной строке Windows Вы могли бы использоваться, чтобы просто войти command
если Вы хотите выполниться command.exe
от текущей папки. Это вызвано тем, что Windows неявно первые взгляды в текущей рабочей папке для двоичного файла прежде, чем искать путь.
К сожалению, это довольно небезопасно. Давайте предположим, что я хотел бы украсть информацию о пользователе, к которой у меня нет доступа как обычный пользователь. Я просто помещу очень простой сценарий в свой корневой каталог, названный 'ls' со следующим содержанием:
#!/bin/bash
cp /etc/shadow /home/my-user > /dev/null 2>&1
chown my-user /home/my-user/shadow > /dev/null 2>&1
/bin/ls $*
Затем сделайте это исполняемым файлом.
Затем я звоню своему системному администратору и рассказываю ему некоторую историю о некоторых довольно странных именах файлов в моем корневом каталоге. Очень вероятно журналы администратора в на оболочке (надо надеяться, как корень) CD в мой каталог и выполняются ls
. То, что произошло бы, является этим вместо /bin/ls
системный администратор выполнил бы мой ls
сценарий, который просто помещает копию /etc/shadow
в мою домашнюю папку. Ну, администратор, вероятно, задался бы вопросом почему это ls
не перечислит имена файлов. Таким образом, сценарий просто выполняет "реальное" /bin/ls
команда на последней строке.
Таким образом, для предотвращения таких проблем, большинство современных систем Unix не включает текущий каталог (.
) в пути поиска. В основном, если команда будет выполняться, не указывая полный путь, то оболочка просто выполнит двоичные файлы в пути, который обычно включает доверяемые пути только (не перезаписываемый пользователем). Когда Вы видите ./mongo
в документации это просто означает, что необходимо удостовериться это mongo
от корректной папки выполняется, и не некоторые mongo
двоичный файл где-нибудь в пути.
Если Вы часто выполняете двоичные файлы от текущего пути, Вы могли бы просто добавить "." к Списку трактов вручную:
export PATH=".:$PATH"
Запуск с этого времени оболочки будет всегда искать двоичные файлы в текущем каталоге сначала. Как записано выше этого очень опасно, поскольку необходимо было бы проверить текущий рабочий каталог на двоичные файлы каждый раз, когда Вы выполняете команду - даже прежде, чем выполнить его. К сожалению, для проверки текущего каталога на двоичные файлы обычно Вы использовали бы 'ls', который мог уже выполнить двоичный файл, который Вы не будете ожидать.
Я лично часто использую следующее в моем $HOME/.profile
:
export PATH="~/bin:$PATH"
Это позволяет мне вставлять некоторые сценарии мой $HOME/bin
папка и выполненный их, не имея необходимость указывать полный путь. Но помните это $HOME/bin
доверяемый путь для меня также.
Другое маленькое примечание. Каждый каталог (даже пустые) содержит две жестких ссылки. Проверить ls -a
вывод:
.
..
.
запись относится к текущему каталогу в то время как ..
запись трудно связана с родительским каталогом. Это включает относительные пути. Конечно, это также позволяет рекурсивные определения такой как ././././././command
выполниться command
как .
всегда обращается к тому же каталогу. Можно также выполнить что-то как /bin/../bin/./././../bin/ls
который совершенно допустим.
Я надеюсь, что это разъясняется немного что .
и ..
записи о.