Much more than 1%, actually...
Yes, you can to some extent run DOS and Windows applications under Linux! There are two emulators that are quite good: Dosemu ( http://www.dosemu.org) and Wine ( http://www.winehq.com). The latter is getting better release after release, and the list of runnable applications is getting larger. It even runs Word and Excel!
Under UNIX there are some widely used applications to archive and compress files. tar
is used to make archives---it's like PKZIP
or Winzip
but it doesn't compress, it only archives. To make a new archive:
$ tar cvf <archive_name.tar> <file> [file...]
To extract files from an archive:
$ tar xvf <archive_name.tar> [file...]
To list the contents of an archive:
$ tar tf <archive_name.tar> | less
You can compress files using compress
, which is obsolete and shouldn't be used any more, or gzip
:
$ compress <file> $ gzip <file>
that creates a compressed file with extension .Z
(compress
) or .gz
(gzip
). These programs can compress only one file at a time. To decompress:
$ compress -d <file.Z> $ gzip -d <file.gz>
RMP.
There are also the unarj
, zip
and unzip
(PK??ZIP compatible) utilities. Files with extension .tar.gz
or .tgz
(archived with tar
, then compressed with gzip
) are as common in the UNIX world as .ZIP files are under DOS. Here's how to list the contents of a .tar.gz
archive:
$ tar ztf <file.tar.gz> | less
First of all: installing packages is root's work. Most Linux applications are distributed as a .tar.gz
archive, which typically will contain a directory aptly named containing files and/or subdirectories. A good rule is to install these packages from /usr/local
with the command
# tar zxf <archive.tar.gz>
reading then the README or INSTALL file. In most cases, the application is distributed in source, which you'll have to compile; often, typing make
then make install
will suffice. If the archive contains a configure
script, run it first. Obviously, you'll need the gcc
or g++
compiler.
Other archives have to be unpacked from /; this is the case with Slackware's .tgz
archives. Other archives contain the files but not a subdirectory - careful not to mess things up! Always list the contents of the archive before installing it.
Debian and Red Hat have their own archive format; respectively, .deb
and .rpm
. The latter is widely used by many distributions; to install an rpm
package, type
# rpm -i package.rpm
Backscrolling: pressing <SHIFT + PAG UP> (the grey key) allows you to backscroll a few pages, depending on how much video memory you have.
Resetting the screen: if you happen to more
or cat
a binary file, your screen may end up full of garbage. To fix it, blind type reset
or this sequence of characters: echo CTRL-V ESC c RETURN
.
Pasting text: in console, see below; in X, click and drag to select the text in an xterm
window, then click the middle button (or the two buttons together if you have a two-button mouse) to paste. There is also xclipboard
(alas, only for text); don't get confused by its very slow response.
Using the mouse: if you installed gpm
, a mouse driver for the console, you can click and drag to select text, then right click to paste the selected text. It works across different VCs.
Messages from the kernel: have a look at /var/adm/messages
or /var/log/messages
as root to see what the kernel has to tell you, including bootup messages. The command dmesg
is also handy.
If you're wondering whether you can replace your old and trusted DOS/Win application with a Linux one, I suggest that you browse the main Linux software repository: ftp://metalab.unc.edu/pub/Linux. Other good starting places are the ``Linux Applications and Utilities Page'' http://www.xnet.com/~blatura/linapps.shtml, the ``official'' Linux page http://www.linux.org, and http://freshmeat.net.
Linux can do an awful lot of things that were cumbersome, difficult or impossible do to with DOS/Windows. Here's a short list that may whet your appetite:
at
allows you to run programs at a specified time;awk
is a simple yet powerful language to manipulate data files (and not only). For example, being data.dat
your multi field data file,
prints out fields 1 and 4 of every line in
$ awk '$2 ~ "abc" {print $1, "\t", $4}' data.dat
data.dat
whose second field contains ``abc''.
cron
is useful to perform tasks periodically, at specified date and time. Type man 5 crontab
.file <filename>
tells you what filename
is (ASCII text, executable, archive, etc.);find
(see also Section Directories: Translating Commands) is one of the most powerful and useful commands. It's used to find files that match several characteristics and perform actions on them. General use of find
is:
where <expression> includes search criteria and actions. Examples:
$ find <directory> <expression>
finds all the files that are symbolic links and shows what they point to.
$ find . -type l -exec ls -l {} \;
finds all the files matching the pattern and deletes them, asking for your permission first.
$ find / -name "*.old" -ok rm {} \;
finds all the files whose permissions match 111 (executable).
$ find . -perm +111
finds all the files that belong to root. Lots of possibilities here---RMP.
$ find . -user root
grep
finds text patterns in files. For example,
lists the files *.tex that contain the word ``geology''. The variant
$ grep -l "geology" *.tex
zgrep
works on gzipped files. RMP;
^a[^a-m]X{4,}txt$
matches a line that starts with `a', followed by any character except those in the interval a-m, followed by 4 or more `X', and ends in `txt'. You use regular expressions with advanced editors, less
, and many other applications. man grep
for an introduction.script <script_file>
dumps the screen contents on script_file
until you issue the command exit
. Useful for debugging;sudo
allows users to perform some of root's tasks (e.g. formatting and mounting disks; RMP);uname -a
gives you info about your system;zcat
and zless
are useful for browsing and piping gzipped files without decompressing them. For example:
$ zless textfile.gz $ zcat textfile.gz | lpr
bc, cal, chsh, cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split, strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write, xargs, znew.
RMP.Believe it or not, there are fine tools that provide a UNIX-like environment under DOS/Windows! One is the Djgpp suite ( http://www.delorie.com/djgpp/) for DOS, while Cygwin ( http://www.cygnus.com/cygwin) is a more complex port for Win32. Both include the same GNU development tools and utilities as Linux; you won't get the same stability and performance, though.
If you'd like to have a taste of Linux, try out Djgpp. Download and install the following files (as of this writing, the latest version is 2.02): djdev202.zip, bnu281b.zip, bsh1147b.zip, fil316b.zip, find41b.zip, grep22b.zip, gwk303b.zip, lss332b.zip, shl112b.zip.
. Installation instructions are provided, and you can find assistance on news:comp.os.msdos.djgpp.
In particular, using bash
under DOS/Win is a whiff of fresh air. To configure it properly, edit the supplied file BOOT.BAT
to reflect your installation, then put these files in your home directory (in the Windows partition) instead of those provided:
# this is _bashrc LS_OPTIONS="-F -s --color=yes" alias cp='cp -i' alias d='ls -l' alias l=less alias ls="ls $LS_OPTIONS" alias mv='mv -i' alias rm='rm -i' alias u='cd ..'
# this is _bprof if [ -f ~/_bashrc ]; then . ~/_bashrc fi PS1='\w\$ ' PS2='> ' CDPATH="$CDPATH:~" # stuff for less(1) LESS="-M-Q" # long prompt, silent LESSEDIT="%E ?lt+%lt. %f" # edit top line VISUAL="jed" # editor LESSCHARSET=latin1 # visualise accented letters export PS1 PS2 CDPATH LS_OPTIONS LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET
You may come across scores of file extensions. Excluding the more exotic ones (i.e. fonts, etc.), here's a list of who's what:
1 ... 8
: man pages. Read them with groff -Tascii -man <file.1>
.arj
: archive made with arj
.dvi
: output file produced by TeX (see below). xdvi
to visualise it; dvips
to turn it into a PostScript .ps
file.gz
: archive made with gzip
.info
: info file (sort of alternative to man pages). Get info
.lsm
: Linux Software Map file. It's a plain ASCII file containing the description of a package.ps
: PostScript file. To visualise or print it get gs
and, optionally, ghostview
or gv
.rpm
: Red Hat package. You can install it on any system using the package manager rpm
.taz, tar.Z
: archive made with tar
and compressed with compress
.tgz, tar.gz
: archive made with tar
and compressed with gzip
.tex
: text file to submit to TeX, a powerful typesetting system. Get the package tex
, available in many distributions.texi
: texinfo file, can produce both TeX and info files (cp. info
). Get texinfo
.xbm, xpm, xwd
: graphic file.Z
: archive made with compress
.If you need to exchange text files between DOS/Win and Linux, be aware of the ``end of line'' problem. Under DOS, each line of text ends with CR/LF (that is, ASCII 13 + ASCII 10), with LF under Linux. If you edit a DOS text file under Linux, each line will likely end with a strange--looking `M' character; a Linux text file under DOS will appear as a kilometric single line with no paragraphs. There are a couple of tools, dos2unix
and unix2dos
, to convert the files.
If your text--only files contain accented characters, make sure they are made under Windows (with Notepad) and not under plain DOS; otherwise, all accented characters will be screwed up.
Yes, you can have for free what would otherwise cost a lot of money!
StarOffice ( http://www.sun.com/staroffice.) is currently the only choice, though Koffice is down the pipeline ( http://www.koffice.org). StarOffice is big and slow, but very good anyway: it offers a lot of functionality not found in Microsoft Office. It can also read and write Word and Excel files, although the conversion isn't always perfect.
Another good package is Corel WordPerfect, a free edition of which is available for download. Need I say more? Go fetch it: http://www.corel.com.