¿Hay ventanas equivalentes al archivo .bashrc en Linux?

65

Acabo de descubrir doskey emacs = emacs -nw $ *, pero sin algo como .bashrc, tendré que escribir eso cada vez que inicie un shell, ¿verdad?

strupo
fuente
1
Esta pregunta no es idéntica, pero la respuesta cubre su escenario.
Marcelo Cantos

Respuestas:

69

Esta es una muy buena pregunta. Encontré esto . Supongo que podría crear un script cmd y ejecutarlo al iniciar cmd: -?

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

EDITAR: acabo de probarlo. Tengo AutoRun=C:\mini\bashrc.cmdy bashrc.cmd es

@echo off
set TEST_VAR=something

cuando comienzo cmd y lo ingreso echo %TEST_VAR%dice something. Entonces funciona :)

nc3b
fuente
10
Fragmento pequeño que uso: doskey∙♦=exit(donde está [char]4). Le permite cerrar el shell con Ctrl + D, Enter.
Joey
Este trabajo genial, buen trabajo nc3b.
Robert S Ciaccio
2
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor con AutoRun =% HOMEPATH% \ bashrc.bat Para que cada usuario tenga su propia secuencia de inicio
bambam2174
55
Debo ser un idiota, pero ¿dónde pongo este código?
Marcel
1
probablemente sea más fácil de configurar ... AUTORUN=%USERPROFILE%\autorun.cmdpara que use uno para el usuario actual ... un truco genial, lo intentaré cuando llegue a casa ... Últimamente uso bash, pero esto ayudaría.
Rastreador1
21

Puede crear un acceso directo cmd.exey agregar el /kinterruptor para ejecutar un determinado archivo .bat al inicio, algo como esto:

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

cmd-startup.bat en el directorio de tu casa funcionaría igual que .bashrc

Martín
fuente
14

Modificación de la respuesta de mc3b para aquellos que son novatos de Windows como yo.

Cree un archivo en C:\bashrc.cmdo donde quiera que resida su archivo "rc".

@echo off
set TEST_VAR=something

Ejecútelo regeditbuscándolo o ejecutándolo en cmd.

En las carpetas de la izquierda navegue hasta:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Haga clic derecho en la Command Processorcarpeta y haga clic New -> String Value. Ingrese la clave AutoRun. Haga doble clic en AutoRune ingrese la ubicación bashrc C:\bashrc.cmd.

Prueba: abra una nueva ventana de cmd y escriba:

echo %TEST_VAR%

Si dice something, funciona.

Humdinger
fuente
5

Suponiendo que su shell sea Powershell, no cmd, puede crear un perfil para su shell. Tales perfiles son básicamente scripts que se ejecutan cuando inicia un shell. Al igual .bashrc. Una parte importante de esta publicación podría ser la siguiente:

Las ubicaciones (en Windows Vista) de los perfiles para el host powershell.exe son las siguientes:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Esto es para todos los usuarios de la computadora y para todos los shells.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Esto es para todos los usuarios de la computadora, pero es solo para el shell Microsoft.PowerShell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Esto es solo para el usuario actual y todos los shells.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Esto es solo para el usuario actual y solo para el shell Microsoft.PowerShell.

Estos perfiles no se crean por defecto. Existen solo si los creas.

Parece ser lo mismo en Windows 7, 8 y 10. También puede encontrar más información aquí .


Nota: es posible que deba ejecutar lo siguiente. De lo contrario, su perfil no se puede ejecutar.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

También puede ejecutar lo siguiente como administrador para cambiar la configuración de todos los usuarios.

Set-ExecutionPolicy RemoteSigned
JojOatXGME
fuente
3

EDITAR : Encontrado esto: http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx

Para exponer la solución de Martin (el acceso directo), aquí está el equivalente de PowerShell.

NOTA : Deberá tener habilitada la ejecución del script de PowerShell. Si esto está deshabilitado, deberá ejecutar un PowerShell elevado y ejecutarlo Set-ExecutionPolicy Unrestricted. Obviamente, esto no se recomienda por razones de seguridad, pero ya está.

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

Tenga un archivo nombrado ps-startup.ps1en su directorio de usuario y su acceso directo lo ejecutará como un archivo de PowerShell al inicio. Simplemente ejecute PowerShell con este acceso directo de aquí en adelante.

lytedev
fuente
Esto se puede lograr de una manera "mejor" a través de los perfiles de PowerShell. Puede encontrar la ubicación de su perfil actual: echo $ profile. Puede agregar líneas a ese archivo, y eso debería hacerlo para futuras sesiones. Para las sesiones existentes, puede volver a cargar el perfil con: & $ profile.
ashic
3

Básicamente, la respuesta de nc3b funciona, pero el paquete DevBox-Common de Chocolatey lo hará más fácil .

  1. Si aún no ha instalado Chocolatey, instálelo.
  2. Instale el paquete DevBox-Common por choco install devbox-common -y
    • Debe escribir este comando dentro de cmd.exe administrativo o PowerShell.
  3. Ahora tienes .bashrc.baty .bashrc.include.aliases-common.baten tu camino a casa. Cada coincidencia de archivos .bashrc.include.*.batse ejecutará en cada inicio del shell de comandos.
hakatashi
fuente
3

Para todas las personas que vienen de un mundo similar a Unix y aterrizan en esta pregunta (es decir, todos, ya que pregunta .bashrc): ¡ Mejore radicalmente la vida de su consola Windows y deje de usar el stock cmd.exey el terminal predeterminado de Windows! ¡Nadie que haga esta pregunta, o que vea las respuestas a esta pregunta, debería usar el valor predeterminado actual cmd.exey el terminal!

Si está dispuesto a desconectarse cmd.exe(no sé por qué razón no válida), una respuesta simple a la pregunta original es:

Instale y use Cmder y su .bashrcequivalente se convierte %CMDER_ROOT%\config\user_profile.cmd, al tiempo que mejora significativamente su experiencia de consola / consola.

Las opiniones, extensiones y recomendaciones poco relacionadas siguen ...


Cmder es un metapaquete que empaqueta ConEmu , Clink y un montón de configuraciones y cosas adicionales. ConEmu es el emulador de terminal que proporciona la capacidad de script de inicio, que (a través de la configuración predeterminada de ConEmu que proporciona Cmder ) termina enrutando a lo indicado %CMDER_ROOT%\config\user_profile.cmd.

Es posible que desee usar explícitamente ConEmu y Clink de forma independiente, en lugar de usar el paquete Cmder incluido.

Para hacer eso, y para agregar algo más de "tengo que trabajar en Windows, qué debo hacer", a continuación hay algunas cosas buenas / obstinadas que hacer. Ciertamente, estos están MUY relacionados con la pregunta inicial, pero recientemente he pasado por una configuración de Windows nuevamente, ya he escrito la mayor parte de esto, y el público objetivo en esta pregunta es correcto, así que aquí tienes ...

  1. Use scoop.sh para todas sus instalaciones
    • scoop es un excelente administrador de paquetes para Windows (similar a apt / yum / pacman / emerge / whatever) ... donde todos los paquetes se instalan para el usuario (sin necesidad de privilegios de administrador)
    • Definitivamente instale el extrascubo para muchas cosas que no sean de consola ( scoop bucket add extras)
    • también puedes usar chocolate , pero (en mi opinión) solo si estás bajo presión y lo que quieres no está en una cuchara
    • o simplemente haga su propio manifiesto de primicia
    • es un día triste cuando lo que quiero no está en una cuchara :(
    • a diferencia de scoop, chocolatey necesita privilegios de administrador para sus instalaciones
  2. Use Clink como su caparazón en lugar decmd.exe
    • scoop install clink
    • le ofrece la bondad de la línea de lectura de GNU (como ctrl-r, ctrl-s cmd history navigation) y más
    • asegúrese también clink autorun installde hacerlo funcionar cuando cmd.exese ejecuta
  3. Usa ConEmu como tu emulador de terminal
    • scoop install conemu
    • el terminal de Windows es terrible (pero están trabajando en ello )
    • asegúrese de configurarlo como el terminal predeterminado
      • "Force ConEmu" y "Register on OS startup" en Settings::Integration->Default term
    • MUCHAS otras posibilidades de configuración
      • si está abrumado, tal vez solo se quede con Cmder y sus valores predeterminados razonables ( scoop install cmder), pero personalmente creo que es más limpio instalar / ejecutar Clink y ConEmu por separado.
  4. Instalar Gow (como, ahora mismo )
    • scoop install gow
    • > 100 herramientas GNU ( grep, vim, sed, ls, cat, curl, wc, less, find, etc, etc) que conocen y aman, directamente en su cmd.exeterminal de -como sin rarezas no nativo
    • Esté atento a los nombres de colisión de nombres como find->gfindyawk->gawk
    • Utilizo Gow casi exclusivamente para el trabajo básico de Windows en lugar de jugar con WSL, Cygwin, MSYS, git bash, etc.
    • Las herramientas Gow se acercan tanto al GNU / * nix-on-Windows como he experimentado hasta ahora mientras permanezco nativo de Windows, sin los dolores de cabeza de los entornos Cygwin, el mal funcionamiento del sistema de archivos WSL (que también se está trabajando ), las ventanas gitbash, etc.
  5. Instale otras herramientas prácticas como mejor le parezca (con cuchara)
    • los cucharones primarios principales y adicionales tienen muchas más herramientas y aplicaciones buenas (python, openssh, ripgrep, fzf, sysinternals, sublime-text, meld, ccleaner, etc.)
      • aunque definitivamente no es algo de GNU / unix, sysinternals es una colección esencial / clásica de herramientas nativas de Windows.
    • use scoop searchy scoop infopara encontrar los que desea, o explore los cubos (hay varios cubos , no solo principales y extras)
Russ
fuente