โปรไฟล์ MinGW Bash


36

ฉันใช้MinGWบน Windows 7 ฉันมี.bashrcนามแฝงอยู่ด้วย ไฟล์อยู่ในโฟลเดอร์บ้านของฉันซึ่งเป็นตำแหน่งที่ MinGW เริ่มฉันดังนั้นจึงเชื่อว่าโฟลเดอร์นั้นเป็นโฟลเดอร์บ้านของฉัน มันไม่ได้โหลดเนื้อหาของโฟลเดอร์โดยอัตโนมัติ ฉันต้องเรียกใช้bashคำสั่งเพื่อให้นามแฝงทำงานได้

.bash_profileฉันได้พยายามเปลี่ยนชื่อมัน สิ่งนี้ทำให้สิ่งเลวร้ายลงเนื่องจากไม่โหลดอัตโนมัติและไม่โหลดเมื่อฉันทำงานbashด้วยตนเอง

ฉันจะแก้ไขปัญหานี้ได้อย่างไร


ขออภัยเส้นทางควรเป็น: C: \ MinGW \ msys \ 1.0 \ home \ Your_Username_Here \

คำตอบ:


47

bashอาจเริ่มต้นเป็นเชลล์ล็อกอินซึ่งในกรณีนี้มันจะไม่อ่าน.bashrcโดยอัตโนมัติ มันอ่าน.bash_profileแทน จากคู่มือ Bash :

ดังนั้นโดยทั่วไปแล้ว `~ / .bash_profile 'ของคุณจะมีบรรทัด

if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

หลัง (หรือก่อนหน้า) การกำหนดค่าเริ่มต้นเฉพาะสำหรับการเข้าสู่ระบบใด ๆ

ดังนั้นโดยสรุปให้สร้าง.bash_profileไฟล์ใน homedir ของคุณและเพิ่มบรรทัดที่ยกมาข้างต้น

หากbashการเรียกใช้ของคุณเป็นจริงshคุณจะต้องใช้.profileแทน.bash_profile(ดูส่วน "เรียกใช้ด้วยชื่อ sh" ของลิงก์ Bash ด้วยตนเองด้านบน)


1
ขอบคุณสำหรับความคิด แต่ใช้งานไม่ได้ อย่างที่ฉันพูดในคำถามการวางคำสั่ง alias ใน. bash_profile ไม่ทำงานเลยดังนั้นดูเหมือนว่าไม่ได้อ่าน
KurToMe

5
สิ่งนี้ทำให้ฉันมีความคิดที่จะทำสิ่งที่คุณพูดยกเว้นใส่ไว้ในไฟล์. profile แทน ด้วยเหตุผลบางอย่างที่ใช้งานได้ (อาจ MinGW ไม่ได้ใช้ Bash โดยค่าเริ่มต้นหรือสิ่งที่บ้า) หากคุณเพิ่มตัวเลือกนี้ในคำตอบของคุณฉันจะทำเครื่องหมายว่ายอมรับแล้ว
KurToMe

1
อามีการพิมพ์ผิดในคำถามของฉันว่าฉันคงที่ผมเรียกมันว่า.bash_rcในคำถาม .bash_profileแต่ผมหมายถึง
KurToMe

ค่อนข้างสั้นกว่า:[ -f ~/.bashrc ] && . ~/.bashrc
Rich Homolka

1
@KurToMe ฉันแก้ไขเพื่อให้ครอบคลุมสถานการณ์ของคุณ
jjlin

8

ฉันใช้ Windows XP และมีปัญหาเดียวกัน ผมพบว่าHOWTO สร้าง MSYS สร้างสิ่งแวดล้อม

นี่คือสายสำคัญ:

เพื่อช่วยระบุรันไทม์บิวด์และไดเร็กทอรีการทำงานปัจจุบันสามารถเพิ่มสิ่งต่อไปนี้ใน~/.profileไฟล์

ในเปลือก MinGW ฉันสร้าง.profile:

cd ~
touch .profile

ฉันใช้Notepad ++เพื่อแก้ไขเป็นไฟล์ข้อความรูปแบบ Unix ที่ตั้งชื่อ.profileและบันทึกไว้ในโฮมไดเร็กตอรี่ของฉันC:\MinGW\msys\1.0\home\Your_Username_Here\.profile

จากนั้นฉันเพิ่มนามแฝงของฉันและบันทึก:

alias n='nano -w'

จากนั้นฉันเปิดใช้งานช็อตคัตMinGW Shell ขึ้นจากเมนูเริ่มของฉันและเริ่มทำงานเลย! นาโนโดยไม่มีการตัดข้อความ

ฉันหวังว่านี่จะช่วยคุณได้


สิ่งที่คุณพูดไม่ได้หลอกลวง ... ~ หมายถึงโฮมไดเร็กตอรี่ของผู้ใช้ ... จากนั้นระบุของคุณ c: \ MinGW \ msys \ 1.0 \ home ... ที่ไม่สมเหตุสมผลเลย tilde นั้นเป็นข้อมูลอ้างอิง ผู้ใช้กลับบ้าน ... บน Windows ที่% userprofile% ...
Eddie B

2

ฉันไม่พบ. bash_profile สำหรับฉัน (มันไม่ได้ถูกอ่าน) ดังนั้นฉันจึงใช้วิธี. profile และวางไว้ข้างใน:

exec bash

สิ่งนี้แทนที่เชลล์ปัจจุบันของฉันด้วยการเริ่มต้นใหม่ของ bash ซึ่งอ่าน. bashrc ของฉัน

ฉันคิดว่าการใช้. profile แนะนำให้ใช้ sh ในการเข้าสู่ระบบไม่ใช่การทุบตี


1

สำหรับฉันสำหรับ MINGW ติดตั้งกับ GIT ทำงาน: .bash_profile ใส่ C:\Users\[user_name]

นี่เป็นไดเรกทอรีที่ ~ ชี้ไปที่เชลล์ (pwd)

เป็นแบบนั้น :)


0

ตามแนวของ @Koshmarr แต่ต่างกันเล็กน้อย ฉันmingw64ดาวน์โหลดจากgit-scm.comจะโหลด/c/Users/[user-name]เมื่อเริ่มต้น แต่ไดรฟ์ที่บ้านของฉัน (พบได้โดยการcd ~) /h/อยู่ใน ฉันใส่.bashrcและ.bash_profileเข้าไปในของฉัน~ไดรฟ์และทำงานทุกอย่าง

ใน.bash_profile:

    source ~/.bashrc;

แค่คิดว่า MINGW พิจารณาที่บ้านแล้วใส่.bash_profileตรงนั้น


0

วิธีการตั้งค่าไฟล์การเริ่มต้น MSYS Bash

ในระบบปฏิบัติการ Windows วิธีที่คุณชี้ไปที่ไฟล์กำหนดค่าเริ่มต้นที่ใช้โดย Bash (เช่นโปรไฟล์ bash_profile, bashrc) นั้นแตกต่างจากระบบปฏิบัติการ Linux

ความแตกต่างระหว่าง Windows และ Linux OS คือโครงสร้างระบบไฟล์ของพวกเขาซึ่งนำไปสู่ความแตกต่างในตำแหน่งไฟล์ Bash และแบบแผนการตั้งชื่อไฟล์

วิธีตั้งค่าไฟล์เริ่มต้น MSash Bash (เช่นโปรไฟล์, bash_profile และ bashrc)

1) ใน WINOS เปิดโฟลเดอร์ 'etc' ซึ่งอยู่ที่นี่ 'C: \ msys \ 1.0 \ etc \' บันทึก. คุณควรเห็นไฟล์ 'profile' ข้างใน 'etc' folder

2) บันทึกไฟล์ที่ไม่มีนามสกุลไฟล์ (เช่นเมื่อคุณบันทึกให้ตั้งค่าบันทึกเป็นประเภท 'ไฟล์ทั้งหมด') ด้วยชื่อไฟล์ '.bash_profile' เป็น 'C: \ msys \ 1.0 \ home \ USERNAME' บันทึก. มีจุดเป็นคำนำหน้าสำหรับชื่อไฟล์ (เช่น '.bash_profile') ตามที่คุณคาดหวังในการตั้งค่า Linux OS Bash

2) บันทึกไฟล์ที่ไม่มีนามสกุลไฟล์ (เช่นเมื่อคุณบันทึกให้ตั้งค่าบันทึกเป็นประเภท 'ไฟล์ทั้งหมด') ด้วยชื่อไฟล์ '.bashrc' เป็น 'C: \ msys \ 1.0 \ home \ USERNAME' บันทึก. มีจุดเป็นคำนำหน้าสำหรับชื่อไฟล์ (เช่น '.bash_profile') ตามที่คุณคาดหวังในการตั้งค่า Linux OS Bash

4) เปิดไฟล์ 'profile' ในโปรแกรมแก้ไขข้อความ (ข้อความประเสริฐ x ดี) หมายเหตุ: ตำแหน่งไฟล์ของ 'profile' คือ 'C: \ msys \ 1.0 \ etc \'

ภายในไฟล์ 'profile' ให้เลื่อนไปที่บรรทัดข้อความที่ท้ายไฟล์ (เช่นเลื่อนไปที่ด้านล่าง) คุณจะเห็นบรรทัดการทดสอบที่ระบุว่า Bash เพื่อเปลี่ยนไดเรกทอรีปัจจุบันเป็น HOME (ใน MSYS, HOME ถูกกำหนดไว้ใน ไฟล์ 'โปรไฟล์')

CD $HOME

5) ก่อนที่บรรทัดจะมีข้อความ 'CD $ HOME' คัดลอกโค้ดต่อไปนี้ - การเพิ่มสคริปต์นี้ภายใน 'profile' จะบอกให้ MSYS bash ทำการรัน bash_profile # ---------------- -------------------------------------------------- --------- #modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
echo '[i] INFO loading personal environment variables and startup   programs.... '
BASHRC="$HOME/.bash_profile"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END
#---------------------------------------------------------------------------

6) เปิดไฟล์ 'bash_profile' ในเท็กซ์เอดิเตอร์ ( Sublime Text x ใช้ได้) และท้ายไฟล์ (ที่ด้านล่างของไฟล์)

7) คัดลอกรหัสต่อไปนี้เมื่อสิ้นสุดไฟล์ - การเพิ่มสคริปต์นี้ภายใน '.bash_profile' จะบอกให้ Bash เรียกใช้ '.bashrc'

#---------------------------------------------------------------------------
#modified BEGIN

# Note. -f is a flag in the file-test operator set of bash commands
#       that test whether file exists
BASHRC="$HOME/.bashrc"
if [ -f "$BASHRC" ]; then
  source "$BASHRC"
fi

#modified END

# ------------------------------------------------- --------------------------

8) ตกลงตอนนี้เรามาเขียนสคริปต์เล็ก ๆ ใน '.bashrc' เพื่อดูว่า 'โปรไฟล์' กำลังเรียก 'bash_profile' และถ้า 'bash_profile' กำลังเรียก '.bashrc'

8.1) นึกถึงชื่อคำสั่งที่คุณต้องการสร้าง ลองใช้ 't' เพื่อทดสอบค่าเฉลี่ย

8.2) เปิด Bash terminal และพิมพ์ 't' Bash ควรตอบ 't: ไม่พบคำสั่ง' - ถ้าไม่ได้บอกว่า 't: ไม่พบคำสั่ง' ให้ทำซ้ำ 8.1 และ 8.2 จนกว่าชื่อคำสั่งของคุณจะระบุว่า 'ไม่พบคำสั่ง' คุณไม่ต้องการนามแฝงชื่อคำสั่งที่ได้รับมอบหมายให้ทุบตี BAD! ดังนั้นจะต้องเป็น 'ไม่พบคำสั่ง'

8.3) ตกลง 't' ให้ 't: ไม่พบคำสั่ง' ตอนนี้ลองเขียนสคริปต์เป็น '.bashrc'

8.4) ใน '.bashrc' เขียน

# Use double quotes or bash will not write it
alias t="echo passed test"

8.5) บันทึกไฟล์ '.bashrc' ใน 'C: \ msys \ 1.0 \ home \ USERNAME'

9) เกือบตรงนั้น ตอนนี้รีสตาร์ทเทอร์มินัล Bash และอย่าลืมปิดเทอร์มินัล Bash ที่เปิดไว้ก่อนหน้านี้

10) พิมพ์เทอร์มินัล 't' ควรตอบกลับ 'ผ่านการทดสอบ' หากไม่เป็นเช่นนั้นให้ตรวจสอบรหัสนั้นอย่างถูกต้อง (เริ่มโดยตรวจสอบราคา)

หมายเหตุบางประการ 1) 'ชื่อไฟล์ต้นฉบับ' เหมือนกับ ' ชื่อไฟล์'

2) "" อัญประกาศคู่อนุญาตให้ตัวแปรถูกแทนที่ด้วยคำพูดเดี่ยวของเนื้อหาไม่ได้

3) $ HOME คือ / home / USERNAME เหมือนกับ ~ is / home / USERNAME

4) ฟังก์ชั่นที่ต้องการมักจะมากกว่านามแฝง2

สำหรับรายละเอียดเพิ่มเติมดูอ้างอิง BASH

ฉันยังใหม่กับ Bash ดังนั้นจึงไม่มีการรับประกันว่าฉันจะทำสิ่งนี้ให้ดีที่สุด

โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.