Difference between revisions of "LU-LSP-B11:shell-cheatsheet"

From DiLab
Jump to: navigation, search
(Failu pārvietošana, kopēšana, un dzēšana)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TocRight}}
= UNIX čaulas populārākās komandas un lietojumi =
= UNIX čaulas populārākās komandas un lietojumi =


Line 15: Line 16:
** '''-a''' – izvadīt informāciju arī par slēptajiem failiem
** '''-a''' – izvadīt informāciju arī par slēptajiem failiem
** '''-l''' – "long format": izvadīt failu izmēru, piekļuves tiesības u.c.
** '''-l''' – "long format": izvadīt failu izmēru, piekļuves tiesības u.c.
** '''-t''' – sakārtot failus modificēšas kārtībā
** '''-t''' – sakārtot failus modificēšanas kārtībā
* '''mount''' – piemountēt disku
* '''mount''' – piemountēt disku
* '''umount''' – atmountēt disku
* '''umount''' – atmountēt disku
* '''df''' – apskatīties diska lietojumu pa failusistēmām (''Disk usage File systems'')
* '''df''' – apskatīties diska lietojumu pa failusistēmām (''Disk usage File systems'')
* '''du''' – apskatīties diska lietojumu (''Disk Usage'')
* '''du''' – apskatīties diska lietojumu (''Disk Usage'')
** '''du -sh .''' – apskatīties tekošās directorijas aizņemoto diska apjomu ''summary'', ''human readable'' formātā
** '''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 &lt;path&gt; &lt;expression&gt;''' – meklēt failus direktorijās
** '''find /usr/bin/ -iname "gcc*"''' – atrast, kādas GCC versijas atrodas zem ''/usr/bin''
** '''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''!)
* '''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 ==
== Failu pārvietošana, kopēšana, un dzēšana ==
* '''mv <nowiki><source> <destination></nowiki>''' – pārvietot (''MoVe'') failu
* '''mv &lt;source&gt; &lt;destination&gt;''' – pārvietot (''MoVe'') failu
* '''cp <nowiki><source> <destination></nowiki>''' – nokopēt (''CoPy'') failu
* '''cp &lt;source&gt; &lt;destination&gt;''' – nokopēt (''CoPy'') failu
** '''-r''' – kopēt direktorijas rekursīvi
** '''-r''' – kopēt direktorijas rekursīvi
* '''scp <nowiki><file></nowiki> user@host:/home/user_x/myfiles''' - nokopēt failu uz attālinātā host
* '''scp &lt;file&gt; user@host:/home/user_x/myfiles''' - nokopēt failu uz attālinātā host
* '''wget URL''' – lejupielādēt failu no interneta
* '''wget URL''' – lejupielādēt failu no interneta
* '''ln <nowiki><source> <target></nowiki>''' – izveidot saiti (''LiNk'')
* '''ln &lt;source&gt; &lt;target&gt;''' – izveidot saiti (''LiNk'')
** '''-s''' – izvdeidot ''softlink'' (ieteicams lietot šo!)
** '''-s''' – izvdeidot ''softlink'' (ieteicams lietot šo!)
* '''touch <nowiki><file></nowiki>''' – izmainīt faila modifikācijas laiku uz pašreizējo. Ja fails neeksistē, tas tiek radīts
* '''touch &lt;file&gt;''' – izmainīt faila modifikācijas laiku uz pašreizējo. Ja fails neeksistē, tas tiek radīts
* '''rm <nowiki><file></nowiki>''' – izdzēst failu
* '''rm &lt;file&gt;''' – izdzēst failu
** '''-f''' – nejautā pēc apstiprinājuma
** '''-f''' – nejautā pēc apstiprinājuma
** '''-r''' – rekursīvi dzēš direktorijas
** '''-r''' – rekursīvi dzēš direktorijas


== Failu rediģēšana ==
== Failu rediģēšana ==
* '''echo <nowiki><text></nowiki>''' – izvadīt tekstu uz ''stdin'' (var redirektēt failā ar >)
* '''echo &lt;text&gt;''' – izvadīt tekstu uz ''stdout'' (var redirektēt failā ar &gt;)
* '''cat <nowiki><file></nowiki>''' – izvadīt faila saturu uz ''stdin'' (var redirektēt ar > vai ar |)
* '''cat &lt;file&gt;''' – izvadīt faila saturu uz ''stdout'' (var redirektēt ar &gt; vai ar |)
* '''less <nowiki><file></nowiki>''' – izvadīt faila saturu uz ''stdin'', skrollējamā veidā
* '''less &lt;file&gt;''' – izvadīt faila saturu uz ''stdout'', skrollējamā veidā
* '''dd''' – kopēt datus no / uz failu
* '''dd''' – kopēt datus no / uz failu
* '''read''' – ielasīt tekstu no klaviatūras
* '''read''' – ielasīt tekstu no klaviatūras
Line 58: Line 59:
== Pieejas tiesības ==
== Pieejas tiesības ==
* '''id''' – apskatīties, kāds lietotājs es esmu un kādās grupās
* '''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
* '''sudo &lt;cmd&gt;''' – izpildīt komandu ar superlietotāja (''root'') tiesībām
* '''su <user>''' – kļūt par lietotāju <user>
* '''su &lt;user&gt;''' – kļūt par lietotāju &lt;user&gt;
** '''su''' – kļūt par ''root'' (izsaucot bez argumentiem)
** '''su''' – kļūt par ''root'' (izsaucot bez argumentiem)
** '''-c &lt;command&gt;''' – izpildīt komandu kā lietotājs &lt;user&gt;; '''su -c &lt;command&gt;'''– izpildīt komandu kā ''root''
* '''chmod <mode> <file>''' – izmaina piekļuves režīmu failam
* '''chmod &lt;mode&gt; &lt;file&gt;''' – 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 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
** '''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 &lt;user:group&gt; &lt;file&gt;''' – nomaina faila īpašnieku
** '''chown root:root secret.txt''' – padara ''root'' par faila "secret.txt" īpašnieku
** '''chown root:root secret.txt''' – padara ''root'' par faila "secret.txt" īpašnieku
* '''passwd''' - nomainīt paroli
* '''passwd''' - nomainīt paroli


== Teksta apstrāde ==
== Teksta apstrāde ==
* '''grep <pattern> <files>''' – meklēt failos
* '''grep &lt;pattern&gt; &lt;files&gt;''' – meklēt failos
** '''grep -e lo /etc/network/*''' – meklēt rindiņas failos zem /etc/network/, kas attiecas uz "lo" (loopback") interfeisu
** '''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
** '''grep -r''' – meklēt rekursīvi apakšdirektorijās
* '''sed''' – komandrindas redaktors tekstu apstrādei
* '''sed''' – komandrindas redaktors tekstu apstrādei
** '''cat notes | sed s/word/replacement/g''' – aizvieto simbolu virkni "word" failā "notes" ar simbolu virkni "replacement"
** '''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
* '''cut &lt;fields&gt; &lt;file&gt;''' – "izgriezt" tekstu no faila &lt;file&gt; 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)
** '''uname -r | cut -b 1-3''' – izvadīt OS tekošas kodola versijas pirmos trīs simbolus (no pirmā līdz trešajam baitam)


Line 81: Line 83:
* '''ps''' – apskatīties 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
** '''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 &lt;PID&gt;''' – nobeigt procesu (jānorāda procesa identifikators jeb PID)
** '''kill -9 <PID>''' – "nogalināt" procesu vardarbīgi
** '''kill -9 &lt;PID&gt;''' – "nogalināt" procesu vardarbīgi
** '''pkill <process>''' – nobeigt procesu pēc tā vārda
** '''pkill &lt;process&gt;''' – nobeigt procesu pēc tā vārda
* ''/proc'' failusistēma (Linux specifisks)
* ''/proc'' failusistēma (Linux specifisks)


Line 97: Line 99:
* '''uname -a''' – izvada pilnu informāciju par operētājsistēmu - tās nosaukumu, kodola versiju, arhitektūru u.c.
* '''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
* '''cat /etc/issue''' – izvada OS distributīvu un versiju
* '''man <topic>''' – lasīt ''manual page'' par attiecīgo tēmu
* '''man &lt;topic&gt;''' – lasīt ''manual page'' par attiecīgo tēmu


== Failu manipulācija no komandrindas ==
== Failu manipulācija no komandrindas ==
* '''> file''' – novirzīt izvadi (''stdout'') failā
* '''&gt; file''' – novirzīt izvadi (''stdout'') failā
* '''>> file''' – novirzīt izvadi (''stdout'') failā, raksot klāt faila beigās
* '''&gt;&gt; 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)
* '''&gt; file 2&gt;&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
* '''&lt; 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)
* '''program1 | program2''' – padarīt programmas ''program1'' izvadu par ''program2'' ievadu (t.s. ''to pipe output''; | - ''pipe'' simbols)


Line 135: Line 137:
do
do
echo "Line is $f"
echo "Line is $f"
done < file
done &lt; file
* ''For'' izteikumi:
* ''For'' izteikumi:
for i in *
for i in *

Latest revision as of 15:58, 17 September 2013

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