Linux/unixta man komutunun önemi

Esasında nasıl bir başlık atacağımı bilemedim ama aslında söylemek istediğim şey Linux tabanlı dağıtımlar ve unix tabanlı macOS gibi işletim sistemlerinde man komutu bazen hayat kurtarıcı olabiliyor.

Geçenlerde macOS ta başıma gelen bir olayı anlatacağım. Diyeceksiniz şimdi bu yazıyı neden yazdığın belli oldu. Evet haklısınız.

Hemen olaya geçecek olursam geçenlerde macbookta bir yazılım kurarken dökümanında /etc/hosts dosyasının değiştirilemez hale getiren iki komut girmemi istiyordu. Tereddüt ederek de olsa ne yaptığımı bilerekten bunu yaptım. Daha sonradan /etc/hosts dosyasını değiştirilemez hale getirmekten vazgeçtim. Çünkü belki ileride öyle bir durum olacak ki sırf bunun yüzünden karşıma engel olarak çıkacak ve bunun buradan kaynaklandığını bir türlü bulamayacaktım. Sistemi boş yere dağıtmayayım derli toplu dursun dedim. Bu iki komut da şu şekilde idi.

sudo chflags uchg /etc/hosts
sudo chflags schg /etc/hosts

Bu komutları girdikten sonra /etc/hosts dosyam o kadar ultra koruma altına girdiki yazma, değiştirme gibi yetkileri chmod gibi komutlarla imkanı yok değiştiremez oldum. Bundan kurtulmak istiyordum. Hemen Google’da araştırmaya başladım.

Google ve man komutuyla manuele baktığımdan 1. satırdaki komutu nouchg parametresi ile düzeltebiliyordum ancak schg işaretini nasıl kaldırılacağını Google’da ve manuelde bulamadığım için kaldıramadım ve yine hosts dosyamda hiçbir şekilde değişiklik yapamıyordum.

Bir süre sonra manuelde şu satırı gördüm.

Putting the letters “no” before or removing the letters “no” from a keyword causes the flag to be cleared.

Yani demek istiyordu ki chflagstaki parametrenin başına no koyarsanız o flagı kaldırmış olursunuz.

Ben de hemen noschg parametresini uyguladıktan sonra artık /etc/hosts dosyasının orijinal hale döndüğünü farkettim.

Sonuç olarak Google a bakmadan önce manueli güzelce incelemek bazen daha faydalı olabiliyor çünkü Google bu konularda sizi bazen hiçbir işinize yaramayacak bilgi çöplüğüne sokabiliyor. Google da sizin kullandığınız çekirdek sürümüyle alakalı olmayan sonuçlar getirebiliyor.

Bu arada bu yazıyı yazarken chatgpt ye neden bakmadım diye aklıma geldi. Şimdi baktım oradaki bilgi de yanlış. Orada parametrenin başına “-” yani “tire” işareti koyun diyor. Denedim olmadı.

Bu chatgpt örneği ile de man komutunun önemini bir kez daha pekiştirmiş olduk.