FreeBSD Commands:


update freebsd ports
*** if first time using portsnap use:
portsnap fetch extract update

else use:
portsnap fetch update

pkgdb -u
pkgdb -F
Update and upgrade freebsd ports, portugrade must be
installed to use pkgdb, may have to type: rehash after
installing portugrade if using default shell (csh) as root
**pkgdb -u = update or create pkg database file 'pkgdb.db'
**pkgdb -F = interactively fix package registry database

pkg_version -vl '<'
Shows which ports need to be updated.

***ALWAYS!*** read this file before blindly updating
you ports! Follow it's recommedations.
You can use something like this for a quick look:
grep -B 1 AFFECTS: /usr/ports/UPDATING | head -20

pkgdb -L

portupgrade -R python27
To update a single port, may be better to do
this for each port. You can also specify more
than one port:
portupgrade thisport andthisport andthatport
-R = updgrade dependencies first

portupgrade -a
If you are lazy you can update them all

pkgdb -fu
If database is corrupted use this.
** -fu force update regardless of timestamps

portupgrade -af
You could use this to force an upgrade even if
downgrading/reinstalling or held in HOLD_PKGS
in pkgtools.conf. It forces all packages to be
upgraded whether they are up to date or not.
So it will take some time.
** -a = all
** -f = force

end update freebsd ports

cd /usr/ports/chosen/port
Find out what dependencies a port needs

make WITHOUT_X11=yes all-depends-list
You can also test different build scenarios.

other ways to update ports
portsnap fetch update
pkgdb -F

portsdb -Uu
updates version info in ports database
this needs to be ran after cvsup or csup

make fetchindex
portsdb -u
portversion -l "<"
portupgrade -arR
run this to update with portupgrade

portversion | grep "<"
list packages that are out of date

portupgrade -a

pkgdb -F
portupgrade -a
Updates ports that are installed

portsdb -Fu
fetch INDEX and rebuild portsdb

portmaster -a
Updated ports that are installed

error when installing portsnap:
Warning: Object directory not changed from original
had to go into some of the subdirectories and do a:
make obj

portupgrade package-name
update specific port

portversion -l '<'
list outdated ports

cvsup /root/ports-supfile
update ports tree with created file

end other ways to update freebsd ports

make config
make config file (can be done after install to reconfigure options)

make deinstall
make install APR_UTIL_WITH_BERKELEY_DB=yes
fix an error for a dependency option

make index
/usr/ports updates index

make readmes
creates readmes /usr/ports

cd /usr/ports
make search name=pptp
search ports by name

cd /usr/ports
make search key=pptp
searches ports for keyword

freebsd package manager (use ports or pkg not both, so stick with one)

show packages installed

ls /var/db/pkg
show packages installed

pkg_info -R apache-1.3.37_2
show dependencies of apache

pkg_fetch nagios-3.0.3
fetches a port

show versions of packages installed vs available via ports

pkg_deinstall packageName
remove package

pkg_add name.tar.gz
adds package from ports ??

pkg_add -r name
downloads package and then adds it

pkg_info -IX font
show installed fonts

end pkg info

pkg_add -v
adds package openBSD

print environment variables

locale -a
print names of all available locales

cntrl - i
equivalent to tab

xset b off
turn off system beep in X

sysctl hw.syscons.bell=0
turn off beep globally until a reboot

add this line to /etc/sysctl.conf, turns off system beep globally for good

sysctl hw.acpi.battery
Show info about battery

sysctl -a | grep -i memory
show memory stats

(sysctl|cut -d "," -f2|cut -d "%" -f1|cut -d " " -f2)
show battery juice

du -h -d 1
disk usage of directories

du -sh
disk usage of directory and files

du -x
tells what is using space

du -sk *
show disk usage

for each in `ls -1`;do du -sh $each;done
show file size of each folder in current directory

tar -zcvf newArchive.tar /folderToCompress
tar a folder

tar -zxf newArchive.tar -C /tmp
extract folder to tmp directory

tar -cjvf www042309.tar.bz2 ./www
backup website -j for bz2

tar -xjf www042309.tar.bz2
untar website

tar -jxvf file.tar.bz2
untar bz2

tar -zxvf file.tar.gz
untar gz

tar -xvzf file.tar.gz -C directory
untar specific directory

tar -xzvf phpMyAdmin_x.x.x.tar.gz
tar -z auto recognize gzip

(cd /home/username/lrn && tar cf - . ) | (cd /mnt/usb && tar xBf -)
tar cf - ./lrn | (cd /mnt/usb; tar xf -)
copy files from one directory to another including symlinks

(cd /home/username/lrn && tar cf - . ) | "(cd /mnt/usb/ && tar xvpf -)"
remotely copy files from one directory to another including symlinks

cd ..
go up one directory

cd ~
go to home directory

cd -
go to last directory you were in
echo $OLDPWD ,will show where this will take you

mount -t msdosfs /dev/da0s1 /mnt/usb
mount usb drive

umount /mnt/usb
unmount disk

mount -t cd9660 /dev/acd0 /mnt/dvd
mount dvd

umount /mnt/dvd
unmount dvd

mdconfig -a -t vnode -f /path/to/image.iso -u 1
mount -t cd9660 /dev/md1 /mnt/cdrom
mount -t msdos /dev/nc0c /cdrom
creates virtual cdrom drive and mounts it

mount -u /mnt/cdrom
mdconfig -d -u 1
unmounts and undoes virtual drive

mount -a -t ufs
mount file systems read/write ??

mkdir /data
vi /etc/fstab
/dev/ada1s1d    /data           ufs     rw      2       2
Add an already formatted hard drive partition. Ex: Stick an
old fbsd hard drive in machine and access with current fbsd

camcontrol devlist
list usb devices

ipod program

camcontrol eject 1:0:0
ejects ipod

this will capture keypress events and give the names of the keys

shows who logged in and when

last -20
show last 20 logins

last username
indicate last logins of users and ttys

generate a FreeBSD driver module from a Windows(R) NDIS driver distribution

ndiscvt -i bcmwl5.inf -s bcmwl5.sys -o ndis_driver_data.h
convert Windows(R) NDIS drivers for use with FreeBsd, (broadcom ethernet)

kldload ./bcmwl5_sys.ko
load linksys ndisDriver

shows custom loaded kernel modules

diagnostic utility for the pci bus

ifconfig bge0 down
disable network card bge0

killall -SIGUSR1 conky
restart conky

aterm -e hw.acpi.battery
open aterm and execute command

more /etc/group
show all groups

utility for modifying keymaps and pointer button mappings in X

only when using sh. tells system about newly installed programs

character set conversion

generate a FreeBSD driver module from a Windows(R) NDIS driver distribution

configure Lucent, Intersil, and Atheros wireless devices

pciconf -lv
diagnostics utility for the PCI bus

identify active files



bg programName
send program to background

suspend current job

bring job/program to foreground

sftp -oPort=22222 user@ip-address
sftp to port 2222

fbsetroot -solid black
set fluxbox background to black

session.screen0.rootCommand: fbsetbg ~/background/ricci.jpg
set backgorund in fluxbox

ps -aux
list running processes

add mysql_enable="YES" to /etc/rc.conf
start mysql on boot

/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/mysql-server stop
start and stop mysql, if mysql_enbale="YES" is added to rc.conf
cat /usr/local/etc/rc.d/mysql-server to see script that is being called


mysqldump -uroot -p --all-databases > /bkup/path/all-dbs.sql
backup all databases

mysqldump -uuser -p db-name > /bkup/path/db-name.sql
backup single database

mysqldump -uroot -p db-name tbl-name > /bkup/path/db-name-tbl-name.sql
backup table



cat all-dbs.sql | grep -i 'create database'
A dump of all databases has the CREATE DATABASE commands in it.
So you should not have to create a databases first

mysql -uroot -p < /bkup/path/all-dbs.sql
restore all databases

cat all-dbs.sql | grep -i 'create database'
A single database dump does not have the CREATE DATABASE command
So you may have to create the database before importing:
mysql -u root -p
mysql> CREATE DATABASE dbName;
mysql> exit

mysql -u root -p -D chosenDatabase < dbname-bkup.sql
import single database file

mysql -uusername -D chosenDatabase -o < all-dbs.sql
Only restores the chosenDatabase from a backup of all databases
You may have to create at least one empty database for this to work.

cat all-databases.sql | sed -n -e '/^-- Current Database: `chosenDatabase`/,/^-- Current Database: / p' | sed -e '$d'
Sed out just one database from a file containing all databases. You may want to pipe this to mysql or redirect to file
or even indirect to mysql.

There is also some data at the top and bottom of a dump, if you need this you may want to head and tail it:
To see line numbers for easy counting of needed lines for head and tail:
less -N all-databases.sql
head -n 15 all-databases.sql > chosen-database.sql
cat all-databases.sql | sed -n -e '/^-- Current Database: `chosenDatabase`/,/^-- Current Database: / p' | sed -e '$d' >> chosen-database.sql
tail -n 9 all-databases.sql >> chosen-database.sql
cat chosen-databases.sql 
Cat or less new.sql to make sure it looks descent, then import/restore the file.(example above)

sed -n '/^-- Current Database: `chosenDb`/,/^-- Current Database: `/p' allDbs.sql | sed -n '/^CREATE TABLE `chosenTable`/,/^DROP TABLE /p' > dbname.chosenTable.sql
Restore a table by extracting it from a file dump of all databases
Sed can read a file so no need to cat pipe like above

mysqlimport is another tool for importing data:

mysql -uroot -p -e 'CREATE DATABASE oses'
create database oses from shell

mysql -uroot -p -e 'CREATE TABLE oses(id INT, osName VARCHAR(30), osDescription VARCHAR(60))' test
Create a table called oses in the test database
-e = executes a statement and quits, so mysql can be jacked with from the command line

mysql -uroot -p -e 'DESCRIBE oses' test
The paranoid could make sure it is as it is...

mysql -uroot -p -e 'CREATE TABLE oses(id INT, osName VARCHAR(30), osDescription VARCHAR(60))' test; mysql -uroot -p -e 'DESCRIBE oses' test 
Both those could have been done in one command

01	FreeBSD	Primary Desktop and Server
02	Arch	Secondary OS
03	NetBSD	Proxy Server
04	Debian	Sandbox
05	OpenBSD	Firewall
06	Windows 2008 Server	Tertiary OS
07	Plan 9	Research Box
08	MenuetOS	64Bit ASM Study Box
09	Windows 98	Old School RCE Box
10	Windows XP	RCE Box
11	Windows 7	Game Box
12	Inferno	Secondary Research Box
w oses.txt
Use ed to create a tab delimited file to mysqlimport into mysql. (2 tabs per line 1 inbetween each field)
No reason to have an editor war when you can ride a dinoseditor

ed = start ed (edit text) line editor
a = append text to buffer (and enters input mode)
. = exit to command mode (if in inupt mode, else prints current line in buffer, also matches single character in regex)
w = write to file
q = quit

od -c oses.txt
make sure file is tab delimited correctly
-c = print output in C-style escaped characters (Ex: \t for tab)

cat -t oses.txt
make sure file is tab delimited correctly (incase you prefer a kitty, over od)
-t = show tabs as ^I (displays non-printing characters)

od oses.txt
If you prefer hex mode
By the way od = octal, decimal, hex, ASCII dump

mysqlimport -uroot -p --local test oses.txt
-u = user to import data with
-p = password (prompts for password, prefered method)
-pMyPassword (does not prompt for password, and now it can be viewed in history)
--local = read input files locally (same as -L)
test = database importing to
oses.txt = table importing to (mysqlimport strips the extention off and imports to table oses, in this case .txt)

mysql -uroot -p -e 'SELECT * FROM oses' test
Display everything imported into table oses inside the database test


mysqladmin shutdown

To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system

To do so, start the server, then issue the following commands:
/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h password 'new-password'
See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local ; /usr/local/bin/mysqld_safe &

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests

Please report any problems with the /usr/local/bin/mysqlbug script!


Adds to rightClick new

Adds to sendTo

end roxFiler

dmesg | grep -i memory
show total and available mem

man page of ls in konqueror

/etc/rc.d/sshd restart
restart ssh (can also use start,stop, forcestop,etc

sed -i.bak s/e/o/g foo
replace every "e" with "o" in file foo (makes a backup)

sed -i '' s/e/o/g foo
does not make a backup

htpasswd .pwdFile userName
change password or add user "-c to create file"

pw user mod lust -G wheel
add lust to wheel group

whereis pptp
echo /usr/ports/*/*pptp*
alternate ways to find a port

whereis programName
display one or more mathces of program you are looking for

which bash
will show which bash will be called first

locate aProgramName
display every file that matches a programs name

kill -9 #####
force kill

aterm -bl

edit /etc/sudoers (usage: visudo)

sudo crontab -e
edit current crontab

after running ./configure log is stored in same folder

ls -R / | more (use less on linux)
show all directories on system

ls -alAR
recursively list directories, including .directories

ls -G
show file, folder, executables in color

dig -x
find hostname by address

tail -100 filename
view last 100 lines of a file

head filename
view first 10 lines of a file

vpnc --debug 99 --enable-1des --dpd-idle 0
vpnc with debug options all the way and weak encryption set no idle

disconnect vpnc

wget -r -l1 -H -t1 -nd -N -np -A.png,.jpg,.gif -erobots=off -i ~/getPics.txt
-r -H -l1 -np = recursive download, span domain, one level, no parent.
-A = attributes
-N = turns on timestamping so same files are not downloaded
-nd = puts everything in one directory rather than sites directories
-erobots.txt = igonre robots.txt
-i /fileName = lets you put urls inside text file

wget -mirror -w3 -p htt://
-w = wait
-p = get all required elements (useful with mirror)

wget -i file-with-links.txt
download links in a file

dmesg | grep ndis
scrub dmesg for ndis info

ifconfig | ndis0
shows status of ndis ip

ifconfig ndis0 inet netmask ssid joetest wepkey 0x43DB5804CD weptxkey 1 wepmode on
connects wpcg54g to wlan with wep (weptxkey 1 picks first wep key)

ifconfig ndis0 up scan
scans for wireless access points

gdb /usr/local/bin/beaver/beaver.core
shows core dump of beaver with gdb

show partitions

show how long its been since a reboot

show who is logged in, from where, and what they are running

show who is logged int

displays other users logged in system

last users logged in

show how long you have been logged in.. in total

shows what's running

ps -aux
shows what is running in detail

uname -a
shows system information

uname -mrs
show current version

displays current network connections

netstat -an
display current connections, source, destination and ports

netstat -rn
display routing table for ips bound to server

shows hostname

aterm -sl 32000
saveline buffer 32000 lines

ls -1 | wc -l
count files in a directory

awk 'sub("$", "\r")' unixfile.txt > winfile.txt
convert file from unix to windows

awk '{ sub("\r$", ""); print }' winfile.txt > unixfile.txt
convert file from windows to unix

tr -d '\15\32' < winfile.txt > unixfile.txt
remove carraige return and ^Z's from a file

perl -p -e 's/\r$//' < winfile.txt > unixfile.txt
convert win file to unix

perl -p -e 's/\n/\r\n/' < unixfile.txt > winfile.txt
convert unix file to win

set -o vi
set ksh to vi mode

shift + insert
paste what mouse has copied

shows calendar of this month

rdesktop -f
fullscreen rdesktop

rdesktop -g 1024x768 servername
set geometry of rdesktop

man 3 printf
shows section 3 of printf (3 seems to be summary????)

shows current volume settings

mixer vol 95:95
mixer pcm 95:95
mixer speaker 95:95
mixer -s vol 10
change volume

date 1404160300
Sets date to: Wed Apr 16 03:00 CDT 2014

date 1404160300.30
Sets date to: Wed Apr 16 03:00:30 CDT 2014
Also set seconds using .

date yymmddHHMMss
yy = two digit year
mm = month
dd = day
HH = hours [0..23]
MM = minutes
ss = seconds

date 1830
Change time to 6:30 without modifying the date.

date +"%T %p"
shows date with am/pm

shows history of commands

cat .bash_history | grep ssh
list history matches to ssh

cat > cat.txt
create file cat.txt and input text, ^D to get out and write file

cat < cat.txt
same as cat cat.txt, reads file

cat < cat.txt > newCat.txt
cp contents of cat.txt to newCat.txt

cat cat.txt newCat.txt > bigCat.txt
copy contents of cat.txt and newCat.txt into bigCat.txt


search bash history

delete word backwards

delete rest of line forward

delete char under cursor

delete word forward

cursor to beginning of line

cursor to end of line

one word forward

one word back

clears screen

lowercase current word

uppercase current word

PROMPT_COMMAND='history -a && history -n'
collects history from current open terminals

cp ./test.txt{,.bak}
copies test.txt to test.txt.bak

cp -a ./directory/* /anotherDirectory/
copies all files in a folder and keeps permissions

echo $_
echos last arguemnet passed to console


winpro -ws maximized
runs win4BSD max size

winpro -ws 1152x864

winpro -h
shows help for win4bsd

opens menu


searches whatis database for keyword, gives description of programs
try apropos '\(6\)'

apropos editor
shows programs that have editor in their description

scp -P 22 ./test.txt username@
copy files to remote machine -P to specify port.

scp ./test.txt username@
copy files to remote machine

scp -r ./folderToCopy username@
copy directory to remote machine

scp -r '-P 1234' ./folderToCopy username@

xwd -out 3rdDesktop01.xwd -root
saves screen shoot

cleans out ports files. fixes this error:
local modification time does not match remote

mkisofs -J -o out.iso -r -V volume_name directory
create iso image

restart network


ifconfig_dc0="inet netmask"
set static ip

dhclient ndis0
gets dynamic ip

nagios files

/usr/local/bin/nagios -v /usr/local/etc/nagios/nagios.cfg
test nagios configs

/usr/local/bin/nagios /usr/local/etc/nagios/nagios.cfg &
start nagios

shift insert
paste with keyboard

simple command line spell checker

command line spell checker

source ~/.bash_profile
reparse bash shell configuration

nspluginwrapper -v -a -i
install all plugins from their default locations (netscapePluginWrapper)

nspluginwrapper -i path/to/
install from specific locations

nspluginwrapper -r pat/to/
remove specific plugin

nspluginwrapper -l
list all currently installed plugins

enhanced txt based browser

ESC - shows menu


ssh -D 8080 -f -C -q -N
tunnel web traffic through ssh

fgrep word
searches for word in file

ls | egrep '(wordOne|wordTwo)'
greps ls for two words

ls -1
shows files in one column

show userId, groupId, and groups of current user

feh --bg-scale /path/to/image.jpg
set wallpaper

echo $TERM
displays terminal type

export XMODIFIERS=@im=Ami
export LC_CTYPE=ko_KR.eucKR
ami &

start korean keyboard

end korean

start lua

rmuser dust
remove user dust

unrar x test.rar
uncompress rar

/usr/local/sbin/httpd -v
check version of apache

/usr/local/etc/rc.d/lighttpd start
start lighttpd (stop,restart,start)
killall lighttpd (if no script)

find / -type f -exec grep -H 'joemammy' {} \;
find joemammy inside files on /

grep hello ./*
find word hello in all files in current directory

vi /boot/grub/menu.lst
edit grub menu file

usbdevs -v
show usb devices

mount -t msdosfs /dev/da0s1 /mnt/camera
mounts nikon coolpix L11, must be set to mass storage under ???

To install mono-merge, download it, then install with:
make install

svn must be installed to use mono-merge

mono-merge -D
merges development version from BSD# into /usr/ports

merges BSD# version of mono into the ports system

wget -m -k -K -E http://url/of/web/site
mirror a website

wget --spider --force-html -i bookmarks.html
use wget to check validity of bookmarks

ls -l | grep '^d'
list directories in current folder ('^d' looks for lines starting with a d)

ls -l | grep '^d' | awk '{ print $NF }'
shows on the folder names of the directories

chmod u+x ./scriptFile
add executable permission to scriptFile for current user

find ./ -type f | xargs perl -pi -e 's!/usr/bin/ruby!/usr/local/bin/ruby!g'
search all files in a folder and replace: /usr/bin/ruby with: /usr/local/bin/ruby

ls | awk '{print "<a href=\""$1"\">"$1"</a>"}' > index.html
make html links to every file in the current directory inside index.html

ls | awk '{print "<a href=\""$1"\">"$1"</a>"}' >> index.html
same as above except appends the links to index.html

ls | awk '{print "<img src=\""$1"\">"$1"<br>"}' > index.html
create img tags for every file in directory and write to index.html

grep ruby ./*
look for any files in current folder that contain the word: ruby

tar -zcvf nameOfTarFileToCreate.tar.gz ./DirectoryWantedCompressed
tar a file to a .tar.gz

tar -zxvf ./nameOfFileToExtract
untar a file

run this after first install to finish setup

GRANT ALL ON dbName.* TO 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
give user rights to a mysql database

insert into grid (x, y) values ('-98', '-98');
add x and y to table grid

delete from settlements where id='61';
deletes the row/record in table settlements that has id matches 61

update users set x='-98', y='-98' where id='2292';
update record x,y in table users with -98,-98 that matches id 2292

mysql -u user-name -p db-name < db-template.sql

transfer mysql database
mysqldump --quick db_name | gzip > db_name.gz
dump database to a gzip file to transfer to new machine

mysqladmin create db_name
create databse on new machine

gunzip < db_name.gz | mysql db_name
unzip and databse and throw it in mysql

if installed can show what syslogd is writing to ttyv0, inside of X

grep "^    :" 00_data.txt  | sed '$!N;s/\n/ /'  | awk '{print $1 $2 $5}' > 00data.txt
greps for 4 spaces the : at the beginning of each line. sed combines every two lines. awk prints the 1st 2nd and 5th field of each line. > writes it to 00data.txt

crontab -e
edit the crontab for the user you are logged in as

purges deleted messages

end mutt

attach -d -t0
attatch to session 0

end tmux

tcpdump -s0 -X -i bge0 port 80
watch what is happening on port 80

type this in as a browser url, to see the cookies on a webpage

list processes as a tree (must be installed)

tree -a
show directories in a tree view. (must be installed)

mogrify -resize 75x75 ./*.jpg
resize all jpg in current directory to 75x75 (requires imagemagick to be installed)            

xwininfo -tree
show info abou twindows
(xwininfo and xininfo show info about windows)

grep -r "jowdaddy" /home
recursively search for jowdaddy inside files located in your /home

grep -v notmeplease
show all lines that do not match notmeplease

find /home /tmp -name yasister.txtme
search /home and /tmp directories for yasister.txtme

find ./learn -ls
displays inode number (inode serial), size in 512-byte blocks, file permissions, number of hard links, owner, group, size in bytes, last modification time, and pathname.
**very similar output as (ls -igls)

find `script-that-chooses-dirs` -name choosenFile
uses a script to choose which files to search for chosen file

find ./learn -type f -size 0 -ls
search learn folder for a regular file that has file size of 0 and display in long format

find /usr/home /var/html /usr/local/www -name "*.htm*" -print
find all files with names containing .htm (-print is the default and prints to standard out) so the previous command is equivelant to:
find /usr/home /var/html /usr/local/www -name "*.htm*"
**all regex need to be quoted or they will be passed to the shell rather than find

find ./ -iname RECIPE.txt
case insensitive search for recipe.txt in current folder

find $HOME -mtime -1
find files in the home directory modified in the last 24 hours

find $HOME -mtime +365
find files that have not been modified in the last year

find /home/username -mtime -7 -name "*.htm*"
find htm/html files that have been modified in the last week (7 24hour)

find /home/user/www -mtime 7 -name "*.php*"
search for files that were modified exactly a week ago

find /var/log -mtime +7 -name "*.log"
find files that have not been modified for at least a week

find /$HOME/pics -newer $HOME/scripts/resize-pics.rb
find files in pics folder that have been modified more recently than

find /home -name "*.txt" -size 100k
find /home -name "*.txt" -size +100k
find /home -name "*.txt" -size -100k
display files that are 100k in size / more than 100k in size / less than 100k in size

find . -name '*.jpg' -exec ls {} \;
find all jpgs in current directory and use ls to display them

find $HOME/. -name '*.jpg' -ok rm {} \;
find all jpgs in current directory and ask for confirmation before deleting each

touch thisNewFile
creates a new empty file named thisNewFile

ls -s /someDirectory/originalFile /anotherDirectory/linkedToOriginalFile
creates a file that is linked to another. Editing the linked file changes the original

rm -f aFileThatNeedsDeleting
deletes a file without asking

rm -rf byeByeDirectory
deletes a directory and everything in it without asking

file somefile
attempts to guess type of file by its content

file *
guess filetypes of all files in a directory

wc filename
counts lines, words, and characters in a file

wc -l filename
counts lines in a file

ls -al > ./saveLsOutput.txt
overwrites text file with ls' output or creates an new file

ls -al >> ./saveThis.txt
appends output to file or creates new one if it does not exist

send input from a file back into a command

mplayer -vo xv dvd://1
play dvd

mplayer -nocache -playlist ""
play shoutcast stream

gui that shows disk usage

d 1-5
deletes messages 1 through 5

t <message list>                type messages
n                                  goto and type next message
e <message list>                edit messages
f <message list>                give head lines of messages
d <message list>                delete messages
s <message list> file           append messages to file
u <message list>                undelete messages
R <message list>                reply to message senders
r <message list>                reply to message senders and all recipients
pre <message list>              make messages go back to /var/mail
m <user list>                   mail to specific users
q                               quit, saving unresolved messages in mbox
x                               quit, do not remove system mailbox
h                               print out active message headers
!                               shell escape
? print this help message
# display message number #
- print previous
+ next (no delete)
! cmd execute cmd
<CR> next (no delete)
a position at and read newly arrived mail
d [#] delete message # (default current message)
dp delete current message and print the next
dq delete current message and exit
h a display all headers
h d display headers of letters scheduled for deletion
h [#] display headers around # (default current message)
m user mail (and delete) current message to user
n next (no delete)
p print (override any warnings of binary content)
P override default 'brief' mode and display ALL header lines
q, ^D quit
r [args] reply to (and delete) current letter via mail [args]
s [files] save (and delete) current message (default mbox)
u [#] undelete message # (default current message)
w [files] save (and delete) current message without header
x exit without changing mail
y [files] save (and delete) current message (default mbox)