- Linux on nykyaikaisten palvelimien, pilvipalveluiden, tietoturvan ja kehitystyönkulkujen perusta, joten sen oppiminen avaa laajan kirjon teknisiä urapolkuja.
- Shellin, tiedostojärjestelmän, tekstinmuokkauksen ja bash-skriptien hallinta antaa sinulle ydintaidot tehtävien automatisointiin ja järjestelmien tehokkaaseen hallintaan.
- Käyttäjien, käyttöoikeuksien, verkostoitumisen, lokinhallinnan ja prosessien hallinnan ymmärtäminen on olennaista turvallisten, vakaiden ja ylläpidettävien Linux-ympäristöjen kannalta.
- Valvonta, lokitietojen analysointi ja työkalut, kuten cron, SSH ja sar, mahdollistavat reaalimaailman Linux-järjestelmien luotettavan käytön, vianmäärityksen ja skaalauksen.
Jos haluat vankan uran teknologia-alalla, Linuxin opettelu on yksi fiksuimmista valinnoista, joita voit itsellesi asettaa. Pilvipalvelimista ja DevOps-putkista kyberturvallisuuslaboratorioihin ja supertietokoneisiin, Linux pyörittää hiljaisesti kulissien takana. Sen hallitseminen ei ainoastaan tee sinusta nopeampaa ja tehokkaampaa jokapäiväisissä tehtävissä – se myös avaa ovia rooleihin järjestelmänhallinnassa, pilvitekniikassa, tietoturvassa, SRE:ssä ja muissa tehtävissä.
Tämä opas opastaa sinut perusteista edistyneisiin Linux-aiheisiin pitäen asiat käytännönläheisinä, käytännöllisinä ja maanläheisinä. Aloitat ymmärtämällä, mitä Linux todella on, miten se on rakennettu ja jaettu, ja miten saat sen toimimaan omalla koneellasi. Tämän jälkeen tutustut komentoriviin, tiedostojärjestelmään, tekstinmuokkaukseen, komentosarjojen kirjoittamiseen, pakettien hallintaan, käyttäjiin ja käyttöoikeuksiin, verkkoihin, lokitietojen analysointiin, automatisointiin cronin avulla, prosessien hallintaan, vianmääritykseen ja muuhun. Olitpa sitten vaihtamassa Windowsista/macOS:stä tai parantamassa olemassa olevia taitojasi, löydät paljon materiaalia, jota voit käyttää oikeissa järjestelmissä.
Miksi Linux on tärkeä ja miten se on rakennettu
Linux on ilmainen, avoimen lähdekoodin käyttöjärjestelmä, joka on saanut inspiraationsa Unixista ja jonka Linus Torvalds julkaisi ensimmäisen kerran vuonna 1991. Avoimen lähdekoodin olemus tarkoittaa, että sen lähdekoodi on julkisesti saatavilla: kuka tahansa voi lukea sitä, muokata sitä ja jakaa omia versioitaan. Tämä yhteistyömalli on tehnyt Linuxista modernin infrastruktuurin selkärangan: web-palvelimet, pilvialustat, IoT-laitteet, Android-puhelimet, Chromebookit ja paljon muuta luottavat siihen joka päivä.
Kun ihmiset sanovat ”Linux”, he sekoittavat usein kolme toisiinsa liittyvää mutta erillistä käsitettä: ytimen, käyttöjärjestelmän ja jakelun. - ydin on ydinohjelma, joka hallitsee laitteistoresursseja, kuten muistia, suorittimen aikaa, levyjä ja laitteita, ja tarjoaa järjestelmäkutsuja sovelluksille. Sen lisäksi käytössäsi on järjestelmäapuohjelmat, kirjastot, komentotulkit ja työkalut, jotka yhdessä muodostavat täydellisen käyttöjärjestelmän. jakelu (tai ”distro”) sisältää Linux-ytimen kaikki tarvittavat käyttäjätilan ohjelmistot, paketinhallintaohjelman ja asennusohjelman sekä yhteisön tai toimittajan valitsemat oletusasetukset ja käytännöt.
Koska ydin on avoimen lähdekoodin, kuka tahansa voi ottaa sen, lisätä työkaluja ja konfiguraatioita ja julkaista oman jakelunsa. Siksi näet niin monia eri variaatioita: jotkut ovat pieniä ja yhden tarkoituksen mukaisia, toiset täysimittaisia ja sisältävät tuhansia paketteja. Monet ovat "johdettuja" toisista – esimerkiksi Ubuntu ja Kali on rakennettu Debianin päälle ja käyttävät uudelleen sen pakettijärjestelmää, repositorioita ja suurta osaa sen työkaluketjusta. Johdannaisjakelut saavat vakautta, tietoturvapäivityksiä ja massiivisia ohjelmistorepositorioita emoyhtiöltään, mutta keskittyvät omaan ponnisteluihinsa erikoisominaisuuksiin, oletusasetuksiin tai käyttötapauksiin.
Suositut aloittelijaystävälliset ja edistyneille tarkoitetut jakelut on suunnattu kukin eri yleisöille ja työnkuluille. Ubuntu on yksi käytetyimmistä ja erittäin helppokäyttöinen uusille tulokkaille, ja sillä on vahva yhteisön tuki. Myös Linux Mint on aloittelijaorientoitunut ja lisää koodekkeja ja multimediatuen suoraan paketista. Arch Linux on minimalistinen ja käytännönläheinen, ja se on suunnattu kokeneille käyttäjille, jotka haluavat täyden hallinnan ja tee-se-itse-lähestymistavan. Manjaro perustuu Archiin, mutta lisää graafisia työkaluja ja järkeviä oletusasetuksia. Kali Linux keskittyy penetraatiotestaukseen ja siinä on valtava arsenaali tietoturva- ja hakkerointityökaluja valmiiksi asennettuna.
Linuxin asentaminen koneellesi
Paras tapa oppia Linuxia todella on käyttää sitä päivittäin, joten ensimmäinen askel on hankkia pääsy Linux-ympäristöön, jossa voit kokeilla turvallisesti. Voit asentaa Linuxin pääkäyttöjärjestelmäksi, käyttää sitä Windowsin rinnalla, käynnistää sen virtuaalikoneessa, käyttää Windowsin Linux-alijärjestelmää tai jopa työskennellä kokonaan selainpohjaisissa päätelaitteissa tai pilvi-instansseissa tarpeidesi ja laitteistosi mukaan.
Linuxin asentaminen ensisijaiseksi käyttöjärjestelmäksi antaa sinulle puhtaimman ja nopeimman käyttökokemuksen. Yleinen aloittelijan tapa on asentaa Ubuntu LTS (Long Term Support) paljaalle metallille. Lataat virallisen ISO-tiedoston, luot käynnistettävän USB-aseman (työkalut, kuten Rufus Windowsissa, tekevät tästä helppoa), käynnistät koneen siltä ja käyt läpi asennusohjelman. LTS-julkaisut tarjoavat useiden vuosien tietoturva- ja ylläpitopäivitykset, joten sinun ei tarvitse asentaa konetta uudelleen usein. Asennuksen jälkeen sinun tarvitsee vain käynnistää kone uudelleen, kirjautua sisään asettamallasi käyttäjätunnuksella ja salasanalla, ja olet valmis mukauttamaan työpöytääsi ja asentamaan sovelluksia.
Kun olet tottunut asennukseen, on olemassa muutamia edistyneitä asennusvaihtoehtoja, joihin kannattaa tutustua. Levyn osiointi mahdollistaa levyn jakamisen erillisiin osioihin: juuriosiolle, kotiosiolle ja mahdollisesti erilliselle data- tai varmuuskopio-osiolle. Sivutusmääritykset voivat ottaa käyttöön horrostilan tai antaa vähän RAM-muistia käyttäville järjestelmille hieman hengähdystauon. Nämä aiheet eivät ole pakollisia heti alkuun, mutta niillä on suuri merkitys tuotantopalvelimilla tai huolellisesti viritetyillä työasemilla.
Jos haluat pitää Windowsin, mutta käyttää silti Linuxia säännöllisesti, sinulla on useita hyviä vaihtoehtoja. Kaksoiskäynnistys antaa sinun asentaa Linuxin Windowsin rinnalle ja valita, mikä käyttöjärjestelmä käynnistetään käynnistyksen yhteydessä; jokaisella on oma osionsa, mutta vain yksi on käynnissä kerrallaan. Virtuaalikoneet, jotka käyttävät työkaluja, kuten VirtualBox tai VMware, antavat sinun käyttää Linuxia vieraskäyttöjärjestelmänä Windowsin sisällä, jolloin virtuaalikoneelle voidaan määrittää suorittimen ytimiä, RAM-muistia, levyä ja verkkoresursseja. Selainpohjaiset terminaalit ja pilvipohjaiset VPS-instanssit (AWS EC2, Azure, DigitalOcean ja muut) tarjoavat sinulle etäkäyttöisiä Linux-komentotulkkeja, joihin voit käyttää mistä tahansa, yleensä SSH:n kautta.
Windows 10:ssä ja 11:ssä Windowsin Linux-alijärjestelmä (WSL2) on loistava tapa integroida täysi Linux-käyttäjätila Windows-työpöydällesi. Otat käyttöön ”Windows Subsystem for Linux” -ominaisuuden, avaat päätelaitteen oikeudet ja suoritat wsl --installOletusarvoisesti tämä asentaa Ubuntun. Uudelleenkäynnistyksen jälkeen sinua pyydetään luomaan Linux-käyttäjätunnus ja -salasana, ja sen jälkeen voit käynnistää Ubuntun Käynnistä-valikosta ja käyttää sitä tavallisena Linux-komentotulkkina – raskaita virtuaalikoneen levykuvia ei tarvita.
Asensit Linuxin miten tahansa, tulet viettämään paljon aikaa terminaalissa, joten opi avaamaan se nopeasti. Ubuntu-työasemilla voit etsiä ”Pääte”, kiinnittää sen telakkaan tai käyttää pikanäppäintä Ctrl+Alt+TMonissa tiedostonhallintaohjelmissa voit avata pääteikkunan suoraan nykyisessä kansiossa hiiren kakkospainikkeella napsauttamalla avattavan valikkovaihtoehdon, kuten ”Avaa päätteessä”, mikä on erittäin kätevää työskenneltäessä projektihakemistojen parissa.
Shellin ja Bashin perusteiden omaksuminen
Linuxin teho todella paistaa komentoriviltä, ja ohjelmaa, joka tarjoaa kyseisen käyttöliittymän, kutsutaan komentotulkiksi. Ajan myötä on ilmestynyt erilaisia komentotulkkeja (sh, ksh, csh, zsh jne.), mutta useimmissa nykyaikaisissa Linux-jakeluissa oletusarvo on Bash – GNU Bourne Again -komentotulkki. Voit tarkistaa, mitä käytät, suorittamalla echo $SHELL; jos näet jotain tällaista /bin/bash, olet Bashissa.
Pääte-emulaattori on ikkuna, johon kirjoitat; komentotulkki on sen sisällä käynnissä oleva ohjelma, joka tulkitsee komentojasi. Ihmiset käyttävät usein sanoja synonyymeinä, mutta niiden erottaminen mielessä on hyödyllistä: jos avaat GNOME-päätteen tai Konsolen, se on pääte; Bash (tai jokin muu komentotulkki) toimii sen sisällä ja näyttää kehotteen, johon kirjoitat komentoja. Palvelimella, jossa ei ole graafista käyttöliittymää, saatat olla yhteydessä SSH:n kautta suoraan komentotulkkiin.
Komentotulkissa näkyy yleensä käyttäjä, isäntä ja nykyinen hakemisto, ja sitten merkki, joka osoittaa käyttöoikeustasosi. Tyypillinen ei-root-kehote saattaa näyttää tältä [alice@server ~]$ja pääkäyttäjän kehote, kuten [root@server ~]#. $ tarkoittaa tavallista käyttäjää, kun taas # varoittaa, että käytät pääkäyttäjän oikeuksia ja voit mahdollisesti rikkoa järjestelmän yhdellä virheellisellä komennolla.
Useimmat Linux-komennot noudattavat ennustettavaa rakennetta: komennon nimi, valinnaiset liput ja valinnaiset argumentit. Yleinen kuvio näyttää tältä command [options] [arguments]. Esimerkiksi, ls -a /var/log käyttää ls komennon kanssa -a vaihtoehto (näytä piilotetut tiedostot) ja /var/log argumenttina (listattava hakemisto). Jotkin komennot toimivat hyvin ilman valitsimia tai argumentteja; toisille on määritettävä molemmat, tai ne epäonnistuvat.
Paras ystäväsi komentojen tutkimiseen on sisäänrakennettu manuaalinen järjestelmä. Useimmat apuohjelmat toimitetaan man-sivun kanssa: run man ls, man grepjne., ja saat yksityiskohtaisia ohjeita käytöstä, asetuksista ja esimerkeistä. On hyvä tapa silmäillä man-sivua jokaista uutta työkalua varten, jonka otat käyttöön, ainakin kerran.
Bash tukee myös useita pikanäppäimiä ja mukavuuksia, jotka nopeuttavat työnkulkuasi huomattavasti. Paina ylöspäin osoittavaa nuolta selataksesi edellisiä komentoja, Ctrl+A hypätäksesi nykyisen rivin alkuun, Ctrl+K poistaaksesi kohdistimesta rivin loppuun ja Tab komentojen ja tiedostopolkujen automaattiseen täydennystä varten. history komento tulostaa viimeisimmät komentosi, joita voit käyttää uudelleen tai joiden joukosta voit hakea.
Voit aina tarkistaa, minkä käyttäjänä toimit parhaillaan, pienellä mutta hyödyllisellä toiminnolla whoami komento. Kirjoita vain whoami ja paina Enter-näppäintä; komentotulkki tulostaa voimassa olevan käyttäjätunnuksesi. Tämä on erityisen tärkeää, kun olet vaihtanut käyttäjien välillä (esim. su or sudo) ja haluat varmistaa, ettet aio vahingossa suorittaa mitään vaarallista pääkäyttäjänä.
Linux-järjestelmän ja laitteiston tietojen ymmärtäminen
Ennen kuin alat säätää konetta, on hyödyllistä tietää, millä käyttöjärjestelmällä, ytimellä ja suorittimella työskentelet. - uname komento tulostaa ytimen ja järjestelmän tiedot; uname -a näyttää ytimen nimen, isäntänimen, ytimen version, käännösajan, arkkitehtuurin ja paljon muuta. Se on nopea tapa varmistaa, käytätkö 64-bittistä Linuxia, mikä ytimen versio on käynnissä ja millä alustalla olet.
Saat syvällisempää tietoa itse prosessorista käyttämällä lscpu. Se tiivistää suorittimen arkkitehtuurin, tuetut tilat (32-bittinen, 64-bittinen), päätymisasteen, ytimien lukumäärän, säikeiden määrän ydintä kohden, socketit sekä pienimmän/suurimman kellotaajuuden. Nämä tiedot ovat elintärkeitä, kun mitoitat työkuormia, virität suorituskykyä tai varmistat, että asennettavat ohjelmistot on rakennettu oikealle arkkitehtuurille (esimerkiksi x86_64 vs. ARM).
Linux-tiedostojärjestelmän kanssa työskentely
Linux-tiedostojärjestelmät on järjestetty kuin ylösalaisin oleva puu, jossa on yksi juurihakemisto / huipulla. Jokainen tiedosto ja hakemisto sijaitsee jossain tämän juuren alla, ja kauttaviiva / käytetään polkuerottimena. Täysi (absoluuttinen) polku, kuten /home/alice/projects alkaa juuresta ja kulkee puuta pitkin alas, kun taas suhteellinen polku, kuten projects/demo tulkitaan suhteessa nykyiseen työhakemistoosi.
Erilaisilla päähakemistoilla on tiettyjä, standardoituja käyttötarkoituksia, jotka opit nopeasti käytön myötä. Esimerkiksi /bin sisältää olennaisia käyttäjäkomentoja, /sbin sisältää olennaisia järjestelmäbinäärejä, /boot sisältää käynnistyslataimen tiedostot, /etc tallentaa koko järjestelmän kokoonpanon, /home tarjoaa henkilökohtaisen hakemiston jokaiselle käyttäjälle, /root on pääkäyttäjän kotihakemisto, /lib ja /usr/lib isännöidä jaettuja kirjastoja, /var sisältää muuttuvaa dataa, kuten lokeja ja jonoja, ja /tmp on väliaikaisten tiedostojen säilytysalue.
Nähdäksesi missä kohtaa hakemistopuuta olet milloin tahansa, käytä pwd (tulosta työhakemisto). Jos olet hyppinyt ympäriinsä, nopea pwd kertoo nykyisen hakemistosi absoluuttisen polun. Voit liikkua hakemistossa käyttämällä cd: cd /etc menee /etc, cd .. hyppää yhden tason ylöspäin, cd ../.. nousee kaksi, cd or cd ~ palaa kotihakemistoosi ja cd - vaihtaa takaisin edelliseen hakemistoon.
Tiedostojen ja kansioiden hallinta komentoriviltä supistuu muutamaan ydintyökaluun. Luo hakemistoja mkdir, valinnaisesti käyttämällä -p luoda sisäkkäisiä polkuja kerralla (esimerkiksi mkdir -p tools/index/helper-scripts). Luo tyhjiä tiedostoja touch file.txttai useita tiedostoja kerralla touch file1.txt file2.txt file3.txtPoista tiedostot, joissa on rm, poista hakemistoja rekursiivisesti komennolla rm -rja poista tyhjät hakemistot komennolla rmdir. -f lippu päällä rm pakottaa poiston ilman kehotetta, joten käsittele sitä varoen, erityisesti kotihakemistosi ulkopuolella.
Kopiointia, siirtämistä ja uudelleennimeämistä hoitaa cp ja mv. Jos haluat kopioida tiedoston toiseen hakemistoon, käytä cp source.txt /path/to/dest/Jos haluat kopioida tiedoston uudella nimellä samaan hakemistoon, käytä cp old.txt new.txtLiikkuminen toimii samalla tavalla: mv file1.txt backup/ siirtää sen kohteeseen backup, Kun taas mv oldname.txt newname.txt yksinkertaisesti nimeää sen uudelleen. Samat komennot toimivat hakemistoille, kunhan lisäät oikeat merkinnät tarvittaessa.
Linux tarjoaa myös tehokkaat hakuominaisuudet find komento. Peruskuvio on find /path -type X -name "pattern", Jossa -type f etsii tavallisia tiedostoja, -type d hakemistoja varten, -type l symbolisia linkkejä varten ja -type b/c lohko- ja merkkilaitteille. Voit hakea tiettyjä nimiä tai jokerimerkkejä (esim. "*.log" lokitiedostoille), sisällytä piilotetut tiedostot, joiden kaavat alkavat pisteellä, hae koon mukaan -size (Kuten +250M yli 250 Mt:n tiedostoille) tai muokkausajan mukaan -mtime (esimerkiksi, -mtime -10 (löytääksesi viimeisten 10 päivän aikana muuttuneet tiedostot).
Kun haluat tarkastella tiedoston sisältöä, käytettävissäsi on pieni työkalupakki komentoja, joita käytät jatkuvasti. cat tulostaa koko tiedoston kerralla, mikä sopii pienille tiedostoille. less ja more voit selata suuria tiedostoja sivu sivulta, hakea niiden sisältä ja lopettaa q. head näyttää tiedoston ensimmäiset rivit, tail näyttää viimeiset rivit ja tail -f seuraa tiedostoa reaaliajassa – olennainen kikka lokien tarkkailuun. wc laskee rivejä, sanoja ja tavuja samalla diff vertailee kahta tiedostoa rivi riviltä ja näyttää, miten ne eroavat toisistaan, joko yhdistetyssä muodossa tai rinnakkain.
Tekstinmuokkaus Vimillä ja Nanolla
Palvelimilla ja monissa headless-järjestelmissä muokkaat asetuksia ja koodia kokonaan terminaalista, joten ainakin yhden konsolitekstieditorin hyvä opettelu on välttämätöntä. Kaksi lähes kaikkialta löytyvää editoria ovat Vim ja Nano. Molempien avulla voit muokata tekstitiedostoja, mutta niiden filosofiat ovat erilaiset: Vim on modaalinen ja näppäimistökeskeinen, suunniteltu tehokäyttäjille; Nano on yksinkertaisempi ja helpommin löydettävissä aloittelijoille.
Vim on uskomattoman tehokas, kunhan sen oppimiskäyrän ohittaa. Siinä on useita tiloja: normaali (tai komento) tila navigointiin ja komentojen muokkaamiseen, lisäystila tekstin kirjoittamiseen ja visuaaliset tilat merkkien, rivien tai lohkojen valitsemiseen. Aloitat normaalitilassa; paina i, I, a, A, o or O siirtyäksesi lisäystilaan eri tavoilla ja käyttääksesi Esc palataksesi normaalitilaan. Navigointi onnistuu nuolinäppäimillä tai klassisilla h, j, k, l; 0 hyppää rivin alkuun, $ loppuun asti, gg tiedoston alkuun ja G pohjalle.
Vimin muokkauspikavalintojen avulla voit siirtää ja käsitellä tekstiä nopeasti, kun se on lihasmuistissasi. Voit poistaa merkin näppäimellä x, poista koko rivi , jossa on dd, kopioi (jenkkaa) yy tai visuaalinen valinta + yja liitä kohdistimen alapuolelle p tai korkeammalla PHaku tehdään käyttämällä /pattern eteenpäin tai ?pattern taaksepäin; n hyppää seuraavaan otteluun ja N edelliseen. Yleinen globaali etsi ja korvaa -malli on :%s/old/new/g korvaamaan kaikki esiintymät old with new tiedostossa.
Vimistä poistuminen tapahtuu komennoilla, jotka alkavat kaksoispisteellä. Osuma Esc Varmista, että olet normaalitilassa, ja kirjoita sitten :w pelastaakseen, :q lopettaaksesi (epäonnistuu, jos sinulla on tallentamattomia muutoksia) :wq (Tai :x) tallentaaksesi ja lopettaaksesi, tai :q! lopettaaksesi ja hylätäksesi muutokset. Voit myös jakaa ikkunan (:split ja :vsplit) ja siirry ruutujen välillä näppäimellä Ctrl+w jälkeen h, j, k or l.
Nano sitä vastoin keskittyy olemaan suoraviivainen ja aloittelijaystävällinen. Avataksesi tai luodaksesi tiedoston, suorita nano filenameVoit siirtää kohdistinta nuolinäppäimillä, kirjoittaa tekstiä ja käyttää näytön alareunassa lueteltuja pikanäppäimiä – ne ovat yleensä muodossa ^O varten Ctrl+O, ^X varten Ctrl+X, Ja niin edelleen. Ctrl+O säästää, Ctrl+X poistuu (kehottaa tallentamaan tarvittaessa) Ctrl+K katkaisee viivan, Ctrl+U tahnat ja Ctrl+W etsii tekstiä. Vaihtoehtoja, kuten -l näyttää rivinumerot ja Alt+G voit hypätä suoraan tietylle riville.
Bash-skriptaamisen aloittaminen
Kun olet tottunut suorittamaan komentoja manuaalisesti, seuraava suuri harppaus on komentosarjojen laittaminen skripteihin, jotta niitä voidaan käyttää uudelleen ja automatisoida. Bash-skripti on vain tekstitiedosto, joka sisältää komentoja, joita Bash suorittaa rivi riviltä. Tallentamalla tehtäviä, kuten siivousrutiineja, varmuuskopioita tai käyttöönottovaiheita, skripteihin vähennät virheitä ja säästät valtavasti aikaa.
Yleisen tavanomaisen käytännön mukaan Bash-skripteillä on usein .sh laajennus, mutta se ei ole teknisesti välttämätöntä. Paljon tärkeämpää on se, jittu tiedoston yläosassa oleva rivi: jotain tällaista #!/bin/bash or #!/usr/bin/env bashTuo ensimmäinen rivi kertoo järjestelmälle, mitä tulkkia käytetään skriptiä suoritettaessa. Löydät polun Bashiin komennolla which bash, ja käytä sitä lauseen loppuosassa, jos haluat olla eksplisiittinen.
Minimalistinen esimerkkiskripti saattaa pyytää hakemistoa ja listata sen sisällön. Voit luoda run_all.sh sisällöllä, kuten: shebang, an echo joka tulostaa tämän päivän päivämäärän (esimerkiksi käyttämällä takaviivoja tai $(date)), kehote, jossa käyttäjältä kysytään polkua, a read komento tallentaa syötteen muuttujaan ja lopuksi ls komento, joka käyttää kyseistä muuttujaa tiedostojen listaamiseen. Kommentit alkavat merkeillä # ja tulkki jättää ne huomiotta, joten voit dokumentoida jokaisen vaiheen itseäsi ja muita varten.
Suorittaaksesi skriptejä suoraan, sinun on tehtävä niistä suoritettavia ja sitten kutsuttava niitä. Käyttää chmod u+x script.sh antaaksesi omistajalle suoritusoikeuden, kutsu sitä sitten joko komentotulkin kautta (bash script.sh) tai suorita se nimellä ./script.sh hakemistosta, jossa se sijaitsee. Jos skripti on palvelimellasi $PATH, voit soittaa sille nimeltä mistä tahansa.
Bash-muuttujat ovat dynaamisesti tyypitettyjä säilöjä, joille voit määrittää tekstiä tai numeroita ja käyttää niitä uudelleen myöhemmin. Sinä määräät name=value (ilman välilyöntejä) ja viittaus $name. Esimerkiksi, country=Netherlands jälkeen echo $country tulostaa arvon. Voit myös asettaa muuttujan toisen arvon perusteella: same_country=$country kopioi olemassa olevan sisällön. Nimeämiskäytäntöjen mukaan muuttujan tulisi alkaa kirjaimella tai alaviivalla, koostua vain kirjaimista, numeroista ja alaviivoista ja välttää varattuja avainsanoja, kuten if, then or fi.
Skriptiin voi syöttää syötteen ja lähettää tulosteen muualle useilla tavoilla. Skriptien sisällä, read var odottaa käyttäjän kirjoittavan jotakin ja tallentaa sen varVoit iteroida tiedoston rivejä läpi käyttämällä while read line; do ...; done < filename silmukka. Komentorivin argumentit näkyvät muodossa $1, $2jne., joten skripti, joka kaikuu $1 voi tervehtiä komentorivillä annettua nimeä. Tulosteena käytetään echo kuten tavallista, mutta voit ohjata sen uudelleen > tiedoston päällekirjoittamiseksi, >> liittää tai yhdistää muihin komentoihin putkiviivojen avulla.
Ehdollinen logiikka ja silmukat antavat skriptiesi tehdä päätöksiä ja toistaa työtä. Perus if Bashin syntaksi käyttää sulkeita, kuten if [ condition ]; then ... elif [ condition ]; then ... else ... fiVoit testata numeerisia vertailuja (-gt, -lt, jne.), merkkijonojen vertailuja, tiedostojen olemassaoloa ja paljon muuta, ja voit yhdistää ehtoja loogisella JA-operaattorilla (-a) ja TAI (-o). Silmukat tulevat sisään while muotoja, jotka jatkuvat niin kauan kuin ehto on tosi, ja for silmukat, jotka iteroivat listojen läpi, kuten for i in {1..5}; do echo $i; done. case lausekkeiden avulla voit yhdistää lausekkeen joukkoon kuvioita selkeässä, kytkimen kaltaisessa syntaksissa.
Ohjelmistojen hallinta pakettienhallinnan avulla
Toisin kuin Windowsissa, jossa lataat asennusohjelmia usein satunnaisilta verkkosivustoilta, Linux-jakelut hallitsevat ohjelmistoja yleensä keskitettyjen arkistojen ja pakettienhallinnan kautta. A paketti on vain nippu tiedostoja, jotka sisältävät ohjelman binäärit, kirjastot, metatiedot ja asennusskriptit. Paketit tulevat joko lähdekoodina (jotka vaativat käännöksen) tai arkkitehtuurikohtaisina binääritiedostoina (esim. x86_64), ja ne ovat usein riippuvaisia muista asennettavista paketeista.
Debian-pohjaisissa järjestelmissä, kuten Ubuntussa, apt työkaluperhe on vakiotapa käsitellä paketteja. Pakettienhallitsija ylläpitää käytettävissä olevien ohjelmistojen hakemistoa määritetyissä tietovarastoissa, joita päivität sudo apt updatePaketin asentamiseen käytetään sudo apt install htop tai vastaavaa; kaikki tarvittavat riippuvuudet noudetaan automaattisesti repositorioista. Voit päivittää jo asennetut paketit suorittamalla sudo apt upgradeVoit poistaa paketin, jota et enää tarvitse, käyttämällä sudo apt remove packagenameMatalan tason pakettioperaatiot ja lokit käsittelee dpkg, jonka lokit voit tarkistaa osoitteesta /var/log/dpkg.log.
Joskus lataat erillisen version .deb tiedostot toimittajan verkkosivuilta eikä jakelusi repositorioista. Siinä tapauksessa voit asentaa ne sudo dpkg -i package_name.deb tiedoston sijaintihakemistosta. Jos riippuvuuksia puuttuu, voit yleensä korjata ne komennolla sudo apt -f install. Voit listata kaikki dpkg:n kautta asennetut paketit käyttämällä komentoa dpkg --listGraafiset käyttöliittymät, kuten Synaptic, tarjoavat graafisen käyttöliittymän saman pohjana olevan pakettijärjestelmän päälle, jos haluat mieluummin napsauttamalla kuin kirjoittamalla joitakin tehtäviä.
Käyttäjät, ryhmät, käyttöoikeudet ja suojaus
Linux on suunniteltu monen käyttäjän järjestelmäksi, joten käyttäjien, ryhmien ja käyttöoikeuksien ymmärtäminen on keskeistä koneen turvallisuuden varmistamiseksi. Jokainen tili tunnistetaan käyttäjätunnuksella (ihmisille sopiva) ja numeerisella käyttäjätunnuksella (UID, järjestelmäystävällinen). Vastaavasti ryhmillä on nimet ja numeeriset ryhmätunnukset (GID). Palveluille ja daemoneille on olemassa erityistilejä, ja on olemassa yksi kaikkivaltias pääkäyttäjätili nimeltä root UID:llä 0.
Käyttäjien tiedot tallennetaan pääasiassa /etc/passwd, ja salasanat säilytetään (hajautettuna) /etc/shadow. Tyypillinen rivi /etc/passwd näyttää root:x:0:0:root:/root:/bin/bash, joka jakautuu osiin: käyttäjätunnus, salasanan paikkamerkki, UID, ensisijainen GID, kuvailevat tiedot, kotihakemisto ja kirjautumiskuori. Ryhmän tiedot sijaitsevat /etc/group, jossa merkinnöissä luetellaan ryhmän nimi, salasanan paikkamerkki, GID ja jäsenten käyttäjätunnukset.
Jokainen käyttäjä kuuluu yhteen pääryhmään ja valinnaisesti useisiin lisäryhmiin. Ensisijainen ryhmä luodaan yleensä käyttäjän rinnalle ja sillä on sama nimi; käyttäjän luomat tiedostot ovat yleensä tämän ryhmän omistuksessa. Lisäryhmät lisäävät lisäoikeuksia – esimerkiksi ne voidaan lisätä sudo Ubuntun ryhmässä voit suorittaa komentoja laajennetuilla oikeuksilla. Voit tarkistaa tunnuksesi ja ryhmäjäsenyytesi komennolla id komento ja listaa käyttäjään liittyvät prosessit ps -u username.
Linuxin tiedostojen käyttöoikeudet on esitetty klassisessa rwx kolmoset käyttäjälle, ryhmälle ja muille. Running ls -l näyttää viivoja, kuten -rw-rw-r-- or drwxrwx---, jossa ensimmäinen merkki osoittaa tiedostotyypin (- tavalliselle tiedostolle, d hakemistolle), ja seuraavat yhdeksän merkkiä ovat kolme joukkoa r (lukea), w (kirjoita) ja x (suorita). Ensimmäinen kolmikko koskee tiedoston omistajaa, toinen ryhmää ja kolmas kaikkia muita. Hakemistoissa ”suorita” hallitsee hakemistoon siirtymistä ja sen sisällön käyttöä; tiedostoissa se hallitsee, voidaanko tiedosto suorittaa ohjelmana vai komentosarjana.
Voit muuttaa käyttöoikeuksia käyttämällä chmod komento joko symbolisessa tai numeerisessa muodossa. Symbolinen tila käyttää luokissa kirjaimia (u, g, o) Ja +, -, = lisätä, poistaa tai asettaa käyttöoikeuksia, esim. chmod u+x script.sh lisätä suoritusoikeudet omistajalle. Numeerinen (oktaali) tila esittää oikeudet lukujen 4 (luku), 2 (kirjoitus) ja 1 (suoritus) summana, jolloin käyttäjälle, ryhmälle ja muille annetaan kolme numeroa; chmod 751 file sarjaa rwxr-x--xMolemmat tyylit ovat mukavan oloisia.
Omistusmuutokset hoidetaan mm. chown, joka voi muokata käyttäjää, ryhmää tai molempia. chown newuser filename vaihtaa omistajaa, chown newuser:newgroup filename säätää sekä omistajaa että ryhmää, ja chown :groupname dir vain vaihtaa ryhmän. -R vaihtoehto soveltaa omistajuusmuutoksia rekursiivisesti kaikkiin tietyn hakemiston tiedostoihin ja hakemistoihin, mikä on hyödyllistä sovelluspuiden tai jaettujen kansioiden valmistelussa.
Identiteettien vaihto tapahtuu su ja sudoja sinun pitäisi tietää, milloin mitäkin käyttää. su otheruser aloittaa kuoren nimellä otheruser sen jälkeen, kun olet syöttänyt käyttäjän salasanan; su - avaa täyden kirjautumiskuoren ja päivittää ympäristömuuttujia. sudo on turvallisempi päivittäisissä järjestelmänvalvojan tehtävissä: se antaa hyväksytyille käyttäjille mahdollisuuden suorittaa yksittäisiä komentoja laajennetuilla oikeuksilla ja samalla kirjata kaiken sisään. /var/log/auth.logJos käyttäjällä ei ole oikeutta käyttää sudo, yritykset kirjataan ja hylätään.
Käyttäjähallinta komentorivillä käyttää työkaluja, kuten useradd, usermod, userdel ja passwd. sudo useradd username luo uuden tilin (vaikka usein suositkin korkeamman tason kääreitä, jotka myös luovat kotihakemistoja ja asettavat komentotulkit oletusarvoisesti). usermod antaa sinun muuttaa käyttäjätunnuksia, kotihakemistoja, komentotulkkeja, ryhmäjäsenyyksiä ja paljon muuta. userdel poistaa tilit, joissa on -r myös kotihakemistojensa poistaminen. passwd asettaa tai vaihtaa salasanoja – suorita se root-käyttäjänä käyttäjätunnuksella asettaaksesi jonkun toisen salasanan tai ilman argumentteja vaihtaaksesi oman salasanasi.
Yhdistäminen etänä SSH:n kautta
Secure Shell (SSH) on standardi tapa kirjautua etä-Linux-järjestelmiin turvallisesti verkon kautta. Se käyttää salausta, julkisen avaimen kryptografiaa ja vahvaa todennusta liikenteesi suojaamiseen. Oletusportti on 22, vaikka monet järjestelmänvalvojat muuttavat sitä vähentääkseen automaattisten skannausten aiheuttamaa kohinaa. Asiakaspuolella ydintyökalu on yksinkertaisesti ssh.
Yhteyden muodostamiseen etäpalvelimelle tarvitset palvelimen IP-osoitteen tai isäntänimen, käyttäjätunnuksen ja yleensä salasanan tai avaimen. Komennon muoto on ssh username@server_ip, esimerkiksi ssh john@192.168.1.10Ensimmäisellä kerralla, kun muodostat yhteyden, SSH pyytää sinua vahvistamaan palvelimen isäntäavaimen sormenjäljen. Sen jälkeen sinulta kysytään käyttäjän salasanaa (ellet käytä avainpohjaista todennusta). Kun olet kirjautunut sisään, olet etäkoneen komentokehotteessa ja voit suorittaa komentoja aivan kuin istuisit sen konsolin ääressä.
Jos SSH-palvelu kuuntelee ei-standardiporttia, määritä se seuraavasti: -p vaihtoehto. Jos palvelimesi esimerkiksi käyttää SSH:ta varten porttia 2222, muodostaisit yhteyden ssh -p 2222 username@server_ipVoit myös määrittää isäntäaliaksia ja oletusportteja kohdassa ~/.ssh/config välttääksesi kaikkien tietojen kirjoittamista joka kerta.
Lokien ja tekstidatan analysointi
Live-järjestelmässä lokit ovat kuin musta laatikko, joka tallentaa tietoja: ne kertovat, mitä tapahtui, milloin ja usein myös miksi. Sovelluslokit, järjestelmälokit, tietoturvalokit ja verkkolokit voivat kaikki kasvaa tuhansien tai miljoonien rivien pituisiksi, joten tarvitset tehokkaita tapoja hakea, suodattaa ja tiivistää niitä. Onneksi Unix-työkalupakissa on useita täydentäviä tekstinkäsittelytyökaluja, jotka loistavat tässä.
grep on tapa löytää tiedostoista tai virroista tiettyä kuviota vastaavat rivit. Peruskäyttö on grep "search_string" filename, mutta vaihtoehdot tekevät siitä paljon joustavamman: -r hakee rekursiivisesti hakemistoista, -i jättää kirjainkoon huomiotta, -n näyttää rivinumerot, -c laskee vastaavat rivit, -v kääntää osuman päinvastaiseksi (näyttää ei-osuvat rivit) ja -w rajoittaa osumat kokonaisiin sanoihin. grep -l listaa vain tiedostonimet, jotka sisältävät osuman, mikä on kätevää, kun skannaat useita tiedostoja kerralla.
sed (stream-editori) käsittelee tekstiä rivi riviltä ja käyttää komentoja, kuten korvaaminen, poistaminen ja tulostaminen. Klassinen substituutioesimerkki on sed 's/old-text/new-text/' file, joka korvaa ensimmäisen esiintymän old-text jokaisella rivillä, jossa on new-text. Lisätään a g lippu tekee siitä globaalin riviä kohden. -n '/pattern/p', voit tulostaa vain kuviota vastaavat viivat, ja '/pattern/d' Voit poistaa vastaavat rivit tulosteesta. Säännöllisten lausekkeiden avulla voit kirurgisesti poimia tai muuntaa lokirivien osia, kuten päivämääriä, tunnuksia tai tilakoodeja.
awk on pieni kieli jäsennellyn tekstin, erityisesti sarakepohjaisen datan, kuten lokien, käsittelyyn. Sen perusmuoto on awk 'pattern { action }' file, jossa jokainen syöttörivi jaetaan automaattisesti kenttiin $1, $2, jne., käyttäen välilyöntiä oletuserottimena (konfiguroitavissa -F). Voit käyttää awk '{ print $1, $2 }' logfile tulostaaksesi päivämääriä ja kellonaikoja tai awk '/ERROR/ { print $0 }' näyttämään vain virheviivat. Edistyneempien mallien avulla voit rakentaa frekvenssitaulukoita, laskea aggregaatteja ja tiivistää mittareita lennossa.
cut, sort ja uniq sopii tähän työkalupakkiin tiettyjen tiedonjyvien poimimiseksi ja kokoamiseksi. cut hakee tietyt kentät, joille on annettu erotinmerkki ja kenttänumerot, kuten cut -d ' ' -f 3 logfile saadaksesi kolmannen sarakkeen. sort järjestää rivit aakkosjärjestykseen tai numeerisesti -n numeerista lajittelua varten -r käänteiseen järjestykseen ja -k valitaksesi lajitteluavaimen. uniq kutistaa peräkkäiset kaksoisrivit ja -c se laskee ne. Yhdistämällä ne esimerkiksi cut -d ' ' -f 3 logfile | sort | uniq -c – on klassinen malli lokitasojen tai virhekoodien laskemiseen.
Prosessit, työt ja signaalit
Jokainen Linuxissa suorittamasi komento on prosessi, ja prosessien tarkastamisen, priorisoinnin ja lopettamisen osaaminen on ratkaisevan tärkeää järjestelmänvalvojan kannalta. Jokainen prosessi saa numeerisen prosessitunnuksen (PID) ja pääprosessitunnuksen (PPID), ja useimmat prosessit jäljittävät lopulta alkuperänsä takaisin systemd tai toinen init-järjestelmä, jonka PID on 1. Prosessit kuluttavat suorittimen, muistin ja muita resursseja, ja ne siirtyvät tilojen, kuten käynnissä, nukkumassa, pysäytettynä ja zombiena, välillä.
- ps komento antaa sinulle tilannekuvia käynnissä olevista toiminnoista; yleinen ps aux lomake on erityisen kätevä. Se näyttää käyttäjän, PID:n, suorittimen ja muistin käytön, virtuaali- ja residenttimuistin koot, ohjauspäätteen, tilan, aloitusajan, suorittimen ajan ja prosessin käynnistämiseen käytetyn komennon. STAT sarake koodaa tilan: R juoksemista varten, S ja I nukkumista varten, D keskeytymätöntä unta varten (yleensä I/O), T pysähtyneille ja Z zombiprosesseille, jotka odottavat vanhemman suorittamaa niittoa.
Shell-"työt" ovat prosesseja, jotka käynnistit nykyisestä shellistä, ja joita voit siirtää etualan ja taustan välillä. Liittäminen & käskyyn, kuten sleep 300 &, käynnistää sen taustalla välittömästi. jobs komento listaa ne työnumeroilla, kuten [1], [2], jne. Voit tuoda työpaikan etualalle käyttämällä fg %1, keskeytä se Ctrl+Zja jatka sitä taustalla kohdasta bg %1Tämä on erityisen hyödyllistä pitkiä tehtäviä suoritettaessa samalla, kun käytät samaa päätettä muihin komentoihin.
Prosessien suoraan lopettamiseksi tai hallitsemiseksi käytät signaaleja komentojen, kuten kill, killall ja pkill. kill PID lähettää SIGTERM oletuksena pyytää kohteliaasti prosessia poistumaan. kill -9 PID lähettää SIGKILL, joka tappaa sen voimakkaasti ilman puhdistusta. Muita yleisiä signaaleja ovat SIGHUP (käytetään usein asetusten uudelleenlataamiseen), SIGINT (samanlainen kuin Ctrl+C), SIGSTOP (tauko) ja SIGCONT (jatkaa). killall processname ja pkill pattern voit kohdistaa kaikki prosessit nimen tai regex-mallin mukaan.
Syöttö, lähtö, uudelleenohjaus ja putket
Jokainen prosessi alkaa kolmella standardivirralla: standardi syöte (stdin), standardi tuloste (stdout) ja standardi virhe (stderr). Linuxissa nämä vastaavat tiedostokuvaajia 0, 1 ja 2. Oletusarvoisesti stdin on näppäimistösi, ja stdout ja stderr menevät terminaaliisi, mutta voit ohjata ne tiedostoihin tai muihin prosesseihin yksinkertaisten operaattoreiden avulla.
Uudelleenohjauksen avulla voit tallentaa tulosteet tai virheilmoitukset tiedostoihin tai yhdistää ne. Käyttäminen > korvaa tiedoston stdout-tulolla (esim. ls > files.txt), sillä aikaa >> liittää päällekirjoituksen sijaan. Voit ohjata stderr:n erikseen komennolla 2> error.txtVoit lähettää sekä stdout- että stderr-komennot samaan tiedostoon seuraavasti: command > all_output.txt 2>&1, mikä tarkoittaa ”lähetä standardilähtö kohteeseen all_output.txt ja lähetä sitten stderr minne tahansa stdout on menossa".
Putkistot yhdistävät komentoja siten, että yhden tuotoksesta tulee seuraavan syöte. Putken operaattori | onko liima: ls | grep image listaa tiedostot ja suodattaa sitten ne, jotka sisältävät image nimissään. Tämä koottavuus on Unixin ydinfilosofia: yhden jättimäisen työkalun sijaan yhdistetään useita pieniä työkaluja monimutkaisten ongelmien ratkaisemiseksi.
Aikataulutus ja automatisointi Cronilla
Toistuviin tehtäviin – varmuuskopiointiin, siivoukseen, raportteihin, kuntotarkistuksiin – cron on sisäänrakennettu töiden ajoitustoiminto, joka pitää asiat käynnissä automaattisesti. Taustalla toimiva daemon (crond tai vastaava) lukee käyttäjäkohtaisia ja järjestelmän crontab-tiedostoja ja suorittaa määritettyjä komentoja ajoitettuina aikoina. Jokainen käyttäjä voi määrittää oman crontab-tiedostonsa, ja käyttöoikeuksia voidaan hallita /etc/cron.allow ja /etc/cron.d/cron.deny monissa järjestelmissä.
Muokkaat crontab-tiedostoasi komennolla crontab -e ja listaa nykyiset merkinnät crontab -l. Jokaisella crontab-rivillä on viisi aikakenttää (minuutti, tunti, kuukaudenpäivä, kuukausi, viikonpäivä), joita seuraa suoritettava komento. Asteriskit toimivat jokerimerkkeinä, alueet ja listat ovat sallittuja, ja askelarvot, kuten */5 tarkoittaa ”joka 5 yksikköä”. Esimerkiksi 0 22 * * 1-5 kulkee maanantaista perjantaihin klo 22.00, ja */1 * * * * kulkee minuutin välein.
Yksinkertaisena esimerkkinä voit ajoittaa komentosarjan, joka kirjaa päivämäärän ja kellonajan tiedostoon kerran minuutissa. Käsikirjoitus voisi olla date-script.sh joka sisältää sibesin ja echo $(date) >> /path/to/date-out.txtKun olet tehnyt siitä suoritettavan, lisäät cron-merkinnän, kuten */1 * * * * /bin/sh /home/username/date-script.sh. Ajan myötä, date-out.txt täyttyy aikaleimatuilla riveillä, joiden avulla voit varmistaa, että cron käynnistyy aikataulun mukaisesti.
Cronin vianmääritys sisältää yleensä aikataulujen tarkistamisen, lokien tarkistamisen ja tulosteen tallentamisen. Tarkista ensin ajoituskentät tarvittaessa käyttämällä apusivustoa, kuten crontab.guru. Tarkista sitten järjestelmälokit (esimerkiksi /var/log/syslog Ubuntussa) merkinnöille, jotka mainitsevat CRONin ja komentosi. Voit myös ohjata cron-työn stdout- ja stderr-komennot lokitiedostoon, jonka syntaksi on seuraavanlainen: * * * * * sh /path/to/script.sh &> /path/to/log_file.log havaitakseen virheitä, jotka muuten katoaisivat.
Verkko-ongelmien perusteet Linuxissa
Linux tarjoaa runsaasti verkkotyökaluja rajapintojen, yhteyksien, reitityksen ja liitettävyyden tarkistamiseen. Perinteiset apuohjelmat, kuten ifconfig ja netstat käytetään edelleen laajalti, vaikkakin nykyaikaiset korvaajat, kuten ip sviitti ja ss niitäkin on olemassa. Käytät näitä, kun selvität IP-osoitteita, testaat saavutettavuutta tai korjaat outoa verkkokäyttäytymistä.
ifconfig (Tai ip addr) luettelee verkkoliitännät ja niiden kokoonpanon. Näet merkinnät fyysisille rajapinnoille (kuten eth0 or wlp3s0), silmukka (lo) ja mahdollisesti virtuaalisia siltoja. Kenttien tietoihin kuuluvat IPv4- ja IPv6-osoitteet, verkkomaskit, lähetysosoitteet, MAC-osoitteet sekä tilastot lähetetyistä/vastaanotetuista paketeista ja virheistä.
netstat raportoi aktiiviset yhteydet, kuuntelusoketit, reititystaulukot ja protokollakohtaiset tilastot. Vaihtoehdot kuten -a näytä kaikki pistorasiat, -l näyttää vain kuunteluportit, -t näyttää TCP-yhteydet, -u näyttää UDP:n, -r tulostaa ytimen reititystaulukon ja -p lisää PID:n/ohjelman nimen jokaiseen yhteysluetteloon, mikä on erittäin kätevää selvitettäessä, mikä prosessi on sidottu mihinkin porttiin.
Yksinkertainen saavutettavuustestaus tehdään usein ping, joka lähettää ICMP-kaiutuspyyntöjä isännälle. ping google.com näyttää edestakaisen matkan ajat ja pakettien katoamisen, kunnes pysäytät sen Ctrl+CYhteenveto lopussa kertoo, kuinka monta pakettia lähetettiin ja vastaanotettiin ja kuinka suuri prosenttiosuus niistä menetettiin, mikä auttaa havaitsemaan epätasaiset yhteydet tai DNS-ongelmat.
curl on toinen tärkeä työkalu, tällä kertaa vuorovaikutukseen HTTP(S):n ja muiden protokollien kanssa URL-osoitteiden kautta. Oletusarvoisesti curl URL lähettää GET-pyynnön ja tulostaa vastauksen rungon. -ovoit tallentaa tuloksen tiedostoon; -Ipyydät vain otsikot, mikä on erittäin kätevää vastauskoodien ja palvelimen metatietojen tarkistamiseen. Se on erityisen kätevä HTTP-rajapintojen tai etäpäätepisteiden nopeaan testaamiseen komentoriviltä.
Linux-järjestelmien valvonta ja vianmääritys
Vakava Linux-työ sisältää aina valvontaa ja vianmääritystä: pullonkaulojen löytämistä ennen kuin ne räjähtävät esiin, ja ongelmien nopeaa diagnosointia niiden ilmetessä. Käytät monia jo mainittuja työkaluja sekä joitakin erikoistyökaluja arvioidaksesi suorittimen kuormitusta, muistin painetta, levyn käyttöä, prosessien toimintaa ja verkon terveyttä.
uptime antaa sinulle nopean tilannekuvan siitä, kuinka kauan järjestelmä on ollut käynnissä ja miltä kuormituksen keskiarvot näyttävät. Kolme numeroa lopussa edustavat keskimääräisiä suoritusjonojen pituuksia viimeisten 1, 5 ja 15 minuutin aikana. Jos jaat nämä suorittimien lukumäärällä (jonka näet kuvasta lscpu), saat käsityksen siitä, kuinka kiireinen kukin ydin on. Jatkuvasti korkeat kuormituskeskiarvot suhteessa suorittimien määrään viittaavat yleensä suorittimen kyllästymiseen tai estyneisiin prosesseihin, jotka odottavat I/O:ta.
Muistin ja levyn käyttö on helppo tarkistaa free ja df. free -mh raportoi kokonaismuistin, käytetyn ja käytettävissä olevan muistin ja swap-muistin ihmisen luettavissa yksiköissä. Linuxissa on normaalia käyttää paljon muistia välimuistiin ja puskureihin, joten keskity "käytettävissä olevaan" arvoon ja swap-muistin käyttöön. df -h näyttää kunkin liitetyn tiedostojärjestelmän levytilan ja käyttöasteen; nyrkkisääntönä on, että alle 80 %:n käytön pitäminen välttää joitakin suorituskykyyn ja pirstoutumiseen liittyviä ongelmia.
Prosessitason reaaliaikainen näkemys on se, missä top ja siihen liittyvät työkalut loistavat. Running top näyttää dynaamisen, päivittyvän näkymän suorittimen, muistin ja prosessien tilastoista. Voit lajitella eri sarakkeiden mukaan, hakea prosesseja ja jopa lopettaa prosessin painamalla k ja kirjoittamalla sen PID:n. Edistyneempiä muunnelmia, kuten htop tarjoavat väriä, hiiren tuen ja helpomman navigoinnin, mutta ydinajatus on sama.
Verkon kunto riippuu usein porteista, yhteyksistä ja pakettien katoamisesta. Työkalut kuten netstat (Tai ss) näytä mitkä portit ovat LISTEN, ESTABLISHED, TIME_WAIT ja muita TCP-tiloja, joiden avulla voit havaita porttien loppumisen tai yhteyden ylikuormituksen. ping auttaa havaitsemaan pakettien katoamisen ja viivepiikit. Syvempää pakettitason tarkastusta varten tcpdump voi kaapata liikennettä .pcap tiedostot myöhempää analyysia varten Wiresharkissa.
Historiallisten suorituskykytietojen osalta sar komento (kohdasta sysstat paketti) on uskomattoman hyödyllinen. Kerran sysstat on asennettu ja käytössä, järjestelmä kirjaa säännöllisesti suorittimen, muistin, verkon ja levyn tilastot tiedostoihin /var/log/sysstatVoit hakea näitä lokeja myöhemmin komennolla sar -u prosessorin käyttöä varten, sar -r muistia varten, sar -S vaihtoa varten, sar -d lohkolaitteille tai sar -n DEV verkkoliitännöille määrittämällä aikavälejä ja lukumääriä tai osoittamalla suoraan päivittäisiin arkistoihin, kuten sa04 tiettyä kuukauden päivää varten.
Lopuksi, muista aina, että lokit ovat kertomuksesi siitä, mitä järjestelmä teki ongelman ajankohtana. Ennen palveluiden tai palvelimien uudelleenkäynnistystä kopioi tai ota tilannevedos asiaankuuluvista lokeista, jotta et menetä tärkeää kontekstia. Yhdessä työkalujen, kuten sar, top ja free, ne auttavat sinua rekonstruoimaan perimmäiset syyt, parantamaan luotettavuutta ja välttämään toistuvia ongelmia. Ajan myötä tämä palautesilmukka muuttaa sinut "pystyn noudattamaan opetusohjelmaa" -asenteesta "pystyn ajamaan tuotantojärjestelmiä luottavaisin mielin".