Есть ли в Linux окна, эквивалентные файлу .bashrc?


65

Только что обнаружил doskey emacs = emacs -nw $ *, но без чего-то вроде .bashrc мне придется вводить его каждый раз, когда я запускаю оболочку, верно?


1
Этот вопрос не идентичен, но ответ охватывает ваш сценарий.
Марсело Кантос

Ответы:


69

Это очень хороший вопрос. Я нашел это . Я полагаю, вы могли бы сделать сценарий cmd и запустить его при запуске cmd: -?

; Run a command when CMD.exe starts
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
"AutoRun"=-

РЕДАКТИРОВАТЬ: Я только что попробовал. У меня есть AutoRun=C:\mini\bashrc.cmdи bashrc.cmd

@echo off
set TEST_VAR=something

когда я запускаю cmd и ввожу echo %TEST_VAR%это говорит something. Так работает :)


10
Небольшой фрагмент, который я использую: doskey∙♦=exit(где есть [char]4). Позволяет закрыть оболочку с помощью Ctrl + D, Enter.
Джои

Эта работа отлично, хорошая работа nc3b.
Роберт С. Чаччо

2
HKEY_CURRENT_USER \ Software \ Microsoft \ Командный процессор с автоматическим запуском =% HOMEPATH% \ bashrc.bat Таким образом, у каждого пользователя будет своя последовательность запуска
bambam2174

5
Должно быть, я идиот, но куда мне поместить этот код?
Марсель

1
вероятно, проще всего установить ... AUTORUN=%USERPROFILE%\autorun.cmdтак, чтобы он использовал один для текущего пользователя ... крутой трюк, хотя, попробую его, когда вернусь домой ... Я в основном использую bash в последнее время, но это поможет.
Tracker1

21

Вы можете создать ярлык cmd.exeи добавить /kпереключатель для запуска определенного BAT-файла при запуске, что-то вроде этого:

cmd.exe /k "%HOMEDRIVE%\%HOMEPATH%\cmd-startup.bat"

cmd-startup.bat в вашем доме реж будет работать так же, как .bashrc


14

Модификация ответа mc3b для тех, кто любит Windows.

Создайте файл внутри C:\bashrc.cmdили там, где вы хотите, чтобы ваш файл "rc" находился.

@echo off
set TEST_VAR=something

Запустите regeditпоиск или запустив его в cmd.

В папках слева перейдите к:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Щелкните правой кнопкой мыши на Command Processorпапке и нажмите New -> String Value. Введите ключ AutoRun. Дважды щелкните AutoRunи введите местоположение Bashrc C:\bashrc.cmd.

Тест: откройте новое окно cmd и введите:

echo %TEST_VAR%

если он говорит something, это работает.


5

Предполагая, что ваша оболочка - Powershell, а не cmd, вы можете создать профиль для вашей оболочки. Такие профили в основном представляют собой скрипты, которые выполняются при запуске оболочки. Так же , как .bashrc. Важной частью этого поста может быть следующее:

Расположение (в Windows Vista) профилей для хоста powershell.exe выглядит следующим образом:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Это для всех пользователей компьютера и для всех оболочек.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Это для всех пользователей компьютера, но только для оболочки Microsoft.PowerShell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Это только для текущего пользователя и всех оболочек.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Это только для текущего пользователя и только для оболочки Microsoft.PowerShell.

Эти профили не создаются по умолчанию. Они существуют, только если вы их создадите.

Похоже, то же самое в Windows 7, 8 и 10. Вы также можете найти более подробную информацию здесь .


Примечание. Возможно, вам потребуется выполнить следующее. В противном случае ваш профиль не может быть выполнен.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

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

Set-ExecutionPolicy RemoteSigned

3

РЕДАКТИРОВАТЬ : Найдено это: http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx

Чтобы изложить решение Мартина (ярлык), вот эквивалент PowerShell.

ПРИМЕЧАНИЕ . Вам необходимо включить выполнение сценариев PowerShell. Если это отключено, вам нужно запустить PowerShell с повышенными правами и выполнить Set-ExecutionPolicy Unrestricted. Очевидно, что это не рекомендуется по соображениям безопасности, но вы идете.

powershell.exe -noexit -File "%HOMEDRIVE%\%HOMEPATH%\ps-startup.ps1"

Имейте файл, названный ps-startup.ps1в вашем пользовательском каталоге, и ваш ярлык запустит его как файл PowerShell при запуске. Просто запустите PowerShell с этим ярлыком.


Это может быть достигнуто «лучшим» способом с помощью профилей PowerShell. Вы можете найти местоположение вашего текущего профиля по: echo $ profile. Вы можете добавить строки в этот файл, и это должно сделать это для будущих сессий. Для существующих сеансов вы можете перезагрузить профиль с помощью: & $ profile.
ашичный

3

В основном ответ nc3b работает, но пакет DevBox-Common от Chocolatey сделает это проще .

  1. Если вы еще не установили Chocolatey, установите его.
  2. Установите пакет DevBox-Common с помощью choco install devbox-common -y
    • Вы должны ввести эту команду внутри административного cmd.exe или PowerShell.
  3. Теперь у вас есть .bashrc.batи .bashrc.include.aliases-common.batна вашем пути домой. Каждое сопоставление файла .bashrc.include.*.batбудет выполняться при каждом запуске командной оболочки.

3

Для всех людей, пришедших из мира, подобного Unix, и приземляющихся на этот вопрос (т.е. всех, так как он об этом спрашивает .bashrc): радикально улучшите свою консольную жизнь Windows и прекратите использовать cmd.exeстандартный и Windows-терминал по умолчанию !! Никто из тех, кто задает этот вопрос или ищет ответы на этот вопрос, не должен использовать текущее значение по умолчанию cmd.exeи терминал!

Если вы хотите выключить товар cmd.exe(я не знаю веских причин не делать этого), один простой ответ на оригинальный вопрос:

Установите и используйте Cmder, и ваш .bashrcаналог станет %CMDER_ROOT%\config\user_profile.cmd, в то же время, значительно улучшая ваши возможности оболочки / консоли

Мнения, расширения и слабо связанные рекомендации следуют ...


Cmder - это метапакет, в который входят ConEmu , Clink , а также куча дополнительных настроек и прочего. ConEmu - это эмулятор терминала, который предоставляет возможность запуска сценария запуска, который (через стандартные настройки ConEmu, предоставляемые Cmder ) завершает маршрутизацию к указанному %CMDER_ROOT%\config\user_profile.cmd.

Возможно, вы захотите просто явно использовать ConEmu и Clink независимо, а не использовать пакет Cmder.

Чтобы сделать это, и добавить еще «надо работать над окнами, что я должен делать», блаженство, ниже приведены некоторые хорошие / самоуверенные вещи, которые нужно сделать. Они, по общему признанию, ОЧЕНЬ слабо связаны с первоначальным вопросом, но недавно я снова прошел настройку Windows, уже набрал большую часть этого, и целевая аудитория в этом вопросе верна, так что вы идете ...

  1. Используйте scoop.sh для всех ваших установок
    • scoop - отличный менеджер пакетов для windows (похож на apt / yum / pacman / emerge / what), где все пакеты устанавливаются пользователю (без прав администратора)
    • обязательно установите extrasведро для многих неконсольных вещей ( scoop bucket add extras)
    • Вы также можете использовать шоколад , но (мое мнение), только если под принуждением и что вы хотите, не в ведро совок
    • или просто сделать свой собственный совок манифест
    • печальный день, когда то, что я хочу, не в ведерке :(
    • в отличие от scoop, для установки шоколадки требуются права администратора
  2. Используйте Clink в качестве оболочки вместоcmd.exe
    • scoop install clink
    • дает вам GNU readline совершенство (например, ctrl-r, ctrl-s навигация по истории cmd) и многое другое
    • не забудьте также clink autorun installзаставить его работать, когда cmd.exeзапускается
  3. Используйте ConEmu в качестве эмулятора терминала
    • scoop install conemu
    • Терминал Windows ужасен (но они работают над этим )
    • не забудьте настроить его в качестве терминала по умолчанию
      • «Force ConEmu» и «Зарегистрироваться при запуске ОС» в Settings::Integration->Default term
    • ТАК МНОГО других возможностей конфигурации
      • если перегружены, может быть, просто придерживайтесь Cmder и его разумных значений по умолчанию ( scoop install cmder), но я лично считаю, что чистее устанавливать / запускать Clink и ConEmu отдельно.
  4. Установите Gow (как, прямо сейчас )
    • scoop install gow
    • > 100 GNU инструменты ( grep, vim, sed, ls, cat, curl, wc, less, findи т.д., и т.д.) вы знаете и любите, прямо в cmd.exe-like терминале без неродного странности
    • следите за переименованием имен, как find->gfindиawk->gawk
    • Я использую Gow в основном исключительно для работы с Windows, а не для работы с WSL, Cygwin, MSYS, git bash и т. Д.
    • Инструменты Gow настолько близки к GNU / * nix-on-Windows, насколько я испытывал до сих пор, оставаясь нативными для Windows, без головной боли в средах Cygwin, гадости файловой системы WSL (над которой также работали ), окон gitbash и т. Д.
  5. Установите другие удобные инструменты по своему усмотрению (с совком)
    • в основной и дополнительной корзинах совка есть еще много хороших инструментов и приложений (python, openssh, ripgrep, fzf, sysinternals, sublime-text, meld, ccleaner и т. д.)
      • хотя , безусловно , не GNU / Unix вещи, Sysinternals является существенным / классическим набором встроенных средств Windows.
    • используйте scoop searchи, scoop infoчтобы найти те, которые вы хотите, или просмотрите группы (есть несколько групп , не только основные и дополнительные)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.