Câu trả lời:
Nội dung type
nà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 cmd
sẽ 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 ls
bí 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/ls
sẽ được sử dụng và --color=auto
sẽ đượ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.
type
cho đến khi bạn đạt được thứ gì đó không phải là bí danh ...
type
sẽ 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 ls
sẽ 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õ alias
trong 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 ls
bí danh đó là gì, bạn có thể làm gì alias ls
.
alias ls
để tìm hiểu cụ thể ls
là bí danh.
type
tuy 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
ls
bí 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 which
lệnh.
Nếu bạn đặt bí danh cho ls
as ls -al
và sau đó nhập which ls
, bạn sẽ thấy:
ls: aliased to ls -al
.
which
lệnh.
which
là 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.