linux da yerleşik komutlar

Başlatan sayz, 27 Kasım 2012 - 03:24:42

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

sayz

biliyorsunuz linux da yerleşik komutlar (built-in commands)[1] var, bunlardan biri de cd komutu işte bu cd komutu ile ilgili kafama takılan bir konu var:

bir sunumda şöyle geçiyor:

Yerleşik komutlar çok daha hızlı çalışır, neden?
Bu komutlar çalıştırıldığında proses oluşturma/anahtarlama maliyeti yoktur.
Fakat yerleşik komutların varlığı sadece "yüksek performans" ile açıklanamaz.
Örneğin cd komutu yerleşik olmak zorundadır.

son satırdaki "cd komutu yerleşik olmak zorundadır."  cümlesi kafama takıldı. neden yerleşik olmak zorundadır, fikri olan var mı?


[1]: http://it.toolbox.com/wiki/index.php/Built-in_commands

if

Verdiğiniz bağlantıda sorunuza cevap var:)

Alıntı Yap... as running them in another process cannot affect the current shell.


sayz

@if bu cümleyi açıklayabilir misin acaba? benim anladığım kadarı ile "bunlar başka bir proseste çalışırken geçerli kabuğu etkilemezler" demek istemiş.  doğru mu anladım bilmiyorum ama bana pek anlamlı gelmedi.

burk

İlgili cümlenin öncesini de okumak lâzım;

Alıntı YapCommands which change the execution environment (e.g., cd, ulimit) must be built into the shell, as running them in another process cannot affect the current shell.
Ortam/Çevre düzenleyen komutlar kabuğun içinde yapılandırılmış olmalı ki başka süreçler içinde de çalışan bu komutlar mevcut kabuğu etkileyemesin.

if

@sayz, bildiğimden değil ama anladığımı anlatayım. Sizinle beraber ben de öğreneyim.

Diyelimki bir oturumda/uçbirimde cd /var/log komutuyla ilgili dizine girdiniz, bir başka oturum/uçbirim açıp bu seferde cd /etc/xdg komutunu verdiğiniz. Eğer cd komutu yerleşik olmasaydı ilk oturumdaki dizin de /etc/xdg olarak değişecekti.

http://www.belgeler.org/bashref/bashref_shell.builtins.html