Kul för nybörjare med bash i terminalen

Mjukstarta här!
Kategoriregler
Läs följande innan du postar: http://ubuntu-se.org/phpBB3/viewtopic.php?f=208&t=44692
Du får hjälp att komma igång med Ubuntu genom att välja en personlig fadder här: http://ubuntu-se.org/phpBB3/viewtopic.php?f=110&t=8767
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Kul för nybörjare med bash i terminalen

Inlägg av anth »

Det finns redan ett terminalforum, men det ligger under "Avancerat bruk". Den här tråden är för nybörjare.

Många nybörjare installerar program med Ubuntu Software och tror att det är allt som finns.
Ubuntu Software är ett fantastiskt program, men det visar bara toppen på ett isberg - bokstavligen. Majoriteten av alla linuxprogram kommer man bara åt via terminalen.

För nybörjare är terminalen ofta en skrämmande plats som man försöker undvika till varje pris.
Den här tråden lär inte ut hur man använder terminalen - för sånt finns det andra platser som är mycket bättre.
Det här är istället en tråd där man kan posta/läsa blandade tips och tricks om vad man kan göra i terminalen.
Jag tycker om "learning by doing" och vet att jag skulle ha lärt mig terminalen snabbare om jag haft tillgång till en sån här tråd.

För den verkliga nybörjaren
Snabbkommandot för att öppna terminalen är ctrl+alt+t.
Vill man alltid ha tillgång till terminalen (vem vill inte det?) kan man högerklicka på terminal-ikonen och välja "add to favorites".

Terminalkommandon skrivs ofta så här:

Kod: Markera allt

$ sudo apt update
Man ska INTE skriva dollar-tecknet, utan det visar bara att det är ett terminalkommando.
Terminalen brukar se ut så här:

användarnam@datornamn:~$

Det är efter det dollar-tecknet man ska skriva kommandot.
Man avslutar alla terminalkommandon med att trycka Retur, därför kan man bara klistra in en rad åt gången.
Är man lat kan man skriva fler kommandon på en rad om man skiljer dem med &&, så här:

Kod: Markera allt

$ sudo apt update && sudo apt upgrade
En irriterande sak för nybörjare är att ctrl+c och ctrl+v för klipp/klistra inte fungerar i terminalen.
Det har att göra med att ctrl+c och ctrl+v kommer från Microsoft på 1980-talet och terminalen kommer från UNIX på 1970-talet.
Den verkliga frågan är varför Microsoft envisdes med att göra annorlunda än UNIX. :)
Men det går att klippa och klistra i terminalen:
Antingen så högerklickar man och väljer copy/paste.
Eller så använder man ctrl+shift+c och ctrl+shift+v.
Observera att det måste vara ctrl+shift, inte shift+ctrl - de är två olika saker i terminalen.

Mer avancerade saker i terminalen kräver att kommandot börjar med sudo.
Det ger en administratörsrättigheter och kräver därför att man skriver sitt lösenord.
Datorn kommer ihåg sudolösenord i ungefär en kvart. Det betyder att använder man sudo flera gånger efter varandra behöver man bara skriva sitt lösenord första gången.

Många gånger frågar datorn [y/n]?
Då ska man trycka y för yes om man vill fortsätta, eller n för no om man vill avbryta.

För att avbryta ett terminalprogram kan man prova att trycka q för quit, ctrl+c eller ctrl+d.

Normalt fungerar inte musen i terminalprogram, använd istället piltangenterna för att flytta markören och tryck Retur för att välja saker.
Om piltangenterna inte fungerar kan man prova bokstäverna HJKL. Dessa användes på gamla tangentbord som saknade piltangenter. HJKL är c:a 20 år äldre än tangenterna ASWD som datorspelare är vana vid att använda.
Fungerar inte HJKL heller kan man prova Tab-tangenten och "tabba" sig runt i ett program.
Fungerar inte Retur kan man prova mellanslags-tangenten för att välja saker.

Slutligen, ett proffs stänger inte terminalen genom att klicka på X:et i övre högra hörnet, de skriver:

Kod: Markera allt

$ exit
Ta det lugnt
Bild
Senast redigerad av 2 anth, redigerad totalt 28 gång.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Låt oss börja med något enkelt:
Visste ni att apt-get tycker om kossor?

Kod: Markera allt

$ apt-get moo
Det fungerar med kommandot apt med.
Sedan kan man installera aptitude (som gör ungefär samma sak som apt-get och apt).

Kod: Markera allt

$ sudo apt install aptitude
$ aptitude moo
$ aptitude -v moo
$ aptitude -vv moo
$ aptitude -vvv moo
Testa hur många v man kan använda. :)

Kuriosa: apt är INTE en förkortning av aptitude, utan står för Advanced Package Tool.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Alla som sett filmen Matrix kommer ihåg de gröna bokstäverna som faller nedåt på skärmen i början.
Ni kanske sett något liknande på någon linux-sida, eller youtube-video och undrar hur de gör.

Kod: Markera allt

$ sudo apt update
$ sudo apt install cmatrix
Starta programmet genom att skriva cmatrix i terminalen, avsluta genom att trycka q eller ctrl+c.

Man kan sätta på/av terminalens fullskärmsläge med f11.

Läs hjälpen eller manualen för att se hur man kan ändra programmet:

Kod: Markera allt

$ cmatrix --help
$ man cmatrix
Fråga: är det någon som vet hur man får det här att fungera?

Kod: Markera allt

$ cmatrix -c
Det ska byta ut de latinska bokstäverna mot japanska precis som i filmen.
Det enda man ska behöva göra är att installera rätt japanskt typsnitt - tyvärr verkar ingen på nätet veta vilket typsnitt man ska installera. :(
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

En av de första sakerna man lär sig i Linux är att nästan allt är läsbara filer som man kan redigera.

Det finns hundrtals sätt att redigera text på i Linux och man kan installera dussintals textredigerare.

Men jag tänkte ägna ett par sekunder åt de redigerare som är förinstallerade i nästan alla linuxdistros: Nano, Vi och Vim.

Nano är min favorit för den är så enkel: man går runt i dokumentet med piltangenterna, raderar, ändrar, skriver text och avslutar programmet med ctrl+x. Har man gjort ändringar i programmet kommer det fråga om man vill spara ändringarna när man trycker ctrl+x. Man kan även ändra namnet på filen då.

Vi och Vim är INTE mina favoriter.
Vi är en förkortning av Visual och Vim är en förkortning av Vi iMproved.
Första gången en nybörjare öppnar Vi eller Vim kommer man antagligen inte kunna ändra eller skriva någonting, inte spara, eller ens stänga programmet. Det brukar sluta med att man får stänga ner hela terminalfönstret och börja om.
Men ibland så måste man använda de programmen, så här är de absoluta minikunskaperna för att överleva ett möte med Vi och Vim.

Låt oss börja titta på en vanlig ordbehandlare, t.ex. Libre Office Writer:
Det är bara att börja skriva en text med tangentbordet; låt oss kalla detta för tgb-läget.
Sedan vill man ändra något, t.ex. göra ett ord i fet stil. Då släpper man tangentbordet, tar musen, markerar ett ord, klickar på F för fet stil; låt oss kalla detta för mus-läget.

Vi och Vim börjar i mus-läget och nästan varenda tangent är ett kommando som gör något.
För att kunna skriva något, d.v.s. hamna i tgb-läget, måste man använda rätt kommando.
Och när man skrivit färdigt måste man använda rätt kommando för att komma tillbaka till mus-läget.

###

Låt oss börja med att skapa en ny fil med nano, i det här exemplet kallar jag filen för test.

Kod: Markera allt

$ nano test
skriv ett par rader skräptext, t.ex.

Kod: Markera allt

qwer
asdf
zxcv
Längst ner till vänster i nano står det:
^X Exit
Det betyder att man trycker ctrl+x för att avsluta nano. Tryck ctrl+x.
Nano frågar om man vill spara ändringarna, tryck y för Yes.
Nano frågar vad filen ska heta, tryck Retur om du är nöjd med namnet.
Öppna filen med Vi eller Vim (det spelar ingen roll vad du väljer).

Kod: Markera allt

$ vi test
Börja gå runt i dokumentet:
h = vänster
j = ner
k = upp
l = höger
(man kan gå runt med piltangenterna med)

Prova ta bort text:
x = tar bort tecknet där markören blinkar.

Prova att skriva text:
i = insert; börja skriva där markören är.
Esc = lämna insert-läget.

Prova att spara och/eller avsluta
:w = spara
:q = avsluta om man inte ändrat något
:wq = spara och avsluta
:q! = avsluta utan att spara
Observera att man börjar med att skriva kolon och avslutar med att trycka Retur.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Neofetch är ett litet trevligt program som visar massor med info om datorn; som vilken linuxkärna man har, vilken version av desktop, hur många paket man har installerade, vilket skal man använder, processor, grafikprocessor, RAM-minne, o.s.v. Läser man igenom manualen kan man få det att visa ännu mer info, som temperatur i datorn o.s.v.
Ingen info är unik, men att samla all info om datorn som neofetch gör kräver en hel del tid och arbete.

Kod: Markera allt

$ sudo apt update && sudo apt install neofetch
###

Många brukar dessutom göra så neofetch visas varje gång man startar terminalen.

Kod: Markera allt

$ nano ~/.bashrc
skrolla längst ner i filen och lägg till en rad där det står neofetch, tryck sedan ctrl+x och spar filen.
Nästa gång man öppnar terminalen kommer neofetch visas.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Kul för nybörjare med bash i terminalen

Inlägg av Osprey »

Jättebra initiativ att försöka få alla att använda terminalen, förutom att det finns en hel del kul där, så är det fortfarande det absolut mest effektiva sättet att använda Linux och hålla koll på vad som händer.... :)

Nej, jag menar inte att man ska köra allting i terminalen, men när någonting krånglar så kan man "dyka ned under ytan" och verkligen kan se vad som händer, det öppnar ett helt annat perspektiv...

Att "cmatrix" är jättefint och att apt-get gillar kossor har anth redan förklarat, men vill man få ut mer av kossorna så kan man köra:

Kod: Markera allt

sudo apt-get install cowsay
sudo apt-get install fortune-mod
PATH=$PATH:/usr/games
cowsay $(fortune)
...och det där med "PATH=$PATH:/usr/games", kan man med fördel lägga in i "~/.bashrc", så slipper man att ange det varje gång man loggar in... :)

Prova "cowsay $(fortune)" några gånger, för kossan säger olika saker.... ;)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Hollywood är ett program gör att man ser ut som en hacker från en hollywoodfilm

Kod: Markera allt

$ sudo apt update && sudo apt install hollywood
Det är bara att skriva hollywood så startar programmet.
Och man avslutar programmet genom att trycka ctrl+c, TVÅ gånger.

Hollywood installerar ett program som heter byobu, som i sin tur installerar ett annat program som heter tmux.

Byobu och tmux är Terminal MUltipleXers, d.v.s. de tillåter flera terminalanslutningar samtidigt. Det är en funktion som mest är användbar för personer som arbetar mot flera linuxservrar samtidigt och inte något som vanliga hemanvändare brukar ägna sig åt.

De tillåter även split screen, vilket GNOME Terminal inte har.
I GNOME Terminal kan man öppna fler fönster med ctrl+shift+n och stänga dem med ctrl+shift+q.
Man kan även öppna flera flikar (ungefär som i en webbläsare) med ctrl+shift+t, och stänga dem med ctrl+shift+w.

Byobu kan ses som en mer avancerad form av tmux, då det kräver att tmux är installerat och det har fler funktioner än tmux.

Både byobu och tmux fungerar som plugins till den vanliga terminalen (GNOME Terminal om man kör Ubuntu, Konsole om man kör Kubuntu, o.s.v.).

Man startar tmux och byobu genom att skriva tmux eller byobu i terminalen.
När tmux körs har man en grön rand längst ner i terminalen.
När byobu körs har man massor med info längst ner i terminalen; som processorhastighet, RAM-minne, hårddiskutrymme o.s.v.
Man stänger bägge genom att skriva exit eller trycka ctrl+d.

I tmux används kommandot ctrl+b och sedan någon tangent.
För att få ett till terminalfönster till höger trycker man man ctrl+b %.
För att få ett till terminalfönster under trycker man ctrl+b ".
För att se alla kortkommandon skriver man ctrl+b ?.

I byobu används flera tangent-kombinationer.
För att få ett till terminalfönster till höger trycker man ctrl+f2.
För att få ett till terminalfönster under trycker man shift+f2.
För att se alla kortkommandon trycker man f1; då får man upp en meny där man kan gå runt med piltangenterna och tab-tangenten. Glöm inte bort Tab, annars kan man inte lämna menyn. Man väljer saker genom att trycka Retur eller mellanslag. Väljer man "Toggle status notifications kan man ställa in vad som ska visas längst ner i terminalen; man kan få den att visa saker som processortemperatur, fläkthastighet och många andra saker.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Ett av de första tricks man lär sig i terminalen är att man kan återanvända tidigare kommandon genom att trycka upp-pil, vilket kan spara tid om man ska skriva långa kommandon igen.
Det är en funktion av ett program som heter history.
Skriver man history och trycker retur får man en lista på alla kommandon man använt, numrerade från första till sista kommandot man använt.
Har man använt väldigt många kommandon kan det vara enklare att använda less:

Kod: Markera allt

$ less history
Kom ihåg att man avslutar less med q.
Använder man history och ser att det är det 123:e kommandot man vill använda räcker det att skriva !123.
Och vill man använda det senaste kommandot skriver man två utropstecken: !!

Säg att man ska uppdatera, men glömmer sudo:

Kod: Markera allt

$ apt update
Antingen kan man trycka upp-pil, Home-tangenten, skriva sudo och trycka Retur.
Eller så skriver man sudo !!

Kod: Markera allt

$ sudo !!
edit: förtydligande kodexempel
Senast redigerad av 1 anth, redigerad totalt 10 gånger.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Om upp-pil är det första tricket man lär sig i terminalen så är Tab det andra.
Tab-tangenten fyller i det man börjat skriva.

Skriv:

Kod: Markera allt

$ sudo apt upd
och tryck sedan Tab, så kommer terminalen skriva update.

Skriv:

Kod: Markera allt

$ cd ~/Pi
och tryck sedan Tab, så kommer derminalen skriva Pictures.
Tänk på att terminalen skiljer på stora och små bokstäver. Hade man skrivit ~/pi hade terminalen inte hittat något eftersom Pictures stavas med stort P.

Om det inte händer någonting när man trycker Tab beror det på att det finns flera alternativ, då trycker man Tab en gång till så får man se alternativen och kan skriva någon bokstav till innan man trycker Tab.

Skriv:

Kod: Markera allt

$ sudo apt up
nu händer ingenting när man trycker Tab. Tryck Tab igen och terminalen kommer att skriva: update upgrade. Lägg till ett d eller g beroende på vad du vill göra och tryck Tab.

Skriv:

Kod: Markera allt

$ cd ~/Do
nu händer ingenting när man trycker Tab. Tryck Tab igen och terminalen kommer att skriva: /Documents /Downloads. Lägg till ett c eller w beroende påvad du vill göra och tryck Tab.
LennartL
Inlägg: 254
Blev medlem: 20 mar 2012, 10:39
OS: Linux Mint
Utgåva: Vet inte/ingen utgåva passar
Ort: Granrisvägen 25A Örebro

Re: Kul för nybörjare med bash i terminalen

Inlägg av LennartL »

Kul med terminalen. Jag kopierar all text på denna sidan. Bra att ha!
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Osprey skrev: sudo apt-get install fortune-mod
PATH=$PATH:/usr/games
cowsay $(fortune)[/code]...och det där med "PATH=$PATH:/usr/games", kan man med fördel lägga in i "~/.bashrc", så slipper man att ange det varje gång man loggar in... :)

Prova "cowsay $(fortune)" några gånger, för kossan säger olika saker.... ;)
Fortune är ett gammalt program; jag hittar referenser till Amiga när jag googlar.

Fortune verkar fungera lite olika på Ubuntu och Mint. På Ubuntu verkar jag inte behöva specificera $PATH

Alla fortune-citat ligger i olika "databaser"
För att se vilken databas ett citat kommer ifrån skriver man:

Kod: Markera allt

$ fortune -c
För att se vilka databaser som finns:

Kod: Markera allt

$ ls /usr/share/games/fortunes

Det borde finnas: fortunes, litterature, riddles.
Vill man ha ett citat från litterature skriver man:

Kod: Markera allt

$ fortune litterature
Specificerar man inte får man ett citat från slumpmässig databas.

Det går utmärkt att se vilka citat som finns i en databas:

Kod: Markera allt

$ less /usr/share/games/fortunes/litterature
Man kan skapa sin egen databas, här är ett exempel med svenska ordspråk, öppna nano:

Kod: Markera allt

$ sudo nano /usr/share/games/fortunes/ordspråk
Hitta några bra citat, t.ex. från: https://sv.wikipedia.org/wiki/Lista_%C3 ... spr%C3%A5k
Skriv ner några och separera dem med %:

Kod: Markera allt

Alla goda ting är tre
%
Borta bra, men hemma bäst
Spar (ctrl+o) och stäng (ctrl+x).
Gör om textfilen till en databas:

Kod: Markera allt

$ sudo strfile -c % ordspråk ordspråk.dat
testa att det fungerar:

Kod: Markera allt

$ fortune ordspråk
Det finns ett program som heter cookietool för att redigera datafilerna, men jag får det inte att fungera (jag ägnade c:a 60 sekunder på att få igång det och misslyckades) - någon annan kanske kommer på hur det fungerar?

Det finns givetvis massor med färdiga filer om man inte orkar göra dem själv, prova:

Kod: Markera allt

$ sudo apt install fortunes
$ ls /usr/share/games/fortunes
Är man inte alltför "politiskt korrekt" finns det givetvis några filer med "offensive language", som lägger sig i en egen katalog som heter "off", prova:

Kod: Markera allt

$ sudo apt install fortunes-off
$ ls /usr/share/games/fortunes/off
För att få vanliga citat:
fortune
Alla citat:
fortune -a
"Offensive":
fortune -o
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Osprey skrev:vill man få ut mer av kossorna så kan man köra:

Kod: Markera allt

sudo apt-get install cowsay
Låt oss kolla på titta lite mer på cowsay

Att installera cowsay:

Kod: Markera allt

$ sudo apt update
$ sudo apt install cowsay
Testa att programmet fungerar:

Kod: Markera allt

$ cowsay hej
Man har även fått ett annat program på köpet: cowthink (det är inte så stor skillnad mellan dem).

Kod: Markera allt

$ codethink jag tänker, alltså finns jag
Om du har fortune instalerat (se ovanstående inlägg) kan du prova:

Kod: Markera allt

$ fortune | cowsay
eller

Kod: Markera allt

$ cowsay $(fortune)
De gör samma sak.

Kons ögon är normalt oo, men man kan göra egna ögon med -e

Kod: Markera allt

cowsay -e o~ vill du följa med hem och idissla?
Observera att programmet förväntar sig två tecken efter -e. Skriver man -e xyz får kon xy som ögon. Skriver man -e x får kon bara ett öga och hela raden blir ett tecken kortare.

Man kan även ge kon en tunga med -T, här får den två tungor:

Kod: Markera allt

$ cowsay -T UU Blekansiktet talar med kluven tunga.
Prova att ge kon en tunga. Även här förväntar sig programmet att tungan är två tecken lång och man kan inte använda mellanslag, för mellanslag används för att skilja olika kommandon åt.
Man måste använda sig av en escape character:
https://en.wikipedia.org/wiki/Escape_character

Säg att vi vill skriva ut något i terminalen:

Kod: Markera allt

$ echo "hejsan hoppsan"
Säg att vi vill skriva ut:
Det där var "listigt" gjort.

Kod: Markera allt

$ echo "Det där var "listigt" gjort."
Det fungerar inte.
Vi måste tala om att vi VILL skriva ut de där citationstecknen. Det gör man med backslash \.

Kod: Markera allt

$ echo "Det där var \"listigt\" gjort."
Tillbaks till kotungan:

Kod: Markera allt

$ cowsay -T \ U Pilutta dig.
Det finns ett antal fördefinierade kossor, men då kan man inte använda -e och -T:
-b borg
-d dead
-g greedy
-p paranoia
-s stoned
-t tired
-w wired
-y youth

Kod: Markera allt

$ cowsay -b We are the Borg. Lower your shields and surrender your ships. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile.
Det finns även andra djur än kor, här är en lista:

Kod: Markera allt

$ cowsay -l
För att använda ett annat djur använder man -f

Kod: Markera allt

$ cowsay -f dragon Förlåt, jag visste inte att det var din ko jag åt upp.
Alla djur finns här:

Kod: Markera allt

$ ls -l /usr/share/cowsay/cows
Den vanliga kon heter default och ser ut så här:

Kod: Markera allt

$ cat /usr/share/cowsay/cows/default.cow
Det är vanlig ASCII-konst och ni kan säkert göra era egna djur om ni vill.

Det går att se alla djur med det här kommandot:

Kod: Markera allt

$ for f in /usr/share/cowsay/cows/*; do cowsay -f "${f:23:-4}" "${f:23:-4}"; done
Det är inte så komplicerat som det ser ut.
for; do; done är en loop.
for f in /usr/share/cowsay/cows/* går igenom alla filer under cows.
För att förstå vad som händer sedan provar vi med något enklare:

Kod: Markera allt

$ for f in /usr/share/cowsay/cows/*; do echo "${f}"; done
Så variabeln f blir i tur och ordning sökvägen till varje fil i cows.

Vi räknar så här: 1, 2, 3,... och det är självklart att det tredje talet är 3.
Datorer brukar börja med 0: 0, 1, 2 - så för en dator är tredje talet 2.
Kolonet talar om var man ska börja.
"${f:0}" blir /usr/share/cowsay/cows/
"${f:1}" blir usr/share/cowsay/cows/
"${f:2}" blir sr/share/cowsay/cows/
Ni kan själva räkna ut var man börjar när man skriver "${f:23}".
Och :-4 är var man ska sluta. Ändelsen ".cow" är 4 tecken lång, vill vi inte visa den skriver vi :-4.

Det ska även finnas offensive, "barnförbjudna", bilder (om nu ASCII-konst kan bli barnförbjuden)

Kod: Markera allt

$ sudo apt install cowsay-off
Bilderna ska dyka upp i samma katalog som övriga bilder: /usr/share/cowsay/cows/
men jag får det inte att fungera.

Det finns även grafisk ko:

Kod: Markera allt

$ sudo apt install xcowsay
$ xcowsay hej
X-et i början brukar betyda Xorg.

Och så finns My Little Pony, men det kräver snap:

Kod: Markera allt

$ sudo apt update
$ sudo apt install snapd
$ sudo snap install ponysay
$ ponysay hej
$ ponysay.ponythink hej
Ni får själva gå igenom

Kod: Markera allt

$ man ponysay
för nu orkar jag inte skriva mer - men det finns nog ett hundratal olika ponyer.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Kul för nybörjare med bash i terminalen

Inlägg av Osprey »

För att nu prata bash och terminal.... ;D

Den gamla klassiska fork-bomben:

Kod: Markera allt

:(){ :|: & };:
...kör den aldrig, för datorn kommer att tvärhänga sig..... ;)
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Det här blev fruktansvärt mycket text.
Säg till om något blev fel.
Det värsta är att nedanstående lista antagligen inte är komplett.
Känner ni till fler key bindings får ni lägga till dem.
anth skrev:En irriterande sak för nybörjare är att ctrl+c och ctrl+v för klipp/klistra inte fungerar i terminalen.
Det har att göra med att ctrl+c och ctrl+v kommer från Microsoft på 1980-talet och terminalen kommer från UNIX på 1970-talet.
Den verkliga frågan är varför Microsoft envisdes med att göra annorlunda än UNIX. :)
Men det går att klippa och klistra i terminalen:
Antingen så högerklickar man och väljer copy/paste.
Eller så använder man ctrl+shift+c och ctrl+shift+v.
Observera att det måste vara ctrl+shift, inte shift+ctrl - de är två olika saker i terminalen.
Först en rättelse:
Jag tror inte att Microsoft började använda ctrl+v/x/c förrän 1990 när Windows släpptes (det var 30-40 år sedan, jag kommer inte ihåg).
Däremot började Apple använda ctrl+v/x/c runt 1980 när de släppte sin dator Lisa.
Så Microsoft snodde Apples idé?
Nja. Apple snodde idén från Xerox, som utvecklade det grafiska gränssnittet under mitten av 1970-talet.
Bill Gates säger att eftersom Apple snodde först är Microsofts stöld inte lika allvarlig som Apples stöld.
Så både MacOS och Windows grafiska utseende och ctrl+c kommer från kopieringsmaskiner. :)

OK, så Unix var först. Det fanns i 2 decennier innan Windows kom.
Kunde inte Unix-folket bara erkänna att ctrl+c är ett ganska bra kommando? Varför krångla med ctrl+shift+c?
För att Unix i 20 års tid redan använt ctrl+c till andra saker.
Faktum är att ctrl+c i Linux gör exakt samma sak som det gjorde i gamla MS-DOS (och fortfarande gör i CMD i Windows).

Låt oss gå igenom terminalens snabbkommandon och se vad ctrl (och alt)-tangenten egentligen används till:

CTRL+C eller ALT+C
Stoppar ett program. På engelska säger man kill.
Testa att skriva: ping 127.0.0.1
Ping är antagligen det första nätkommandot man lär sig. Det skickar en signal till en annan dator för att se om den svarar (för att se om den är uppe).
Det är enkelt sätt att se om man har internet är att pinga någon av de stora DNS:erna, som googles 8.8.8.8 eller cloudflares 1.1.1.1, alternativt kan man pinga sunet.se (den dagen sunet.se ligger nere har Sverige inget internet).
Alternativt så pingar man sin gateway för att se om ens eget nätverk fungerar. För att se vilken gateway ens nätverk har skriver man ip route: Gatewayen är ip-adressen efter default.
IP-adresssen 127.0.0.1 är datorn man arbetar på, datorn pingar sig själv och stör ingen annan på nätet.
There's no place like 127.0.0.1. :)
Ni som är vana vid ping i Windows vet att det pingar tre gånger för att sedan sluta. Det gör inte Linux, det bara fortsätter i evighet till man trycker ctrl+c.
För att få Linux att bete sig som Windows skriver man ping -c 3 127.0.0.1.
För att få Windows att bete sig som Linux skriver man ping /t 127.0.0.1 - och man måste trycka ctrl+c för att avbryta. Se, Windows beter sig precis som Linux. :)

CTRL+Z
Skickar en process till bakgrunden.
Dra igång ping: ping 127.0.0.1, tryck sedan ctrl+z och ping försvinner.
Skriv: jobs, så ligger ping där som jobb 1.
Skriv: fg 1, så kommer jobb 1 (ping) att hamna i förgrunden igen. Avbryt med ctrl+c när du tröttnar.

CTRL+D
Stänger terminalen. Samma sak som att skriva exit.
Det är faktiskt användbarare än man tror.
När man börjar göra mer avancerade saker i terminalen är det vanligt att man öppnar flera sessioner efter varandra, då är ctrl+d smidigt när man snabbt ska backa ut.

CTRL+L
Rensar terminalen. Det är inte sak som att skriva kommandot clear.
clear tar bort allt.
ctrl+l flyttar bara upp allting. Man kommer fortfarande åt allt om man skrollar uppåt i terminalen.

CTRL+S och CTRL+Q
ctrls stannar och ctrl+q startar en process, testa med ping.

CTRL+A
Tar en till början av raden, samma sak som att trycka Home.

CTRL+E
Tar en till slutet av raden, samma sak som att trycka End.

ALT+B
Backa ett ord, d.v.s. gå ett ord till vänster.

CTRL+B
Backa ett steg, samma sak som att trycka Vänsterpil.

ALT+F
Gå fram ett ord, d.v.s. gå ett ord till höger.

CTRL+F
Gå fram ett steg, samma sak som att trycka Högerpil.

CTRL+XX
Håll nere ctrl-tangenten och tryck x två gånger. Första gången flyttas man till början av raden (som ctrl+a). Andra gången flyttas man tillbaka där man var från början.

CTRL+D
Raderar tecknet som markören blinkar över, samma som att trycka Delete.
Men användes inte ctrl+d för att stänga terminalen?
Jo, men samma kommando kan användas till olika saker beroende på vad man gör. Redigerar man en textrad raderar ctrl+d ett tecken, annars stänger det terminalen.

ALT+D
Raderar allt efter markören.

ALT+H
Raderar tecknet framför (till vänster om) markören, samma som att trycka Backspace.

ALT+T eller ESC+T
Byt plats på nuvarande och föregående ord.

CTRL+T
Byt plats på nuvarande och föregående tecken. Något jag borde använda då jag otfa silnter mde fignarna. :)

CTRL+W
Klipper ut ordet före (till vänster om markören).

CTRL+K
Klipper ut allt efter (till höger om) markören.
K står för Kill, det är därför man använder ctrl+c och inte k för att döda processer.

CTRL+U
KLipper ut allt före (till vänster om) markören.

CTRL+Y
Klistrar in (yank) det man klippt ut.

Viktigt: Ni är antagligen vana vid de vanliga ctrl+c/x/v och att klipp och klistra till/från klippbordet. Ni kanske t.o.m. har installerat någon gnome-extension som gör att man kan se vad som finns i clipboard. Terminalen använder dock inte samma klippbord som resten av datorn.
Man kan Man kan inte använda ctrl+c någon annanstans i datorn och sedan använda ctrl+y i terminalen.
Man kan inte använda ctrl+w i terminalen och klistra in det någon annanstans i datorn med CTRL+V.

ALT+C
Omvandlar bokstaven under markören till versal, markören flyttar till slutet av ordet.

ALT+U
Alla bokstäver från markören till slutet av ordet blir upper case (versaler).

ALT+L
Alla bokstäver från markören till slutet av ordet blir lower case (gemener).

CTRL+P
Previous, visar tidigare kommando, samma som Pil upp.

CTRL+N
Next, visar senare komando, samma som Pil ned.

CTRL+R
Låter en söka bland tidigare kommandon. Säg att du vet att du skrev sudu apt update för någon timme sedan, då kan man trycka ctrl+r och börja skriva sudo, så kommer datorn visa senaste kommandot som matchar stavningen.
Tryck Enter eller ctrl+o för att köra det visade kommandot.
Tryck Esc för att markören ska hamna i början på raden om du vill redigera kommandot innan du kör det.

CTRL+S
Samma som ctrl+r, men söker från början, inte slutet, i history.

!!
Skriver senaste kommandot.
Skriver man apt update ovh kommer på att man glömt sudo kan man skriva sudo !!.

!$
Skriver senaste argumentet.
Skriver man ls /etc och kommer på att man även vill gå det skriver man cd !$

ALT+.
Observera att man trycker alt och punkt samtidigt.
Gör samma sak som !$, men är mycket lättare att skriva på svenskt tangentbord och fortsätter man trycka alt+. backar man till näst senaste argumentet o.s.v.

ALT+R
Ångrar/återställer alla ändringar man gjort på ett kommando i history.

CTRL+M eller CTRL+J
Samma som Enter eller Retur

CTRL+V
Insert Verbatim, skriver bokstavligen nästa tecken.
Ex: tryck ctrl+v, tryck sedan Enter, terminalen kommer att skriva ^M.
Och vad gör ctrl+m? Jo, det är samma sak som Enter.


CTRL+_
På ett svenskt tangentbord blir det ctrl+shift+-.
Undo, d.v.s. ångra senaste knapptryckningen, man kan ångra flera steg.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Om något kraschar i Windows trycker man CTRL+ALT+DEL och väljer Task Manager / Aktivitetshanteraren:
Antingen väljer man "Mindre info", högerklickar på ett program och väljer "Avsluta aktivitet".
Eller så väljer man "Mer info", högerklickar på en process och väljer "Avsluta aktivitet".

Hur gör man samma sak i Linux?
Alla distros har något liknande Windows Task Manager. I Ubuntu heter det GNOME System Monitor.
Prova att starta det:
1. Klicka på the grid button, de nio vita punkterna nere till vänster.
2. Börja skriv "system monitor" i rutan övanför ikonerna.
Högst upp i System Monitor kan man välja att visa Processes, Resources, File Systems; välj Processes.
Här kan man högerklicka på en process och välja "Kill" av för att avsluta.
Prova att starta ett programm, t.ex. texteditorn gedit, leta reda på den bland processerna och döda programmet (se till att spara alla texter du skrivit innan du dödar programmet).

Hur gör man samma sak i terminalen?
Det vanliga sättet att öppna terminalen är CTRL+ALT+T, men jag tänkte vi skulle öppna en TTY istället.
Terminalen öppnas i ett fönster och när du är färdig kan du stänga det, precis som vilket annat program som helst.
En TTY öppnas "utanför" skrivbordet (GMOME, KDE, Xfce,...); hela skärmen blir svart förutom en liten blinkande markör högst upp till vänster.
Om terminalen är läskig är TTY rena mardrömmen. :)

Innan vi börjar använda TTYn måste vi lära oss hur vi tar oss dit OCH (viktigast av allt) hur vi tar oss därifrån.
Hur man tar sig till en TTY kan skilja sig lite mellan olika distros. Jag ska förklara hur man gör i Ubuntu, du får ta reda på hur man gör i din distro innan du börjar.
Det vanliga sättet är att trycka CTRL+ALT+Funktionstangent. T.ex. öppnar CTRL+ALT+F3 TTY3 och CTRL+ALT+F4 TTY4 o.s.v.
Det är fullt möjligt att vara inloggad i flera TTYer samtidigt om man skulle vilja det.
För att komma tillbaka till skrivbordet trycker man CTRL+ALT+F2. Man kan säga att skrivbordet använder TTY2.

Trycker man CTRL+ALT+F1 hamnar man på inloggningssidan. Observera att man inte är utloggad, utan man kan fortfarande trycka CTRL+ALT+F2 för att komma till skrivbordet.
Om du bytt bakgrundsbild från Ubuntus standardbild i lila så vet du att när man sätter på datorn har inloggningsidan en lila bakgrund, men lämnar man datorn i 5 minuter (eller vad man ställt in tiden för att blir utloggad) får inloggningssidan samma färg som skrivbordets bakgrundsbild.
inloggningssidan på CTRL+ALT+F1 har alltid lila bakgrund.
Det som händer när man slår på datorn är att man hamnar på TTY1 och när man loggat in skickas man vidare till TTY2 där skrivbordet är.

Varför skulle någon vid sina sinnens fulla bruk vilja använda en TTY när man kan använda terminalen???
Ibland kraschar Linux så mycket att man inte ens kan öppna terminalen, men CTRL+ALT+F3 brukar fortfarande fungera.
OBS! Ibland kraschar Linux så hårt att man inte ens kommer åt TTYerna, då måste man stänga av datorn.

TTY-utseendet är så det ser ut på en Linux-server som inte har något skrivbord.

Det första som möter en i TTYn är: "Login:". Har ska man skriva sitt användarnamn och lösenord. Man kan inte göra något annat. När man väl loggat in fungerar TTYn som en terminal.

Vill man starta om eller stänga av datorn finns det flera kommandon: halt, poweroff, reboot, shutdown. Givetvis måste man använda sudo, ex:
$ sudo reboot
eller:
$ sudo shutdown
Ni får själva räkna ut vilket kommando som gör vad. :)

I grunden är de nästan samma kommando, man kan därför även skriva så här:
$ sudo poweroff --reboot
eller:
$ sudo halt --shutdown
Alla fyra kommandona kan kombineras som man vill.

Eftersom Linux är byggt som UNIX, som är tänkt att användas av flera användare, fungerar kommandona inte riktigt som man tror.
Efter man skrivit kommandona väntar datorn i en minut och skickar ett meddelande till alla andra inloggade användare att datorn stängs av eller startas om, så de hinner logga ut.
För en vanlig hemanvändare är detta lite onödigt.
Men säg att man har två användarkonton på datorn och loggar in med den ena användaren i TTY3 och den andra i TTY4; om då man använder shutdown i TTY3 och sedan går över till TTY4 kommer man se ett meddelande att datorn ska stängas av.

Man kan välja när man ska boota om eller stänga av genom att skriva ett klockslag, 12:30, eller efter ett visst antal minuter: 25, men vanligtvis vill man göra det på en gång, då skriver man now eller 0. Ex:
$ sudo shutdown now
$ sudo reboot 0

Ibland vill man tvinga datorn att starta om, då använder man --force. Och ibland vill man verkligen tvinga datorn, då skriver man --force --force. Ex:
$ sudo shutdown --force
$ sudo reboot --force --force
Observera att --force automatiskt stänger ner på en gång, så man behöver inte skriva now.

--shutdown kan förkortas med -s, --reboot med -r och --force med -f.

Ibland kanske det bara är ett program som hängt sig, då räcker det med att stänga av det programmet med killall. Har t.ex. firefox hängt sig skriver man:
$ killall firefox
Detta förutsätter att man vet vad programmen heter, som att texteditorn heter gedit och filhanteraren heter nautilus.

Och ibland vill man bara döda en process, då använder man kill, ofta med växeln -9 som betyder döda allt som kan dödas. Ex:
$ kill -9 1234

De där fyra sista siffrorna är processnumret, PID, men hur får man reda på det?
Man använder sig av top som liknar task manager och system monitor.
De flesta använder antagligen något mer avancerat som htop - men det förtjänar ett eget inlägg. Har man htop går det dock utmärkt att köras i en TTY för det är ett terminalprogram.
Det är bara att skriva top för att starta:
$ top
Man kan sedan gå upp och ner med piltangenterna i processlistan.
Precis som less och man avslutar man top genom att trycka q.

Processnumret står längst till vänster och namnet på processen står längst till höger.
Två andra kolumner av intresse är:
%CPU som visar hur mycket av processorn som processen använder.
%MEM som visar hur mycket minne processen använder.

Listan kan vara lite ryckig då processerna är sorterade efter %CPU, som varierar med tiden. För att få en lite lugnare lista kan man sortera efter processnummer:
$ top -o PID
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

anth skrev:I grunden är de nästan samma kommando, man kan därför även skriva så här:
$ sudo poweroff --reboot
eller:
$ sudo halt --shutdown
Alla fyra kommandona kan kombineras som man vill.

[...]

Ibland vill man tvinga datorn att starta om, då använder man --force. Och ibland vill man verkligen tvinga datorn, då skriver man --force --force. Ex:
$ sudo shutdown --force
$ sudo reboot --force --force
Observera att --force automatiskt stänger ner på en gång, så man behöver inte skriva now.
Rättelse:
Det ÄR skillnad på shutdown och reboot.
Shutdown har inte --force.
Man får skriva så här istället:
$ reboot --shutdown --force

Sedan ett par tangentkombinationer som jag hittade som har med reboot och kill att göra.

ALT + PrtSc/SysRq + R E I S U B :
unRaw : take keyboard control from X (har ingen aning om vad det gör)
tErminate : send SIGTERM to ALL processes to gracefully shutdown (som att använda kill utan -9)
kIll : send SIGKILL to ALL processes to forcefully shutdown (som att använda kill med -9)
Sync : flush data to disk (ungefär som när man väljer eject USB, men till ALLA diskar)
Unmount: koppla loss alla diskar (ALLA diskar, inklusive de interna diskarna)
reBoot : (starta om datorn NU)

PrtSc/SysRq brukar sitta ovanför Insert-tangenten (men det kan variera mellan olika tangentbort)

Ex: ALT+PrtSc+B startar om datorn på en gång.
Användarvisningsbild
Osprey
Inlägg: 6310
Blev medlem: 06 apr 2008, 00:09
OS: Ubuntu
Ort: Göteborg/Mölndal/Falkenberg
Kontakt:

Re: Kul för nybörjare med bash i terminalen

Inlägg av Osprey »

anth skrev:En TTY öppnas "utanför" skrivbordet (GMOME, KDE, Xfce,...); hela skärmen blir svart förutom en liten blinkande markör högst upp till vänster.
Om terminalen är läskig är TTY rena mardrömmen. :)
Vad betyder "mar"..? jag tycker att den är rena "drömmen".... ;D

Och det man öppnar numera är ju egentligen en "console", dvs. en terminal som är direktansluten till operativet, utan att man behöver en massa grafiskt "bjäfs".... ;D ;D

När jag började med Unix c:a 1984 (som är grunden till Linux), så fanns ju bara /dev/tty/nummer, något grafiskt gränssnitt fanns ju inte. På den tiden var också /dev/console lite speciell och den satt ofta på en speciell port med 9-polig D-sub på datorn (nu pratar jag om datorer stora som ungfär stora som 6 tvättmaskiner). På den kunde man alltid nå datorn, även när den var haltad och man kunde både se och styra hela boot-processen...

Ofta körde vi ju ofta det på en DECwriter också, dvs. en terminal som saknade skärm, men som istället hade en pappersremsa... allt som skrivits ut, skulle sedan lagras i ett arkiv, som "console utskrifter"....

Himla bra massa tips du skriver, till alla som ännu inte vågar ge sig ut i terminalen!! :) ;) :D
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Osprey skrev:Himla bra massa tips du skriver, till alla som ännu inte vågar ge sig ut i terminalen!! :) ;) :D
Förutom att jag tycker om "learning by doing" så tycker jag att det bästa sättet att lära sig något är att lära ut till andra - för man kan inte lära ut förrän man förstår själv.

Det betyder att ungefär hälften av sakerna jag skriver om här i tråden är saker jag själv lärt mig och testat bara en liten stund innan jag postar inlägget.
Även om jag försöker testa allt jag skriver om så blir det ibland oundvikligen fel, det är därför det känns bra att veta att erfarna forumiter, som du, faktiskt läser och förhoppningsvis rättar mig när det blir fel. :)
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Jag vet inte vad ni har för väder, men det är bara regn hos mig.
Då kan det vara kul att sätta färg på tillvaron med lolcat:

Kod: Markera allt

sudo apt install lolcat
Testa med:

Kod: Markera allt

echo "Flygande bäckasiner söka hwila på mjuka tuvor" | lolcat
Om du har fortune eller cowsay installerade kan du testa med:
$ fortune | lolcat
$ cowsay | lolcat
$ fortune | cowsay | lolcat

Observera att man inte kan skriva så här:
$ lolcat "Flygande bäckasiner söka hwila på mjuka tuvor"
för lolcat förväntar sig en textfil.
Har man en textfil kan man skriva:
$ lolcat textfil

Låt oss skapa en textfil.
Normalt använder vi Gedit, Nano, Vim, eller någon annan texteditor. Låt oss prova något nytt.
Säg att vi har en kort text:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem Ipsum har varit standard när man testar text i 500 år. Den skrevs ursprungligen av Cicero.
Vi kan skriva ut texten på skärmen:

Kod: Markera allt

echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
Men vi kan också skicka texten direkt till en fil:

Kod: Markera allt

echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." > lorem_ipsum
Vi kan sedan skriva ut filen:
$ cat lorem_ipsum
Observera att ">" inte bara skickar texten till filen, den ersätter allt tidigare innehåll med texten. Säg att du skapat lorem_ipsum-filen ovan, testa:
$ echo "Muu" > lorem_ipsum
$ cat lorem_ipsum

Om man inte vill skriva över den gamla texten, utan bara vill lägga till den nya använder man ">>":

Kod: Markera allt

echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." >> lorem_ipsum
Nu när vi har en textfil kan vi testa:
$ lolcat lorem_ipsum

cat är en förkortning av concatenate, att sätta ihop saker. Man kan skriva ut flera filer:
$ cat lorem_ipsum lorem_ipsum

Lol i lolcat är förkortningen av "laugh out loud", men cat har inget med katter att göra, utan syftar på kommandot cat:
$ lolcat lorem_ipsum lorem_ipsum

Man kan även manipulera färgerna:
-p är spread som brukar ligga mellan 0.1 och 1000. Default är 3.
-F är frequence och brukar ligga mellan 0.0001 och 2. Default är 0.1.
-S är seed, över 0 börjar man med samma färg, default är 0 och då slumpas vilken färg man börjar med.
-a är animate
-d är duration of animation, standard är 12, talar om hur många gånger man ska animera.
-s är speed of animation, standard är 20, ju högre desto långsammare.

De här gör samma sak:

$ lolcat lorem_ipsum
$ lolcat -p 3 -F 0.1 -S 0 lorem_ipsum


Ska man animera skriver man så här:
lolcat -a -d 12 -s 20 lorem_ipsum

Läs mer i
$ man lolcat.

Edit; plockade bort $ i kodexemplen för att det ska vara lättare att kopiera lorem ipsum.
Användarvisningsbild
anth
Inlägg: 505
Blev medlem: 22 aug 2019, 15:35
OS: Ubuntu
Utgåva: 23.04 Lunar Lobster

Re: Kul för nybörjare med bash i terminalen

Inlägg av anth »

Jag har redan berättat om System Monitor och top.
Jag lovade också att berätta om htop.

Det finns dussintals program liknande System Monitor, men i den här tråden är vi bara intresserade av vilka som kan köras i terminalen.
Det finns fortfarande runt ett dusssin program liknande top, så jag begränsade mig till de som kan installeras med apt: atop, bashtop, htop.
Samtliga (top/atop/bashtop/htop) avslutas genom att man trycker q.

top följer med alla linux-distros och är därför ett program man bör känna till.

atop är lite mer avancerat än top och visar lite mer info, men ser i övrigt ut som top.

bashtop är lite speciellt. Det är nämligen inte ett program, utan ett skript. Det är dock ett gigantiskt skript på nästan 4000 rader. Det är också välskrivet, så du som användare kommer tro att det är ett program.
Vad är ett skript och hur skiljer det sig från ett program?
Man kan använda olika terminaler: Gnome Termial, Konsole, Terminator,... och har du testat Hollywood i den här tråden har du installerat Byobu Terminal.
Terminalen kör sedan ett skal (shell): sh, bash, dash, fish, zsh. Det finns fler skal, men dessa är de vanligaste. Ubuntu kör bash som standard.
Ett skript är en textfil som innehåller flera kommandon. Kör man filen utförs alla kommandona. Det är praktiskt om man kör samma serie kommandom om och om igen: Vanliga exempel är installationsskrip och backupskript.
bashtop är skrivet för bash och jag tvivlar att det fungerar i något annat skal.
Eftersom det bara är ett skript går det alltid att köra så länge terminalen fungerar.

Slutligen htop, ett program som nästan alla linuxanvändare känner till. Låt oss installera det:

Kod: Markera allt

sudo apt update && sudo apt upgrade
sudo apt install htop
htop gör samma sak som top (och lite till), men det är i färg och man kan använda musen - vilket gör det mycket mer användarvänligt.
Överst är ett antal mätare numrerade 0, 1, 2,... det är datorns processorkärnor.
Sedan finns Mem som visar RAM-minnet och Swp som visar Swap-filen.
Till höger visas antal program och trådar som körs och uptime (hur länge sedan datorn startades).

Undre delen visar processerna.
Man kan klicka med musen på kolumnernas rubriker för att välja hur de sorteras. Klickar man en gång till får man omvänd sortering.
Det är ungefär samma kolumner som i top:
PID är process ID, som behövs för att döda en process.
User är vem som äger processen. Det som är intressant är om du eller systemet äger processen.
PRI och NI är Priority och Niceness. Det talar om hur mycket uppmärksamhet och kraft processen kan få av processorn. Ju lägre värde desto viktigare är processen. Tycker man att en process tar för mycket utrymme, men man inte vill döda den, kan man öka dess Niceness-värde (som går från -20 till 20).
VIRT, RES, SH är hur mycket minne processen använder.
CPU% och MEM% är hur mycket processorkraft och RAM-minne processen använder. Det är de här kolumnerna man använder för att hitta program som inte uppför sig ordentligt.
Längst till höger finns Command, som visar sökvägen till filen som kör processen.
Man kan skrolla upp/ner i listan och markera processer med musen.
Eller så går man upp/ner med piltangenterna och väljer process med mellanslag.

Längst ner finns ett antal kommandon: antingen trycker man på respektive tangent för att aktivera ett kommando, eller så klickar man med musen.
F1 är Help. Lär er de vanligaste tangenterna i programmet; htop används normalt när man får problem och ett av problemen kan vara att musen slutat fungera.

F2 är Setup.
Under Setup står det Meters, Display options, Colors, Columns.
Meters bestämmer utseende på övre delen av skärmen: det finns Left column, Right column och Available meters.
Använd piltangenterna och gå till Memory [Bar]:
- Tryck Enter för att flytta den med piltangenterna. Tryck Enter igen när du är färdig.
- Tryck mellanslag för att gå igenom de olika sätt som mätaren kan se ut.
Har man väldigt många processorkärnor (i-landsproblem) kan det vara värt att testa lite olika sätt som processorkärnorna visas (det finns flera alternativ under "Available meters").
När man är färdig med Setup trycker man F10, eller klickar på Done.

F3 Search och F4 Filter. F3 används för att hitta specifika processer, medan F4 hanvänds för att visa en hel grupp.

F5 växlar mellan Tree och List (det är en smaksak vilken som är bäst).

F6 är Sort by, en till kolumn dyker upp och man använder piltangenterna för att välja hur processerna sorteras. Bra om man skulle förlora musen.

F7 Nice- och F8 Nice+ används för att ändra Niceness för en process. Minska värdet för att det ska få mer uppmärksamhet av processorn, öka det för mindre uppmärksamhet.

F9 används för att döda en process. När man väljer Kill för en process dyker en till kolumn upp där man får välja hur man ska avsluta processen. Först brukar man prova med det snällare 15 SIGTERM. Fungerar inte det använder man 9 SIGKILL, vilket är detsamma som kommandot Kill -9 processnummer.
Skriv svar

Återgå till "För nybörjaren"