svn log -v -r{2009-05-21}:HEAD | awk '/^r[0-9]+ / {user=$3} /yms_web/ {if (user=="george") {print $2}}' | sort | uniq
This system seems to be used for linux development and apparently
was written by Mr Torvalds himself after dissatisfaction with
other tools
Add forgotten changes to the last git commit
git commit --amend
Move all files untracked by git into a directory
git clean -n | sed 's/Would remove //; /Would not remove/d;' | xargs mv -t stuff/
Show git branches by date - useful for showing active branches
for k in `git branch|sed s/^..//`;do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k"`\\t"$k";done|sort
List all authors of a particular git project
git shortlog -s | cut -c8-
grep across a git repo and open matching files in gedit
git grep -l "your grep string" | xargs gedit
Show (only) list of files changed by commit
git show --relative --pretty=format:'' --name-only HASH
git remove files which have been deleted
git add -u
Prints per-line contribution per author for a GIT repository
git ls-files | xargs -n1 -d'\n' -i git-blame {} | perl -n -e '/\s\((.*?)\s[0-9]{4}/ && print "$1\n"' | sort -f | uniq -c -w3 | sort -r
github push-ing behind draconian proxies!
git remote add origin git@SSH-HOST:<USER>/<REPOSITORY>.git
Display summary of git commit ids and messages for a given branch
git log --pretty='format:%Cgreen%H %Cred%ai %Creset- %s'
Makes a project directory, unless it exists; changes into the dir,
gitstart () { if ! [[ -d "$@" ]]; then mkdir -p "$@" && cd "$@" && git init; else cd "$@" && git init; fi }
Display summary of git commit ids and messages for a given branch
git log master | awk '/commit/ {id=$2} /\s+\w+/ {print id, $0}'
Display condensed log of changes to current git repository
git log --pretty=oneline
Undo several commits by committing an inverse patch.
git diff HEAD..rev | git apply --index; git commit
Stage only portions of the changes to a file.
git add --patch <filename>
Rcs An Old Version Control System ‹↑›
check in the file 'novel' with RCS
ci novel
deposit this revision in RCS
ci novel
check out the latest revision of the file 'novel' for editing,
co -l novel
check out the current revision of file 'novel', but dont permit any changes
co novel
check out revision 1.14 of file 'novel'
co -l -r1.14 novel
view the revision log for file 'novel'
rlog novel
Reading Text Files ‹↑›
page through the text file 'README'
less README
page through all of the Unix FAQ files in '/usr/doc/FAQ'
less /usr/doc/FAQ/unix-faq-part*
This command starts less, opens in it all of the files that match the
given pattern '/usr/doc/FAQ/unix-faq-part*', and begins displaying the
peruse the file 'translation' with non-printing characters displayed
cat -v translation | less
output the first ten lines of file 'placement-list'
head placement-list
output the first line of file 'placement-list'
head -1 placement-list
output the first sixty-six lines of file 'placement-list'
head -66 placement-list
output the first character in the file 'placement-list'
head -c1 placement-list
output the last ten lines of file 'placement-list'
tail placement-list
output the last fourteen lines of file 'placement-list'
tail -14 placement-list
follow the end of the file 'access_log'
tail -f access_log
output line 47 of file 'placement-list'
sed '47!d' placement-list
output lines 47 to 108 of file 'placement-list'
sed '47,108!d' placement-list
output the tenth line in the file 'placement-list'
head placement-list | tail -1
output the fifth and fourth lines from the bottom of file 'placement-list'
tail -5 placement-list | head -2
output the 500th character in 'placement-list'
head -c500 placement-list | tail -c1
output the first character on the fifth line of the file 'placement-list'
head -5 placement-list | tail -1 | head -c1
output all the text from file 'book-draft' between `Chapter 3' and 'Chapter 4'
sed -n '/Chapter 3/,/Chapter 4/p' book-draft
output all the text from file 'book-draft', except that which lies between the text 'Chapter 3' and `Chapter 4'
sed '/Chapter 3/,/Chapter 4/p' book-draft
apply the kraut filter to the text in the file '/etc/motd'
cat /etc/motd | kraut
view the contents of the text file 'alice-springs' in sview
sview alice-springs
view an ASCII character set
man ascii
view the ISO 8859-1 character set
man iso_8859_1
run the vi tutorial, type the following from your home directory:
cp /usr/doc/nvi/vi.beginner.gz .
gunzip vi.beginner
concatenate these files into a new file, 'novels'
cat early later > novels
make a file, 'novels', with some text in it
cat > novels
This Side of Paradise
The Beautiful and Damned
,,,
add a line of text to the bottom of file 'novels'
cat >> novels
The Last Tycoon
C-d
insert several lines of text at the beginning of the file 'novels'
ins novels
The Novels of F. Scott Fitzgerald
process the file and write to the file 'monday.txt'
m4 menu > monday.txt
Debian: 'an'
output all anagrams of the word 'lake'
an lake
output all anagrams of the phrase 'lakes and oceans'
an 'lakes and oceans'
output only anagrams of the phrase 'lakes and oceans' which contain the string 'seas'
an -c seas 'lakes and oceans'
output all of the words that can be made from the letters of the word 'seas'
an -w seas
output all of the palindromes in the system dictionary
perl -lne 'print if $_ eq reverse' /usr/dict/words
make a cut-up from a file called 'nova'
cutup nova
Debian: 'dadadodo'
output random text based on the text in the file 'nova'
dadadodo nova
output all non-empty lines from the file 'term-paper'
grep . term-paper
output only the lines from the file 'term-paper' that contain more than just space characters
grep '[^ ].' term-paper
output only the odd lines from file 'term-paper'
sed 'n;d' term-paper
double-space the file 'term-paper' and and save to 'term-paper.print'
pr -d -t term-paper > term-paper.print
triple-space the file 'term-paper' and save to the file 'term-paper.print'
sed 'G;G' term-paper > term-paper.print
quadruple-space the file 'term-paper', and save to the file 'term-paper.print'
sed 'G;G;G' term-paper > term-paper.print
output the file 'owners-manual' with a five-space (or five-column) margin to a new file, 'owners-manual.pr'
pr -t -o 5 -w 77 owners-manual > owners-manual.pr
This command is almost always used for printing, so the output is
print the file 'owners-manual' with a 5-column margin and 80 columns of text
pr -t -o 5 -w 85 owners-manual | lpr
print the file 'owners-manual' with a 5-column margin and 75 columns of text
pr -t -o 5 -w 80 owners-manual | lpr
convert all tab characters to spaces in 'list', and write the output to 'list2'
expand list > list2
convert initial tab characters to spaces in 'list', and write the output to the standard output
expand -i list
convert every 8 leading space characters to tabs in 'list2', saving in 'list'
unexpand list2 > list
convert all occurrences of eight space characters to tabs in file 'list2', and write the output to the standard output
unexpand -a list2
convert every leading space character to a tab character in 'list2', and write the output to the standard output
unexpand -t 1 list2
paginate the file 'listings' and write the output to a file called 'listings.page'
pr -f -h "" listings > listings.page
By default, pr outputs pages of 66 lines each. You can specify the page
paginate the file 'listings' with 43-line pages, and write the
output to a file called 'listings.page'
pr -f -h "" -l 43 listings > listings.page
NOTE: If a page has more lines than a printer can fit on a physical
print the file 'duchess' with the default pr preparation
pr duchess | lpr
You can also use pr to put text in columns -- give the number of
print the file 'news.update' in four columns with no headers or
footers
pr -4 -t news.update | lpr
replace plaintext-style italics with TeX '\it' commands
M-x replace-regular-expression
_\([^_]+\)_
\{\\it \1}
replace TeX-style italics with plaintext _underscores_
M-x replace-regular-expression
\{\\it \{\([^\}]+\)\}
_\1_
output the file 'term-paper' so that you can view underbars, type:
ul term-paper
output the file 'term-paper' with all backspace characters stripped out
col -u term-paper
sort the file 'provinces' and output all lines in ascending order
sort provinces
sort the file 'provinces' and output all lines in descending order
sort -r provinces
peruse the file 'report' with each line of the file preceded by line numbers
nl report | less
show 'report', each line preceded by line numbers, starting with 2 step 4
nl -v 2 -i 4 report
peruse the text file 'report' with each line of the file numbered
cat -n report | less
peruse the text file 'report' with each non-blank line of the file numbered
cat -b report | less
write a line-numbered version of file 'report' to file 'report.lines'
cat -n report > report.lines
output the file 'prizes' in line-for-line reverse order
tac prizes
output 'prizes' in page-for-page reverse order
tac -s $'\f' prizes
output 'prizes' in word-for-word reverse order
tac -r -s '[^a-zA-z0-9\-]' prizes
output 'prizes' in character-for-character reverse order
tac -r -s '.\|
' prizes
output 'prizes' with the characters on each line reversed
rev prizes
output lines in the file 'catalog' containing the word `CD', type:
grep CD catalog
output lines in the file 'catalog' containing the word `Compact Disc'
grep 'Compact Disc' catalog
output lines in all files in the current directory containing the word 'CD'
grep CD *
output lines in the file 'catalog' that contain a `$' character, type:
grep '\$' catalog
output lines in the file 'catalog' that contain the string '$1.99'
grep '\$1\.99' catalog
output all lines in '/usr/dict/words' beginning with `pre', type:
grep '^pre' /usr/dict/words
output all lines in the file 'book' that begin with the text `in the beginning', regardless of case
grep -i '^in the beginning' book
output lines in the file 'sayings' ending with an exclamation point
grep '!$' sayings
output all lines in '/usr/dict/words' that are exactly two characters wide
grep '^..$' /usr/dict/words
output all lines in '/usr/dict/words' that are 17 characters wide
grep '^.\{17\}$' /usr/dict/words
output all lines in '/usr/dict/words' that are 25 or more characters wide
grep '^.\{25,\}$' /usr/dict/words
output all lines in 'playlist' containing either 'the sea' or 'cake'
grep 'the sea\|cake' playlist
output all lines in '/usr/dict/words' that are not three characters wide
grep -v '^...$'
output all lines in 'access_log' that do not contain the string 'http'
grep -v http access_log
output lines in '/usr/dict/words' that only contain vowels, type:
grep -i '^[aeiou]*$' /usr/dict/words
search across line breaks for the string 'at the same time as' in the file 'notes'
cat notes | tr -d '\r\n:\>\|-' | fmt -u | grep 'at the same time as'
list lines from the file 'email-archive' that contain the word 'narrative' only when it is quoted
grep '^>' email-archive | grep narrative
list lines of 'archive' containing the word 'narrative', but notquoted
grep narrative archive | grep -v '^>'
show lines in '/usr/dict/words' containing any of the words in the file 'swear'
grep -f swear /usr/dict/words
output lines in '/usr/dict/words' not containing any of the words in 'swear'
grep -v -i -f swear /usr/dict/words
search through the compressed file 'README.gz' for the text 'Linux'
zgrep Linux README.gz
search the contents of the URL http://example.com/ for lines containing the text 'gonzo' or `hunter'
lynx -dump http://example.com/ | grep 'gonzo\|hunter'
search '/usr/dict/words' for lines matching `tsch' and output two lines of context before and after each line of output
grep -C tsch /usr/dict/words
search '/usr/dict/words' for lines matching `tsch' and output six lines of context before and after each line of output
grep -6 tsch /usr/dict/words
search '/usr/dict/words' for lines matching `tsch' and output two lines of context before each line of output
grep -B tsch /usr/dict/words
search '/usr/dict/words' for lines matching `tsch' and output six lines of context after each line of output
grep -A6 tsch /usr/dict/words
search '/usr/dict/words' for lines matching `tsch' and output ten lines of context before and three lines of context after each line of output
grep -B10 -A3 tsch /usr/dict/words
replace the string 'helpless' with the string `helpful' in all
files in the current directory
perl -pi -e "s/helpless/helpful/g;" *
search forward through the text you are perusing for the word 'cat'
/cat
convert the text file 'saved-mail' to PostScript, with default formatting, and spool the output right to the printer
enscript saved-mail
write the text file 'saved-mail' to a PostScript file, 'saved-mail.ps', and then preview it in X
enscript -p report.ps saved-mail
ghostview saved-mail.ps
print the contents of the text file 'saved-mail' on a PostScript printer, with text set in the Helvetica font at 12 points
enscript -B -f "Helvetica12" saved-mail
make a PostScript file called 'saved-mail.ps' containing the
contents of the text file 'saved-mail', with text set in the
Helvetica font at 12 points
enscript -B -f "Helvetica12" -p saved-mail.ps saved-mail
print the contents of the text file 'saved-mail' to a PostScript
printer, with text set in 10-point Times Roman and header text set
in 18-point Times Bold
enscript -f "Times-Roman10" -F "Times-Bold18" saved-mail
make a PostScript file called 'saved-mail.ps' containing the
contents of the text file 'saved-mail', with text and headers both
set in 16-point Palatino Roman
enscript -f "Palatino-Roman16" -F "Palatino-Roman16" -p
print a sign in 72-point Helvetica Bold type to a PostScript
printer
enscript -B -f "Helvetica-Bold72"
print a sign in 63-point Helvetica Bold across the long side of
the page
enscript -B -r --word-wrap -f "Helvetica-Bold63"
pretty-print the HTML file 'index.html'
enscript -Ehtml index.html
pretty-print an email message saved to the file
'important-mail', and output it with no headers to a file named
'important-mail.ps'
enscript -B -Email -p important-mail.ps important-mail
peruse a list of currently supported languages
enscript --help-pretty-print | less
print the contents of the text file 'saved-mail' with fancy headers on a PostScript printer
enscript -G saved-mail
make a PostScript file called 'saved-mail.ps' containing the
contents of the text file 'saved-mail', with fancy headers
enscript -G -p saved-mail.ps saved-mail
print the contents of the text file 'saved-mail' with a custom header label containing the current page number
enscript -b "Page $% of the saved email archive" saved-mail
determine whether the file 'gentle.tex' is a TeX or LaTeX file, type:
grep '\\document' gentle.tex
print a copy of the PostScript version of the SGML-Tools guide to the default printer
zcat /usr/doc/sgml-tools/guide.ps.gz | lpr
check the SGML file 'myfile.sgml'
sgmlcheck myfile.sgml
make a plain text file from 'myfile.sgml'
sgml2txt myfile.sgml
make a PostScript file from 'myfile.sgml'
sgml2latex myfile.sgml
latex myfile.latex
dvips -t letter -o myfile.ps myfile.dvi
list all the X fonts on the system
xlsfonts
list all the X fonts on the system whose name contains the text 'rea'
xlsfonts '*rea*'
list all the bold X fonts on the system
xlsfonts '*bold*'
display the characters in a medium Courier X font
xfd -fn '-*-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1'
set the console font to the scrawl_w font
consolechars -f scrawl_w
set the console font to the 8x8 size sc font
consolechars -H 8 -f sc
list all of the characters in the current console font
showcfont
output the text 'news alert' in the default figlet font
figlet news alert
output the text of the file 'poster' in the figlet `bubble' font
cat poster | figlet -f bubble
NOTE: The 'bubble' font is installed at `/usr/lib/figlet/bubble.flf'.
make a banner saying 'Happy Birthday Susan'
banner 'Happy Birthday Susan'
preview the file '/usr/doc/gs/examples/tiger.ps'
ghostview /usr/doc/gs/examples/tiger.ps
extract only the first page from the file 'abstract.dvi' and
send the PostScript output to the printer
dvips -pp1 abstract.dvi
By default, dvips will output to the printer; to save the PostScript
output as PostScript the pages 137 to 146 of the file 'abstract.dvi' to the file `abstract.ps'
dvips -pp137-146 -o abstract.ps abstract.dvi
select the first ten pages, page 104, pages 23 through 28, and
page 2 from the file 'newsletter.ps' and write it to the file
'selection.ps'
psselect -p1-10,104,23-28,2 newsletter.ps selection.ps
write the 2nd-to-last to the tenth pages from the PostScript file
'newsletter.ps' and output them to the file 'selection.ps'
psselect -p_2-10 newsletter.ps selection.ps
write all even pages in 'newsletter.ps' to a new file, 'even.ps'
psselect -e newsletter.ps even.ps
select all of the odd pages in the file 'newsletter.ps' and
write them to a new file, 'odd.ps'
psselect -o newsletter.ps odd.ps
Use an underscore ('_') alone to insert a blank page, and use `-r' to
select the last ten pages of file 'newsletter.ps', followed by a
blank page, followed by the first ten pages, and output them to a
new file, 'selection.ps'
psselect -p_1-_10,_,1-10 newsletter.ps selection.ps
select the pages 59, 79, and 99 in the file 'newsletter.ps', and
output them in reverse order (with the 99th page first) to a new
file, 'selection.ps'
psselect -p59,79,99 -r newsletter.ps selection.ps
make a new PostScript file, 'double.ps', putting two pages from
the file 'single.ps' on each page
psnup -2 single.ps double.ps
To specify the paper size, give the name of a standard paper size as an
rearrange the pages of file 'newsletter.ps' into a signature and
write it to the file 'newsletter.bound.ps'
psbook newsletter.ps newsletter.bound.ps
By default, psbook uses one signature for the entire file. If the file
rearrange the pages of file 'newsletter.ps' into an eight-sided
signature and write it to 'newsletter.bound.ps'
psbook -s8 newsletter.ps newsletter.bound.ps
resize the file 'double.ps' to US letter-sized paper, saving to 'new.ps'
psresize -pletter double.ps new.ps
merge the files 's1.ps', 's2.ps', and 's3.ps' into a postscript file, 'slideshow.ps'
psmerge -oslideshow.ps s1.ps s2.ps s3.ps
make a booklet from the file 'newsletter.ps':
psbook newsletter.ps newsletter.signature.ps
make a double-sized booklet on letter-sized paper in landscape
orientation, from a file using letter-sized portrait orientation,
type:
psbook input.ps > temp1.ps
make a text file, 'sutra.txt', from the input file `sutra.ps', type:
ps2ascii sutra.ps sutra.txt
see how much free space is left on the system's disks
df
output the disk usage for the folder tree whose root is the current directory
du
output the disk usage, in kilobytes, of the '/usr/local' directory tree
du -k /usr/local
show the number of megabytes used by the file '/tmp/cache'
du -m /tmp/cache
output only the total disk usage of the '/usr/local' directory tree
du -s /usr/local
output only the total disk usage, in kilobytes, of the '/usr/local' folder tree
du -s -k /usr/local
format a floppy disk in the first removable floppy drive
mke2fs /dev/fd0
Mounting And Unmounting Media ‹↑›
In order for a some piece of media to be used in Linux it
normally needs to be 'mounted' or 'unmounted'
mount a floppy
mount /floppy
mount the floppy in the first floppy drive to '~/tmp'
mount /dev/fd0 ~/tmp
Once you have mounted a floppy, its contents appear in the directory
you specify, and you can use any file command on them.
list the contents of the base directory of the floppy mounted on '/floppy'
ls /floppy
list the contents of the whole folder tree on the floppy mounted on '/floppy'
ls -lR /floppy
umount the usb stick that is mounted on '/floppy'
umount /floppy
You cant unmount the drive if you are in the mounted folder
mount a CD-ROM on the system
mount /cdrom
mount the disc in the CD-ROM drive to the '/usr/local/share/clipart' directory
mount /dev/cdrom /usr/local/share/clipart
peruse a directory tree graph of the CD-ROM's contents
tree /usr/local/share/clipart | less
change to the root directory of the CD-ROM
cd /usr/local/share/clipart
list the contents of the root directory of the CD-ROM
ls /usr/local/share/clipart
unmount the disc in the CD-ROM drive mounted on '/cdrom'
umount /cdrom
Printing ‹↑›
print the file 'invoice'
lpr invoice
type a message with banner and send it to the printer
banner "Bon voyage!" | lpr
print a verbose, recursive listing of the '/usr/doc/HOWTO' directory
ls -lR /usr/doc/HOWTO | lpr
send the file 'nightly-report' to the printer called bossomatic, type:
lpr -P bossomatic nightly-report
print a dozen copies of the file 'nightly-report'
lpr -#12 nightly-report
Printing Queues ‹↑›
view the spool queue for the default printer
lpq
view the spool queue for the printer called bossomatic
lpq -P bossomatic
list the print jobs for user harpo
lpq harpo
Canceling Print Jobs ‹↑›
cancel print job 83
lprm 83
cancel all of your print jobs, but already spooled pages still print
lprm -
print the current buffer with page numbers and headers
M-x print-buffer
print the current buffer with no additional print formatting done to the text
M-x lpr-buffer
print a PostScript image of the current buffer
M-x ps-print-buffer
print the DVI file 'list.dvi'
dvips list.dvi
print 'home.dvi' on an envelope loaded in the manual feed tray of the printer
dvips -m -t landscape home.dvi
list the available printer formats
gs -?
GNU Ghostscript 5.10 (1998-12-17)
.more output messages... |
convert 'tiger.ps' to a format suitable for printing on an HP Color DeskJet 500 printer
gs -sDEVICE=cdj500 -sOutputFile=tiger.dj -dSAFER -dNOPAUSE tiger.ps < /dev/null
convert the file 'abstract.dvi' to PostScript
dvips -o abstract.ps abstract.dvi
this command reads the dvi file 'abstract.dvi' and writes a postscript
version of it to the file 'abstract.ps'; the original file is not
output only pages 14 and 36 from file 'abstract.dvi' to a PostScript file, 'abstract.ps'
dvips -pp14,36 -o abstract.ps abstract.dvi
output pages 2 - 100 from 'abstract.dvi' to a postscript file, 'abstract.ps'
dvips -pp2-100 -o abstract.ps abstract.dvi
output page 1 and pages 5 to 20 from file 'abstract.dvi' to a PostScript file, 'abstract.ps'
dvips -pp1,5-20 -o abstract.ps abstract.dvi
output 'abstract.dvi' as a PostScript file, 'abstract.ps', with a paper size of `legal'
dvips -t legal -o abstract.ps abstract.dvi
print the file 'abstract.dvi' to the default printer in landscape mode
dvips -t landscape abstract.dvi
generate a pdf file from the dvi file 'abstract.dvi'
dvips -Ppdf -o abstract.pdf abstract.dvi
This command writes a new file, 'abstract.pdf', in PDF format.
convert the PDF file 'pricelist.pdf'
pdf2ps pricelist.pdf pricelist.ps
output the man page for psbook as PostScript and send it to the default printer
man -t psbook | lpr
output the man page for psbook to the file 'psbook.ps'
man -t psbook > psbook.ps
In the preceding example, you can then use gs to convert the file to a
format your non-PostScript printer understands.
get a directory listing of the DOS disk currently in the primary floppy drive
mdir a:
introduce the floppy disk in the first floppy drive as an HFS volume for the 'hfsutils'
hmount /dev/fd0
After you run this command, the other tools in the hfsutils package
get a directory listing of the currently specified Macintosh disk
hls
Give the name of a directory as a quoted argument.
get a directory listing of the 'Desktop Folder' directory in the currently specified Macintosh disk
hls 'Desktop Folder'
copy the file 'readme.txt' to the `Desktop Folder' directory in the current Mac disk
hcopy readme.txt 'Desktop Folder'
copy the file 'Desktop Folder:Readme' from the current Mac disk
to the current directory
hcopy 'Desktop Folder:Readme' .
delete the file 'Desktop Folder:Readme' on the current Mac disk,
type:
hdel 'Desktop Folder:Readme'
format the disk in the first floppy drive with a Macintosh HFS filesystem
hformat /dev/fd0
format the disk in the second floppy drive with a Mac HFS filesystem, giving it a volume label of 'Work Disk'
hformat -l 'Work Disk' /dev/fd1
format the second partition of the SCSI disk at '/dev/sd2' with a Mac HFS filesystem
hformat /dev/sd2 2
format the entire SCSI disk at '/dev/sd2' with a Mac HFS filesystem, overwriting any existing Mac filesystem and giving it a label of 'Joe's Work Disk'
hformat -f -l "Joe's Work Disk" /dev/sd2 0
Times And Dates ‹↑›
Convert UNIX time to human readable date
awk 'BEGIN{print strftime("%c",1238387636)}'
show a calender in english
LC_TIME=c cal -y
When was your OS installed?
ls -lct /etc | tail -1 | awk '{print $6, $7}'
add the current time to your bash shell prompt
export PS1="${PS1%\\\$*}"' \t \$ '
Binary Clock
watch -n 1 'echo "obase=2;`date +%s`" | bc'
output the numeric day of the year that 21 June falls on in the current year
date -d '21 Jun' +%j
hear the current system time
saytime
remind yourself to leave at 8:05 p.m.
leave 2005
ring the bell in five seconds
sleep 5; echo -e '\a'
announce the time in exactly five minutes
sleep 5m; saytime &
announce the time in thirty seconds
sleep 30; saytime
Display The Current Time And Date ‹↑›
print todays time and date in the format '12:32am 23 July 2009'
date "+%l:%M%p %d %B %Y"
display todays date in the format '3mar2009'
date "+%d%b%Y"
find out what format specifiers you can use with the 'date' command
man strftime
?? perl one-liner to get the current week number
date +%V
output the current date and time in RFC822 format
date -R
output the current system date and time in a standard format
date
This prints something like 'Fri May 11 11:10:29 EST 2001' where 'EST'
signifies the timezone (in this case 'Eastern Standard Time')
output the current date and time in UTC format
date -u
Display a cool clock on your terminal
watch -t -n1 "date +%T|figlet"
Using Date Time Stamps ‹↑›
backup the file 'eg.txt' to 'eg.txt.13may2010' (using the current date)
cp eg.txt{,.$(date "+%d%b%Y")}
backup the file 'eg.txt' with a readable format date-time stamped file
cp eg.txt{,.$(date "+%d%b%Y.%I-%M%p")}
This will back up the file 'eg.txt' to 'eg.txt.13may2010.10-45am' for
example where the filename used represents the current date and time.
a function to back up a file with a date-time stamp name
bak(){ [ -z "$1" ] || cp $1{,.$(date "+%d%b%Y.%I-%M%p")}; }
Setting The System Date And Time ‹↑›
There are a number of ways to set the date and time on the computer.
One way is to set the time just locally. Another way is to use a
network time server to set the time, which should be more accurate in
the long run
advance the clock by 3 minutes
date -s '+3 mins'
set the hardware clock
hwclock
set the system date
rdate -s time-A.timefreq.bldrdoc.gov
use a network time server to set the date
man ntp
Converting Time And Date Formats ‹↑›
Date and times come in many different text formats, depending
on the country and whim of the date-time writer. This is very
thorny issue, but often must be dealt with. The problem is confounded
by cultural differences and ways of measuring time.
Unix-type operating systems such as Linux and Mac OSX have traditionally
used the number of milliseconds since 1970 as a universal date-time
format, but this has obvious limitations.
Unix time to local time
date -R -d @1234567890
Converting Date And Time Timezones ‹↑›
If you need to know the equivalent date and time in a different
timezone, then you will have to do a conversion.
Foreign And Non Local Times And Dates ‹↑›
show what time and date it is in new york
TZ=America/New_York date
print the time and date in the 'Indian/Maldives' timezone
TZ=Indian/Maldives date
show what time and date it is in bogota, colombia
TZ=America/Bogota date
show what general time zones are available
ls /usr/share/zoneinfo/ | less
show all available specific time-zones
f=/usr/share/zoneinfo; find $f | sed "s,$f,," | less
a function which searches for a particular time-zone by name
tiz(){ f=/usr/share/zoneinfo; find $f | sed "s,$f,," | grep -i "$1"; }; tiz perth
show all the specific time-zones for the Australian zone
ls /usr/share/zoneinfo/Australia
get time in other timezones
let utime=$offsetutc*3600+$(date --utc +%s)+3600; date --utc --date=@${utime}
show the date in the german language
LC_TIME=de_DE.utf8 date
Timezones ‹↑›
show the time in various timezones
gworldclock
show the time in other timezones
tzwatch
Greenwich Mean Time ‹↑›
print greenwich mean time in the format 'Fri Jul 17 16:36:24 2009'
perl -e "print scalar(gmtime(1247848584))"
Date And Time Offsets ‹↑›
An date offset is something like '2 days ago' or 'tomorrow'.
retrieve GMT time from websites ( generally accruate )
w3m -dump_head www.fiat.com | awk '/Date+/{print $6, $7}'
Get the time from NIST.GOV
cat </dev/tcp/time.nist.gov/13
print the date 14 days ago.
date --date="1 fortnight ago"
date -d "1 fortnight ago"
print date 24 hours ago
date --date=yesterday
Get yesterday's date or a previous time
date -d '1 day ago'; date -d '11 hour ago'; date -d '2 hour ago - 3 minute'; date -d '16 hour'
Unix Time ‹↑›
Unix time is a number which represent the number of seconds since 1970-01-01
00:00:00 UTC
Easily decode unix-time (function)
utime(){ perl -e "print localtime($1).\"\n\"";}
show the number of seconds since 1970
date +%s
Unix alias for date command that lets you create timestamps
alias timestamp='date "+%Y%m%dT%H%M%S"'
Convert To Unix Time ‹↑›
It can be useful to convert to unix-time when arithmetic needs to be performed
on dates or times, or when dates need to be sorted. The 'date' command does a
very good job of parsing diverse date strings (such as feb 7 2009 or
01/11/2001) with its '-d' option, but it has its limitations
convert a date string to the number of seconds since 1970
date -d "Sat Feb 7 00:37:06 EST 2009" +%s
convert tomorrows date (midnight, I suppose) into unix-time
date -d'tomorrow' +%s
print the final unix date
date -ud @$[2**31-1]
convert the date 'february 7, 2009' into unix-time
date -d "Sat Feb 7 00:00:00 EST 2009" +%s
date -d "feb 7 2009" +%s
date -d "7 feb 2009" +%s
date -d "february 7 2009" +%s
date -d "7/2/2009" +%s
date -d "7/2/09" +%s
these formats do NOT work (gnu date version 7.4)
date -d "feb/7/2009" +%s
date -d "7/feb/2009" +%s
date -d "feb 2009" +%s
convert the date 'Dec 11 01:25:00 2008' to a unix time value
perl -e 'use Time::Local; print timelocal(0,25,1,11,11,2008), "\n";'
Convert From Unix Time ‹↑›
convert unix time (seconds since 1970) to something human readable
date -d @1234567890
convert unix-time (seconds since 1970) to something more human-readable
perl -e 'print scalar(gmtime(1234567890)), "\n"'
convert unix-time to human-readable with awk
echo 1234567890 | awk '{ print strftime("%c", $0); }'
Calendars ‹↑›
output a calendar for the current month
cal
output a calendar for the year 2001
cal 2001
output a calendar for the current year
cal -y
output a calendar for June 1991
cal 06 1991
Printing multiple years with Unix cal command
for y in $(seq 2009 2011); do cal $y; done
Show this month's calendar, with today's date highlighted
cal | grep --before-context 6 --after-context 6 --color -e " $(date +%e)" -e "^$(date +%e)"
Show the date of easter
ncal -e
Display holidays in UK/England for 2009 (with week numbers)
gcal -K -q GB_EN 2009
Clocks ‹↑›
Display clock in terminal
watch -n 1 :
StopWatch, simple text, hh:mm:ss using Unix Time
export I=$(date +%s); watch -t -n 1 'T=$(date +%s);E=$(($T-$I));hours=$((E / 3600)) ; seconds=$((E % 3600)) ; minutes=$((seconds / 60)) ; seconds=$((seconds % 60)) ; echo $(printf "%02d:%02d:%02d" $hours $minutes $seconds)'
Arithmetic And Numbers ‹↑›
hexadecimal2decimal
printf "%d\n" \0x64
floating point operations in shell scripts
echo "5 k 3 5 / p" | dc
formatting number with comma
printf "%'d\n" 1234567
output the result of 50 times 10
calc 50*10
output the result of 100 times the sum of 4 plus 420
calc '100*(4+420)'
output the remainder of 10 divided by 3
calc 10%3
use bc to compute the result of 10 divided by 3, using 20 digits after the decimal point
bc
Count to 65535 in binary (for no apparent reason)
a=`printf "%*s" 16`;b=${a//?/{0..1\}}; echo `eval "echo $b"`
Bc The Binary Calculator ‹↑›
start the bc binary calculator in interactive mode
bc
assign values to variables in bc and print the sum of 2 variables
a=4; b=7; a+b
raise 4 to the power of 3 and multiply the result by 10
4^3; .*10
set the number of decimal places shown to 4 and compute 112 divided by 111
scale=4; 112/111;
set the number of decimal places show to 10
scale=10
multiply the variable 'a' by 4
a*=4
Floating point power p of x
bc -l <<< "x=2; p=0.5; e(l(x)*p)"
Random Numbers ‹↑›
see: jot
lotto generator
shuf -i 1-49 | head -n6 | sort -n| xargs
Outputs a 10-digit random number
echo $RANDOM$RANDOM$RANDOM |cut -c3-12
Outputs a 10-digit random number
head -c10 <(echo $RANDOM$RANDOM$RANDOM)
Outputs a 10-digit random number
head -c4 /dev/urandom | od -N4 -tu4 | sed -ne '1s/.* //p'
Display rows and columns of random numbers with awk
seq 6 | awk '{for(x=1; x<=5; x++) {printf ("%f ", rand())}; printf ("\n")}'
Print a random 8 digit number
jot -r -n 8 0 9 | rs -g 0
Print a random 8 digit number
jot -s '' -r -n 8 0 9
Random number generation within a range N, here N=10
echo $(( $RANDOM % 10 + 1 ))
output a random number from 0 to 9
random 10
Outputs a 10-digit random number
tr -c -d 0-9 < /dev/urandom | head -c 10
Printable random characters
tr -dc '[:print:]' < /dev/urandom
a random number guessing game
A=1;B=100;X=0;C=0;N=$[$RANDOM%$B+1];until [ $X -eq $N ];do read -p "N between $A and $B. Guess? " X;C=$(($C+1));A=$(($X<$N?$X:$A));B=$(($X>$N?$X:$B));done;echo "Took you $C tries, Einstein";
sort the lines of a file in a random way
cat test.txt | while read f ; do printf "$RANDOM\t%s\n" "$f"; done | sort -n | cut -f2-
print a random number with printf
printf "$RANDOM %s\n" number
Sequences ‹↑›
output the sequence of numbers from one to seven
seq 7
output the sequence of numbers from one to negative seven
seq -7
output the sequence of numbers from nine to zero
seq 9 0
output the sequence of numbers from negative one to negative twenty
seq -1 -20
output the sequence of numbers from -1 to 14, incrementing by 3,
seq -1 3 14
output from 9 to 999, stepping by 23, with numbers padded with zeros
seq -w 9 23 999
output the sequence of numbers from 1 to 23, with a space character between each
seq -s ' ' 1 23
concatenate all the files in this folder, whose names are numbers 25 to 75, into a new file called 'selected-mail'
cat $(seq -s " " 25 75) > selected-mail
output the prime factors of 2000
factor 2000
output the number of ounces in 50 grams
units '50 grams' 'ounces'
1.7636981
/ 0.56699046
,,,
determine the location of the units database
units -V
units version 1.55 with readline, units database in
/usr/share/misc/units.dat
output the English text equivalent of 100,000
number 100000
Mathematics ‹↑›
Find out how to say the first 66 digits of pi as a word
pi 66 | number
Fibonacci numbers with awk
awk 'BEGIN {a=1;b=1;for(i=0;i<'${NUM}';i++){print a;c=a+b;a=b;b=c}}'
Fibonacci numbers with sh
prev=0;next=1;echo $prev;while(true);do echo $next;sum=$(($prev+$next));prev=$next;next=$sum;sleep 1;done
A handy mathematical calculator
bc
Draw a Sierpinski triangle
perl -e 'print "P1\n256 256\n", map {$_&($_>>8)?1:0} (0..0xffff)' | display
Weather ‹↑›
get Hong Kong weather infomation from HK Observatory
wget -q -O - 'http://wap.weather.gov.hk/' | sed -r 's/<[^>]+>//g;/^UV/q' | grep -v '^$'
check the weather
ZIP=48104; curl http://thefuckingweather.com/?zipcode=$ZIP 2>/dev/null|grep -A1 'div class="large"'|tr '\n' ' '|sed 's/^.*"large" >\(..\)/\1/;s/&d.* <br \/>/ - /;s/<br \/>//;s/<\/div.*$//'
Show current weather for any US city or zipcode
weather() { lynx -dump "http://mobile.weather.gov/port_zh.php?inputstring=$*" | sed 's/^ *//;/ror has occ/q;2h;/__/!{x;s/\n.*//;x;H;d};x;s/\n/ -- /;q';}
Get Dollar-Euro exchage rate
curl -s wap.kitco.com/exrate.wml | awk ' BEGIN { x=0; FS = "<" } { if ($0~"^<br/>") {x=0} if (x==1) {print $1} if ($0~"EUR/US") {x=1} }'
Science ‹↑›
Mirror the NASA Astronomy Picture of the Day Archive
wget -t inf -k -r -l 3 -p -m http://apod.nasa.gov/apod/archivepix.html
View the latest astronomy picture of the day from NASA.
apod(){ local x=http://antwrp.gsfc.nasa.gov/apod/;feh $x$(curl -s ${x}astropix.html|grep -Pom1 'image/\d+/.*\.\w+');}
Real time satellite weather wallpaper
curl http://www.cpa.unicamp.br/imagens/satelite/ult.gif | xli -onroot -fill stdin
Geography ‹↑›
find geographical location of an ip address
lynx -dump http://www.ip-adress.com/ip_tracer/?QRY=$1|grep address|egrep 'city|state|country'|awk '{print $3,$4,$5,$6,$7,$8}'|sed 's\ip address flag \\'|sed 's\My\\'
find geographical location of an ip address
lynx -dump http://www.ip-adress.com/ip_tracer/?QRY=$1|sed -nr s/'^.*My IP address city: (.+)$/\1/p'
geoip lookup, the geographical location of an ip address
geoip(){curl -s "http://www.geody.com/geoip.php?ip=${1}" | sed '/^IP:/!d;s/<[^>][^>]*>//g' ;}
Gps Global Positioning System ‹↑›
send a .loc file to a garmin gps over usb
gpsbabel -D 0 -i geo -f "/path/to/.loc" -o garmin -F usb:
Shutting Down The Computer ‹↑›
immediately shut down and halt the system
shutdown -h now
immediately shutdown the system, and then reboot
shutdown -r now
immediately shut down and halt the system, sending a warning to all users
shutdown -h now "The system is being shut down now!"
shut down and then reboot the system at 4:23 a.m.
shutdown -r 4:23
shut down and halt the system at 8:00 p.m.
shutdown -h 20:00
shut down and halt the system in five minutes
shutdown -h +5
shut down and halt the system at midnight, and warn all logged-in users
shutdown -h 00:00 "The system is going down for maintenance at midnight"
cancel any pending shutdown
shutdown -c
cancel any pending shutdown and send a message to all logged in users
shutdown -c "Sorry, I hit the wrong key!"
find out where perl is installed on your system
which perl
create a new user with a username of bucky
adduser bucky
add the user doug to the audio group
addgroup doug audio
find out how long the system has been up
uptime
output a list of times when the system was rebooted
last reboot
output the name of the operating system
uname
output the release number of the operating system
uname -r
output the CPU processor type of the system
uname -m
output all of the uname information for the system you are on,
uname -a
output the release name of the Debian system you are on
cat /etc/debian_version
Debian releases have historically been named after characters
from the motion picture Toy Story.
Microsoft Windows ‹↑›
Change Windows Domain password from Linux
smbpasswd -r <domain-server> -U <user name>
Use Cygwin to talk to the Windows clipboard
cat /dev/clipboard; $(somecommand) > /dev/clipboard
Mount a Windows shared folder on the local network (Ubuntu) with user
sudo mount -t cifs -o user,username="samba username"
automount samba shares as devices in /mnt/
sudo vi /etc/fstab; Go//smb-share/gino /mnt/place smbfs defaults,username=gino,password=pass 0 0<esc>:wq; mount //smb-share/gino
mount a windows partition
sudo mkdir /media/nt/
sudo fdisk -l # find out where is the nt partition
sudo mount -t ntfs -o nls=utf8,umask=0222 /dev/hdb1 /media/nt
MISCELANEOUS
MAKING A SIMPLE DEBIAN PACKAGE ....
The following is a procedure for creating a debian package.
* create a 'debian/usr/bin' folder and copy the executable there
>> mkdir -p ./debian/usr/bin; cp someprogram ./debian/usr/bin
* create a man page for the program
>> vim someprogram.1
##(this is an optional step)
* create a man page folder and copy the man page there,
>> mkdir -p ./debian/usr/share/man/man1
>> cp ./man/man1/someprogram.1 ./debian/usr/share/man/man1
* compress the man page with gzip (an option step)
* create a copyright file to include in the package
>> find /usr/share/doc -name "copyright" ##(see examples of copyright files)
* create a folder for the copyright file and copy the file there
>> mkdir -p ./debian/usr/share/doc/someprogram; ...
>> cp ./copyright ./debian/usr/share/doc/someprogram
* find out the dependencies of all programs which your program uses
>> dkpg -S /bin/cat ##(this will display 'coreutils: /bin/cat)
* find out the version numbers of dependencies
>> apt-cache showpkg coreutils
##(this information is needed for the 'Dependencies' field of the control file)
make a control file..
Package: someprogram
Version: 1.1-1
Section: base
Priority: optional
Architecture: all
Depends: bash (>= 2.05a-11), textutils (>= 2.0-12), awk, procps (>= \
1:2.0.7-8), sed (>= 3.02-8), grep (>= 2.4.2-3), coreutils (>= 5.0-5)
Maintainer: James Tree <james@tree.org>
Description: parses a text stream
This script parses a text stream using a stack virtual machine
copy the control file to the 'DEBIAN' folder
mkdir -p debian/DEBIAN; cp control debian/DEBIAN
make a change log file (an optional step)
xlinuxstatus (1.2-1)
* Made Debian package lintian clean.
-- James Tree <james@tree.org> 2002-12-13
make a changelog.Debian file (optional)
linuxstatus Debian maintainer and upstream author are identical.
Therefore see also normal changelog file for Debian changes.
create and rename the package file
dpkg-deb --build debian; mv debian.deb someprogram_1.1-1_all.deb
install the newly created package
dpkg -i ./someprogram_1.1-1_all.deb
remove the installed package
dpkg -r someprogram
=;
Unix Program Naming ‹↑›
The names for Unix programs appear cryptic and seem to have no relation to
their function. However there is usually an explanation for the name. Unix
commands are traditionally very short to save typing.
Some Unix names explained
unix | a pun on the <mul>tics operating system |
linux | <linu>s torvalds version of the uni<x> operating system |
cat | con<cat>enate files, display all mentioned files |
less | is a successor to the 'more' program, a file page |
sed | <s>tream <ed>itor |
grep | <g>lobal <r>egular <e>x<p>ression search, |
ed | <ed>itor |
vi | <vi>sual editor |
vim | <v>isual editor <im>proved |
emacs | <e>diting <mac>ro<s> |
wc | <w>ord <c>ount |
tar | write to a <t>ape <ar>chive |
ls | <l>i<s>t files, |
troff | <t>ypesetting <r>un <off> system, formats documents |
groff | <g>nu version of the <r>un <off> system |
perl | <p>ractical <e>xtraction and <r>reporting <l>anguage |
awk | text processing language by <A>ho, <W>einberger, and <K>ernighan |
cd | <c>hange <d>irectory |
gcc | <g>nu <c> <c>ompiler |
wget | <w>eb <get>ter |
curl | <c>apture <url> |
scp | <s>ecure <c>opy <p>rogram |
Curiosities ‹↑›
A death cow thinking in your fortune cookie
fortune -s -c -a | cowthink -d -W 45
Find the cover image for an album
albumart(){ local y="$@";awk '/View larger image/{gsub(/^.*largeImagePopup\(.|., .*$/,"");print;exit}' <(curl -s 'http://www.albumart.org/index.php?srchkey='${y// /+}'&itempage=1&newsearch=1&searchindex=Music');}
random xkcd comic
display "$(wget -q http://dynamic.xkcd.com/comic/random/ -O - | grep -Po '(?<=")http://imgs.xkcd.com/comics/[^"]+(png|jpg)')"
Auto Rotate Cube (compiz)
wmctrl -o 2560,0 ;sleep 2 ; echo "FIRE 001" | osd_cat -o 470 -s 8 -c red -d 10 -f -*-bitstream\ vera\ sans-*-*-*--250-*-*-*-*-*-*-* ; sleep 1; wmctrl -o 0,0
Matrix Style
LC_ALL=C tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"
read the useless use of cat awards page
lynx http://partmaps.org/era/unix/award.html
dolphins on the desktop (compiz)
xwinwrap -ni -argb -fs -s -st -sp -nf -b -- /usr/libexec/xscreensaver/atlantis -count 20 -window-id WID &
for all who don't have the watch command
watch() { while test :; do clear; date=$(date); echo -e "Every "$1"s: $2 \t\t\t\t $date"; $2; sleep $1; done }
Get Futurama quotations from slashdot.org servers
echo -e "HEAD / HTTP/1.1\nHost: slashdot.org\n\n" | nc slashdot.org 80 | egrep "Bender|Fry" | sed "s/X-//"
View the newest xkcd comic.
xkcd(){ local f=$(curl -s http://xkcd.com/);display $(echo "$f"|grep -Po '(?<=")http://imgs.xkcd.com/comics/[^"]+(png|jpg)');echo "$f"|awk '/<img src="http:\/\/imgs\.xkcd\.com\/comics\/.*?" title=.*/{gsub(/^.*title=.|".*?$/,"");print}';}
The absolutely fastest nth fibonacci number
time echo 'n=70332;m=(n+1)/2;a=0;b=1;i=0;while(m){e[i++]=m%2;m/=2};while(i--){c=a *a;a=c+2*a*b;b=c+b*b;if(e[i]){t=a;a+=b;b=t}};if(n%2)a*a+b*b;if(!n%2)a*( a+2*b)' | bc
The 1 millionth fibonacci number
time echo 'n=1000000;m=(n+1)/2;a=0;b=1;i=0;while(m){e[i++]=m%2;m/=2};while(i--){c =a*a;a=c+2*a*b;b=c+b*b;if(e[i]){t=a;a+=b;b=t}};if(n%2)a*a+b*b;if(!n%2)a *(a+2*b)' | bc
Another Matrix Style Implementation
echo -ne "\e[32m" ; while true ; do echo -ne "\e[$(($RANDOM % 2 + 1))m" ; tr -c "[:print:]" " " < /dev/urandom | dd count=1 bs=50 2> /dev/null ; done
useless load
cat /dev/urandom | gzip -9 > /dev/null &
Gets a random Futurama quote from /.
curl -Is slashdot.org | egrep '^X-(F|B|L)' | cut -d \- -f 2
Get Futurama quotations from slashdot.org servers
lynx -head -dump http://slashdot.org|egrep 'Bender|Fry'|sed 's/X-//'
put nothing nowhere
cat /dev/zero > /dev/null &
Random line from bash.org (funny IRC quotes)
curl -s http://bash.org/?random1
decode html entities with perl
perl -ne 'use HTML::Entities;print decode_entities($_),"\n"'
Get length of array in zsh
$foo[(I)$foo[-1]]
List the top ten commands you use for the 'zsh' shell
perl -pe 's/.+;//' ~/.zsh_history | sort | uniq -c | sort -r|head -10
ZSH prompt. ':)' after program execution with no error, ':(' after
PROMPT=$'%{\e[0;32m%}%B[%b%{\e[0m%}%n%{\e[0;32m%}@%{\e[0m%}%(4c,./%1~,% ~)%{\e[0;32m%}%B]%b% %(?,%{\e[0;32m%}:%)%{\e[0m%},%{\e[0;31m%}:(%{\e[0m%}) %# '
Show every subdirectory (zsh)
ls -ld **/*(/)
Delete empty directories with zsh
rm -d **/*(/^F)
Postpone a command [zsh]
<alt+q>
zsh only: access a file when you don't know the path, if it is in
file =top
Mac Osx ‹↑›
This book focusses more on Linux but here is a little
information about OSX
Enable Hibernate in OS X
sudo pmset -a hibernatemode 1
On Mac OS X, runs System Profiler Report and e-mails it to
system_profiler | mail -s "$HOSTNAME System Profiler Report" user@domain.com
Paste OS X clipboard contents to a file on a remote machine
pbpaste | ssh user@hostname 'cat > ~/my_new_file.txt'
Throttling Bandwidth On A Mac
sudo ipfw pipe 1 config bw 50KByte/s;sudo ipfw add 1 pipe 1 src-port 80
OSX command to take badly formatted xml from the clipboard, cleans
pbpaste | tidy -xml -wrap 0 | pbcopy
Paste the contents of OS X clipboard into a new text file
pbpaste > newfile.txt
Zip a directory on Mac OS X and ignore .DS_Store (meta-data)
zip -vr example.zip example/ -x "*.DS_Store"
Open up a man page as PDF (#OSX)
function man2pdf(){ man -t ${1:?Specify man as arg} | open -f -a preview; }
- www: http://www.sveinbjorn.org/cljg2macosx
-
a good macosx command line site
on a bsd system view information about the folder structure
man hier
Newsreaders ‹↑›
- www: slrn
-
lightweight
- www: pan
-
graphical, good
- www: gnus
-
within emacs
- www: thunderbird
-
- www: xpn
-
graphical
- www: knode
-
the kde app
File Usage ‹↑›
- www: filelight
-
shows disk usage in a graphical manner
- www: gadmin-rsync
-
a gui wrapper for rsync with ssh, scp etc
Terminals ‹↑›
- www: slugterm
-
light weight terminal for small linuxes
- www: grdc.sf.net
-
remote desktop for sys admins
Graphs ‹↑›
A simple pie chart in 'gnuplot' (and with a 3d thickness)
- www: freemind.sf.net
-
mind mapping charting software
- www: docuwiki
-
a wiki with no database backend
- www: amarok
-
- www: songbird
-
music playlist software
- www: frescobaldi
-
create musical scores from a text input file. gui application
- www: gpx
-
an xml format for storing gps data
- www: prune
-
a tool for manipulating gps data
- www: synfig
- studio
a program to create animations using stick figures,
paths etc.
- www: blender
-
3d animations
- www: wwww.pencil-animation.org
-
a tool for creating traditional drawn animation
- www: www.morevnaproject.org
-
an open source animation (anime)
- www: www.schoolsplay.org
-
education games. a spelling pacman, flashcards etc
'childsplay'
- www: pyspace
- war
an asteroid shootem up
Game Engines ‹↑›
- www: pygame
-
- www: sdl
-
- www: irrlicht.sf.net
-
an open source game engine, written in c++, with bindings
for other languages
Geneology ‹↑›
- www: gramps
-
gui geneology builder
Blog Engines ‹↑›
- www: bilboblog
-
a simple blog engine
- www: lifeograph
-
simple diary application
Jargon ‹↑›
- www: easter
- egg
Is an unexpected function hidden in a piece of software
- www: Unix-style
- operating system,
This is an operating system which is somewhat 'unix-like'
an included Apple OSX, Linux, FreeBSD, etc
- www: Linux
- flavour, Linux Distribution
Linux comes in a number of different distributions, such as
Debian, Fedora, and Ubuntu to name only some of many.
- www: regular
- expression
A search pattern
- www: recursive
-
Recursive means to do an action for some object, and then
repeat the same action for all objects which that object
contains.
- www: concatenate
-
join together two or more things. For example join together
2 files with 'cat a.txt b.txt > c.txt'
- www: command
- line
- www: shell
-
A shell is a piece of software which allows you to communicate
with the computer by typing (rather cryptic) commands, and
watching the output of those commands. This book focusses on
the 'Bash' shell, which is probably the most popular shell
on Unix, Linux and Apple OsX.
- www: terminal
-
The terminal is a piece of software which allows you to use
the 'shell'. Examples are 'Konsole' for KDE
- www: program
-
A program is really just a piece of software which does
something on the computer.
- www: parse,
- parsing
parsing is the process of analysing and splitting into its
structure a text pattern. This is a very important task on all
computer systems, since a great deal of data processing involves
the parsing of one text pattern, and then the transformation of
that pattern into another format.
- www: thread
-
- www: daemon
-
- www: process
-
These are similar but important concepts
printing jargon
- www: pretty-print
-
This refers to the process of preparing some piece of text
automatically in some way which is pleasing to read once printed
on a piece of paper or on a computer screen. The term is
ambiguous since it can refer to the application of colour to
a text file or to the changing and formatting of indentation and
paragraph width
Notes And Ideas ‹↑›
This section should contain references to things which I
think would be worthwhile investigating but which I havent
and may well never get round to doing.
grsync. gimp thresholds. sea horse for encrypt
vnc and vino for remote control
Tweetdeck, bluefish, dropbox,
dialog, gdialog,
xxd - hexdumps
kompozer,
Organisation ‹↑›
zim - note taker |
tomboy - note taker |
fzapper |
DOCUMENT-NOTES: