สร้างทางลัดไปยังไดเรกทอรีผ่านทางเทอร์มินัล


4

ปัญหาของฉันคือเมื่อใดก็ตามที่ฉันกำลังเขียนรหัสฉันทำงานภายในโฟลเดอร์ที่อยู่ในโฟลเดอร์อื่นและเป็นวิธีที่พิมพ์ได้นาน:

cd /folder1/folder2/.../folderN

ฉันรู้ว่าเป็นไปได้ที่จะสร้างทางลัดไปยังโฟลเดอร์โดยใช้ alias. ดังนั้นมันจะเป็น:

alias ep="cd /Users/thi/Dropbox/CurrentProject"

คำถามของฉันคือฉันควรใส่ชื่อแทนนี้ที่ไหน ภายใน /etc/bashrc? หรือฉันควรสร้างไฟล์ที่เรียกว่า ~/.profile และวางไว้ที่นั่นไหม ฉันควรใส่ไว้ที่ไหน?


ฉันคิดว่าสิ่งที่จะนำคุณไปสู่ระดับต่อไปคือการเรียนรู้เกี่ยวกับการทำให้เชลล์สมบูรณ์ ความสำเร็จของ bash นั้นค่อนข้างธรรมดา แต่ zsh มีความสมบูรณ์ที่ขยายได้ ตัวอย่างเช่น ls -l P/H/O/Cla<tab> ขยายเป็น ls -l Projects/Home/OpenGL/Clams
Ɱark Ƭ

คำตอบ:


4

ฉันเก็บชื่อแทนไว้ ~/.bash_profile.

Terminal และ iTerm 2 เปิดเชลล์ใหม่เป็นเชลล์ล็อกอินตามค่าเริ่มต้น เมื่อ bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบมันจะอ่าน ~/.bash_profile แต่ไม่ ~/.bashrc. เทอร์มินัลอีมูเลเตอร์บนแพลตฟอร์มอื่นมักเปิดเชลล์ใหม่เป็นเชลล์ที่ไม่ใช่การล็อกอินดังนั้นตัวอย่างเช่น bash reads ~/.bashrc แต่ไม่ ~/.bash_profile. ผู้ใช้ OS X มักใช้ ~/.bash_profile เป็นไฟล์กำหนดค่าส่วนบุคคลที่สอดคล้องกับ ~/.bashrc บนแพลตฟอร์มอื่น ๆ แต่ก็เป็นไปได้ที่จะแหล่ง ~/.bashrc จาก ~/.bash_profile หรือบอก Terminal หรือ iTerm 2 ให้เปิดเชลล์ใหม่เป็นเชลล์ที่ไม่ได้ลงชื่อเข้าใช้

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

/etc/bashrc เป็นเจ้าของโดย root และอาจถูกแทนที่เมื่อคุณอัพเกรด OS X

ดู man bash|less +^INVOCATION หรือ https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html สำหรับข้อมูลเพิ่มเติม.


1

โดยทั่วไปคุณใส่คำจำกัดความของนามแฝงลงในไฟล์เดียวกับของคุณ $PATH คำจำกัดความซึ่งน่าจะเป็น ~/.bashrc.


เทคนิคการพูดนามแฝงไม่ใช่ทางลัดไปยังโฟลเดอร์ แต่สำหรับคำสั่งเชลล์ใด ๆ ดังนั้นคุณสามารถมีสิ่งที่ชอบ

alias heal='xattr -d com.apple.quarantine'
alias la='ls -lFa'
alias ll='ls -lF'
alias ls='ls -FG'
alias show-path='echo -e ${PATH//:/\\n}'

เพื่อทำให้ชีวิตของคุณง่ายขึ้น นามแฝงจะถูกแทนที่ตามที่เป็นโดยเชลล์ดังนั้นหากคุณเรียกใช้

heal downloadedFile.dmg

มันขยายไปถึง

xattr -d com.apple.quarantine downloadedFile.dmg

และดำเนินการในภายหลัง หากคุณต้องการความยืดหยุ่นที่มากขึ้นกับพารามิเตอร์คุณอาจต้องการดูฟังก์ชันของเชลล์ (แต่นั่นอาจเป็นคำถามอื่น)


1

ฉันไม่ใช่ผู้เชี่ยวชาญด้านทุบตี แต่ฉันคิดว่าคุณควรใส่ alias ของคุณไว้ใน. bashrc ในโฮมไดเร็กตอรี่ของคุณ.


นั่นคือสิ่งที่ Patrix พูด ~ เป็นทางลัดเชลล์สำหรับ $ HOME
Ɱark Ƭ

1

คำตอบนี้ สรุปสิ่งที่เป็นของแต่ละอย่าง ~/.bashrc, ~/.profileและ ~/.bash_profile. สรุป:

  • ~ / .bash_profile ควรง่ายสุด ๆ เพียงโหลด. profile และ .bashrc (ตามลำดับ)

  • ~ / .profile มีสิ่งที่ไม่เกี่ยวข้องโดยเฉพาะกับ bash เช่น ตัวแปรสภาพแวดล้อม (เส้นทางและเพื่อน)

  • ~ / .bashrc มีทุกสิ่งที่คุณต้องการในบรรทัดคำสั่งแบบโต้ตอบ พรอมต์คำสั่งตัวแปร EDITOR, นามแฝงทุบตีสำหรับการใช้งานของฉัน

    หมายเหตุอื่น ๆ :

  • สิ่งใดก็ตามที่ควรมีให้สำหรับแอปพลิเคชันกราฟิกหรือ SH (หรือ bash ที่เรียกใช้เป็น sh) ต้องอยู่ใน ~ / .profile

  • ~ / .bashrc ต้องไม่แสดงผลใด ๆ

  • สิ่งใดก็ตามที่ควรมีให้สำหรับการเข้าสู่ระบบเปลือกเท่านั้นควรเข้าไป ~ / .profile

  • ตรวจสอบให้แน่ใจว่า ~ / .bash_login ไม่มีอยู่


1

คำตอบสั้น ๆ คือ: (โดยทั่วไป)

เพิ่มไปที่ ~/.bash_profile

echo 'alias ep="cd $HOME/Dropbox/CurrentProject"' >> ~/.bash_profile

บันทึก: ไม่ควรมีช่องว่างระหว่างนามแฝง / ตัวแปรและ เครื่องหมายเท่ากับ ("=") และคุณค่า หากค่าของคุณมีช่องว่างควรใส่ค่าทั้งหมดในเครื่องหมายคำพูด

คำตอบที่ดีกว่าคือ: (อาจ)

ลองตั้งค่าตัวแปรสภาพแวดล้อมแทน นี่อาจเป็นสิ่งที่คุณต้องการมากกว่า

echo 'export EP="$HOME/Dropbox/CurrentProject"' >> ~/.bash_profile
echo 'alias ep="cd $EP"' >> ~/.bash_profile

บันทึก: ตัวแปรสภาพแวดล้อมนั้นเข้าถึงได้โดยการเติม เครื่องหมายดอลลาร์ ("$") . อย่างไรก็ตามเมื่อมีการกำหนดไว้ เครื่องหมายดอลลาร์ ("$") ควรละเว้น

คำตอบอื่นคือ: (อาจจะ)

สัญลักษณ์ลิงค์ . AKA symlinks . {FKA นามแฝง . (Mac OS)} {BKA ทางลัด . (Windows OS)}

ln -s <dirA/subB/fileC_in> <dirX/subY/symbZ_out>

บันทึก: symlink บางครั้งแทนโดยการเติม เครื่องหมายและเครื่องหมาย ("@") .


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