Hoşgeldin Ziyaretçi



Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Temel Komut Satırı Bilgisi
#1
Biraz sonra Python programlama diliyle ilgili ilk çalışmalarımızı yapmaya başlayacağız. Ama herhangi bir programlama faaliyetine girişmeden önce mutlaka biliyor olmamız gereken bazı şeyler var. Örneğin, programlama öğrenmek isteyen bir kişi her şeyden önce, program yazmayı tasarladığı işletim sisteminde komut satırının nasıl kullanılacağına dair temel bilgileri edinmiş olmalıdır.
Bu temel bilgilere halihazırda sahip olup olmadığınızı anlamak için aşağıdaki önermelerin sizin açınızdan doğru olup olmadığını kendi kendinize sorgulayabilirsiniz:
  1. Kullandığım işletim sisteminde komut satırına nasıl ulaşacağımı biliyorum.
    dir
  2. veya
    ls
  3. komutlarının ne işe yaradığını biliyorum.
    cd
  4. komutunun nasıl kullanılacağını biliyorum.
  5. Komut satırını açtıktan sonra, o anda hangi dizin altında bulunduğumu anlayabilirim.
    echo $HOME
  6. veya
    echo %USERPROFILE%
  7. komutlarının ne işe yaradığını, bu komutlardaki
    $HOME
  8. ve
    %USERPROFILE%
  9. ifadelerinin ne anlama geldiğini gayet iyi biliyorum.
  10. Herhangi bir dosyayı veya dizini, sembolik bağ ile başka bir konuma bağlayabilirim.
  11. permission denied ifadesinin ne anlama geldiğini biliyorum. Bu hataya bakarak, sorunun nereden kaynaklandığını tahmin edebilir, çözümün ne olduğunu kestirebilirim.
  12. Bir dosyaya çalıştırma yetkisi verebilirim.
  13. Masaüstünde bulunan bir dosyayı, komut satırını kullanarak /usr/bin dizini içine kopyalayabilirim, taşıyabilirim veya bu dosyayı silebilirim.
  14. Bir dosya silmek ile dizin silmenin birbirinden farklı şeyler olduğunu ve birbirinden farklı işlemler uygulamak gerektiğini biliyorum.
Eğer yukarıdaki önermelerin tamamına ‘doğru’ cevabını verebiliyorsanız bu bölümü hızlıca gözden geçirip yolunuza devam edebilirsiniz. Ama eğer komut satırı konusunda bilginiz yoksa veya yetersizse, üstelik yukarıdaki önermelere de olumlu cevap veremiyorsanız bu bölümü iyice sindirmeden lütfen bir sonraki bölüme geçmeyin. Bu bölümü hakkıyla tamamlamanız kitaptan sağlıklı bir şekilde yararlanabilmeniz açısından büyük önem taşıyor. Zira bütün programlama dillerinde olduğu gibi, Python’da da komut satırı en büyük yardımcımız olacak. Bu kitapta Python programlama dilinin temellerini komut satırı üzerinde çalışarak öğreneceğiz. Özellikle yazacağımız ilk programlar komut satırında çalışacak. O yüzden, hiç değilse bu kitaptan yararlanabilmek için, kullandığınız işletim sisteminin komut satırına aşina olmalı, yukarıdaki önermelerin sizin için doğru olduğundan emin olmalısınız. Ayrıca sırf bu kitaptan yararlanabilmek için değil, bütün programcılık maceranız boyunca pek çok farklı sebepten, komut satırı üzerinde çalışmaya ihtiyaç duyacaksınız. İşte bundan ötürü, en azından bu kitabı rahatlıkla takip etmenizi sağlayacak kadar komut satırı bilgisini bu bölümde edinmenizi sağlamaya çalışacağız.
Komut Satırına Nasıl Ulaşırız?
Elbette komut satırı hakkında bilmemiz gereken ilk şey, kullandığımız işletim sisteminde komut satırına nasıl ulaşabileceğimizdir.
Eğer Ubuntu GNU/Linux dağıtımı üzerinde Unity masaüstü ortamını kullanıyorsanız sadece Ctrl+Alt+T tuşlarına basarak komut satırına ulaşabilirsiniz. Bu komutu verdiğinizde şuna benzer bir ekranla karşılaşacaksınız:
Alıntı:shelllins.png
Windows 7 kullanıcıları ise Başlat > Tüm Programlar > Donatılar > Komut İstemi yolunu takip ederek komut satırına ulaşabilir. Bu işlemleri yapan Windows kullanıcıları şöyle bir ekranla karşılaşacak:
Alıntı:shellwins.png
Windows kullanıcıları komut satırına ulaşmak için alternatif olarak şu yöntemi de kullanabilir:
Alıntı:
  1. Klavyenizdeki Windows logolu tuşa ve R tuşuna birlikte basarak ‘çalıştır [run]’ penceresini açın.
  2. Daha sonra, açılan pencereye
    cmd
  3. yazın ve Enter tuşuna basın.
Eğer Windows 7 veya Ubuntu dışında bir işletim sistemi kullanıyorsanız, kullandığınız işletim sisteminde komut satırına nasıl ulaşabileceğinizi öğrenmek için http://goo.gl/ZyjAU adresini ziyaret edebilirsiniz.
Böylece farklı işletim sistemlerinde komut satırına nasıl ulaşacağımızı öğrenmiş olduk. Ancak iyi bir programcı olabilmek için komut satırına ulaşabilmek yeterli değildir. Ulaştığımız bu komut satırını nasıl kullanacağımızı da bilmemiz gerekiyor. Örneğin komut satırı üzerinde dosyalarımızı nasıl listeleyeceğimizi ve nasıl dizin değiştirebileceğimizi de bilmeliyiz. Dediğimiz gibi, eğer bu işlemleri nasıl yapacağınızı zaten biliyorsanız bir sonraki başlığa geçebilirsiniz. Ama eğer bilginizden emin değilseniz okumaya devam edin.
Hangi Dizin Altındayım?
Şimdi biraz önce anlattığımız gibi, kullandığımız işletim sistemine uygun bir şekilde komut satırını başlatalım. Yukarıdaki ekran görüntülerinden de görebileceğiniz gibi, komut satırını başlattığımızda, siyah zemin üzerinde Windows sistemlerinde C:\Users\falanca>, GNU/Linux sistemlerinde ise istihza@netbook:~$ gibi bir ibare ile karşılaşıyoruz. Burada elbette ‘falanca’, ‘istihza’ ve ‘netbook’ ifadeleri bilgisayar adına ve kullanıcı adınıza bağlı olarak farklı olacaktır. Örneğin kullanıcı adınız ‘ahmet’ ise, yukarıdaki ibare Windows’ta C:\Users\ahmet olacaktır. Aynı şekilde kullanıcı adınız ‘mehmet’, bilgisayar adınız da ‘evbilgisayari’ ise GNU/Linux’ta komut satırını başlattığınızda mehmet@evbilgisayari:~$ gibi bir ibare ile karşılaşabilirsiniz. Ya da eğer kullandığınız Windows sürümü Türkçe, kullanıcı adınız da ‘zeynep’ ise C:\Kullanıcılar\zeynep ibaresini görebilirsiniz.
Bu ibareler, komut satırını başlattığımızda hangi dizinde bulunduğumuzu gösteriyor. Buradan anladığımıza göre, Windows’ta C:\Users\falanca, GNU/Linux’ta ise /home/istihza dizini altındayız.
Windows’taki ekran görüntüsünden hangi dizin altında bulunduğumuz rahatlıkla anlaşılabiliyor, ama GNU/Linux’taki ekran görüntüsünde görünen istihza@netbook:~$ ifadesine bakarak, /home/istihza dizini altında bulunduğumuzu çıkarmak pek kolay olmayabilir. Eğer o anda hangi dizin altında bulunduğunuzdan emin olmak istiyorsanız, GNU/Linux’ta şu komutu verebilirsiniz:
pwd

Windows’ta ise aynı işlev için şu komutu kullanıyoruz:
cd

Windows’un komut satırında C:\Users\falanca> ibaresi, GNU/Linux’un komut satırında ise istihza@netbook:~$ ibaresi görünürken, yukarıdaki komutlardan işletim sistemimize uygun olanı yazıp Enter düğmesine basarsak Windows’ta C:\Users\falanca, GNU/Linux’ta ise /home/istihza gibi bir çıktı alırız.
Kod:
pwd
ve
Kod:
cd
komutları, o anda hangi dizin altında bulunduğumuzu açık bir şekilde gösteriyor. Bu arada, daha önce de söylediğimiz gibi, sizin bilgisayarınızdaki kullanıcı adına bağlı olarak yukarıda gösterilenlerden farklı çıktılar alabilirsiniz.
Dizin İçeriğini Listelemek
Kod:
pwd
veya
Kod:
cd
komutları yardımıyla o anda hangi dizin altında bulunduğumuzu öğrendik. Peki acaba o anda altında bulunduğumuz dizinde hangi dosya ve dizinler var? Bunu bilmeniz önemlidir, çünkü programlama maceranız boyunca, o anda içinde bulunduğunuz dizinde hangi dosyaların olduğunu tespit etmenizi gerektirecek durumlarla mutlaka karşılaşacaksınız. Örneğin bir dizin içindeki herhangi bir dosyayı komut satırı üzerinden açacaksanız, öncelikle o dosyanın dizin içinde yer alıp yer almadığından emin olmanız gerekebilir.
GNU/Linux’ta, o anda altında bulunduğumuz dizinin içeriğini listelemek için şu komuttan yararlanıyoruz (komut küçük L harfi ile başlıyor):
ls

GNU/Linux kullanıcıları, komut satırında istihza@netbook:~$ ibaresi görünürken bu komutu verdiğinde şuna benzer bir çıktı alacaktır:
deneme.py Documents  makaleler.rst Pictures Templates
Desktop   Downloads  Music         Public   Videos

Bu çıktıda sekiz dizin, iki de dosya görüyoruz. GNU/Linux’ta dizin ve dosyalar komut ekranında farklı renklerle gösterilir. Bu sayede dizin ve dosyaları birbirinden rahatlıkla ayırt edebilirsiniz.
Windows komut satırında ise
Kod:
ls
komutu yerine şu komutu kullanacağız:
dir

Windows’ta da komut satırında C:\Users\falanca> ibaresi görünürken bu komutu verirseniz şuna benzer bir çıktı alırsınız:
27.06.2011  12:31    <DIR>          Belgeler
17.11.2011  10:09    <DIR>          Desktop
27.09.2011  15:35               183 TESTLOG.log
28.09.2010  12:13               251 tkcon.hst
31.03.2011  14:49    <DIR>          Start Menu
02.11.2009  11:19    <DIR>          Sık Kullanılanlar

             16 Dosya       13.376.408 bayt
             22 Dizin   28.174.561.280 bayt boş

Gördüğünüz gibi,
Kod:
dir
komutu da, tıpkı GNU/Linux’taki
Kod:
ls
komutu gibi, o anda içinde bulunduğunuz dizinde yer alan dosya ve klasörleri listeliyor.
Yukarıdaki çıktıda, sol tarafında ‘<DIR>’ ibaresi taşıyan öğeler birer dizindir. Eğer sol tarafta herhangi bir ibare yoksa o öğe bir dosyadır. Örneğin yukarıdaki çıktıda Belgeler, Desktop, Start Menu ve Sık Kullanılanlar birer dizinken, TESTLOG.log ve tkcon.hst birer dosyadır.
Dizin Değiştirme İşlemleri
Böylece komut satırına nasıl ulaşacağımızı ve dizinlerin içeriğini nasıl listeleyeceğimizi öğrenmiş olduk. Bunun dışında, komut satırı ile ilgili olarak bilmemiz gereken önemli bir konu da dizinler arasında hareket edebilme kabiliyetidir. Yani eğer iyi bir programcı olmak istiyorsak, komut satırına ulaşıp hangi dizin altında bulunduğumuzu tespit edebilmenin yanısıra, komut satırını kullanarak o anda bulunduğumuz dizinden başka dizinlere geçiş de yapabiliyor olmalıyız.
Dizinler arasında geçiş yapabilmek için
Kod:
cd
adlı bir komuttan yararlanacağız.
Windows kullanıcıları bu komutun, GNU/Linux’taki
Kod:
pwd
komutunun eşdeğeri olarak da kullanıldığını biliyor.
Bu komut hem GNU/Linux’ta hem de Windows’ta çalışır. Dolayısıyla bu komutu her iki işletim sisteminde de rahatlıkla kullanabilirsiniz.
Peki bu komutu nasıl kullanacağız?
GNU/Linux ve Windows’ta
Kod:
ls
veya
Kod:
dir
komutlarıyla elde ettiğiniz çıktılara tekrar bakın. Bu çıktılarda o dizinin içeriğinde yer alan dosya ve dizinleri görüyorsunuz. İşte bu çıktılarda görünen dizinlerin içine girebilmek için
Kod:
cd
komutundan yararlanabilirsiniz. Diyelim ki biz o anda bulunduğumuz konumdan masaüstüne geçmek istiyoruz. Bildiğiniz gibi, bütün işletim sistemlerinde masaüstü dizini ‘Desktop’ adıyla gösteriliyor. Yukarıda verdiğimiz
Kod:
dir
ve
Kod:
ls
komutlarının çıktılarını kontrol edecek olursanız hem Windows’ta hem de GNU/Linux’ta ‘Desktop’ adlı dizinleri görebilirsiniz. Buna göre bütün işletim sistemlerinde şu komut yardımıyla masaüstüne ulaşabiliriz:
cd Desktop

Daha önce de söylediğimiz gibi
Kod:
cd
komutu dizin değiştirmemizi sağlar.
Kod:
cd Desktop
dediğimizde masaüstünün bulunduğu dizine gelmiş oluyoruz. Eğer biraz önce öğrendiğimiz
Kod:
dir
veya
Kod:
ls
komutlarını bu konumda verecek olursanız, masaüstünde bulunan dosyalarınızın listesini görürsünüz.
Bazı Türkçe GNU/Linux dağıtımlarında masaüstüne ulaşmak için
Kod:
cd Desktop
komutu yerine
Kod:
cd Masaüstü
komutunu vermeniz gerekebilir.
Yalnız burada dikkat etmemiz gereken önemli bir konu var. Yukarıda verdiğimiz
Kod:
cd Desktop
komutunun bizi masaüstüne götürebilmesi için, bu komutu verdiğimiz sırada altında bulunduğumuz dizinin Windows’ta C:\Users\falanca, GNU/Linux’ta ise /home/istihza olması gerekiyor. Neden? Çünkü
Kod:
cd
komutu ile ulaşmaya çalıştığımız Desktop (Masaüstü) dizini Windows’ta C:\Users\falanca dizinin, GNU/Linux’ta ise /home/istihza dizininin içinde bulunuyor. Dolayısıyla sadece
Kod:
cd Desktop
yazarak masaüstüne ulaşabiliyoruz. Bunun ne demek olduğunu daha iyi kavramak için isterseniz birkaç deneme çalışması yapalım.
Biraz önce
Kod:
cd Desktop
komutunu vererek masaüstüne gelmiştik. Yani şu anda Windows’ta C:\Users\falanca\Desktop, GNU/Linux’ta ise /home/istihza/Desktop dizini içinde bulunuyoruz. Şimdi masaüstünün bulunduğu konumdayken şu komutu verelim:
cd ..

Bu komut bizi Windows’ta C:\Users\falanca, GNU/Linux’ta ise /home/istihza dizinine geri götürecektir. Dikkat ederseniz yukarıdaki komut bizi bir üst dizine götürüyor. Bu komutu tekrar verirseniz yine bir üst dizine, yani Windows’ta C:\Users, GNU/Linux’ta ise /home dizinine gidersiniz.
Şimdi ekranda C:\Users veya /home ibaresi görünürken şu komutu vererek masaüstüne ulaşmaya çalışın:
cd Desktop

Gördüğünüz gibi, bu defa bu komut bizi masaüstüne götürmek yerine bir hata mesajı verdi. Çünkü o anda bulunduğumuz konumda artık Desktop bir alt dizin değil. Bu durumu teyit etmek için yine
Kod:
dir
ve
Kod:
ls
komutları yardımıyla dizin içeriğini kontrol edebilirsiniz. Gördüğünüz gibi, bu dizin içeriğini gösteren çıktıda Desktop adı görünmüyor. Eğer aldığınız çıktıda Desktop yoksa, elbette
Kod:
cd Desktop
komutu sizi masaüstüne götürmeyecektir. Böyle bir durumda masaüstüne ulaşmak için Windows’ta şöyle bir komut vermemiz gerekir:
cd falanca\Desktop

GNU/Linux’ta ise:
cd istihza/Desktop

Buradaki mantığı kavradığınızı zannediyorum. Yukarıdaki komutları verirken bulunduğumuz konum Windows’ta C:\Users, GNU/Linux’ta ise /home. Bu konum ile masaüstü arasında Windows’ta falanca, GNU/Linux’ta ise istihza klasörleri yer alıyor. Dolayısıyla bu konumdan masaüstüne ulaşabilmek için önce falanca klasörüne (GNU/Linux’ta istihza klasörüne), oradan da Desktop klasörüne ulaşmamız gerekiyor.
Alternatif olarak, bir dizine ulaşmak için o dizinin tam adresini de yazabiliriz. Örneğin GNU/Linux’ta o anda hangi konumda bulunursak bulunalım, şu komutla masaüstüne ulaşabiliriz:
cd /home/istihza/Desktop

Dikkat ederseniz, burada kök dizinden (/) itibaren Desktop dizinine kadar olan yolu eksiksiz bir biçimde yazdık.
Aynı işlev için Windows’ta şöyle bir komut kullanıyoruz:
cd C:\Users\falanca\Desktop

Burada da C:\ dizininden Desktop dizinine kadar olan yolu eksiksiz olarak yazdık. Böylece komut satırında o anda hangi konumda bulunduğumuzdan bağımsız olarak, masaüstünün bulunduğu konuma geçebilmiş olduk.
Çevre Değişkenleri
Bu noktaya gelinceye kadar komut satırına ilişkin epey şey öğrendiniz. O halde artık size şöyle bir soru sorabilirim:
Diyelim ki bir program yazdınız. Kullanıcılarınızın programınızı kolaylıkla çalıştırabilmesini sağlamak için de programınızın kısayolunu kullanıcılarınızın masaüstlerine yerleştirmek istiyorsunuz. Peki ama bu işlemi nasıl yapacaksınız?
Böyle bir şey yapabilmek için, kullanıcılarınızın masaüstüne giden yolu tespit edebilmeniz lazım. Ama burada şöyle bir problem var. Bildiğiniz gibi herkesin masaüstüne giden yol aynı değil. Bir bilgisayardaki masaüstünü bulabilmek için, o bilgisayarı kullanan kişinin kullanıcı adını da biliyor olmanız lazım. Çünkü masaüstünün bulunduğu dizin kullanıcı adına bağlı olarak farklı olacaktır.
Mesela /home/istihza/Desktop veya C:\Users\selin\Desktop
Hatta işletim sisteminin dilinin Türkçe veya İngilizce olmasına göre de masaüstünün yolu farklı olabilir. Mesela C:\Kullanıcılar\sami\Desktop...
Peki biz bunca farklılıkla karşı karşıyayken, masaüstüne giden yolu sağlıklı bir şekilde nasıl tespit edeceğiz?
İşte böyle bir durumda imdadımıza çevre değişkenleri (veya ‘ortam değişkenleri’) denen birtakım araçlar yetişecek. Peki nedir bu çevre değişkenleri denen şey?
Çevre değişkenleri, kullandığımız işletim sisteminde belli değerlerin atandığı birtakım isimlerdir. Bu tanım yeterince açık olmayabilir. O yüzden isterseniz çevre değişkenlerini bir örnekle anlatmaya çalışalım.
Mesela Windows komut satırında şu komutu verelim:
echo %USERPROFILE%

Bu komut şuna benzer bir çıktı verir:
C:\Users\falanca

GNU/Linux’ta aynı işlev için şu komutu kullanıyoruz:
echo $HOME

Bu da şuna benzer bir çıktı verir:
/home/istihza

İşte Windows’ta %USERPROFILE%, GNU/Linux’ta ise $HOME adlı bu değişkenlere teknik dilde ‘çevre değişkeni’ (environment variable) adı verilir.
Burada gördüğümüz
Kod:
echo
komutu herhangi bir değeri ekrana yazdırmamızı sağlayan bir sistem komutudur. Örneğin yukarıda $HOME ve %USERPROFILE% değişkenlerinin değerini ekrana basabilmek için
Kod:
echo
komutundan yararlandık. Bu komut hem Windows’ta hem de GNU/Linux’ta aynı şekilde çalışır.
Gördüğünüz gibi Windows’ta %USERPROFILE%, GNU/Linux’ta ise $HOME adlı çevre değişkeni, kullanıcı dizininin adını içinde saklıyor. Dolayısıyla bu komut Ahmet adlı kişinin bilgisayarında çalıştırılırsa farklı, Ayşe adlı kişinin bilgisayarında çalıştırılırsa farklı bir çıktı verecektir. Bu değişkenleri kullanarak, masaüstüne giden yolu çok rahat bir şekilde tespit edebilirsiniz:
[Windows]
echo %USERPROFILE%\Desktop

[GNU/Linux]
echo $HOME/Desktop

Gördüğünüz gibi, yukarıdaki değişkenleri kullandığımızda, işletim sistemimiz bu değişkenlerin değerini otomatik olarak yerine koyabiliyor.
Bu sayede, bir program yazdığınızda, programınızı kullanan kişinin masaüstünün tam adresini tespit edip, programınızın kısayolunu, programınızı kuran kişinin masaüstüne otomatik olarak atabilirsiniz.
Tahmin edebileceğiniz gibi, bu çevre değişkenlerini kullanarak, dizinler arasında dolaşma işlemlerinizi de kolaylaştırabilirsiniz:
Bildiğiniz gibi, dizinler arasında dolaşmak için
Kod:
cd
adlı bir komuttan yararlanıyoruz. Mesela masaüstüne ulaşmak için
Kod:
cd Desktop
gibi bir komut kullanıyoruz. Ancak bu komutla masaüstüne ulaşabilmemiz için, masaüstünün o anda bulunduğumuz dizin konumuna göre bir alt dizin olması gerekiyor. Şimdiye kadar yaptığımız örnekler, masaüstünün bir alt dizin olmadığı durumlarda masaüstüne
Kod:
cd
komutu ile ulaşmanın sıkıntılı bir iş olduğunu bize gösterdi. Ama neyse ki işletim sistemleri bize çevre değişkenleri gibi bir kolaylık sunuyor. Bu değişkenleri kullanarak, hangi konumda olursak olalım rahatlıkla masaüstüne ulaşabiliriz:
[Windows]
cd %USERPROFILE%\Desktop

[GNU/Linux]
cd $HOME/Desktop

Bunun dışında, GNU/Linux işletim sistemlerinde ~ işareti de kullanıcı dizininin adını tutar. Örneğin, kullandığınız GNU/Linux işletim sisteminin komut satırında şu komutu verin:
echo ~

Bu komut şuna benzer bir çıktı verecektir:
/home/istihza

Dolayısıyla GNU/Linux’ta şu komutu hangi konum altından verirseniz verin masaüstüne ulaşabilirsiniz:
cd ~/Desktop

Böylece ‘çevre değişkeni’ kavramını da anlatmış ve bu esnada birkaç önemli çevre değişkenini incelemiş olduk. Elbette GNU/Linux ve Windows’taki çevre değişkenleri yukarıda gösterdiklerimizden ibaret değildir. Sisteme ve o sistemi kullanan kişiye ilişkin pek çok önemli değeri içinde barındıran başka çevre değişkenleri de bulunur. Kullandığınız işletim sisteminde hangi çevre değişkenlerinin bulunduğunu öğrenmek için şu komutu verebilirsiniz:
set

Bu komut hem Windows’ta hem de GNU/Linux’ta aynı amaca hizmet eder. Yani çevre değişkenlerinin ve bu değişkenlere ait değerlerin ekrana basılmasını sağlar. Çıktı biçimi şöyledir:
ÇEVRE_DEĞİŞKENİ=değer

Bu listede gördüğünüz çevre değişkenlerini Windows’ta;
echo %ÇEVRE_DEĞİŞKENİ%

GNU/Linux’ta ise;
echo $ÇEVRE_DEĞİŞKENİ

formülüne göre kullanabiliriz.
Bu değişkenlerin bazılarını ilerleyen derslerde biz göstereceğiz, geri kalanlarını ise programlama maceranız sırasında yeri geldikçe kendiniz öğreneceksiniz. Biz şimdilik bu konuyu bir kenara bırakıp, komut satırının kullanımına ilişkin önemli başka bir konudan söz edelim.
Dizin Adı Tamamlama
Bir önceki bölümde gördüğünüz gibi, çevre değişkenlerini kullanarak dizin bulma ve dizinler arasında dolaşma işlemlerimizi kolaylaştırabiliyoruz. İşletim sistemlerinin dizinlere ilişkin bize sunduğu bir başka kolaylık da Tab (Sekme) tuşu ile ilgilidir.
Sözünü ettiğimiz bu kolaylığın ne olduğu anlamak için, komut satırında /home/istihza veya C:\Users\falanca ifadesi görünürken,
Kod:
cd
yazıp bir boşluk bıraktıktan sonra iki kez klavyedeki Tab tuşuna basın. Bu işlem, bir alt dizinde yer alan bütün dizinleri listeleyecektir:
.adobe/           Dropbox/          .local/           .shotwell/
.aptitude/        .fontconfig/      .macromedia/      Templates/
.cache/           .gconf/           .mission-control/ .themes/
.compiz-1/        .gegl-0.0/        .mozilla/         .thumbnails/
.config/          .gimp-2.6/        .mplayer/         .thunderbird/
.dbus/            .gnome2/          Music/            Ubuntu One/
Desktop/          .gstreamer-0.10/  Pictures/         Videos/
Documents/        .gvfs/            .pki/
Downloads/        .icons/           Public/
.dropbox/         lang/             .pulse/

Yukarıdaki çıktı Ubuntu işletim sisteminden. Sizin kullandığınız işletim sisteminin çıktısı elbette daha farklı olacaktır.
Burada başında . işareti olanlar gizli, olmayanlar ise görünür dizinlerdir.
Şimdi aynı konumda
Kod:
cd D
yazıp yine iki kez Tab tuşuna basın. Şöyle bir çıktı alacaksınız:
Desktop/   Documents/ Downloads/ Dropbox/

Gördüğünüz gibi, adı ‘D’ harfi ile başlayan dizinleri listeledik. Tab tuşunun, bu kod tamamlama özelliği sayesinde, ulaşmak istediğiniz dizin adının tamamını yazmak zorunda kalmadan, sadece ilk birkaç harfini yazıp Tab tuşuna basarak o dizine rahatlıkla ulaşabilirsiniz. Örneğin
Kod:
cd De
yazıp iki kez Tab tuşuna basarak (eğer bir alt dizinde ilk harfleri ‘De’ olan başka bir dizin yoksa) doğrudan Desktop dizinine ulaşabilirsiniz.
Yukarıda anlattığımız dizin tamamlama özelliği GNU/Linux’ta geçerlidir. Bu anlattıklarımız Windows sistemlerinde bazı farklılıklar gösterir. Örneğin Windows’ta
Kod:
cd
yazıp bir boşluk bıraktıktan sonra Tab tuşuna bir kez bastığımızda alfabe sırasına göre adı önce gelen dizin adı tamamlanır.
Kullandığınız işletim sisteminde dizin adı tamamlama özelliğinin nasıl çalıştığını deneme yanılma yöntemiyle rahatlıkla keşfedebilirsiniz.
Bu arada, elbette Tab tuşuna basıldığında yalnızca dizin adları tamamlanmaz. Aynı zamanda bu şekilde dosya adlarını da tamamlayabilirsiniz.
Kod:
cd
komutu yalnızca dizin adlarıyla birlikte kullanılabildiği için bu komuttan sonra Tab tuşuna basıldığında yalnızca dizin adları tamamlanacaktır. Ama mesela eğer
Kod:
echo
komutunu yazdıktan sonra bir boşluk bırakıp Tab tuşuna basarsanız dizinlerle birlikte dosyaların da tamamlandığını görürsünüz.
Dizin Ayraçları
Yukarıda verdiğimiz örneklerde belki dikkatinizi çekmiştir. GNU/Linux’ta dizin ayracı olarak / (düz taksim) işaretini, Windows’ta ise \ (ters taksim) işaretini kullanıyoruz.
[Windows]
cd %USERPROFILE%\Desktop

[GNU/Linux]
cd $HOME/Desktop

Çoğu durumda düz taksim işareti (/) hem Windows’ta hem de GNU/Linux işletim sisteminde çalışacaktır. Ancak ters taksim işareti (\) yalnızca Windows’ta çalışır. Bu işareti GNU/Linux dizinlerini ayırmak için kullanamayız. Dolayısıyla yazdığınız programların birden fazla platform üzerinde çalışmasını istiyorsanız, her iki işletim sistemi için de ters taksim yerine düz taksim işaretini kullanmanız daha mantıklı olacaktır.
Ters ve düz taksim işaretlerinden hangisini kullandığınız, dosya-dizin adı tamamlama işlemleri için Tab düğmesine basarken önemlidir sadece.
Yani eğer Windows’ta dizinleri ayırmak için düz taksim işaretini kullanırsanız, dosya-dizin tamamlama özelliğinden yararlanamazsınız. Mesela o anda bulunduğumuz dizin altında falanca adlı bir klasörün altındaki filanca adlı başka bir klasöre ulaşmaya çalıştığımızı varsayalım:
cd falanca\fil

yazıp Tab düğmesine basarsak, Windows filanca dizinini bizim için tamamlayacaktır. Ama eğer yukarıdaki komutu ters taksim ile değil de düz taksim ile yazarsak bu tamamlama işlemi gerçekleşmez:
cd falanca/fil

filanca dizinine ulaşmak için dizinin yolunu tam olarak yazmamız gerekir:
cd falanca/filanca

Ama dediğimiz gibi, çoğu durumda her iki işletim sistemi için de düz taksim işaretini kullanmak çok daha makul bir yoldur.
Sembolik Bağlar
Buraya kadar hem Windows’ta hem de GNU/Linux’ta komut satırının nasıl kullanılacağından söz ettik. Sizden beklentimiz buraya kadar anlatılanları iyice sindirmeden yola devam etmemenizdi.
Eğer siz bir Windows kullanıcısı iseniz buraya kadar anlatılan konuları bilmeniz bu kitabı takip edebilmeniz açısından yeterli olacaktır. Ama eğer siz bir GNU/Linux kullanıcısı iseniz komut satırına ilişkin biraz daha fazla şey biliyor olmanız gerekiyor. O yüzden buradan itibaren yalnızca GNU/Linux kullanıcılarını ilgilendiren konulardan söz edeceğiz. Dolayısıyla Windows kullanıcıları eğer isterlerse okumayı burada kesip bir sonraki konuya geçebilir. Ama, ‘fazla bilginin göz çıkarmayacağı’ düsturundan hareketle, ben Windows kullanıcılarına konunun geri kalanını da GNU/Linux kullanıcıları ile beraber okumalarını tavsiye ederim...
İlk olarak sembolik bağları ele alacağız.
Sembolik bağ; bir dosyaya veya dizine bağlantı içeren özel bir dosya türüdür. GNU/Linux işletim sistemlerinde dosyalar ve dizinler birbirlerine sembolik bağ ile bağlanabilir. Peki bir insan neden sembolik bağ oluşturmak ister?
Bunun pek çok farklı sebebi olabilir. Örneğin bazen bir dosyanın adını değiştirmeden, o dosyaya başka bir isimle erişmeniz gereken durumlarla karşılaşabilirsiniz. Mesela orijinal dosyanın adı çok uzunsa, siz sistemde herhangi bir soruna yol açmamak için o dosyanın adını değiştirmeden, o dosyaya daha kısa bir isimle erişmek istiyor olabilirsiniz. Böyle durumlarda yapılabilecek en mantıklı iş o dosyaya bir sembolik bağ vermek olacaktır. Örneğin $HOME dizini altında çok_uzun_bir_dosya_adı adlı bir dosyanız olduğunu düşünün. Sizin amacınız bu dosyaya mesela sadece dosya gibi bir adla erişebilmek. Elbette isterseniz dosyanın adını değiştirebilirsiniz, ama bu durumda eğer o dosyayı kullanan başka uygulamalar varsa, isim değişikliği durumunda o uygulamalar da artık çalışmaz hale gelecektir. İşte böyle bir durumu önlemek için, dosyayı yeniden adlandırmak yerine o dosyaya bir sembolik bağ vermeyi tercih edebilirsiniz. Bunun için
Kod:
ln
adlı bir komuttan yararlanacağız:
ln -s $HOME/çok_uzun_bir_dosya_adı $HOME/dosya

Böylece $HOME dizini altındaki çok_uzun_bir_dosya_adı adlı dosyaya, $HOME dizini altında dosya adlı bir sembolik bağ vermiş olduk. Burada
Kod:
ln
komutunu -s parametresi ile kullandığımıza dikkat edin.
Sembolik bağ oluşturmanın gerekli olduğu bir başka durum da şudur: Mesela bilgisayarınıza kurduğunuz bir program, bir kütüphanenin belli bir konumda olmasını şart koşuyor olabilir. Örneğin Mozilla Firefox adlı program, flash kütüphanesini /usr/lib/mozilla/plugins/ dizini altında arar. Eğer sistemde başka bir konumda zaten libflashplayer.so adlı kütüphane mevcutsa, siz basit bir sembolik bağ aracılığıyla bu kütüphaneye /usr/lib/mozilla/plugins/ dizini altından bir bağlantı verebilirsiniz. Mesela libflashplayer.so adlı kütüphanenin /usr/lib/plugins dizini altında bulunduğunu varsayalım:
ln -s /usr/lib/plugins/libflashplayer.so
/usr/lib/mozilla/plugins/libflashplayer.so

Böylece hem flash kütüphanesini Firefox’a başarıyla tanıtmış, hem de aynı dosyayı iki farklı yere kopyalamak zorunda kalmamış olursunuz.
Elbette, eğer sembolik bağ oluşturacağınız dizin ev dizininiz dışında ise bağ oluşturma işlemi sırasında root haklarına sahip olmanız gerekir. Yani mesela Ubuntu’da yukarıdaki komutu şu şekilde vermeniz gerekir:
sudo ln -s /usr/lib/plugins/libflashplayer.so
/usr/lib/mozilla/plugins/libflashplayer.so

Bu arada sembolik bağlarla ilgili önemli bir bilgi daha verelim: Eğer orijinal dosyada bir değişiklik yapılırsa bu değişiklik bağ dosyasını da etkiler. Böylece ana dosyada bir değişiklik yaptığınızda aynı değişikliği bir de bağ dosyasında yapmak zahmetine girmezsiniz.
Eğer oluşturduğunuz bir sembolik bağı kaldırmak isterseniz, bağ dosyasını silmeniz yeterli olacaktır. Yalnız burada bağ dosyası yerine yanlışlıkla ana dosyayı silmemeye dikkat etmelisiniz.
Son olarak, sembolik bağlarla ilgili bilmemiz gereken önemli bir konu da şu: Bağlayacağımız dosyaların bulunduğu dizin adlarını yazarken, bu dizin adlarını kök dizinden itibaren eksiksiz olarak yazmamız gerekiyor. Aksi halde oluşan bağ dosyasının içi boş olacak ve hiçbir işe yaramayacaktır.
Yukarıda verdiğimiz bilgiler GNU/Linux işletim sistemleri için geçerlidir. Benzer bir özellik Windows işletim sistemleri için de geçerlidir. Ancak bu kitap açısından Windows’ta sembolik bağ oluşturma işlemi bizi ilgilendirmiyor. Biz burada sembolik bağları yalnızca GNU/Linux işletim sisteminin söz konusu olduğu durumlarda kullanacağız. Eğer Windows’ta sembolik bağların nasıl oluşturulacağıyla ilgileniyorsanız
Kod:
mklink
ve
Kod:
fsutil
komutları hakkında bir araştırma yapmanızı tavsiye ederim.
Çalıştırma Yetkisi
Bildiğiniz gibi, GNU/Linux işletim sistemlerinde kullanıcılar dosya ve dizinler üzerinde bazı haklara sahiptir veya değildir. Örneğin normal bir kullanıcı kendi $HOME dizini içindeki dosya ve dizinler üzerinde hem okuma hem de yazma yetkisine sahiptir. $HOME dizini dışındaki dosya ve dizinleri ise yalnızca okuyabilir. Mesela normal bir kullanıcı /usr/bin dizini içindeki dosyalar üzerinde herhangi bir değişiklik yapamaz.
Aynı şekilde, bir kullanıcı öntanımlı olarak bir dosyayı çalıştırma yetkisine de sahip değildir. Yani o dosya bir program da olsa, o dosyayı çalıştırabilmek için öncelikle o dosya üzerinde çalıştırma yetkisine sahip olmanız gerekir. Ya da başka bir deyişle, bir program dosyasının çalıştırılabilmesi için o dosyanın ‘çalıştırılabilir’ olarak işaretlenmiş olması gerekir. Çalıştırma yetkiniz olmayan bir program dosyasını çalıştırmaya teşebbüs etmeniz durumunda permission denied [izin verilmedi] hatası alırsınız.
Dilerseniz bununla ilgili basit bir örnek verelim. Şimdi masaüstünde deneme adlı bir dosya oluşturun ve bu dosyanın içini açarak şu satırları harfi harfine yazın:
#!/bin/sh
echo "merhaba"

Çoğu GNU/Linux kullanıcısının bileceği gibi, bu basit bir kabuk betiğidir.
Kabuk hakkında bilgi için bkz. http://belgeler.gen.tr/bashref/
Bu kabuk betiğini çalıştırmak için komut satırında masaüstüne gelerek şu komutu verin:
./deneme

Bu komut şu hatayı verecektir:
-bash: ./deneme: Permission denied

İşte bu hatanın nedeni, betiğimiz üzerinde çalıştırma yetkisine sahip olmamamızdır. Dosya izinleriyle ilgili bu hatayı almamak için iki seçeneğiniz var. Birinci seçenek olarak, dosyaya sağ tıklayıp dosya özelliklerinden bu dosyayı ‘çalıştırılabilir’ olarak işaretleyebilirsiniz. Ama bu işlemin grafik arayüz üzerinden nasıl yapılacağı, GNU/Linux dağıtımlarında farklılıklar gösterebilir. O yüzden bu işi yapmanın en kestirme ve kesin yöntemi
Kod:
chmod
adlı bir komuttan yararlanmaktır. Bu komut yardımıyla betiğimiz üzerinde çalıştırma yetkisine sahip olabiliriz:
chmod +x deneme

Yukarıdaki komutu şu şekilde de verebilirsiniz:
chmod a+x deneme

Bu komutu bu şekilde verdiğinizde, deneme adlı dosya için, sistemdeki herkese çalıştırma yetkisi vermiş oluyorsunuz. Yani işletim sisteminizde oturum açan herkes deneme adlı bu programı çalıştırabilecektir. Eğer yukarıdaki komutu şu şekilde verirseniz dosyayı yalnızca dosyanın sahibi, yani siz, çalıştırabilirsiniz:
chmod u+x deneme

Buradaki u parametresi İngilizcedeki user (kullanıcı) kelimesinin kısaltmasıdır. Tahmin edebileceğiniz gibi, bir önceki komutta gördüğümüz a parametresi ise all (herkes, hepsi) kelimesinin...
Bu komutlardan sonra artık
Kod:
./deneme
komutu başarıyla çalışacaktır. Eğer bir dosyadan çalıştırma yetkisini geri almak isterseniz şu komutu verebilirsiniz:
chmod -x deneme

Burada + işareti yerine - işaretini kullandığımıza dikkat edin.
Bu arada,
Kod:
./deneme
komutunda gördüğünüz ./ (nokta ve düz taksim) işaretleri, o anda içinde bulunduğunuz dizinde yer alan deneme adlı bir dosyayı çalıştırmak istediğinizi gösterir. Eğer bu komutu yalnızca
Kod:
deneme
olarak verirseniz, işletim sisteminiz deneme adlı dosyayı o anda içinde bulunduğunuz dizinde değil,
Kod:
echo $PATH
adlı özel bir komutun çıktısında görünen dizinler içinde arayacak ve eğer program dosyasını o dizinler içinde bulamazsa da size şöyle bir hata mesajı gösterecektir:
-bash: deneme: command not found

Eğer
Kod:
echo $PATH
komutunun çıktısında görünen dizinler içinde tesadüfen deneme adlı başka bir dosya varsa, yukarıdaki komutu ./ işaretleri olmadan verdiğinizde kendi yazdığınız program dosyası değil, o dosya çalışacaktır. O yüzden, o anda içinde bulunduğumuz dizinde yer alan program dosyalarını çalıştırırken ./ işaretlerini kullanmaya dikkat ediyoruz.
İlerleyen derslerde
Kod:
echo $PATH
komutunun anlam ve öneminden söz edeceğiz. Biz şimdilik bu konuyu bir kenara bırakıp başka bir konuya geçelim.
Dosya kopyalama, Taşıma ve Silme
Windows işletim sistemlerinde bir kullanıcı, sistemdeki her konuma istediği dosyayı kopyalayabilir, taşıyabilir veya bu dosyayı silebilir. Ancak GNU/Linux dağıtımlarında yetkisiz bir kullanıcı ancak ev dizini içindeki dosyalara müdahale edebilir. Bir dosyayı, örneğin $HOME dizininden /usr/bin dizini içine kopyalamak isterse root haklarını alması gerekir.
GNU/Linux dağıtımlarında bu tür işlemleri dosya yöneticileri aracılığıyla grafik olarak yapmanın bazı yöntemleri olsa da en kestirme yol kopyalama, taşıma ve silme gibi işlemleri komut satırı üzerinden halletmektir. Özellikle ev dizini dışındaki dosyalara müdahale ederken komut satırını kullanmak işlerinizi epey hızlandıracaktır. İşte biz de işlerinizi kolayca yapmanızı sağlamak için bu bölümde GNU/Linux işletim sistemlerinde dosya kopyalama, taşıma ve silme işlemlerinin komut satırı aracılığıyla nasıl yapılacağını inceleyeceğiz.
cp
GNU/Linux dağıtımlarında bir dosyayı başka bir konuma kopyalamak için
Kod:
cp
adlı bir komuttan yararlanıyoruz. Bu komut şöyle kullanılıyor:
cp özgün_konumdaki_dosya hedef_konumdaki_dosya

Örneğin masaüstünde bulunan deneme.txt adlı bir dosyayı /usr/bin dizinine aynı adla kopyalamak için şöyle bir komut yazıyoruz:
cp $HOME/Desktop/deneme.txt /usr/bin/

Gördüğünüz gibi, eğer dosyayı bulunduğu konumdan farklı bir konuma aynı adla kopyalayacaksak dosyanın adını tekrar yazmamıza gerek yok. Ama eğer deneme.txt adlı bu dosyayı /usr/bin dizinine farklı bir adla kopyalamak isterseniz yukarıdaki komutu şöyle yazabilirsiniz:
cp $HOME/Desktop/deneme.txt /usr/bin/dosyanın_yeni_adı

Elbette, daha önce de söylediğimiz gibi, /usr/bin dizinine bir dosya kopyalayabilmek için root haklarına sahip olmalısınız. Dolayısıyla yukarıdaki komutları, başlarına sudo getirerek (veya önce su - komutuyla root haklarını alarak) yazmalısınız:
sudo cp $HOME/Desktop/deneme.txt /usr/bin/deneme.txt

Eğer bir dizinin tamamını başka bir konuma kopyalamak istiyorsanız, yukarıdaki komutları -rf parametresi ile çalıştırmanız gerekir. Yani:
cp -rf özgün_dizin hedef_dizin_adresi

veya:
sudo cp -rf özgün_dizin hedef_dizin_adresi

rm
GNU/Linux dağıtımlarında bir dosyayı silmek için
Kod:
rm
adlı bir komuttan yararlanıyoruz. Örneğin masaüstünde bulunan deneme.txt adlı dosyayı silmek için şu komutu veriyoruz:
rm $HOME/Desktop/deneme.txt

Elbette eğer sileceğimiz dosya ev dizini dışındaysa bu komutu root yetkileri ile çalıştırmamız gerekir:
sudo rm /usr/bin/deneme.txt

Kod:
rm
komutu yukarıdaki şekilde ancak dosyaları silmek için kullanılabilir. Eğer silmek istediğiniz şey bir dosya değil de dizin ise o zaman
Kod:
rm
komutunu
Kod:
-rf
parametresi ile birlikte çalıştırmamız gerekir:
rm -rf $HOME/silinecek_dizin

Eğer silinecek dizin ev dizini dışındaysa root haklarını almayı unutmuyoruz:
sudo rm -rf /usr/share/silinecek_dizin

mv
GNU/Linux dağıtımlarında bir dosyayı bir yerden başka bir yere taşımak için
Kod:
mv
adlı bir komuttan yararlanacağız:
mv özgün_konumdaki_dosya hedef_konumdaki_dosya

Örneğin masaüstünde bulunan deneme.txt adlı bir dosyayı /usr/bin dizinine taşımak için şöyle bir komut yazıyoruz:
sudo mv $HOME/Desktop/deneme.txt /usr/bin/

Bu komut masaüstündeki deneme.txt dosyasını silip /usr/bin/ dizini altında deneme.txt adlı başka bir dosya oluşturacak, yani dosyayı masaüstünden /usr/bin dizinine taşımış olacaktır.
Eğer deneme.txt dosyasını farklı bir adla taşımak isterseniz yukarıdaki komutu şöyle yazabilirsiniz:
sudo mv $HOME/Desktop/deneme.txt /usr/bin/yeni_ad

Yukarıdaki örneklerden de gördüğünüz gibi,
Kod:
mv
komutu bir dosyanın konumunu değiştirmek için kullanılıyor. Ama isterseniz aynı komutu bir dosyanın adını değiştirmek için de kullanabilirsiniz:
mv $HOME/Desktop/deneme.txt $HOME/Desktop/yeni_ad

Bu komut masaüstünüzdeki deneme.txt dosyasının adını yeni_ad olarak değiştirecektir...
Böylece çok önemli bir konuyu geride bırakmış olduk. Buraya gelene kadar komut satırına ilişkin epey şey öğrendiniz. Böylece en azından bu kitabı takip etmenizi sağlayacak temel komut satırı bilgilerini edinmiş oldunuz. Bu kitaptan yararlanabilmek için komut satırına ilişkin olarak yukarıda anlattıklarımızı bilmeniz yeterli olacaktır. Ancak eğer yetkin bir programcı olmak istiyorsanız, programlama faaliyetlerinizi yürüttüğünüz işletim sisteminin komut satırını çok iyi tanımanızı tavsiye ederim.
Bölüm Soruları
  1. Yıl 2015 olmuşken sizce komut satırını öğrenmeye ne gerek var?
  2. Kullandığınız işletim sisteminde kaç farklı yoldan komut satırına ulaşabiliyorsunuz?
  3. GNU/Linux’ta
    cp /home/istihza/Desktop/dosya.py /usr/bin/dosya
  4. komutu ne tür bir hata verebilir? Neden?
  5. Kullandığınız işletim sistemine uygun bir şekilde komut satırını başlatın ve o anda hangi dizinde bulunduğunuzu teyit edin.
  6. O anda içinde bulunduğunuz dizindeki bütün altdizin ve dosyaları listeleyin. Bunların hangisinin dizin hangisinin dosya olduğunu tespit edin.
  7. Masaüstü harici bir konumda bir komut satırı oturumu başlatın. Daha sonra, kullandığınız işletim sistemine uygun komutları kullanarak masaüstüne gelin.
    cd Desktop
  8. komutu hangi durumlarda hata verebilir?
  9. O anda hangi dizinde bulunuyor olursanız olun, bir üst dizine geçmek için hangi komutları kullanmanız lazım?
  10. Çevre değişkeni denince ne anlıyorsunuz? Bu değişkenlerin bize ne faydası olabilir?
  11. Kullandığınız işletim sisteminde tanımlı olan bütün çevre değişkenlerini listeleyin.
    echo
  12. komutu ne işe yarar?
  13. Kullandığınız işletim sisteminde dizin adlarını birbirinden ayıran ayracın hangisi olduğunu gösterin.
  14. GNU/Linux’ta sembolik bağ nedir, ne işe yarar?
  15. Masaüstünde bulunan deneme.txt adlı bir dosyayı sembolik bağ ile /usr/bin/ dizini içine deneme adıyla bağlayın.
  16. Bir önceki soruda oluşturduğunuz sembolik bağ dosyasını silin.
  17. GNU/Linux’ta bir dosyayı herkes tarafından çalıştırılabilir olarak işaretlemek için hangi komutu kullanıyoruz?
  18. GNU/Linux’ta bir dosyanın başına getirilen ./ işareti ne anlama gelir?
  19. Masaüstünde deneme1.txt adlı boş bir dosya oluşturun. Daha sonra aktar.sh adlı bir kabuk betiği yazın. Bu kabuk betiğinin görevi sırasıyla şu işlemleri yapmak:
    • Ekrana “deneme1.txt dosyasının adı deneme2.txt olarak değiştiriliyor...” çıktısı vermek,
    • deneme1.txt dosyasının adını deneme2.txt olarak değiştirmek,
    • Ekrana “deneme1.txt dosyasının adı deneme2.txt olarak değiştirildi.” çıktısı vermek,
    • Ekrana “şimdi deneme2.txt dosyası /home/ dizinine deneme adıyla kopyalanıyor...” çıktısı vermek,
    • deneme2.txt dosyasını /home dizinine kopyalamak
Alıntı:Bütün bu görevleri aktar.sh adlı betik dosyasının içinde tanımladıktan sonra bu betiği çalıştırın ve betiğin görevini düzgün bir şekilde yerine getirip getirmediğini teyit edin.

Kaynak: "istihza.com"
Cevapla
Teşekkür verenler:


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 5 Ziyaretçi


10tl.net Destek Forumu -

Online Shopping App
Online Shopping - E-Commerce Platform
Online Shopping - E-Commerce Platform
Feinunze Schmuck Jewelery Online Shopping