@tef

Какой алгоритм работы у консоли, когда в ней пишешь название приложения и команду?

Я пока не уверен, правильно ли я спрашиваю, но хотелось бы, чтобы понимание начало складываться.
Допустим, я пишу git, а потом далее пишу commit. Для начала меня интересует, что происходит, когда я пишу git (название приложения)? Откуда консоль знает, что у меня установлен гит и что, когда я пишу гит, нужно с его помощью выполнить команду? И вопрос в догонку: откуда консоль знает о командах гитa и что с ними делать?
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Консоль ничего не знает. В простейшем случае (если набрана одна команда без пайпов и перенаправления потоков):
Когда вы набираете строку и нажимаете Enter сначала из строки отделяется первая подстрока до пробела (или конца строки, если пробелов нет). Остаток строки будет передан выполняемой команде как аргументы.
Затем проверяется, не является ли эта подстрока внутренней командой шелла. Если да, то выполняется эта команда.
Если это не внутренняя команда и не указан полный путь к файлу, то идёт поиск файла с таким именем в каталогах, перечисленных в строке окружения PATH. Если файл найден и у пользователя есть права на его запуск, то он запускается.
Если указан полный путь (например, /usr/bin/perl), то поиск не производится, идёт только проверка на права запуска.

PS. Если речь о досовском/виндовом cmd, то он ищет файлы добавляя расширения .bat, .cmd, .exe, если расширение не указано явно. Кроме того, в нём поиск начинается с текущего каталога, а затем уже по переменной PATH.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы