LU-LSP-B11:shell-cheatsheet
UNIX čaulas populārākās komandas un lietojumi
Piekļūšana UNIX sistēmām
No Linux/BSD/Cygwin:
- ssh user@host
No Windows:
- Lietojot putty
Failu un direktoriju pamatkomandas
- cd – nomainīt pašreizējo direktoriju (Change Directory)
- pwd – izvadīt pašreizējas direktorijas nosaukumu (Print Working Directory)
- mkdir – izveidot direktoriju
- -p – izveidot arī to iekļaujošas direktorijas
- ls – izvadīt pašreizējas direktorijas saturu (LiSt)
- -a – izvadīt informāciju arī par slēptajiem failiem
- -l – "long format": izvadīt failu izmēru, piekļuves tiesības u.c.
- -t – sakārtot failus modificēšanas kārtībā
- mount – piemountēt disku
- umount – atmountēt disku
- df – apskatīties diska lietojumu pa failusistēmām (Disk usage File systems)
- du – apskatīties diska lietojumu (Disk Usage)
- du -sh . – apskatīties tekošās directorijas aizņemto diska apjomu summary, human readable formātā
- find <path> <expression> – meklēt failus direktorijās
- find /usr/bin/ -iname "gcc*" – atrast, kādas GCC versijas atrodas zem /usr/bin
- locate – ātri atrast failus visā sistēmā (lai komanda strādātu, ir vajadzīgs uzbūvēt un regulāri atjaunot failu datubāzi ar sudo updatedb!)
Failu pārvietošana, kopēšana, un dzēšana
- mv <source> <destination> – pārvietot (MoVe) failu
- cp <source> <destination> – nokopēt (CoPy) failu
- -r – kopēt direktorijas rekursīvi
- scp <file> user@host:/home/user_x/myfiles - nokopēt failu uz attālinātā host
- wget URL – lejupielādēt failu no interneta
- ln <source> <target> – izveidot saiti (LiNk)
- -s – izvdeidot softlink (ieteicams lietot šo!)
- touch <file> – izmainīt faila modifikācijas laiku uz pašreizējo. Ja fails neeksistē, tas tiek radīts
- rm <file> – izdzēst failu
- -f – nejautā pēc apstiprinājuma
- -r – rekursīvi dzēš direktorijas
Failu rediģēšana
- echo <text> – izvadīt tekstu uz stdout (var redirektēt failā ar >)
- cat <file> – izvadīt faila saturu uz stdout (var redirektēt ar > vai ar |)
- less <file> – izvadīt faila saturu uz stdout, skrollējamā veidā
- dd – kopēt datus no / uz failu
- read – ielasīt tekstu no klaviatūras
- nano – vienkāršs teksta redaktors
- pico – reizēm tiek lietots kā sinonīms nano
- vi – pilnfunkcionāls komandrindas teksta redaktors
- emacs – pilnfunkcionāls komandrindas teksta redaktors (nedaudz retāk sastopams uzinstalēts kā vi, bet ar intuitīvāku interfeisu)
Arhivēšana
- tar -cf archive.tar directory/ – saarhivēt direktoriju directory arhīvā archive.tar
- tar -czf archive.tgz directory/ – tas pats, bet saspiest ar gzip
- tar -xf archive.tar – atspiest "archive.tar" tekošajā direktorijā
- -z – gzip formāts
- -j – bzip2 formāts (lēnāks, bet ar labāku kompresiju)
Pieejas tiesības
- id – apskatīties, kāds lietotājs es esmu un kādās grupās
- sudo <cmd> – izpildīt komandu ar superlietotāja (root) tiesībām
- su <user> – kļūt par lietotāju <user>
- su – kļūt par root (izsaucot bez argumentiem)
- -c <command> – izpildīt komandu kā lietotājs <user>; su -c <command>– izpildīt komandu kā root
- chmod <mode> <file> – izmaina piekļuves režīmu failam
- chmod a+x script.sh – padara failu "script.sh" par izpildāmu (a – all, o – owner, g – group; x – izpildāms, r – lasāms, w – rakstāms; + – pielikt, - – noņemt)
- chmod 0600 secret.txt – padara failu secret.txt par lasāmu un rakstāmu tikai īpašniekam
- chown <user:group> <file> – nomaina faila īpašnieku
- chown root:root secret.txt – padara root par faila "secret.txt" īpašnieku
- passwd - nomainīt paroli
Teksta apstrāde
- grep <pattern> <files> – meklēt failos
- grep -e lo /etc/network/* – meklēt rindiņas failos zem /etc/network/, kas attiecas uz "lo" (loopback") interfeisu
- grep -r – meklēt rekursīvi apakšdirektorijās
- sed – komandrindas redaktors tekstu apstrādei
- cat notes | sed s/word/replacement/g – aizvieto simbolu virkni "word" failā "notes" ar simbolu virkni "replacement"
- cut <fields> <file> – "izgriezt" tekstu no faila <file> katras rindiņas
- uname -r | cut -b 1-3 – izvadīt OS tekošas kodola versijas pirmos trīs simbolus (no pirmā līdz trešajam baitam)
Procesi
- top – apskatīties aktīvākos procesus
- ps – apskatīties procesus
- ps aufx – apskatīties procesus no visiem lietotājiem, sakārtotus parent-child attiecībās, kopā ar to resursu patēriņa statistiku
- kill <PID> – nobeigt procesu (jānorāda procesa identifikators jeb PID)
- kill -9 <PID> – "nogalināt" procesu vardarbīgi
- pkill <process> – nobeigt procesu pēc tā vārda
- /proc failusistēma (Linux specifisks)
Tīklošana
- ifconfig – konfigurēt tīkla interfeisus
- route – konfigurēt maršrutus
- ip – jaunās paaudzes rīks, kas "māk darīt visu"
- ip addr – adreses
- ip link – interfeisi
- ip route – maršruti
Citas komandas
- uname -a – izvada pilnu informāciju par operētājsistēmu - tās nosaukumu, kodola versiju, arhitektūru u.c.
- cat /etc/issue – izvada OS distributīvu un versiju
- man <topic> – lasīt manual page par attiecīgo tēmu
Failu manipulācija no komandrindas
- > file – novirzīt izvadi (stdout) failā
- >> file – novirzīt izvadi (stdout) failā, rakstot klāt faila beigās
- > file 2>&1 – novirzīt failā file gan ziņojumus no stdout, gan no stderr (t.i. paziņojums par kļūdām)
- < file – novirzīt ievadi: lasīt ievaddatus nevis no stdin, bet no faila
- program1 | program2 – padarīt programmas program1 izvadu par program2 ievadu (t.s. to pipe output; | - pipe simbols)
Bash čaulas programmēšanas līdzekļi
- Mainīgie
$ export FOOBAR=123 # uzstāda maīnīgā FOOBAR vērtību $ echo FOOBAR=$FOOBAR # izvada iepriekš piešķirto vērtību
- set – izvada tā saucamo "environment", t.i. visus shell mainīgos ar to vērtībām. Piemērs:
$ set | grep FOOBAR FOOBAR=123
- If izteikumi
if [ "$x" -lt "$y" ]; then # do something fi
- Skaitliskās salīdzināšanas nosacījumi:
lt – less than gt – greater than eq – equal to ne – not equal ge – greater or equal le – less or equal
- Failu pārbaudes nosacījumi:
nt – newer than d – is a directory f – is a file r – readable w – writable x – executable
- While izteikumi:
while read f do echo "Line is $f" done < file
- For izteikumi:
for i in * do echo "File is $i" done
- Komandu izsaukšana notiek lietojot simbolus `, piemēram:
$ SYSTEM_VERSION=`uname -r` $ echo $SYSTEM_VERSION