Yanıtlar:
typeYerleş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 cmdiçin yararlıdır öncelik sırasına, bu isimde tüm komutları gösterecektir lstakma 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/lskullanılacağını ve --color=autokendi 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 ...
typeherhangi 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 aliasShell 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 lstakma adın takma adının ne olduğunu öğrenmek istiyorsanız, bunu yapabilirsiniz alias ls.
alias lsneye lsAlias olduğunu öğrenmek için yazın.
typeancak, 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
lsOrada 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".
whichKomutu kullanabilirsiniz .
İçin bir takma ad ayarlarsanız lsolarak ls -alve daha sonra tip which ls, göreceksiniz:
ls: aliased to ls -al.
whichkomutu yok .
whichBurada 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.