Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Shell

Iš Pipedijos - durniausios enciklopedijos.
00:51, 18 rugsėjo 2022 versija, sukurta Pikachu (Aptarimas | indėlis) (Naujas puslapis: '''Shell''' - tai tokia visiškai ne grafinė, o tekstinė vartotojo aplinka, esanti UNIX, o tuo pačiu - ir visokiose Linux, BSD ir kitose panašiose OS. Tekstinėje aplinkoje galima rašyti komandas ar pasileisti kokias nors programas, kaip kad Midnight Commander. Ta pati tekstinė valdymo aplinka sukuria ir tam tikrą programavimo aplinką, kurioje galima rašyti nelabai sudėtingas programas, darančias visokius nelabai sudėtingus...)
(skirt) ← Ankstesnė versija | Dabartinė versija (skirt) | Vėlesnė versija → (skirt)
Jump to navigation Jump to search

Shell - tai tokia visiškai ne grafinė, o tekstinė vartotojo aplinka, esanti UNIX, o tuo pačiu - ir visokiose Linux, BSD ir kitose panašiose OS. Tekstinėje aplinkoje galima rašyti komandas ar pasileisti kokias nors programas, kaip kad Midnight Commander. Ta pati tekstinė valdymo aplinka sukuria ir tam tikrą programavimo aplinką, kurioje galima rašyti nelabai sudėtingas programas, darančias visokius nelabai sudėtingus OS valdymo darbus.

Daugeliui pusiau patyrusių vartotojų shell aplinka primena DOS, nes tenai irgi komandinė eilutė būdavo. Tai kai kurie taip ir sako kaip nors, kad "kažkoksai dosas tame linukse yra". Tai išties istorija yra tokia, kad būtent DOS tą šitokios aplinkos idėją kadaise iš UNIX sistemų ir perėmė, tik kad implementavo kraštutinai primityviai, ribotai ir prastai.

Tekstinės aplinkos privalumas - kad lengvai ir patogiai prie jos galima prisijungti iš kur nori. Pvz., stovi jūsų serveris kur nors JAV, o jūs čia Lietuvoje - tai įsijungiate SSH, prisijungiate prie savo serverio ir darote, ką norite. Arba, pvz., stovi jūsų kompiuteris namie - tai prasiforvardinat portą iš routerio į savo kompą ir taip pasijungiate prie savo naminio kompo kad ir iš Amerikos.

Aišku, toksai pasijungimas nėra grafinis - jis yra tekstinis, tačiau daryti galima beveik viską, ką tik nori. Tik paveiksliukų ar filmų nesigauna žiūrėti.

Išties yra ne vienas shell - jų yra visa krūva, įvairiausių. Populiariausi yra tokie (pavadinimus rašome iš mažosios, nes tai yra komandos, o jose mažosios ir didžiosios raidės skiriasi):

  • sh - klasikinis shell, yra visuose UNIX. Klasikinis, visų naudojamas. Arba, jei nenaudojamas, tai pakeičiamas į tokį patį, tik malonesnį bash.
  • bash - pagerintas klasikinis shell, panašus į paprastą sh, bet mokantis mygtukus "aukštyn" ir "žemyn", turintis komandų istoriją ir pan.
  • csh - niekieno nesuprantamas shell, kuris savo komandomis kiek panašesnis į C kalbą ir geriau tinka programavimui, tačiau niekieno nenaudojamas. Yra visose UNIX tipo sistemose.
  • ksh - visokių hipsterių shell, kurį naudoja tie, kas nori vaizduoti, kad jiems reikia kažko geresnio už bash, bet kurie nemoka naudotis csh


UNIX/Linux shell komandų naudojimas ir sintaksė

Pirmiausiai svarbu žinoti svarbų dalyką: shell komandose skiriamos didžiosios ir mažosios raidės. Visos komandos rašomos tik mažosiomis raidėmis. Kadangi UNIX palikimą palaiko ir Linux, tai visos šitos komandos veikia ir Linux sistemose. Tiesa, skirtingose UNIX sistemose gali truputį skirtis komandų parametrai, bet paprastai tie skirtumai būna maži.

Komandos užrašomos, pvz., taip:

ls

Aukščiau esanti komanda reiškia, kad jūs norite pamatyti, kokie yra failai tame kataloge, kuriame dabar esate. Parašius komandą, paspaudžiamas mygtukas Enter ir tada komanda įvykdoma. Jos vykdymo rezultatai išvedami čia pat ekrane.

Kas yra komandos parametras? Ogi tai reikia suprasti maždaug taip, kad yra sakinys, kuris įvedamas tekstu ir paspaudžiamas Enter klavišas. Tada shell aplinka ir įvykdo tai, ką nurodė vartotojas. Visame tame įvestame sakinyje pirmas žodis yra pati komanda, o visi kiti žodžiai - tai jau įvairūs parametrai. Parametrai nuo komandos ir tarpusavyje skiriami tarpais. Parametrai, kurie nurodo komandos veikimo būdą, būna pradedami minuso ženklu. Pvz., taip:

ls -al

Shell komandų rūšys

Yra trijų rūšių shell komandos:

  • Vidinės ir standartinės komandos - jos dažniausiai yra palaikomos pačios shell programos viduje, o jei yra ne shell viduje, tai guli /bin/ kataloge, kurio programos yra prieinamos visiems ir visada, netgi minimaliausiose sistemose.
  • Išorinės komandos - jos yra ne shell programos viduje, o guli kur nors /usr/bin/ kataloge, t.y., jų gali nebūti pačiose minimaliausiose sistemose, bet realiai visvien būna.
  • Vartotojo komandos - jos yra padaromos, kaip shell skriptai ar dar kokios nors kitos programos, kurios yra tik ten, kur jas pats vartotojas pasidarė ar pasidėjo. Tokios komandos yra nestandartinės, todėl jų čia nenagrinėsim.


Svarbiausių UNIX/Linux shell komandų sąrašas

Standartiškiausios, visur esančios UNIX/Linux shell komandos paprastai yra iš dviejų raidžių (nors yra išimčių). Ilgesnės komandos dažniausiai jau yra papildomos, pridėtos vėlesniais laikais. Tačiau kai kurios iš tų papildomų komandų egzistuoja taip seniai ir taip visur, kad nerasite sistemos, kur tokių komandų nebūtų.

Štai tokios yra dažniau naudojamos vidinės ir standartinės UNIX shell komandos (skliaustuose - žodžiai, nuo kurių kilo komanda, jie padeda įsiminti komandos pavadinimą):

  • ls (list) - parodyti failų sąrašą
  • cd (change directory) - pereitį į katalogą/direktoriją
  • pwd (print working directory) - parodyti einamąjį katalogą/direktoriją
  • mv (move) - perkelti failą į kur nors
  • ln (link) - sukurti nuorodą į failą
  • rm (remove) - ištrinti failą ar (su parametru -rf) direktoriją
  • cp (copy) - kopijuoti failą ar direktoriją
  • mkdir (make directory) - sukurti direktoriją
  • rmdir (remove directory) - ištrinti direktoriją
  • ps (processes) - parodyti, kokie vyksta procesai (paleistos programos)
  • df (disk free) - parodyti, kiek yra laisvos vietos diskuose
  • du (disk usage) - pasižiūrėti, kiek kas naudoja disko
  • man (manual) - parodyti komandos aprašymą
  • cat (concatenate) - išvesti failą į ekraną
  • head (head) - išvesti į ekraną failo pradžią
  • tail (tail) - išvesti į ekraną failo pabaigą
  • echo (echo) - parašyti kažką ekrane (naudojama programuojant)
  • kill (kill) - perduoti kokiam nors procesui signalą (dažniausiai - išjungimo signalą)
  • grep (jprst, nes tai yra nesąmoninga abreviatūra) - surasti tekstą faile
  • more (more) - išvesti failą į ekraną su galimybe vaikščioti po jį
  • less (more) - geresnė more versija

Dar yra ir kitų komandų, kurios daugiau kaip programos naudojamos: