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.
→
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ä.
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 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
<
: uudelleenohjausstdin
.>
: uudelleenohjausstdout
.|
: 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 ../
.
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 mv
voidaan 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
: luo tiedostosta kopio
cp my_source_file target_directorymy_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ä.
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
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
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 stdin
käyttämällä tätä komentoa osana liukuhihnaa.
tail my_file
: lukee rivejä tiedoston lopusta. Tätä komentoa voidaan käyttää myös liukuhihnassa.
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.
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.
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ä.
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.
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
В ~/.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 -
Hyvä lukijat! Mitä aloittelijoille hyödyllisiä komentoja lisäisit tässä artikkelissa käsiteltyihin komentoihin?
→
Lähde: will.com