Yanıtlar:
type
Yerleşiğine Bunun için yararlıdır. Size sadece takma adlar hakkında değil, aynı zamanda fonksiyonlar, yerleşikler, anahtar kelimeler ve harici komutlar hakkında da bilgi verecektir.
$ 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
için yararlıdır öncelik sırasına, bu isimde tüm komutları gösterecektir ls
takma kendisi çağırır yukarıdaki takma, ls
.
$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls
Bu, koşarken ls
, /bin/ls
kullanılacağını ve --color=auto
kendi eklediğin diğer öğelere ek olarak argümanlar listesine dahil edileceğini söyler .
type
, takma ad dışında başka bir şeye çarpana kadar kullanmaya devam edin ...
type
herhangi bir teklifi ayrıştıracak / yorumlayacak, bu yüzden tekliflerin doğru olduğundan emin olabilirsiniz.
ls is aliased to 'ls --color=auto'
, ancak / bin / ls veya / usr / local / bin / ls kullanıp kullanmadığını görmek için bir kat daha derine nasıl ulaşabilirim?
type -a ls
, tercih sırasına göre bulunan tüm komutları gösterecektir. Takma adın hemen altındaki hangisi, takma ad tarafından yürütülecek olandır.
Sadece alias
Shell isteminde iken yazın. Halen aktif olan tüm diğer adların bir listesini çıkarmalıdır.
Veya, alias [command]
belirli bir takma adın takma adını görmek için yazabilirsiniz , örneğin ls
takma adın takma adının ne olduğunu öğrenmek istiyorsanız, bunu yapabilirsiniz alias ls
.
alias ls
neye ls
Alias olduğunu öğrenmek için yazın.
type
ancak, her iki durumda da çalışır.
Bu cevaptan öğrendiğim gibi Ctrl+ Alt+ ' Eyı gerçekten seviyorum . Şu anda yazılan komut satırını "genişletir", yani diğer ad genişletmesini gerçekleştirir (diğer şeylerin yanı sıra).
Bu ne anlama geliyor? Komut satırında o anda yazılmış olabilecek takma adları, takma adın yerine geçtiğine dönüştürür.
Örneğin, şunu yazarsam:
$ ls
ve sonra Ctrl+ Alt+ tuşlarına basın E,
$ ls --time-style=locale --color=auto
squeue -u davidmh -o %.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R
yerinesqueue -u davidmh -o "%.18i %.9P %.25j %.8u %.8T %.10M %.9l %.6D %R "
Kesin konuşursak doğru cevap BASH_ALIASES dizisini kullanıyor, örneğin:
$ echo ${BASH_ALIASES[ls]}
ls -F --color=auto --show-control-chars
ls
Orada olanı değiştirmeden mevcut takma adı üzerine daha fazla anahtar istiflemek istiyorum . Bu yüzden davam için gidiyorum alias ls="${BASH_ALIASES[ls]} --time-style=iso"
.
which
Komutu kullanabilirsiniz .
İçin bir takma ad ayarlarsanız ls
olarak ls -al
ve daha sonra tip which ls
, göreceksiniz:
ls: aliased to ls -al
.
which
komutu yok .
which
Burada açıklandığı gibi takma adları aramak için kötü bir yoldur: unix.stackexchange.com/questions/10525/… Ubuntu'da bash takma adları için benim için bile çalışmıyor.