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
kaikukomento ei hyväksy uudelleenohjattujen tulo . Jos tarvitset kirjoittaa näytölle, voit käyttääkissakomento, 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.
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ä