Há janelas equivalentes ao arquivo .bashrc no linux?


65

Acabei de descobrir doskey emacs = emacs -nw $ *, mas sem algo como .bashrc, terei que digitar isso toda vez que iniciar um shell, certo?


11
Esta pergunta não é idêntica, mas a resposta cobre seu cenário.
Marcelo Cantos 23/05

Respostas:


69

Esta é uma pergunta muito boa. Eu encontrei isso . Suponho que você possa criar um script cmd e executá-lo ao iniciar o cmd: -?

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

EDIT: Eu apenas tentei. Eu tenho AutoRun=C:\mini\bashrc.cmde bashrc.cmd é

@echo off
set TEST_VAR=something

quando eu começo cmd e digito echo %TEST_VAR%ele diz something. Então funciona :)


10
Pequeno trecho que eu uso: doskey∙♦=exit(onde está [char]4). Permite fechar o shell com Ctrl + D, Enter.
Joey

Este trabalho ótimo, bom trabalho nc3b.
Robert S Ciaccio

2
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor com AutoRun =% HOMEPATH% \ bashrc.bat Assim, cada usuário teria sua própria startup-sequência
bambam2174

5
Eu devo ser um idiota, mas onde coloco esse código?
Marcel

11
provavelmente o mais fácil de definir para ... AUTORUN=%USERPROFILE%\autorun.cmdpara que ele use um para o usuário atual ... um truque legal, porém, tentará quando eu chegar em casa ... Eu uso principalmente o bash ultimamente, mas isso ajudaria.
precisa saber é o seguinte

21

Você pode criar um atalho cmd.exee adicionar a /kopção para executar um determinado arquivo .bat na inicialização, algo como isto:

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

cmd-startup.bat no diretório de sua casa funcionaria como .bashrc


14

Modificação da resposta do mc3b para aqueles que são janelas noobs como eu.

Crie um arquivo C:\bashrc.cmdou onde você deseja que seu arquivo "rc" resida.

@echo off
set TEST_VAR=something

Execute regeditpesquisando-o ou executando-o no cmd.

Nas pastas à esquerda, navegue para:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Clique com o botão direito na Command Processorpasta e clique em New -> String Value. Introduza a chave AutoRun. Clique duas vezes AutoRune insira o local do bashrc C:\bashrc.cmd.

Teste: Abra uma nova janela do cmd e digite:

echo %TEST_VAR%

se diz something, funciona.


5

Supondo que seu shell seja Powershell, não cmd, você pode criar um perfil para seu shell. Tais perfis são basicamente scripts que são executados quando você inicia um shell. Assim como .bashrc. Uma parte importante desta postagem pode ser a seguinte:

Os locais (no Windows Vista) dos perfis para o host powershell.exe são os seguintes:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Isso é para todos os usuários do computador e para todos os shells.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Isso é para todos os usuários do computador, mas é apenas para o shell Microsoft.PowerShell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Isso é apenas para o usuário atual e todos os shells.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Isso é apenas para o usuário atual e somente para o shell Microsoft.PowerShell.

Esses perfis não são criados por padrão. Eles existem apenas se você os criar.

Parece ser o mesmo no Windows 7, 8 e 10. Você também pode encontrar mais informações aqui .


Nota: Pode ser necessário executar o seguinte. Caso contrário, seu perfil poderá não ser executado.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Você também pode executar o seguinte como administrador para alterar a configuração para todos os usuários.

Set-ExecutionPolicy RemoteSigned

3

EDIT : encontrado este: http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx

Para explicar a solução de Martin (o atalho), aqui está o equivalente do PowerShell.

NOTA : Você precisará ter a execução de script do PowerShell ativada. Se isso estiver desativado, você precisará executar um PowerShell elevado e executar Set-ExecutionPolicy Unrestricted. Obviamente, isso não é recomendado por razões de segurança, mas lá está.

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

Tenha um arquivo nomeado ps-startup.ps1no diretório do usuário e seu atalho o executará como um arquivo do PowerShell na inicialização. Basta executar o PowerShell com esse atalho daqui em diante.


Isso pode ser alcançado de uma maneira "melhor" por meio de perfis do PowerShell. Você pode encontrar a localização do seu perfil atual: echo $ profile. Você pode adicionar linhas a esse arquivo, e isso deve ser feito para sessões futuras. Para sessões existentes, você pode recarregar o perfil com: & $ profile.
ashic

3

Basicamente, a resposta do nc3b funciona, mas o pacote DevBox-Common do Chocolatey tornará mais fácil .

  1. Se você ainda não instalou o Chocolatey, instale-o.
  2. Instale o pacote DevBox-Common choco install devbox-common -y
    • Você deve digitar este comando no cmd.exe administrativo ou no PowerShell.
  3. Agora você tem .bashrc.bate .bashrc.include.aliases-common.batem seu caminho de casa. Cada correspondência de arquivo .bashrc.include.*.batserá executada a cada início do shell de comando.

3

Para todas as pessoas vindas de um mundo unix e aterrissando nesta questão (ou seja, todo mundo, já que pergunta sobre isso .bashrc): melhore radicalmente a vida útil do console do Windows e pare de usar o estoque cmd.exee o terminal padrão do Windows !! Ninguém fazendo essa pergunta ou procurando respostas para essa pergunta deve usar o cmd.exeterminal e o padrão atuais !

Se estiver disposto a desativar o estoque cmd.exe(não conheço nenhum motivo válido para não fazê-lo), uma resposta simples para a pergunta original é:

Instale e use o Cmder e seu .bashrcequivalente se tornará %CMDER_ROOT%\config\user_profile.cmd, além de melhorar significativamente sua experiência com o shell / console.

Opiniões, extensões e recomendações pouco relacionadas seguem ...


Cmder é um metapacote que agrupa ConEmu , Clink e uma pilha de configurações extras e outras coisas. ConEmu é o emulador de terminal que fornece a capacidade de script de inicialização, que (por meio das configurações padrão do ConEmu que o Cmder fornece ) acaba encaminhando para o indicado %CMDER_ROOT%\config\user_profile.cmd.

Convém usar explicitamente o ConEmu e o Clink independentemente, em vez de usar o pacote do Cmder.

Para fazer isso, e para adicionar um pouco mais de "tenho que trabalhar no Windows, o que devo fazer", abaixo estão algumas coisas boas / opinativas a serem feitas. É certo que eles estão muito vagamente relacionados à pergunta inicial, mas recentemente fiz uma instalação do Windows novamente, já digitei a maior parte disso e o público-alvo nesta pergunta está correto, então aqui está ...

  1. Use scoop.sh para todas as suas instalações
    • O scoop é um ótimo gerenciador de pacotes para o Windows (semelhante ao apt / yum / pacman / emerge / qualquer que seja) ... onde todos os pacotes são instalados no usuário (sem privilégios de administrador necessários)
    • definitivamente instale o extrasbucket para muitas coisas que não são do console ( scoop bucket add extras)
    • você também pode usar chocolate , mas (na minha opinião) somente se for coagido e o que você quiser não estiver em um balde de colher
    • ou apenas faça sua própria manifestação
    • é um dia triste quando a coisa que eu quero não está em um balde de colher :(
    • ao contrário do scoop, o chocolatey precisa de privilégios de administrador para suas instalações
  2. Use Clink como seu shell em vez decmd.exe
    • scoop install clink
    • fornece a você a vantagem da linha de leitura GNU (como navegação no histórico do ctrl-r, ctrl-s cmd) e muito mais
    • certifique-se também clink autorun installde fazê-lo funcionar quando cmd.exefor executado
  3. Use ConEmu como seu emulador de terminal
    • scoop install conemu
    • o terminal do Windows é terrível (mas eles estão trabalhando nele )
    • certifique-se de configurá-lo como o terminal padrão
      • "Forçar ConEmu" e "Registrar na inicialização do SO" em Settings::Integration->Default term
    • MUITAS outras possibilidades de configuração
      • se estiver sobrecarregado, talvez fique com o Cmder e seus padrões razoáveis ​​( scoop install cmder), mas pessoalmente acho mais fácil instalar / executar o Clink e o ConEmu separadamente.
  4. Instale o Gow (como, agora )
    • scoop install gow
    • > 100 ferramentas GNU ( grep, vim, sed, ls, cat, curl, wc, less, find, etc, etc) você conhece e ama, directamente no seu cmd.exeterminal de -como sem estranheza não-nativo
    • preste atenção à colisão de nomes renomeia como find->gfindeawk->gawk
    • Eu uso Gow praticamente exclusivamente para o trabalho básico do Windows, em vez de mexer com WSL, Cygwin, MSYS, git bash, etc.
    • As ferramentas Gow ficam tão próximas do GNU / * nix-on-Windows quanto eu experimentei até agora, mantendo-me nativas do Windows, sem as dores de cabeça dos ambientes Cygwin, asquerezas do sistema de arquivos WSL (que também estão sendo trabalhadas ), janelas gitbash, etc.
  5. Instale outras ferramentas úteis como achar melhor (com conchas)
    • os buckets principais e extras têm muito mais boas ferramentas e aplicativos (python, openssh, ripgrep, fzf, sysinternals, sublime-text, meld, ccleaner, etc.)
      • embora definitivamente não seja uma coisa GNU / unix, o sysinternals é uma coleção essencial / clássica de ferramentas nativas do Windows.
    • use scoop searche scoop infoencontre os que deseja ou navegue nos baldes (existem vários , não apenas principais e extras)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.