是否有与Linux中.bashrc文件等效的Windows?


65

刚发现doskey emacs = emacs -nw $ *,但是没有.bashrc之类的东西,每次启动shell时我都必须键入该命令,对吗?


1
这个问题并不完全相同,但是答案涵盖了您的情况。
Marcelo Cantos 2010年

Answers:


69

这个问题问得好。我发现了这个。我想您可以制作一个cmd脚本并在启动cmd时运行它:-?

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

编辑:我只是尝试了。我有AutoRun=C:\mini\bashrc.cmdbashrc.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 \ Command Processor with AutoRun =%HOMEPATH%\ bashrc.bat因此,每个用户都将拥有自己的启动顺序
bambam2174 2013年

5
我一定是个白痴,但是我应该把这段代码放在哪里?
Marcel

1
可能最容易设置为..., AUTORUN=%USERPROFILE%\autorun.cmd以便它将为当前用户使用一个...虽然很酷的技巧,但是当我回到家时会尝试...最近我大多使用bash,但这会有所帮助。
Tracker1 2015年

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这篇文章的重要部分可能是以下内容:

powershell.exe主机的配置文件的位置(在Windows Vista上)如下:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    这适用于计算机的所有用户和所有外壳。
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    这适用于计算机的所有用户,但仅适用于Microsoft.PowerShell Shell。
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    这仅适用于当前用户和所有shell。
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    这仅适用于当前用户,并且仅适用于Microsoft.PowerShell Shell。

这些配置文件不是默认创建的。它们只有在您创建它们时才存在。

在Windows 7、8和10上似乎相同。您也可以在此处找到更多信息。


注意:您可能需要运行以下命令。否则,您的个人资料可能不会执行。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

您还可以以管理员身份运行以下命令,以更改所有用户的配置。

Set-ExecutionPolicy RemoteSigned

3

编辑:发现此:http : //msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx

为了说明Martin的解决方案(快捷方式),这里是PowerShell的等效项。

注意:您将需要启用PowerShell脚本执行。如果禁用此功能,则需要运行提升的PowerShell,然后执行Set-ExecutionPolicy Unrestricted。显然,出于安全原因不建议这样做,但是可以。

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

ps-startup.ps1在用户目录中有一个名为的文件,您的快捷方式将在启动时将其作为PowerShell文件执行。从现在开始,使用此快捷方式运行PowerShell。


这可以通过Powershell配置文件以“更好”的方式实现。您可以通过以下方式找到当前配置文件的位置:echo $ profile。您可以在该文件中添加行,然后在以后的会话中执行。对于现有的会话,您可以使用:&$ profile重新加载配置文件。
ashic

3

基本上nc3b的答案有效,但是Chocolatey的DevBox-Common软件包将使其变得更容易

  1. 如果尚未安装Chocolatey,请安装它。
  2. 通过安装DevBox-Common软件包 choco install devbox-common -y
    • 您应该在管理 cmd.exe或PowerShell中键入此命令。
  3. 现在你已经.bashrc.bat.bashrc.include.aliases-common.bat你的主路径。每个文件匹配.bashrc.include.*.bat都将在每次命令Shell启动时执行。

3

对于所有来自类似unix的世界的人们,并提出以下问题(即,每个人,因为它询问.bashrc):彻底改善Windows控制台的使用寿命,并停止使用库存cmd.exe和默认的Windows终端! 没有人问这个问题或查看这个问题的答案,应该使用当前的默认值cmd.exe和终端!

如果愿意断货cmd.exe(我知道没有正当理由),那么对原始问题的一个简单答案是:

安装并使用Cmder,您的.bashrc等效产品将变为 %CMDER_ROOT%\config\user_profile.cmd,同时还可以大大改善您的shell /控制台体验。

意见,延伸和松散相关的建议如下...


Cmder是一个元软件包,它包装ConEmuClink和许多额外的设置和内容。ConEmu是提供启动脚本功能的终端仿真器,该功能(通过Cmder提供默认ConEmu设置)最终路由到所指示的%CMDER_ROOT%\config\user_profile.cmd

您可能只想单独显式地使用ConEmu和Clink,而不是使用捆绑的Cmder包。

为此,并添加一些“在Windows上必须完成的工作,我该怎么办”的极乐,下面是一些要做的好事情。诚然,这些问题与最初的问题非常松散相关,但是我最近又经过Windows设置,已经输入了大部分内容,并且该问题的目标受众是正确的,所以您可以...

  1. 使用scoop.sh进行所有安装
    • scoop是适用于Windows的出色软件包管理器(类似于apt / yum / pacman / emerge / whatever)...,其中所有软件包均安装到用户(无需管理员权限)
    • 肯定会extras为许多非控制台的东西安装存储桶(scoop bucket add extras
    • 您也可以使用Chocolatey,但是(我认为)仅在胁迫下且您想要的东西不在铲斗中时
    • 或者只是制作自己的独家新闻
    • 当我想要的东西不在铲斗中时,这是悲伤的一天:(
    • 与独家新闻不同,Chocolatey的安装需要管理员权限
  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工具grepvimsedlscatcurlwclessfind,等,等),你所了解和喜爱,直接在cmd.exe没有非母语的怪事般终端
    • 注意名称冲突重命名,例如find->gfindawk->gawk
    • 我几乎完全将Gow用于基本的Windows工作,而不是与WSL,Cygwin,MSYS,git bash等混为一谈。
    • Gow工具在保持Windows原生状态的同时,与我迄今为止所体验到的GNU / * nix-on-Windows十分接近,而无需担心Cygwin环境,WSL文件系统的麻烦(也正在开发中),gitbash Windows等
  5. 视需要安装其他方便的工具(带铲子)
    • 主要临时演员舀水桶有许多更良好的工具和应用程序(蟒蛇,OpenSSH的,ripgrep,FZF,Sysinternals的,崇高的文本,合并,CCleaner的,等等)
      • 虽然绝对不是一个GNU / UNIX的东西,Sysinternals的是Windows自带的工具必不可少/经典收藏。
    • 使用scoop searchscoop info查找所需的存储桶,或浏览存储桶(有多个存储桶,而不仅仅是主要存储桶和附加存储桶
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.