Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Bash / Shell Scripting (http://www.programmingforums.org/forum26.html)
-   -   Unix commands compatible with Windows? (http://www.programmingforums.org/showthread.php?t=9710)

titaniumdecoy May 9th, 2006 9:11 PM

Unix commands compatible with Windows?
 
I'm planning to write a PHP script that makes use of various Unix commands such as `rcs`. I know that Windows has DOS built in which can run some commands such as `cd`, `ls`, etc. I was just wondering what commands are supported under Windows and would be compatible with both systems. Is there a list of supported commands under Windows? I know the vast majority of Unix commands are not compatible with Windows, but I just want to check.

Thanks.

DaWei May 9th, 2006 9:20 PM

This doesn't answer your question completely, but maybe it's a starting place for you. XP actually has two command processors, one for backward compatibility with 16-bit systems. This is the 32-bit set. You will find that 'ls' is not common between the two systems. Better not to jump to any conclusions.

Windows command
:

ASSOC    Displays or modifies file extension associations.
AT      Schedules commands and programs to run on a computer.
ATTRIB  Displays or changes file attributes.
BREAK    Sets or clears extended CTRL+C checking.
CACLS    Displays or modifies access control lists (ACLs) of files.
CALL    Calls one batch program from another.
CD      Displays the name of or changes the current directory.
CHCP    Displays or sets the active code page number.
CHDIR    Displays the name of or changes the current directory.
CHKDSK  Checks a disk and displays a status report.
CHKNTFS  Displays or modifies the checking of disk at boot time.
CLS      Clears the screen.
CMD      Starts a new instance of the Windows command interpreter.
COLOR    Sets the default console foreground and background colors.
COMP    Compares the contents of two files or sets of files.
COMPACT  Displays or alters the compression of files on NTFS partitions.
CONVERT  Converts FAT volumes to NTFS.  You cannot convert the
        current drive.
COPY    Copies one or more files to another location.
DATE    Displays or sets the date.
DEL      Deletes one or more files.
DIR      Displays a list of files and subdirectories in a directory.
DISKCOMP Compares the contents of two floppy disks.
DISKCOPY Copies the contents of one floppy disk to another.
DOSKEY  Edits command lines, recalls Windows commands, and creates macros.
ECHO    Displays messages, or turns command echoing on or off.
ENDLOCAL Ends localization of environment changes in a batch file.
ERASE    Deletes one or more files.
EXIT    Quits the CMD.EXE program (command interpreter).
FC      Compares two files or sets of files, and displays the differences
        between them.
FIND    Searches for a text string in a file or files.
FINDSTR  Searches for strings in files.
FOR      Runs a specified command for each file in a set of files.
FORMAT  Formats a disk for use with Windows.
FTYPE    Displays or modifies file types used in file extension associations.
GOTO    Directs the Windows command interpreter to a labeled line in a
        batch program.
GRAFTABL Enables Windows to display an extended character set in graphics
        mode.
HELP    Provides Help information for Windows commands.
IF      Performs conditional processing in batch programs.
LABEL    Creates, changes, or deletes the volume label of a disk.
MD      Creates a directory.
MKDIR    Creates a directory.
MODE    Configures a system device.
MORE    Displays output one screen at a time.
MOVE    Moves one or more files from one directory to another directory.
PATH    Displays or sets a search path for executable files.
PAUSE    Suspends processing of a batch file and displays a message.
POPD    Restores the previous value of the current directory saved by PUSHD.
PRINT    Prints a text file.
PROMPT  Changes the Windows command prompt.
PUSHD    Saves the current directory then changes it.
RD      Removes a directory.
RECOVER  Recovers readable information from a bad or defective disk.
REM      Records comments (remarks) in batch files or CONFIG.SYS.
REN      Renames a file or files.
RENAME  Renames a file or files.
REPLACE  Replaces files.
RMDIR    Removes a directory.
SET      Displays, sets, or removes Windows environment variables.
SETLOCAL Begins localization of environment changes in a batch file.
SHIFT    Shifts the position of replaceable parameters in batch files.
SORT    Sorts input.
START    Starts a separate window to run a specified program or command.
SUBST    Associates a path with a drive letter.
TIME    Displays or sets the system time.
TITLE    Sets the window title for a CMD.EXE session.
TREE    Graphically displays the directory structure of a drive or path.
TYPE    Displays the contents of a text file.
VER      Displays the Windows version.
VERIFY  Tells Windows whether to verify that your files are written
        correctly to a disk.
VOL      Displays a disk volume label and serial number.
XCOPY    Copies files and directory trees.


Kaja Fumei May 9th, 2006 9:26 PM

Windows doesnt have a "ls" command. Instead it has a "dir" command. There are very few that have the same name on both. Google search came up with this seemingly decent comparison chart:
http://yolinux.com/TUTORIALS/unix_for_dos_users.html

titaniumdecoy May 9th, 2006 9:57 PM

Thanks, I didn't realize the two were so different.

DaWei May 10th, 2006 5:58 AM

If you don't pursue compatibility, the customers and regulatory bodies will eventually shoot you. If you do, you get sued for stealing "look and feel". There's also the ol' "not invented here" syndrome.

mackenga Jul 12th, 2006 5:15 PM

Whether this will be useful to you depends on the context, but if you want to add some Unix utilities (like ls, grep, and several other stalwarts) to a Win32 system, you can; do a google for "unix utilities win32" and you should find some useful results. Of course, if you're not in a position to install extra software on the Windows machines in question, this will not help you.

If you are forced to use DOS commands and rework your systems to parse their output, be warned that the name is not the only difference between the likes of DIR and ls; pipes have never really worked well in the DOS shell and there are all kinds of other weird issues. Remember to check out the command-line arguments to the DOS commands; the output from DIR /B is a lot more like ls, which could help you with adaptation of any existing code.

Personally I'd just stick with Unix-like systems. It seems you have very little experience of Win32 systems, and I strongly suspect you're not going to enjoy the culture shock. It's hard to move from a platform where things can be expected to work in a predictable fashion and behave as described in the documentation to a flaky toaster like Windows. My employer operates a Win32 only environment, so I've had to move from Unix development to Win32 (in VB of all languages) and it's quite a come down, stepping off the solid bedrock of C, PHP, Perl, BSD Sockets and the Bourne Shell into the shifting sands land of Win32 and .NET. Aside from the fact that my employer will not pay me to develop on Linux, I can honestly say I see no advantage in this gaudy proprietary closed-source antistandard dungpile of an operating environment.

markpalinux Oct 4th, 2006 9:49 PM

Here is a link to the the win32 GPL'ed unxutils
http://unxutils.sourceforge.net/

They work great for me, but to get the zip + the update zip. The first zip has path info, the update does not.

If you need more unix on win32 you may want to check out cygwin.

Mark

Eoin Oct 5th, 2006 7:25 AM

A fuller alternative to unxutils is Windows Services for UNIX but it may be overkill.


All times are GMT -5. The time now is 7:35 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC