Pagrindinės linux komandos

edited March 2019 in Linux pagrindai

Kazdieniame serverio administravime neapseisite nežinodami kaip valdyti serverį prisijungus prie jo per ssh.


Pagrindines ssh komandos.

Turėkite omenyje, kad jūs galite pasiskaityti kiekvienos komandos bei jos atributų aprašimus parašius man komanda

ls : Parodo failus bei direktorijas esamoje direktorijoje.

ls -al : Parodo failus bei direktorijas ir papildomą informaciją apie jų teises, vartotojus ir t.t.


cd : Keičia esamą direktoriją PVZ: cd /usr/home : Nueisite į /usr/home direktoriją

cd ~ : Nueina i namu direktoriją, jeigu prisijungėte kaip root - nueisite į root direktoriją

cd - : Nueina i paskutinę direktoriją kurioje buvote

cd .. : Eiti i direktorija kuri yra aukščiau pvz: esate /root/failas1/failas2 tai parašius cd .. būsite /root/failas1


cat : Spausdina failo turini į ekraną pvz: cat /root/.bash_history atspauzdins /root/.bash_history failo turini (šiame faile laikoma ansčiau vestų komandų istorija)

Keli pavyzdeliai su cat:

cat /proc/cpuinfo : Atspausdina procesoriaus informaciją

cat /proc/meminfo : Atspausdina informacija apie kompiuterio naudojama bei laisvą atmintį


chmod: Keicia failo privilegijas

chmod turi trys pagrindinius parametrus einančius iš kairės į dešine

VARTOTOJUI - GRUPEI - VISIEMS


0 = --- Nėra teisių

1 = --X Tik paleisti

2 = -W- Tik rašyti

3 = -WX Rašyti ir paleisti

4 = R-- Tik skaityti

5 = R-X Skaityti ir paleisti

6 = RW- Skaityti ir rašyti

7 = RWX Skaityti, rašyti ir paleisti


Naudojimas

chmod Permisijos failas


chmod 000 failas : Niekas neturi jokių teisių

chmod 644 failas : Vartotojas turi skaitymo ir rašymo teises, grupė ir visi kiti tik skaitymo

chmod 755 failas : Vartotojas turi skaitymo, rašymo ir paleidimo teises, grupė ir visi kiti skaitymo ir paleidimo teises


Jeigu norime, kad tik vartotojas galėtu atlikti veiksmus failui komanda būtu tokia:

chmod 700 failas



chown: Keicia failo ar aplanko priklausimą tam tikram vartotojui ar grupei

chown turi dvi opcijas kurios eina iš kairės į dešinę:

VARTOTOJAS - GRUPĖ


chown root Failas.txt : Nustato, kad failas priklausytu vartotojui root

chown root:root Failas.txt: Nustato, kad failas priklausytu vartotojui root bei root grupei

chown -R root:root /root/: Nustatys permisijas katalogams, failams bei subkatalogams



tail : Panašiai kaip cat tiesiog atvaizduoja failo turinį nuo galo ( pagal nutilėjimą rodo 10 eilučių )

tail /var/log/messages : Parodys failo /var/log/messages 10 eilučių nuo galo

tail -f /var/log/messages : Parodys paskutines 10 eilučių ir papildomai jeigu atsiras naujas įrašas jį išspauzdins

tail -n 200 /var/log/messages : Parodys paskutines 200 eilučių

Tarkim jeigu norite, kad atspauzdintu 30 paskutiniu eilučių ir rodytu atsinaujinimus į ekraną:

tail -n 30 -f /var/log/messages


more : Panašiai kaip cat tik jeigu failo turinys netelpa į langą tai leidžia su space pagalba eiti po puslapi žemyn (jeigu norite išeiti iš apžvalgos neperžiūrėje failo iki pabaigos galima paspausti q)

more /proc/cpuinfo : Parodys failo cpuinfo turinį ir jeigu netilps į ekrana spaudziant space keliausite link failo pabaigos


nano : Vienas iš editorių kuris yra lengviau naudojamas

nano failas : Atidaro failą redagavimui

Pagrindinės komandos jau atidarius failą su nano redagavimo programa (klavišų kombinacijos).

ctrl+g : Naudojimosi instrukcija

ctrl+x : Uždarys atidarytą failą ( jeigu faile yra padaryti pakeitimai tai paklaus ar norite išsaugoti pakeitimus, kad patvirtinti pakeitimus spauskite y ir tada enter)

ctrl+o : Įrašys atidaryto failo pasikeitimus į diską neuždarant redaguojamo failo

ctrl+r : Įterps kito failo turinį į dabartinę posziciją ( reikia nurodyti pilną kelią iki įterpiamo failo )

ctrl+w : Paieška atidarytame faile.

ctrl+y : Atitinka mygtuką page up

ctrl+v : Atitinka mygtuką page down

ctrl+k : Iškerpa tam tikrą eilutę ( laiko atminty iškirtpą eilutę (galima iškirpti daug eilučių ir jos bus laikomos atmintyje))

ctrl+u : Įterpia eilutę iš atminties

ctrl+c : Parodo kursoriaus poziciją

ctrl+_ : Paprašys įvesti eilutės numerį ir nukels žymeklį į ją

ctrl+^ : Pradeda žymėti tekstą. (tarkim jeigu reikia pažymėti 10 eilučių tai spaudžiam ctrl+^ ir einam žemyn, pažymėjus galima atlikti, aukščiau išvardintus veiksmus pažymėtam tekstui)


grep : Ieško sutapimų faile

grep root /etc/passwd : Ekrane parodis visas eilutes kuriose yra žodis root iš failo /etc/passwd

grep -v root /etc/passwd : -v pasako grep komandai, kad turi spauzdinti visas eilutes kuriose nėra root žodžio

grep -v -m 10 root /etc/passwd : -m 10 nurodo, kad spauzdintu 10 eilučių

grep -v -m 10 -n root /etc/passwd : -n pridės eilutės skaičių



ln : Sukuria failo ar aplanko atvaizdą

ln -s /etc/apt/sources.list /etc/sources.list : Sukurs failo /etc/apt/sources.list atvaizdą į /etc/sources.list, jeigu redaguosite atvaizdą pasikeitimai bus matomi ir originaliame faile, jeigu istrinsite atvaizdą - originalas liks nepaliestas



last : Parodo kas buvo prisijunges ir kada

last -n 20 : Parodo prisijungusius i sistema ( paskutinius 20 prisijungimų )

last -n 20 -a : Parodo paskutinius 20 prisijungimų, bet perkels ip/hostneimą i galą ( taip bus matomas visas adresas )


w : Parodo kas šiuo metu pasijunges

who : Taipat rodo kas pasijunges


netstat : Rodo visus esamus prisijungimus ar aktyvius socketus serverije (pridėjus -n matysime ip adresus)

netstat -anop : Rodo visus atvirus portus, aktyvius susijungimus, susijungimo statusą bei kokia programa naudoją tą susijungimą

netstat -rn : Parodo routinimo lentelę

netstat -s : Parodo statistiką pagal protokolus


top : Programa kuri parodo šia akimirką paleistus procesus ir kiek jie kiekvienas atskirai sunaudoja resursų bei kiek sunaudojama resursų bendrai viso serverio, taipogi parodoma kiek laisvų resursų.

shift+m rikiuoja pagal tuos procesus kurie sunaudoja daugiausiai atminties

shiftp+p rikiuosja pagal tuos procesus kurie sunaudoja daugiausiai procesoriaus

Šios programos alternatyva gali būti htop (Standartiškai gali būti ne įdiegta)


touch : Sukuria tuščią failą

touch /root/how-to.txt : Sukurs tuščią failą direktorijoje /root pavadinimu how-to.txt


file : Bando atspėti kokio tipo failas

file * : Parodo visų failų informaciją esamoje direktorijoje


du : Rodo disko naudojimą

du -sh failas : Prodo kiek užima vietos diske tam tikras failas ( taipogi jeigu tai aplankas tai iskaičiuojama kas yra tuose aplankuose )

du -sh * : Parodys kiek užima visi failai esamoje direktorijoje


df -h : Pardodo kiek užimta/laisva vietos diske ir jeigu yra sukurtos - particijose


wc : žodzių/eilučių/simbolių skaičiavimas

wc -l failas.txt : Parodo kiek yra linijų failas.txt faile

wc -w failas.txt : Parodo kiek yra žodzių failas.txt faile

wc -m failas.txt : Prodo kiek yra simbolių failas.txt faile


cp : Kopijuoja failą

cp failas failas.back : Padaro failas kopiją kurį pavadina failas.back

cp -a /var/log/* /root/logai : -a nurodo, kad kopijuotu visus failus iš /var/log/ į /root/logai/

cp -av * /root/direktorija : Nukopijuoja visus failus ir ir aplankus iš dabar esančios direktorijos į /root/direktorija

cp -rp : Kopijuoja failus išsaugant jų teises


mv : Perkelia failą (cp kopijuoja, o mv perkelia nepaliekant senojo)

mv /var/log/SenasFailas /var/log/NaujasFailas : Perkels /var/log/SenasFailas į /var/log/NaujasFailas

mv -f direktorija /var/log/direktorija : -f nurodo, kad neklaustu ar norite perrašyti jeigu yra tokių pačių


rm : Trina failą/direktoriją

rm failas.txt : Ištrins failas.txt

rm -rf /root/aplankas : Ištrina aplanką


tar : Naudojama suarchivavimui arba išpakavimui .tar arba .tar.gz failams

tar -zxvf failas.tar.gz : Išpakuoja .tar.gz failą

tar -xvf failas.tar : Išpakuoja .tar failą

tar -cf archyvas.tar aplankas/ : Supakuoja visą turinį kuris yra aplankas/ į archyvą archyvas.tar

gzip -d failas.gz : Išpakuoja .gz faila


unzip : Išpakuoja zip archyvus

unzip failas.zip : Išpakuos .zip archyvą

unrar : išpakuoja .rar archyvus

unrar -x failas.rar : Išpakuos failas.rar archyvą


Kaip ir dauguma operacinių sistemų linux taip pat turi vartotojus. Šie vartotojai turi labai daug opcijų tad aptarsime tik kaip juos sukurti bei kelis kitus aspektus.

adduser testas : Sukuria vartotoją su prisijungimo vardu testas

Po vartotojo sukūrimo reikia jam nustatyt slaptažodį

passwd testas : Ši komanda pakeičia slaptažodį

userdel -r testas : Ištrina vartotoją bei jo namų direktoriją


ps : Komandą parodo palestis procesus linux serveriuose

Kiekvienas procesas turi unikalų savo numerį (procesu galima būtu pavadinti programą ar skriptą ar, bet ką kas veikia serverije) ir žinant to proceso numerį galima jį išjungti (žiūrėkite kill komandą).

ps U vartotojas : Parodo tam tikro vartotojo paleistus procesus

ps aux : Parodo visos sistemos paleistus procesus


kill: nužudo norimą procesą. Naudoimas:

kill -9 PID pvz.: kill -9 431

Naudokite ps ux kad gauti PIDs (Proceso ID numerius)


Pvz.:


PID TTY TIME COMMAND

10550 pts/3 0:01 /bin/csh

10574 pts/4 0:02 /bin/csh

10590 pts/4 0:09 APP


PID stulpelis yra procesoriaus numeris, COMMAND stulpelis nurodo kokia konkrečiai paleista programa. Tarkim jeigu norime išjungti programą pavadinimu APP tai rašome kill -9 10590


Komandu naudojimas kartu

Dažnai prireikia panaudoti kelias komanda vienu metu perduodant atsakymus iš vienos kitai ir taip gauti norimą atsakimą. Simbolis | leidžia naudoti kitą komandą ir pirmoji perduoda informaciją kitai.

> Simbolis gali būti naudojams įrašant informaciją į failą kai kiekvieną kartą failo turinys yra užrašomas ant viršaus

>> Taip pat kaip ir ankstesnė komanda, bet failas nėra pradedamas rašyt iš naujo, o įrašymas tęsiamas neištrinant senos informacijos

< Atvirkštinis variantas kai informacija pateikiama iš failo į komandą.


last -a > /root/lastlogins.tmp

Ši komanda įrašys paskutinius prisijungimus (pagal nutilėjimą 10 paskutinių prisijungimų) į failą lastlogins.tmp kuris bus /root/ aplanke


tail -n 10000 /var/log/exim_mainlog |grep domenas.com

Ši komanda paims failo /var/log/exim_mainlog 10000 įrašų nuo galo ir atspauzdins tik tas eilutes kuriose yra domenas.com reikšmė


netstat -an |grep :80 |wc -l

Šis komandų junginys parodys kiek yra prisijungimų į 80 portą, kaip tai veikia:

netstat -an spauzdina informacija apie prisijungimus

grep :80 atrenka eilutes kuriose yra toks įrašas

wc -l paskaičiuoja kiek yra eilučių

Tarkim norime papildyti šią komandą ir sužinoti ne kiek yra prisijungimų į 80 portą, o kiek i tą portą yra unikalių ( iš skirtingų ip adresų ) prisijungimų.

netstat -an | grep :80 | awk {'print $5'} | awk -F: '{print $1}' | uniq | wc -l

awk {'print $5'}Spauzdina penktą stulpelį

awk -F: '{print $1}'Padalina atsakimą į dvi dalis ties simboliu : ir spauzdina pirmą dalį (atrenkamas tik ip adresas)

uniq Atrenka unikalias reikšmes


Tarkime norime gauti /proc/meminfo eilutę kur parodo kiek yra laisvų ram:

cat /proc/meminfo | grep MemFree:

Gauname atsakymą panašų į: MemFree: 614352 kB

Tarkim norime gauti tik skaičių kiek yra laisvų ram:

cat /proc/meminfo | grep MemFree: | awk '{print $2}'

awk komanda nurodo, kad spauzdintu antrą įrašą, kad tai antras įrašas suprantama tarpo pagalba.

Taigi gauname tokį rezultatą: 613144 bet cča yra kB ir mes norime matyti mb:

cat /proc/meminfo | grep MemFree: | awk '{print $2/1024}'

Elementarus dalybos veiksmas /1024 ir rezultatą jau gauname 597.344

Tarkime norime prideti datą kada gauta informacija apie laisvus ramus.

cat /proc/meminfo | grep MemFree: | awk '{print d, $2/1024}' "d=$(date +"%Y-%m-%d")"

Gaunamas rezultatas: 2010-08-10 589.395

Dabar tarkime norime padaryti, kad butu dar + patikrinimas jeigu mažiau nei 600

cat /proc/meminfo | grep MemFree: | awk '{ if ($2/1024 < 600) { print d, $2/1024 } }' "d=$(date +"%Y-%m-%d")"

Gaunamas rezultatas nesikeičia, bet jis bus rodomas tik tuo atveju jeigu gautas rezultatas yra maziau nei 600.

Dabar tarkim norime įrasyti gautą rezultatą į failą.

cat /proc/meminfo | grep MemFree: | awk '{ if ($2/1024 < 600) { print d, $2/1024 } }' "d=$(date +"%Y-%m-%d")" >> /root/ramai.txt

Ką mes čia gavome. Tarkim jeigu pakeisti 600 į 100:

cat /proc/meminfo | grep MemFree: | awk '{ if ($2/1024 < 100) { print d, $2/1024 } }' "d=$(date +"%Y-%m-%d")" >> /root/ramai.txt

ir šią komandą įrašyti į cronjobą kuris būtu vygdomas kas minute - mes į failą /root/ramai.txt gautumėme informaciją kada buvo laisvų ramų like mažiau nei 100mb.

SMULKESNIS PAAIŠKINIMAS KIEKVIENOS KOMANDOS:


Turime komandą:

cat /proc/meminfo | grep MemFree: | awk '{ if ($2/1024 < 100) { print d, $2/1024 } }' "d=$(date +"%Y-%m-%d")" >> /root/ramai.txt


1: cat /proc/meminfo : atspauzdina visą info apie serverio naudojamą atmintį

2: grep MemFree: : Paima eilutę tik tą kurioje yra įrašas "MemFree:"

3: awk '{ if ($2/1024 < 100) { print d, $2/1024 } }' "d=$(date +"%Y-%m-%d")"

a: if ($2/1024 < 100) : Jeigu eilutėje kuri anksčiau atrinkta buvo pagal žodį "MemFree:" antras žodis padalintas iš 1024 yra mažiau nei 100

b: { print d, $2/1024 } : atspauzdinta d ( kas tas d aprašyta kitame punkte ) ir iš eilutės "MemFree:" gautą antrą reikšmę padalinta iš 1024

c: "d=$(date +"%Y-%m-%d")" : Aprašomas d, o d yra komanda date kuri spauzdina datą tik dar papildomai nurodytas jos formatas, tai yra %Y reiškia metai %m reiskia mėnesį %d reiškia dieną, galima pakeisti ir i "d=$(date +"%Y:%m:%d")" gal kam gražiau atrodis.

4: >> /root/ramai.txt : Tiesiog įrašo rezultatą į failą /root/ramai.txt ( jeigu rezultatas nebuna tuščias)


Šiuo pavyzdžiu parodėme kaip galima sukombinuoti kelias komandas ir net bash skriptinimą į vieną eilutę ir padaryti ram stebėjimą

Sign In or Register to comment.