Mikä Shellin komentosarja on?
Linux-käyttäjänä voit pelata komentorivillä. Kuten tai ei, on vain joitakin asioita, jotka tehdään helpommin tämän käyttöliittymän kautta kuin osoittamalla ja napsauttamalla. Mitä enemmän käytät ja opi komentorivillä, sitä enemmän näet sen potentiaalin. No, itse komentorivi on ohjelma: kuori. Useimmat Linux-distrojat käyttävät nykyään Bashia, ja juuri sinä todella syötät komentoja.
Jotkut teistä, jotka käyttävät Windowsia ennen Linuxin käyttöä, voivat muistaa erätiedostoja. Nämä olivat pieniä tekstitiedostoja, jotka voisit täyttää suoritettavia komentoja ja Windows käyttää niitä vuorostaan. Se oli älykäs ja siisti tapa saada joitakin asioita, kuten ajaa pelejä korkeakoulu tietokone lab, kun et voi avata järjestelmän kansioita tai luoda pikakuvakkeita. Erätiedostot Windowsissa, vaikka ne ovat hyödyllisiä, ovat kuori komentosarjoja.
Se on todellakin käsikirjoituksen voima, luulen. Voit ohjelmoida jo tiedät komennot, kun opit tärkeimpien ohjelmointikielten niittejä. Tarvitseeko tehdä jotain toistuvaa ja tylsiä? Script it! Tarvitsetko pikakuvakkeen todella sekava komento? Script it! Haluatko rakentaa todella helppokäyttöisen komentorivin käyttöliittymän jotain? Script it!
Ennen kuin aloitat
Ennen kuin aloitamme komentosarja-sarjan, katetaan joitain perustietoja. Käytämme bash-kuorta, jota useimmat Linux-jakelut käyttävät natively. Bash on käytettävissä Mac OS -käyttäjille ja Cygwin Windowsille. Koska se on niin yleismaailmallista, sinun pitäisi pystyä käsikirjoituksesta riippumatta alustastasi. Lisäksi, niin kauan kuin kaikki viitatut komennot ovat olemassa, komentosarjat voivat toimia useilla alustoilla, joissa on vain vähän tai ei lainkaan säätämistä.
Komentosarjat voivat helposti käyttää "pääkäyttäjän" tai "ylivaraajan" oikeuksia, joten on parasta testata komentosarjoja ennen kuin laitat ne käyttöön. Käytä myös tervettä järkeä, kuten varmistamalla, että sinulla on varmuuskopioita tiedostoista, joista aiot suorittaa komentosarjan. On myös erittäin tärkeää käyttää oikeita vaihtoehtoja, kuten -i rm-komennolle, jotta vuorovaikutus on välttämätöntä. Tämä voi estää joitain ikäviä virheitä. Sellaisena voit lukea skriptejä, jotka lataat ja ole varovainen tietojen mukana, vain siinä tapauksessa, että asiat menevät väärin.
Heidän ydinsä, komentosarjat ovat vain tavallisia tekstitiedostoja. Voit käyttää mitä tahansa tekstieditoria kirjoittamaan ne: gedit, emacs, vim, nano … Tämä luettelo jatkuu. Varmista, että tallennat sen pelkkänä tekstinä, ei rikkaana tekstinä tai Word-asiakirjana. Koska rakastan helppokäyttöisyyttä, jota nano tarjoaa, käytän sitä.
Script-oikeudet ja -nimet
Komentosarjat toteutetaan kuten ohjelmat, ja jotta tämä tapahtuisi, niillä on oltava oikeat käyttöoikeudet. Voit tehdä skriptit suoritettaviksi suorittamalla seuraavan komennon:
chmod +x ~/somecrazyfolder/script1
Sen avulla kuka tahansa voi käyttää kyseistä komentosarjaa. Jos haluat rajoittaa sen käyttöä vain käyttäjälle, voit käyttää sitä sen sijaan:
chmod u+x ~/somecrazyfolder/script1
Jotta voisit suorittaa tämän komentosarjan, sinun on syötettävä cd oikeaan hakemistoon ja suorita sitten komentosarja seuraavasti:
cd ~/somecrazyfolder
./script1
Jotta asiat olisivat helpommin toteutettavissa, voit sijoittaa komentosarjat kotihakemiston "bin" -kansioon:
~/bin
Monissa moderneissa doksissa tätä kansiota ei enää luoda oletuksena, mutta voit luoda sen. Tämä on yleensä silloin, kun tallennetaan suoritettavat tiedostot, jotka kuuluvat käyttäjänne eikä muille käyttäjille. Sijoittamalla komentosarjoja täällä, voit vain käyttää niitä kirjoittamalla heidän nimensä aivan kuten muut komennot sen sijaan, että tarvitsisit cd-levyn ympärille ja käytät './' -otsiketta.
Ennen kuin nimeät käsikirjoituksen, sinun kannattaa tarkistaa, onko käytössäsi ohjelma, joka käyttää tätä nimeä:
which [command]
Monet ihmiset nimittävät aikaisemmat komentosarjat "testi", ja kun he yrittävät käyttää sitä komentorivillä, mikään ei tapahdu. Tämä johtuu siitä, että se on ristiriidassa testikomennon kanssa, joka ei tee mitään ilman argumentteja. Varmista, että käsikirjoituksesi nimet eivät ole ristiriidassa komentojen kanssa, muutoin saatat löytää itsesi tekemällä asioita, joita et aio tehdä!
Scripting Guidelines
- Jokaisen komentosarjan pitäisi olla "#! / Bin / bash"
- Jokainen uusi rivi on uusi komento
- Kommentoidut rivit alkavat #
- Komentoja ympäröi ()
Hash-Bang Hack
Kun kuori parsittaa tekstitiedoston läpi, suorin tapa tunnistaa tiedosto komentokuvana on tekemällä ensimmäinen rivi:
#!/bin/bash
Jos käytät toista kuorta, vaihda sen polku tähän. Komentorivit alkavat hashilla (#), mutta lisäävät bang (!) Ja shell-polun sen jälkeen, kun se on eräänlainen hakkerointi, joka ohittaa tämän kommentointisäännön ja pakottaa komentosarjan suoritettavaksi tämän rivin osoittavan kuoren kanssa.
Uusi rivi = uusi komento
Jokainen uusi rivi olisi pidettävä uutena komennuksena tai suuremman järjestelmän komponenttina. Jos / sitten / muuten lausumat käsittelevät esimerkiksi useita rivejä, mutta jokaisen järjestelmän osa on uudessa rivissä. Älä anna komennon päästää seuraavaan riviin, koska tämä voi katkaista edellisen komennon ja antaa sinulle seuraavan rivin virheen. Jos tekstieditori tekee tämän, sinun kannattaa poistaa tekstipakkaus käytöstä turvallisella puolella. Voit poistaa tekstin käärinnän nanobittiä painamalla ALT + L-näppäintä.
Kommentti Usein #s
Jos aloitat rivin #, linja jätetään huomiotta. Tämä muuttuu komentoriviksi, jossa voit muistuttaa itseäsi siitä, mitä edellisen komennon tuotos oli, tai mitä seuraava komento tekee. Jälleen sammuta tekstin kääriminen tai rikkoa kommentit useisiin viivoihin, jotka kaikki alkavat hashilla. Useiden kommenttien käyttäminen on hyvä käytäntö pitää, sillä se antaa sinulle ja muille ihmisille nopeammin komentojasi. Ainoa poikkeus on edellä mainittu Hash-Bang-hakata, joten älä seuraa #s with! S.;-)
Komennot ympäröidään aivoristeillä
Vanhemmissa päivinä komentojohdannaiset tehtiin yksittäisillä rastimerkeillä (`, jakaa ~ avaimen). Emme aio koskettaa tätä vielä, mutta kun useimmat ihmiset poistuvat ja tutkivat perusteiden oppimisen jälkeen, on luultavasti hyvä mainita, että sinun pitäisi käyttää sulkeja sen sijaan. Tämä johtuu pääasiassa siitä, että kun peset - laitat komentoja muihin komentoihin - sulkeet toimivat paremmin.
Ensimmäinen komentosarja
Aloitetaan yksinkertaisella komentosarjalla, jonka avulla voit kopioida tiedostoja ja lisätä päivämäärät tiedostonimen loppuun. Let's call it "datecp". Tarkista ensin, onko nimi ristiriidassa jotain:
Luo tyhjä tiedosto ~ / bin -kansioon:
touch ~/bin/datecp
nano ~/bin/datecp
Ja mennään eteenpäin ja asetetaan vaatimus ensimmäinen rivi ja kommentti siitä, mitä tämä skripti tekee.
Mitä asetamme muuttujaan? No, tallennetaan päivämäärä ja kellonaika! Tätä varten kutsumme päivämääräkomennon.
Katso alla olevaa kuvakaappausta, miten päivämäärän komennon tuotos saadaan:
Käytetään päivämääräkomennon viimeistä iterointia, "päivämäärä +% m_% d_% y-% H.% M.% S", ja käytä sitä komentosarjassamme.
variable=$(command –options arguments)
Ja meille, me rakennamme sen näin:
date_formatted=$(date +%m_%d_%y-%H.%M.%S)
Tässä on esimerkkikirjoitus ja sen tulos:
Palatkaamme käsikirjallamme. Seuraavaksi lisäämme komennon kopiointiosaan.
cp –iv $1 $2.$date_formatted
Seuraavaksi näet, että olen lisännyt $ 1 -vaihtoehdon.Kun kirjoitat, dollarimerkki ($), jota seuraa numero, merkitsee sitä scriptin numeroitua argumenttia, kun sitä kutsuttiin. Esimerkiksi seuraavassa komennossa:
cp –iv Trogdor2.mp3 ringtone.mp3
Ensimmäinen argumentti on ÄúTrogdor2.mp3, ja toinen argumentti on Äúringtone.mp3.
Tarkastelemalla käsikirjoitusta voimme nähdä, että viittaamme kahteen argumenttiin:
Toinen argumentti, $ 2, toimii saman komennon tulostustiedostona. Mutta voit myös nähdä, että se on erilainen. Olemme lisänneet ajanjakson, ja olemme viitanneet yllä olevaan arvoon. Kiinnostaako tämä, mitä tämä tekee?
Tässä, mitä tapahtuu, kun komentosarja ajetaan:
Nyt kun suoritan datecp-komennon, se ajaa tämän komentosarjan ja antaa minun kopioida minkä tahansa tiedoston uuteen paikkaan ja lisätä automaattisesti päivämäärän ja kellonajan tiedostonimen lopettamiseen. Hyödyllistä arkistointia varten!
Shell-komentosarjat ovat keskeisessä asemassa, jotta käyttöjärjestelmäsi toimisi sinulle. Sinun ei tarvitse oppia uutta ohjelmointikieltä sen tekemiseksi. Kokeile kirjoittaa joitain peruskomentoja kotona ja alkaa miettiä, mitä voit käyttää tätä varten.
Oletko käsikirjoitus? Onko neuvoja aloittelijoille? Jaa ajatuksesi kommentteihin! Siellä on enemmän tulossa tähän sarjaan!