Linux'ta Echo Komutu Nasıl Kullanılır
echo
Komut terminal penceresinde biçimlendirilmiş metni yazma için idealdir. Ve statik metin olması gerekmez. Kabuk değişkenlerini, dosya adlarını ve dizinleri içerebilir. Metin dosyaları ve günlük dosyaları oluşturmak için yankıyı da yeniden yönlendirebilirsiniz. Nasıl olduğunu öğrenmek için bu basit kılavuzu izleyin.
Echo, Tekrar Etmesini Söylediklerinizi Tekrar Eder
Zeus, Olimpos Dağı'ndan güzel perilerle birlikte olmak için ayrılmayı çok severdi. Bir seyahatte, Echo adlı bir dağ perisine, eğer onu takip ederse karısı Hera'ya yol vermesini söyledi. Hera, Zeus'u aramaya geldi ve Echo, Hera'yı konuşmaya devam ettirmek için elinden geleni yaptı. Sonunda Hera öfkesini kaybetti ve zavallı Echo'yu lanetledi, böylece yalnızca başka birinin söylediği son sözleri tekrarladı. Hera'nın onu yakaladığında Zeus'a ne yaptığını kimse tahmin edemez.
Ve bu, hemen hemen, echo
hayatta çok şey var. Tekrarlaması söyleneni tekrarlar. Bu basit bir işlev, ancak hayati bir işlev. Olmazsa echo
, örneğin, kabuk komut dosyalarından görünür çıktı alamayız.
Çok sayıda çan ve ıslık ile dolu echo
olmasa da, bilmediğiniz veya unuttuğunuz bazı yeteneklere sahip olma ihtimali yüksektir .
Eko? Eko!
Çoğu Linux sistemi echo
,. Bash kabuğunun kendi içinde echo
yerleşik olduğu gibi, çalıştırılabilir bir ikili sürümü echo
de vardır.
Aşağıdaki komutları kullanarak iki farklı versiyonu görebiliriz:
yankı yazın
yankı nerede
type
Biz onun argüman olarak kendisine iletmek komutu bir kabuk yerleşik bir ikili yürütülebilir, bir takma ya da bir fonksiyon olup olmadığını komut söyler. Bize bunun echo
bir kabuk yerleşik olduğunu bildiriyor .
Bir cevap type
bulur bulmaz, başka eşleşme aramayı bırakır. Bu nedenle, sistemde aynı ada sahip başka komutlar olup olmadığını bize söylemez. Ama bize hangisini önce bulduğunu söyler. Ve bu, bu komutu verdiğimizde varsayılan olarak kullanılacak olanıdır.
whereis
Komut görünüyor komutu için ikili yürütülebilir, kaynak kodu ve adam sayfası için biz onun komut satırı parametresi olarak kendisine iletmek. Kabuk yerleşiklerini aramıyor çünkü ayrı bir çalıştırılabilir ikiliye sahip değiller. Bash yürütülebilir dosyasının ayrılmaz bir parçasıdır.
whereis
Komut raporları echo
bulunan ikili yürütülebilir olan /bin
dizinde.
Bu sürümü kullanmak echo
için komut satırında çalıştırılabilir dosyanın yolunu sağlayarak onu açıkça çağırmanız gerekir:
/ bin / echo --version
Kabuk yerleşiği --version
komut satırı argümanının ne olduğunu bilmez , sadece terminal penceresinde tekrar eder:
echo --version
Burada gösterilen örneklerin tümü echo
, Bash kabuğundaki varsayılan sürümünü kullanır .
Terminale Metin Yazma
Terminal penceresine basit bir metin dizisi yazmak echo
için, göstermesini istediğiniz dizeyi yazın :
echo Benim adım Dave.
Metin bizim için tekrarlanıyor. Ancak deneyler yaptıkça, işlerin biraz daha karmaşık hale gelebileceğini yakında keşfedeceksiniz. Şu örneğe bakın:
echo Benim adım Dave ve ben bir inekim.
Terminal penceresi bir >
işaret gösterir ve orada durur, bekler. Ctrl + C sizi komut istemine döndürür. Orada ne oldu?
"Ben" kelimesindeki tek alıntı veya kesme işareti karıştı echo
. Bu tek alıntı, metnin alıntılanmış bir bölümünün başlangıcı olarak yorumladı. Kapanan tek bir alıntı tespit edemediği echo
için daha fazla girdi bekliyordu. Daha fazla girdinin, beklediği eksik tek alıntıyı içermesi bekleniyordu.
Bir dizeye tek bir alıntı eklemek için en basit çözüm, tüm dizeyi çift tırnak işaretleri arasına almaktır:
echo "Benim adım Dave ve ben bir inekim."
Metninizi çift tırnak işaretleri arasına almanız iyi bir genel tavsiye olacaktır. Komut dosyalarında, geçtiğiniz parametreleri net bir şekilde sınırlar echo
. Bu, komut dosyalarını okumayı ve hata ayıklamayı çok daha kolay hale getirir.
Metin dizinize çift tırnak karakteri eklemek isterseniz ne olur? Bu kolaydır, \
çift tırnak işaretinin önüne bir ters eğik çizgi koyun (aralarında boşluk bırakmadan).
echo "Adım Dave ve ben bir \" inek. \ ""
Bu bizim için "geek" kelimesini çift tırnak işaretleri arasına alıyor. Bu ters eğik çizgiden kaçan karakterlerden daha fazlasını kısa süre içinde göreceğiz .
Değişkenleri yankı ile kullanma
Şimdiye kadar, terminal penceresine önceden tanımlanmış metin yazıyoruz. echo
Daha dinamik ve bizim için kabuk tarafından eklenen değerlere sahip çıktı üretmek için değişkenleri kullanabiliriz . Bu komutla basit bir değişken tanımlayabiliriz:
my_name = "Dave"
Adlı bir değişken my_name
oluşturuldu. "Dave" metninin değeri atanmıştır. Değişken adını geçtiğimiz dizelerde kullanabiliriz ve değişkenin echo
değeri terminal penceresine yazılır. $
Değişken olduğunu echo
bilmek için değişken adının önüne bir dolar işareti koymalısınız .
Bir uyarı var. Dizenizi tek tırnak işaretleriyle sardıysanız echo
, her şeyi tam anlamıyla ele alacaksınız . Değişken adının değil değişken değerinin görüntülenmesini sağlamak için çift tırnak işareti kullanın.
echo 'Benim adım $ my_name'
echo "Benim adım $ my_name"
Biraz uygun bir şekilde, tekrar etmeye değer:
- Kullanılması tek metinde tırnak işaretleri sonuçlarını bir terminal penceresine yazılıyor literal moda.
- Kullanılması çift değişken varlıkta alıntı işaretleri sonuçları-de yorumlanır değişken genişletme ve denilen değer terminal penceresinde yazılır.
İLGİLİ: Bash'te Değişkenlerle Nasıl Çalışılır
Yankılı Komutları Kullanma
Bir komutu kullanabilir echo
ve çıkışını terminal penceresine yazılan dizeye dahil edebiliriz . Dolar işaretini $
komut bir değişkenmiş gibi kullanmalı ve tüm komutu parantez içine almalıyız.
Tarih komutunu kullanacağız. Bir ipucu, onu kullanmaya başlamadan önce komutu kendi başına kullanmaktır echo
. Bu şekilde, komutunuzun sözdiziminde bir sorun varsa, komuta eklemeden önce onu tanımlar ve düzeltirsiniz echo
. Ardından, echo
komut beklediğinizi yapmazsa, sorunun echo
sözdiziminde olması gerektiğini bilirsiniz çünkü komutun sözdizimini zaten kanıtlamışsınızdır.
Yani, terminal penceresinde şunu deneyin:
tarih +% D
Ve tarih komutundan beklediğimizi elde ettiğimiz için onu bir echo
komuta entegre edeceğiz :
echo "Bugünün tarihi: $ (tarih +% D)"
Komutun parantez içinde olduğuna ve dolar işaretinin $
ilk parantezden hemen önce olduğuna dikkat edin.
Yankı ile Metni Biçimlendirme
-e
(Ters eğik çizgi kaçar etkinleştirmek) seçeneği bize metnin düzenini değiştirmek için bazı ters eğik çizgi bulunan karakterleri kullanmanızı sağlar. Bunlar, kullanabileceğimiz ters eğik çizgiden çıkmış karakterlerdir:
- \ a : Uyarı (tarihsel olarak BEL olarak bilinir). Bu, varsayılan uyarı sesini oluşturur.
- \ b : Bir geri alma karakteri yazar.
- \ c : Diğer çıktıları bırakır.
- \ e : Bir çıkış karakteri yazar.
- \ f : Bir form besleme karakteri yazar.
- \ n : Yeni bir satır yazar.
- \ r : Bir satır başı yazar.
- \ t : Yatay bir sekme yazar.
- \ v : Dikey bir sekme yazar.
- \\ : Bir ters eğik çizgi karakteri yazar.
Bazılarını kullanalım ve ne yaptıklarını görelim.
echo -e "Bu uzun bir metin satırıdır \ nüç satıra bölünmüş \ n \ ttabs \ ton \ tüçüncü \ tline"
Metin, \n
karakterleri kullandığımız yeni bir satıra bölünür ve karakterleri kullandığımız yere bir sekme eklenir \t
.
echo -e "Burada \ vare \ vvertical \ vtabs"
Gibi \n
yeni hat karakterleri, dikey sekme \v
altında hattına metni taşır. Ancak, \n
yeni satır karakterlerinden farklı olarak , \v
dikey sekme yeni satırı sıfır sütundan başlatmaz. Mevcut sütunu kullanır.
Geri \b
boşluk karakterleri, imleci bir karakter geriye taşır. Terminale yazılacak daha fazla metin varsa, bu metin önceki karakterin üzerine yazılacaktır.
echo -e "123 \ b4"
"3" üzerine "4" yazılmıştır.
\r
Satırbaşı karakteri neden echo
bulunduğunuz satırın başına dönmeleri ve sütunda sıfır başka herhangi bir metin yazmak için.
echo -e "123 \ r456"
"123" karakterlerinin üzerine "456" karakterleri yazılır.
\a
Uyarı karakteri şiddetli bir “bip”. Üretecek Mevcut temanız için varsayılan uyarı sesini kullanır.
echo -e "Bip sesi çıkar \ a"
-n
(Hayır satır) seçeneği bir ters eğik çizgi bulunan dizi değil, ama metin düzeni kozmetik etkiler, bu yüzden burada ele alacağız. echo
Metnin sonuna yeni satır eklemeyi engeller . Komut istemi, terminal penceresine yazılan metnin hemen ardından görünür.
echo -n "son satır yok"
Echo'yu Dosyalar ve Dizinler ile Kullanma
Sen kullanabilirsiniz echo
zayıf adamın sürümü bir tür ls
. echo
Böyle kullandığınızda seçenekleriniz az ve çok uzaktır . Herhangi bir sadakat veya ince kontrole ihtiyacınız varsa ls
, seçeneklerini ve seçeneklerini kullanmakta daha iyi olursunuz .
Bu komut, geçerli dizindeki tüm dosyaları ve dizinleri listeler:
Eko *
Bu komut, adı "D" ile başlayan geçerli dizindeki tüm dosyaları ve dizinleri listeler:
yankı D *
Bu komut, geçerli dizindeki tüm ".desktop" dosyalarını listeler:
echo * .desktop
Evet. Bu, echo
güçlü yönleriyle oynamak değil . Kullanın ls
.
Yankı ile Dosyalara Yazma
Çıktıyı yeniden yönlendirebilir echo
ve metin dosyaları oluşturabilir veya mevcut metin dosyalarına yazabiliriz.
Yeniden >
yönlendirme operatörünü kullanırsak, dosya yoksa oluşturulur. Dosya mevcutsa, dosyadan alınan çıktı echo
önceki içeriğin üzerine yazılarak dosyanın başlangıcına eklenir.
Yeniden >>
yönlendirme operatörünü kullanırsak, dosya yoksa oluşturulur. Kaynağından alınan çıktı echo
dosyanın sonuna eklenir ve dosyanın mevcut içeriğinin üzerine yazılmaz.
echo "Yeni bir dosya oluşturuluyor." > sample.txt
echo "Dosyaya ekleniyor." >> sample.txt
cat sample.txt
İlk komutla yeni bir dosya oluşturulur ve içine metin eklenir. İkinci komut dosyanın altına bir metin satırı ekler. cat
Komut terminal penceresinde dosyanın içeriğini görüntüler.
Ve elbette, dosyamıza bazı yararlı bilgiler eklemek için değişkenler ekleyebiliriz. Dosya bir günlük dosyasıysa, ona bir zaman damgası eklemek isteyebiliriz. Bunu bir sonraki komutla yapabiliriz.
date
Komut için parametrelerin etrafındaki tek tırnak işaretlerine dikkat edin . Parametreler arasındaki boşluğun parametre listesinin sonu olarak yorumlanmasını önlerler. Parametrelerin date
doğru şekilde geçmesini sağlarlar.
echo "Günlük dosyası başladı: $ (tarih + '% D% T')"> logfile.txt
kedi logfile.txt
cat
Log dosyamız bizim için oluşturuldu ve bize hem tarih damgasının hem de zaman damgasının eklendiğini gösteriyor.
İLGİLİ: Linux'ta stdin, stdout ve stderr nedir?
Bu echo'nun Repertuarı
Basit bir komut ama vazgeçilmez. Eğer olmasaydı, icat etmemiz gerekirdi.
Sonuçta Zeus'un saçmalıkları biraz iyilik yaptı.