ฉันจะสร้างนามแฝง Bash ได้อย่างไร


189

ฉันใช้ OSX และฉันต้องใส่อะไรแบบนี้ลงalias blah="/usr/bin/blah"ในไฟล์ config แต่ไม่รู้ว่าไฟล์ config อยู่ที่ไหน


ที่สำคัญคือนามแฝงนี้ซ้ำซ้อนโดยทั่วไปนอกจากคุณจะพยายามแทนที่PATHความละเอียดของเชลล์สำหรับคำสั่งเฉพาะนี้โดยเฉพาะ ถ้า/usr/binอยู่ในของคุณPATH(ซึ่งจริงๆมันจะต้องเป็น) จากนั้นblahจะทำงานจากที่นั่นได้ดีโดยไม่ต้องนามแฝงนี้ด้วยเว้นแต่จะมียังบอก/usr/local/bin/blahและ/usr/local/binก่อน/usr/binในของคุณPATH แต่คุณยังคงต้องการที่จะชอบและไม่สามารถด้วยเหตุผลบางอย่างเพียงแค่ลบหรือเปลี่ยนชื่อ/usr/bin/blah /usr/local/bin/blah
tripleee

ถึงแม้นี่จะเป็นวิธีการแก้ปัญหาที่น่าสงสัยและแฮ็คซึ่งควรมาพร้อมกับความคิดเห็นที่น่าเกลียดด้วยข้อความเตือนบอกคุณว่าสิ่งนี้จะกัดหน้าท้องส่วนล่างของคุณได้ดีเพียงใดและอีกคำหนึ่งบอกว่า "ฉันบอกคุณแล้ว"
tripleee

1
สำหรับคนรักอัตโนมัติ: ผมเองเพิ่ม addAlias() { echo "alias $1='$2' " >> ~/.bash_profile เพื่อ bash_profile addAlias hi 'echo "hi" 'ของฉันแล้วฉันมามันและวิ่ง ซอร์สโปรไฟล์ bash และพิมพ์hiเพื่อดู
devssh

คำตอบ:


268

คุณสามารถเพิ่มaliasหรือ a functionในไฟล์สคริปต์เริ่มต้นของคุณ นี้มักจะเป็น.bashrc, .bash_loginหรือ.profileแฟ้มในไดเรกทอรีบ้านของคุณ

เนื่องจากไฟล์เหล่านี้ถูกซ่อนคุณจะต้องทำls -aรายการ หากคุณไม่มีคุณสามารถสร้างได้


หากฉันจำได้ถูกต้องเมื่อฉันซื้อ Mac .bash_loginไฟล์จะไม่อยู่ที่นั่น ผมต้องสร้างมันขึ้นมาเพื่อตัวเองเพื่อที่ฉันจะใส่prompt info, alias, functionsและอื่น ๆ อยู่ในนั้น

นี่คือขั้นตอนหากคุณต้องการสร้าง:

  1. เริ่มต้น Terminal
  2. พิมพ์cd ~/เพื่อไปยังโฟลเดอร์บ้านของคุณ
  3. พิมพ์touch .bash_profileเพื่อสร้างไฟล์ใหม่ของคุณ
  4. แก้ไข.bash_profileด้วยโปรแกรมแก้ไขที่คุณชื่นชอบ (หรือคุณเพียงแค่พิมพ์open -e .bash_profileเพื่อเปิดใน TextEdit
  5. พิมพ์. .bash_profileเพื่อโหลดซ้ำ.bash_profileและอัปเดตชื่อแทนที่คุณเพิ่ม

8
ยอดเยี่ยมขอบคุณ @jaypal! คำสั่งsource .bash_profileเป็นทางเลือกสำหรับขั้นตอนที่ 5 หรือไม่?
เอียนแคมป์เบล

10
ใช่ใน OSX Mavericks .bash_profileของฉันไม่มีที่บ้านของฉัน การสร้างเพิ่มนามแฝงแล้วเริ่มต้นด้วย. .bash_profileคำสั่งที่ใช้งานได้
แบรดลีย์ท่วม

1
.bash_profile ใช้ได้กับฉัน! :) .bashrc ไม่ได้อยู่ใน El Capitan
Parth

5
ใน OSX El Capitan ใช้.bash_profileงานได้ ถ้ามันไม่โหลดโดยอัตโนมัติเมื่อคุณเปิดหน้าต่างเทอร์มินัลอาจเป็นเพราะมันถูกสร้างขึ้นโดยไม่ได้รับอนุญาตจากการใช้งาน คำสั่งนี้จะแก้ไขและควรโหลดโดยอัตโนมัติสำหรับการประชุมในอนาคต:chmod u+x .bash_profile
Mischinab

1
โปรไฟล์. bash_profile ถูกล็อคฉันจะอัปเดตไฟล์นี้ได้อย่างไร
amit gupta

31

บน OS X คุณต้องการใช้ ~ / .bash_profile นี่เป็นเพราะโดยค่าเริ่มต้น Terminal.app จะเปิดเชลล์ล็อกอินสำหรับแต่ละหน้าต่างใหม่

ดูเพิ่มเติมเกี่ยวกับไฟล์การกำหนดค่าที่แตกต่างกันและเมื่อใช้ที่นี่: อะไรคือความแตกต่างระหว่าง. bashrc, .bash_profile และ. สิ่งแวดล้อม

และเกี่ยวกับ OSX ที่นี่: เกี่ยวกับ. bash_profile, .bashrc และนามแฝงที่ควรจะเขียนด้วย


31

ฉันเพิ่งเปิด zshrc พร้อมประเสริฐและแก้ไข

subl .zshrc

และเพิ่มสิ่งนี้ในประเสริฐ:

alias blah="/usr/bin/blah"

รันสิ่งนี้ในเทอร์มินัล:

source ~/.bashrc

เสร็จสิ้น


4
นี่คือความสับสน หากเชลล์ของคุณคือ Bash คำตอบอื่น ๆ อีกมากมายในหน้านี้มีรายละเอียดและเป็นประโยชน์มากกว่า หากคุณใช้ Zsh แทนที่จะเป็น Bash คุณควรsource .zshrcที่จะโหลดการเปลี่ยนแปลงที่คุณทำไว้ในอินสแตนซ์เชลล์ที่รันอยู่ในตอนนี้
tripleee

18

ใน.bashrcไฟล์ของฉันบรรทัดต่อไปนี้อยู่ที่นั่นตามค่าเริ่มต้น:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

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

ดังนั้นในแพลตฟอร์มของฉัน.bash_aliasesคือไฟล์ที่ใช้สำหรับนามแฝงตามค่าเริ่มต้น (และไฟล์ที่ฉันใช้) ฉันไม่ใช่ผู้ใช้ OS X แต่ฉันเดาว่าถ้าคุณเปิด.bashrcไฟล์คุณจะสามารถระบุได้ว่าไฟล์ใดที่ใช้สำหรับนามแฝงในแพลตฟอร์มของคุณ


หากส่วนกำหนดค่าไม่โหลดโดยอัตโนมัติเมื่อคุณเปิดหน้าต่างเทอร์มินัลอาจเป็นไปได้ว่าสิทธิ์การใช้งานจะหายไป คำสั่งนี้จะแก้ไขและควรโหลดสำหรับเซสชันในอนาคตโดยอัตโนมัติ:chmod u+x .bash_profile
Mischinab

1
@Mischinab ไม่ไฟล์จะต้องสามารถอ่านได้เพื่อให้ Bash อ่านเป็นไฟล์การกำหนดค่า การทำให้สามารถเรียกใช้งานได้นั้นไม่เป็นอันตรายต่อเทคนิค ฉันจะไม่แนะนำในพื้นที่ที่ไม่มีเทคนิค (คุณอาจสับสนและ / หรือคนอื่น ๆ )
tripleee

9
cd /etc
sudo vi bashrc

เพิ่มสิ่งต่อไปนี้ที่ชอบ:

alias ll="ls -lrt"

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


1
หลังจากเพิ่มนามแฝง เรียกใช้ 'แหล่งที่มา' บนไฟล์ '.bash_profile' ของคุณ ตัวอย่าง: source ~ / .bash_profile (คำสั่งที่เปิดใช้งาน / โหลดชื่อแทน bash)
UIResponder

8

มันทำงานได้สำหรับฉันใน macOS Majave

คุณสามารถทำตามขั้นตอนง่ายๆ:

1) เทอร์มินัลเปิด

2) sudo nano /.bash_profile

3) เพิ่มชื่อแทนของคุณเช่น:

# some aliases
alias ll='ls -alF'
alias la='ls -A'
alias eb="sudo nano ~/.bash_profile && source ~/.bash_profile"
#docker aliases
alias d='docker'
alias dc='docker-compose'
alias dnax="docker rm $(docker ps -aq)"
#git aliases
alias g='git'
alias new="git checkout -b"
alias last="git log -2"
alias gg='git status'
alias lg="git log --pretty=format:'%h was %an, %ar, message: %s' --graph"
alias nah="git reset --hard && git clean -df"
alias squash="git rebase -i HEAD~2"

4) source /.bash_profile

เสร็จสิ้น ใช้และสนุก!


7

แฟ้มปรับแต่งสำหรับสคริปต์และโปรแกรมเป็น~/.bashrcและไฟล์ config ~/.bash_loginที่ได้รับการโหลดเมื่อคุณใช้เทอร์มิ

~/.bashrcผมคิดว่าวิธีที่ดีที่สุดคือเพียงแค่มีทุกอย่างใน

สำหรับคำถามเฉพาะของคุณให้ป้อน (สิ่งนี้จะเขียนทับ ~ / .bashrc ใด ๆ ที่มีอยู่):

echo "alias blah=\"/usr/bin/blah\"" >>~/.bashrc

ในเทอร์มินัลและ~/.bashrcไฟล์จะถูกสร้างขึ้นด้วย alises ใหม่ของคุณ หลังจากนั้นเพียงแก้ไขไฟล์เพื่อเพิ่มชื่อแทนใหม่ฟังก์ชั่นการตั้งค่าและอื่น ๆ


5
คุณไม่ควรใช้>>แทน>เพื่อที่จะผนวกเข้ากับไฟล์แทนที่จะแทนที่ทุกอย่างในไฟล์
จอนนี่

6
  1. กลับบ้าน
  2. เปิด. bashrc
  3. สร้างนามแฝงที่ด้านล่างของไฟล์

    alias alias_name='command to do'
    eg: alias cdDesktop='cd /Desktop'
  4. บันทึกไฟล์

  5. แหล่ง. bashrc

    source ~/.bashrc
  6. เปิดเทอร์มินัล (Ctrl + Alt + T) & พิมพ์ cdDesktop และกด Enter


5

MacOS Catalina and Above

แอปเปิ้ลเพิ่งเปลี่ยนเปลือกเริ่มต้นของพวกเขาเพื่อzshดังนั้น config ไฟล์รวมและ~/.zshenv ~/.zshrcนี่เป็นเพียง~/.bashrcแต่สำหรับ zsh เพียงแก้ไขไฟล์และเพิ่มสิ่งที่คุณต้องการ ควรมีที่มาทุกครั้งที่คุณเปิดหน้าต่างเทอร์มินัลใหม่:

nano ~/.zshenv alias py=python

จากนั้นทำ ctrl + x, y จากนั้นป้อนเพื่อบันทึก

ไฟล์นี้ดูเหมือนว่าจะถูกเรียกใช้งานไม่ว่าจะเป็นอะไร (เข้าสู่ระบบไม่เข้าสู่ระบบหรือสคริปต์) ดังนั้นจึงดูเหมือนว่าจะดีกว่า~/.zshrcไฟล์

เซียร่าสูงและก่อนหน้านี้

เชลล์เริ่มต้นคือทุบตีและคุณสามารถแก้ไขไฟล์~/.bash_profileและเพิ่มนามแฝงได้:

nano ~/.bash_profile alias py=python

จากนั้น ctrl + x, y และป้อนเพื่อบันทึก ดูโพสต์นี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าเหล่านี้ มันเป็นเรื่องเล็ก ๆ น้อย ๆ ที่ดีกว่าที่จะตั้งขึ้นกับคุณในนามแฝง~/.bashrcแล้วแหล่งที่มาจาก~/.bashrc ~/.bash_profileใน~/.bash_profileนั้นจะมีลักษณะเช่น:

source ~/.bashrc


นี่น่าจะสูงกว่านี้แล้ว Catalina เป็น Mac OS ที่ทันสมัยที่สุด
Cauder

4

หากคุณใส่blah="/usr/bin/blah"ในของ~/.bashrcคุณคุณสามารถใช้$blahในเปลือกเข้าสู่ระบบของคุณแทนการพิมพ์/usr/bin/blah


เครื่องหมายดอลลาร์นั้นไม่มีความจำเป็นมีประโยชน์หรือแก้ไขที่นี่
tripleee


1

สร้าง bash_profile ที่รูทผู้ใช้ของคุณ

/user/username/.bash_profile

เปิดไฟล์

เป็นกลุ่ม ~ / .bash_profile

เพิ่มชื่อแทนเช่น (บันทึกและออก)

alias mydir="cd ~/Documents/dirname/anotherdir"

ในเทอร์มินัลใหม่เพียงพิมพ์ mydir - มันควรจะเปิด

/user/username/Documents/dirname/anotherdir

0

ฉันคิดว่ามันเป็นวิธีที่เหมาะสม:

1) ไปที่ teminal open ~/.bashrc. เพิ่มถ้าไม่มี

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

open ~/.bash_aliases2) หากไม่มีอยู่:touch ~/.bash_aliases && open ~/.bash_aliases

3) การเพิ่มนามแฝงใหม่ค่อนข้าง
- การแก้ไข.bash_aliasesไฟล์และรีสตาร์ทเครื่องหรือพิมพ์source ~/.bash_aliases
- พิมพ์ที่นามแฝงของคุณecho "alias clr='clear'" >> ~/.bash_aliases && source ~/.bash_aliasesalias clr='clear'

4) เพิ่มบรรทัดsource ~/.bash_aliasesไปยัง~/.bash_profileไฟล์ จำเป็นต้องโหลดนามแฝงในแต่ละการเริ่มต้นของเทอร์มินัล


0

สำหรับผู้ใช้ macOS Catalina:

ขั้นตอนที่ 1: สร้างหรืออัปเดตไฟล์. zshrc

vi ~/.zshrc

ขั้นตอนที่ 2: เพิ่มบรรทัดนามแฝงของคุณ

alias blah="/usr/bin/blah"

ขั้นตอนที่ 3: แหล่งที่มา. zshrc

source ~/.zshrc 

ขั้นตอนที่ 4: ตรวจสอบนามแฝงของคุณโดยพิมพ์นามแฝงบนพรอมต์คำสั่ง

alias

0

หากต้องการสร้างทางลัดนามแฝงถาวรให้วางไว้ในไฟล์. bash_profile และชี้ไฟล์. bashrc ไปยังไฟล์. bash_profile ทำตามขั้นตอนเหล่านี้ (ฉันกำลังสร้างคำสั่ง alias ชื่อ bnode เพื่อเรียกใช้ babel transpiler บนรหัส ES6):

  1. ไปที่พรอมต์คำสั่งเทอร์มินัลแล้วพิมพ์“ cd” (สิ่งนี้จะนำคุณไปยังโฮมไดเร็กตอรี่หมายเหตุ: แม้ว่าไฟล์การเขียนโปรแกรมของคุณอาจอยู่ใน“ D: ไดรฟ์” ไฟล์“ .bash” ของคุณอาจอยู่ใน C: ไดรฟ์”)
  2. หากต้องการดูตำแหน่งของไดเรกทอรีหลักให้พิมพ์“ pwd” (ซึ่งจะแสดงเส้นทางไดเรกทอรีหลักและตำแหน่งที่ไฟล์. bash อยู่)
  3. เพื่อดูจุดทั้งหมด "." ไฟล์ในโฮมไดเรกทอรีพิมพ์“ ls -la” (จะแสดงไฟล์ทั้งหมดรวมถึงจุดที่ซ่อนอยู่ "." ไฟล์)
  4. คุณจะเห็น 2 ไฟล์:“ .bash_profile” และ“ .bashrc”
  5. เปิดไฟล์. bashrc ใน VS Code Editor หรือ IDE ของคุณแล้วป้อน“ source ~ / .bash_profile” ในบรรทัดแรก (เพื่อชี้ไฟล์. bashrc ไปที่. bash_profile)
  6. เปิดไฟล์. bash_profile ในตัวแก้ไขรหัส VS และป้อน“ นามแฝง bnode = '. / node_modules / .bin / babel-node'” (เพื่อสร้างทางลัด bnode แบบถาวรเพื่อดำเนินการตามคำสั่ง bash)
  7. บันทึกและปิดทั้งสองไฟล์
  8. ตอนนี้เปิดไฟล์ที่คุณต้องการดำเนินการ (index.js) และเปิดในพรอมต์คำสั่ง terminal และเรียกใช้ไฟล์โดยใช้คำสั่ง“ bnode index.js”
  9. ตอนนี้ไฟล์ index.js ของคุณจะทำงาน แต่ก่อนที่จะสร้างนามแฝง bnode ในไฟล์. bash_profile คุณจะได้รับข้อผิดพลาด "ไม่พบคำสั่ง bash: bnode" และจะไม่รู้จักและให้ข้อผิดพลาดในรหัส ES6 บางตัว
  10. ลิงค์ที่มีประโยชน์เพื่อเรียนรู้เกี่ยวกับ dotfiles: https://dotfiles.github.io/

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

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