Linux'ta Bash'te "Burada Belgeler" Nasıl Kullanılır

Mar 31, 2025
, Linux
Fetmawati Achmad Zaenuri / Shutterstock

Garip olarak "Burada Belgeler" adlı, Linux'ta Bash Scripts içindeki giriş / çıkma yeniden yönlendirmesini kullanmanıza izin verir. Uzak bir bilgisayarda çalışmanız gereken komutları otomatikleştirmek için harika bir yoldurlar.

Burada belgeler

Linux'teki birçok komutun iki veya üç harf adına sahiptir. Bu kısmen Linux'un öğrenmesi zor ve Arcane komutları dolu olduğu fikrine yol açan şeydir. Ancak Linux'teki en garip isimlerden biri, şifreleyen kısa olanlardan biri değildir. "Burada belgeler" belgeler değildir ve "burada" ne ifade ettiğini gerçekten açık değil.

Onlar nispeten belirsiz bir yapıdır, ancak faydalıdırlar. Tabii ki, bu Linux'dur, bu yüzden bir kediyi ciltlemek için birden fazla yol var. Burada verilen işlevlerin bir kısmı belgeler diğer şekillerde çoğaltılabilir. Bu alternatif yöntemler genellikle daha karmaşıktır. Programlama ve komut dosyası yaparken, "daha karmaşık" ayrıca "böceklere daha yatkın" anlamına gelir ve kodunuzun korunması zordur.

Buradaki belgelerin gerçekten Excel'in, bir komut dosyasından oluşturulan bir bağlantıdan uzak bir bilgisayara göndermek istediğiniz komutların otomasyonunda. Bağlantıyı yapmak kolaydır, ancak bağlantı yapıldıktan sonra, komutlarınızı komut dosyanızdan uzak bilgisayardaki kabuğa nasıl "pompalıyorsunuz? Burada belgeler bunu çok basit yapmanıza izin verir.

Buradaki belgelerin temel prensipleri

Buradaki bir belgenin deyimsel gösterimi şöyle görünüyor:

 komutu ve lt; limit_string
 .
 .
Metin
veri
değişkenler
.
.
Limit_string 
  • EMRETMEK : Bu, yönlendirilen girişi kabul eden herhangi bir Linux komutu olabilir. Not, Eko emretmek Yönlendirilmiş girişi kabul etmiyor . Ekrana yazmanız gerekirse, kullanabilirsiniz. kedi emretmek, hangisi .
  • & lt; : Yönlendirme operatörü.
  • limit_string : Bu bir etikettir. Komuta yönlendirdiğiniz veri listesinde göründüğü sürece ne istersen olabilir. Metin, veri ve değişken listesinin sonunu işaretlemek için kullanılır.
  • Veri listesi : Komuta beslenecek veri listesi. Komutlar, metin ve değişkenler içerebilir. Veri listesinin içeriği, _limit_string ile karşılaşıncaya kadar bir seferde bir satıra bir satıra beslenir.

Muhtemelen, sınır dizisi olarak "EOF" kullanan belgelerin örneklerini göreceksiniz. Bu yaklaşımı desteklemiyoruz. Çalışır, ancak "EOF" "dosyanın sonu" anlamına gelir. Bir ev belgesinin bir komut dosyası dosyasındaki son şey olduğu nadir durumdan ayrıdır, "EOF" hatalı bir şekilde kullanılıyor.

Yaptıklarını ifade eden bir sınır dizesi kullanıyorsanız, komut dosyalarınızı çok daha okunabilir hale getirir. Uzak bir bilgisayara bir dizi komut gönderiyorsanız Güvenli kabuk (SSH), "_Remote_commands" gibi bir şey denilen bir limit dize mükemmel bir anlam ifade eder. Onları bir alt çizgi ile başlamanıza gerek yok " _ "Karakter. Bunu yapıyoruz çünkü onları senaryodaki sıradan bir şey olarak işaret ediyor.

Basit örnekler

Burada komut satırındaki ve komut dosyalarındaki belgeleri kullanabilirsiniz. Bir terminal penceresinde aşağıdakileri yazdığınızda, bir " & gt; "HATTI KESMEYİĞİ SATIN ALMASI" ENTER "nin her vurduğunda. "_End_of_text" limit dizesini yazdığınızda ve "Enter" i yazdığınızda, web sitelerinin listesi iletilir. kedi, ve terminal penceresinde görüntülenirler.

 CAT & LT; _end_of_text
Nasıl yapılır geek
Gözden geçirmek
Lifesavvy
Cloudsavvy
Mindbounder
_end_of_text 

Bu, alıştırmaların en değerli değil, ancak veri listesinin tamamı toplanıncaya kadar komuta hiçbir şeyin gönderileceğini ve limit dizesinin karşılaşılması olduğunu gösteriyor. NS kedi "_end_of_text" limit dizesini girene kadar komut almaz ve "Enter" tuşuna basın.

Aynı şeyi bir senaryoda yapabiliriz. Bu örneği bir editöre yazın veya kopyalayın, dosyayı "heredoc-1.sh" olarak kaydedin ve editörü kapatın.

 #! / Bin / bash

CAT & LT; "_end_of_text"
Kullanıcı adınız: $ (whoami)
Mevcut çalışma dizininiz: $ pwd
Bash sürümünüz: $ bash_version
_end_of_text 

Bu makaleyi takip ederken, her bir komut dosyası oluşturduğunuzda, ihtiyacınız olacak yürütülebilir kılmak çalıştırılmadan önce. Herbir durumda, kullan chmod emretmek . Burada kullanılan komut dosyası adı için her bir örnekte komut dosyasının adını değiştirin.

 chmod + x heredoc-1.sh 

Bu komut dosyası iki çevre değişkenini içeriyor, $ Pwd ve $ Bash_version . Çevre değişken adları, veri değerleri ile değiştirilir - geçerli çalışma dizini ve BARH'nin yapıldığında BASH sürümü -.

Komut dosyası da kullanır komut ikame üzerinde NS ben kimim emretmek . Komutun adı kendi çıktısı ile değiştirilir. Tüm komut dosyasından çıktı, CAT komutu tarafından Terminal penceresine yazılır. Seti olarak adlandırarak komut dosyasını çalıştırıyoruz:

 ./ Heredoc-1.sh 

Komut dosyasını değiştirirseniz ve limit dizesini buradaki belgenin ilk satırında tırnak işaretlerinde sararsanız " " "Veri listesi burada burada belge komutuna iletilir. Değişken değerler yerine değişken adlar görüntülenir ve komut ikamesi gerçekleşmez.

 #! / Bin / bash

kedi & lt; - "_end_of_text"
Kullanıcı adınız: $ (whoami)
Mevcut çalışma dizininiz: $ pwd
Bash sürümünüz: $ bash_version
_end_of_text 

Sekme karakterlerini kullanma

Varsayılan olarak, veri listenizdeki sekme karakterleri korunur ve terminal penceresine yazılır. Bu örneği "Heredoc-2.sh" olarak kopyalayın ve kaydedin. Kullanarak çalıştırılabilir chmod emretmek. Bir dizi boşluk yerine satırın başlangıcında bir veya iki sekme karakterine sahip olduklarından emin olmak için girintili satırları düzenleyin.

 #! / Bin / bash

CAT & LT; _end_of_text
Kullanıcı adınız: $ (whoami)
  Mevcut çalışma dizininiz: $ pwd
    Bash sürümünüz: $ bash_version
_end_of_text 
 ./ Heredoc-2.sh 

Sekmeler terminal penceresine yazılır.

Bir çizgi ekleyerek " - "Yönlendirme operatörüne, burada belge önde gelen sekme karakterlerini görmezden gelecektir. Bu örneği "heredoc-3.sh" olarak kaydedin ve çalıştırılabilir hale getirin.

 #! / Bin / bash

kedi & lt; - _end_of_text
Kullanıcı adınız: $ (whoami)
  Mevcut çalışma dizininiz: $ pwd
    Bash sürümünüz: $ bash_version
_end_of_text 
 ./ heredoc-3.sh 

Sekmeler göz ardı edilir. Bu önemsiz görünebilir, ancak scriptlerin girintili bölümleri nedeniyle önde gelen sekmelerle başa çıkmanın temiz bir yoludur.

Döngüler ve diğer mantıksal yapılar genellikle girintilidir. Buradaki belgeniz, bir betiğin girintili bir bölümünde bulunursa, bir çizgi kullanarak " - "Yönlendirme operatörü ile önde gelen sekme karakterlerinin neden olduğu biçimleri biçimlendirmeyi kaldırır.

 #! / Bin / bash

Eğer doğruysa; sonra
  kedi & lt; - _limit_string
  Önde gelen sekme ile satır 1.
  Önde gelen bir sekme ile satır 2.
  Önde gelen bir sekme ile satır 3.
  _Limit_String
fi 

Bir dosyaya yönlendirilmesi

Burada belge ile birlikte kullanılan komuttan çıktı bir dosyaya yönlendirilebilir. Kullan " & gt; "(Dosyayı oluştur) veya" & gt; & gt; "(Varsa dosyayı oluşturun, eğer varsa dosyaya ekleyin) Yönlendirme operatörleri sonrasında Buradaki belgenin ilk satırındaki limit dizesi.

Bu senaryo "Heredoc-4.sh." Çıktısını "Session.txt" adlı bir metin dosyasına yönlendirecektir.

 #! / Bin / bash

CAT & LT; _end_of_text & gt; seans.txt
Kullanıcı adınız: $ (whoami)
Mevcut çalışma dizininiz: $ pwd
Bash sürümünüz: $ bash_version
_end_of_text 
 ./ heredoc-4.sh 
 Kedi oturumu.Text 

Çıkışı başka bir komuta çevirmek

Burada bir belgede kullanılan komuttan çıktı, başka bir komuta giriş olarak borulanabilir. Kullanmak kamış " | " Şebeke sonrasında Buradaki belgenin ilk satırındaki limit dizesi. Çıktıyı buradaki belge komutundan borulayacağız, kedi , içine sed . Biz istiyoruz Tüm olayların yerine geçme "A" harfi "E" harfi ile.

Bu komut dosyasını "Heredoc-5.sh" olarak adlandırın.

 #! / Bin / bash

CAT & LT; _end_of_text | SED 'S / A / E / G'
Nasıl
NS
GAAK
_end_of_text 
 ./ heredoc-5.sh 

"Gaak", "Geek" için düzeltildi.

Parametreleri bir fonksiyona gönderme

Burada bir belge ile birlikte kullanılan komut komut dosyasında bir işlev olabilir.

Bu komut dosyası bazı araç verilerini bir fonksiyona geçer. İşlev, verileri bir kullanıcı tarafından yazılmış gibi okur. Değişkenlerin değerleri daha sonra yazdırılır. Bu komut dosyasını "heredoc-6.sh" olarak kaydedin.

 #! / Bin / bash

# set_car_details () işlevi
set_car_details ()
{
okumak
modeli oku
New_used işletildi
Teslimat okuma_collect
okuma yeri
okuma Fiyatı
}

# Verileri SET_CAR_DETAIL'lara () geçen belge
set_car_details & lt; _mars_rover_data
Nasa
Sebat rover
Kullanılmış
Toplamak
Mars (Long, Lat) 77.451865,18.445161
2.2 milyar
_mars_rover_data

# Araç detaylarını al
echo "yapmak: $ make"
Echo "Model: $ Model"
echo "yeni veya kullanılmış: $ new_ted"
Echo "Teslimat veya Koleksiyon: $ Teslimat_collect"
Echo "Yer: $ Konum"
echo "Fiyat \ $: $ Fiyat" 
 ./ heredoc-6.sh 

Araç detayları terminal penceresine yazılır.

Bir e-posta oluşturma ve gönderme

Bir e-posta göndermek ve göndermek için burada bir belge kullanabiliriz. Parametreleri yeniden yönlendirme operatörünün önündeki komuta geçebileceğimizi unutmayın. NS Linux kullanarak posta emretmek ile Yerel posta sisteminden bir e-posta gönderin "Dave" adlı kullanıcı hesabına. NS -s (Konu) seçeneği, e-postanın konusunu belirtmemize izin verir.

Bu örnek, "Heredoc-7.sh" komut dosyasını oluşturur.

 #! / Bin / bash

makale = "burada belgeler"

Posta -s 'İş Yükü Durumu' Dave & LT; _proje raporu
Kullanıcı adı: $ (whoami)
Ödevi tamamladı:
Makale: $ makale
_Project_Report 
 ./ heredoc-7.sh 

Bu komut dosyasından görünür bir çıktı yok. Ancak postalarımızı kontrol ettiğimizde, e-postanın oluştuğunu, gönderildiğini ve teslim edildiğini görüyoruz.

 Mail 

Burada SSH ile belgeleri kullanarak

Burada belgeler, bir SSH bağlantısı kurulduktan sonra uzak bir bilgisayarda bazı komutları yürütmenin güçlü ve kullanışlı bir yoludur. İki bilgisayar arasında SSH tuşlarını ayarlarsanız, giriş işlemi tamamen otomatik olacaktır. Bu hızlı ve kirli örnekte, uzak bilgisayardaki kullanıcı hesabının şifresi istenir.

Bu senaryo "heredoc-8.sh". "Remote-PC" adlı uzak bir bilgisayara bağlanacağız. Kullanıcı hesabı "Dave" denir. Kullanıyoruz -T (Pseudo-terminal tahsisi devre dışı bırakma) seçeneğinin, çünkü bize atanacak etkileşimli bir psödo terminaline ihtiyacımız yok.

"Burada bazı işler yap" bölümünde, komut dosyasının bir listesini geçebiliriz ve bunlar uzak bilgisayarda yürütülebiliriz. Tabii ki, uzak bilgisayarda olan bir komut dosyasını arayabilirsiniz. Uzak komut dosyası, yürütülmek istediğiniz tüm komutları ve rutinleri tutabilir.

Script-HEREDOC-8.SH-YAPABİLİRSİNİZ, uzak bilgisayardaki bir bağlantı günlüğünü güncellemektir. Kullanıcı hesabı ve bir zaman ve tarih damgası bir metin dosyasına kaydedilir.

 #! / Bin / bash

ssh -t [email protected] & lt; _Remote_commands

# Bazı işler burada yapın

# Bağlantı Günlüğünü Güncelle
echo $ kullanıcı "-" $ (tarih) & gt; & gt; /home/dave/conn_log/script.log
_Remote_commands 

Komutu çalıştırdığımızda, hesabın şifresini sorarız. uzak bilgisayar.

 ./ heredoc-8.sh 

Uzak bilgisayarla ilgili bazı bilgiler görüntülenir ve komut istemine iade ediyoruz.

Üzerinde uzak bilgisayar, kullanabiliriz kedi Bağlantı günlüğünü kontrol etmek için:

 CAT CONN_LOG / SCRIPT.LOG 

Her bağlantı bizim için listelenmiştir.

İLGİLİ: Linux kabuğundan SSH tuşlarını nasıl oluşturulur ve kurulur

Garip Adı, Düzgün Özellikler

Burada belgeler ilginç ama güçlü, özellikle de uzak bir bilgisayara komut göndermek için kullanılır. Bir yedekleme rutini kullanarak komut dosyası yazmak için basit bir konu olurdu. rsync . Script daha sonra uzak bilgisayara bağlanabilir, kalan depolama alanını kontrol edebilir ve boşluk düşükse, bir uyarı e-postası gönderin.

İLGİLİ: Rsync ile Linux sisteminizi nasıl yedeklenir


, Linux - En Popüler Makaleler

Bir linux bash komut dosyasında satıra göre bir dosya satırını nasıl işleme

, Linux Feb 3, 2025

Fetmawati Achmad Zaenuri / Shutterstock Bir Linux metin dosya satırının içeriğini bir kabuk betiğinde satıra göre okumak oldukça kolaydır - bazı i..


GNOME 40'taki Yenilikler?

, Linux Jul 23, 2025

GNOME VAKFI GNOME 40, yeni bir numaralandırma şemasına sahip. Yeni görünümüyle birlikte yeni bir çalışma yolu geliyor. Eski dikey metaforlar, yatay..


Linux'ta FSCK komutunun nasıl kullanılacağı

, Linux Aug 18, 2025

Pixza Studio / Shutterstock Tüm önemli verilerimiz, bir tür veya başka bir dosya sisteminde oturur ve dosya sistemi sorunları gerçekleşecek. Linux'ta ku..


Geliştiriciler ve meraklıları için 2021'in en iyi Linux dizüstü bilgisayarları

, Linux Sep 27, 2025

TOMEQS / Shutterstock.com 2021'de bir Linux dizüstü bilgisayarda ne aranmalı Neredeyse herhangi bir dizüstü bilgisayar satın alabilirsiniz ve..


KDE Connect sonunda iPhone'a geliyor

, Linux Oct 26, 2025

KDE İPhone'unuzu hazırlamak için kolay bir yol arıyorsanız, Kde masaüstü , bugün senin şanslı günün KDE Connect nihayet bir iPhone uygulamas�..


Bu yeni Linux oyun dizüstü bilgisayar, hiçbir şeyi çalıştırmak için özelliklere sahiptir

, Linux Oct 20, 2025

Juno Bilgisayarları Linux ve oyun son zamanlarda daha çok bir araya gelmeye başlıyor. NS Buhar güverte Linux yüklü yolda ve Juno yeni bir Linux oyun d..


Ubuntu 21.10, özelleştirilmiş bir GNOME 40 masaüstüne ulaşır

, Linux Oct 14, 2025

Ubuntu Eğer bir Ubuntu kullanıcısıysanız veya bir deneme yapmayı düşünen biri, bugün iyi bir gündür. Kanonik, resmen Ubuntu 21.10'u özelleştirilmiş bir GNO..


Linux'ta buhar nasıl indirilir ve yüklenir

, Linux Oct 9, 2025

Postmodern Studio / Shutterstock.com Yani, oyun oynamak istiyorsun. Linux ? Bu yazıda, Linux oyun yolculuğunuzu başlatmak için herhangi bir Linu..


Kategoriler