Kuinka käyttää "täällä asiakirjoja" bashissa Linuxissa

Mar 31, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock

Kumma nimeltään ”täällä asiakirjoja” voit käyttää input / out uudelleenohjaus sisällä Bash skriptejä Linux. Ne ovat hyvä tapa automatisoida komentoja sinun täytyy suorittaa etätietokoneeseen.

tänne asiakirjat

Monet komennot Linux on kaksi tai kolme kirjaimen nimiä. Tämä johtuu osittain mitä syntyy ajatus, että Linux on vaikea oppia ja täynnä mystistä komentoja. Mutta yksi oudoin nimien Linux ei ole yksi arvoituksellisesti lyhyillä. ”Tässä asiakirjat” eivät ole asiakirjoja, ja se ei ole täysin selvää, mitä ”täällä” viittaa joko.

Ne ovat suhteellisen harvinaisia ​​konstruktio, mutta ne ovat hyödyllisiä. Tietenkin tämä on Linux, niin siellä on enemmän kuin yksi tapa ihoa kissa. Jotkut tarjoaman toiminnallisuuden tässä asiakirjat voidaan tuottaa muilla tavoilla. Nämä vaihtoehtoisia menetelmiä ovat yleensä monimutkaista. Ohjelmoinnissa ja scripting ”monimutkaisempi” tarkoittaa myös ”alttiimpia vikoja” ja että koodi on vaikeampi ylläpitää.

Missä täällä asiakirjat todella Excel on automatisoinnissa komennot haluat lähettää etätietokoneeseen luotua yhteyttä sisällä käsikirjoituksen. Making yhteys on helppoa, mutta kun yhteys on tehty, miten te ”pumppu” oman komentoja käsikirjoituksen kuoreen etätietokoneen? Täällä asiakirjat voit tehdä hyvin yksinkertaisesti.

Perusperiaatteet Täällä Asiakirjat

Idiomaattista esitys tässä asiakirjassa näyttää tältä:

 Komento & lt; & lt; limit_string
 .
 .
teksti
tiedot
muuttujat
.
.
limit_string 
  • KOMENTO : Tämä voi olla mikä tahansa linux komento, joka hyväksyy uudelleenohjattujen tulo. Muistiossa kaiku komento ei hyväksy uudelleenohjattujen tulo . Jos tarvitset kirjoittaa näytölle, voit käyttää kissa komento, joka ei .
  • & Lt; & lt; : Suunnanmuutosviesti operaattori.
  • limit_string : Tämä on merkki. Se voi olla mitä haluat, kunhan se ei näy luettelossa tietoja puhelimeen uudelleenohjaat osaksi komento. Sitä käytetään merkitsemään tekstin loppuun, data, ja muuttujia lista.
  • data List : Luettelo tiedot voidaan syöttää komennon. Se voi sisältää komentoja, tekstiä, ja muuttujia. Sisällön dataluettelon syötetään komento yksi rivi kerrallaan, kunnes _limit_string kohdataan.

Luultavasti nähdä esimerkkejä tästä käyttäviä asiakirjoja ”EOF” kuin raja merkkijono. Emme suosi tätä lähestymistapaa. Se toimii, mutta ”EOF” tarkoittaa ”tiedoston loppu.” Lukuun ottamatta harvoissa tapauksissa, kun koti asiakirja on viimeinen asia komentosarjatiedosto ”EOF” käytetään virheellisesti.

Se tekee skriptejä paljon luettavaa, jos käytät raja merkkijonon, joka viittaa siihen, mitä olet tekemässä. Jos lähetät useita komentoja etätietokoneeseen yli Secure Shell (SSH), raja merkkijono nimeltään jotain ”_remote_commands” olisi aivan järkeviä. Sinun ei tarvitse käynnistää ne alaviivalla ” _ ”Merkki. Teemme sen, koska se merkitsee ne jotain tavallisuudesta oman käsikirjoituksen.

yksinkertaisia ​​esimerkkejä

Voit käyttää tässä asiakirjoja komentoriviltä ja skriptejä. Kun kirjoitat seuraavan pääteikkunaan, näet ” & Gt; ”Jatkorivin Kysy aina osut’Enter’. Kun kirjoitat ”_end_of_text” raja merkkijono ja paina ”Enter” sivustojen listaa välitetään kissa, ja ne näkyvät pääteikkunassa.

 kissa & lt; & lt; _end_of_text
Miten - geek
Tarkista Geek
LifeSavvy
CloudSavvy IT
MindBounce
_end_of_text 

Se ei ole kaikkein kannattavaa harjoituksia, mutta se osoittaa, että mitään lähetetään komento, kunnes koko lista tietoa kootaan ja raja merkkijono kohdataan. The kissa komento ei tule signaalia, kunnes annat raja merkkijono ”_end_of_text” ja paina ”Enter” -näppäintä.

Voimme tehdä saman asian käsikirjoituksen. Kirjoittaa tai kopioida tässä esimerkissä tulee editori, tallenna tiedosto nimellä ”heredoc-1.sh”, ja lähellä toimittaja.

 #! / Bin / bash

kissa & lt; & lt; "_End_of_text"
Käyttäjätunnuksesi on: $ (whoami)
Nykyinen työhakemistosta on: $ PWD
Teidän Bash versio on: $ BASH_VERSION
_end_of_text 

Kun seuraa tämän artikkelin, joka kerta kun luoda skriptin, sinun täytyy tehdä siitä pääkäyttäjän ennen kuin se toimii. Joka tapauksessa, Käytä chmod komento . Korvaa nimi skriptin jokaisen esimerkin käsikirjoituksen nimi käytetään tässä.

 chmod + x heredoc-1.sh 

Tämä kirjoitus sisältää kaksi ympäristömuuttujat, $ PWD ja $ BASH_VERSION . Muuttujan nimet korvataan tietonsa arvoihin työhakemiston ja versio Bash-kun käsikirjoitus suoritetaan.

Käsikirjoitus käyttää myös komento korvaaminen päällä The kuka olen komento . Nimi komennon korvataan omalla lähtö. Ulostulo koko kirjoitus kirjoitetaan terminaali ikkunassa kissa komennon. Otamme käsikirjoituksen kutsumalla sitä nimellä:

 ./ heredoc-1.sh 

Jos muokkaat käsikirjoituksen ja kääri raja merkkijonon ensimmäisellä rivillä täällä dokumentoida lainausmerkeissä” " ”Tietoluettelossa välitetään tässä asiakirjassa komennon sanatarkasti. Muuttujien nimet näytetään sen sijaan muuttuja-arvoja, ja komento korvaaminen ei tapahdu.

 #! / Bin / bash

kissa & lt; & lt; - "_end_of_text"
Käyttäjätunnuksesi on: $ (whoami)
Nykyinen työhakemistosta on: $ PWD
Teidän Bash versio on: $ BASH_VERSION
_end_of_text 

Käsittely Tab Hahmot

Oletuksena sarkainmerkeillä tietosi luettelossa säilytetään ja kirjoitetaan pääteikkuna. Kopioi ja tallenna tässä esimerkissä ”heredoc-2.sh.” Tee se suoritettavan käyttämällä chmod komento. Muokkaa Sisennetty varmistaa, että heillä on yksi tai kaksi sarkainmerkeillä alussa linjan sijaan tilasarjan.

 #! / Bin / bash

kissa & lt; & lt; _end_of_text
Käyttäjätunnuksesi on: $ (whoami)
  Nykyinen työhakemistosta on: $ PWD
    Teidän Bash versio on: $ BASH_VERSION
_end_of_text 
 ./ heredoc-2.sh 

Välilehdet kirjoitetaan pääteikkuna.

Lisäämällä viiva ” - ”Uudelleenreitityssignaalin operaattorin tässä asiakirjassa ei huomioi johtava sarkainmerkeillä. Tallenna tässä esimerkissä ”heredoc-3.sh” ja tehdä siitä suoritettavan.

 #! / Bin / bash

kissa & lt; & lt; - _end_of_text
Käyttäjätunnuksesi on: $ (whoami)
  Nykyinen työhakemistosta on: $ PWD
    Teidän Bash versio on: $ BASH_VERSION
_end_of_text 
 ./ heredoc-3.sh 

Välilehdet ohitetaan. Tämä saattaa tuntua triviaali, mutta se on siisti tapa selviytyä johtavien välilehtiä takia sisennetty osiin skriptejä.

Silmukoita ja muut loogiset konstruktit ovat yleensä sisennetty. Jos tähän asiakirjaan sisältyy sisennetty osa skriptin avulla viiva ” - ”Kanssa uudelleenohjaus operaattorin Poistaa formatointikysymykset aiheuttama johtava sarkainmerkki.

 #! / Bin / bash

jos totta; sitten
  kissa & lt; & lt; - _limit_string
  Rivi 1 johtava välilehteä.
  Linja 2 erään johtavan välilehteä.
  Rivi 3 erään johtavan välilehteä.
  _limit_string
fi 

Suuntaamalla tiedostoon

Tuloste komennon kanssa käytetään tässä asiakirjassa voidaan ohjata tiedostoon. Käytä " & Gt; ”(Luo tiedosto) tai” & Gt; & gt; ”(Luo tiedosto, jos sitä ei ole, liitä tiedoston, jos se ei) uudelleenohjaus toimijoiden jälkeen raja merkkijonon ensimmäisellä rivillä täällä asiakirjasta.

Tämä kirjoitus on ”heredoc-4.sh.” Se ohjaa lähtönsä tekstitiedosto nimeltä ”session.txt.”

 #! / Bin / bash

kissa & lt; & lt; _end_of_text & gt; session.txt
Käyttäjätunnuksesi on: $ (whoami)
Nykyinen työhakemistosta on: $ PWD
Teidän Bash versio on: $ BASH_VERSION
_end_of_text 
 ./ heredoc-4.sh 
 kissa session.text 

Putkiston lähtö toinen komento

Ulostulo komento, jota käytetään tässä asiakirjassa voidaan johtaa tulona toisen komennon. Käyttää putki ” | ”operaattori jälkeen raja merkkijonon ensimmäisellä rivillä täällä asiakirjasta. Aiomme putken lähdön täältä asiakirjasta komennon, kissa , osaksi sed . Me haluamme korvata kaikki esiintymät kirjaimesta "a" kirjaimella "E".

Nimeä tämä käsikirjoitus "HEREEDOC-5.SH".

 #! / Bin / Bash

Cat & lt; & lt; _END_OF_TEXT | SED 'S / A / E / G'
Miten
Jllek
Gaak
_end_of_text 
 ./ heredoc-5.sh 

"Gaak" on korjattu "geekiksi".

Parametrien lähettäminen toimintoon

Tässä asiakirjassa käytettävä komento voi olla toiminto käsikirjoituksessa.

Tämä käsikirjoitus siirtää ajoneuvon tiedot toimintaan. Toiminto lukee tiedot, jotka käyttäjä on kirjoittanut sitä. Muuttujien arvot tulostetaan sitten. Tallenna tämä skripti nimellä "heredoc-6.sh".

 #! / Bin / Bash

# SET_CAR_DETAILS () -toiminto
set_car_details ()
{
Lue
Lue malli
Lue new_eded
Lue Delivert_collect
Lue sijainti
Lue hinta
}

# Täällä asiakirja, joka siirtää tiedot set_car_details ()
set_car_details & lt; & lt; _MARS_ROVER_DATA
Nasa
Sitkeys rover
Käytetty
Kerätä
Mars (pitkä, LAT) 77.451865,18.445161
2,2 miljardia
_MARS_ROVER_DATA

# Hae ajoneuvon tiedot
ECHO "Tee: $ Tee"
ECHO "Malli: $ malli"
Echo "Uusi tai käytetty: $ New_USED"
ECHO "Toimitus tai kokoelma: $ Delivery_collect"
ECHO "Sijainti: $ Sijainti"
ECHO "Hinta \ $: $ hinta" 
 ./ HEREEDOC-6.SH 

Ajoneuvon tiedot kirjoitetaan päätelaitteeseen.

Sähköpostin luominen ja lähettäminen

Voimme käyttää täällä asiakirjaa säveltää ja lähettää sähköpostia. Huomaa, että voimme siirtää parametreja komentoon uudelleenohjauksen edessä. Olemme Linuxin käyttö posti komento jllek Lähetä sähköpostiviesti paikallisen postijärjestelmän kautta Käyttäjätilille nimeltä "Dave". The -s (Aihe) Vaihtoehto antaa meille mahdollisuuden määrittää sähköpostin aiheen.

Tämä esimerkki muodostaa käsikirjoituksen "heredoc-7.sh".

 #! / Bin / Bash

Article = "Täältä dokumentit"

Mail -S '-työkalutila' Dave & lt; & lt; _projekti raportti
Käyttäjänimi: $ (WhoMi)
On suorittanut tehtävän:
Artikkeli: $ artikkeli
_Project_Report 
 ./ HERADOC-7.SH 

Tästä käsikirjoituksesta ei ole näkyvää tuotosta. Mutta kun tarkistamme postimme, näemme, että sähköposti koostui, lähetetty ja toimitettu.

 Mail 

Käyttämällä täällä asiakirjoja SSH: llä

Tässä asiakirjat ovat voimakas ja kätevä tapa suorittaa joitain komentoja etätietokoneessa, kun SSH-yhteys on perustettu. Jos olet määrittänyt SSH-näppäimet näiden kahden tietokoneen välillä, kirjautumisprosessi on täysin automaattinen. Tässä nopealla ja likaisessa esimerkissä sinua pyydetään uudelleenkäyttäjätilin salasana etätietokoneessa.

Tämä käsikirjoitus on "heredoc-8.sh". Aiomme muodostaa yhteyden etätietokoneeseen nimeltä "Remote-PC". Käyttäjätiliä kutsutaan "Daveiksi". Käytämme -T (Poista pseudo-terminaali) vaihtoehto, koska emme tarvitse interaktiivista pseudo-terminaalia, joka on määritetty meille.

"Tee joitakin työtä täällä" osa komentosarjan, voimme siirtää luettelon komentoista, ja ne suoritettaisiin etätietokoneessa. Tietenkin voit soittaa vain etätietokoneessa oleva käsikirjoitus. Kaukosäädin voi pitää kaikki komennot ja rutiineet, jotka haluat suorittaa.

Kaikki, mitä Script-Hereedoc-8.SH-aikoo tehdä, päivittää yhteystietokoneen yhteystietokone. Käyttäjätili ja aika- ja päivämääräleima ovat kirjautuneet tekstitiedostoon.

 #! / Bin / Bash

ssh -t [email protected] & lt; & lt; _remote_commands

# Tee työtä täällä

# Päivitä yhteysloki
ECHO $ ​​Käyttäjä "-" $ (päivämäärä) & gt; & gt; /Home/dave/conn_log/script.log
_remote_commands 

Kun käytämme komentoa, meitä kehotetaan salasanan tilille etä tietokone.

 ./ HEREEDOC-8.SH 

Joitakin tietoja etätietokoneesta näytetään ja palataan komentokehotteeseen.

Jssk etä tietokone, voimme käyttää kissa Yhteyslokin tarkistaminen:

 CAT CONN_LOG / SCRIPT.LOG 

Jokainen yhteys on lueteltu meille.

Liittyvät: Kuinka luoda ja asentaa SSH-näppäimet Linux Shellistä

Outo nimi, Siisti Ominaisuudet

Tässä asiakirjat ovat omituisia mutta voimakkaita, varsinkin kun niitä käytetään komentojen lähettämiseen etätietokoneeseen. Se olisi yksinkertainen asia tallentaa varmuuskopio rutiinia käyttäen rync . Skripti voi sitten muodostaa yhteyden etätietokoneeseen, tarkista jäljellä oleva tallennustila ja lähettää hälytyksen sähköpostiviesti, jos tila oli alhainen.

Liittyvät: Kuinka varmuuskopioida Linux-järjestelmä RSYNC: llä


Linux - Suosituimmat artikkelit

Miten löytää ja poistaa rikki symbolit Linuxissa

Linux Nov 12, 2024

Fatmawati Achmad Zaenuri / Shutterstock Linux-symboliset linkit ovat fantastinen ominaisuus, mutta ne voivat rikkoa ja jättää huomiotta mitään. Näin vo..


Kuinka pakottaa käyttäjiä muuttamaan salasanoja Linuxissa

Linux Nov 4, 2024

Ilya Titchev / Shutterstock Salasanat ovat Avainkiven tilin turvallisuuden. Näytämme, kuinka nollata salasanat, sarja salasana päättymisen tarkistaminen, j..


Docer aloittelijoille: Kaikki mitä tarvitset tietää

Linux Jun 15, 2025

Satamatyöläinen luo pakettiohjelmistoja nimeltään kontteja. Kukin säiliö antaa käyttöön eristetyn ympäristö on samanlainen kuin virtuaalikone (VM)..


Mitä uutta GNOME 40?

Linux Jul 23, 2025

Gnome-säätiö Gnome 40: llä on enemmän kuin uusi numerointijärjestelmä. Uuden ulkoasun lisäksi tulee uusi tapa työskennellä. Vanhat pystysuorat meta..


Miten kirjautua ulos Macin Terminal

Linux Aug 8, 2025

Apple on helppo kirjautua ulos Mac-tietokoneesta, jossa vaihtoehto työpöydän valikkopalkissa. Mutta on myös muutamia komentoja, joita voit kirjautua ulos terminaalin avulla, kuten l�..


Linux täyttää 30: Miten harrastusprojekti valloittaneet maailman

Linux Sep 17, 2025

Larry Ewing ja GIMP Päällä 17 syyskuu 1991 Linus julkaisi Linux-ytimen (versio 0.01) ensimmäistä kertaa. Tässä lyhyt katsaus miten pieni harr..


10 hyödyllistä esimerkkiä Linux rsync -komennosta

Linux Oct 24, 2025

Linux rsync Komento on tehokas tiedoston kopiointi- ja kansioiden synkronointityökalu. Tässä on kymmenen yleistä käyttötapausta, joita voit käyttää hyväksi omilla järjeste..


Kuinka saada julkinen IP Linux Bash -komentosarja

Linux Nov 9, 2024

Tarvitset ulkoisen IP -osoitteesi, jos haluat muodostaa yhteyden tietokoneeseen. Sen löytäminen manuaalisesti on helppoa, mutta näin löydät sen Linux -komentosarjan sisällä. Sisäi..


Luokat