s Linux.htm
KB » Computer » Linux.htm

Linux.htm

    Tweeten

Introductie


Help informatie

Het belangrijkste commando om uit te vissen hoe andere commando's werken is man (van manual = handleiding). Dus met man passwd vanaf de commandoregel zie je hoe het passwd-commando werkt.

De commando's zijn onderverdeeld in 5 groepen:

  1. Commands and applications;
  2. System calls;
  3. Library calls;
  4. Drivers;
  5. Files.

In de uitvoer van man zie je achter het commando tussen haakjes een getal, en dat refereert naar 1 van bovenstaande groepen.

passwd is een commando en zit in groep 1. Maar je kan ook intikken: man 5 passwd. Dan krijg je de configuratie-file van het commando te zien.

Met man -k keyword kan je zoeken naar manual pages over commando's met dat keyword erin.

Met man -a keyword kan je zoeken naar manual pages met dat keyword in de titel.

Soms worden man-pagina's bijgewerkt, en om te zorgen dat je een actuele versie hebt moet je onder sommige Linux-versies (Ubuntu, SUSE) het commando mandb uitvoeren, in andere (Redhat) makewhatis

Heel veel commando's laten ook help-informatie zien als je geen opties meegeeft, en zeker als je als optie -h of --help meegeeft.

Websites

Goede websites met informatie:


In verschillende commando's, zoals more, less en man werkt navigatie hetzelfde.

Met spatie ga je steeds 1 pagina vooruit (verder) in het bestand, met Ctrl+B ga je achteruit, en met q(uit) verlaat je de uitvoer.

Met /zoek_term kan je in de uitvoer van man zoeken.

Met cd - ga je terug naar de vorige directory waar je was.


Environment variables


Commandoregel (command line)

Op de commandoregel kan je ook help intikken. Hou daarbij in de gaten dat er (net als in Windows) een verschil is tussen commando's die onderdeel uitmaken van bash en van losse programma's. ls is een voorbeeld van het laatste. Je kan dus bv. wel help pwd intikken, maar help ls werkt niet. man ls werkt dan weer wel.

Met pijltje omhoog kan 1 van je eerdere commando's makkelijk opnieuw uitvoeren (evt. met aanpassingen).

Met history kan je zien welke commando's je al eerder uitgevoerd hebt. (Die commando's zitten in de hidden file .bash_history in je home directory. Er is ook een environment variable HISTFILE). Elke shell die je start heeft zijn eigen history.

Als je ook een timestamp voor elk commando wil, voer je dit uit: export HISTTIMEFORMAT="%d/%m/%y %T "

Met whatis commando kan je zien of dat commando bestaat.

Met which commando kan je zien of waar het commando zich bevindt in de directorystructuur.

Met cd - ga je terug naar de laatste directory.


Commando's

adduser

Toevoegen van nieuwe gebruiker: adduser gebruikersnaam

Als je wilt dat een gebruiker ook sudo (extra privileges) kan gebruiken doe je adduser gebruikersnaam sudo

awk

Met awk '{print $1}' print je de 1e kolom van wat er binnenkomt.

cal

Geeft zonder argumenten de kalender van de huidige maand.

cat

cat textfile geeft de inhoud van de file op het scherm weer.

chgrp

Met chgrp group file maak je groep group eigenaar van file.

chmod

Bestand uitvoerbaar maken: chmod +x filename (filenaam moet extensie .sh hebben?!).

Aangezien elke set permissies bestaat uit read, write en execute (111), kan je ook willekeurige combinaties toekennen met een getal, bv. chmod 517 filename. De owner krijgt read en execute, de groep alleen execute, en iedereen read, write en execute.

chown

Met chown user file maak je gebruiker user eigenaar van file.

cp (copy)

Hiermee kopiëer je een bestand: cp source destination

cron (scheduling)

Met dit commando kan je taken op een vooraf vastgestelde tijd uitvoeren.

De bestanden die bij dit commando horen zitten in de directory /etc, zoals cron.daily

Je kan ook zelf de file crontab bewerken.

cut

Met dit commando kan je delen uit regels weghalen (extract columns from input).

Stel dat je alleen het 1e veld wilt van regels waarin de onderdelen door spaties gescheiden zijn, kan je
cut -d " " -f 1
gebruiken, waarbij 'd' staat voor delimiter en 'f' voor field. Met $ cut -d: -f1 < /etc/passwd krijg je een lijst van de waardes in de 1e kolom van de password file.

Vaak wordt dit commando voorafgegaan door een grep-commando, om eerst bepaalde regels te vinden, en dan bepaalde velden er uit te halen.

dmesg

Display kernel-related messages on Unix-like systems. It used to control the kernel ring buffer. The output contains messages produced by the device drivers.

df

Geeft informatie over het file system.

dig (Domain Internet Groper

The dig command-line tool is mainly used for querying DNS servers for hostnames. A simple command such as dig google.com reveals the IP address of the domain and the name of the DNS server that hosts the DNS zone for it (also known as the name server).

In addition to the usual DNS tasks, the dig command can also be used to perform a DNS zone transfer. Let's request a zone transfer to zonetransfer.me, a vulnerable domain made for educational purposes by Robin Wood (DigiNinja). The request is made using the dig command, for the AXFR (zone transfer) register of the zonetransfer.me domain to the nsztm1.digi.ninja server:
$ dig axfr zonetransfer.me @nsztm1.digi.ninja

You will often find that even though the primary DNS server blocks the zone transfer, a secondary server for that domain might allow it. The dig google.com NS +noall +answer command will display all of the name servers for that domain.

Performing a DNS lookup to search for an IP address is passive reconnaissance. However, the moment you do a zone transfer using a tool such as dig or nslookup, it turns into active reconnaissance.

dmidecode

??

dpkg (package manager)

Low level command voor Debian-varianten (zoals Ubuntu) (high level is apt-get of yum).

Heeft veel opties, maar de belangrijkste zijn --install voor install, --remove voor verwijderen en -l om een lijst van installed packages te maken.

echo

Dit commando "echoot" de tekst die je intikt, in principe naar de terminal. Dus: echo regel tekst heeft tot gevolg dat er regel tekst verschijnt.

Om de uitvoer naar een bestand te krijgen plaats je er > filename achter.

Kan ook gebruikt worden om een bestand leeg te maken (i.p.v. weg te gooien): echo > filename

fdisk

Bewerken van partition table. Oudere versies van fdisk kunnen de GPT niet aan, nieuwere wel.

file

Hiermee krijg je informatie over het type van een bestand: file filename

free

Produceert gegevens over de vrije ruimte in het geheugen.

gdisk

Werken met partities. De 'g' staat voor GPT.

grep

Met grep Henk myfile zoek je naar alle regels in myfile waar Henk in voorkomt.

Optie -i: Case insensitive

gunzip

Als je een .gz-bestand wilt decomprimeren, doe je gunzip naam.gz

host

Om een hostname naar een IP-adres om te zetten of omgekeerd doe je host IP_address of host hostname

hostname

Met hostname kan je de hostname bepalen. Als je de FQDN wilt bepalen doe je hostname -f.

iostat

The iostat command in Linux is used for monitoring system input/output statistics for devices and partitions.

last

List of last logged in users.

less

logger

Je kan het logger commando gebruiken om zelf messages te loggen: logger options message

Optie -p: -p facility.severity
Optie -t: -t tag

Voorbeeld:

logrotate

Je kan het logrotate commando gebruiken voor compressie, rotate, remove en zelfs het mailen van log files. De configuratie zit in /etc/logrotate.conf. Je kan ook een regel opnemen om extra configuratiefiles mee te nemen: include /etc/logrotate.d

Als je veranderingen in de configuratie aanbrengt, en je wilt testen, doe dan: logrotate -fv /etc/logrotate.conf

ls (list files)

Dit commando is niet supernuttig zonder opties.

De optie -l staat voor een lange listing. Als je alleen directories wilt zien gebruik je -d.

Met --color worden er kleurtjes gebruikt.

Met de optie -a zie je ook hidden files. In Linux zie je met het normale ls-commando geen bestanden waarvan de naam begint met '.' (hidden files, dus).

Met de optie -F zie je ook file types. Als de naam eindigt op '/' is het een directory, '@' staat voor een link, en '*' voor een executable. Met de combi -lF zie je ook waar evt. links naartoe wijzen.

Files worden default gesorteerd op naam weergegeven. Optie -t sorteert de files op tijd, en met -r wordt de volgorde omgekeerd (van tijd of naam).

Optie -R zorgt er voor dat files recursief worden weergeven.

In een regel als
-rw-r--r-- 3 root root 47 Apr 27 23:15 testfile
zie je van links naar rechts de permissies, het aantal links naar de file (3), de gebruiker en groep die eigenaar zijn van het bestand, de grootte van het bestand (47 bytes), de datum waarop het bestand voor het laatst bewerkt is en de bestandsnaam.

De permissies zijn, startend bij het 2e teken ('r' hierboven) verdeeld in 3 groepjes van 3, resp. voor de eigenaar, voor de groep en voor alle gebruikers. 'r' staat voor read, 'w' voor write en 'x' voor execute.

Het 1e teken op de regel is om aan te geven of het gaat om een directory ('d') of niet ('-').

ls -l [abc]* laat alle bestanden zien die beginnen met 'a', 'b' of 'c'. ls -l [a-c]* heeft hetzelfde effect.

Je kan het voorgaande commando ook negatief maken, dus alle bestanden die niet met 'a', 'b' of 'c' beginnen: ls -l [!a-c]*.

Het escapen van characters gebeurt zoals normaal met '\', dus alle bestanden die met '!', 'a', 'b' of 'c' beginnen: ls -l [\!a-c]*.

lsmod

Lijst van modules.

lsusb

Lijst van aangesloten en herkende USB-apparaten.

man (manual pages)

Toetsen Betekenis
Spatie Ga pagina naar beneden
Ctrl+B Ga pagina naar boven
g Ga helemaal naar boven
G Ga helemaal naar beneden
Enter Ga 1 regel naar beneden
q Verlaat man

mkdir (make directory)

Je maakt een nieuwe subdirectory van de working directory met mkdir subdirname

Met de -p optie kan je meteen een hierarchie maken, bv. mkdir -p 1/2/3

mv (move)

Hiermee verhuis je een bestand: mv source destination

parted

Partition editor.

pwd (print working directory)

Drukt de huidige working directory af.

rfkill

Tool for enabling and disabling wireless devices.

Zonder parameters laat de tool zien welke devices al dan niet geblocked zijn.

remove

Verwijder een bestand: rm filename

Met rm -rf dir verwijder je een dir en alles wat er in zit.

rmdir (remove directory)

Je verwijdert een subdirectory van de working directory met rmdir subdirname. Maar: alleen lege directories worden verwijderd. Anders moet je rm gebruiken.

Met de -p optie kan je meteen een hierarchie verwijderen, bv. rmdir -p 1/2/3

rpm (package manager)

Low level command voor Redhat-varianten (high level is apt-get of yum).

Heeft veel opties, maar de belangrijkste zijn -i, voor install, -U voor update, -e voor erase (uninstall), en -q voor query.

Query kan je alleen doen i.c.m. andere opties, bv. -qa laat alle geïnstalleerde packages zien.

rpm handelt dependencies niet automatisch af.

sed

Perform editing operations on input.

sleep

Met sleep 1 wacht het script 1 seconde.

su (switch user)

Hiermee schakel je over naar een andere gebruiker: su gebruikersnaam

systemctl

tailf

Laat het eind van een bestand zien??

tcpdump

Dit is een packet sniffing tool.

Opties:

In de uitvoer staat links de timestamp, dan de source, dan de destination. Aan het eind staat info over het packet.

telinit

Dit programma stuurt control commands naar de init daemon. Je kan er bv. het run level mee veranderen.

top

List of processes.

touch

Met touch filename maak je een bestand met de naam filename aan.

tr

Translate characters in the input to other characters.

tree

Dit commando is vergelijkbaar met ls -R, maar het geeft de info visueel weer.

Met tree -d zie je alleen directories, en met tree -C krijg je er kleur bij.

uname

Prints system information.

uname -n levert je de hostname.

uptime

wc (word count)

Met dit commando kan je het aantal woorden in een bestand tellen, of (wc -l) het aantal regels.

whatis

Geeft een 1 regelige beschrijving van een commando.

whereis

Vertelt waar je de source, binaries and man pages van een commando kan vinden.

who

Laat de ingelogde gebruikers zien, plus de terminals waarop zij zijn ingelogd.


Programma's en packages

Starten van programma's

Je kan o.a. als volgt programma's starten:

Package management

Vroeger

Oorspronkelijk gingen installatie met packages in de vorm van .tar.gz-files.

Je moet dat bestand dan in een specifieke directory decompressen, of de sources met ./configure en make install zelf compileren.

Dat heeft o.a. de volgende nadelen:

Uncompressen: tar -xvf filenaam.tar.gz

Om problemen met configuraties te vermijden wordt bij het installeren van packages de oude config bewaard. Stel dat je bv. httpd wilt updaten, dan wordt httpd.conf niet overschreven, maar er een nieuw bestand httpd.conf.rpmnew gemaakt (dit is voor Red Hat varianten, in Ubuntu-varianten is het iets anders).

Ook kan je pre- en post-scripts voor en na de installatie laten uitvoeren.

Er wordt rekening gehouden met afhankelijkheden, en je kan meerdere packages bundelen in een nieuw package (denk bv. aan een Office-pakket, met daarin een spreadsheetprogramma en een databaseprogramma).

Packages kunnen gemakkelijk gedeïnstalleerd worden.

Packages van Red Hat, Suse, Fedora, CentOS e.d., eindigen in .rpm. Die van Debian, Ubuntu e.d., eindigen in .deb

Een .rpm-package wordt geïnstalleerd met het commando rpm, een Debian package met het commando dpkg, bv. dpkg -i package_name.deb

Deze commando's hebben echter beperkingen: ze houden geen rekening met afhankelijkheden, kunnen niet zoeken naar packages, en geven geen metadata over een package. Daarom zijn er een aantal nieuwe package managers ontwikkeld:

Deze nieuwe managers maken gebruik van een repo(sitory), en gebruik van die van Redhat kost geld.

Als de repository geen gegevens over een package bevat moet je ze alsnog met de hand installeren.

Ubuntu apt-get

Voor het installeren of updaten van een nieuw package kan je het beste apt-get update doen, om de repositories bij te werken.

Het bestand /etc/apt/sources.list bevat de source URL's voor de packages. Je hoeft de file niet zelf bij te werken, tenzij je je eigen repository wilt hebben.

In de file kunnen verschillende types packages zitten:

In elke categorie is een updates of bug-fixes component.

Installeren

In Debian (ook Kali) kan je de Advanced Packaging Tool (apt) gebruiken om packages te managen.

Als je bv. Lynx wilt installeren doe je apt-get install lynx

Updates

2 commando's die je geregeld moet doen zijn apt-get update en apt-get upgrade

De repository voor packages in Kali zit in /etc/apt/sources.list

Commandoregel

De commandoregel kan je starten door rechts te klikken op het bureaublad. 1 van de opties is dan het starten van de command line (Open Terminal).

Veel simpeler is Ctrl+Alt+T


Net als in Windows kan je via de grafische interface naar bestanden zoeken, maar daarbij moet je (ook net als in Windows) wel rekening houden met waar je je bevindt.

Er zijn ook 3 commmando's om te zoeken vanaf de commandoregel, locate, which en find.

Locate

Voor je gaat zoeken moet je er met het commando updatedb eerst voor zorgen dat de zoekdatabase up-to-date is.

Daarna zou je bv. het commando locate sbd.exe kunnen intikken. Als het goed is krijg je dan de paden naar de file, als hij bestaat.

Het maakt voor dit commando niet uit waar je je bevindt. De hele computer wordt doorzocht.

Which

Het commando which werkt met executables. In dit geval zou je het commando which sbd kunnen proberen.

Find

find is een meer agressief zoekcommando.

find [path...] [expression] vindt recursief alle bestanden in path... die aan de expression voldoen.

Opties:

Als je bv. alle bestanden startend met 'sbd' op het systeem wil vinden, doe je find / -name sbd*
Of bv.: find /etc -name passwd

Je kan ook extra operatie opgeven die op de gevonden files moeten worden toegespast. Met find / -name sbd* -exec file {} \ zie je het format van de files.


Bestanden

De meest gebruikte file manager (vergelijkbaar met Verkenner (Explorer) in Windows) heet Nautilus.

De map die standaard door Nautilus wordt geopend is de Home folder. Net als in Windows is dat de map waarin submappen zitten voor je documenten, plaatjes, muziek, etc.

Als je links klikt op Computer, krijg je je iets vergelijkbaars als de C-schijf in Windows.

Om te zien hoeveel ruimte bestanden en directories in beslag nemen tik je: du (de getallen aan het begin zijn in K bytes).

Met du -h ('h' = human-readable) worden de aantallen bytes wat duidelijker weergegeven.

Met de optie --max-depth=getal zie je dat ('getal') aantal niveau's in de directorystructuur.

Directoryhierarchie

De top is root. De meest belangrijke daaronder zijn:

Als bv. AVG antivirus in /opt geinstalleerd wordt, heb je ook een /opt/avg/bin, /opt/avg/etc, /opt/avg/lib, /opt/avg/log. Je zou ook zoiets kunnen zien: /opt/myapp/bin en /opt/myapp/lib, maar... /etc/opt/myapp en /var/opt/myapp. En een programma zou ook van gesharede directories gebruik kunnen maken, zoals /usr/local/bin/myapp, /usr/local/etc/myapp.conf en /usr/local/lib/... Structuren als /opt/company_name of /opt/product_name komen ook voor.

Bestandsstructuren (command line)

De working directory is de map waarin je je bevindt, en je kan hem zien met pwd

De home directory is de map waarin je belandt als je inlogt. Je kan er heel makkelijk naar toe navigeren met het commando cd

Het teken ~ staat ook voor home directory. Het vreemde is wel dat ~/pictures/selfie refereert aan /home/henk/pictures/selfie als ik henk ben, maar dat ~henk refereert aan /home/henk als ik niet henk ben.

~jason staat voor /home/jason, ~root staat voor /root, en ~ftp staat voor /svr/ftp


Shell

Zo kan je zien wat je shell is: echo $SHELL
Mogelijkheden zijn sh (een hele oude), csh (lijkt op programmeertaal C), ksh (Korn) en bash (nieuwste en meest uitgebreide).

Als je wilt weten of bash op je systeem aanwezig is, tik je gewoon bash

Als je wilt weten in welke directory bash geïnstalleerd is, kan je 1 van de volgende 3 commando's proberen: whereis bash, whence bash, which bash
Als dat niet werkt kan je ook nog dit commando proberen:
grep bash /etc/passwd | awk -F: '{print $7}' | sort -u

Om de shell in bash te veranderen moet je het pad uit de vorige alinea gebruiken in dit commando: chsh path_to_bash
Je krijgt nu *of* een foutmelding, of je moet je wachtwoord intikken. In het laatste geval moet je daarna uit- en inloggen om daadwerkelijk bash te gebruiken.


Standard I/O

Elk programma dat in de shell wordt aangeroepen heeft 3 zogenaamde pipes, standard input (waar de invoer vandaan komt), standard output (waar de uitvoer naar toe gaat) en standard error (waar foutmeldingen naar toe gaan). Hun file descriptors zijn resp. 0, 1 en 2. Standard input is het toetsenbord, standard output en error zijn het scherm.

Elk van de 3 kanalen kan je naar een file "redirecten". sort haalt bv. zijn invoer als redirection vanuit een bestand: sort < invoer.txt. Overigens werkt sort invoer.txt net zo goed.

'>' redirects standard output naar een file. Bestaande inhoud wordt overschreven.
'>>' redirects standard output naar een file. Het wordt toegevoegd aan het eind van bestaande inhoud.
'<' redirects input van een file naar een commando.

Aangezien 1 staat voor standard output, is ls -l > files.txt hetzelfde als ls -l 1> files.txt (geen spatie na de 1). Stel dat je 2 files list, waarvan de 2e niet bestaat. De uitvoer van ls gaat dan naar st.out, de foutmelding naar st.error. Met ls file niet-bestaand 2> log gaat de foutmelding naar log. Je kan ze ook beide redirecten met ls file niet-bestaand 1> log 2>err.log. En je kan beide naar dezelfde file redirecten, bv. met ls file niet-bestaand > out.log 2>&1

Als je '&' gebruikt in combinatie met redirection, dan betekent dat dat het om een file descriptor gaat. Vb.: 2>&1 combineert standard output en standard error. 2>file redirects standard error naar een file.

Als je uitvoer in een zwart gat wil laten verdwijnen gebruik je het null device: >/dev/null

De standard output van het ene commando kan via een filter als standard input van het andere dienen, zoals bv. ls -l | sort of ps -ef | grep httpd (daarmee list je alle processen, maar alleen de regels die 'httpd' bevatten worden getoond).


Text editors

nano

Een eenvoudige, simpele editor is nano.

Onderaan het scherm staan een aantal commando's die je kan gebruiken, bv. Ctrl+X om eruit te gaan (er wordt gevraagd of je het bestand wilt opslaan).


Gebruikers

Je kan een nieuwe gebruiker toevoegen met adduser, bv. adduser henk

Password kwijt

Dat kan je (in Ubuntu) als volgt resetten:

Ik heb deze procedure uit deze YouTube video.


Belangrijke files en locaties

File or folder General Specific
/etc/services Services Lijst van poorten die bij services horen.
/etc/sysconfig/network-scripts/ Networking RedHat: Configureer DHCP client.
/etc/network/interfaces Networking Ubuntu: Configureer DHCP client.

Services

Services zijn o.a. SSH, HTTP en SQL

Je kan services starten met service servicenaam start

Een andere veel gebruikte manier is /etc/init.d/servicenaam start

Andere opties zijn stop en restart

SSH

Werkt op poort 22, en wordt gestart met service ssh start

Je kan de status van SSH bekijken met netstat -antp | grep sshd

HTTP

Deze wordt gestart met service apache2 start

Als hij draait, en er is een web server op de PC, dan moet je met de webbrowser naar localhost kunnen, of naar 127.0.0.1, en de default page van de web server te zien krijgen.

Een andere manier om te zien of deze service draait is m.b.v. het netstat-commando:
netstat -antp | grep apache

Boot persistence van services

update-rc.d servicenaam enable


Apparaatbeheer

Disks

Apparaten worden aangeduid met /dev/sdletter, bv. /dev/sda
'sd' staat voor SCSI disk. /dev is de directory voor apparaten.

Als een disk meerdere partitions heeft wordt dat aangeduid met /dev/sda1, /dev/sda2, etc.

Het meest gebruikte diskformaat in Linux is ext4, vergelijkbaar met NTFS in Windows.


USB-apparaten

Met lsusb kan je zien welke apparaten er aan je Linux hangen.


Netwerken

smbclient

smbclient is a client that is part of the Samba software suite. It communicates with a LAN Manager server, offering an interface similar to that of the ftp program. Operations include things like getting files from the server to the local machine, putting files from the local machine to the server, retrieving directory information from the server and so on.

Syntax:

smbclient servicename [ password ] [ -A ] [ -E ] [ -L host ] [ -M host ] [ -I IP number ] [ -N ] [ -P ] [ -U username ] [ -d debuglevel ] [ -l log basename ] [ -n netbios name ] [ -W workgroup ] [ -O socket options ] [ -p port number ] [ -c command string ] [ -T tar options ] [ -D initial directory ]

servicename is the name of the service you want to use on the server. A service name takes the form \\server\service where server is the netbios name of the LAN Manager server offering the desired service and service is the name of the service offered. So to connect to the service "printer" on the LAN Manager server "lanman", you would use the servicename \\lanman\printer.

Note that the server name required isn't necessarily the hostname of the server. The name required is a LAN Manager server name, which may or may not be the same as the hostname of the machine running the server.

Zie dit stuk op computerhope.com

iptables

# reset all counters and iptables rules iptables -Z && iptables -F # measure incoming traffic to IP_address iptables -I INPUT 1 -s IP_address -j ACCEPT # measure outgoing traffic to IP_address iptables -I OUTPUT 1 -d IP_address -j ACCEPT

Telnet

Dit commando is min of meer obsolete. Het werd vroeger gebruikt om in te loggen in remote systems. SSH heeft die rol overgenomen.

telnet IP_address

Je kan Telnet ook gebruiken voor troubleshooten. Stel dat je geen verbinding kan maken met Google, dan kan je telnet google.com 80 proberen. Als je verbinding krijgt kan je GET / proberen.

Als je 'operation timed out' of 'connection refused' krijgt. In het 1e geval kon er geen verbinding gemaakt worden.

SSH

ssh username@IP_address

rdesktop

Als je ziet dat poort 3389 open staat, kan je met remote desktop (ook vanuit Linux) verbinding maken: rdesktop -u user_name IP_address

Netwerk commando's

service httpd status

tailf /var/log/httpd/acces_log

netdiscover

netdiscover -r 192.168.56.0/24 betekent dat je alleen dat subnet gaat controleren.

Je kan ook netdiscover -i eth1 doen.

ifconfig

Dit commando wordt uitgefaseerd, maar is vaak nog beschikbaar.

ifconfig [-a] doet een beetje hetzelfde als ipconfig /all in Windows. Je krijgt een overzicht van interfaces, zoals eth0 (bedrade netwerkverbinding), l0 (loopback) en wlan0 (wireless verbinding). Het laat ook allerlei info over de interfaces zien, zoals MAC-adres (Hwaddr), IP-adres, etc.

Als ifconfig beschikbaar is kan je zo een adres aan je network device geven: ifconfig network_device IP_addr netmask netmask, bv. ifconfig eth0 10.11.12.13 netmask 255.255.255.0, en dan ifconfig eth0 up

ip

Je kan je IP-adres bepalen met ip address. Je mag address ook afkorten tot 'addr' of zelfs 'a'. Je ziet vaak minimaal 2 adressen, nl. van het loopback device (lo), en van de andere netwerkkaarten (bv. eth0).

Om een lijst van network devices op je systeem te krijgen doe je ip link.

Je kan zo een adres aan je netwerk device geven: ip address add IP_addr[/netmask] dev network_device, bv. ip address add 10.11.12.13/255.255.255.0 dev eth0. Om de interface up te zetten doe je ip link set eth0 up

Voor sommige operaties moet je een interface even down en later weer up zetten, bv. ifconfig wlan0 down

Met ifconfig eth0 | grep ether krijg je de regel waarop het MAC-adres staat. Op macvendors.com kan je de fabrikant van je netwerkkaart te weten komen door het MAC-adres in te vullen.

Je kan het MAC-adres veranderen met ifconfig wlan0 hw ether new_MAC_addr

ping

ping -c cnt host stuurt cnt ICMP packets naar de host. In de laatste regel van de uitvoer staat rtt voor round trip time.

Als je wel kan pingen op het IP-adres maar niet op de naam, dan is er iets mis met DNS name resolution.

Als je Destination Host Unreachable krijgt, kan je het beste een lokaal adres proberen te pingen. Als dat ook niet lukt kan er iets mis zijn met de kabel, de network driver, de networking services (bv. niet gestart).

Als je wel een host op het lokale netwerk kunt pingen, dan ligt het probleem buiten je systeem. Probeer dan andere externe sites te pingen. Het zou kunnen zijn dat de specifieke site nooit reageert op ping messages.

Je kan een netwerk interface in promiscuous mode zetten met ifconfig eth0 promisc. Dat werkt echter alleen in netwerken met hub technologie, niet met switches.

route

route -n is vergelijkbaar met het gelijknamige commando in Windows.

traceroute

IP-adressen worden standaard naar namen omgezet, tenzij je traceroute -n doet.

Als je in de uitvoer een asterisk ziet waar je normaal een tijd zou verwachten, betekent dat dat er geen antwoord is ontvangen.

tracepath

Produceert 1 regel voor elk ontvangen antwoord, i.t.t. traceroute, dat 1 regel per hop laat zien.

iwconfig (draadloze netwerken)

Met iwconfig ('w' staat voor wireless) krijg je info over de toestand van draadloze netwerken.

Met airmon-ng start wlan0 kan je de wireless adapter in monitoring mode zetten. Daarbij moet je wlan0 vervangen door de naam van je eigen wireless adapter. Het kan trouwens ook met iwconfig wlan0 mode monitor, en met iwconfig wlan0 mode managed ga je weer terug.

Als je weer iwconfig doet zou de mode veranderd moeten zijn in Monitor

Met airodump-ng wlan0

host

Met host kan je het IP-adres van een site te zien krijgen, bv. host www.cisco.com

Je kan er ook de name servers van een domein mee zien:
host -t ns megacorpone.com, of
host -t mx megacorpone.com de mail servers.

Om te zien of dit domein ook een webserver is, doe je:
host www.megacorpone.com

Je kan als volgt een zone transfer proberen:
host -l megacorpone.com ns2.megacorpone.com (ns1 lukt niet).

netstat

Ook ongeveer gelijk aan Windows. Doe bv. netstat -antp

Opties:

arp-scan

arp-scan sends ARP packets to hosts on the local network and displays any responses that are received. The network interface to use can be specified with the --interface option.

Opties:

Bluetooth

Vergelijkbaar met het commando ifconfig gebruik je hier hciconfig

hciconfig is vergelijkbaar met ifconfig, maar gericht op Bluetooth.

Om te kunnen scannen doe je hciconfig hci0 up, en dan hcitool scan

Je hebt ook een MAC-adres nodig, en daarvoor doe je hcitool inq (van inquire)
Met dit commando krijg je ook de class en de clock offset.

Channel surfing

Met hcitool con krijg je een lijst met details voor de connecties die je kan zien.

Daarna doe je rfcomm connect MAC_address 9

Je PC een static IP-adres geven

Je moet daarvoor de file /etc/network/interfaces bewerken.

Je moet een entry van een aantal regels aan deze file toevoegen, bv. iets als:

auto eth0 iface eth0 inet static address 192.168.2.23 netmask 255.255.255.0 gateway 192.168.2.1

Na zo'n wijziging moet je wel de networking service herstarten (service networking restart).


Background jobs

Als je een script start kan je geen andere commando's meer geven aan de shell. Maar je kan een programma ook op de achtergrond laten draaien, door achter het commando een '&' te zetten. Dus zo: bgjob.sh &

De standaard uitvoer blijft echter nog wel steeds naar de terminal komen. Maar dat kan je natuurlijk oplossen door '> uitvoerbestand' toe te voegen.

Er zijn een aantal speciale tekens in Linux, zoals <, >, |, #, ?, *. Wat als je zo'n teken toch perse in een file- of directory-naam wilt gebruiken (hoewel het wordt afgeraden)? Gewoon tussen quotes zetten, dus bv.: mkdir '#trending'. Het betekent alleen een hoop extra werk, want in alle andere commando's met deze map moet je ook quotes gebruiken. En je loopt kans dat bepaalde third party software er niet mee overweg kan.

I.p.v. quotes te gebruiken kan je ook backslash voor het speciale teken zetten. Als je backslash aan het eind van de regel zet en Enter geeft, escape je de Enter, en kan je op de volgende regel doorgaan met intikken van je commando.


Toetsencombinaties

Toetsen Betekenis
Ctrl+C Beëindig het huidige lopende commando.
Ctrl+D Eind van de invoer.
Wordt bv. gebruikt met commando's als sort, als je het commando aanroept zonder het een invoerbestand te geven.
Ctrl+U Veegt de huidige regel schoon.
Ctrl+Z Zet het huidig lopende commando op 'suspend'.

Problemen

command not found

Je krijgt bij allerlei commando's (maar niet bij allemaal) de melding: bash: iwconfig: command not found

Oplossing: je hebt onvoldoende privileges. Doe sudo su, en je switcht naar superuser (als je het goede password weet).


Free online resources for learning Linux

    Tweeten

© Henk Dalmolen
Reageer via E-mail (dalmolen@xs4all.nl)

Deze pagina is voor het laatst gewijzigd op: 15-02-23 14:03:59