Làm cách nào để tạo bí danh Bash?


189

Tôi đang dùng OSX và tôi cần đặt một cái gì đó như thế này, alias blah="/usr/bin/blah"trong một tệp cấu hình nhưng tôi không biết tệp cấu hình đó ở đâu.


Về mặt thực tế, bí danh cụ thể này về cơ bản là không cần thiết trừ khi bạn đang cố gắng ghi đè PATHđộ phân giải của trình bao cho lệnh cụ thể này. Nếu /usr/binlà trong PATH(thực sự phải như vậy) thì blahbạn cũng sẽ chạy tốt từ đó mà không có bí danh này, trừ khi có nói /usr/local/bin/blah/usr/local/binlà trước /usr/bintrong bạn PATH nhưng bạn vẫn muốn thích /usr/bin/blahvà không thể vì lý do nào đó chỉ cần xóa hoặc đổi tên /usr/local/bin/blah.
tripleee

Thậm chí sau đó, đây là một giải pháp đáng ngờ, đáng ngờ, đi kèm với một bình luận xấu xí to béo với một thông điệp cảnh báo cho bạn biết làm thế nào điều này sẽ cắn vào bụng dưới của bạn, và một câu nói khác "Tôi đã nói với bạn như vậy" cho mỗi lần điều này xảy ra.
tripleee

1
Đối với tất cả những người yêu thích tự động hóa: Cá nhân tôi thêm addAlias() { echo "alias $1='$2' " >> ~/.bash_profile vào bash_profile của mình và sau đó tôi lấy nguồn và chạy addAlias hi 'echo "hi" '. Nguồn bash hồ sơ và gõ hiđể xem nó.
devssh

Câu trả lời:


268

Bạn có thể thêm một aliashoặc một functiontrong tập tin kịch bản khởi động của bạn. Thông thường đây là .bashrc, .bash_loginhoặc .profiletập tin trong thư mục nhà của bạn.

Vì các tệp này bị ẩn, bạn sẽ phải ls -aliệt kê chúng. Nếu bạn không có, bạn có thể tạo một cái.


Nếu tôi nhớ chính xác, khi tôi đã mua máy Mac của mình, .bash_logintập tin không có ở đó. Tôi đã phải tạo ra nó cho bản thân mình để tôi có thể đưa prompt info, alias, functions, vv trong nó.

Dưới đây là các bước nếu bạn muốn tạo một:

  1. Khởi động Terminal
  2. Nhập cd ~/để đi đến thư mục nhà của bạn
  3. Nhập touch .bash_profileđể tạo tập tin mới của bạn.
  4. Chỉnh sửa .bash_profilebằng trình chỉnh sửa yêu thích của bạn (hoặc bạn chỉ có thể nhập open -e .bash_profileđể mở nó trong TextEdit.
  5. Nhập . .bash_profileđể tải lại .bash_profilevà cập nhật bất kỳ bí danh nào bạn thêm.

8
Tuyệt vời, cảm ơn @jaypal! Là lệnh source .bash_profilethay thế cho bước 5?
Ian Campbell

10
Có trên OSX Mavericks .bash_profilecủa tôi không có trong nhà của tôi. Tạo nó, thêm bí danh cho nó, và sau đó khởi tạo nó với . .bash_profilelệnh đã hoạt động.
Lũ Bradley

1
.bash_profile hoạt động với tôi! :) .bashrc không có trên El Capitan
Parth

5
Trên OSX El Capitan .bash_profilehoạt động. Nếu nó không tự động tải khi bạn mở một cửa sổ đầu cuối, thì có lẽ là do nó được tạo mà không có sự cho phép thực thi. Lệnh này sẽ sửa nó và nó sẽ tự động tải cho các phiên trong tương lai:chmod u+x .bash_profile
Mischinab

1
Hồ sơ .bash_profile bị khóa làm cách nào tôi có thể cập nhật tệp này
amit gupta


31

Tôi chỉ mở zshrc với cao siêu và chỉnh sửa nó.

subl .zshrc

Và thêm điều này vào cao siêu:

alias blah="/usr/bin/blah"

Chạy cái này trong terminal:

source ~/.bashrc

Làm xong.


4
Điều này là nhầm lẫn. Nếu shell của bạn là Bash, nhiều câu trả lời khác trên trang này sẽ chi tiết và hữu ích hơn. Nếu bạn sử dụng Zsh thay vì Bash, thì rõ ràng source .zshrccuối cùng bạn nên tải những thay đổi bạn đã thực hiện vào thể hiện shell hiện đang chạy.
tripleee

18

Trong .bashrctệp của tôi , các dòng sau đây ở đó theo mặc định:

# 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

Do đó, trong nền tảng của tôi .bash_aliaseslà tệp được sử dụng cho các bí danh theo mặc định (và tệp tôi sử dụng). Tôi không phải là người dùng OS X, nhưng tôi đoán rằng nếu bạn mở .bashrctệp của mình , bạn sẽ có thể xác định tệp nào thường được sử dụng cho bí danh trong nền tảng của bạn.


Nếu hồ sơ không tự động tải khi bạn mở một cửa sổ đầu cuối, nó có thể thiếu quyền thực thi. Lệnh này sẽ sửa nó và nó sẽ tự động tải cho các phiên trong tương lai:chmod u+x .bash_profile
Mischinab

1
@Mischinab Không, tệp chỉ cần có thể đọc được để Bash đọc nó dưới dạng tệp cấu hình. Làm cho nó thực thi được là vô hại về mặt kỹ thuật nhưng không cần thiết. Tôi sẽ không khuyến khích nó trên cơ sở phi kỹ thuật (cuối cùng bạn có thể nhầm lẫn bản thân và / hoặc người khác).
tripleee

9
cd /etc
sudo vi bashrc

Thêm vào như sau:

alias ll="ls -lrt"

Cuối cùng khởi động lại Terminal.


1
Sau khi thêm bí danh. Chạy 'nguồn' trên tệp '.bash_profile' của bạn. Ví dụ: source ~ / .bash_profile (lệnh kích hoạt / tải lại các bí danh bash)
UIResponder

8

Nó hoạt động với tôi trên macOS Majave

Bạn có thể làm một vài bước đơn giản:

1) thiết bị đầu cuối mở

2) sudo nano /.bash_profile

3) thêm bí danh của bạn, ví dụ:

# 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

Làm xong. Sử dụng và thưởng thức!


7

Tệp cấu hình cho tập lệnh và chương trình là ~/.bashrcvà tệp cấu hình được tải khi bạn sử dụng Terminal ~/.bash_login.

Tôi nghĩ cách tốt nhất là chỉ cần có mọi thứ trong đó ~/.bashrc.

Đối với câu hỏi cụ thể của bạn chỉ cần nhập (điều này sẽ ghi đè lên bất kỳ ~ / .bashrc):

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

vào Terminal và một ~/.bashrctệp sẽ được tạo với các phần mới của bạn. Sau đó, chỉ cần chỉnh sửa tệp để thêm bí danh, chức năng, cài đặt mới, v.v.


5
Bạn không nên sử dụng >>thay vì >để nó gắn vào tập tin hơn là thay thế mọi thứ trong đó?
Jonny

6
  1. Đi về nhà
  2. Mở .bashrc
  3. Tạo bí danh ở dưới cùng của tệp

    alias alias_name='command to do'
    eg: alias cdDesktop='cd /Desktop'
  4. Lưu các tập tin

  5. nguồn .bashrc

    source ~/.bashrc
  6. Mở terminal (Ctrl + Alt + T) và gõ cdDesktop và nhấn enter


4

Nếu bạn đặt blah="/usr/bin/blah"vào ~/.bashrcthì bạn có thể sử dụng $blahtrong vỏ đăng nhập của mình để thay thế cho việc nhập/usr/bin/blah


Ký hiệu đô la rõ ràng là không theo bất kỳ cách nào cần thiết, hữu ích hoặc chính xác ở đây.
tripleee

4

MacOS Catalina trở lên

Apple chỉ chuyển vỏ mặc định của họ sang zsh , vì vậy các tệp cấu hình bao gồm ~/.zshenv~/.zshrc. Điều này cũng giống như ~/.bashrc, nhưng đối với zsh. Chỉ cần chỉnh sửa tập tin và thêm những gì bạn cần; nó nên có nguồn gốc mỗi khi bạn mở một cửa sổ terminal mới:

nano ~/.zshenv alias py=python

Sau đó làm ctrl + x, y, sau đó nhập để lưu.

Tập tin này dường như được thực thi bất kể điều gì (đăng nhập, không đăng nhập hoặc tập lệnh), vì vậy có vẻ tốt hơn ~/.zshrctập tin.

Cao Sierra và trước đó

Shell mặc định là bash và bạn có thể chỉnh sửa tệp ~/.bash_profilevà thêm bí danh:

nano ~/.bash_profile alias py=python

Sau đó ctrl + x, y và nhập để lưu. Xem bài đăng này để biết thêm về các cấu hình. Tốt hơn một chút là thiết lập nó với bí danh của bạn ~/.bashrc, sau đó lấy nguồn ~/.bashrctừ ~/.bash_profile. Trong ~/.bash_profileđó sẽ trông như sau:

source ~/.bashrc


3

Bạn có thể muốn chỉnh sửa các .bashrctập tin trong thư mục nhà của bạn.


1

tạo bash_profile tại thư mục gốc của người dùng - ex

/user/username/.bash_profile

mở tập tin

vim ~ / .bash_profile

thêm bí danh như ex. (lưu và thoát)

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

trong thiết bị đầu cuối mới chỉ cần gõ mydir - nó sẽ mở

/user/username/Documents/dirname/anotherdir

0

Tôi nghĩ đó là cách thích hợp:

1) Đi đến đền thờ. open ~/.bashrc. Thêm nếu không tồn tại

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

2) open ~/.bash_aliases. Nếu không tồn tại:touch ~/.bash_aliases && open ~/.bash_aliases

3) Để thêm bí danh mới
- chỉnh sửa .bash_aliasestệp và khởi động lại thiết bị đầu cuối hoặc in source ~/.bash_aliases
- in echo "alias clr='clear'" >> ~/.bash_aliases && source ~/.bash_aliasesnơi bí danh của bạn alias clr='clear'.

4) Thêm dòng source ~/.bash_aliasesvào ~/.bash_profiletập tin. Nó cần tải bí danh trong mỗi init của terminal.


0

Đối với người dùng macOS Catalina:

Bước 1: tạo hoặc cập nhật tệp .zshrc

vi ~/.zshrc

Bước 2: Thêm dòng bí danh của bạn

alias blah="/usr/bin/blah"

Bước 3: Nguồn .zshrc

source ~/.zshrc 

Bước 4: Kiểm tra bí danh của bạn, bằng cách nhập bí danh trên dấu nhắc lệnh

alias

0

Để tạo một lối tắt bí danh vĩnh viễn, hãy đặt nó trong tệp .bash_profile và trỏ tệp .bashrc vào tệp .bash_profile. Thực hiện theo các bước sau (Tôi đang tạo một lệnh bí danh gọi là bnode để chạy bộ chuyển mã babel trên mã ES6):

  1. Đi tới dấu nhắc lệnh của thiết bị đầu cuối và gõ vào cd cd (điều này sẽ đưa bạn đến thư mục chính. Lưu ý: mặc dù các tệp lập trình của bạn có thể nằm trên trên D của bạn: ổ đĩa, các tập tin .bash của bạn có thể được đặt trên trên mạng của bạn C: ổ đĩa)
  2. Để xem vị trí của thư mục chính, hãy nhập vào pwd '(điều này sẽ hiển thị cho bạn đường dẫn thư mục chính và nơi có thể đặt các tệp .bash)
  3. Để xem tất cả dấu chấm "." các tệp trong thư mục chính, hãy nhập vào các tệp ls -la, (tệp này sẽ hiển thị TẤT CẢ các tệp bao gồm các tệp "." dấu chấm ẩn)
  4. Bạn sẽ thấy 2 tập tin: xông .bash_profile và và .bashrc
  5. Mở tệp .bashrc trong VS Code Editor hoặc IDE của bạn và nhập mã nguồn ~ / .bash_profile tựa ở dòng đầu tiên (để trỏ tệp .bashrc sang .bash_profile)
  6. Mở tệp .bash_profile trong VS Code Editor và nhập bí danh của bí mật bnode = '. / Node_modules / .bin / babel-node' (để tạo lối tắt bnode vĩnh viễn để thực thi như lệnh bash)
  7. Lưu và đóng cả hai tập tin
  8. Bây giờ hãy mở tệp bạn muốn thực thi (index.js) và mở trong dấu nhắc lệnh của thiết bị đầu cuối và chạy tệp bằng cách sử dụng lệnh bnode index.js tựa
  9. Bây giờ tệp index.js của bạn sẽ thực thi nhưng trước khi tạo bí danh bnode trong tệp .bash_profile, bạn sẽ gặp lỗi "không tìm thấy lệnh bash: bnode" và nó sẽ không nhận ra và đưa ra lỗi trên một số mã ES6.
  10. Liên kết hữu ích để tìm hiểu về dotfiles: https://dotfiles.github.io/

Tôi hi vọng cái này giúp được! Chúc may mắn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.