Ubuntu-Linux-kommandoer jeg ofte bruker (Note to self)

Å jobbe i Terminal, eller via SSH hvis man fjernstyrer maskiner, er som regel langt mer effektivt enn å jobbe med mus og vanlig grafisk grensesnitt. Utfordringen er å huske kommandoene. Her er min huskeliste, med eksempler.

Før jeg presenterer listen vil jeg bare nevne litt om teksten man ser først på hver linje i skallet (terminalen). Dette:

bruker@maskin:~$

betyr følgende:

  • bruker -Den brukeren i Linux som utfører kommandoene man skriver inn
  • @maskin: -Maskinen kommandoene man skriver inn gjelder for.
  • ~$Tilde indikerer at du er i hjemmemappen din. Det kunne i stedet stått /home/bruker/. $-tegnet indikerer at det er herfra man skriver inn kommandoene. (Iallefall er det slik jeg tolker det…)

Jeg må også nevne at det kreves at man trykker Enter for å få utført kommandoene man har skrevet inn…

Brukere og skallbrukere

Endre skallbruker(s rettigheter)

su og sudo

Mange kommandoer krever at man er rotbruker. I Ubuntu håndteres det slik:

eier@maskin:~$ sudo enellerannenkommando
[sudo] password for eier:

Kommandoen sudo gjør at du midlertidig gir din egen bruker opphøyde rettigheter, hvilket igjen gir deg mulighet til å administrere systemfiler og lignende.

Ønsker man å ha rottilgang gjennom hele sesjonen (så lenge terminalvinduet er åpent), skriver du inn følgende kommando:

eier@maskin:~$ sudo su
[sudo] password for eier:
root@maskin:/home/eier#

Man kan også bytte til andre brukere, ved å benytte følgende kommando:

eier@maskin:~$ sudo su
[sudo] password for eier:
root@maskin:/home/eier# su annenbruker

For å bytte tilbake til forrige bruker skriver man exit:

root@maskin:~$ exit
eier@maskin:~$

Brukeradministrasjon

useradd

Legge til en bruker, tildele hjemmemappe og spesifisere skallet:

sudo useradd brukernavn -m -G brukergruppe -s /bin/bash

passwd

Sette eller endre passord til bruker:

sudo passwd username

adduser

Legge en person til i en gruppe:

sudo adduser brukernavn felles

Legge til en bruker i Samba:

sudo smbpasswd -a brukernavn
Tips

Se brukere på maskinen:

cat /etc/passwd

Gruppeadministrasjon

addgroup

Opprette en gruppe:

sudo addgroup gruppenavn
Tips

Se grupper på maskinen:

cat /etc/group

Filbehandling og navigasjon

Navigering

cd

Gå til en bestemt mappe:

cd /home/brukernavn/musikk

Gå en mappe opp i hierarkiet:

cd ../

Gå to mapper opp i hierarkiet:

cd ../../

osv…

Gå til hjemmemappen:

cd

pwd

Se hvilken mappe du befinner deg i:

pwd

Se innhold i mapper

ls

List opp innhold i mappen du er i:

ls

List opp innhold i en gitt mappe:

ls /home/brukernavn/Musikk

List opp innhold i en gitt mappe, og vis også skjulte filer (som starter med .):

ls -a /home/brukernavn/Musikk
Tips

Hvis listen over filer og mapper går over flere sider kan du bla med Page-Up og Page-Down!

Lage en ny fil

touch

Opprette en ny fil uten innhold:

touch /home/brukernavn/nyfil.txt
Tips

Du kan også bruke vi, hvor du blir tatt direkte til redigering av den nye filen!

vi /home/brukernavn/nyfil.txt

Slette filer og mapper

rm

Slette en fil:

rm /home/brukernavn/nyfil.txt

Slette en mappe med underliggende mapper og filer:

rm -r /home/brukernavn/mappeMedInnholdSomSkalSlettes

rmdir

Slette en tom mappe:

rmdir /home/brukernavn/tomMappe

Flytte filer og mapper (eller gi nytt navn)

mv

flytte en fil:

mv /home/brukernavn/gammeltSted/fil.txt /home/brukernavn/nyttSted/fil.txt

Dette flytter filen fil.txt fra mappen gammeltSted til mappen nyttSted. Merk: Kommandoen over er på én linje!

flytte en fil og gi den ett nytt navn samtidig:

mv /home/brukernavn/gammeltSted/fil.txt /home/brukernavn/nyttSted/filNyttNavn.txt

Dette flytter filen fil.txt fra mappen gammeltSted til mappen nyttSted, samtidig som den døper den om til FilNyttNavn.txt. Merk: Kommandoen over er på én linje!

Gi filen et nytt navn:

mv fil.txt filNyttNavn.txt

flytte en mappe:

mv /home/brukernavn/Golf /home/brukernavn/nyttSted/Golf

Dette flytter mappen Golf fra /home/brukernavn/ til /home/brukernavn/nyttSted/. Hvis det allerede finnes en mappe med navn Golf under /home/brukernavn/nyttSted/, vil mappen som flyttes bli plassert under denne igjen og få nytt navn: /home/brukernavn/nyttSted/Golf/Golf1

Kopiere filer og mapper

cp

kopiere en fil:

cp /home/brukernavn/mappe1/fil.txt /home/brukernavn/mappe2/fil.txt

kopiere en mappe:

cp -r /home/brukernavn/mappeA /home/brukernavn/nyttSted/mappeA

Hvis det allerede finnes en mappe med navn mappe1 under /home/brukernavn/nyttSted/, vil mappen som flyttes bli plassert under denne igjen og få nytt navn: /home/brukernavn/nyttSted/mappeA/mappeA1

rsync

kopiere en mappe ved hjelp av rsync:

rsync -ah -r --progress "/home/brukernavn/Mappe A" "/home/brukernavn/nyttSted/mappe A"

Fordelen med denne metoden er ikke minst at du ser hva som kopieres!

Opprette en mappe

mkdir

opprette en mappe:

mkdir /home/brukernavn/mappe1

Dette oppretter mappen mappe1.

Eierskap til filer og mapper

chmod

Brukes for å endre rettigheter til filer og mapper

sudo chmod 777 /home/bruker/fil.txt

Dette er tilsynelatende veldig komplisert, men tallverdien regnes ut på følgende måte:

  • r = readable = 4
  • w = writable = 2
  • x = executable = 1

Kombinasjonen av overnevnte blir enten 1, 2, 3, 4, 5, 6 eller 7.

Hver av disse kodene tildeles så de tre rollene User, Group og World (forkortet U, G og W i tabellen under).

Dermed kan man produsere kommandoer etter følgende mønster:

TillatelserKommandoer
UGW
rwxrwxrwxchmod 777 filnavn
rwxrwxr-xchmod 775 filnavn
rwxr-xr-xchmod 755 filnavn
rw-rw-r--chmod 664 filnavn
rw-r--r--chmod 644 filnavn

Denne tabellen har jeg lånt herfra.(draac.com)

chown

Endre eierskap til fil:

sudo chown steinar /home/bruker/delt/filnavn.txt

Endre både eier og gruppe på alle filer og undermapper i en mappe:

sudo chown -R steinar:superbrukere /Users/Delt/

chgrp

Endre gruppetilhørighet til fil:

sudo chgrp felles /home/bruker/delt/filnavn.txt
sudo chgrp felles -R /home/bruker/delt/

Nettverk

Fjerninnlogging (SSH)

ssh

logge seg inn på en annen maskin:

eier@maskin:~$ ssh administrator@192.168.1.50
administrator@192.168.1.50's password:
administrator@annenmaskin:~$

Brukernavn og passord er brukernavnet og passordet på den eksterne maskinen

logge seg inn på en annen maskin når den ikke kjører ssh på standard port 22:

ssh -p 2222 brukernavn@192.168.1.50

Avslutte ssh-tilkoblingen:

exit

Overføring av filer (SCP)

scp

Flytte filen fil.txt fra lokal maskin til ekstern maskin:

eier@maskin:~$ scp fil.txt administrator@192.168.1.50:/home/administrator/filmappe/
administrator@192.168.1.50's password:

Merk: Kommandoen over er på én linje!

Flytte mappen mappeX fra lokal maskin til ekstern maskin:

eier@maskin:~$ scp -r /home/brukernavn/mappeX administrator@192.168.1.50:/home/administrator/filmappe/
administrator@192.168.1.50's password:

Merk: Kommandoen over er på én linje!

Flytte mappen mappeX fra lokal maskin til ekstern maskin når ekstern maskin kjører på en annen port enn 22:

eier@maskin:~$ scp -P 2222 -r /home/brukernavn/mappeX administrator@192.168.1.50:/home/administrator/filmappe/
administrator@192.168.1.50's password:

Merk: Kommandoen over er på én linje!

Flytte mappen mappeX fra ekstern maskin til lokal maskin når ekstern maskin kjører på en annen port enn 22:

eier@maskin:~$ scp -P 2222 -r administrator@192.168.1.50:/home/administrator/mappeX /home/brukernavn/
administrator@192.168.1.50's password:

Merk: Kommandoen over er på én linje!

Brannmur

ufw

Dette har jeg i sin helhet lånt herfra (Ubuntu Documentation). Alt er også mer detaljert forklart der.

Standard-regler

Standard er å nekte alt:

sudo ufw default deny

Standard er å tillate alt:

sudo ufw default allow

Aktivere og deaktivere brannmuren

Aktivere:

sudo ufw enable

Deaktivere:

sudo ufw disable

Tillate

Slippe igjennom innkommende tcp- og udp-pakker på port 53:

sudo ufw allow 53

Slippe igjennom innkommende tcp-pakker på port 53:

sudo ufw allow 53/tcp

Slippe igjennom innkommende udp-pakker på port 53:

sudo ufw allow 53/udp

Slippe igjennom fra en bestemt ip-adresse:

sudo ufw allow from 207.46.232.182

Slippe igjennom fra et subnet:

sudo ufw allow from 192.168.1.0/24

Slippe igjennom en bestemt port fra en bestemt ip-adresse:

sudo ufw allow from 192.168.0.4 to any port 22

Sperre

Sperre for innkommende tcp- og udp-pakker på port 53:

sudo ufw deny 53

Sperre for innkommende tcp-pakker på port 53:

sudo ufw deny 53/tcp

Sperre for innkommende udp-pakker på port 53:

sudo ufw deny 53/udp

Slette regel

Slette regelen deny 80/tcp:

sudo ufw delete deny 80/tcp

Tillate/sperre for tjenester

Se en oversikt over tjenester:

less /etc/services

Tillate en tjeneste (f.eks ssh):

sudo ufw allow ssh

Sperre for en tjeneste (f.eks ssh):

sudo ufw deny ssh

Se status på ufw

sudo ufw status

Logging

Aktivere logging:

sudo ufw logging on

Deaktivere logging:

sudo ufw logging off

Avanserte regler

Å blokkere ip-adresser er ikke nødvendigvis enkelt, hvis du allerede har et sett med regler. Dette fori reglene i IPTABLES matches fortløpende. Et eksempel:

Du startet med default deny, og la deretter inn port 80 for en offentlig server:

sudo ufw allow 80

Men oppdager så at de hacker deg fra 111.222.3.44, og legger derfor til:

sudo ufw deny 111.222.3.44

Hvilket ikke vil ha noen effekt, ettersom du allerede har tillatt tilgang med den første regelen.

Det du må gjøre i dette tilfellet er å redigere /etc/ufw/before.rules og legge til seksjonen “Block IP” etter “Drop INVALID packets:

-A ufw-before-input -s 111.222.3.44 -j DROP #Assuming no logging is desired of course)
# drop INVALID packets
# uncomment to log INVALID packets
#-A ufw-before-input -m conntrack --ctstate INVALID -j LOG --log-prefix "[UFW B$
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP

# Block IP
# This is effective:
-A ufw-before-input -s 111.222.3.44 -j DROP

Et avansert eksempel:

Scenario:Du vil blokkere tilgang til port 22 fra 192.168.0.1 og 192.168.0.7, men tillate alle andre på 192.168.0.x tilgang til port 22:

sudo ufw deny from 192.168.0.1 to any port 22
sudo ufw deny from 192.168.0.7 to any port 22
sudo ufw allow from 192.168.0.0/24 to any port 22

Det som er viktig å forstå her er at så snart en regel matcher, så vil ikke de senere regler bli evaluert. Ergo må du alltid plassere de mest spesifikke reglene først, og deretter de mer generiske. Når regler endres over tid kan det fort tenkes at du må slette noen av de eldre reglene, slik at de fortsetter å være i riktig rekkefølge!

Hvis dette er status nå:

sudo ufw status
Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     ALLOW   192.168.0.0/24
22:udp                     ALLOW   192.168.0.0/24

Og du må gjøre en endring: Du vil blokkere tilgang til port 22 fra 192.168.0.3 i tillegg til 192.168.0.1 og 192.168.0.7:

sudo ufw status
Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7

sudo ufw deny 192.168.0.3 to any port 22
sudo ufw allow 192.168.0.0/24 to any port 22
sudo ufw status

Firewall loaded

To                         Action  From
--                         ------  ----
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     DENY    192.168.0.3
22:udp                     DENY    192.168.0.3
22:tcp                     ALLOW   192.168.0.0/24
22:udp                     ALLOW   192.168.0.0/24

Hvis du bare hadde lagt til den nye deny-regelen ville tillat-regelen vært over. Tillat-regelen ville blitt effektuert, og den nye deny-regelen ville blitt ignorert.

Annet

ifconfig

Se status på nettverkstilkoblingen din

ifconfig

netstat

Se alle porter maskinen lytter på:

netstat -l

Se rutingtabellen:

netstat -nr

nmap

Se maskiner i lokalnettverket:

nmap -sP 192.168.1.0/24

Se åpne porter på egen maskin:

nmap 127.0.0.1

Se åpne porter på annen maskin:

nmap host.target.com

dig

Den eminente kilden til dette er thegeekstuff.com. Der ser du også flere måter å bruke dig på.

Se alle DNS-oppføringer for et domene:

dig vg.no ANY +noall +answer

Se ip-adressen til et domene:

dig vg.no +short

Reverse look-up (Se hvilket domene som er på en gitt ip-adresse):

dig -x 195.188.55.16 +short

System

Tjenester

Restart/Stop/Start

Restarte en tjeneste (foretrukket metode):

sudo service networking restart

Restarte en tjeneste (alternativ metode):

sudo /etc/init.d/networking restart

Starte en tjeneste (foretrukket metode):

sudo service networking start

Starte en tjeneste (alternativ metode):

sudo /etc/init.d/networking start

Stoppe en tjeneste (foretrukket metode):

sudo service networking stop

Stoppe en tjeneste (alternativ metode):

sudo /etc/init.d/networking stop

Installasjon og avinstallasjon

apt

Oppdatere pakkelistene:

sudo apt update

Installere oppdateringer:

sudo apt upgrade

Installere oppdateringer med endring av avhengigheter til nye versjoner av pakker:

sudo apt dist-upgrade

Installere et nytt program:

sudo apt install nmap

Avinstallere et program:

sudo apt remove nmap

Avinstallere et program og slette konfigurasjonsfiler:

sudo apt --purge remove nmap

Avinstallere pakker det ikke lenger er avhengighet til på systemet:

sudo apt autoremove

Tømme cache i /var/cache/apt/archives:

sudo apt clean

Annet

reboot

Restarte maskinen:

sudo reboot

shutwown

Skru av maskinen:

sudo shutdown -h now

top

Se en oversikt over kjørende prosesser, sortert etter cpu-forbruk:

top

Fileditering

Vi

Åpne en fil

Åpne filen du skal editere (Bruk sudo på systemfiler.):

sudo vi /etc/network/interfaces

Editere en fil du har åpnet

Bytte fra visningsmodus til editeringsmodus:

a (eller i)

Lagre en editert fil

Lagre (og lukke) filen etter at du har editert den:

[esc] :wq [Enter]

Lukke en uendret fil

[esc] :q [Enter]

Lukke uten å lagre filen

Lukke en fil du har gjort endringer i, uten å lagre endringene:

[esc] :q! [Enter]

Diverse

cat

Brukes bl. annet til å se innhold i tekstfiler:

cat /home/brukernavn/tekstfil.txt

Kjøre et gui-program som rot

I Gnome bruker du gksudo (eller gksu), alternativt bruker du sudo:

gksudo nautilus
sudo pcmanfm

symlink (snarvei)

Oppretter snarveien viktig.txt på skrivebordet. Snarveien peker til /home/brukernavn/dokumenter/viktig.txt:

ln -s /home/brukernavn/dokumenter/viktig.txt /home/brukernavn/Skrivebord/viktig.txt

Oppretter snarveien Bilder på skrivebordet. Snarveien peker til /home/brukernavn/Bilder:

ln -s /home/brukernavn/Bilder /home/brukernavn/Skrivebord/Bilder

tar (pakke ut)

Tilsvarer zip. Attributtene er som følger:

  • -x Pakker ut en tarball (en zippet fil/mappe)
  • -v Vis fremdriften av utpakkingen i terminalvinduet
  • -f Spesifiser filnavnet på tarballen
  • -j Dekomprimerer og pakker ut en tarball laget med bzip2 (tar.bz2)
  • -z Dekomprimerer og pakker ut en tarball laget med gzip (tar.gz)

Med andre ord blir syntaksen for å pakke ut som følger:

tar -xvf arkiv.tar
tar -xzvf arkiv.tar.gz
tar -xjvf arkiv.tar.bz2

tar (pakke inn)

Tilsvarer zip. Attributtene er som følger:

  • -c Oppretter en tarball
  • -v Vis fremdriften av opprettingen i terminalvinduet
  • -f Spesifiser filnavnet på tarballen
  • -z Komprimerer og pakker en tarball laget med gzip (tar.gz)

Med andre ord blir syntaksen for å lage en tarball som følger:

tar -czvf arkiv.tar.gz /home/brukernavn/MappeSomSkalZippes

zip

Pakke ut en zip-fil til en valgt mappe:

unzip arkiv.zip -d /home/brukernavn/valgtmappe
[/et_pb_text][/et_pb_column][/et_pb_row][/et_pb_section]

Legg igjen en kommentar





Pin It on Pinterest

Del dette!

Del dette innlegget med vennene dine!