Terminal

Här nedan har jag samlat ett gäng användbara terminalkommandon när man jobbar i en Linux, Unix eller Mac terminal. En del använder jag i min vardag, andra finns där för de kan vara användbara någon gång. TerminalAnledningen till att jag har listan öppen är för att dels kunna sprida mina kunskaper till andra och dels hoppas jag på andra kan bidra med användbara kommandon passade i en *nix-terminal. Denna sida kommer uppdateras löpande med nya användbara terminalkommandon.

Alla är välkomna att bidra med kommandon som kan göra livet lite enklare, gärna med en kort beskrivning vad den gör och något eller några exempel på hur den kan användas och lösa eller förenkla problem. Förslag på förbättringar av vissa kommandon eller listan i övrigt är också varmt välkommen!

Kommandon, förslag, frågor och funderingar lämnas som helst som en kommentar nedan, men det går också bra att maila mig via kontaktformuläret.

Användar- och grupphantering

  • useradd användarnamn – Lägger till en användare utan hem-katalog
  • useradd -m användarnamn – Skapar hem-katalog för användaren med sökvägen /home/användarnamn
  • useradd -m -s /bin/bash användarnamn – Skapa användare med hemkatalog och bash shell.
  • passwd användarnamn – Byter lösenordet för användaren
  • passwd -l användarnamn – Låser användarkonto
  • passwd -u användarnamn – Låser upp användarkonto
  • groupadd gruppnamn – Skapar en ny grupp
  • usermod -aG grupp1,grupp2 användarnamn – Lägger in flera grupper till en existerade användare
  • usermod -aG sudo användarnamn – Ger användare root-rättigheter
  • sudo echo ”användarnamn ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers – Tillåt köra sudo utan lösnord på specefik användare (potensiell säkerhetsrisk)
  • id användarnamn – Information om användaren, så som ID-nummer och vilka grupper den tillhör
  • userdel -r användarnamn – Tar bort användare med hem-katalog
  • who – Se vilka användare som är inloggade
  • w – Samma som who men med mer information
  • pkill -KILL -u användarnamn – Tvinga en användare att logga ut

Backup

  • dd if=/dev/sda of=/dev/sdb conv=noerror,sync – Klona hårddisken sda till sdb.
  • dd if=/dev/hda of=~/hdadisk.img – Gör en exakt kopia av hårddisken sda till en image-fil.
  • dd if=hdadisk.img of=/dev/hda – Återställ från en imgage-fil
  • dd if=/dev/hda1 of=~/partition1.img – Gör en image-fil av en partition.
  • dpkg –get-selections > installed-software – Information om vilka paket som ska installeras och avinstalleras.
  • dpkg –set-selections < installed-software – Återställer från paketlista. Installerar och avinstallerar paket.
  • cp /etc/network/interfaces{,.backup} – Tar kopia av en fil och lägger till .backup i slutet.

Filhantering

  • tree – Listar mappens och undermapparnas filer i en trädstruktur.
  • touch index.html undersida1.html undersida2.html – Skapa tomma filer.
  • less en_stor_fil.txt- Öppna stora textfiler i stil med kommandot man. Generellt bättre att använda än cat.
  • nl exempel.txt- Samma som cat men med radnummer.
  • sed ’/Det var en gång/d’ käll.fil > nya_texten_till.fil – Söker upp en fras och raderar raden. Övrig text returneras.
  • rsync -a källmapp målmapp – Kopiera ”mellanskillnaden” i källmapp filer till målmapp med bibehållen struktur.
  • wget adress.se/filer-i.zip – Laddar ned fil från adress (Fungerar ej på Mac).
  • curl -O adress.se/filer-i.zip – Motsvarighet till wget på Mac.
  • curl -0 adress.se/cool-serie-del{1,2,3}-av-3.zip – Ladda ner flera filer med olika namn.
  • tar xvzf – Uppackning av filer. Ett kommando som man aldrig lär sig.
  • sudo ncdu / – Interaktiv översikt av användningen av lagringsutrymmet
  • sudo du -mx / | sort -n – Enklare alternativ till ncdu som använder standardkommandon.
  • find -size +100M – Hitta filer som är lika med eller större än anvigen storlek.
  • chmod xyz sökväg-till-fil-eller.mapp – Ändrar rättigheter för fil eller katalog. Mer om chmod på Wikipedia.

    4 => Read
    2 => Write
    1 => Execute
    0 => Inga rättigheter

Processer

  • top – Se aktuella processer som är igång och som automatiskt uppdateras.
  • htop – Som top men betydlig bättre och mer information.
  • ps aux – Samma som top, men skickar istället ut som text som ej liveuppdateras.
  • ps aux | less – Samma som ps aux, fast i mer läsbart format.
  • ps aux | grep firefox – Söker efter en viss process som är igång (detta fall firefox) och skriver ut information om processen.
  • pstree – Enkelt träd med snabb överblick över processer som körs.
  • pmap pid – Detaljerad information om minnesanvändning för en specifik process.
  • kommando & – Kör igång ett kommando eller script som en process i bakgrunden. Den avbryts när terminalen stängs.
  • nohup scrpit.sh – Samma som för kommando &, men processen fortsätter att gå i bakgrunden när terminalen stängs.
  • pgrep -l firefox – Enkelt sätt att ta reda på pid (Fungerar ej på Mac, använd top för att hitta pid-nummer och kör kill).
  • kill 54321 – Stoppar process med det knutna ipd-nummret.
  • pkill firefox – Stoppar process. (Fungerar ej på Mac, använd top för att hitta pid-nummer och kör kill).

SSH

  • ssh adress.se -l användare -p 1234 – Ställer in annan port och användare mot mottagande dator.
  • ssh adress.se -t uname -a – Skicka och kör kommando på distans på tillfällig uppkoppling utan att logga in i terminalen.
  • ssh adress.se -D 1234 – Sätt upp en tunnel mellan din maskin och SSH-servern med SOCKS proxy-inställningarna.
  • ssh adress.se -L 1234:adress-eller-ip-där-tjänst-befinner-sig.se:4321 – Samma som med -D, men mer flexibel och större möjligheter.
  • ssh-keygen -lf ~/.ssh/id_rsa.pub – Visar fingeravtrycket av publik SSH-nyckel.
  • ssh adress.se -X -v – Kör grafiska Linux-program via ssh X tunnel. Man kan exempelvis starta upp Firefox på serven och styra det från arbetsdatorn med grafisk gränssnitt. Windowsanvändare kan använda Xming tillsammans med Putty.
  • ssh MittAlias – Vill man slippa långa SSH-kommandon kan man istället använda alias. Skapa eller ändra filen i ~/.ssh/config till följande syntax (I detta exempel finns två alias.).
    Host MittAlias
        HostName adress.se
        Port 1234
        User användare
    
    Host alias2
        HostName adress2.se
        Port 4321
        User användare2

    Kör man ssh_config för att få fram en manual eller googla på det.

Systeminformation

  • lsb_release -a – OS-version och info, enligt stanadrd.
  • cat /etc/*{release,version,issue} – OS-version och info, universal.
  • uname -a – Version av Linuxkärnan (och OS).
  • compgen -c | less – Lista på tillgängliga kommandon.
  • xwininfo – Vänsterklicka med muspekaren på skrivbordet för att få bland annat information om upplösning och massor av annan information. Klickar man istället på ett fönster får man matnyttig information om den istället.
  • less /proc/cpuinfo – Information om systemets processor.
  • less /proc/meminfo – Information om ram-minerna i systemet.
  • df -H – Information om hårddiskar och monteringar.
  • free -g – Grundläggande information om minnesanvändning.
  • whereis firefox – Visar möjliga sökvägar till programvara.
  • lsblk – Listar diskenheter.
  • lsusb – Information om anslutna USB-enheter och portar.
  • lspci – Information om allt som är ansluten till PCI-bussen.
  • lspci | grep -i wireless – Hittar chipset för nätverkskort (Ej Mac).
  • ethtool eth0 – Allmän information om nätverkskortet. Information som om Wake-on-lan stöds.
  • vmstat – Omfattande information om ram-minne och annan minne och hur dem används.
  • vmstat 1 20 – Användbar felsökningsinfo om man misstänker I/O-fel.
  • dpkg -l – Listar alla installerade paket (fungerar endast för pakethanteraren apt-get).
  • fdisk -l – Listar alla hårddiskar
  • /etc/fstab – Sökväg till konfigurationsfilen som monterar partitioner.
  • blkid /dev/sdXY – UUID för partitionen som man anger i exempelvis fstab
  • ss – Statistik över socketanslutningar
  • dstat – Löpande lista med systemresusrs information

Nätverk och Internet

  • dig google.com ANY +noall +answer +dnssec +multiline – DNS-records från domännamn (exl. subdomäner)
  • dig @8.8.8.8 goolge.com ANY +noall +answer +dnssec +multiline – DNS-records från specefik namnserver (exl. subdomäner)
  • mtr google.com – Kombinerad ping och traceroute.
  • mtr –report-wide –curses google.com – Visa hela hostnames och söd för muspekare.
  • mtr -rwc 100 google.com – MTR i rapport-format (epost vänlig output)
  • sudo iftop – Översikt av trafik och bandbredds användning
  • nmap -sP 192.168.0.1-254 – Scanna och pinga alla enheter i ett lokalt nätverk (<255 enheter)

Datum, tid och språk

  • dpkg-reconfigure tzdata – Ställer in tid och tidzon.
  • locale -a – Listning av alla språkfiler
  • locale-gen en_US en_US.UTF-8 – Genarera språkfiler. För svenska, lägg till sv_SE sv_SE.UTF-8
  • dpkg-reconfigure locales – Sätter språkfiler utifrån locale-gen

Övriga tips och tricks

Andra användbara knep knutet till terminalen eller linux-kommandon.

  • Ctrl + R istället för history | grep kommando med fördelen att man kan se sitt sökresultat live.
  • !! – Upprepa tidigare körd kommando.
  • cal – Visar en enklare kalender
  • ffmpeg -f x11grab -s [upplösning_bredd]x[upplösning_höjd] -r 10 -i :0.0 -s [upplösning_bredd]x[upplösning_höjd] -r -sameq screen_rec.avi – Spela in en screencast med hjälp av ffmpeg till en avi-fil. Ange skärmens upplösning i bredd och höjd för att filma i helskärm.
  1. Inga kommentarer än.
  1. Inga trackbacks än.