Linux sistemlerinde bir programın veya komutun hangi dizinde kurulu olduğunu öğrenmek için which komutunu kullanabilirsiniz. Bu komut, belirttiğiniz bir komutun veya programın bulunduğu dizini gösterir ve çoğunlukla yazılım yönetimi ve sistem yöneticiliği gibi işlemlerde yaygın olarak kullanılır.
which Komutunun Temel Kullanımı
which komutunun kullanımı oldukça basittir. Komutun veya programın adını yazdığınızda, bu programın çalıştırılabilir dosyasının tam yolunu döndürür. Aşağıda, which komutunun nasıl çalıştığını gösteren birkaç örnek bulunmaktadır:
Örneğin, python komutunun hangi dizinde bulunduğunu öğrenmek için şu komutu kullanabilirsiniz:
which python
Eğer Python kuruluysa, komut çalıştırıldığında, aşağıdaki gibi bir çıktı alırsınız:
/usr/bin/python
Bu çıktı, python komutunun /usr/bin/ dizininde bulunduğunu gösterir. Eğer program kurulu değilse veya $PATH değişkeni içinde belirtilen dizinlerde bulunmuyorsa, which komutu herhangi bir çıktı vermez.
which Komutunun Çalışma Prensibi
which komutu, çalıştırdığınız komutun bulunduğu tam yolu, sistemdeki $PATH çevresel değişkenine göre belirler. $PATH, komutların çalıştırılabilmesi için sistemin aradığı dizinlerin bir listesidir. Eğer bir program $PATH içinde belirtilmeyen bir dizine kurulmuşsa, which komutu bu programı bulamaz.
Örneğin, $PATH değişkeni şu şekilde olabilir:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Bu dizinler arasında, which komutu aradığınız programı bulmaya çalışır. Eğer bu dizinlerde program yoksa, which komutu herhangi bir sonuç döndürmez.
which Komutunun Kullanım Alanları
- Bir Programın Yüklü Olduğundan Emin Olma: Eğer bir programın yüklü olup olmadığını ve sistemde aktif olarak kullanılabilir durumda olduğunu öğrenmek istiyorsanız,
whichkomutunu kullanabilirsiniz. Örneğin,gitprogramının kurulu olup olmadığını kontrol etmek için şu komutu kullanabilirsiniz:which gitEğergitkuruluysa, komutun kurulu olduğu dizinin yolu gösterilecektir. Eğer kurulu değilse, komut herhangi bir çıktı vermez. - Program Sürümünün Kontrolü: Eğer birden fazla sürümü yüklü olan bir programınız varsa, hangi sürümün aktif olduğunu görmek için
whichkomutunu kullanabilirsiniz. Örneğin:which python which python3Bu komutlar, sistemde yüklü olan Python sürümlerinin kurulu olduğu dizinleri gösterecektir. - Çift Yüklü Programlar: Eğer birden fazla versiyon yüklü bir program varsa (örneğin,
nodevenodejs), hangi sürümün aktif olduğunu görmek içinwhichkomutunu kullanarak hangi versiyonun çalıştığını tespit edebilirsiniz:which node which nodejs - Yazılım Güncellemeleri ve Yönetimi: Yazılım güncellemeleri sırasında, doğru sürümün kullanıldığından emin olmak için
whichkomutuyla aktif olan sürümü kontrol edebilirsiniz. Bu, yazılımın güncel ve doğru sürümünün kullanıldığını doğrulamanıza yardımcı olur. - Hata Ayıklama ve Sistem Yönetimi: Eğer bir komut beklediğiniz gibi çalışmıyorsa, bu komutun hangi dizinden çalıştığını öğrenmek için
whichkomutunu kullanabilirsiniz. Yanlış dizinden çalıştırılan bir komut bazen hatalara yol açabilir. Bu durumda, komutun tam yolunu öğrenerek hatayı tespit edebilirsiniz.
Alternatif Yöntemler:
which komutu yalnızca $PATH değişkenindeki dizinlerde arama yapar. Eğer program bu dizinlerin dışında bir yere kurulmuşsa, which komutu programı bulamaz. Bu durumda, find veya locate komutları gibi alternatif araçları kullanarak daha geniş bir arama yapabilirsiniz.
1. find Komutu:
find komutu, belirttiğiniz dizin içinde dosya aramak için kullanılır. Sistem genelinde bir programı aramak için find komutunu kullanabilirsiniz. Örneğin, python komutunun bulunduğu yeri aramak için şu komutu kullanabilirsiniz:
sudo find / -name python
Bu komut, / (kök) dizini dahil tüm dizinlerde python adlı dosyayı arar.
2. locate Komutu:
locate komutu, sistemdeki dosyaları hızlı bir şekilde aramak için kullanılır. locate, sistemdeki dosyaların adlarını içeren bir veritabanına dayanır. locate komutunu kullanarak belirli bir programın yerini hızlıca öğrenebilirsiniz:
locate python
locate komutu, sistemdeki tüm python dosyalarının yollarını listeleyecektir. Ancak, bu komutun kullanabilmesi için sistemdeki veritabanının güncel olması gerekir.
3. whereis Komutu:
whereis komutu, find ve locate komutlarına göre daha özelleşmiş bir arama sağlar. Bu komut, belirli bir programın hem ikili dosyasını, hem kaynak dosyasını, hem de ilgili manuel sayfalarını arar. Örneğin, python komutunun kurulu olduğu yerleri bulmak için şu komutu kullanabilirsiniz:
whereis python
Bu komut, python komutunun çeşitli yerlerini (ikili dosyalar, kaynak kodları, ve manuel sayfalar) listeleyecektir.
Sonuç
which komutu, Linux sistemlerinde bir programın veya komutun kurulu olduğu dizini öğrenmek için kullanılan basit ancak çok faydalı bir araçtır. Özellikle sistem yönetimi ve yazılım geliştirme gibi alanlarda, doğru yazılım sürümünün kullanılmasını sağlamak ve programların doğru dizinlerde çalıştığından emin olmak için which komutu kullanılır. Bununla birlikte, which yalnızca $PATH içindeki dizinlerde arama yaptığı için, daha geniş bir arama yapmak için find, locate veya whereis gibi alternatif komutlar kullanılabilir.

Bir yanıt yazın