LU-LSP-B11:shell-cheatsheet

From DiLab
Jump to: navigation, search

UNIX čaulas populārākās komandas un lietojumi

Piekļūšana UNIX sistēmām

No Linux/BSD/Cygwin:

  • ssh user@host

No Windows:

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