Чи є Windows, еквівалентні файлу .bashrc в Linux?


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"=-

EDIT: Я просто спробував це. У мене є 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.
Joey

Ця робота чудова, приємна робота nc3b.
Robert S Ciaccio

2
HKEY_CURRENT_USER \ Програмне забезпечення \ Microsoft \ Командний процесор з AutoRun =% 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 noobs, як я.

Створіть файл у тому 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

EDIT : Знайдено так: 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 за допомогою цього ярлика звідси і далі.


Цього можна досягти «кращим» способом за допомогою профілів оболонок. Ви можете знайти місце свого поточного профілю за адресою: 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 доброту для читання (наприклад, ctrl-r, ctrl-s cmd навігація по історії) та багато іншого
    • не забудьте також clink autorun installзмусити його запускатись, коли cmd.exeвиконується
  3. Використовуйте ConEmu як емулятор терміналу
    • scoop install conemu
    • термінал Windows жахливий (але вони над цим працюють )
    • не забудьте налаштувати його як термінал за замовчуванням
      • "Примусити ConEmu" та "Зареєструватися при запуску ОС" у Windows 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 (над якою також працювали ), windows gitbash тощо
  5. Встановіть інші зручні інструменти як вважаєте за потрібне (за допомогою совки)
    • на основні та додаткові викопати відра мають багато більше хороших інструментів і додатків (пітон, OpenSSH, ripgrep, fzf, Sysinternals, піднесений-текст, зливатися, CCleaner, і т.д.)
      • Хоча, безумовно, не GNU / unix, sysinternals - це важлива / класична колекція рідних інструментів Windows.
    • використовуйте scoop searchта scoop infoзнаходите потрібні, або переглядайте відра (є кілька відра , а не лише основні та додаткові)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.