Improved grep version:
% glark
+--
+Grep with highlighting:
-glark grep extract-matches
+% grep --color=auto ...
+% hgrep ...
--
-Highlith
+Extract matches when grepping:
-grepc
-hgrep
+Usage examples:
+% ifconfig | grepc 'inet addr:(.*?)\s'
+% ifconfig | glark --extract-matches 'inet addr:(.*?)\s'
--
Output text as sound:
recode ibmpc..lat1 file # convert using recode
echo -e "s/\r//g" > dos2unix.sed; sed -f dos2unix.sed < dosfile > unixfile
--
-Save live stream to file:
+Save live audio stream to file:
-% mplayer -ao pcm -aofile $FILE
+% mplayer -ao pcm:file=$FILE
or
Develop, test and use exploit code with the Metasploit Framework:
cd /tmp
-wget http://www.metasploit.com/tools/framework-2.7-snapshot.tar.gz
-unp framework-2.7-snapshot.tar.gz
-cd framework*
+wget http://framework-mirrors.metasploit.com/msf/downloader/framework-3.0.tar.gz
+unp framework-3.0.tar.gz
+cd framework-3.0
./msfcli
--
Useful documentation:
remote host:
% netcat 192.168.0.1 3333
--
+Reverse Shell via SSH:
+
+local host (inside the network):
+% ssh -NR 1234:localhost:22 remote_host
+
+remote host (outside the network):
+% ssh localhost -p 1234
+--
Remove empty directories with zsh:
% rmdir ./**/*(/od) 2> /dev/null
umount /mnt/test && reboot # unmount partition and reboot...
See also: http://www.debian.org/releases/stable/i386/apcs04.html.en
+Avoid all of the above steps - use grml-debootstrap(8) instead!
--
Install (plain) Debian (etch release) via grml
mkdir /boot/grub # setup grub
cp /usr/share/doc/grub/examples/menu.lst /boot/grub
cat >> /boot/grub/menu.lst << EOF
-title Debian Etch, kernel 2.6.17-2-686 (on /dev/sda1)
+title Debian Etch, kernel 2.6.18-3-686 (on /dev/sda1)
root (hd0,0)
-kernel /boot/vmlinuz-2.6.17-2-686 root=/dev/sda1 ro
-initrd /boot/initrd.img-2.6.17-2-686
+kernel /boot/vmlinuz-2.6.18-3-686 root=/dev/sda1 ro
+initrd /boot/initrd.img-2.6.18-3-686
EOF
vim /boot/grub/menu.lst # adjust grub configuration to your needs
cd /dev && MAKEDEV generic # create default devices
map=/boot/map
vga=normal
-image=/boot/vmlinuz-2.6.17-grml
- label="2.6.17-grml"
+image=/boot/vmlinuz-2.6.18-grml
+ label="2.6.18-grml"
#append="...."
read-only
- initrd=/boot/initrd.img-2.6.17-grml
+ initrd=/boot/initrd.img-2.6.18-grml
EOF
See also: http://www.debian.org/releases/stable/i386/apcs04.html.en
+Avoid all of the above steps - use grml-debootstrap(8) instead!
--
Convert files from Unicode / UTF to ISO:
Estable OpenSSL-connection using self-signed-certificate.pem and display certificate:
# openssl s_client -showcerts -CAfile self-signed-certificate.pem -connect www.example.com:443
-Also take a look at make-ssl-cert (debconf wrapper for openssl)
+Generate ssl-certificate for use with apache2:
+
+export RANDFILE=/dev/random
+mkdir /etc/apache2/ssl/
+openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
+chmod 600 /etc/apache2/ssl/apache.pem
+
+Also take a look at make-ssl-cert (debconf wrapper for openssl):
+
+# /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/apache.pem
+
and mod-ssl-makecert (utility to create SSL certificates in /etc/apache/ssl.*/).
--
Change Windows NT password(s):
Create a certificate:
-# make-ssl-cert
+# mkdir /etc/apache2/ssl
+# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
Create a virtual host on port 443:
Enable listening on the HTTPS port (/etc/apache2/ports.conf):
Listen 443
+
+and make sure the SSL module is used:
+
+# a2enmod ssl
--
Useful Apache / Apache2 stuff
Adjust system for use of qemu with kqemu:
Make sure you have all you need:
-# apt-get update ; apt-get install qemu grml-kerneladdons
+# apt-get update ; apt-get install qemu grml-kerneladdons-$KERNELVERSION
Then set up kqemu:
Usage examples:
-# mptstat -P ALL
+# mpstat -P ALL
# iostat -x 1
# iostat -xtc 5 3
# vmstat 1
% startx 2>~/.xsession-errors &| exit
--
-Which process is writing to disk?
+Which process is writing to disk and/or causes the disk to spin up?
+
+First of all use lsof to check what's going on. Does not help? ->
# echo 1 > /proc/sys/vm/block_dump
-Warning: you must disable syslogd before you do this, or you must
-make sure that kernel output is not logged.
+The command sets a sysctl to cause the kernel to log all disk
+writes. Please notice that there is a lot of data. So please
+disable syslogd/syslog-ng before you do this, or you must make
+sure that kernel output is not logged.
When you're done, disable block dump using:
# echo 0 > /proc/sys/vm/block_dump
Alternative:
laptop-mode-tools provides a tool named lm-profiler (laptop mode profiler)
which handles block_dump on its own.
+
+See: $KERNEL-SOURCE/Documentation/laptop-mode.txt
+
+Also take a look at event-viewer(8) which is part of grml-debugtools.
--
Install initrd via initramfs-tools for currently running kernel:
Sometimes you have lots of packages .deb that you would like to use APT to
install so that the dependencies would be automatically solved. Solution:
-mkdir ~debs
+mkdir debs
dpkg-scanpackages debs /dev/null | gzip > debs/Packages.gz
echo " deb file:/root debs/" >> /etc/apt/sources.list
dpkg-scansources debs | gzip > debs/Sources.gz
# xfs_admin -l /dev/sda1
reiserfs without vol_id:
-# debugreiserfs /dev/sda1 | grep UUID
+# debugreiserfs /dev/sda1 | grep -i label
+
+jfs without vol_id:
+# jfs_tune -l /dev/sda1 | grep -i label
reiser4 without vol_id:
-# debugfs.reiser4 /dev/sda1 | grep uuid
+# debugfs.reiser4 /dev/sda1 | grep -i label
--
Check filesystem's UUID:
# vol_id -u /dev/sda1
ext2/3 without vol_id:
-# dumpe2fs /dev/sda1 | grep UUID
+# dumpe2fs /dev/sda1 | grep -i UUID
xfs without vol_id:
# xfs_admin -u /dev/sda1
reiserfs without vol_id:
-# debugreiserfs /dev/sda1 | grep LABEL
+# debugreiserfs /dev/sda1 | grep -i UUID
reiser4 without vol_id:
-# debugfs.reiser4 /dev/sda1 | grep label
+# debugfs.reiser4 /dev/sda1 | grep -i UUID
+--
+Change a filesystem's LABEL:
+
+swap:
+# mkswap -L $LABEL /dev/sda1
+
+ext2/ext3:
+# e2label /dev/sda1 $LABEL
+# tune2fs -L $LABEL /dev/sda1
+
+reiserfs:
+# reiserfstune -l $LABEL /dev/sda1
+
+jfs:
+# jfs_tune -L $LABEL /dev/sda1
+
+xfs:
+# xfs_admin -L $LABEL /dev/sda1
+
+fat/vfat:
+# echo 'drive i: file="/dev/sda1"' >> ~/.mtoolsrc
+# mlabel -s i:$LABEL
+
+ntfs:
+# ntfslabel $LABEL /dev/sda1
--
Disable pdiffs feature of APT:
# /usr/share/mplayer/scripts/win32codecs.sh
+or
+
+# /usr/share/mplayer/scripts/binary_codecs.sh install
+
+(depending on the mplayer version you have).
+
To play encrypted DVDs and if you are living in a country where using
libdvdcss code is not illegal can install Debian package libdvdread3
and use the script /usr/share/doc/libdvdread3/install-css.sh.
This HowTo is also available online at http://grml.org/xen/
--
+Play tetris with zsh:
+
+autoload -U tetris
+zle -N tetris
+bindkey "^Xt" tetris
+
+Now press 'ctrl-x t'.
+--
+Set up a router with grml
+
+Run grml-router script:
+# grml-router
+
+Install dnsmasq if not already present:
+# apt-get update ; apt-get install dnsmasq
+
+Adjust /etc/dnsmasq.conf according to your needs:
+# cat >> /etc/dnsmasq.conf << EOF
+domain-needed
+bogus-priv
+dhcp-range=19.168.0.124,192.168.0.254,1m # dhcp range
+dhcp-option=3,192.168.0.1 # dns server
+dhcp-option=1,255.255.255.0 # netmask
+EOF
+
+Start dnsmasq finally:
+# Restart dnsmasq
+--
+Display stats about memory allocations performed by a program:
+
+Usage example for 'ls':
+
+% LD_PRELOAD=/lib/libmemusage.so ls > /dev/null
+--
+Use KVM (Kernel-based Virtual Machine for Linux):
+Make sure to install the relevant tools:
+# apt-get update ; apt-get install kvm
+# modprobe kvm
+
+Test it with a minimal system like ttylinux:
+# wget http://www.minimalinux.org/ttylinux/packages/bootcd-i386-5.3.iso.gz
+# gzip -d bootcd-i386-5.3.iso.gz
+# kvm -cdrom bootcd-i386-5.3.iso
+--
+EEPROM data decoding for SDRAM DIMM modules:
+
+# modprobe eeprom
+# /usr/share/doc/lm-sensors/examples/eeprom/decode-dimms.pl
+--
+Set up and use DVB:
+
+Make sure your device is supported by Linux and running.
+See http://www.linuxtv.org/ for more details.
+
+If the DVB device works on your system (see 'hwinfo --usb'
+when using a DVB usb device for example), then make sure you
+have the scan util from dvb-utils available:
+
+# aptitude install dvb-utils
+
+Then create a channels.conf configuration file:
+
+% scan /usr/share/doc/dvb-utils/examples/scan/... > ~/.mplayer/channels.conf
+
+You can find some example configuration files on
+your grml system in ~/.channels. Usage example:
+
+% ln -s ~/.mplayer/channels.conf-AT-graz ~/.mplayer/channels.conf
+
+Tip: w_scan (see http://free.pages.at/wirbel4vdr/w_scan/index2.html)
+might be useful if you do not know the initial configuration
+details.
+--
+Get the lastest mercurial snapshot:
+
+Make sure you have the python-dev package available:
+# apt-get update ; apt-get install python-dev
+
+Get and build the source:
+% hg clone http://selenic.com/repo/hg mercurial
+% cd mercurial
+% make local
+% export PYTHONPATH=$(pwd)
+% export PATH=$PATH:$(pwd)
+
+now you should have the newest version of mercurial whenever you execute hg.
+
+To update to the lastest development snapshot, additionally use
+the following commands:
+% hg pull -u http://hg.intevation.org/mercurial/crew
+% make local
+--
+Configure timezone
+==================
+
+Available bootoptions relevant in live-cd mode:
+-----------------------------------------------
+
+* utc: set UTC, if your system clock is set to UTC (GMT)
+* gmt: set UTC, if your system clock is set to UTC (GMT) [like bootoption utc]
+* tz=$option: set timezone to corresponding $option, usage example:
+ tz=Europe/Vienna
+
+Configuration options relevant on harddisk installation:
+--------------------------------------------------------
+
+* Use the tzconfig utility to set the local timezone:
+
+ # tzconfig
+
+ which adjusts /etc/timezone and /etc/localtime according
+ to the provided information.
+
+* /etc/default/rcS: set variable UTC according to your needs,
+ whether your system clock is set to UTC (UTC='yes') or
+ not (UTC='no')
+
+* /etc/localtime: adjust zoneinfo according to your needs:
+
+ # ln -sf /usr/share/zoneinfo/$WHATEVER_YOU_WANT /etc/localtime
+
+ The zoneinfo directory contains the time zone files that were
+ compiled by zic. The files contain information such as rules
+ about DST. They allow the kernel to convert UTC UNIX time into
+ appropriate local dates and times. Use the zdump utility to
+ print current time and date (in the specified time zone).
+
+* /etc/adjtime: This file is used e.g. by the adjtimex function,
+ which can smoothly adjust system time while the system runs
+
+* If you change the time (using 'date --set ...', ntpdate,...)
+ it is worth setting also the hardware clock to the correct time:
+
+ # hwclock --systohc [--utc]
+
+ Remember to add the --utc -option if the hardware clock is set
+ to UTC!
+
+Still problems?
+---------------
+
+Check your current settings via:
+
+ cat /etc/timezone
+ zdump /etc/localtime
+ echo $TZ
+ hwclock --show
+ grep hwclock /etc/runlevel.conf
+ grep '^UTC' /etc/default/rc
+
+Further information:
+--------------------
+
+ hwclock(8) tzselect(1) tzconfig(8)
+ http://www.debian.org/doc/manuals/system-administrator/ch-sysadmin-time.html
+ http://wiki.debian.org/TimeZoneChanges
+--
+Recorder shellscript session using script:
+
+% script -t 2>~/upgrade.time -a ~/upgrade.script
+% scriptreplay ~/upgrade.time ~/upgrade.script
+--