Linuxda dosya işlemleriyle ilgili bir problem!

Bu konuyu okuyanlar

Cappystarj0e

Öğrenci
Katılım
21 Kasım 2007
Mesajlar
3
Reaksiyon puanı
0
Puanları
0
Konsol komutlarıyla bir script (shell script) dosyası oluşturmak istiyorum.
Şimdi bir deneme isimli dosya düşünelim. Konsol komutlarıyla bu dosya içine girip herhangi bir satırdaki bilgiyi değiştirme imkanımız var mı? Mesela deneme dosyası aşağıdaki satırlardan oluşsun.

deneme 1 2 3 4
bu bir deneme dosyasıdır
bu da 3. satır olsun

üstteki satır boş
bu da son satır olsun


bu dosyaya giriş yapıp 3. satırdaki bu da 3. satır olsun yazısını değiştirip dosyayı tekrar kaydetmek istiyorum. bir örnek kod ya da kaynak site verebilecek olan var mı?
 

babayaroxx

Öğrenci
Katılım
1 Kasım 2006
Mesajlar
5
Reaksiyon puanı
0
Puanları
0
ilk önce herhangi bir editöre girip yeni dosya oluşturduktan sonra komutlarla istediğin işlemleri yaptıra bilirsin. mesala

ls
O an bulunulan dizinin içeriğini listeler.
ls -al | more
O an bulunulan dizindeki bütün dosyaları gösterir (. ile başlayan gizli dosyaları da) Komut burada more komutuna yönlendirilmiştir, bu sayede çıktının bir ekrandan fazla olması durumunda bir ekranlık çıktıdan sonra devamını göstermek için bir tuşa basmanız gerekir.
cd dizin
dizin dizinine geçilir; dizin verilmezse ev dizinine geçilir.
cp kaynak hedef
Bir yerdeki dosya ya da dizinleri başka bir yere kopyalamak içindir. Unix'lerde genelde bu tür komutlarda her zaman kaynak önce hedef sonra yazılır.
mcopy kaynak hedef
DOS'tan Unix'e ya da tersine (disketi bağlamanız şart değil) bir dosyayı başka bir yere kopyalar. Aynı mantıkta çalışan mdir, mcd, mren, mmove, mdel, mmd, mrd, mformat gibi komutlar da vardır.
ln hedef [isim]
Sözkonusu hedef e sabit bağ oluşturur. Sözkonusu dosyalar iki yerde de var gibi gözükür, herhangibir değişiklik diğerini de etkiler, biri silindiğinde diğeri kalır. Sabit bağların kısıtlamaları, bağ dosyası ile asıl dosyanın aynı dosya sistemi içinde olması gerekliliği ve dizinlerle özel dosyalara sabit bağ verilememesidir.
ln -s hedef [isim]
hedef 'e bir sembolik bağ dosyası (isim verilmezse hedef ile aynı isimde) oluşturur. Sembolik bağda hedef 'in nerede bulunacağının bilgisi vardır. Sembolik bağlar dizinler için de kullanılabilir. Tek sorunu hedef silindiğinde bağ bozulmuş olur.
rm dosya ...
Verilen dosya ları siler. Sileceğiniz dosyanın sahibi olmanız gerekir.
mkdir dizin
dizin dizinini oluşturur.
rmdir dizin ...
Belirtilen dizin 'ler boşsa silinir.
rm -r dosya ...
Dosya ve dizinleri ve dizinlerin içindeki dizinleri ardarda siler. Root olarak kullanırken dikkat edin, çünkü herşeyi silebilirsiniz!.
cat dosya | more
Bir dosyayı sayfa sayfa görüntülemek için kullanılır.
less dosya
Önceki komuta eşdeğerdir, biraz daha fazla özellikleri vardır
vim dosya
Bir metin dosyasını düzenlemek için kullanılır. Aynı türden nano, joe, mcedit gibi metin düzenleyicileri de kullanabilirsiniz, ancak vim ile UTF-8 kodlu metinleri de düzenleyebilirsiniz. Diğerleri bunu yapamaz.
find / -name "dosya"
dosya adlı dosyayı en üst dizinden itibaren aramaya başlar. Dosya ismi, * ve ? gibi arama karakterleri de içerebilir. Örneğin benim sistemimde "fazlames*" dizgesi ile fazlamesai.net.txt ve fazlamesai.org.txt dosyaları bulunuyor.
locate dosyaismi
find gibidir, fakat düzenli olarak oluşturulan bir veritabanına bağlıdır, sistemdeki son değişikliklerden haberi olmayabilir.
touch dosya
dosya isimli dosyanın tarih bilgilerini deşiştirir. Eğer bu dosya yoksa sıfır bayt uzunluğunda oluşturur.
xinit
Pencere yöneticisi olmayan bir X oturumu açar.
startx
Pencere yöneticili bir X oturumu açar. DOS'daki win komutu gibidir.
startx -- :1
1 numaralı ekranda X oturumu açar, ilk ekran 0 dır ve komut için öntanımlıdır. Ekranlar arasında <Ctrl><Alt><F7-F8 ...> ile geçiş yapabilirsiniz.
xterm
Basit bir X uçbirimi açar. Daha hafif sürümleri (rxvt, aterm, eterm gibi) bulunur ve tercih edilir.
shutdown -h now
Sistemi durdurur. ATX sistemlerde ayrıca makinayı kapatır.
halt
shutdown -h now ile aynıdır. Sistemi durdurur.
reboot
shutdown -r now ile aynıdır. Sistemi yeniden başlatır.

Yüklü çekirdek modüllerinin listesi.
set, declare, export
Üçü de kabukta tanımlı ortam değişkenlerinin listesini verir. Tümünü (miras alınanlar dahil) sadece declare verir.
echo $PATH
PATH ortam değişkeninin değerini gösterir. PATH, kullanıcı tarafından çalıştırılabilecek yazılımların aranacakları yerleri kabuğa bildirmek için kullanılır.
dmesg | more
Sistem açılışından itibaren çekirdek tarafından üretilen iletiler. Bu iletiler /proc/kmsg dosyasında bulunur ve dmesg komutu sadece tampondaki son iletileri gösterir


bu komutlar temel olarak bilmen lazım ve bunlar gibi bir çook komut var bunları bildikten sonra istediğin shell script dosyasını oluştura bilirsin. (sh) uzantılı kaydettikten sonra (./) buyla path ini yani bu klasörün altında olduğunu belirterek çalıştıra bilirsin.

http://www.belgeler.org/howto/kitapcik-komutlar-genel.html

bence ilk işin komutlar olsun :)


 

Cappystarj0e

Öğrenci
Katılım
21 Kasım 2007
Mesajlar
3
Reaksiyon puanı
0
Puanları
0
dostum sitenin reklamını yapma. benim sana sorduğumla senin bana verdiğin cevap arasında dağlar kadar fark var. ben problemimi hallettim merak etme de senin amacın cevap vermekten ziyade kendi sitenin reklamını yapmak olmuş + "bence ilk işin komutlar olsun :)" tarzı cümleler kuracağına ne dediğimi anla önce.
 

Cappystarj0e

Öğrenci
Katılım
21 Kasım 2007
Mesajlar
3
Reaksiyon puanı
0
Puanları
0
Bu arada soruyla ilgili çözüm şu:

deneme.txt adlı bir dosyamız var ve yukarıdaki şeyler o dosyanın içinde olsun. script dosyamızı da script.sh olarak hazırlayalım ve script.sh içine aşağıdakileri yazalım.

sed "s/bu da \3\. satır olsun/ $1 /g" deneme.txt > tmp
mv tmp deneme.txt


script.sh dosyasını kaydettikten sonra konsolda;

sh script.sh denemeeeee

yazarsak sonuç olarak deneme.txt'de "bu da 3. satır olsun " yazan satırı değiştirmiş oluruz.
 
Üst