"Ruby" programavimas. Pradedančiojo terminalas - 2 dalis
Damianas Watroba
Software Engineer
Sveiki! Šį kartą parengėme dar vieną naudingų komandų rinkinį, kuris padės susipažinti su terminalo naudojimu. Pirmąją pamokos dalį rasite čia: Terminalo pradžiamokslis. 1 dalis.
Terminalas - teorija
Kur aš esu?
data - Jei turime tokį poreikį ir norą, terminale galime patikrinti esamą datą.
damian@rubydev:~$ data
wto, 7 sty 2020,
Prisijungimas ir įtraukimas į sąrašą
cat (concatenate) - ši komanda gali būti naudojama įvairiais tikslais, tačiau populiariausia iš jų yra failų turinio rodymas.
Toliau pateiktame pavyzdyje matote du failus - ruby_1.txt ir ruby_2.txt - kartu su jų turiniu. Svetainė cat [failo pavadinimas] komanda rodo vieno failo turinį, o komanda cat [failo pavadinimas 1] [failo pavadinimas 2] komanda parodo abiejų failų turinį tinkama tvarka.
Yra dar vienas dalykas, kurį galime padaryti su cat komanda - nukreipti standartinę išvestį į naują failą naudojant > ženklas. Tai reiškia, kad ekrane rodomas turinys bus nukreiptas į deklaruotą failą. Jei nurodytoje vietoje nurodyto failo nėra, jis bus sukurtas automatiškai.
Ką čia turime?
ps (proceso būsena) - išveda pagrindinę informaciją apie sistemoje vykstančius procesus. Šią komandą galima palyginti su "Windows" užduočių tvarkykle, kurioje pateikiamas visų veikiančių programų ir procesų sąrašas. Kiekviena programa, taikomoji programa ar vykdoma komanda tampa procesu, turinčiu savo unikalų identifikatorių, vadinamąjį PID (Process IDentifier).
Kaip matote, ps komanda nerodė mus daug. Norėdami patikrinti visus aktyvius procesus, turėsime skambinti ps su aux argumentas.
Aby zobaczyc wszystkie procesus w systemie, uzywajac skladni BSD:
ps ax
ps axu
nužudyti - kartais programa arba programa nustoja reaguoti. Šiuo atveju nužudyti komanda yra labai naudinga. Į nužudyti procesą, tereikia užpildyti nužudyti komandą su jos PID.
Kaip rasti to proceso PID? Geriausia naudoti anksčiau minėtą ps aux komanda. Gali atsitikti, kad nužudyti vien tik to nepakanka, nes procesas laukia, kol baigsis kitas priklausomas procesas. Todėl, nužudyti taip pat dažnai naudojamas su -9 galimybė. Tai reiškia, kad vykdomas procesas bus nedelsiant nutrauktas, todėl prieš naudodami šią parinktį įsitikinkite, kad visi svarbūs pakeitimai buvo išsaugoti. Pažvelkime į tokios komandos pavyzdį:
damian@rubydev:~$ kill -9 1234
Echo!
echo - tai komanda, kuri grąžina jai patikėtą tekstą. Panašiai kaip ir cat, įvestą tekstą galite nukreipti į failą naudodami echo komanda.
Gali būti naudinga
Kai norite peržiūrėti anksčiau įvestų komandų istoriją, galime naudoti istorija komanda.
Jei norite išvalyti terminalo langą, reikia aiškus komanda.
Svetainė išėjimas Kaip rodo pavadinimas, komanda uždaromas terminalas arba šiuo metu atidarytas skirtukas.
Pradžia ir pabaiga
Svetainė vadovas komanda rodo failo arba standartinės išvesties pradžią. Numatytoji reikšmė yra pirmosios dešimt eilučių. Ją galite pritaikyti naudodami komandą -n parinktį, kurioje galite įrašyti bet kokį sveiką skaičių po n. Kad tai geriau iliustruočiau, pateiksiu pavyzdį.
Mums reikės tekstinio failo. Naudokime jau minėtą istorija komandą ir peradresavimo > charakteris.
damian@rubydev:~$ history > history.txt
Taip buvo sukurtas failas su visa komandų istorija. Tada, naudodami head -15 history.txt, galima parodyti penkiolika pirmųjų į terminalą įvestų komandų.
Panašiai uodega komanda parodys paskutines pasirinkto failo eilutes.
Paieška
grep (visuotinės reguliariosios išraiškos spausdinimas) naudojama tekste ieškant eilutės, atitinkančios nurodytą reguliariąją išraišką (RegExp). Ji labai dažnai naudojama norint surasti konkrečią išraišką faile arba “filtruoti” grąžinamą išvestį. Šiam tikslui naudokime anksčiau sukurtą istorija.txt failą ir patikrinkite, kaip dažnai ps komanda buvo naudojama iki šiol:
damian@rubydev:~$ grep ps history.txt
82 echo "Lorem ipsum rubydev 1" > ruby_1.txt
84 echo "Lorem ipsum rubydev 2" > ruby_2.txt
92 ps
93 ps aux
94 ps --help
95 man ps
96 ps -h
98 ps --help
99 ps -ejH
100 ps aux
101 man ps
102 ps -aux
103 ps aux
109 history | grep ps
113 echo "lorem ipsum rubydev" > rubydev.rb
Kaip matote, grep taip pat rasta žodžių, kurių sudėtyje yra frazė ps. Mūsų pavyzdyje naudota išraiška buvo ps tik. Planuoju parašyti atskirą straipsnį apie reguliariąsias išraiškas, bet kol kas raginu jus savarankiškai panagrinėti šią temą. Šiuo metu pakanka pagrindinių žinių.
Komandų derinimas
| (pipe) - tai simbolis, leidžiantis sujungti kelias komandas (procesus) ir paleisti juos vienu metu. Tiksliau, vienos komandos išvestį (stdout) galime sujungti su kitos komandos įvestimi (stdin). Tai labai naudinga funkcija.
Išvestis (stdout) istorija bus ieškoma pagal komandą grep komandą ir grąžinti visas eilutes su atitinkančia ps išraiška.
istorija | uodega -5
Šiuo atveju naudodami uodega komandą su -5 parinktis parodys penkias paskutines išvesties (stdout) eilutes. istorija komanda.
Šis derinys ypač naudingas ieškant proceso, kurį norite nutraukti, PID. Atminkite, kad paleidus grep komanda taip pat sukurs procesą, todėl paprastai matysite PID grep procesas paskutinėje eilutėje.
Prieiga prie failų ir katalogų
Prieš pereinant prie komandos, keičiančios prieigos leidimų tipą, verta paminėti, kad kiekviena operacinė sistema turi vadinamąsias prieigos teises. Tai reiškia, kad kiekviename kataloge ar faile yra metaduomenys apie tai, kas turi prieigą prie jo. Apie tai mums viską pasako pirmasis toliau pateiktos “išvesties” stulpelis (terminalo lange rodoma išvesties informacija):
istorija | uodega -5
Prieigą prie failų ir katalogų apibrėžia trys komponentai. Pirmasis (user) reiškia vieną naudotoją, antrasis (group) - grupę, o trečiasis (other) - visus kitus naudotojus.
d - nustato, ar tai katalogas, ar failas (d - katalogas, f - failas).
rwx - naudotojo teisės
r-x - grupės leidimai
r-x - leidžiama visiems kitiems naudotojams
Kad būtų paprasčiau, galite jį padalyti į tris dalis:
Dabar pereikime prie šių teisių prasmės:
r (skaityti) - leidžia skaityti turinį
w (rašyti) - leidžia keisti turinį
x (vykdyti) - leidžia paleisti failą arba atidaryti katalogą
Failų ar katalogų leidimus galima keisti naudojant chmod (keisti režimą) komanda. Paprasčiausias būdas pakeisti leidimus - naudoti įterptąją sistemą ir nurodyti naudotojo, grupės ir kitų asmenų leidimo numerį.
Norėdami praktiškai pritaikyti šias žinias, pakeiskime anksčiau išvardytų leidimus video katalogą, skirtą grupėms ir kitiems naudotojams - atimkite visus šių dviejų naudotojų leidimus, bet palikite visus leidimus tik vienam naudotojui. Remiantis pirmiau pateikta lentele, “be teisių” žymima skaičiumi 0. Iš karto po chmod komandą, turite įrašyti tris skaitmenis, kurių kiekvienas nurodo tam tikros kategorijos teises (naudotojas - grupė - kiti). Pabaigoje nurodykite failo arba katalogo pavadinimą. Komanda turėtų atrodyti taip:
damian@rubydev:~$ chmod 700 Wideo
damian@rubydev:~$ ls -l | tail -1
drwx------ 2 damian damian 4096 sty 6 17:41 Wideo
Santrauka
Yra daugybė kitų komandų, o lengviausias būdas įvaldyti jas visas - praktiškai spręsti konkrečias problemas. Jei norite apie jas sužinoti daugiau, Rekomenduoju kišeninį "Linux" komandų žodyną. Mano nuomone, tai malonus būdas užmušti laiką važiuojant viešuoju transportu.