มี windows เทียบเท่ากับไฟล์. bashrc ใน linux หรือไม่


65

เพิ่งค้นพบ doskey emacs = emacs -nw $ * แต่ไม่มีอะไรอย่าง. bashrc ฉันจะต้องพิมพ์มันทุกครั้งที่ฉันเริ่มเชลล์ใช่มั้ย


1
คำถามนี้ไม่เหมือนกัน แต่คำตอบครอบคลุมสถานการณ์ของคุณ
Marcelo Cantos

คำตอบ:


69

นี่เป็นคำถามที่ดีมาก ฉันพบนี้ ฉันคิดว่าคุณสามารถสร้างสคริปต์ cmd และให้มันทำงานเมื่อเริ่มต้น cmd: -

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

แก้ไข: ฉันเพิ่งลอง ฉันมีAutoRun=C:\mini\bashrc.cmdและ bashrc.cmd คือ

@echo off
set TEST_VAR=something

เมื่อฉันเริ่ม cmd และป้อนมันบอกว่าecho %TEST_VAR% somethingดังนั้นจึงใช้งานได้ :)


10
ข้อมูลโค้ดขนาดเล็กผมใช้: doskey∙♦=exit(ที่เป็น[char]4) ให้คุณปิดเชลล์ด้วย Ctrl + D, Enter
Joey

มันใช้งานได้ดี, ใช้งานได้ดี nc3b
Robert S Ciaccio

2
ตัวประมวลผล HKEY_CURRENT_USER \ Software \ Microsoft \ Command พร้อม AutoRun =% HOMEPATH% \ bashrc.bat ดังนั้นผู้ใช้ทุกคนจะมีลำดับการเริ่มต้นของตนเอง
bambam2174

5
ฉันต้องเป็นคนงี่เง่า แต่ฉันจะวางรหัสนี้ที่ไหน
Marcel

1
อาจจะง่ายที่สุดในการตั้งค่าเป็น ... AUTORUN=%USERPROFILE%\autorun.cmdเพื่อที่จะใช้หนึ่งสำหรับผู้ใช้ปัจจุบัน ... เคล็ดลับเด็ด ๆ แต่จะลองเมื่อฉันกลับถึงบ้าน ... ฉันใช้ทุบตีส่วนใหญ่เมื่อเร็ว ๆ นี้ แต่สิ่งนี้จะช่วย
Tracker1

21

คุณสามารถสร้างทางลัดไปยังcmd.exeและเพิ่ม/kสวิตช์เพื่อเรียกใช้ไฟล์. bat บางตัวเมื่อเริ่มต้นซึ่งมีลักษณะดังนี้:

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

cmd-startup.bat ในบ้านของคุณคุณจะทำงานเหมือนกัน .bashrc


14

การดัดแปลงคำตอบของ mc3b สำหรับผู้ที่เป็น windows noobs เหมือนตัวฉัน

ทำไฟล์ในC:\bashrc.cmdหรือที่ใดก็ตามที่คุณต้องการให้ไฟล์ "rc" ของคุณอยู่

@echo off
set TEST_VAR=something

เรียกใช้regeditโดยค้นหาหรือเรียกใช้เป็น cmd

ในโฟลเดอร์ทางด้านซ้ายไปที่:

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

คลิกขวาที่โฟลเดอร์และคลิกCommand Processor ใส่กุญแจNew -> String Value AutoRunดับเบิลคลิกบนและใส่สถานที่AutoRun bashrcC:\bashrc.cmd

ทดสอบ: เปิดหน้าต่าง cmd ใหม่และพิมพ์:

echo %TEST_VAR%

ถ้ามันบอกว่าsomethingมันใช้งานได้


5

สมมติว่าเชลล์ของคุณคือ Powershell ไม่ใช่ cmd คุณสามารถสร้างโปรไฟล์สำหรับเชลล์ได้ โปรไฟล์ดังกล่าวโดยทั่วไปเป็นสคริปต์ที่จะดำเนินการเมื่อคุณเริ่มเปลือก เหมือน.bashrcกันนะ ส่วนสำคัญของโพสต์นี้อาจเป็นดังนี้:

ตำแหน่ง (บน Windows Vista) ของส่วนกำหนดค่าสำหรับโฮสต์ powershell.exe มีดังนี้:

  • %windir%\system32\Windows­PowerShell\v1.0\profile.ps1
    นี่คือสำหรับผู้ใช้คอมพิวเตอร์และเปลือกหอยทั้งหมด
  • %windir%\system32\Windows­PowerShell\v1.0\Microsoft.Power­Shell_profile.ps1
    นี่สำหรับผู้ใช้คอมพิวเตอร์ทุกคน แต่สำหรับเชลล์ Microsoft.PowerShell เท่านั้น
  • %UserProfile%\Documents\Windows­PowerShell\profile.ps1
    นี่สำหรับผู้ใช้ปัจจุบันเท่านั้นและเชลล์ทั้งหมด
  • %UserProfile%\Documents\WindowsPowerShell\Micro­soft.PowerShell_profile.ps1
    นี่สำหรับผู้ใช้ปัจจุบันเท่านั้นและสำหรับเชลล์ Microsoft.PowerShell เท่านั้น

โปรไฟล์เหล่านี้ไม่ได้ถูกสร้างขึ้นตามค่าเริ่มต้น มีอยู่ถ้าคุณสร้างพวกเขาเท่านั้น

มันน่าจะเป็นแบบเดียวกันบน Windows 7, 8 และ 10 นอกจากนี้คุณยังสามารถค้นหาข้อมูลเพิ่มเติมได้ที่นี่


หมายเหตุ:คุณอาจต้องเรียกใช้สิ่งต่อไปนี้ มิเช่นนั้นโปรไฟล์ของคุณอาจไม่ถูกเรียกใช้งาน

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

คุณยังสามารถเรียกใช้สิ่งต่อไปนี้ในฐานะผู้ดูแลระบบเพื่อเปลี่ยนการกำหนดค่าสำหรับผู้ใช้ทั้งหมด

Set-ExecutionPolicy RemoteSigned

3

แก้ไข : พบสิ่งนี้: http://msdn.microsoft.com/en-us/library/bb613488(VS.85).aspx

หากต้องการอธิบายโซลูชันของ Martin (ทางลัด) นี่คือ PowerShell ที่เทียบเท่า

หมายเหตุ : คุณจะต้องเปิดใช้งานการเรียกใช้สคริปต์ PowerShell ถ้านี่เป็นคนพิการ, คุณจะต้องเรียกใช้ PowerShell Set-ExecutionPolicy Unrestrictedสูงและดำเนินการ เห็นได้ชัดว่านี่ไม่แนะนำสำหรับเหตุผลด้านความปลอดภัย แต่ใช่แล้ว

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

มีไฟล์ชื่อps-startup.ps1ในไดเรกทอรีผู้ใช้ของคุณและทางลัดของคุณจะดำเนินการเป็นไฟล์ PowerShell เมื่อเริ่มต้น เพียงเรียกใช้ PowerShell ด้วยทางลัดนี้จากที่นี่ออก


ซึ่งสามารถทำได้ในรูปแบบ "ดีกว่า" ผ่านโปรไฟล์ PowerShell คุณสามารถค้นหาตำแหน่งของโปรไฟล์ปัจจุบันของคุณโดย: echo $ profile คุณสามารถเพิ่มบรรทัดลงในไฟล์นั้นและควรทำสำหรับเซสชันในอนาคต สำหรับเซสชันที่มีอยู่คุณสามารถโหลดโปรไฟล์อีกครั้งด้วย: & $ โปรไฟล์
Ashic

3

โดยทั่วไปคำตอบ nc3b ทำงาน แต่ chocolatey ของDevBox สามัญแพ็กเกจจะทำให้มันง่ายขึ้น

  1. หากคุณยังไม่ได้ติดตั้ง Chocolatey ให้ติดตั้ง
  2. ติดตั้งแพ็คเกจ DevBox-Common โดย choco install devbox-common -y
    • คุณควรพิมพ์คำสั่งนี้ในส่วนของผู้ดูแลระบบ cmd.exe หรือ PowerShell
  3. ตอนนี้คุณมี.bashrc.batและ.bashrc.include.aliases-common.batในเส้นทางบ้านของคุณ ทุกการจับคู่ไฟล์.bashrc.include.*.batจะถูกดำเนินการในทุก ๆ เชลล์คำสั่ง

3

สำหรับทุกคนที่มาจากโลกที่เหมือนยูนิกซ์และเชื่อมโยงไปถึงคำถามนี้ (ทุกคนเพราะมันถามถึง.bashrc): ปรับปรุงชีวิตคอนโซลของ Windows ของคุณอย่างรุนแรงและหยุดใช้สต็อกcmd.exeและเทอร์มินัล Windows เริ่มต้น !! ไม่มีใครถามคำถามนี้หรือดูคำตอบสำหรับคำถามนี้ควรใช้ค่าเริ่มต้นcmd.exeและเทอร์มินัลปัจจุบัน!

หากเต็มใจที่จะปิดสต็อกcmd.exe(ฉันรู้ว่าไม่มีเหตุผลที่ถูกต้องไม่ให้) คำตอบง่ายๆสำหรับคำถามเดิมคือ:

ติดตั้งและใช้Cmderของคุณและ.bashrcเทียบเท่ากลายเป็น %CMDER_ROOT%\config\user_profile.cmdในขณะที่ยังมีนัยสำคัญปรับปรุงเปลือกประสบการณ์ / คอนโซลของคุณ

ความคิดเห็นส่วนขยายและคำแนะนำที่เกี่ยวข้องอย่างหลวม ๆ ปฏิบัติตาม ...


Cmder เป็น metapackage ที่รวมค่าConEmu , Clinkและการตั้งค่าและสิ่งของพิเศษ ConEmu เป็นจำลอง terminal ที่ให้ความสามารถในสคริปต์เริ่มต้นที่ (ผ่านการตั้งค่าเริ่มต้น ConEmu Cmder ให้ ) %CMDER_ROOT%\config\user_profile.cmdจบลงด้วยการกำหนดเส้นทางที่จะชี้ให้เห็น

คุณอาจต้องการใช้ ConEmu และ Clink อย่างชัดเจนแทนที่จะใช้แพ็คเกจ Cmder ที่ให้มา

ในการทำเช่นนั้นและเพื่อเพิ่มเติมใน "ต้องทำงานบน windows สิ่งที่ฉันควรทำ" ความสุขด้านล่างเป็นสิ่งที่ดี / ความเห็นที่จะทำ สิ่งเหล่านี้เป็นที่ยอมรับกันอย่างมากที่เกี่ยวข้องกับคำถามเริ่มแรก แต่ฉันเพิ่งผ่านการติดตั้ง Windows อีกครั้งได้พิมพ์สิ่งเหล่านี้ส่วนใหญ่แล้วและกลุ่มเป้าหมายในคำถามนี้ถูกต้องแล้วคุณจะไป ...

  1. ใช้scoop.shสำหรับการติดตั้งทั้งหมดของคุณ
    • scoop เป็นตัวจัดการแพ็คเกจที่ยอดเยี่ยมสำหรับ windows (คล้ายกับ apt / yum / pacman / emerge / what) ... ที่ทุกแพ็คเกจติดตั้งให้กับผู้ใช้ (โดยไม่ต้องใช้สิทธิ์ของผู้ดูแลระบบ)
    • ติดตั้งที่extrasฝากข้อมูลสำหรับสิ่งที่ไม่ใช่คอนโซลอย่างแน่นอน ( scoop bucket add extras)
    • คุณยังสามารถใช้ช็อคโกแลตได้ แต่ (ความเห็นของฉัน) ก็ต่อเมื่ออยู่ภายใต้การข่มขู่และสิ่งที่คุณต้องการไม่ได้อยู่ในถังตัก
    • หรือเพียงแค่สร้างสกู๊ปของคุณเอง
    • มันเป็นวันที่เศร้าเมื่อสิ่งที่ฉันต้องการไม่ได้อยู่ในถังตัก :(
    • ซึ่งแตกต่างจาก scoop, chocolatey ต้องการสิทธิ์ผู้ดูแลระบบสำหรับการติดตั้ง
  2. ใช้เสียงกริ๊กเป็นเปลือกของคุณแทนcmd.exe
    • scoop install clink
    • ให้ความดี readline ของ GNU (เช่น ctrl-r, การนำทางประวัติ ctrl-s cmd) และอื่น ๆ
    • ต้องแน่ใจว่าได้clink autorun installทำให้มันทำงานเมื่อcmd.exeมีการเรียกใช้
  3. ใช้ConEmuเป็นเทอร์มินัลอีมูเลเตอร์ของคุณ
    • scoop install conemu
    • เทอร์มินัล Windows นั้นแย่มาก (แต่พวกเขากำลังทำงานอยู่ )
    • ต้องแน่ใจว่าตั้งค่าเป็นเทอร์มินัลเริ่มต้น
      • "Force ConEmu" และ "ลงทะเบียนเมื่อเริ่มต้นระบบปฏิบัติการ" ใน Settings::Integration->Default term
    • เป็นไปได้การกำหนดค่าอื่น ๆ อีกมากมาย
      • ถ้าจมบางทีก็ติดกับCmderและค่าเริ่มต้นที่สมเหตุสมผล ( scoop install cmder) แต่ส่วนตัวแล้วฉันคิดว่ามันสะอาดกว่าที่จะติดตั้ง / รัน Clink และ ConEmu แยกกัน
  4. ติดตั้งGow (เช่นตอนนี้ )
    • scoop install gow
    • > 100 เครื่องมือ GNU ( grep, vim, sed, ls, cat, curl, wc, less, findฯลฯ ฯลฯ ) คุณรู้และความรักของคุณโดยตรงในcmd.exeขั้วเหมือนโดยไม่ต้องแปลกประหลาดที่ไม่ใช่เจ้าของภาษา
    • ดูการเปลี่ยนชื่อการชนชื่อเช่นfind->gfindและawk->gawk
    • ฉันใช้ Gow สวยมากเป็นพิเศษสำหรับงาน Windows ขั้นพื้นฐานแทนการล้อเล่นกับ WSL, Cygwin, MSYS, gash bash, ฯลฯ
    • เครื่องมือที่ใช้งานได้ดีใกล้เคียงกับ GNU / * nix-on-Windows อย่างที่ฉันเคยสัมผัสมาแล้วในขณะที่ยังคงใช้ Windows อยู่โดยไม่ต้องปวดหัวกับสภาพแวดล้อม Cygwin, ระบบไฟล์ของ WSL (ซึ่งกำลังทำงานอยู่ ), หน้าต่าง gitbash เป็นต้น
  5. ติดตั้งเครื่องมือที่มีประโยชน์อื่น ๆ ตามที่เห็นสมควร (พร้อมตัก)
    • หลักและแถมตักบุ้งกี๋มีหลายเครื่องมือที่ดีขึ้นและการใช้งาน (หลาม openssh, ripgrep, fzf, sysinternals ประเสริฐ-ข้อความ meld, CCleaner, ฯลฯ )
      • แม้ว่าจะไม่ใช่ GNU / unix แต่sysinternalsเป็นชุดสำคัญของ Windows native tools
    • ใช้scoop searchและscoop infoเพื่อค้นหาสิ่งที่คุณต้องการหรือเรียกดูถัง (มีหลายถังไม่ใช่แค่หลักและพิเศษ)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.