Как правило, вам нужно перезагружать оболочку только тогда, когда ваша среда меняется - обычно она быстра и проста и в основном гарантированно работает. Но это может раздражать, и в зависимости от того, что вы делаете, не является строго необходимым.
Как CMD, так и Powershell при запуске читают переменные среды пользователя / системы и применяют их к текущей оболочке. Когда вы вносите изменения в значения, такие как PATH, из этой оболочки, вы просто обновляете значения по умолчанию, используемые любыми новыми оболочками (CMD или POSH), и, как правило, не меняете текущую среду оболочек.
Такие вещи, как PATH, могут быть изменены в текущей оболочке, но в CMD и POSH это делается иначе. Вот простая демонстрация, которая показывает это в действии с командной строкой.
Откройте приглашение CMD и выполните эти команды для настройки демо:
C:\>mkdir c:\pathtest
C:\>echo @echo hello > c:\pathtest\sayhello.cmd
если вы переключитесь в c:\pathtest и выполните sayhello
, он должен работать как положено и вывести "hello" на экран:
C:\>cd c:\pathtest
C:\pathtest>sayhello
hello
Теперь вернитесь в корневой каталог и снова запустите sayhello
и вы получите команду « Распознанная ошибка»:
C:\pathtest>cd ..
C:\>sayhello
'sayhello' is not recognized as an internal or external command,
operable program or batch file.
Теперь волшебство, приведенное ниже, обновляет PATH вашей текущей оболочки (только), включая c:\pathtest
, и позволяет вам запускать sayhello
из любого места.
C:\>SET PATH=%PATH%;c:\pathtest
C:\>sayhello
hello
Закройте приглашение CMD и откройте новое, и инструкция PATH вернулась к своему первоначальному значению, и sayhello
больше не будет работать. (вы также можете удалить c:\pathtest
сейчас).
То же самое относится и к Powershell - вы можете манипулировать встроенной переменной $ env, чтобы изменить PATH и т.д. Только для текущего сеанса.
Итак, вернемся к вашим первоначальным вопросам:
Например, для работы с самым современным состоянием компьютера я должен перезапустить Powershell после:
1) Редактирование системной переменной среды, такой как Path
2) Установка таких вещей, как модули npm
3) Редактирование файла, такого как .txt или файла в проекте VSCode
Если изменяются переменные среды (например, установка чего-то, что изменяет PATH), перезапуск оболочки - самое простое исправление, но, как описано выше, вы можете обойти это, если знаете, что было сделано, и вручную примените его к текущей оболочке.
Модули npm располагаются в файловой системе, поэтому, если они не изменяют PATH или что-либо подобное, вам не нужно перезагружать оболочку, чтобы увидеть изменения.
Как и выше, когда вы нажимаете сохранить в редакторе, эти данные записываются на диск. Когда вы выполняете POSH/CMD, он читается с диска интерпретатором во время выполнения.