Mikä on Shell -komentosarja ja miksi sitä pitäisi käyttää

Mikä on Shell -komentosarja ja miksi sitä pitäisi käyttää

Kuori on ohjelma Linux- tai Unix -käyttöjärjestelmässä, jonka avulla voit antaa komentoja järjestelmän suoritettavaksi. Kun pääteikkuna avataan linux -tietokoneessa, se käynnistää komentotulkin, joka näyttää käyttöliittymän komentojen syöttämiseen. Tätä käyttöliittymää kutsutaan komentoriviliittymäksi. Kun komento syötetään, kuori suorittaa sen ja tulos näkyy näytöllä.





Sen lisäksi, että kuori voi hyväksyä ja suorittaa komentoja vuorovaikutteisesti, se voi suorittaa myös tiedostoon tallennettuja komentoja. Tämä suoritusmuoto tunnetaan nimellä komentotiedosto , ja tässä artikkelissa käsitellään shell -komentosarjojen perusteita.





1. Kuoren historia

Unixista lähtien 1970 -luvulla oli kuori -ohjelma nimeltä V6 Shell Ken Thomsonin kehittämä. Se oli vuorovaikutteinen kuori, ja siitä puuttui komentosarjakyky.





Sitä seurasi Bourne Shell vuonna 1977 ja on edelleen käytössä oletuskuorena juuri tili. Tämä kuori lisäsi komentosarjoja, jotka ovat osoittautuneet erittäin hyödyllisiksi käytännössä vuosien varrella.

Kuoren edelleen kehittäminen 1980 -luvulla synnytti monia suosittuja kuorivaihtoehtoja, joista suosituimmat olivat C-kuori ja Korn Shell . Kukin näistä kuorista toi oman syntaksinsa, joka tietyissä tapauksissa oli jyrkästi erilainen kuin alkuperäinen kuori.



Yksi tämän päivän suosituimmista kuorista on Bash Shell . Bash tarkoittaa Bourne-Again-Shell ja on huomattavasti parannettu muunnelma alkuperäisestä Bourne Shellistä.

kuinka lähentää Mac -tietokoneeseen

Tässä artikkelissa kuvataan komentosarjakomennot Bash Shell .





2. Shell -komentosarjan suorittaminen

Kuinka suoritat komentosarjan? Yksinkertainen. Anna vain komentosarjan polku argumentiksi kuorelle:

Esimerkki komentosarjasta:





echo 'hello world'

Suorita se seuraavasti:

$ bash hello.sh
# prints
hello world

Huomautus: Kuori edellyttää rivien lopettamista LF-merkeillä (Line-Feed). Jos kirjoitat komentotiedostosi Windowsiin ja yrität suorittaa sen suoraan Linux -järjestelmässä, saatat kohdata virheitä. Windows käyttää CR-LF-yhdistelmää (Carriage-Return-Line-Feed) rivin päättämiseen. Tämä on muutettava vain LF: ksi. Tarkista Windows -editorista, miten voit tehdä tämän.

On myös toinen tapa suorittaa komentotiedosto suoraan komennona. Lisää seuraava rivi ( hashbang deklaraatio) komentotiedostosi ensimmäisenä rivinä.

mistä voin ladata elokuvia ilmaiseksi
#!/bin/bash

Tämän muutoksen myötä yksinkertainen komentosarjamme on nyt:

#!/bin/bash
echo 'hello world'

Nyt sinun on tehtävä komentotiedosto suoritettavaksi seuraavasti:

$ chmod +x hello.sh

Tässä vaiheessa voit suorittaa komentotiedoston suoraan ilman, että sinun on viitattava kuoreen nimenomaisesti.

$ hello.sh
# prints
hello world

Katsotaanpa nyt joitain kuorikomentosarjojen käytön etuja.

3. Tehtävien automaatio

Kuorikomentosarjojen käytön ensimmäinen etu on usein suoritettavien tehtävien automatisointi. Oletetaan, että sinulla on tehtävä, joka sinun on suoritettava joka päivä. Jos sinun on suoritettava useita komentoja Linux -järjestelmässäsi päivittäin, voit tallentaa nämä komennot tiedostoon ja suorittaa komentosarjan. Esimerkkejä ovat:

  • Arkistoi ja lähetä tiedosto tai kansio päivittäin a pilvivarasto kuten S3.
  • Pakkaa lokitiedostot, jotka kasvavat päivittäin.
  • Hae osakekursseja, jäsennä haetut tiedot ja käynnistä sähköposti tai tekstiviesti, kun tietyt ehdot täyttyvät (liian korkeat tai liian alhaiset hinnat).

4. Useiden komentojen yhdistäminen

Useiden tehtävien automatisoinnin lisäksi saatat myös hyötyä siitä, että voit yhdistää useita komentoja yhdeksi komentoksi. Yhden komennon muistaminen on paljon yksinkertaisempaa kuin useat komennot, puhumattakaan niiden suoritusjärjestyksestä.

Esimerkki olisi itse Linux-käyttöjärjestelmän käynnistysjärjestys. Osana käynnistystä käyttöjärjestelmä suorittaa useita komentoja saadakseen järjestelmän oikeaan tilaan. Nämä komennot ovat itse asiassa komentosarjoja, jotka elävät /jne hakemistoon. Jos tarkastelet yhtä näistä komentosarjoista, huomaat järjestelmän käynnistämisen monimutkaisuuden, joka sinun olisi pitänyt suorittaa käsin ilman komentosarjoja.

Seuraavassa on esimerkki shell -komentosarjasta, /etc/profile , joka suoritetaan joka kerta, kun käyttäjä kirjautuu sisään. Kuvittele, että kirjoitat nämä komennot käsin!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. Helpompi kehittää

On mahdollista suorittaa samat toiminnot kuin komentosarjakripti tavallisessa ohjelmassa, joka on kirjoitettu C/C ++: lla. Kuitenkin on paljon helpompi kirjoittaa ja debug -komentosarja kuin C/C ++ -ohjelma. Erityisesti järjestelmänhallintatehtäviin, joihin kuuluu ulkoisten komentojen suorittaminen, tiedostojen ja hakemistojen luominen ja poistaminen, tulosten uudelleenohjaus jne.

C/C ++ -ohjelmat ovat parempia paljon alhaisemmalle toiminnalle, kuten järjestelmäpuhelujen kutsuminen, tietorakenteiden käsittely jne.

6. Läpinäkyvyys

Shell -komentosarja, koska se on tekstitiedosto, voidaan helposti tarkastella ja tarkistaa, mitä toimintoja se suorittaa. Sitä vastoin ainoa tapa, jolla voit koskaan tietää, mitä C/C ++: n kaltaisella kielellä kirjoitettu (ja suoritettavaksi käännetty) ohjelma tekee, on se, jos se päättää kertoa sinulle tai jos sinulla on pääsy lähdekoodiin. Voit esimerkiksi tarkistaa, poistaako komentotiedosto komentotiedostoja, ja jos tarvitset näitä tiedostoja, voit kopioida ne eri paikkaan.

On myös paljon helpompaa diagnosoida ongelmia komentosarjojen kanssa tavallisten ohjelmien sijaan, koska voit tarkastella lähdekoodia. Onko skripti epäonnistunut, koska hakemistoa ei ole olemassa? Voit katsoa komentosarjan koodia ja luoda hakemiston (vaikka hyvin käyttäytyvän komentosarjan komentosarjan pitäisi tarkistaa ja luoda se tällaisten virheiden välttämiseksi).

7. Kannettava

TO shell -käsikirjoitus voidaan siirtää muihin Unix- ja Unix-tyyppisiin käyttöjärjestelmiin ja suorittaa (jos kuori itse on olemassa). Jopa siirrettäessä komentotiedostoja eri arkkitehtuureista, kuten x86, MIPS, Sparc jne., Komentotiedostot ovat paljon kannettavampia kuin C/C ++ -ohjelmat.

Ainoa tapa, jolla C/C ++ -ohjelma voidaan siirtää ja käyttää toisessa järjestelmässä, on kopioida lähdekoodi, rakentaa ohjelma ja yrittää suorittaa se. Silloinkin se ei ehkä toimi odotetusti, jos se käyttää arkkitehtuurikohtaista koodia.

Nyt kun sinulla on käsitys siitä, mitä shell -komentosarjoja ovat ja niiden monia etuja, etkö halua käyttää niitä tehtäviisi? Mitä ongelmia olet kohdannut käyttäessäsi niitä? Kerro meille alla olevissa kommenteissa.

en muista kirjan nimeä
Jaa Jaa Tweet Sähköposti 5 vinkkiä VirtualBox Linux -koneiden lataamiseen

Oletko kyllästynyt virtuaalikoneiden heikkoon suorituskykyyn? Tässä on, mitä sinun pitäisi tehdä parantaaksesi VirtualBox -suorituskykyäsi.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Linux Bash Shell
Kirjailijasta Jay Sridhar(17 artikkelia julkaistu) Lisää Jay Sridharilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi