Skip to content

Diverse Commando's

Algemene tips en trucs

Linux maakt onderscheid tussen hoofdletters en kleine letters.

Linux gebruikt een slash / om directories van elkaar te scheiden. DOS gebruikt hiervoor een backslash.

In tegenstelling tot DOS kijkt Linux niet of het uit te voeren programma in de huidige directory staat. Als het programma dat je wilt uitvoeren niet in het path staat, moet je de directory expliciet aangeven. Als het programma in de huidige directory staat, moet je er ./ voor zetten.

Met alt-f1, f2, ...f9 kun je schakelen tussen verschillende virtual consoles. alt-f7 is meestal de console waar X-windows op draait. Om vanuit X-windows naar een van de text consoles te schakelen, moet je ctrl-alt-f1, f2, ... gebruiken.

ctrl-alt-backspace stopt de X-server (wordt meestal automatisch herstart). Tegenwoordig is dit meestal uitgeschakeld.

Als je achter een commando een & teken typt, wordt dit proces losgemaakt van de shell, zodat je verder kunt werken terwijl het commando op de achtergrond draait. Als een proces te lang duurt, kun je het onderbreken met ctrl-z, en daarna alsnog op de achtergrond laten doordraaien met het commando bg. Met 'fg n', met n het procesnummer, kun je een proces weer op de voorgrond halen.

Installing linux

If installation from cdrom is not working right, try booting with 'linux ide=nodma'

Getting help

help                                    geeft een lijst met all build-in bash commando's
help x                                  geeft uitleg over het bash build in commando x
info                                    help systeem
man                                     help systeem
whatis                                  geeft een korte omschrijving van een commando
file somefile                           geeft een korte omschrijving van een file

Working with files

ls                                      lijst van files en subdirectories
ls -d */                                list alleen subdirectories
cd                                      change directory
pwd                                     path van huidige directory
cp                                      copy
cp -r                                   copy also dirs
rm qwe                                  Remove file 'qwe'
rm -rf qwe                              Remove directory 'qwe' and dissable prompt for confirmation
chmod                                   wijzigen van toegangrechten van bestanden
chmod 777 somefile                      Makes somefile executable
chmod -R a+rw .                         Stel de toegangsrechten van dehuidige directory, en alle sub-directories in op lezen en schrijven

grep -r "qwe" *                         doorzoek alle files in de directory boom, en zoek naar de string "qwe"
grep -rn "#define MB_LEN_MAX" . --exclude-dir=proc --exclude-dir=sys

find -name "qwe*"                       doorzoekt de directory boom en geeft alle file names die beginnen met "qwe"
find -mtime 2                           vindt alle files die de afgelopen 2*24 uur zijn gewijzigt
find -mmin 20                           vindt alle files die de afgelopen 20 minuten zijn gewijzigt
find -name somename | xargs md5sum      run a program (in this case md5sum) on each result

Getting system info

cat /proc/cpuinfo                       geeft informatie over de processor
cat /proc/meminfo                       geeft details over het geheugen
cat /proc/version                       geeft details over versie van kernel
free                                    hoeveel geheuger er vrij is
df                                      hoeveel disk space vrij is
du -hs                                  geeft groote huidige directory
du -hs *                                geeft groote van alle files en sub directories
who                                     geeftlijst van alle ingelogde gebruikers
ps -Al                                  lijst van alle processen
pstree                                  lijst van processen in een tree formaat
lsof                                    lijst van alle open files. Is nuttig als umount niet lukt omdat de device busy is.
journalctl -xb                          view system log

uname -a                                geeft versie van kernel
lscpu                                   Lists CPU information
lsmod                                   Lists loaded kernel modules
lspci                                   list all PCI devices
lspci -v -s 0:2                         lists detailed info aboutpci device in slot 0:2
lsusb                                   Lists all usb devices
lsusb -v -s 1:3                         Lists detailed info about usb device in slot 1:3
lsblk -a                                Lists info about block devices
dmesg                                   Prints the messages in the kernel ring buffer

which qwe                               geeft het voledige pad van executable 'qwe'
ldd qwe                                 geeft de libraries die executable 'qwe' nodig heeft
ldd $(which qwe)                        combinatie van de bovenste twee

blkid                                   Laat de UUID's van de partitions zien

User and permission administration

adduser                                 voeg een nieuwe gebruikertoe
adduser user1 somegroup                 Add user1 to the somegroup group. Often you want to add a user to the sudo group.
addgroup somegroup                      Create a new group
passwd                                  wijzig het password
su                                      start een shell met de identiteit van root. Je blijft je eigen environment houden, (dus geen /sbin in je path)
su -                                    Zelfde als su, maar nu werk het beter omdat je ook de root environment variable hebt, zodat /sbin in het path staat.
su user2                                start een shell met de identiteit van user2
chgrp -R myGroup *                      Change group ID of all files
chown -R marnix:employee *              Change ownder of all files and dirs

System administration

mkdir qwe                               maak een nieuwe directory
rmdir qwe                               verwijderd directory
mknod                                   maak een device file
ln -s myTarget myLink                   maakteen nieuwe symbolic link
myvar=hello                             defines environment variable myvar tobe 'hello'
$myvar                                  use environment variable myvar
set                                     geeftalle environment variabelen
unset myvar                             delete environment variable myvar
export myvar                            maakt myvar beschikbaar voor child-processes?
echo $PATH                              geeft de    PATH environment variabele
PATH=$PATH:/mydir                       voegt 'mydir' aan het search path toe
ps -Al                                  lijst van alle processen
kill -kill n                            stopt het process met pid n
insmodfoo                               laad module foo in dekernel
rmmodfoo                                verwijderd modulefoo uit de kernel
alias l=ls                              maakt een alias
alias -p                                print allegedefineerde aliassen
halt                                    stopt linux
init n                                  schakeld    het systeem in runmode n
chroot qwe/                             start een shell en gebruik qwe/ als root directory
exit                                    verlaat een shell
startx                                  starts the X-server and the default graphical shell

service --status-all                    Laat de status van alle services zien
service smbd restart                    Restart een service. Je kunt ook start en stop doen.

systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target Disable sleep and hibernation (use 'unmask' to enable them again)

File system

fdformat /dev/fd0                       formateert een floppy
mke2fs /dev/fd0                         maak een filesystem op een floppy
dd if=device1 of=device2                kopieert data van device1 naardevice2
dd if=/dev/zero of=file count=1000      maak    een file met 1000 nul-bytes
fdisk -l /dev/hda                       list the partition table
fdisk -s /dev/hda1                      geeft de    grootte van een partitie in kByte
pivot_root new/ old/                    mount new/als het nieuwe root filesystem, en mount het huidige op old/
umask 000                               Give new files have read, write and execute permision for all users

Graphical user interface

systemctl start lightdm
systemctl stop lightdm

cvt 1920 1080

xrandr --newmode "1366x768" 85.25  1368 1440 1576 1784  768 771 781 798 -Hsync +Vsyn

xrandr --addmode VGA1 "1366x768"

xrandr --addmode VGA-1 "1920x1080_76.00"

Compression

tar -cf qwe.tar *                       Combine all subdirs into 'qwe.tar'
gzip qwe.tar                            Compres 'qwe.tar' to 'qwe.tar.gz'
bzip2 qwe.tar                           Compres 'qwe.tar' to 'qwe.tar.bz2'
gzip -d qwe.tar.gz                      Uncompres
bzip2 -d qwe.tar.bz2                    Uncompres
tar -xf qwe.tar                         Extract all filesfrom .tar file
tar -zxf qwe.tar.gz                     Extract all filesfrom .tar.gz file
tar -jxf qwe.tar.bz2                    Extract all files from.tar.bz2 file

Building software

gcc foo.c                               compileer de c broncode file foo.c
g++ foo.cpp                             compileerde C++ broncode file foo.cpp
gcc foo.c-L/usr/X11R6/lib-lX11          compileer een X-programma
gcc `gtk-config --cflags --libs`foo.c   compileer een GTK+programma
ndisasm qwe.bin                         disasseble a binary file
make xconfig                            configuratie scherm voor compile opties voor kernel
make dep; make clean; make bzImage      build een nieuwe    kernel
make modules                            build kernel modules
make modules_install                    kopieerd de modules naar /lib/modules
Extracting a source RPM                 rpm -i/mnt/cdrom/SRPM/qwe.src.rpm
Apply patches                           cat qwe-asd0.1.2.patch |    patch -p0
Generate a make file                    ./configure
Start building                          make
Install the software                    make install

Network

ssh 192.168.0.2                         log in op 192.168.0.2
insmod natsemi                          laad de driver voor een national semiconductors netwerkkaart in de kernel
ip a                                    geeft informatie over actieve netwerkkaarten
ifconfigeth0 192.168.0.1                actieveert deethernerkkaart
dhclient                                actieveertde netwerkkaart via dhcp
netstat -apn                            shows processes that listen orcommunicate over the network
netstat -lpn                            shows onlylisten sockets
smbd                                    SMB-server; onderdeel van Samba.
nmbd                                    netBIOS name server; onderdeelvan Samba.
smbclient                               geeft toegang tot bestanden op een andere pc
smbtree                                 geefteen lijst met smb hosts op het netwerk
httpd                                   Start de Apache web-server
ping 192.168.0.2                        Checksand times a tcp/ip route to a host
nmap -sS 192.168.0.2                    Do a port scan
nmap -p 22 --open 192.168.123.0/24      Scan the network for open ssh ports. Finds al the targets for which the first 24 bits of the address match
resolvectl                              Laat zien welke DNS servers je gebruikt

Installing Software

wget http://ftp.nl.debian/somefile      Downloads somefile from internet

With RPM

Location of RPM database                /var/lib/rpm

rpm -i qwe.rpm                          Instals package "qwe"
rpm -i --nodeps qwe.rpm                 Instals package "qwe",even if dependentcies are missing
rpm -i --root /mydir qwe.rpm            Instals package while using directory /mydir as root

rpm -e qwe                              Remove package qwe
rpm -e --nodeps qwe                     Removepackage qwe, even if it breaks dependencies

rpm -qa                                 List alle geinstallerde packages
rpm -qg Asd/Zxc                         list geinstallerdepackages in groep Asd/Zxc
rpm -qi qwe                             geeft een beschrijvingvan geinstalleerde package qwe
rpm -qpi qwe.rpm                        geeft een beschrijving van package qwe
rpm -qpl qwe.rpm                        list de files in package qwe
rpm -ql qwe                             list alle files ingeinstalleerde package qwe
rpm -qf /usr/bin/foo                    geeft de package waar foo in zit

With YUM

yum install somepackage

Debian packages

List of repositories                    /etc/apt/sources.list(contains for example: http://archive.ubuntu.com/)

dpkg -i something.deb                   Installs package something.deb
dpkg -l                                 Lists all installed packages
dpkg -l *something*                     List packages which contain 'something' in their name
dpkg -S somefile                        See which package provides somefile
dpkg -x somepackage.deb qwe             Extracts somepackage.deb to the qwe directory
dpkg -I somepackage.deb                 Shows info about somepackage.deb

apt-cahce search something              search for the string "something" in all available pacakges
apt install something                   download and installs something
apt install something --reinstall       Re-installs a package. Usefull for repairment if some file of the packege became corrupt or missing
apt install -f something.deb            installs a local deb package
apt --purge remove qwe                  Remove package qwe

apt update                              Resync the package index files wiht the locations found in /etc/apt/sources.list
apt upgrade                             Install latest version of all currently installed packages
apt check                               Check for broken dependencies

apt remove somepackage                  Removes packages somepackage but keeps configuration files
apt remove somepackage -s               Simulate the removal of a package
apt purge somepackage                   Completely removes somepackage and all its configuration files
apt dist-upgrade

apt-cache search something              This command will find packages that include the string something
apt-cache show somepackage              Shows detailed info of somepackage

apt download somepackage                Download the .deb file of somepackage

apt-cache rdepends somepackage          Laat zien welke pakketen afhankelijk zijn van somepackage

aptitude                                Een curses applicatie waarmee je de apt database kunt bekijken

aptitude why somepackage                Laat zien waarom een package geinstaleerd zou kunnen zijn (op basis van dependency info in andere packages)

sudo update-alternatives --config editor    Manages the symbolic links that determine the alternatives for certain tools

Applications

factor n                                factoriseerd n in priemgetallen

GUI apps

xkill                                   kill a gui application via a mouse click
gtop                                    grafische tool die alle actieve processen laat zien
display                                 start ImageMagic
netconf                                 configureren van netwerk
gnome-session                           starts the gnome desktop system
startlxde-pi                            start the lxde destop environment on the raspberry-pi

sort somefile.txt                       sorts the lines of a file aphabetically

Samengestelde commando's


Generate a word-frequency list of a text file:

cat file1 | tr ' ' "\n" | sort | uniq -i -c | sort -g -r > file2

Find out to which package a command belongs. Replace foo with the name of the command you want to look up

rpm -qf `which <b>foo</b>`

Hexdump of an file

cat myfile | xxd -g1 | less

View the binary contents of a partition. Replace n whith the block you want to see.

dd if=/dev/hda1 bs=1k count=1 skip=n | xxd -g1 | less

Open port 1200 and connect it to a shell

netcat -l -p 1200 -e /bin/bash

See which serial ports (COM ports) are connected:

sudo dmesg | grep tty

Find all changed files on your system:

find / -type d \( -path /proc -o -path /sys \) -prune -o \( -cmin +2 -a -cmin -10 \) -print 2>/dev/null