Apakah ada jendela yang setara dengan file .bashrc di linux?

65

Baru saja menemukan doskey emacs = emacs -nw $ *, tetapi tanpa sesuatu seperti .bashrc, saya harus mengetikkan itu setiap kali saya memulai sebuah shell, bukan?

strupo
sumber
1
Pertanyaan ini tidak identik, tetapi jawabannya mencakup skenario Anda.
Marcelo Cantos

Jawaban:

69

Ini pertanyaan yang sangat bagus. Saya menemukan ini . Saya kira Anda bisa membuat skrip cmd dan menjalankannya saat memulai cmd: -?

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

EDIT: Saya baru saja mencobanya. Saya miliki AutoRun=C:\mini\bashrc.cmddan bashrc.cmd adalah

@echo off
set TEST_VAR=something

ketika saya mulai cmd dan masukkan echo %TEST_VAR%katanya something. Jadi itu bekerja :)

nc3b
sumber
10
Potongan kecil saya gunakan: doskey∙♦=exit(di mana adalah [char]4). Memungkinkan Anda untuk menutup shell dengan Ctrl + D, Enter.
Joey
Ini pekerjaan bagus, pekerjaan bagus nc3b.
Robert S Ciaccio
2
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor dengan AutoRun =% HOMEPATH% \ bashrc.bat Jadi setiap pengguna akan memiliki urutan startupnya sendiri
bambam2174
5
Saya harus menjadi idiot tetapi di mana saya meletakkan kode ini?
Marcel
1
mungkin paling mudah diatur ke ... AUTORUN=%USERPROFILE%\autorun.cmdsehingga itu akan menggunakan satu untuk pengguna saat ini ... trik keren, akan mencobanya ketika saya sampai di rumah ... Saya kebanyakan menggunakan bash belakangan ini, tetapi ini akan membantu.
Tracker1
21

Anda dapat membuat pintasan ke cmd.exedan menambahkan /ksakelar untuk menjalankan file .bat tertentu saat startup, seperti ini:

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

cmd-startup.bat di dir rumah Anda kemudian akan bekerja sama seperti .bashrc

Martin
sumber
14

Modifikasi jawaban mc3b untuk mereka yang windows noobs seperti saya.

Buat file di C:\bashrc.cmdatau di mana pun Anda ingin file "rc" Anda berada.

@echo off
set TEST_VAR=something

Jalankan regeditdengan mencarinya atau menjalankannya dalam cmd.

Di folder di sebelah kiri arahkan ke:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

Klik kanan pada Command Processorfolder dan klik New -> String Value. Masukkan kunci AutoRun. Klik dua kali AutoRundan masukkan lokasi bashrc C:\bashrc.cmd.

Tes: Buka jendela cmd baru dan ketik:

echo %TEST_VAR%

jika dikatakan something, itu berhasil.

Humdinger
sumber
5

Dengan asumsi shell Anda adalah Powershell, bukan cmd, Anda dapat membuat profil untuk shell Anda. Profil tersebut pada dasarnya adalah skrip yang dijalankan ketika Anda memulai shell. Sama seperti .bashrc. Bagian penting dari posting ini mungkin sebagai berikut:

Lokasi (pada Windows Vista) dari profil untuk host powershell.exe adalah sebagai berikut:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    Ini untuk semua pengguna komputer dan untuk semua shell.
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    Ini untuk semua pengguna komputer, tetapi ini hanya untuk shell Microsoft.PowerShell.
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    Ini hanya untuk pengguna saat ini dan semua shell.
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    Ini hanya untuk pengguna saat ini dan hanya untuk shell Microsoft.PowerShell.

Profil ini tidak dibuat secara default. Mereka ada hanya jika Anda membuatnya.

Tampaknya sama di Windows 7, 8 dan 10. Anda juga dapat menemukan informasi lebih lanjut di sini .


Catatan: Anda mungkin perlu menjalankan yang berikut ini. Jika tidak, profil Anda tidak dapat dieksekusi.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Anda juga dapat menjalankan yang berikut ini sebagai administrator untuk mengubah konfigurasi untuk semua pengguna.

Set-ExecutionPolicy RemoteSigned
JojOatXGME
sumber
3

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

Untuk menguraikan solusi Martin (pintasan), inilah yang setara dengan PowerShell.

CATATAN : Anda harus mengaktifkan eksekusi skrip PowerShell. Jika ini dinonaktifkan, Anda harus menjalankan PowerShell yang ditinggikan dan mengeksekusi Set-ExecutionPolicy Unrestricted. Jelas, ini tidak direkomendasikan untuk alasan keamanan, tapi begitulah.

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

Miliki nama file ps-startup.ps1di direktori pengguna Anda dan pintasan Anda akan menjalankannya sebagai file PowerShell saat startup. Jalankan PowerShell dengan pintasan ini mulai dari sini.

lytedev
sumber
Ini dapat dicapai dengan cara yang "lebih baik" melalui profil powershell. Anda dapat menemukan lokasi profil Anda saat ini dengan: echo $ profile. Anda dapat menambahkan baris ke file itu, dan itu harus dilakukan untuk sesi mendatang. Untuk sesi yang ada, Anda dapat memuat ulang profil dengan: & $ profil.
ashic
3

Pada dasarnya jawaban nc3b bekerja, tetapi paket DevBox-Common Chocolate akan membuatnya lebih mudah .

  1. Jika Anda belum menginstal Chocolatey, pasanglah.
  2. Instal paket DevBox-Common oleh choco install devbox-common -y
    • Anda harus mengetik perintah ini di dalam cmd.exe administratif atau PowerShell.
  3. Sekarang Anda memiliki .bashrc.batdan .bashrc.include.aliases-common.batdi jalur rumah Anda. Setiap file yang cocok .bashrc.include.*.batakan dieksekusi pada setiap shell perintah mulai.
hakatashi
sumber
3

Kepada semua orang yang datang dari dunia seperti unix dan mendarat di pertanyaan ini (yaitu semua orang, karena bertanya tentang .bashrc): Secara radikal meningkatkan kehidupan konsol Windows Anda dan berhenti menggunakan stok cmd.exedan terminal Windows default !! Tidak ada yang menanyakan pertanyaan ini, atau melihat jawaban untuk pertanyaan ini, harus menggunakan cmd.exeterminal dan default saat ini !

Jika mau mematikan stok cmd.exe(saya tahu tidak ada alasan sah untuk tidak), satu jawaban sederhana untuk pertanyaan awal adalah:

Instal dan gunakan Cmder dan yang .bashrcsetara Anda menjadi %CMDER_ROOT%\config\user_profile.cmd, sementara juga secara signifikan meningkatkan pengalaman shell / konsol Anda.

Pendapat, ekstensi, dan rekomendasi terkait longgar mengikuti ...


Cmder adalah metapackage yang mengemas ConEmu , Clink , dan setumpuk pengaturan dan barang tambahan. ConEmu adalah emulator terminal yang menyediakan kapabilitas skrip startup, yang (melalui pengaturan ConEmu default yang disediakan oleh Cmder ) berakhir dengan routing ke yang ditunjukkan %CMDER_ROOT%\config\user_profile.cmd.

Anda mungkin ingin secara eksplisit menggunakan ConEmu dan Clink secara independen, daripada menggunakan paket Cmder yang dibundel.

Untuk melakukan itu, dan menambahkan beberapa "harus bekerja pada windows, apa yang harus saya lakukan", di bawah ini adalah beberapa hal yang baik / pendapat untuk dilakukan. Ini memang SANGAT longgar terkait dengan pertanyaan awal, tapi saya baru-baru ini telah melalui pengaturan Windows lagi, telah mengetik sebagian besar ini, dan target audiens dalam pertanyaan ini benar, jadi di sini Anda pergi ...

  1. Gunakan scoop.sh untuk semua instal Anda
    • scoop adalah manajer paket yang hebat untuk windows (mirip dengan apt / yum / pacman / emerge / apa pun) ... di mana semua paket diinstal ke pengguna (tanpa memerlukan hak istimewa admin)
    • pasti menginstal extrasbucket untuk banyak hal non-konsol ( scoop bucket add extras)
    • Anda juga dapat menggunakan cokelat , tetapi (menurut saya) hanya jika di bawah paksaan dan hal yang Anda inginkan tidak dalam ember sendok
    • atau buat saja sendok Anda sendiri
    • ini adalah hari yang menyedihkan ketika hal yang saya inginkan tidak ada dalam ember :(
    • tidak seperti sendok, coklat membutuhkan hak admin untuk menginstalnya
  2. Gunakan Clink sebagai shell Andacmd.exe
    • scoop install clink
    • memberi Anda kebaikan readline GNU (seperti ctrl-r, navigasi riwayat ctrl-s cmd) dan banyak lagi
    • pastikan juga clink autorun installuntuk membuatnya berjalan saat cmd.exedijalankan
  3. Gunakan ConEmu sebagai emulator terminal Anda
    • scoop install conemu
    • terminal Windows mengerikan (tetapi mereka sedang mengerjakannya )
    • pastikan untuk mengkonfigurasinya sebagai terminal default
      • "Force ConEmu" dan "Daftar saat startup OS" di Settings::Integration->Default term
    • BEGITU kemungkinan konfigurasi lainnya
      • jika kewalahan, mungkin hanya tetap dengan Cmder dan default yang wajar ( scoop install cmder), tapi saya pribadi pikir itu lebih bersih untuk menginstal / menjalankan Clink dan ConEmu secara terpisah.
  4. Instal Gow (seperti, sekarang )
    • scoop install gow
    • > 100 alat GNU ( grep, vim, sed, ls, cat, curl, wc, less, find, dll, dll) yang Anda kenal dan cinta, langsung di Anda cmd.exeterminal -seperti tanpa keanehan non-pribumi
    • perhatikan nama-nama tabrakan seperti find->gfinddanawk->gawk
    • Saya menggunakan Gow cukup banyak secara eksklusif untuk pekerjaan Windows dasar daripada mucking dengan WSL, Cygwin, MSYS, git bash, dll.
    • Gow tools sedekat mungkin dengan GNU / * nix-on-Windows seperti yang saya alami sejauh ini tetap asli dari Windows, tanpa sakit kepala lingkungan Cygwin, nastiness sistem file WSL (yang juga sedang dikerjakan ), gitbash windows, dll
  5. Instal alat praktis lainnya sesuai keinginan Anda (dengan sendok)
    • yang utama dan tambahan sendok ember memiliki banyak alat yang lebih baik dan aplikasi (python, openssh, ripgrep, fzf, Sysinternals, luhur-teks, berbaur, CCleaner, dll)
      • walaupun jelas bukan GNU / unix, sysinternals adalah koleksi esensial / klasik dari alat Windows asli.
    • gunakan scoop searchdan scoop infountuk menemukan yang Anda inginkan, atau telusuri ember (ada beberapa ember , bukan hanya utama dan ekstra)
Russ
sumber