Câu trả lời:
Nội dung typenày hữu ích cho việc này. Nó sẽ không chỉ cho bạn biết về bí danh, mà còn các chức năng, nội dung, từ khóa và các lệnh bên ngoài.
$ type ls
ls is aliased to `ls --color=auto'
$ type rm
rm is /bin/rm
$ type cd
cd is a shell builtin
$ type psgrep
psgrep is a function
psgrep ()
{
ps -ef | {
read -r;
printf '%s\n' "$REPLY";
grep --color=auto "$@"
}
}
type -a cmdsẽ hiển thị tất cả các lệnh theo tên đó theo thứ tự ưu tiên, rất hữu ích cho lsbí danh ở trên, nơi mà chính bí danh gọi ls.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Điều này cho bạn biết rằng khi bạn chạy ls, /bin/lssẽ được sử dụng và --color=autosẽ được đưa vào danh sách các đối số của nó, ngoài bất kỳ đối số nào khác mà bạn tự thêm.
typecho đến khi bạn đạt được thứ gì đó không phải là bí danh ...
typesẽ phân tích / giải thích bất kỳ trích dẫn nào, vì vậy bạn có thể chắc chắn rằng các trích dẫn là đúng.
ls is aliased to 'ls --color=auto', nhưng làm thế nào tôi có thể nhận được một lớp sâu hơn, để xem liệu nó sử dụng / bin / ls hoặc / usr / local / bin / ls hay gì?
type -a lssẽ hiển thị tất cả các lệnh ls được tìm thấy theo thứ tự ưu tiên. Bất cứ điều gì ngay bên dưới bí danh là cái sẽ được thực hiện bởi bí danh.
Chỉ cần gõ aliastrong khi tại dấu nhắc Shell. Nó sẽ xuất ra một danh sách tất cả các bí danh đang hoạt động.
Hoặc, bạn có thể nhập alias [command]để xem bí danh cụ thể được đặt bí danh là gì, ví dụ, nếu bạn muốn tìm hiểu lsbí danh đó là gì, bạn có thể làm gì alias ls.
alias lsđể tìm hiểu cụ thể lslà bí danh.
typetuy nhiên, hoạt động trong cả hai trường hợp.
Tôi thực sự thích Ctrl+ Alt+ Enhư tôi đã học được từ câu trả lời này . Nó "mở rộng" dòng lệnh hiện đang gõ, nghĩa là nó thực hiện mở rộng bí danh (trong số những thứ khác).
Điều đó nghĩa là gì? Nó biến bất kỳ bí danh nào, hiện có thể được viết trên dòng lệnh, thành những gì bí danh đại diện.
Ví dụ: nếu tôi gõ:
$ ls
và sau đó nhấn Ctrl+ Alt+ E, nó được chuyển thành
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R thay vìsqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
Nói đúng câu trả lời đúng là sử dụng mảng BASH_ALIASES, ví dụ:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
lsbí danh hiện tại mà không thay đổi những gì ở đó. Vì vậy, tôi sẽ alias ls="${BASH_ALIASES[ls]} --time-style=iso"cho trường hợp của tôi.
Bạn có thể sử dụng whichlệnh.
Nếu bạn đặt bí danh cho lsas ls -alvà sau đó nhập which ls, bạn sẽ thấy:
ls: aliased to ls -al.
whichlệnh.
whichlà một cách tồi để tra cứu các bí danh như được giải thích ở đây: unix.stackexchange.com/questions/10525/. Nó thậm chí không hoạt động đối với tôi đối với các bí danh trong bash trên Ubuntu.