Linux'ta .bashrc dosyasına eşdeğer pencereler var mı?


65

Az önce keşfedilmiş doskey emacs = emacs -nw $ *, ama .bashrc gibi bir şey olmadan, bir kabuk başlattığımda her zaman şunu yazmam gerekecek, değil mi?


1
Bu soru aynı değil, cevap sizin senaryonuzu kapsıyor.
Marcelo Cantos

Yanıtlar:


69

Bu çok iyi bir soru. Bulduğum bu . Sanırım bir cmd betiği yazıp cmd'yi başlatırken çalıştırmasını sağlayabilirsiniz: -?

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

EDIT: Sadece denedim. Ben AutoRun=C:\mini\bashrc.cmdve bashrc.cmd olduğunu

@echo off
set TEST_VAR=something

cmd'ye başladığımda ve girdiğimde echo %TEST_VAR%yazıyor something. Yani çalışıyor :)


10
Kullandığım Küçük pasajı: doskey∙♦=exit( ise [char]4). Kabuğu Ctrl + D, Enter tuşlarıyla kapatmanızı sağlar.
Joey

Bu harika iş, güzel iş nc3b.
Robert S Ciaccio

2
HKEY_CURRENT_USER \ Software \ Microsoft \ AutoRun Komut İşlemcisi =% HOMEPATH% \ bashrc.bat Böylece her kullanıcının kendi başlangıç ​​dizisi olur
bambam2174

5
Salak olmalıyım ama bu kodu nereye koyacağım?
Marcel

1
Muhtemelen ayarlaması en kolay olan ... AUTORUN=%USERPROFILE%\autorun.cmdbu yüzden şu anki kullanıcı için birini kullanacak ... cool hileci olsa da, eve döndüğümde deneyeceğim ... Son zamanlarda çoğunlukla bash kullanıyorum, ancak bu yardımcı olacaktır.
Tracker1

21

Bir kısayol oluşturabilir cmd.exeve /kbaşlangıçta belirli bir .bat dosyasını çalıştırmak için anahtara, bunun gibi bir şey ekleyebilirsiniz :

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

cmd-startup.bat Evinizde dir daha sonra aynı şekilde çalışır .bashrc


14

Mc3b'nin benim gibi pencereleri olmayanlar için verdiği cevabın değiştirilmesi.

C:\bashrc.cmd"Rc" dosyanızın kalmasını istediğiniz yerde veya içinde bir dosya oluşturun .

@echo off
set TEST_VAR=something

Arayarak regeditveya cmd olarak çalıştırarak çalıştırın.

Soldaki klasörlerde aşağıdakilere gidin:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Command ProcessorKlasörü sağ tıklayın ve tıklayın New -> String Value. Anahtarı giriniz AutoRun. Çift tıklayın AutoRunve bashrc konumunu girin C:\bashrc.cmd.

Test: Yeni bir cmd penceresi açın ve şunu yazın:

echo %TEST_VAR%

diyorsa somethingişe yarıyor.


5

Kabuğunuzun Powershell olduğunu varsayarsak, cmd değil , kabuğunuz için bir profil oluşturabilirsiniz . Bu tür profiller temel olarak, bir kabuk başlattığınızda yürütülen komut dosyalarıdır. Aynen gibi .bashrc. Bu gönderinin önemli bir kısmı aşağıdaki olabilir:

Powershell.exe ana bilgisayarının profillerinin konumları (Windows Vista'da) aşağıdaki gibidir:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Bu, bilgisayarın tüm kullanıcıları ve tüm mermiler içindir.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Bu, bilgisayarın tüm kullanıcıları içindir, ancak yalnızca Microsoft.PowerShell kabuğu içindir.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Bu sadece mevcut kullanıcı ve tüm mermiler içindir.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Bu yalnızca geçerli kullanıcı içindir ve yalnızca Microsoft.PowerShell kabuğu için.

Bu profiller varsayılan olarak oluşturulmaz. Sadece onları yaratırsanız var olurlar.

Windows 7, 8 ve 10 aynı görünüyor . Burada daha fazla bilgi bulabilirsiniz .


Not: Aşağıdakileri çalıştırmanız gerekebilir. Aksi takdirde, profiliniz yürütülmeyebilir.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Tüm kullanıcıların yapılandırmasını değiştirmek için aşağıdakileri yönetici olarak da çalıştırabilirsiniz.

Set-ExecutionPolicy RemoteSigned

3

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

Martin'in çözümünü (kısayol) açıklamak için, burada PowerShell eşdeğeri.

NOT : PowerShell betiğinin yürütülmesini etkin hale getirmeniz gerekir. Bu devre dışı bırakılmışsa, yükseltilmiş bir PowerShell çalıştırmanız ve yürütmeniz gerekir Set-ExecutionPolicy Unrestricted. Açıkçası, güvenlik nedeniyle bu önerilmez, ama işte.

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

ps-startup.ps1Kullanıcı dizininizde bir dosya bulundurun ve kısayolunuz açılışta PowerShell dosyası olarak çalışacaktır. Buradan itibaren bu kısayol ile PowerShell'i çalıştırın.


Bu, powershell profilleri yoluyla "daha iyi" bir şekilde sağlanabilir. Şu anki profilinizin yerini aşağıdaki adreste bulabilirsiniz: echo $ profile. Bu dosyaya satırlar ekleyebilirsiniz ve bunu gelecekteki oturumlar için yapmalıdır. Mevcut oturumlar için, profili şu şekilde yeniden yükleyebilirsiniz: & $ profile.
ashic

3

Temel olarak nc3b'nin yanıtı işe yarıyor, ancak Chocolatey'nin DevBox-Common paketi bunu kolaylaştıracak .

  1. Chocolatey'i henüz yüklemediyseniz yükleyin.
  2. DevBox-Common paketini choco install devbox-common -y
    • Bu komutu admin cmd.exe veya PowerShell içine yazmanız gerekir .
  3. Şimdi var .bashrc.batve .bashrc.include.aliases-common.batev yolunda. Her dosya eşleştirmesi .bashrc.include.*.bather komut kabuğu başlangıcında gerçekleştirilir.

3

Unix benzeri bir dünyadan gelen ve bu soruya inen bütün insanlar için (yani, herkes sorduğu için .bashrc): Windows konsol ömrünüzü radikal bir şekilde iyileştirin ve stok cmd.exeve varsayılan Windows terminalini kullanmayı bırakın !! Bu soruyu soran ya da bu sorunun cevaplarını arayan hiç kimse mevcut varsayılanı cmd.exeve terminali kullanmamalıdır!

Stoku kapatmak isteyen cmd.exe(geçerli olmayan bir sebep olmadığını biliyorum), orijinal soruya verilen basit bir cevap:

Kur ve kullan Cmder ve .bashrceşdeğeri olur %CMDER_ROOT%\config\user_profile.cmd, aynı zamanda kabuk / konsol deneyiminizi önemli ölçüde geliştirir.

Görüş, uzantı ve gevşek ilgili öneriler aşağıdadır ...


Cmder, ConEmu , Clink ve bir sürü ekstra ayar ve malzeme toplayan bir meta pakettir . ConEmu, ( varsayılan ConEmu ayarları Cmder tarafından sağlanan) belirtilene yönlendirmeyi sona erdiren başlangıç ​​komut dosyası özelliğini sağlayan terminal emülatörüdür %CMDER_ROOT%\config\user_profile.cmd.

Birlikte verilen Cmder paketini kullanmak yerine, açıkça ConEmu ve Clink'i bağımsız olarak kullanmak isteyebilirsiniz.

Bunu yapmak ve biraz daha eklemek için "pencerelerde çalışmalıyım, ne yapmalıyım" mutluluğu, aşağıda yapılması gerekenler iyi / fikirli. Bunlar kuşkusuz ilk soruya çok gevşek bir şekilde bağlı, ancak yakın zamanda yine bir Windows kurulumunu tekrar yaptım, şimdiden bunun çoğunu yazdım ve bu sorudaki hedef kitle doğru, işte burada ...

  1. Tüm kurulumlarınız için scoop.sh dosyasını kullanın .
    • scoop, windows için uygun bir paket yöneticisidir (apt / yum / pacman / emerge / whatever benzeri) ... tüm paketlerin kullanıcıya yüklendiği (yönetici ayrıcalıklarına gerek olmadan)
    • kesinlikle extraskonsolu olmayan şeyler için kepçeyi takın ( scoop bucket add extras)
    • Ayrıca chocolatey kullanabilirsiniz , ancak (benim görüşüme göre) sadece baskı altında ve istediğiniz şey bir kepçe kova içinde değilse
    • ya da sadece kendi kepçe tezahür ettirin
    • istediğim şey bir kepçe kovası olmadığında üzücü bir gün :(
    • kepçe aksine, chocolatey kurulumları için yönetici haklarına ihtiyaç duyar
  2. Clink'i kabuğun yerine kullancmd.exe
    • scoop install clink
    • GNU okuma satırı iyiliği (ctrl-r, ctrl-s cmd geçmişi gezinme gibi) ve daha fazlasını sağlar
    • Ayrıca emin olun clink autorun installçalıştırılamamasını yapmak için cmd.exeçalıştırılır
  3. ConEmu'yu terminal emülatörünüz olarak kullanın
    • scoop install conemu
    • Windows terminali korkunç (ancak üzerinde çalışıyorlar )
    • varsayılan terminal olarak yapılandırdığınızdan emin olun
      • "ConEmu'yu Zorla" ve "İşletim Sistemi başlangıcında kaydol" Settings::Integration->Default term
    • SO MANY diğer yapılandırma olanakları
      • boğulmuşsa, belki sadece Cmder ve makul varsayılanlarına ( scoop install cmder) uyun , ancak kişisel olarak Clink ve ConEmu ürününü ayrı olarak kurmanın / çalıştırmanın daha temiz olduğunu düşünüyorum.
  4. Gow'u yükleyin ( şu anda olduğu gibi )
    • scoop install gow
    • > 100 GNU araçları ( grep, vim, sed, ls, cat, curl, wc, less, find, vs, vs) bildiğiniz ve sevdiğiniz, doğrudan içinde cmd.exeyerli olmayan garabeti olmadan benzeri terminali
    • find->gfindve gibi ad-çarpışma adlarını izlemekawk->gawk
    • GW'yi yalnızca WSL, Cygwin, MSYS, git bash, vb. Bilgisayarlarla karıştırmak yerine temel Windows işleri için kullanıyorum.
    • Gow araçları, Windows'ta yerel kalırken, Cygwin ortamları, WSL dosya sistemi boşluğu (üzerinde de çalışılıyor ), gitbash pencereleri, vb.
  5. Uygun gördüğünüz diğer kullanışlı araçları takın (kepçe ile)
    • Ana ve ekstralar kovalar var kepçe birçok daha iyi araçlar ve uygulamalar (piton, openssh, ripgrep, fzf sysinternals, yüce metin, birleşmek, ccleaner, vs)
      • kesinlikle bir GNU / unix olayı olmasa da, sysinternals , Windows yerel araçlarının temel bir / klasik koleksiyonudur.
    • kullanmak scoop searchve scoop info(orada istediğiniz olanları bulmak için, ya da kova göz birkaç kova sadece ana değil, ve ekstralar)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.