Free Software for DOS
Unix >> DOS

21 Aug 2006

Global Menu:
Go back to Front Page Menus

This page:
INTRODUCTION

COMMAND INTERPRETERS / SHELLS

UTILITY SETS

OTHER UNIX >> DOS PROGS  IN THESE PAGES

INTRODUCTION

The programs featured here are DOS ports of Unix originals, or of the Free Software Foundation's tools for the GNU Operating System

Programs from the GNUish Project, and some others, run in 80x86 real mode (16-bit) and so will work on 80286 or older CPUs and almost any DOS.

More recent ports from GNU and others are 32-bit DJGPP builds that require an 80386+ CPU and a DOS Protected Mode Interface (usually supplied by CWSDPMI or by Windows).

See More Resources - 1 for links to additional info and download sites.


COMMAND INTERPRETERS / SHELLS

Also see Mi-Shell (MSH), a Norton Commander-type shell with Unixish features.


bash — GNU's command shell, ported to DOS.

* * * *

[added 2004-10-29, updated 2006-08-15]

From the docs:
Bash... the GNU Bourne-Again SHell... the shell, or command language interpreter, for the GNU operating system... incorporates useful features from the Korn and C shells (ksh and csh)
...a macro processor that executes commands. A Unix shell is both a command interpreter, which provides the user interface to the rich set of GNU utilities, and a programming language, allowing these utilitites to be combined. Files containing commands can be created, and become commands themselves. These new commands have the same status as system commands in directories such as /bin, allowing users or groups to establish custom environments.

2003-04-25: v2.05b, 32-bit DJGPP port for 80386+.

Author: Chet Ramey et al. (2003).

Downloads
bsh205bb.zip
(503K)
Binaries, manual
bsh205bs.zip
(2.5M)
Source, more docs

MS Shell — Unixish command shell for DOS.

* * * *

[added 2004-10-29]

This shell is based on Unix SVR4's Korn and Bourne shells, and the MINIX shell by Charles Forsyth. Some OS/2 commands have been added. Binaries package includes 16- and 32-bit DOS, and 16- and 32-bit OS/2 executables. Also see the matching UXUTL utilty set.

Author: Ian Stewartson, UK (1994).

1994-08-26: v2.3.

Downloads
ms_sh23b.zip
(810K)
Binaries
ms_sh23s.zip
(496K)
Source

UTILITY SETS

Also see RUTILS4.


GNU Shell Utilities (Shellutils, Sh-utils) — Core components of the GNU operating system.

* * * *

[added 2005-03-28, updated 2006-08-15]

These, with the Fileutils and the Textutils, are core components of the GNU operating system. In this version, all are 32-bit DJGPP compilations.

basename
Strip directory and suffix
chroot
Specify the root directory
date
Print/set system date and time
dirname
Strip non-directory suffix
echo
Print a line of text
env
Modify the environment
expr
Evaluate expressions
factor
Print prime factors
false
Do nothing, unsuccessfully
groups
Print group names a user is in
hostid
Print numeric host identifier
hostname
Print or set system name
id
Print real/effective uid/gid
logname
Print current login name
nice
Modify scheduling priority
nohup
Immunize to hangups
pathchk
Check file name portability
printenv
Print environment variables
printf
Format and print data
pwd
Print working directory
seq
Print numeric sequences
sleepp
Delay for a specified time
stty
Print/change terminal settings
su
Modify user and group id
tee
Redirect to multiple files
test
File/string tests
true
Do nothing, successfully
tty
Print terminal name
uname
Print system information
users
Print current user names
who
Print who is logged in
whoami
Print effective user id
yes
Print a string indefinitely

Authors: Jim Meyering, Roland McGrath, David MacKenzie, Richard Mlynarik, Mike Parker, Arnold Robbins, Joseph Arceneaux, Kaveh Ghazi, Ulrich Drepper, Paul Eggert, Richard M. Stallman for GNU. DOS port by Prashant TR (2003).

2003-12-15: v2.0.11.

Downloads
shl2011b.zip
(1.5M)
Binaries, man pages
shl2011d.zip
(318K)
Docs: dvi/html/ps/texi

UXUTL — Comprehensive collection of command line Unix utilities for DOS.

* * * *

[updated 2004-10-29]

This set of UNIX utilities was originally developed for use with the author's Uish MS Shell but the tools can be used as standalone programs. The UXUTL set is split into four archives (a, b, c, and d) and mainly consists of file and text processing programs. Documentation (included with the "a" set) is sparse – you'll need to acquire the corresponding Unix MAN docs to appreciate the full potential of these programs. One util I use frequently from this package is tee – it allows you to redirect output to the screen and to a file *simultaneously.*

Here are the contents of the four packages that make up the collection:

a
basename
Display file namename
bmgrep
Fast pattern matching utility
cal
Display calendar
cat
Concatenate files
cdiff
Context difference
cgrep
Searches file for pattern and display context
chmod
Change file attributes
cmp
Compare two files
comm
Select or reject lines common to two sorted files
cp
Copy files
cpio
Archive files
csplit
Context or line file splitter
cut
Cut data out of a file
USAGE
doc file

b
date
Display / change date and time
dd
Data copy
df
Display Disk Free space
dirname
Extract directory name from filename
du
Display disk usage
expr
Evaluate arguments as expression
fgrep
Searches file for string
find
Search dir tree for files matching req.
fold
Fold long lines to stdout
fstat
Print file status information
grep
Searches file for pattern
head
Display file headers
ls
List directory

c
m4
M4 Macro processor
make
Makefile processor
mkdir
Make path
mv
Move files
od
octal dump
printarg
Print arguments to stdout
printenv
Print environment to stdout
rm
Remove files
rmdir
Remove directories
setschar
Set switch character
sleep
Wait for n seconds
sort
Sort files
split
Split file into n line parts

d
strings
Display the strings in files
sym
Display symbolic info from obj and lib files
tail
Print tail of file
tee
Copy stdin to one or more files and standard output
touch
Change a file's time stamp or size
tput
Output a termcap string
tr
Translate characters
uniq
Display unique lines
wc
Count number of words in file
which
Display the dir containing a command from PATH

Author: Ian Stewartson, UK (1994).

Downloads
a
uxutl23a.zip
(239K)
b
uxutl23b.zip
(228K)
c
uxutl23c.zip
(222K)
d
uxutl23d.zip
(161K)

Berkeley Utilities — Unixish tool set for DOS.

* * * *

[added 2001-11-16, updated 2005-12-09]

Also see the related Mi-Shell (MSH), which looks for this set.

From the docs;
The Berkeley Utilities are a set of 40 Unix-like utilities for MS-DOS... It is not as complete a set of Unix commands as can be found in some other packages (e.g. MKS) but it contains some useful utilities you don't find elsewhere (e.g. cb, xstr)...[T]hey now work with long filenames under Win95/98, and df can understand multi-gigabyte partitions...Compared to the GNU utilities, [the Berkeley Utilities] have the advantage that they are much smaller (20K on average instead of 100K). Compared to MKS utilities, they have the advantage that each utility is self contained (it can run separately without any other support file, and each utility contains a help screen)...
The Berkeley Utilities follow rigorously the Unix System V syntax and include all the options found on any Unix system plus a few carefully chosen ones. They used to sell for $200 and are now free.
awk
string processing language
basename
extract base part from pathname of a file or directory
cal
display the calendar for a year or a month
cat
concatenate files
cb
C beautifier
cmp
binary file comparison
comm
look for common lines in 2 files
cp
copy files and directories
cut
cut out columns or fields from files
df
statistics on disk usage
diff
compare files and directories
dtree
display tree structure of directory
du
display space each directory takes
ech
echo arguments
ed
line editor
expand
expands tabs into blanks
find
find files with certain properties, execute commands on each
grep
search for patterns in files
head
display the beginning of one or several files
join
relational join of two files
ls
list files and directories
make
update files
more
text files browser
mv
move files and directories
od
octal or hexadecimal dump
paste
merge files as columns of a single file
rederr
redirect error output of commands
rm
remove files and directories
sed
stream editor
sort
sort files
split
split a file into smaller pieces
tail
display the end of a file
tee
pipe connection and derivation
touch
update file timestamp
tr
translate standard in to standard out
unexpand
compress spaces to tabs
uniq
weed out or find duplicate lines in a sorted file
wc
count words and lines
which
find which version of a program is active
xstr
extract character strings from C programs

Authors: Jean Michel and Patrick Mérissert-Coffinières, France (1991, 2001). Distributed by OPENetwork.

2001-02-12: v2.0. Formerly paid commercial software, now in the public domain and completely free.

Download berk.zip (1.2MB), complete package with all utils + manual (pdf format).

Go to the Berkeley Utilities page at OPENetwork to download individual programs, and see examples of use with screenshots.

Online manual.


GNU Diffutils (diff) — File difference package.

* * * *

[added 1998-08-16, updated 2006-08-15]

These utils are available in two sets, 32-bit and 16-bit. The 32-bit DJGPP set includes 4 programs: diff, cmp, diff3, and sdiff. Diff seems best suited to tracking differences among versions of code / documents through time (i.e., version maintenance) rather than offering quick, intuitive recognition of differences as with VCOMP. But as noted by a reader:

[diff] has long had a very readable format, that does not require ansi color etc. called the context format:
    diff -C 1 file1  file2
This prints different lines (changed, deleted, or added) with one line that is the same in each file at the beginning and end, something like this:
    first line is same
    2C --  second line of file is different
    ---------------------------------------
    2C --  second line of this file is different
    third line is same
Where the first and third lines are the identical "context" lines. Very readable format for changed lines, a little less for lines added or deleted.
Also, for hard copy, double column, portrait-mode visual comparison of content (i.e., ignoring layout) you may want to re-wrap copies of your two text files to a narrow width (e.g., 35, if that doesn't mangle the readability too much) and then play with the --width=NUM parameter (e.g., =80) in combination with the -y switch. Diff is capable of handling large files. Win9x LFN compatible under Win9x.
From the docs: Diff
...outputs differences between files line by line in any of several formats, selectable by command line options. This set of differences is often called a "diff" or "patch". For files that are identical, diff normally produces no output; for binary (non-text) files, diff normally reports only that they are different. You can use the set of differences produced by diff to distribute updates to text files (such as program source code) to other people...The cmp command shows the offsets and line numbers where two files differ. cmp can also show all the characters that differ between the two files, side by side. ...Use the diff command to show differences among three files...diff3 can report the differences between the original and the two changed versions, and can produce a merged file that contains both persons' changes together with warnings about conflicts...Use the sdiff command to merge two files interactively.
...provides ways to suppress certain kinds of differences that are not important to you. Most commonly, such differences are changes in the amount of white space between words or lines...differences in alphabetic case or in lines that match a regular expression that you provide.

The older 16-bit utils are GNUish Project ports, and do not include sdiff.

Authors: Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower, Thomas Lord, Randy Smith, Torbjorn Granlund and David MacKenzie for GNU. 16-bit port by Helge Oldach, Germany (1993). 32-bit port by Eli Zaretskii, Israel (2004).

Versions       
2004-09-11:
2.8.1
DOS32
1993-05-25:
2.3
DOS16

Downloads
DOS32
dif281b.zip
(394K)
Binaries, man pages

dif281d.zip
(719K)
Docs: dvi/html/pdf/ps

dif281s.zip
(1.1M)
Source
DOS16
diff23x.zip
(139K)
Binaries, man pages, source


GNU Fileutils — Collection of file utilities.

* * * *

[added 1998-09-13, updated 2005-03-11]

An up-to-date, all-in-one file toolkit. Separately zipped documentation helpful.

32-bit DJGPP port for 80386+, supports Win9x long file names (LFNs):

chgrp
Changes file group ownership
chown
Changes file ownership
chmod
Changes file permissions
cp
Copies files
dd
Copies and converts a file
df
Shows disk free space on filesystems
dir
Gives a brief directory listing
dircolors
Setup program for the color output of GNU ls
du
Shows disk usage on filesystems
install
Copies file and sets its permissions
ln
Creates file links
ls
Lists directory contents
mkdir
Creates directories
mkfifo
Creates FIFOs (named pipes)
mknod
Creates special files
mv
Moves files
rm
Removes (deletes) files
rmdir
Removes empty directories
shred
Destroy data in files
sync
Synchronizes filesystem buffers and disk
touch
Changes file timestamps
vdir
Long directory listing

16-bit port for 8086/80286, similar but not identical contents:

chmod
change the access permissions of files
cp
copy files
dd
convert a file while copying it
df
summarize free disk space
di
list contents of directories
du
summarize disk usage
install
copy files and set their attributes
ls
list contents of directories
mkd
make directories
mv
rename files
rm
remove files
rmd
remove empty directories
touch
change file timestamps
vdir
list contents of directories

Authors: Richard Stallman, David MacKenzie, Torbjorn Granlund, Larry McVoy, Paul Eggert, Paul Rubin, Stuart Kemp, Jim Meyering, H. Peter Anvin, Arnold Robbins, Jim Kingdon, Randy Smith, Colin Plumb for GNU. 16-bit port by Stephen McConnel (1995). 32-bit port by Richard Dawe, UK, et al. (2002).

Versions       
2003-03-27:
4.1
32-bit
1995-03-18
3.12
16-bit

Downloads
v4.1
fil41b.zip
(1.7M)
Binaries + manual

fil41d.zip
(537K)
Docs: html/tex/ps/dvi

fil41s.zip
(2.3M)
Source
v3.12
fut312bx.zip
(341K)
Binaries + manual

fut312bs.zip
(463K)
Source

GNU Findutils — Powerful file finding package.

* * * *

[updated 2006-08-15]

These are the programs in the set:

find
search for files in a directory hierarchy
locate
list files in databases that match a pattern
locatedb
front-compressed file name database
updatedb
update a file name database
xargs
build and execute command lines from standard input

Somewhat complex. Supports Unix wildcards. The locate program, which accesses a previously compiled database of file names, i.e, a file, rather than an entire drive, is accessed during a search (quicker, less disk wear, but requires regular maintainence of a filename database. The DOS version uses a less than intuitive batch analog of the file database updater).

A simpler locate program than the one here, but using the same principle is locat110.zip (but database creation freezes on big drives with long paths).

2003-12-15: v4.1.7. 32-bit DJGPP port for 80386+.

Authors: Eric Decker, David MacKenzie, Jay Plett, Tim Wood, Mike Rendell for GNU. DOS port by Eli Zaretski, Israel; and Andrew Cottrell, Australia (2003).

Downloads
find417b.zip
(373K)
Binaries, manual
find417d.zip
(9K)
Docs: dvi/html/ps/texi

GNU Textutils — Collection of text utilities.

* * * *

[added 1998-09-13, updated 2005-03-11]

An all-in-one toolkit, available in 16-bit and in 32-bit DJGPP compilations. The 32-bit programs may get the job done quicker than their 16-bit counterparts, will definitely handle larger files, and support Win9x long file names. Separately zipped documentation helpful.

Output of entire files
cat
Concatenate and write files.
tac
Concatenate and write files in reverse.
nl
Number lines and write files.
od
Write files in octal or other formats.

Formatting file contents
fmt
Reformat paragraph text.
pr
Paginate or columnate files for printing.
fold
Wrap input lines to fit in specified width.

Output of parts of files
head
Output the first part of files.
tail
Output the last part of files.
split
Split a file into fixed-size pieces.
csplit
Split a file into context-determined pieces.

Summarizing files
wc
Print byte, word, and line counts.
sum
Print checksum and block counts.
cksum
Print CRC checksum and byte counts.
md5sum
Print or check message-digests.

Operating on sorted files
sort
Sort text files.
uniq
Uniqify files.
comm
Compare two sorted files line by line.

Operating on fields within a line
cut
Print selected parts of lines.
paste
Merge lines of files.
join
Join lines on a common field.

Operating on characters
tr
Translate, squeeze, and/or delete characters.
expand
Convert tabs to spaces.
unexpand
Convert spaces to tabs.

Authors: 32-bit port by Eli Zaretskii, Israel (2003). 16-bit port by Stephen McConnel (1995).

Versions       
1995-03-20:
1.11
16-bit port for 8086/80286
2003-12-15:
2.0
32-bit DJGPP port for 80386+

Downloads
DOS16
tut111ax.zip
(453K)
Binaries, man pages
DOS32
txt20b.zip
(1.6M)
Binaries, man pages

txt20d.zip
(272K)
Docs: texi/html/dvi/ps

GNU Shar utils — Prepare archives for mailing.

* * * *

[added 2004-10-29, updated 2006-08-15]

From the docs;
shar makes so-called shell archives out of many files, preparing them for transmission by electronic mail services. A "shell archive" is a collection of files that can be unpacked by /bin/sh. A wide range of features provide extensive flexibility in manufacturing shars and in specifying shar _smartness_. For example, shar may compress files, uuencode binary files, split long files and construct multi-part mailings, ensure correct unsharing order, and provide simplistic checksums.
unshar scans a set of mail messages looking for the start of shell archives. It will automatically strip off the mail headers and other introductory text. The archive bodies are then unpacked by a copy of the shell. unshar may also process files containing concatenated shell archives.
Also in package:
mail-files
Send files to remote site
mailshar
Make and send a shell archive
remsync
Synchronize remote files
uuencode
Force binary file to 7-bits
uudecode
Restore file from 7-bits

Authors: James Gosling, William Davidsen, Warren Tucker, Richard Gumpertz, François Pinard for GNU. DOS port by Juan Manuel Guerrero, Germany (2000).

2000-10-10: v4.2c. 32-bit DJGPP port for 80386+.

Downloads
shar42cb.zip
(319K)
Binaries + manual
shar42cd.zip
(132K)
Docs: html/dvi/ps

OTHER UNIX >> DOS PROGS IN THESE PAGES

 Some of these also appear in the collections above, some don't.

a2ps
Generates PostScript from ASCII, dvi, and other file formats
AGREP
grep-like util with approximate pattern matching capability
AntiWord
Displays MS Word files, and converts to plain text, PostScript, PDF
awk
Text processor
cal (2)
Displays calendar to standard output; date notes
cURL
Internet file transfer
dos2ux
Converts DOS format text > Unix format
DU
Displays disk usage for directory tree
egrep
Searches file for string, using extended regular expressions
elvis
vi-like text editor for power users
emacs
Emacs family of text editors
Fast GREP
Find files containing search string
fgrep
Searches file for string (fixed strings), using regular expressions
ftp
Internet file transfer protocol
gawk
Text processor
GifTrans
Produces transparent GIF files for web pages.
grep
Searches file for pattern, using regular expressions
gzip / gunzip
File compressor / decompressor
InfView
Interactive info file browser
ispell
Spell checker (3 versions listed)
less
File pager / viewer and MORE replacement
LINK/LN (ln)
Link executable files to file names in other directories
look
Word lookup util
lynx
Text mode WWW browser and offline HTML viewer
man
Displays man (manual) pages
man (PCMan)
Extension of the man page system
mawk
Text processor
MD5SUM
Calculate and verify MD5 hash values for files
Mi-Shell (MSH)
Programmable command shell
nano
Enhanced clone of pico
NcFTP
Set of ftp programs
Penta Text Tools
Search, view, process strings in any text file
perl
High level programming language
pico
Pine emailer's text editor
Pine
Network / Internet emailer
PPPD
Internet Point to Point Protocol packet driver
pr
Multiple-file print formatter
PSUtils
Process PostScript documents
RUTILS4
Mixed group of programs, some from Unix: banner, cal, cat, tee & more
sc
Spreadsheet Calculator
sed
Versatile text search / replace and formatting tool
sleep
Batch util sleeps until event occurrence
Talk
Network or Internet Talk (chat) client / server
tar
Manipulates TAR archives
tee
Sends program output to both screen and file
Telnet
Network & Internet terminal (3 versions)
uniq
Remove or display duplicate lines from sorted file
uuen/decode
Translates binary files to ASCII text for electronic transmission
units
Command line or interactive units conversion
units, GNU
Enhanced command line or interactive units conversion
ux2dos
Converts Unix format text > DOS format
vi
Family of powerful text editors
wc
Simple word count program
Wget, GNU
Command line ftp / http / https file downloader
wput
Command line ftp uploader
XGREP
Tiny text finder with regular expression support

Go to Top | Front Page ]


©1994-2004, Richard L. Green.
©2004-2006, Short.Stop.