Progmar Marcin Załęczny



partimage - application for creating disk images
gparted - application for partitioning and formatting disks
mkisofs - application for creating iso images ready to burn onto CD/DVD
cdrecord - application for burning iso images onto CD/DVD
dmesg - displays set of usefull system informations, it helps to know what system file is associated to pendrive plugged into the computer (ex. /dev/sdf1)
evince - pdf viewer
cabextract - application for extracting *.cab windows archives (located in the universe repo)
update-rc.d - command for installing/uninstalling system initialisation scripts (the scripts are runned during system startup)
rsyslog - replacement for a tradtional syslog daemon on Linux
apropos - command for displaying all commands related to passed as argument keyword
cfdisk - replacement for fdisk
xrandr - monitor management system command
Transmission - torrent client for Linux
eog - Gnome image viewer (Eye of Gnome)
xsane - scanning application (sudo apt-get install xsane)
comix - *.cbr comix viewer (sudo apt-get install comix, requires unrar program)
mysql-workbench- gui for managing MySQL databases (sudo apt-get install mysql-workbench)
SQLite DB Browser- gui for managing SQLite databases (sudo apt-get install sqlitebrowser)
SimpleScreenRecorder- program for recording screencasts
Ardour- complex music editor
VeraCrypt- program for encryption/decryption large data sets
TruPax- program for encryption/decryption small data sets (compatible with VeraCrypt)
gLabels- provides serial creating and printing invitations and visiting-cards
Lyx- gui for LaTeX documents edition


Ripping from fname.mp4 file one frame starting at offset 148.9 and saving it to file on disk: frame.png ffmpeg -vframes 1 -ss 148.9 -i fname.mp4 -f image2 frame.png

Mounting remote filesystem: sshfs user@ /mnt/local/directory -p 22

Downloading remote http file at maximum speed of 70kB using trickle command trickle -u 1 -d 70 wget -c

Downloading remote ftp file using wget command (if file is partially saved then downloading is continued at file size offset): wget -c ftp://username:password@host_address/path/to/file

Downloading file with timestamping given: wget --timeout=120 --timestamping http://server/file

Downloading file and saving it with different file name: wget -O

Limiting download speed using wget: wget --limit-rate=200k

Downloading in background (standard output of the command will be saved to `wget-log' file on disk): wget -b Progress view: tail -f wget-log

Downloading file with custom user-agent specified: wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD

Downloading file with custom user-agent and referer specified: wget --referer="" --user-agent="Mozilla/5.0"

Checking remote file existence: wget --spider DOWNLOAD-URL

Specifying download tries count: wget --tries=75 DOWNLOAD-URL

Downloading all urls placed in text file (one url per line): wget -i download-file-list.txt

Downloading entire website WEBSITE-URL to LOCAL-DIR directory (mirroring it). All hyperlinks are translated in the way the downloaded website is displayed in webbrowser properly: wget --mirror -p --convert-links -P LOCAL-DIR WEBSITE-URL

Skipping pointed files during downloading: wget --reject=gif WEBSITE-URL

Redirecting standard errors from stderr to download.log file on disk: wget -o download.log DOWNLOAD-URL

Downloading file to maximum size of 5MB: wget -Q5m -i DOWNLOAD-URL

Downloading only specified types of files: wget -r -A.pdf DOWNLOAD-URL

Displays directory size following symbolic links: du -h -L

Displays the size of specified directory including its subdirectories (no deeper recurency involved): du -h -c --max-depth=1

Running shell with root privileges and global environment settings: sudo -i

Adding a user to the system. It's homedir is /var/www_tests, it's shell is /bin/bash and it belongs to www system group: useradd -c "www" -d /var/www_tests -m -s /bin/bash www

Adding existing user to existing group: usermod -a -G groupname username

Enter edition mode of file containing users which can gain root privileges (sudoers): sudo visudo

Changes www user's shell: chsh www

Removes \r characters inside the file file.txt: sed -i 's/\r//' file.txt

Displays second word of the dot-separated words (tty2 here): echo "5105.tty2.MyComputer" | awk 'BEGIN { FS = "." }; {print $2}'

Extracts second word of the dot-separated words (tty2 here) and then removes tty string of it (result is: 2): echo "5105.tty2.MyComputer" | awk 'BEGIN { FS = "." }; {print $2}' | sed 's/tty//'

Displays 2 by using regular expressions: echo "5105.tty2.MyComputer" | sed -e 's/.*y\(.*\?\)\..*/\1/'

Waits for entering the line and if it contains some string then it is displayed: awk '/me/{print "line containing me --", $0}'

Displays string length in bytes (here is 6 because of default Ubuntu's system encoding: UTF-8): awk 'BEGIN { print length("ąćę");exit }'

Displays substring starting at second byte (not at second letter!): awk 'BEGIN { print substr("ąćę",2);exit }'

Displays first word: echo "asd dfg hjk" | awk '{print $1}'

Displays third word (separator is set to : character): echo "asd:dfg:hjk" | awk -F: '{print $3}'

Print users that have bash as shell and home in /home directory: getent passwd | awk -F: '$7 ~ /\/bin\/bash/ && $6 ~ /^\/home/ {print $1}'

Scale image file to 50% its original size: convert src.jpg =resize 50% dst.jpg
mogrify -resize 400 src.jpg - better quality of scaled image

Appends specified images image#.png into one output image output_image.png. Appends them vertically: convert -append image1.png image2.png image3.png image4.png output_image.png

Appends specified images image#.png into one output image output_image.png. Appends them horizontally: convert +append image1.png image2.png image3.png image4.png output_image.png

Copy file /home/username/src_filename to /home/username/dst_dir directory and if it is a symbolic link then symbolic link is copied instead of copying pointed destination: cp -P /home/username/src_filename /home/username/dst_dir

Prints date encoded in unix timestamp: date --utc -d '@1197089792'

Re-compress *.png files using the largest possible compression ratio. The files are re-co Rekompresja plików png z największym współczynnikiem kompresji. Pliki są rekompresowane w miejscu. Jeśli wyjściowy plik wychodzi większy, to plik jest zostawiany bez zmian: advpng -z -4 *.png

Prints hard-disks by uuid: ls -l /dev/disk/by-uuid

Find file in / directory: find / -name filename.txt

Making iso image (image.iso) that contains file filename or entire dirname directory: mkisofs -r -R -J -l filename_or_dirname >image.iso

Burn image.iso image onto the CD (on second burning-device, first one is - scd0): cdrecord dev=/dev/scd1 -v --eject speed=4 image.iso

Copying CD/DVD into the second CD/DVD: mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
mkisofs -r -R -J -l -o /tmp/image.iso /mnt/cdrom
cdrecord dev=/dev/scd1 -v --eject speed=4 /tmp/image.iso

Mounting image.iso image into the /mnt/image directory: mount -t iso9660 -o loop image.iso /mnt/image

Mounting cdrom drive: mount -t iso9660 /dev/cdrom /media/cdrom

Unmounting and ejecting cdrom: umount /dev/cdrom

Obfuscate hard disk with randomed values (it goes on by a few hours): dd if=/dev/urandom of=/dev/sda

Creating file of 1GB size and fulfilled with NULLs: dd if=/dev/zero bs=1024M count=1

Making ext4 filesystem on the disk: mkfs.ext4 -j -O extent -L "" /dev/sda7

Making fat32 filesystem on the sdcard: sudo mkfs.fat /dev/mmcblk0 -s 16 -F 32

Compress file with maximal ratio using gzip command and recording time of the process: /usr/bin/time -f “%U seconds CPU %P” gzip -c9 > test.gz Warning! It must be /usr/bin/time or internal time shell's command will be applied.

Compress file with maximal ratio using bzip2 command and recording time of the process: /usr/bin/time -f “%U seconds CPU %P” bzip2 -c9 > test.bz2 Compression with bzip2 takes about 2 times longer than by using gzip.

Compress file with maximal ratio using lzma command and recording time of the process: /usr/bin/time -f “%U seconds CPU %P” lzma -c9 > test.lzma Kompresja lzma zajmuję baaardzo długo. Lepiej sobie odpuścić. Compression with lzma takes as many hours that give up is recommended.

Compress directory with zip command: zip -r dirname

Adding into zip archive specified files: zip -u file1 file2 file3 ...

Uncompressing specified tar bz2 file: tar xjvf filename.tar.bz2

Uncompressing specified tar gzip file: tar xzvf filename.tar.gz

Uncompressing specified gzip file: zcat filename.gz > filename

Uncompressing specified tar xz file: tar xJvf filename.tar.xz

List of files of filename.tar.bz2 archive: tar tjvf filename.tar.bz2

List of files of filename.tar.gz archive: tar tzvf filename.tar.gz

Uncompress specified tar gzip file starting from specified file inside the archive: tar xzvf filename.tar.gz -K --starting-file backup/folder/

Extract archive to a specified directory: tar -xvf ../eudev-2.1.1-manpages.tar.bz2 -C /usr/share

Prints full information about test* files inside current directory by using ls command. -h switch make the file sizez to be printed using human postfixes (KB, MB, GB, etc): ls -lh test*

Tar specified directory into opt.tar file: tar -cf opt.tar /opt

Compilation and installation of typical Linux library's sources:

 cd libname
    ./configure (by default prefix=/usr/local)
    sudo make install (install it to the prefix directory, here: /usr/local)
    sudo ldconfig
       Now we must add /usr/local/lib directory into the /etc/ file (or one of included files)
       as first entry. Doing so we override already existing but older library of the same name.
       The new library will be used by ./configure scripts. After the edition we have execute following
       sudo ldconfig

Removing wpasupplicant package: dpkg --purge wpasupplicant
apt-get remove wpasupplicant

Install wpasupplicant package: apt-get install wpasupplicant

Displays short information about all installed net interfaces: ip link show
ip link list

Displays little more (among ip addresses are included) information about all installed net interfaces: ip addr show

Making specified net device to have specified ip address with mask (ip: and 24bit mask: ip addr add dev eth0

Turn on/Turn off eth0 net interface: ip link set dev eth0 up/down

Displays routing table: ip route
ip route list

Adding default routing entry: ip route add default via

Scanning the air for available Access Points: iwlist wlan0 scan

Display some information about wlan0 device: iwconfig wlan0

Lists all devices installed in ndiswrapper: ndiswrapper -l

Removing specified driver from ndiswrapper: ndiswrapper -r drivername

Install specified driver in ndiswrapper: ndiswrapper -i drivername.inf

Save configuration accessible for modprobe: ndiswrapper -m

Adding a new job, that will run for a 5 minutes: at now + 5 minutes[ENTER]
warning: commands will be executed using /bin/sh
touch test [ENTER]
[press CTRL+D]
job 3 at Tue Jul 26 13:13:00 2011

List actual jobs to be executed: at -l or: atq

Run job at specified time: at 13:40 2011-08-05

Remove job that has specified number: atrm job_number

Install package: apt-get install package_name

Removes all cached packages: apt-get clean

Lists all (also available for installation) packages: apt-cache pkgnames

Displays information about installed package: apt-cache show package_name

Removes package together with its configuration files: apt-get --purge remove package_name

dpkg -l - compact list of installed packages including short description
dpkg -s package_name - information about package's status including short package description
dpkg -p package_name - information about package's status including short package description (the same as above)
dpkg -L package_name - displays package's file list
dpkg -S pattern - searches for packages that include file name matching specified pattern
dpkg -l | cut -f 3 -d" " - displays list of installed packages
dpkg -r package - removes package

Prints installed glibc = libc = Gnu standard c library version: dpkg -l | grep libc6

Prints installed libstdc = Gnu standard c++ library version: dpkg -l | grep libstdc

Extracting control files from specified package: dpkg -e package_name

Displays extended information about specified package (ex. list of other required packages and theirs versions): dpkg -I package_name

Displays version number of currently installed package (specified without version number and architecture): dpkg-query -W basic_package_name for instance: dpkg-query -W zip

Displays previous and current runlevel: runlevel

CAUTION: description below is valid for Ubuntu version 14.10 and below. For version 15.04 and above read this article. Installs placed in /etc/init.d directory as a script that is executed at system startup (autostart). It is executed in default runlevels: 2,3,4 and 5. It is not executed in runlevels: 0, 1 and 6. update-rc.d defaults Removes script's startup links. -f switch forces removing the links event if script exists in /etc/init.d directory: update-rc.d -f remove

Detail information about installed hardware: lshw Detail information about installed hard drives: lshw -C disk Detail information about installed net devices: lshw -C network

Lists only directories in current location: ls -l | grep "^d"

Searching with Perl regexp's and show only match: grep -o -P "\.\w([\w\d]*)" mootools-1.3.2-core.js

Running system upgrade with redirecting stderr to stdout and redirecting stdout both to monitor and file named apt-get.log. Tee command displays data to the monitor and transparently saves it to the file on disk although: apt-get upgrade 2>&1 | tee ~/apt-get.log

Run gedit program as root (Alt+F2) with opened /etc/network/interfaces file: gksudo gedit /etc/network/interfaces

Command for sending error report with some detailed information to Ubuntu system maintainers (working not tested): reportbug --template -S normal package-name

Makes jar file: jar cf file.jar input-files

Displays jar file content: jar tf file.jar

Extracts jar file: jar xf file.jar

Extracts specified files from the jar file: jar xf file.jar archived-file(s)

Embedding jar applet inside the web page:

    <applet code=AppletClassName.class
        width=width height=height>

Executing jar application: java -jar app.jar

Signing jar file with certificate: jarsigner -keystore .keystore -storepass password myjar.jar alias

Using mysql to display numbers 1 22 333 444 separated with colons: mysql -u root -p -BNe "SELECT '1', '22', '333', '4444'" | tr \\t ','

Importing sql commands into current Mysql database: \. /var/www/sql/sample_db.sql

Removes last character from variable in bash: variable=${variable:0:$((${#variable}-1))}

Set value of 1 to variable contained in b variable: eval $b=1

Bash. Prints value of variable with name stored in x variable. $[] is equivalent to $(( )): $[$x]

Using ssh to connect to remote host without checking RSA fingerprint: ssh -o StrictHostKeyChecking=no user@

Recording all actions on the Pulpit: recordmydesktop --no-sound -o /tmp/aaa.ogv

Installing flashplayer for firefox: Download file: install_flash_player_10_linux.tar.gz from webpage:
Extract file install_flash_player_10_linux.tar.gz and copy file to the directory: /usr/lib/firefox-addons/plugins

Application for listening socket: unix-listen:/tmp/socket and prints data into stdio: socat unix-listen:/tmp/socket stdio

Close system immediately from commandline: shutdown -h now

Reboot system from commandline: shutdown -r now or reboot

List devices with btrfs filesystem: btrfs device scan

List device types (device type) with btrfs filesystem: btrfs filesystem show [/dev/sdb]

Create btrfs filesystem: mkfs.btrfs /dev/sdb

Create btrfs filesystem paralelly on a few devices with mirroring (RAID1): mkfs.btrfs /dev/sdb /dev/sdc /dev/sdd

Create btrfs filesystem paralelly on a few devices without mirroring (RAID0): mkfs.btrfs -m raid0 /dev/sdb /dev/sdc /dev/sdd

Create btrfs filesystem paralelly on a few devices with mirroring metadata and file data (RAID10): mkfs.btrfs -m raid10 /dev/sdb /dev/sdc /dev/sdd

Mounting RAID: mount /dev/sdb /mnt/raid

Delete device from RAID: btrfs device delete /dev/sdd /mnt/raid

Add device to RAID: btrfs device add /dev/sdd /mnt/raid

Balancing RAID filesystem (after adding new hd): btrfs filesystem balance /mnt/raid

Adding subvolume: btrfs subvolume create /mnt/raid/subvol

List of existing subvolumes: btrfs subvolume list /mnt/raid

Set chosen subvolume as default one: btrfs subvolume set-default ID /mnt/raid

Mounting chosen subvol in other directory: mount -t btrfs -o subvol=subvol /dev/sdb /subvol

Making a snapshot: btrfs subvolume snapshot /mnt/raid /mnt/snapshot_of_root

Display subvolumes and their snapshots: btrfs subvolume list /mnt/raid

Deletes subvolume and snapshot: btrfs subvolume delete /mnt/raid/subvol
btrfs subvolume delete /mnt/raid/snapshot_of_root

Resize subvolume: btrfs filesystem resize -1GB /mnt/raid
btrfs filesystem resize +1GB /mnt/raid
btrfs filesystem resize max /mnt/raid

More detailed counterpart of df command for btrfs filesystem: btrfs filesystem df /mnt/raid

Volume's defragmentation: btrfs filesystem defragment /mnt/raid

Mounting of volume with CRC-32C turned off and zlib compession turned on: mount -t btrfs -o nodatasum,compress /dev/sdb /mnt/raid

Display which process opened given file: lsof /var/log/syslog

Display files opened by specified process: lsof -c rsyslog

Display local services that are listening for connections: lsof -iTCP | grep LISTEN

Display all outgoing ssh connections with server opened by user username: lsof -a -u username

Tests availability of a webpage under stress of specified count of users: siege -c 30

Show information on memory and processor usage: vmstat

Show information on memory and processor usage in 5 lines with 1 second interval: vmstat 1 5

Show stats for disks usage: vmstat -d

Displays stats for CPU and memory events: vmstat -s

Display stats for specified partition: vmstat -p /dev/sdb1

Display stats for cpu usage and I/O operations: iostat

Display stats for cpu usage and I/O operations: dstat

Display running process count: dstat --proc-count

Display disk usage stats: dstat -d --disk-util --freespace

Display memory usage stats: dstat -g -l -m -s --top-mem

Display cpu usage stats: dstat -c -y -l --proc-count --top-cpu

Display networking usage stats: dstat -n --socket --tcp --udp

/var/log/messages file monitoring. If some lines are added to the file, the ones are displayed on the screen: tail -f /var/log/messages

Printing current date in YYYYmmdd format: date +%Y%m%d

Setting current hour: date +%T -s "13:48:50"

Renew ip address from dhcp server: dhclient -r

Recursive removing directory .svn from current directory and all its subdirectories: find . -type d -name .svn -exec rm -rf {} \;

Obtaining SHA1 fingerprint of android test certificate: keytool -list -alias androiddebugkey -keystore /home/mzaleczny/.android/debug.keystore -storepass android -keypass android

Obtaining all data of android test certificate: keytool -list -v -alias androiddebugkey -keystore /home/mzaleczny/.android/debug.keystore -storepass android -keypass android

Generating new certificate: keytool -genkey -v -keystore ~/.android/test.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000

Displays kernel threads: ps -ef

Displays process list running in the system with their nice values (in NI column): ps -el

Displays process list running in the system with their real time priority (in RTPRIO column). Value of '-' in RTPRIO column means lack of real time priority: ps -eo state,uid,pid,ppid,rtprio,time,comm

Less compiler can be instaled by following command: sudo apt-get install node-less

Print hexadecimal file content together with its offsets on the left: od -Ax -tx1 -w16 <fname

Removing debugging symbols from the files: strip --strip-debug /tools/lib/*
strip --strip-unneeded /tools/{,s}bin/*
CAUTION: --strip-unneeded command shouldn't be runned for libraries because the static ones would be corrupted.

uname -a                           # Get the kernel version
lsb_release -a                     # Full release info of any LSB distribution
cat /etc/debian_version            # Get Debian version
uptime                             # Show how long the system has been running + load
hostname                           # system's host name
hostname -i                        # Display the IP address of the host
man hier                           # Description of the file system hierarchy
last reboot                        # Show system reboot history
dmesg                              # Detected hardware and boot messages
lsdev                              # information about installed hardware (requires procinfo package)
sudo dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8 # Read BIOS
cat /proc/cpuinfo                  # CPU model
cat /proc/meminfo                  # Hardware memory
grep MemTotal /proc/meminfo        # Display the physical memory
watch -n1 'cat /proc/interrupts'   # Watch changeable interrupts continuously
free -m                            # Used and free memory (-m for MB)
cat /proc/devices                  # Configured devices
lspci -tv                          # Show PCI devices
lsusb -tv                          # Show USB devices
lshal                              # Show a list of all devices with their properties (requires hal package)
sudo dmidecode                     # Show DMI/SMBIOS: hw info from the BIOS

gconf-editor - configuration editor
md5sum - calculating md5 control sum of specified filename or standard input
sha1sum - calculating sha1 control sum of specified filename or standard input
partprobe /dev/sda - Informs operating system about changes in
           partition table of sda drive
mount -o remount, rw / - Remounting / filesystem with read/write privileges
env - lists user environment variables
set = declare - lists all environment variables
help - displays internal bash commands
help cmd - displays help for specified command
type cmd - displays location of specified command
history - displays bash history
tail -f filename - displays last 10 lines of the file and waits for and
           displays next lines saved to the file
sudo fdisk -l - displays partition information for all drives in the system
mount - displays all mounted filesystems
lsof - displays opened files list
fuser - displays information about which processes owns opened files
tune2fs -c - sets max counter of specified drive mountings which after
           exceeding causes running disk checker tool
tune2fs -i - sets max counter of specified drive mountings days which
           after exceeding causes running disk checker tool
tune2fs -l /dev/sda - displays hard drive information
tune2fs -j /dev/sda - converts ext2 filesystem to ext3 filesystsems
           (adds journal)
tune2fs -O extents,uninit_bg,dir_index /dev/sdb1 - converts ext3 filesystem
           to ext4 filesystem
find /home/mzaleczny -xdev -user mzaleczny -print | xargs ls -ldS >output.txt -
           lists all files of mzaleczny user within his home directory sorted descending
           (for files with spaces in name there are displayed errors)
find /home/mzaleczny -xdev -size +700k -print | xargs ls -ldS >output.txt -
           lists all files greater than 700 kb of mzaleczny user within his home directory
           sorted descending (for files with spaces in name there are displayed errors)
lspci -vv | grep -i eth - displays detailed information about network
           interface card
wget -p - downloads entire page with css styles
           and scripts
wget -pk - downloads entire page with css styles and
           scripts and converts hyperlinks to point local files
curl -T install.log
           -Q "-RNFR install.log" -Q "-RNTO Xinstall.log"
           - uploading file install.log to ftp server and renaming it to Xinstall.log
scp plik user@serwer:/tmp/ - copies file by ssh to /tmp directory on remote
scp user@serwer:/tmp/plik . - copies file by ssh from remote server to current
           working directory
scp -r katalog user@serwer:/tmp/ - copies recursively entire directory by ssh
           to remote server
scp -P 12345 plik user@serwer:/tmp/ - copies file by ssh to /tmp directory on
           remote server connecting with ssh on remote server on 12345 port
rsync --recursive --verbose --dry-run directory/ user@serwer:/tmp/ - displays information about
           what files and directories will be copied (by ssh) to the remote directory /tmp on specified server
rsync --recursive --verbose directory/ user@serwer:/tmp/ - copies recursively entire local directory by ssh
           to remote server to dir /tmp
rsync --recursive --verbose user@serwer:/tmp/ directory/ - copies recursively entire content of the
           remote directory /tmp by ssh to current machine
findsmb - scans network for SMB servers
smbtree - displays tree of network neighbourhood
smbpasswd -a username - adds Linux user to Samba group
smbclient -L serwer - lists services served by specified server for
           anonymous user
smbclient -L serwer -U username - lists services served by specified server
           for specified user
smbclient // -U username - connecting to Samba directory
mount -t cifs -o username=robert,password=haslo // /mnt/punktmontowania -
           mounting samba directory within local filesystem
smbstatus - displays Samba connections and file locks
nmblookup nazwa - displays ip address of NetBIOS named machine
nmblookup -U serwer - displays ip address of NetBIOS named
           machine within specified subnet
testparm - tests Samba config file
testparm filename - tests specified Samba config file
sudo fusermount -u /remote/directory - unmounting remote directory mounted
           earlier by sshfs command
ip link set eth1 promisc on - setting network card to promiscuous mode
usermod -d /home/username username - changes user's home directory for
           specified user
pwconv - converts file /etc/passwd containing hashed passwords to files /etc/passwd
           (without hashed passwords) and /etc/shadow (with hashed passwords)
grpconv - converts file /etc/group containing hashed passwords to files /etc/group
           (without hashed passwords) and /etc/gshadow (with hashed passwords)
netstat -tupn - lists TCP (-t) and UDP (-u) connections and process that owns the
           connection (-p) without translating IP addresses to human readable names
           (-n <=> --numeric)
killall -s SIGHUP inetd - sending SIGHUP signal to inetd process (it makes the process
           to reread configuration file)

ping -s 1472 server - pings given server with package of specified size (in bytes)
/etc/init.d/networking restart - restarts networking
find dirname -type d | xargs chmod 777 - sets privileges of 777 for all subdirectories of directory dirname
apache2ctl configtest - tests apache2 configuration file if it doesn't have errors
apache2ctl graceful - restart apache2 service
/etc/init.d/apache2 restart - restart apache2 service
gpasswd -a username groupname - adds user username to group groupname
lpr - sending specified document to the default printer
lpr -P printername - sending specified document to the printername printer
lpr -P printername document1 document2 document3 - sending document1, document2, doument3 files to the printername printer
lpc status - shows status of all installed printers
lpstat -p - displays available printers
lpstat -o or lpq - lists default printer's queue
lprm - - removes all printer jobs of currently logged user from default printer
lprm -P lp0 - removes all printer jobs from specified printer
lprm 133 - removes job with number 133 from default printer
fuser -v filename/dirname - lists processes which are using specified file or directory
fuser -k filename/dirname - kills processes which are using specified file or directory
cpio -idv < filename - extracting filename file (if is of cpio archive) to current working directory
initctl list - prints status of all available Upstart services
status service - prints status of specified Upstart service
stop service - stops specified Upstart service
start service - starts specified Upstart service
fsck -y -C /dev/sda1 - scans and fixes found errors in specified filesystem

Dumps database of name test and compress it to specified filename:
mysqldump -u root -p test | gzip -c9 >"/home/mzaleczny/backup/$date"_databases_test.sql.gz

List recursively all content of /tmp directory: ls -R /tmp

Remove recursively all files a and aa from /tmp directory: find /tmp \( -name a -o -name aa \) -delete

Formating date output we can do by specify its format after + sign, ex: date +"%A %B %d"

Command script allows us to grab all terminal session of current user until command exit: script -a output_file

Converts line endings from Linux format to Windows format: unix2dos plik.txt

Converts line endings from Linux format to Mac OS X format: unix2mac plik.txt

Converts line endings from Windows format to Linux format: dos2unix plik.txt

Converts line endings from Windows format to Mac OS X format: dos2mac plik.txt

List tar archive content without extracting its: tar -tf archive.tar

Display current shell name: echo $0

Less files we compile by executing: lessc bootstrap.less >bootstrap.css Lessc application can be installed by: sudo apt-get install node-less

Decreasing jpeg file size: jpegoptim --strip-all fname.jpg Jpegoptim application can be installed by: sudo apt-get install jpegoptim

Decreasing png file size: optipng -o5 fname.png Optipng application can be installed by: sudo apt-get install optipng

Decreasing size of all *jpg files in current directory and all its subdirectories: find . -type f -name "*.jpg" -exec jpegoptim --strip-all {} \;

Checking for GLIBC version: ldd --version | head -n1 | cut -d" " -f2-

Checking for kernel version: cat /proc/version

Checking for Perl version: echo Perl `perl -V:version`

Initializing /dev/sda8 partition as a swap partition: mkswap /dev/sda8

Turning on swap partition: /sbin/swapon -v /dev/sda8

Downloading to specified directory all URL addresses specified in wget-list file: wget --input-file=wget-list --continue --directory-prefix=~/sources Wget-list file should contain one URL per line, ex:

Sprawdza sumy kontrolne plików podanych w pliku md5sums: Checks md5 control summs for files specified in md5sums file: md5sum -c md5sums Md5sums file should contain one md5 sum and a file per line, ex: a27b3ee9be83bd3ba448c0ff52b28447 bash-4.3.30.tar.gz
5126a721b73f97d715bb72c13c889035 bc-1.06.95.tar.bz2
d9f3303f802a5b6b0bb73a335ab89d66 binutils-2.25.tar.bz2
8fb13e5259fe447e02c4a37bc7225add file-5.22.tar.gz

Create lfs group: groupadd lfs

Create user lfs which: belongs to group lfs, has bash as a default shell and has home directory in /home/lfs (-m parameter, the directory is created if already not exists). Parameter -k /dev/null prevents creating default home directory content from /etc/skel directory: useradd -s /bin/bash -g lfs -m -k /dev/null lfs

Imports sql commands to current Mysql database: \. /var/www/cake/blog_tutorial/sql/blog_db.sql

Displays i-node number and the name of specified file: ls -i "file_name"

Searches current directory for all files with specified i-node number: find . -xdev -inum $inode -print -xdev parameter prevents searching other filesystems than the one in which current directory is.

To check spelling, first make sure that you have english dictionary for GNU Aspell installed: sudo apt-get install aspell-en and next execute: cat document.html | aspell list --mode=sgml Parameter --mode=sgml makes aspell to skip html tags.

Creates new file new_file.txt which consists of header.txt file, command's standard output and footer.txt file: command | cat header.txt - footer.txt > new_file.txt

Removes all privileges for group and others for a given file: chmod go= file

Crontab files for all users in Ubuntu are located in: /var/spool/cron/crontabs. Each of them have the same name as the user it belongs to.
Edit crontab file for current user: crontab -e Display crontab file for current user: crontab -l Remove crontab file for current user: crontab -r Edit crontab file for specified user (mzaleczny) - only root may do it: sudo crontab -u mzaleczny -e

Set the priority (nice value) equal to 4 for all processes of mzaleczny user: renice -n 4 -u mzaleczny Set the priority (nice value) equal to -4 for all processes of mzaleczny user (only root may do it): sudo renice -n -4 -u mzaleczny

Installs screen tool: sudo apt-get install screen Lists screen active sessions (in format: screen -ls Runs new screen session: screen bash
while (true); do echo "Tekst"; sleep 1; done
Detaches from current screen session. Programmes and commands that are running in the session stay running even after user's logout: CTRL+A d Attaches to specified screen session: screen -r pid or screen -r

Displays short information about specified file's type: file filename Displays short information about specified compressed file's type: file -z filename

Lists content of a cpio archive: cpio -tv < archive_name

Extracts content of specified cpio archive (be careful with absolute paths stored in archive, because some files in the root filesystem can be replaced): cpio -i -d < archive_name

Extracts content of specified cpio archive. All absolute paths "/..." are replaced with relative ones "./...": cpio --no-absolute-filenames -i -d < archive_name

Extracts an ar archive: ar x archive_name.a

Lists content of specified deb archive: ar -t package_name.deb

Extracts a deb package into the current directory: ar -x package_name.deb

Let's assume that we have a directory named old with a project and a directory named new with the same project but extended with some changes. A patch file that transforms old directory content into the new one can be created by executing following command: diff -Nur old new > mypatch.diff Now, to transform old directory into a new one apply the patch file in following way: patch --dir old < mypatch.diff To withdraw the changes applied by the patch file and get old directory content from the new one - issue following command: patch --dir new -R < mypatch.diff

Compiles assembler source file to get output executable: gcc -o programme -nostdlib programme.S

Displays information about executing time (time that elapsed since application started), PID, priority, nice value and command name for two specified scripts ( i and for current shell (-p $$): ps -C -C -p $$ -o etime,pid,pri,ni,cmd

Changes nice value to 4 for process with pid eqauals to 1212: renice 4 -p 1212

Displays information about PID, state and command name for job of number %1: jobs -x ps -p %1 -o pid,state,cmd

Displays list of running in the background jobs: jobs -l

Converting gif file to a png one: giftopnm file.gif | pnmtopng > file.png

Sorts a specified file in an alphabetic order: sort file Sorts a specified file in an reversed alphabetic order: sort -r file If the rows of the file begins with the number then it sorts them in a numeric order: sort -n file

Searching the system manual for the specified keyword: man -k word

Displays current time in seconds since 1970-01-01 00:00:00: date +%s

Copies src directory to the remote machine with excluding .git subdirectories: rsync -a --exclude=.git src uzytkownik@komputer:

Copies src directory to the remote machine with limiting bandwidth to 1000kB/second: rsync --bwlimit=1000 -a src uzytkownik@komputer:

Executes console application (ex. apt-get update) with other then default language: LANG=pl_PL.UTF-8 LANGUAGE=pl_PL sudo apt-get update

Parallel application installation: sudo apt-get install moreutils Scale all pic*.png files found in the current directory to the 50% of theirs original size. All scaling operations are arranged evenly by the parallel application between all processor's cores: find . -maxdepth 1 -name "pic*.png" | parallel convert -scale 50% {} small/{}

Joins four pictures pic1.png, pic2.png, pic3.png, pic4.png (all of the same size) into one picture joined.png which consists of the two rows and two columns separated by the 2 pixels: montage pic1.png pic2.png pic3.png pic4.png -geometry +2+2 joined.png

Adds text to the picture: convert picture.jpg -gravity North -font /path/to/file/font.ttf -pointsize 100 -stroke "#123456" -strokewidth 5 -annotate 0 "Picture title" output_picture.jpg Allowed values for the gravity option can be listed by: convert -list gravity Available fonts can be listed by: convert -list font Right after the -annotate option we specify text rotation angle (in the example: 0) and the text oneself.

Creates a pdf file from the specified pictures: convert *.png pictures.pdf

Extracts pictures of the pdf file: convert pictures.pdf picture%04d.png

Places one picture onto the second one: composite -gravity SouthEast -dissolve 10% -geometry +20+20 pic_src.png pic_dst.png output_pic.png

Compares two pictures: compare pic1.png pic2.png differences.png

Displays picture's exif metadata: exiftool picture.jpg

Removes picture's exif metadata: exiftool -all= picture.jpg

Adds a text comment to the specified picture: exiftool -comment="Comment text" picture.jpg

Optimizes picture given: jpegtran -optimize pic.jpg >outpic.jpg

Rotates the picture by a 90 degrees: jpegtran -rotate 90 pic.jpg >outpic.jpg

Displays statistical data for the available pckages: apt-cache stats

Displays all available packages in the alphabetical order: apt-cache pkgnames

Displays details for the specified package (without the files that the package contains): apt-cache show package_name

Displays details for the specified package's source package: apt-cache showsrc package_name

Displays dependencies for the specified package: apt-cache depends package_name

Recursive search for the http/https address strings in files in the directory directory_name except the addresses that contain references to the android's schemas ( grep -Eir "https?://" directory_name | grep -v ""

Adds mzaleczny user to sudo group and therefore allow him to invoke sudo command: adduser mzaleczny sudo

Burns specified iso image on the pendrive: sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdX bs=4M && sync

Displays active disk operations scheduler: cat /sys/block/sda/queue/scheduler

Displays available for pkg-config libraries: pkg-config --list-all

Records audio wav file: arecord clip.wav