Linux kommando 3

Dataströmmar

Det finns tre dataströmmar, Standard In (stdin) motsvarar tangentbordet och strömmarna Standard Out (stdout) och Standard Error (stderr) som hamnar på skärmen. Dessa dataströmmar kan ändras för att få ett program att hämta sitt indata från ett annat och likaså för att hämta data från en fil eller dirigera om ett kommandots output till en fil. Många av kommandona kan kombineras för att få ett mer specifikt resultat exempelvis när man vill filtrera fram endast en del av en helhet. Betrakta kommandot nedan

chalo@lin14:~$ ls /etc | less

Ett rent ls på den mappen blir lite väl långt och en del av filnamnen försvinner ”över kanten”. Filtrerat genom less blir det lättare att läsa. Standard Out från ls skickas här inte direkt till skärmen utan blir Standard In för less.

Dataströmmarna kan omdirigeras exempelvis som följande:

chalo@lin14:~/Labs$ ls /etc > etc_content.txt
chalo@lin14:~/Labs$ less etc_content.txt

Nu vill man lägga till dagens datum:

chalo@lin14:~/Labs$ date >> etc_content.txt
chalo@lin14:~/Labs$ more etc_content.txt | grep CEST
chalo@lin14:~/Labs$ cat etc_content.txt | grep CEST

Med två >> läggs det nya resultatet till i slutet av filen. Kommandot cat används egentligen för att konkatenera (lägga ihop) filer, men det kan också användas för att titta på en fils innehåll och det gör vi här.
Det går bra att lägga ihop flera filers innehåll till en fil. Här nedan skapar vi tre text filer där vi skriver 1 till 5, 6 till 10 och 11 till 15. Sedan lägger vi ihop dem:

chalo@lin14:~/Labs$ echo 1 2 3 4 5 > counting1.txt
chalo@lin14:~/Labs$ echo 6 7 8 9 10 > counting2.txt
chalo@lin14:~/Labs$ echo 11 12 13 14 15 > counting3.txt
chalo@lin14:~/Labs$ cat counting1.txt counting2.txt counting3.txt > counting.txt
chalo@lin14:~/Labs$ ls -l
chalo@lin14:~/Labs$ cat content.txt

Skrivbordsverktyg

Terminalen erbjuder en del trevliga små skrivbordsverktyg som jag har svårt att hålla mig ifrån.

Kalendrar

En enkel och bra kalender kan man ogärna vara utan. Kommandot cal visar en sådan. Behöver man veckonummer är kommandot ncal ett alternativ.

chalo@lin14:~/Labs$ cal

chalo@lin14:~/labbmapp$ ncal -w

Kommandot date har vi redan lekt med, men det passar ju också fint i sammanhanget.

chalo@lin14:~/labbmapp$ date

tor  5  jan  2017  22:24:44 CET

Python som kalkylator

Python är egentligen ett programspråk, men det funkar också som en väldigt trevlig miniräknare.

chalo@lin14:~/Labs$ python
Python 2.7.8 (default, Oct 20 2014, 15:05:19)
[GCC 4.9.1] on linux2
Type ”help”, ”copyright”, ”credits” or ”license” for more information.
>>> 33.9 + 15.6
49.5
>>> 1.23 * 1.89
2.3247
>>> 120.5 / 5
24.100000000000001
>>> 20.63 – 9.16
11.469999999999999
>>>

För att komma ur Python och få tillbaks prompten trycker du [Ctrl]+[D].

En bra editor

Naturligtvis hör en bra texteditor (textredigerare) också till de dagliga verktygen. Det finns några olika att välja mellan.

  • GEDIT
    • gedit är en väldigt trevlig och lättanvänd grafisk editor. Eftersom den just är grafisk funkar den inte i alla lägen, till exempel när du fjärrstyr din linuxdator via ssh eller när du ska laga en dator som fått knas med just grafiken. Använd gärna gedit till vardags, men lär dig någon editor som funkar i rent terminalläge också.
  • NANO
    • nano (eller snarlika piko) är väldigt enkel och begränsad, men också lätt att lära sig. Den enda förkunskapen du behöver ha egentligen är att man med ^X menar [Ctrl]+[X] och motsvarande med andra teckenkombinationer som börjar med ^.
  • VI
    • vi eller vim är snabb och slimmad, men ändå väldigt kompetent och de som kan den kan uträtta underverk. Problemet är bara att komma dit. Den liknar nämligen inte något annat, men den finns i princip i alla linux och unix operativsystem.
  • EMACS
    • emacs är stor och anpassningsbar. Trots komplexiteten lär du dig grunderna hyggligt snabbt. Skalet bash använder nämligen en liten delmängd av emacs ”språk” när du redigerar och söker kommandon. Finns inte installerad som standard, men finns i förråden. Är grafisk när det finns möjlighet, men funkar också utan grafik.