какая консольная команда./средства?

Относительно того, может ли отличающийся размерный диск использоваться в качестве глобального hotspare, он, вероятно, зависит от RAID-контроллера, определенный ответ. Я знаю, что определенные Дисковые системы хранения IBM сделают это без проблемы, и я думаю, что контроллеры PERC Dell также сделают это.

На массиве хранения данных IBM я знаком с, когда неисправный диск заменяется, он автоматически восстановлен, и когда восстанавливание закончилось, глобальный hotspare становится запасным снова.

Я не думаю, что PERCs Dell делают это автоматически, но можно сделать это вручную через OpenManage.

5
задан 14 May 2011 в 13:59
2 ответа

. текущий каталог. Таким образом, команда говорит оболочке искать исполняемый файл в текущем каталоге.

Не путайте с . foo, который является совершенно другой командой.

10
ответ дан 3 December 2019 в 00:53

Жировик Вы выполняете команду без любого префикса затем системы 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 который совершенно допустим.

Я надеюсь, что это разъясняется немного что . и .. записи о.

10
ответ дан 3 December 2019 в 00:53

Теги

Похожие вопросы