man/shells_and_env
man · Kabuklar & Ortam

$ command

Bölüm 1 · Kabuklar & Ortam

kabuk fonksiyonlarını atlayarak komut çalıştırma aracı (Ayrıca kabuk yerleşik komutları)

Özet

command [-pVv] komut [argüman ...]

Açıklama

command komutu, kabukta normal fonksiyon arama ve çözümleme mekanizmasını atlayarak belirtilen komutu ve onun argümanlarını yürütür. Bu sayede, çalışan kabuk oturumunda yürütülecek komutla aynı isme sahip özel bir kabuk fonksiyonu (shell function) tanımlanmış olsa bile, orijinal harici diske yazılı komutun veya kabuk yerleşiğinin çalıştırılması garanti edilir.

command, kabuk yerleşik (shell built-in) komutlarından biridir. Kabuk yerleşik komutları, çalışan kabuğun süreci (process) içinde doğrudan yürütülür. csh(1) yerleşik komutları durumunda, komut bir boru hattının (pipeline) son bileşeni hariç herhangi bir yerinde yer alıyorsa bir alt kabukta (subshell) yürütülür.

Kabuğa belirtilen bir komut eğik çizgi / içeriyorsa, belirtilen komutun son bileşeni bir yerleşik komutun adıyla eşleşse bile kabuk bir yerleşik komutu yürütmeyecektir. Bu nedenle, echo belirtildiğinde echo yerleşik komutunu destekleyen kabuklar altında yerleşik komut yürütülürken, /bin/echo veya ./echo belirtildiğinde yerleşik komut yürütmez.

Bazı yerleşik komutlar birden fazla kabukta bulunabilse de, bunları destekleyen her bir kabuk altındaki işleyişleri farklı olabilir. Aşağıda, kabuk yerleşik komutlarını, bunları destekleyen standart kabukları ve bağımsız yardımcı programlar (standalone utilities) olarak var olup olmadıklarını listeleyen tablo bulunmaktadır.

Burada yalnızca csh(1) ve sh(1) kabuklarına ait yerleşik komutlar listelenmiştir. Yerleşik komutlarının işleyişine ilişkin ayrıntılar için kabuğun kılavuz sayfasına başvurun. En azından sh(1) kılavuz sayfasının bu komutların bazılarını “yerleşik komutlar” (built-in commands) ve bazılarını ise “ayrılmış sözcükler” (reserved words) olarak adlandırdığına dikkat edin. Diğer kabukların kullanıcılarının bir info(1) sayfasına veya diğer belgelendirme kaynaklarına başvurması gerekebilir.

External sütununun altında “No**” olarak işaretlenen komutlar harici olarak mevcuttur, ancak aynı ada sahip yerleşik bir komutu kullanan betikler (scripts) olarak uygulanmışlardır.

Yerleşik Komutlar Tablosu

Komut Harici (External) csh(1) sh(1)
! No No Yes
% No Yes No
. No No Yes
: No Yes Yes
@ No Yes Yes
[ Yes No Yes
{ No No Yes
} No No Yes
alias No** Yes Yes
alloc No Yes No
bg No** Yes Yes
bind No No Yes
bindkey No Yes No
break No Yes Yes
breaksw No Yes No
builtin No No Yes
builtins No Yes No
case No Yes Yes
cd No** Yes Yes
chdir No Yes Yes
command No** No Yes
complete No Yes No
continue No Yes Yes
default No Yes No
dirs No Yes No
do No No Yes
done No No Yes
echo Yes Yes Yes
echotc No Yes No
elif No No Yes
else No Yes Yes
end No Yes No
endif No Yes No
endsw No Yes No
esac No No Yes
eval No Yes Yes
exec No Yes Yes
exit No Yes Yes
export No No Yes
false Yes No Yes
fc No** No Yes
fg No** Yes Yes
filetest No Yes No
fi No No Yes
for No No Yes
foreach No Yes No
getopts No** No Yes
glob No Yes No
goto No Yes No
hash No** No Yes
hashstat No Yes No
history No Yes No
hup No Yes No
if No Yes Yes
jobid No No Yes
jobs No** Yes Yes
kill Yes Yes Yes
limit No Yes No
local No No Yes
log No Yes No
login Yes Yes No
logout No Yes No
ls-F No Yes No
nice Yes Yes No
nohup Yes Yes No
notify No Yes No
onintr No Yes No
popd No Yes No
printenv Yes Yes No
printf Yes No Yes
pushd No Yes No
pwd Yes No Yes
read No** No Yes
readonly No No Yes
rehash No Yes No
repeat No Yes No
return No No Yes
sched No Yes No
set No Yes Yes
setenv No Yes No
settc No Yes No
setty No Yes No
setvar No No Yes
shift No Yes Yes
source No Yes No
stop No Yes No
suspend No Yes No
switch No Yes No
telltc No Yes No
test Yes No Yes
then No No Yes
time Yes Yes No
times No No Yes
trap No No Yes
true Yes No Yes
type No** No Yes
ulimit No** No Yes
umask No** Yes Yes
unalias No** Yes Yes
uncomplete No Yes No
unhash No Yes No
unlimit No Yes No
unset No Yes Yes
unsetenv No Yes No
until No No Yes
wait No** Yes Yes
where No Yes No
which Yes Yes No
while No Yes Yes

Seçenekler

  • -p: Arama işlemini, o anki geçerli PATH değişkeni yerine tüm standart POSIX sistem araçlarının yerini içeren güvenli bir varsayılan yol üzerinden gerçekleştirir.
  • -v: komut argümanını çalıştırmaz; bunun yerine bu komut çağrıldığında kabuğun nasıl bir çözümleme yapacağını (rumuz, fonksiyon, yerleşik veya disk dosyası gibi) belirten bir kelime veya yürütülebilir dosyanın tam yolunu yazdırır.
  • -V: -v seçeneğine benzer, ancak komut hakkında daha ayrıntılı, insan tarafından okunabilir bir açıklama yazdırır.

Örnekler

Aşağıdaki örnekler kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:

  1. Aynı isimde bir kabuk fonksiyonu varken harici diske kayıtlı komutu çalıştırma:

    • Diyelim ki ekrana mesaj basan bir ls kabuk fonksiyonumuz var:
      ls() { echo "Bu ozel bir ls fonksiyonudur!"; }
    • Orijinal /bin/ls sistem programını bu fonksiyonu atlayarak çalıştırmak için:
      command ls -la
  2. Bir komutun sistemdeki kaynağını/türünü sorgulama (kısa form):

    command -v cd

    Çıktı: cd (Yerleşik komut olduğunu belirtir)

    command -v ls

    Çıktı: /bin/ls (Harici sistem komutunun konumunu belirtir)

  3. Bir komutun sistemdeki kaynağını ayrıntılı sorgulama:

    command -V cd

    Çıktı: cd is a shell builtin

    command -V ls

    Çıktı: ls is /bin/ls


Ayrıca Bakınız

sh(1), csh(1), zsh(1), dash(1), builtin(1), type(1), which(1)

Tarihçe

builtin kılavuz sayfası ilk olarak FreeBSD 3.4 sürümünde yer aldı.