Вы когда-нибудь писали ls -l внутри командной строки. Теперь мы шаг за шагом посмотрим, что происходит на самом деле.

Приглашение оболочки ожидает выражения, которое мы хотим выполнить. В данном случае это будет ls -l, затем нажимаем intro.

Shell — это sh-совместимый интерпретатор командного языка, который выполняет команды из ввода стенда или из файла.

  1. Оболочка прочитала всю строку со стандартного ввода. Он получит что-то вроде «ls -l\n», потому что он включает ключ вступления.
  2. Мне необходимо разделить эту строку пробелами, табуляцией, новой строкой и некоторыми другими символами. Затем полезные слова сохраняются внутри массива, чтобы с ними было проще обращаться. Если найден символ #, это означает, что есть комментарии, и он будет избегать символов после него.
  3. Теперь оболочка проверяет, является ли первое слово (команда) встроенной функцией (например, exit, help, env) и обрабатывает ее. В противном случае он попытается его выполнить (наш случай с ls).
  4. Во-первых, используя в качестве пути команду точно так, как она была написана, оболочка проверяет, можно ли ее найти, если нет, оболочка будет объединять каждый путь, сохраненный в переменной окружения PATH, с этой командой, пока не найдет его.

5. В нашем случае полный путь будет /bin/ls и будет выполняться с опцией -l (как список).

6. Наконец, приглашение снова печатается в ожидании новой команды.

Авторы:

Марлон Гарсия и Андрес КаллехасУченики Холбертонской школы

Мы создали собственную оболочку (базовую версию) на языке C. Если вам интересно узнать, как на самом деле работает оболочка, вы можете посетить наш репозиторий github, чтобы проверить эту «простую оболочку».

https://github.com/AndresCallejasG/simple_shell