Shell etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Shell etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

22 Temmuz 2020 Çarşamba

Unix'te Text/IP Replacement

Merhaba Arkadaşlar,

Üst üste Windows konuları yazdım. Bu defa da unix'te kullanabileceğiniz bir bilgi paylaşalım. Unix makinanızda bir text ya da IP aramak istiyorsunuzdur, yetkiniz dahilinde. Bunu çok hızlı yapabileceğiniz mini bir shell scriptini aşağıda paylaşıyorum:

for x in `find . -name \* | xargs grep -l "127.0.0.1"`;
do
echo $x
done

Sarı ile verdiğim IPyi bulunduğunuz dizin ve onun alt dizinlerinde aratacak, yetkiniz varsa da listeleyecektir.

Mesela bir connection string değişimi veyahut server IP değişimi yapacaksınız. IPleri listelettiniz yukarıdaki gibi. Tek tek elle mi değiştireceksiniz? Tabi ki hayır. Küçük bir ilave ile onu da aşağıdaki gibi yapabilirsiniz:

for x in `find . -name \* | xargs grep -l "127.0.0.1"`;
do
echo $x
sed "s@127.0.0.1@19.86.19.03@g" $x > temp;
mv temp $x;
done

Sarı ile yazılı olan IP yerine --> yeşil ile yazılı olan IP yazılacaktır. 

Sonra görüşürüz.

1 Nisan 2012 Pazar

Shell: "" vs ''

Bu kez tırnak işaretlerinin farkından bahsedeceğim. :)
Komik bir konu gibi görünse de önemli bir ayrım var aralarında.
"" yaptığınızda özel karakterlere herhangi bir şey yapamazsınız. Onlar yine özel karakterdir. :)
'' yaptığınızda özel karakterler artık sıradanlaşır. :) Yani özel karakter olmaz da, normal bir ifade haline gelirler.
Örnek üzerinde daha iyi anlaşılacaktır:

-bash-3.00$ a=3

-bash-3.00$ echo $a
3
-bash-3.00$ echo "$a"
3
-bash-3.00$ echo '$a'
$a
 
İlk satırda a değişkenine 3 değerini verdikç
$ işareti, a'nın değerini bize döndürdü ikinci satırda.
Üçüncü satırda çift tırnak arasına aldığımızda, yukarıda bahsettiğim gibi, özel karakterler anlamını yitirmez. Yani yine a'nın değerini döndürür $ işareti bize. Dördüncü satırda 3 değerini görmektesiniz.
Beşinci satırda ise tek tırnak arasına aldığımızda, özel karakter anlamını yitirir ve normal bir text ifade imiş gibi aynen ekrana yazdırılır.
 
İyi akşamlar herkese.

Shell(Unix)'de "passwd" Dosyası

Çoğunuzun belki de bildiği bir şeyden bahsedeyim kısaca. Shell'de passwd dosyasının içini açalım.

Malumunuz shell, unix'te bizim kullandığımız bir arayüz.
Shell'de /etc altında passwd diye bir file mevcut. Bu file içinde kullanıcılarla ilgili bilgiler bulunmakta.

Örneğin pg komutu ile passwd dosyasının içine bakalım:
$ pg /etc/passwd
root:x:0:0:Super-User:/:/sbin/sh
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
nobody:x:60001:60001:NFS Anonymous Access User:/:
noaccess:x:60002:60002:No Access User:/:
gurkan:x:100000:1::/export/home/gurkan:/usr/bin/bash

Son satırı inceleyelim. İlk kolon kullanıcının adı: gurkan
İkinci kolon şifre kısmı, gösterilmemiş.
Üçüncü kolon userID. Biz için isim önemli ama shell ona sayısal bir ID veriyor.
Dördüncü kolon da bu kullanıcının grupID'si.
Arada boş geçilen kolon da açıklama kısmı.
Sondan bir önceki kısım da sisteme login olununca nereye düşeceği:/export/home/gurkan
Son kolon ise ne çalıştıracağı:bash(ksh, csh gibi yani). Örneğin nobody kullanıcısının shell'i belirtilmemiş, shell'e düşmez o kullanıcı hiçbir zaman.

Sonra görüşürüz.