วิธีกำหนดนามแฝงในเทอร์มินัลอย่างต่อเนื่อง


18

ฉันต้องการเพิ่มชื่อแทนให้กับสภาพแวดล้อมของฉันเพื่อให้สามารถใช้ได้ในทุกกรณีของเทอร์มินัล

ฉันได้รับคำตอบนี้ :

ใช่คุณสามารถใส่ไว้ใน. bashrc, .bash_profile หรือ. profile ในบางระบบเชลล์สคริปต์เริ่มต้นยังใช้. bash_aliases หรือ .aliases ดังนั้นหากมีไฟล์ใดไฟล์หนึ่งในระบบของคุณคุณอาจใช้มันได้ "

แต่ฉันไม่พบไฟล์เหล่านี้เลย

(ฉันกำหนดค่า OS X ให้ดูไฟล์ที่ซ่อนอยู่ แต่ฉันไม่เห็นข้อใดข้อหนึ่งข้างต้น)


นามแฝงทำงานในเชลล์ (ในเทอร์มินัล) เท่านั้นคุณหมายถึงอะไรโดยการเพิ่มชื่อแทนให้กับสภาพแวดล้อม OS X ของคุณ คุณต้องการให้นามแฝงเข้าถึงได้โดยผู้ใช้ทั้งหมดหรือไม่
nohillside

ฉันหมายถึงมันจะถูกตั้งค่าสำหรับอินสแตนซ์ของเทอร์มินัลทุกตัวที่ฉันเปิดในอนาคต
Elad Benda

ฉันย้อนกลับการแก้ไขของคุณเพราะมันเปลี่ยนจุดสนใจของคำถาม หากคุณยังคงต้องการคำตอบเกี่ยวกับวิธีเพิ่มนามแฝงใน zsh โปรดถามคำถามใหม่
nohillside

คำตอบ:


23

หากคุณใช้ bash ให้เพิ่มคำสั่ง alias ไปที่ ~ / .bashrc และบันทึกไฟล์เช่นนี้เป็น ~ / .bash_profile:

. ~/.bashrc

เมื่อ bash ถูกเรียกใช้เป็นเชลล์แบบ non-login มันจะอ่าน. bashrc แต่ไม่ใช่. bash_profile เมื่อ bash คือมันถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบมันจะอ่าน. bash_profile แต่ไม่ใช่. bashrc

Terminal และ iTerm เปิดเชลล์ใหม่เป็นเชลล์ล็อกอินตามค่าเริ่มต้นผู้ใช้ OS X จำนวนมากจึงใช้. bash_profile เป็นไฟล์กำหนดค่าส่วนบุคคล ตัวอย่างเช่น tmux และโหมดเชลล์ใน Emacs เปิดเชลล์ใหม่เป็นเชลล์ที่ไม่ใช่การล็อกอิน

.profile ถูกอ่านโดยเชลล์อื่นเช่น ksh หากทั้ง. bash_profile และ. profile มีอยู่แล้ว bash จะอ่าน. bash_profile เมื่อเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบเท่านั้น

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


3
@EladBenda ถ้าคุณใช้เพิ่มคำสั่งนามแฝงไปzsh จะถูกอ่านโดยทั้งสอง (interactive) ไม่ใช่การเข้าสู่ระบบและเข้าสู่ระบบเปลือกหอยเพื่อให้คุณไม่ได้มีที่มาจาก ~/.zshrc~/.zshrc~/.zprofile
Lri

อยากรู้ถึงความแตกต่างระหว่าง. bash_profile และ. bashrc ตอนนี้ฉันรู้แล้ว ขอบคุณ
Deesbek

ตัวเลือกที่ดีกว่าคือการเก็บชื่อแทนไว้ในไฟล์ชื่อ ~ / .aliases หากคุณใช้ oh-my-zsh หากไฟล์นี้ไม่มีอยู่ก็สามารถเพิ่มได้ในโฟลเดอร์บ้านและจะเป็นไฟล์ที่ซ่อนอยู่
Anusha

6

เปิดหน้าต่าง Terminal ใหม่และไปที่โฮมไดเร็กตอรี่ของคุณ (เพียงพิมพ์cdแล้วกด Enter)

หลังจากนั้นให้พิมพ์ls .bash*และls .profile(โปรดทราบว่าชื่อไฟล์แต่ละชื่อขึ้นต้นด้วยจุด) หากคุณมีไฟล์เหล่านั้น (และคุณควรมีอย่างน้อยหนึ่งไฟล์. โปรไฟล์) จากนั้นคุณต้องแก้ไขและเพิ่มชื่อแทนของคุณ ฉันใช้ VI (หรือ VIM) เพื่อแก้ไขไฟล์เหล่านั้น แต่คุณสามารถใช้ตัวแก้ไขอื่น (ในความเป็นจริงการพิมพ์ในหน้าต่าง Terminal ของคุณopen .bash_profileจะเปิดใน TextEditor ซึ่งอาจเป็นมิตรกับผู้ใช้มากกว่าถ้าคุณไม่คุ้นเคยกับ VI) . หากด้วยเหตุผลบางอย่างคุณไม่มีไฟล์เหล่านั้นจากนั้นสร้างไฟล์ใหม่ (และเรียกมันว่า. bashrc) เพิ่มบรรทัดนามแฝงของคุณลงในนั้น (ดังนั้นนี่จะเป็นหนึ่งคำสั่งต่อบรรทัดตามที่คุณพิมพ์ ในเชลล์) จากนั้นบันทึกไฟล์ จากนั้นคุณสามารถสร้าง symlinks จะ .bash_profile และ .profile ln -s .bashrc .bash_profile; ln -s .bashrc .profileโดยใช้

สิ่งที่ฉันมักจะทำคือฉันสร้าง. bashrc และ. bash_profile เพื่อเชื่อมโยงสัญลักษณ์ไปที่. profile และจากนั้นเพียงแค่ต้องกังวลเกี่ยวกับไฟล์เดียวเท่านั้น

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

คุณจะได้รับข้อมูลเพิ่มเติมโดยทำman bashแต่ต้องเตรียมพร้อมมันเป็นหน้าเว็บที่ยาว คุณจะสามารถดูได้ว่าไฟล์ใดในสามไฟล์ (.bashrc, .profile และ. bash_profile) มีที่มาทั้งนี้ขึ้นอยู่กับโหมดที่มีการทุบตีเริ่ม

หวังว่าจะช่วย - ถ้าไม่ให้ฉันตะโกน


3

ป้อนคำสั่งต่อไปนี้ใน Terminal:

cd /etc
sudo vi bashrc

เพิ่มดังต่อไปนี้:

alias ll="ls -lrt"

ในที่สุดรีสตาร์ท Terminal


2

หากคุณต้องการความกว้างของเครื่องนี้คุณจำเป็นต้องดูใน/etcโฟลเดอร์ อย่างไรก็ตามมันอาจไม่มีอยู่ตามค่าเริ่มต้นซึ่งในกรณีนี้คุณเพียงแค่สร้างมันในโฟลเดอร์ด้านบนและรีสตาร์ทเครื่อง คุณจะมีโอกาสมากที่สุดจำเป็นต้องใช้sudoในการสร้างพวกเขาเป็นโฟลเดอร์เป็นเจ้าของโดย/etcroot

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

นอกจากนี้ยังเป็นที่กล่าวถึงในความคิดเห็นของคุณจะโดยทั่วไปเพียง แต่จะสามารถเห็นเหล่านี้ใช้ terminal ls -lhaและการใช้


0

หากคุณติดตั้งทับทิมให้ตรวจสอบสคริปต์ทับทิมนี้ที่https://github.com/ytbryan/aka

สคริปต์จัดเตรียมฟังก์ชันการทำงานเช่นการคงอยู่และการจัดหาไฟล์ dot อัตโนมัติ คุณสามารถจัดการนามแฝงผ่านเทอร์มินัลโดยไม่ทำลายเวิร์กโฟลว์ของคุณและเปิดโปรแกรมแก้ไขข้อความ

ข้อจำกัดความรับผิดชอบ: ฉันเขียนสคริปต์นี้และใช้งานได้ทุกวัน แจ้งให้เราทราบหากมีข้อผิดพลาด / ความคิด :)


0

สำหรับผู้ที่คุณกำลังมองหาคำสั่ง ll เช่นใน Linux BASH มันถูกสร้างขึ้นเช่นนี้ ...

alias ll="ls -laF"

เพิ่มบรรทัดนั้นลงใน.bashrcไฟล์ของคุณจากนั้นทำซ้ำ.bashrcไฟล์เป็น.bash_profileและคุณจะมีตลอดไปและตลอดไป

สำหรับสิ่งที่คุ้มค่าลินุกซ์ BASH จะเป็นเพียงนามแฝงของ " ls -laF"


-2

ฉันมีปัญหาเดียวกันว่าฉันไม่มี. ทุบตีหรือ. โปรไฟล์ในตำแหน่งโปรไฟล์ของฉัน ในที่สุดฉันก็พบมันใน / etc


1
/ etc ถูกใช้ทั่วทั้งระบบ ฉันขอแนะนำอย่างยิ่งว่าอย่าแก้ไขไฟล์เหล่านี้ แต่ควรใช้ไฟล์โปรไฟล์ของคุณเองในโฟลเดอร์โฮมของคุณเช่น ~ / .bash_profile
grg

ฉันไม่คิดว่าจะมี ~ / .bash_profile มันเป็นสิ่งแรกที่ฉันลองและถ้าฉันสร้างมันก็ไม่ได้ใช้แม้หลังจากรีสตาร์ทฉันเชื่อว่าผู้ดูแลระบบของฉันต้องมีวิธีป้องกันบางอย่าง ตอนนี้ผมใช้ zsh และ .zshrc ทำงานได้ดี
สิงห์ Boulanger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.