Esistono finestre equivalenti al file .bashrc in Linux?


65

Ho appena scoperto doskey emacs = emacs -nw $ *, ma senza qualcosa come .bashrc, dovrò scriverlo ogni volta che avvierò una shell, giusto?


1
Questa domanda non è identica, ma la risposta copre il tuo scenario.
Marcelo Cantos,

Risposte:


69

Questa è un'ottima domanda Ho trovato questo . Suppongo che potresti creare uno script cmd e farlo funzionare all'avvio di cmd: -?

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

EDIT: l'ho appena provato. Ho AutoRun=C:\mini\bashrc.cmde bashrc.cmd lo è

@echo off
set TEST_VAR=something

quando inizio cmd ed entro echo %TEST_VAR%dice dice something. Quindi funziona :)


10
Piccolo frammento che uso: doskey∙♦=exit(dove è [char]4). Ti permette di chiudere la shell con Ctrl + D, Invio.
Joey,

Questo lavoro ottimo, bel lavoro nc3b.
Robert S Ciaccio,

2
HKEY_CURRENT_USER \ Software \ Microsoft \ Processor Command con AutoRun =% HOMEPATH% \ bashrc.bat Quindi ogni utente avrebbe la propria sequenza di avvio
bambam2174,

5
Devo essere un idiota ma dove devo inserire questo codice?
Marcel,

1
probabilmente il più facile da impostare su ... in AUTORUN=%USERPROFILE%\autorun.cmdmodo che ne utilizzi uno per l'utente corrente ... comunque un bel trucco, lo proverò quando torno a casa ... Uso principalmente bash ultimamente, ma questo sarebbe d'aiuto.
Tracker1

21

È possibile creare un collegamento cmd.exee aggiungere l' /kopzione per eseguire un determinato file .bat all'avvio, in questo modo:

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

cmd-startup.bat nella tua home dir funzionerebbe quindi proprio come .bashrc


14

Modifica della risposta di mc3b per coloro che sono Windows come me.

Crea un file C:\bashrc.cmdo dove vuoi che risieda il tuo file "rc".

@echo off
set TEST_VAR=something

Corri regeditcercandolo o eseguendolo in cmd.

Nelle cartelle a sinistra vai a:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Fare clic con il tasto destro sulla Command Processorcartella e fare clic New -> String Value. Immettere la chiave AutoRun. Fare doppio clic su AutoRune inserire la posizione di base C:\bashrc.cmd.

Test: apri una nuova finestra cmd e digita:

echo %TEST_VAR%

se dice something, funziona.


5

Supponendo che la tua shell sia Powershell, non cmd, puoi creare un profilo per la tua shell. Tali profili sono fondamentalmente script che vengono eseguiti quando si avvia una shell. Proprio come .bashrc. Una parte importante di questo post potrebbe essere la seguente:

Le posizioni (su Windows Vista) dei profili per l'host powershell.exe sono le seguenti:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Questo è per tutti gli utenti del computer e per tutte le shell.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Questo è per tutti gli utenti del computer, ma è solo per la shell Microsoft.PowerShell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Questo è solo per l'utente corrente e tutte le shell.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Questo è solo per l'utente corrente e solo per la shell Microsoft.PowerShell.

Questi profili non sono creati per impostazione predefinita. Esistono solo se li crei.

Sembra essere lo stesso su Windows 7, 8 e 10. Puoi anche trovare maggiori informazioni qui .


Nota: potrebbe essere necessario eseguire quanto segue. Altrimenti, il tuo profilo potrebbe non essere eseguito.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

È inoltre possibile eseguire quanto segue come amministratore per modificare la configurazione per tutti gli utenti.

Set-ExecutionPolicy RemoteSigned

3

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

Per spiegare la soluzione di Martin (il collegamento), ecco l'equivalente di PowerShell.

NOTA : è necessario abilitare l'esecuzione dello script PowerShell. Se disabilitato, è necessario eseguire PowerShell elevato ed eseguirlo Set-ExecutionPolicy Unrestricted. Ovviamente, questo non è raccomandato per motivi di sicurezza, ma il gioco è fatto.

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

Avere un file nominato ps-startup.ps1nella directory dell'utente e il collegamento lo eseguirà come file PowerShell all'avvio. Esegui PowerShell con questo collegamento da qui in poi.


Ciò può essere ottenuto in modo "migliore" attraverso i profili PowerShell. Puoi trovare la posizione del tuo profilo attuale tramite: echo $ profile. Puoi aggiungere linee a quel file e questo dovrebbe farlo per le sessioni future. Per le sessioni esistenti, è possibile ricaricare il profilo con: & $ profile.
ashic,

3

Fondamentalmente la risposta di nc3b funziona, ma il pacchetto DevBox-Common di Chocolatey lo renderà più semplice .

  1. Se non hai già installato Chocolatey, installalo.
  2. Installa il pacchetto DevBox-Common di choco install devbox-common -y
    • È necessario digitare questo comando all'interno di cmd.exe amministrativo o PowerShell.
  3. Ora hai .bashrc.bate .bashrc.include.aliases-common.batnel tuo percorso di casa. Ogni corrispondenza dei file .bashrc.include.*.batverrà eseguita ad ogni avvio della shell dei comandi.

3

A tutte le persone che provengono da un mondo simile a unix e che si rivolgono a questa domanda (cioè a tutti, dal momento che si chiede .bashrc): migliora radicalmente la vita della tua console Windows e smetti di usare stock cmd.exee il terminale Windows predefinito !! Nessuno che ponga questa domanda, o guardando le risposte a questa domanda, dovrebbe usare l'attuale default cmd.exee il terminale!

Se disposto a disinserire lo stock cmd.exe(non conosco alcun motivo valido per non farlo), una semplice risposta alla domanda originale è:

Installa e usa Cmder e il tuo .bashrcequivalente diventa %CMDER_ROOT%\config\user_profile.cmd, migliorando anche in modo significativo la tua esperienza shell / console.

Seguono opinioni, estensioni e raccomandazioni vagamente correlate ...


Cmder è un metapacchetto che confeziona ConEmu , Clink e un mucchio di impostazioni e cose extra. ConEmu è l'emulatore di terminale che fornisce la funzionalità di script di avvio, che (tramite le impostazioni ConEmu predefinite fornite da Cmder ) termina il routing al indicato %CMDER_ROOT%\config\user_profile.cmd.

È possibile che si desideri utilizzare esplicitamente ConEmu e Clink in modo indipendente, anziché utilizzare il pacchetto Cmder in bundle.

Per farlo, e per aggiungere un po 'più di "lavoro su Windows, cosa dovrei fare", la felicità, di seguito sono alcune cose buone / supposte da fare. Questi sono certamente MOLTO vagamente correlati alla domanda iniziale, ma di recente ho eseguito di nuovo un'installazione di Windows, ho già scritto la maggior parte di questo e il pubblico di destinazione in questa domanda è corretto, quindi eccoti ...

  1. Usa scoop.sh per tutte le tue installazioni
    • scoop è un ottimo gestore di pacchetti per Windows (simile a apt / yum / pacman / emerge / qualunque) ... dove tutti i pacchetti si installano per l'utente (senza i privilegi di amministratore necessari)
    • installa sicuramente il extrasbucket per molte cose non console ( scoop bucket add extras)
    • puoi anche usare la cioccolata , ma (la mia opinione) solo se sotto coercizione e la cosa che vuoi non è in un secchio paletta
    • o semplicemente manifesta il tuo scoop
    • è un giorno triste quando la cosa che voglio non è in un secchio scoop :(
    • a differenza di Scoop, Chocolatey ha bisogno dei privilegi di amministratore per le sue installazioni
  2. Usa Clink come shell invece dicmd.exe
    • scoop install clink
    • ti dà la bontà della readline GNU (come ctrl-r, ctrl-s cmd history navigation) e altro
    • assicurati anche clink autorun installdi farlo funzionare quando cmd.exeviene eseguito
  3. Usa ConEmu come emulatore di terminale
    • scoop install conemu
    • il terminale di Windows è terribile (ma ci stanno lavorando )
    • assicurarsi di configurarlo come terminale predefinito
      • "Force ConEmu" e "Register on OS startup" in Settings::Integration->Default term
    • MOLTE altre possibilità di configurazione
      • se sopraffatto, forse basta attenersi a Cmder e ai suoi valori predefiniti ragionevoli ( scoop install cmder), ma personalmente penso che sia più pulito installare / eseguire Clink e ConEmu separatamente.
  4. Installa Gow (come, proprio ora )
    • scoop install gow
    • > 100 strumenti GNU ( grep, vim, sed, ls, cat, curl, wc, less, find, ecc, ecc) che si conoscono e amano, direttamente nel vostro cmd.exeterminale -come senza stranezza non nativa
    • guardare per rinominare nomi-collisione come find->gfindeawk->gawk
    • Uso Gow praticamente esclusivamente per il lavoro di base di Windows invece di confondere con WSL, Cygwin, MSYS, git bash, ecc.
    • Gli strumenti di Gow si avvicinano al GNU / * nix-su-Windows come ho sperimentato finora rimanendo nativo di Windows, senza il mal di testa degli ambienti Cygwin, la cattiveria del filesystem WSL (su cui si sta lavorando anche ), gitbash windows, ecc.
  5. Installa altri strumenti utili a tuo piacimento (con scoop)
    • i secchi di scoop principali ed extra hanno molti altri buoni strumenti e applicazioni (python, openssh, ripgrep, fzf, sysinternals, sublime-text, meld, ccleaner, ecc.)
      • sebbene sicuramente non sia una cosa GNU / unix, sysinternals è una collezione essenziale / classica di strumenti nativi di Windows.
    • usa scoop searche scoop infoper trovare quelli che vuoi, o sfoglia i secchi (ci sono diversi secchi , non solo principali ed extra)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.