[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa

Materiaali, jonka käännöksen julkaisemme tänään, on tarkoitettu niille, jotka haluavat hallita Linuxin komentorivin. Kyky käyttää tätä työkalua tehokkaasti voi säästää paljon aikaa. Erityisesti puhumme täällä Bash-kuoresta ja 21 hyödyllisestä komennosta. Puhumme myös siitä, kuinka komentolippuja ja Bash-aliaksia käytetään nopeuttamaan pitkien ohjeiden kirjoittamista.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa

Lue myös blogistamme sarja bash-skriptejä käsitteleviä julkaisuja

Ehdot

Kun opit työskentelemään Linuxin komentorivin kanssa, kohtaat monia käsitteitä, joista on hyötyä navigoinnissa. Jotkut niistä, kuten "Linux" ja "Unix" tai "shell" ja "pääte", ovat joskus sekaisin. Puhutaanpa näistä ja muista tärkeistä termeistä.

unix on suosittu käyttöjärjestelmä, jonka Bell Labs kehitti 1970-luvulla. Hänen koodinsa suljettiin.

Linux on suosituin Unix-tyyppinen käyttöjärjestelmä. Sitä käytetään nykyään monissa laitteissa, myös tietokoneissa.

Terminaali (pääte) tai pääteemulaattori on ohjelma, joka antaa pääsyn käyttöjärjestelmään. Sinulla voi olla useita pääteikkunoita auki samanaikaisesti.

kuori (shell) on ohjelma, jonka avulla voit lähettää käyttöjärjestelmään erityisellä kielellä kirjoitettuja komentoja.

Kemut tarkoittaa Bourne Again Shelliä. Se on yleisin shell-kieli, jota käytetään vuorovaikutuksessa käyttöjärjestelmän kanssa. Myös Bash-kuori on oletusarvo macOS:ssä.

Komentorivikäyttöliittymä (Command Line Interface, CLI) on ihmisen ja tietokoneen välinen vuorovaikutusmenetelmä, jonka avulla käyttäjä syöttää komentoja näppäimistöltä ja tietokone näitä komentoja suorittaessaan näyttää tekstimuodossa viestejä käyttäjälle. CLI:n pääasiallinen käyttötarkoitus on saada ajan tasalla olevaa tietoa tietyistä entiteeteista, kuten tiedostoista, ja työskennellä tiedostojen kanssa. Komentorivikäyttöliittymä tulee erottaa graafisesta käyttöliittymästä (GUI), joka käyttää ensisijaisesti hiirtä. Komentorivikäyttöliittymää kutsutaan usein yksinkertaisesti komentoriviksi.

Käsikirjoitus (script) on pieni ohjelma, joka sisältää sarjan komentotulkkikomentoja. Skriptit kirjoitetaan tiedostoihin, niitä voidaan käyttää toistuvasti. Kun kirjoitat komentosarjoja, voit käyttää muuttujia, ehtoja, silmukoita, funktioita ja muita ominaisuuksia.

Nyt kun olemme käsitelleet tärkeät termit, haluan huomauttaa, että käytän termejä "Bash", "shell" ja "komentorivi" vaihtokelpoisesti, samoin kuin termejä "hakemisto" ja "kansio".

standardi purot, jota käytämme tässä, on vakiotulo (vakiotulo, stdin), vakiolähtö (vakiolähtö, stdout) ja vakiovirhetulostus (standardivirhe, stderr).

Jos esimerkkikomennoista, jotka annetaan alla, löydät jotain vastaavaa my_whatever - tämä tarkoittaa, että tämä fragmentti on korvattava jollain omallasi. Esimerkiksi tiedoston nimi.

Ennen kuin jatkat tämän materiaalin omistettujen komentojen analysointia, katsotaanpa niiden luetteloa ja niiden lyhyitä kuvauksia.

21 Bash-komentoa

▍Tiedon saaminen

  • man: Näyttää komennon käyttöoppaan (ohje).
  • pwd: näyttää tietoja työhakemistosta.
  • ls: näyttää hakemiston sisällön.
  • ps: Voit tarkastella käynnissä olevia prosesseja koskevia tietoja.

▍Tiedostojärjestelmän käsittely

  • cd: vaihda työhakemistoa.
  • touch: luo tiedosto.
  • mkdir: luo hakemisto.
  • cp: Kopioi tiedosto.
  • mv: Siirrä tai poista tiedosto.
  • ln: luo linkki.

▍I/O-uudelleenohjaus ja liukuhihnat

  • <: uudelleenohjaus stdin.
  • >: uudelleenohjaus stdout.
  • |: ohjai yhden komennon ulostulon toisen komennon tuloon.

▍Tiedostojen lukeminen

  • head: lue tiedoston alku.
  • tail: lue tiedoston loppu.
  • cat: Lue tiedosto ja tulosta sen sisältö näytölle tai ketjuta tiedostoja.

▍Tiedostojen poistaminen, prosessien pysäyttäminen

  • rm: Poista tiedosto.
  • kill: lopeta prosessi.

▍Hae

  • grep: etsi tietoa.
  • ag: edistynyt hakukomento.

▍Arkistointi

  • tar: arkistojen luominen ja niiden kanssa työskentely.

Puhutaanpa näistä komennoista tarkemmin.

Joukkueen tiedot

Aluksi käsitellään komentoja, joiden tulokset annetaan muodossa stdout. Yleensä nämä tulokset näkyvät pääteikkunassa.

▍Tiedon saaminen

man command_name: näyttää komentooppaan eli ohjetiedot.

pwd: näyttää polun nykyiseen työhakemistoon. Käyttäessään komentorivillä käyttäjän on usein selvitettävä tarkalleen missä järjestelmässä hän on.

ls: näyttää hakemiston sisällön. Tätä komentoa käytetään myös melko usein.

ls -a: näytä piilotetut tiedostot. lippu käytössä täällä -a komennot ls. Lippujen käyttö auttaa mukauttamaan komentojen toimintaa.

ls -l: Näytä yksityiskohtaiset tiedot tiedostoista.

Huomaa, että lippuja voidaan yhdistää. Esimerkiksi - näin: ls -al.

ps: Näytä käynnissä olevat prosessit.

ps -e: Näytä tiedot kaikista käynnissä olevista prosesseista, ei vain niistä, jotka liittyvät nykyiseen käyttäjäkuoreen. Tätä komentoa käytetään usein tässä muodossa.

▍Tiedostojärjestelmän käsittely

cd my_directory: muuta työhakemistoksi my_directory. Voit siirtyä yhden tason ylöspäin hakemistopuussa käyttämällä my_directory suhteellinen polku ../.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
cd-komento

touch my_file: tiedoston luominen my_file annettua polkua pitkin.

mkdir my_directory: luo kansio my_directory annettua polkua pitkin.

mv my_file target_directory: siirrä tiedosto my_file kansioon target_directory. Kun määrität kohdehakemiston, sinun on käytettävä sen absoluuttista polkua (eikä rakennetta, kuten ../).

tiimi mvvoidaan käyttää myös tiedostojen tai kansioiden uudelleennimeämiseen. Se voi näyttää esimerkiksi tältä:

mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: luo tiedostosta kopio my_source_file ja laita se kansioon target_directory.

ln -s my_source_file my_target_file: luo symbolinen linkki my_target_file tiedostoa kohti my_source_file. Jos muutat linkkiä, myös alkuperäinen tiedosto muuttuu.

Jos tiedosto my_source_file poistetaan silloin my_target_file jää. Lippu -s komennot ln voit luoda linkkejä hakemistoihin.

Puhutaan nyt I/O-uudelleenohjauksesta ja putkistosta.

▍I/O-uudelleenohjaus ja liukuhihnat

my_command < my_file: korvaa tavallisen syöttötiedoston kuvaajan (stdin) tiedostoa kohti my_file. Tästä voi olla hyötyä, jos komento odottaa näppäimistöltä syötettä ja nämä tiedot on jo tallennettu tiedostoon.

my_command > my_file: uudelleenohjaa komennon tulokset, eli sen, mihin normaalisti menisi stdout ja tulosta näytölle, tiedostoon my_file. Jos tiedosto my_file ei ole olemassa - se on luotu. Jos tiedosto on olemassa, se korvataan.

Esimerkiksi komennon suorittamisen jälkeen ls > my_folder_contents.txt luodaan tekstitiedosto, joka sisältää luettelon nykyisen työhakemiston sisällöstä.

Jos symbolin sijaan > käyttää rakennetta >>, sitten, jos tiedosto, johon komennon tulos uudelleenohjataan, on olemassa, tätä tiedostoa ei korvata. Tiedot lisätään tämän tiedoston loppuun.

Katsotaanpa nyt dataputken käsittelyä.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
Yhden komennon lähtö syötetään toisen komennon tuloon. Se on kuin yhden putken yhdistäminen toiseen

first_command | second_command: kuljettimen symboli, |, käytetään lähettämään yhden komennon tulos toiseen komentoon. Mihin kuvatun rakenteen vasemmalla puolella oleva komento lähettää stdout, Pudota stdin komento liukuviivasymbolin oikealla puolella.

Linuxissa dataa voidaan liukuhihnassa käyttää lähes millä tahansa hyvin muodostetulla komennolla. Usein sanotaan, että Linuxissa kaikki on putkea.

Liukuhihnasymbolia voidaan käyttää useiden komentojen ketjuttamiseen. Se näyttää tältä:

first_command | second_command | third_command

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
Useiden komentojen liukuhihnaa voidaan verrata liukuhihnaan

Huomaa, että kun komento symbolin vasemmalla puolella |, tuottaa jotain stdout, mitä hän tulostaa, on heti saatavilla stdin toinen joukkue. Eli käy ilmi, että putkilinjaa käyttämällä käsittelemme komentojen rinnakkaista suorittamista. Joskus tämä voi johtaa odottamattomiin tuloksiin. Yksityiskohdat tästä voidaan lukea täällä.

Puhutaan nyt tiedostojen tietojen lukemisesta ja niiden näyttämisestä näytöllä.

▍Tiedostojen lukeminen

head my_file: lukee rivit tiedoston alusta ja tulostaa ne näytölle. Voit lukea tiedostojen sisällön lisäksi myös sitä, mitä komennot tuottavat stdinkäyttämällä tätä komentoa osana liukuhihnaa.

tail my_file: lukee rivejä tiedoston lopusta. Tätä komentoa voidaan käyttää myös liukuhihnassa.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
Pää (pää) on edessä ja häntä (häntä) takana

Jos työskentelet tietojen kanssa pandaskirjaston avulla, komennot head и tail pitäisi olla sinulle tuttua. Jos näin ei ole, katso yllä olevaa kuvaa ja muistat ne helposti.

Harkitse muita tapoja lukea tiedostoja, puhutaanpa komennosta cat.

Joukkue cat joko tulostaa tiedoston sisällön näytölle tai ketjuttaa useita tiedostoja. Se riippuu siitä, kuinka monta tiedostoa tälle komennolle välitetään kutsuttaessa.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
kissan käsky

cat my_one_file.txt: kun yksittäinen tiedosto välitetään tälle komennolle, se tulostaa sen stdout.

Jos annat sille kaksi tiedostoa tai useampia tiedostoja, se toimii eri tavalla.

cat my_file1.txt my_file2.txt: saatuaan useita tiedostoja syötteenä tämä komento ketjuttaa niiden sisällön ja näyttää mitä tapahtui stdout.

Jos tiedostojen yhdistämisen tulos on tallennettava uutena tiedostona, voit käyttää operaattoria >:

cat my_file1.txt my_file2.txt > my_new_file.txt

Puhutaan nyt tiedostojen poistamisesta ja prosessien pysäyttämisestä.

▍Tiedostojen poistaminen, prosessien pysäyttäminen

rm my_file: Poista tiedosto my_file.

rm -r my_folder: poistaa kansion my_folder ja kaikki sen sisältämät tiedostot ja kansiot. Lippu -r osoittaa, että komento suoritetaan rekursiivisessa tilassa.

Käytä lippua, jos haluat estää järjestelmää pyytämästä vahvistusta aina, kun tiedosto tai kansio poistetaan -f.

kill 012345: Pysäyttää määritellyn käynnissä olevan prosessin ja antaa sille aikaa sulkeutua sulavasti.

kill -9 012345: Lopettaa määritetyn käynnissä olevan prosessin väkisin. Näytä lippu -s SIGKILL tarkoittaa samaa kuin lippu -9.

▍Hae

Voit käyttää erilaisia ​​komentoja tietojen etsimiseen. Erityisesti - grep, ag и ack. Aloitetaan tutustuminen näihin komentoihin grep. Tämä on aika-testattu, luotettava komento, joka on kuitenkin hitaampi kuin muut ja ei ole yhtä kätevä käyttää kuin ne ovat.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
grep-komento

grep my_regex my_file: etsii my_regex в my_file. Jos osuma löytyy, palautetaan koko merkkijono jokaiselle osumalle. Oletus my_regex käsitellään säännöllisenä lausekkeena.

grep -i my_regex my_file: Haku suoritetaan kirjainkoon erottelulla.

grep -v my_regex my_file: palauttaa kaikki rivit, jotka eivät sisällä my_regex. Lippu -v tarkoittaa inversiota, se muistuttaa operaattoria NOT, löytyy monilta ohjelmointikieliltä.

grep -c my_regex my_file: Palauttaa tiedot tiedostosta löytyneen haetun mallin osumien lukumäärästä.

grep -R my_regex my_folder: suorittaa rekursiivisen haun kaikista tiedostoista, jotka sijaitsevat määritetyssä kansiossa ja sen sisäkkäisissä kansioissa.

Puhutaanpa nyt joukkueesta ag. Hän tuli myöhemmin grep, se on nopeampi, sen kanssa on helpompi työskennellä.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
ag komento

ag my_regex my_file: palauttaa tiedot rivinumeroista ja itse riveistä, joilta löytyi osumia my_regex.

ag -i my_regex my_file: Haku suoritetaan kirjainkoon erottelulla.

Joukkue ag käsittelee tiedoston automaattisesti .gitignore ja jättää tulosteen ulkopuolelle sen, mitä kyseisessä tiedostossa luetelluista kansioista tai tiedostoista löytyy. Se on erittäin mukava.

ag my_regex my_file -- skip-vcs-ignores: automaattisten versionhallintatiedostojen sisältö (esim .gitignore) ei oteta huomioon haussa.

Lisäksi kertoakseen joukkueelle ag mille tiedostopoluille haluat jättää haun ulkopuolelle, voit luoda tiedoston .agignore.

Tämän osan alussa mainitsimme komennon ack. Joukkueet ack и ag hyvin samankaltaisia, voimme sanoa, että ne ovat 99-prosenttisesti vaihdettavissa. Kuitenkin joukkue ag toimii nopeammin, siksi kuvailin sitä.

Puhutaanpa nyt työskentelystä arkistojen kanssa.

▍Arkistointi

tar my_source_directory: ketjuttaa tiedostoja kansiosta my_source_directory yhdeksi tarballtiedostoksi. Tällaiset tiedostot ovat hyödyllisiä suurten tiedostojoukkojen siirtämiseen jollekin.

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa
tar komento

Tämän komennon luomat tarball-tiedostot ovat tiedostoja, joiden pääte on .tar (Nauha-arkisto). Se, että sana "teippi" (nauha) on piilotettu komennon nimessä ja sen luomien tiedostojen nimien laajennuksissa, osoittaa kuinka kauan tämä komento on ollut olemassa.

tar -cf my_file.tar my_source_directory: luo tarballtiedoston nimeltä my_file.tar kansion sisällön kanssa my_source_directory. Lippu -c tarkoittaa "luo" (luominen) ja lippu -f "tiedostona" (tiedostona).

Tiedostojen purkamiseen .tar-tiedosto, käytä komentoa tar lippujen kanssa -x ("uutto", uutto) ja -f ("tiedosto", tiedosto).

tar -xf my_file.tar: purkaa tiedostoja my_file.tar nykyiseen työhakemistoon.

Puhutaanpa nyt pakkaamisesta ja purkamisesta .tar-tiedostot.

tar -cfz my_file.tar.gz my_source_directory: tässä lippua käyttäen -z ("zip", pakkausalgoritmi) osoittaa, että algoritmia tulee käyttää tiedostojen pakkaamiseen gzip (GNUzip). Tiedostojen pakkaus säästää levytilaa tallennettaessa tällaisia ​​tiedostoja. Jos tiedostot on tarkoitus siirtää esimerkiksi muille käyttäjille, tämä edistää tällaisten tiedostojen nopeampaa latausta.

Pura tiedosto .tar.gz voit lisätä lipun -z Pura sisältö -komentoon .tar-tiedostot, joista keskustelimme edellä. Se näyttää tältä:

tar -xfz my_file.tar.gz
On huomattava, että joukkue tar On monia muita hyödyllisiä lippuja.

Bash aliakset

Bash-aliakset (kutsutaan myös aliaksiksi tai lyhenteiksi) on suunniteltu luomaan komentojen tai niiden sekvenssien lyhennettyjä nimiä, joiden käyttö tavallisten komentojen sijaan nopeuttaa työtä. Jos sinulla on alias bu, joka piilottaa komennon python setup.py sdist bdist_wheel, tämän komennon kutsumiseen riittää tämän aliaksen käyttäminen.

Luodaksesi tällainen alias, lisää vain seuraava komento tiedostoon ~/.bash_profile:

alias bu="python setup.py sdist bdist_wheel"

Jos järjestelmässäsi ei ole tiedostoa ~/.bash_profile, voit luoda sen itse komennolla touch. Kun olet luonut aliaksen, käynnistä pääte uudelleen, jonka jälkeen voit käyttää tätä aliasta. Tässä tapauksessa kahden merkin syöttö korvaa komennon yli kolmen tusinan merkin syöttämisen, joka on tarkoitettu kokoonpanot Python-paketit.

В ~/.bash_profile voit lisätä aliaksia kaikille usein käytetyille komennoille.

▍Tulokset

Tässä viestissä olemme käsitelleet 21 suosittua Bash-komentoa ja puhuneet komentoaliaksien luomisesta. Jos olet kiinnostunut tästä aiheesta - täällä sarja Bashille omistettuja julkaisuja. Täällä Löydät näistä julkaisuista pdf-version. Lisäksi, jos haluat oppia bashia, muista, että kuten kaikissa muissakin ohjelmointijärjestelmissä, harjoittelu on avainasemassa.

Hyvä lukijat! Mitä aloittelijoille hyödyllisiä komentoja lisäisit tässä artikkelissa käsiteltyihin komentoihin?

Lue myös blogistamme sarja bash-skriptejä käsitteleviä julkaisuja

[kirjanmerkiksi] Bash aloittelijoille: 21 hyödyllistä komentoa

Lähde: will.com

Lisää kommentti