ÇÖZÜMLER Linux YAZILIM

Linux Terminalde Klasör ve Dosya Oluşturma

Linux Terminalde Klasör ve Dosya Oluşturma Nasıl Yapılır?

Bu bölümde üzerinde çalışacağımız bazı gerçek dosyalar oluşturacağız. Gerçek dosyalarınızın yanlışlıkla çiğnenmesini önlemek için, ana klasörünüzden uzakta, denemeler yapmak için daha güvenli bir ortam görevi görecek yeni bir dizin oluşturarak başlayacağız:

mkdir /tmp/tutorial
cd /tmp/tutorial

/tmp içinde eğitim dizinini oluşturduğumuzdan emin olmak için mutlak bir yol kullanıldığına dikkat edin . Başlangıçta eğik çizgi olmadan komut, geçerli çalışma dizini içinde bir tmp dizini bulmaya çalışır , ardından bunun içinde bir eğitim dizini oluşturmaya çalışır . Bir tmp dizini bulamazsa komut başarısız olur.mkdir

Tahmin etmediyseniz ‘ dizini oluştur ‘ ifadesininmkdir kısaltmasıdır . Artık güvenli bir şekilde test alanımızın içinde olduğumuza göre ( emin değilseniz ile tekrar kontrol edin), birkaç alt dizin oluşturalım:pwd

mkdir dir1 dir2 dir3

Bu komutta biraz farklı bir şey var. Şu ana kadar sadece kendi başına çalışan ( cdpwd) veya sonrasında tek bir öğeye sahip olan ( cd /, ) komutları gördük cd ~/Desktop. Ancak bu sefer komutun arkasına üç şey ekledik mkdir. Bunlara parametreler veya argümanlar denir ve farklı komutlar farklı sayıda argüman kabul edebilir. Komut mkdiren az bir argüman beklerken cdkomut sıfır veya bir argümanla çalışabilir, ancak daha fazlası olamaz. Bir komuta yanlış sayıda parametre aktarmaya çalıştığınızda ne olacağını görün:

mkdir
cd /etc ~/Desktop

Yeni dizinlerimize geri dönelim. Yukarıdaki komut, klasörümüzün içinde üç yeni alt dizin oluşturacaktır. Şimdi lsl i s t) komutuyla bunlara bir göz atalım :

ls

Son birkaç komutu uyguladıysanız terminaliniz şunun gibi görünmelidir:

mkdirTüm klasörlerin tek bir dizinde oluşturulduğuna dikkat edin . dir1 içinde dir2 içinde dir3 veya başka bir iç içe yapı oluşturmadı . Ancak bazen tam olarak bunu yapabilmek kullanışlıdır ve bir yolu vardır:mkdir

mkdir -p dir4/dir5/dir6
ls

Bu sefer listeye yalnızca dir4’ün eklendiğini göreceksiniz , çünkü dir5 listenin içindedir ve dir6 da onun içindedir. Daha sonra yapıyı görselleştirmek için kullanışlı bir araç yükleyeceğiz, ancak bunu doğrulamak için zaten yeterli bilgiye sahipsiniz:

cd dir4
ls
cd dir5
ls
cd ../..

Kullandığımız “-p”ye seçenek veya anahtar denir (bu durumda “ana dizinleri de oluştur” anlamına gelir ) . Seçenekler, bir komutun çalışma şeklini değiştirmek ve tek bir komutun çeşitli farklı şekillerde davranmasına izin vermek için kullanılır. Ne yazık ki tarihin ve insan doğasının tuhaflıkları nedeniyle seçenekler farklı komutlarda farklı biçimler alabiliyor. Bunları genellikle önünde kısa çizgi bulunan tek karakterler olarak (bu durumda olduğu gibi) veya önünde iki kısa çizgi bulunan daha uzun kelimeler olarak görürsünüz. Tek karakterli form, birden fazla seçeneğin birleştirilmesine izin verir, ancak tüm komutlar bunu kabul etmez. Ve işleri daha da karıştırmak için, bazı komutlar seçeneklerini açıkça tanımlamıyor, bir şeyin bir seçenek olup olmadığı tamamen argümanların sırasına göre belirleniyor! Tüm olasılıklar hakkında endişelenmenize gerek yok, sadece seçeneklerin mevcut olduğunu ve bunların birkaç farklı biçimde olabileceğini bilin. Örneğin aşağıdakilerin hepsi tam olarak aynı anlama gelir:

# Don't type these in, they're just here for demonstrative purposes
mkdir --parents --verbose dir4/dir5
mkdir -p --verbose dir4/dir5
mkdir -p -v dir4/dir5
mkdir -pv dir4/dir5

Artık birden fazla dizinin nasıl oluşturulacağını, bunları komuta ayrı argümanlar olarak ileterek nasıl oluşturacağımızı biliyoruz mkdir. Ama diyelim ki adında boşluk olan bir dizin oluşturmak istiyoruz? Hadi bir deneyelim:

mkdir another folder
ls

Muhtemelen ne olacağını tahmin etmek için bunu yazmanıza bile gerek yoktu: iki yeni klasör, birinin adı other , diğeri de klasörün adı . Dizin veya dosya adlarında boşluklarla çalışmak istiyorsanız bunlardan kaçmanız gerekir . Merak etmeyin, kimse hapisten kaçmıyor; kaçış, bilgisayara belirli karakterlere normalden farklı davranmasını söylemek için özel kodlar kullanmayı ifade eden bir hesaplama terimidir. Adında boşluk bulunan klasörler oluşturmanın farklı yollarını denemek için aşağıdaki komutları girin:

mkdir "folder 1"
mkdir 'folder 2'
mkdir folder\ 3
mkdir "folder 4" "folder 5"
mkdir -p "folder 6"/"folder 7"
ls

Her ne kadar adlarında boşluk bulunan dosya ve klasörlerle çalışmak için komut satırı kullanılabilse de, bunlardan tırnak işareti veya ters eğik çizgi ile kaçma ihtiyacı işleri biraz daha zorlaştırır. Komut satırını çok fazla kullanan bir kişiyi genellikle dosya adlarından anlayabilirsiniz: harflere ve rakamlara bağlı kalma eğiliminde olacaklar ve boşluk yerine alt çizgi (“_”) veya kısa çizgi (“-”) kullanacaklardır.

Yeniden yönlendirmeyi kullanarak dosya oluşturma

Gösterim klasörümüz oldukça dizinlerle dolu görünmeye başlıyor, ancak dosyalarda bir miktar eksiklik var. Çıktıyı bir komuttan yeniden yönlendirerek, ekrana yazdırılmak yerine yeni bir dosyada sonuçlanmasını sağlayarak bu sorunu çözelim. Öncelikle kendinize komutun lsşu anda ne gösterdiğini hatırlatın:

ls

Bu komutun çıktısını, daha fazla bakabileceğimiz veya işleyebileceğimiz bir metin dosyası olarak yakalamak istediğimizi varsayalım. Tek yapmamız gereken, komut satırımızın sonuna büyüktür karakterini (“>”) ve ardından yazacağımız dosyanın adını eklemek:

ls > output.txt

Bu sefer ekrana hiçbir şey yazdırılmıyor çünkü çıktı bunun yerine dosyamıza yönlendiriliyor. Yalnızca kendi başına çalıştırırsanız, çıktı.txt dosyasının oluşturulduğunu lsgörmelisiniz . İçeriğine bakmak için komutu kullanabiliriz :cat

cat output.txt

Tamam, tam olarak daha önce ekranda gösterilenle aynı değil ama aynı verileri içeriyor ve daha sonraki işlemler için daha kullanışlı bir formatta. Başka bir komuta bakalım echo:

echo "This is a test"

Evet, echosadece argümanlarını tekrar yazdırır (dolayısıyla adı). Ancak bunu bir yönlendirmeyle birleştirdiğinizde kolayca küçük test dosyaları oluşturmanın bir yolunu bulursunuz:

echo "This is a test" > test_1.txt
echo "This is a second test" > test_2.txt
echo "This is a third test" > test_3.txt
ls

catBu dosyaların her birinin içeriğini kontrol etmelisiniz . Ancak catbir dosya görüntüleyiciden çok daha fazlasıdır; adı “birbirine bağlanmak” anlamına gelen ‘con cat enate’den gelir. Birden fazla dosya adı iletirseniz cat, her birinin birbiri ardına tek bir metin bloğu olarak çıktısı alınır:

cat test_1.txt test_2.txt test_3.txt

Tek bir komuta birden fazla dosya adı aktarmak istediğinizde, dosyaların benzer adlara sahip olması durumunda sizi çok fazla yazma zahmetinden kurtarabilecek bazı yararlı kısayollar vardır. Dosya adında “herhangi bir tek karakteri” belirtmek için soru işareti (“?”) kullanılabilir. “Sıfır veya daha fazla karakter”i belirtmek için yıldız işareti (“*”) kullanılabilir. Bunlara bazen “joker karakter” karakterleri denir. Birkaç örnek yardımcı olabilir; aşağıdaki komutların tümü aynı şeyi yapar:

cat test_1.txt test_2.txt test_3.txt
cat test_?.txt
cat test_*

Daha fazla kaçış gerekli
Tahmin edebileceğiniz gibi, bu özellik aynı zamanda dosya adlarından ? veya * karakterlerini de kullanın. Dosya adlarını komut satırından değiştirmek istiyorsanız, genellikle dosya adlarında noktalama işaretlerinden kaçınmak daha iyidir.

Çıktısına bakarsanız, lsyalnızca “t” ile başlayan dosya veya klasörlerin az önce oluşturduğumuz üç test dosyası olduğunu fark edeceksiniz, böylece son komutu daha da basitleştirebilirsiniz cat t*, yani “tümünü birleştir” adları t ile başlayan ve ardından sıfır veya daha fazla başka karakter gelen dosyalar ”. Tüm dosyalarımızı tek bir yeni dosyada birleştirmek için bu özelliği kullanalım ve ardından dosyayı görüntüleyelim:

cat t* > combined.txt
cat combined.txt

Bu iki komutu ikinci kez çalıştırırsak ne olacağını düşünüyorsunuz? Dosya zaten mevcut olduğundan bilgisayar şikayet edecek mi? Metni dosyaya ekleyecek mi, böylece iki kopya içerecek mi? Yoksa tamamen yerini mi alacak? Ne olacağını görmek için deneyin, ancak komutları tekrar yazmaktan kaçınmak için , kullandığınız komutların geçmişinde ileri geri hareket etmek için Yukarı Ok ve Aşağı Ok tuşlarını kullanabilirsiniz . İlkine ulaşmak için Yukarı Ok’a birkaç kez basın catve çalıştırmak için Enter’a basın , ardından ikinciye ulaşmak için aynısını tekrar yapın.

Gördüğünüz gibi dosya aynı görünüyor. Bunun nedeni, ona dokunulmaması değil, kabuğun, komutunuzun çıktısını catdosyaya yazmadan önce dosyanın tüm içeriğini temizlemesidir. Bu nedenle, yeniden yönlendirmeyi kullanırken yanlışlıkla ihtiyacınız olan bir dosyanın üzerine yazmadığınızdan emin olmak için çok dikkatli olmalısınız. Dosyaların içeriğini değiştirmek yerine ekleme yapmak istiyorsanız, büyüktür karakterini ikiye katlayın:

cat t* >> combined.txt
echo "I've appended a line!" >> combined.txt
cat combined.txt

Kolaylık sağlamak için Yukarı Oku kullanarak ilkini catbirkaç kez daha tekrarlayın ve metin belgeniz, onu görüntülemek için kullandığınızda hepsi aynı anda terminale sığmayacak kadar büyük olana kadar birkaç isteğe bağlı komut daha ekleyin . Dosyanın tamamını görebilmek için artık çağrı cihazı adı verilen farklı bir program kullanmamız gerekiyor (çünkü dosyanızı her seferinde bir “sayfa” olarak gösteriyor). Eskilerin standart çağrı cihazı çağrıldı çünkü her sayfanın altına, henüz her şeyi okumadığınızı belirtmek için “–Daha Fazla–” yazan bir metin satırı koyar. Bugünlerde bunun yerine kullanmanız gereken çok daha iyi bir çağrı cihazı var: yerine geçtiği için programcılar onu çağırmaya karar verdiler .echocatmoremoreless

less combined.txt

Bir dosyayı görüntülerken, dosyanızda ilerlemek için Yukarı Ok , Aşağı Ok , Sayfa Yukarı , Sayfa Aşağı , Ana Sayfa ve Bitirless tuşlarını kullanabilirsiniz . Aralarındaki farkı görmek için onlara bir şans verin. Dosyanızı görüntülemeyi bitirdiğinizde, çıkmak ve komut satırına dönmek için q tuşuna basın .less

Bir not

Unix sistemleri büyük/küçük harfe duyarlıdır, yani “A.txt” ve “a.txt”yi iki farklı dosya olarak kabul ederler. Aşağıdaki satırları çalıştırırsanız üç dosya elde edersiniz:

echo "Lower case" > a.txt
echo "Upper case" > A.TXT
echo "Mixed case" > A.txt

Genel olarak adı yalnızca büyük/küçük harfe göre değişen dosya ve klasörler oluşturmaktan kaçınmaya çalışmalısınız. Yalnızca karışıklığı önlemeye yardımcı olmakla kalmayacak, aynı zamanda farklı işletim sistemleriyle çalışırken sorunları da önleyecektir. Örneğin Windows büyük/küçük harfe duyarlı değildir , dolayısıyla yukarıdaki üç dosya adını da tek bir dosya olarak ele alır ve potansiyel olarak veri kaybına veya başka sorunlara neden olur.

Sadece Caps Lock tuşuna basıp tüm dosya adlarınız için büyük harf kullanmak isteyebilirsiniz . Ancak kabuk komutlarının büyük çoğunluğu küçük harflerle yazıldığından, yazarken onu sık sık açıp kapatmak zorunda kalırsınız. Tecrübeli komut satırı kullanıcılarının çoğu, dosyaları ve dizinleri için öncelikli olarak küçük harfli adlara bağlı kalma eğilimindedir; böylece dosya adı çakışmaları veya addaki her harf için hangi harfin kullanılacağı konusunda nadiren endişelenmeleri gerekir.

İyi adlandırma uygulaması
Hem büyük/küçük harf duyarlılığını hem de kaçışı göz önünde bulundurduğunuzda, dosya adlarınızı yalnızca harfler, rakamlar, alt çizgiler ve kısa çizgilerle olacak şekilde tamamen küçük harflerle tutmak iyi bir temel kuraldır. Dosyalar için genellikle dosyanın türünü belirten bir nokta ve sonunda birkaç karakter bulunur (“dosya uzantısı” olarak anılır). Bu kılavuz kısıtlayıcı görünebilir, ancak komut satırını herhangi bir sıklıkta kullanmaya başlarsanız, bu kalıba sadık kaldığınız için memnun olacaksınız.

Cevap Yaz