+ All Categories
Home > Documents > The Command Line Mostly MS Dos with some UNIX/LINUX Copyright © 2003-2015 Curt Hill.

The Command Line Mostly MS Dos with some UNIX/LINUX Copyright © 2003-2015 Curt Hill.

Date post: 01-Jan-2016
Category:
Upload: jack-armstrong
View: 222 times
Download: 3 times
Share this document with a friend
Popular Tags:
34
The Command Line Mostly MS Dos with some UNIX/LINUX Copyright © 2003-2015 Curt Hill
Transcript

The Command Line

Mostly MS Dos with some UNIX/LINUX

Copyright © 2003-2015 Curt Hill

Introduction• The command line interface is a

modified time-sharing command interface– Predates GUIs

• Still important for sophisticated professionals such as Software Engineers

• Microsoft has been trying to remove it from Windows since before XP

• Much of what you have seen hides the command line stuff

Copyright © 2003-2015 Curt Hill

Contrast• Windows believes in two different

styles of executables– A GUI oriented one and a console

oriented on

• The GUI executable registers its controls and event handlers as its first order of business– By default it does not have a console

• A console executable does have a console– It immediately starts to do the work

involvedCopyright © 2003-2015 Curt Hill

The Console• Often called the DOS box

– Only interface DOS had

• Paradigm is that of a printing terminal or glass teletype– Sequence of lines produced by

program and user

• Minimal editing of the line– Recall previous typed line and

backspace

Copyright © 2003-2015 Curt Hill

Command sequence• Machine gives a prompt

– Usually a C:...> with blinking cursor

• You answer with Command and <CR>

• If the command is valid it is executed

• When command is done go back to prompt

Copyright © 2003-2015 Curt Hill

Command format• A command has this format

– CMD parameters and files

• A command must be properly spelled• A parameter is some extra info to

the command– DOS standard starts with a slash (/)– UNIX standard starts with a dash (-) – Most are optional

• It is the program itself that determines the format of the parameter

Copyright © 2003-2015 Curt Hill

File specification• How do we specify a file?

– Files have several pieces for their name

• In DOS– File name– File extension– File directory

• In UNIX– The extension is just part of the

name– A dot is an ordinary character

Copyright © 2003-2015 Curt Hill

File name• Originally 1-8 characters

– Now they may be much larger

• Name is composed of– Letters– Digits– Specials– Only characters that have special

meaning in DOS may not be used

• Name should identify the particular project

• UNIX is a little more restrictiveCopyright © 2003-2015 Curt Hill

File type or extension• Originally 0-3 characters

– Now may be more

• Separated by a dot from name• Used to describe the kind of

stuff in the file• Predefined extensions

– .exe - program– .bmp – bitmap picture– .bat - DOS batch file

•A batch file will be discussed laterCopyright © 2003-2015 Curt Hill

File Directory• Combination of the disk letter

and subdirectory• In Windows/DOS disk is a letter

followed by a colon– In UNIX disk are represented by load

points that are named not lettered

• Directories and subdirectories are delimited by \ in DOS and / in UNIX– These may be discussed in a subsequent

presentationCopyright © 2003-2015 Curt Hill

Defaults• By default if subdirectory is not

specified the current disk and directory are used

• These may be shown in the prompt– The form of the prompt may be set by

the user

• Extension– Certain programs require certain

extensions– Each program may assume an

extension or not

Copyright © 2003-2015 Curt Hill

Wildcards• Wildcards are ways to specify a

whole group of files at once because of similarity of name

• * - matches as many characters as possible– No characters need follow it until

a .

• ? - matches one and only one character

• Wildcards are often interpreted by the program so usage varies

Copyright © 2003-2015 Curt Hill

The C/C++ main function• The standard main function looks like

this:int main(int argc, char *argv[])

• The initial int is the return value• Argc is a count of command line

parameters• Argv is an array of character strings

– The actual command line parameters

• The program needs to interpret these as it sees fit

Copyright © 2003-2015 Curt Hill

Parsing the command• Def: to parse is to understand

the form and meaning of communication or describe the form, function and relationships of a sentence

• How does DOS determine what to do with the command?

• Lets look

Copyright © 2003-2015 Curt Hill

Executable Location• Where can an executable be and be

found in the command prompt?• You would think that executables

must be the Windows directory or one of the Program Files directories

• This is partially but not fully true• Executables must be on the Path• The Path is an environment variable

Copyright © 2003-2015 Curt Hill

Environment Variables• A set of name value pairs that

affect how things operate • Both Windows and UNIX have the

concept• Both systems have a TEMP

variable which identifies a directory where a program may create temporary files

• Both also have the PATH variable

Copyright © 2003-2015 Curt Hill

The Path• The Path environment variable is a

string of directory names• When a command needs an

executable the Path directories are searched– If there are multiple files of the same

name, the first one found is used

• Windows has two paths– A global one for all users– A local one for each user– The two are merged

Copyright © 2003-2015 Curt Hill

Finding the Path• Like all good Windows options

there are multiple ways to examine or set

• Control Panel / System• Advanced System Settings

Copyright © 2003-2015 Curt Hill

Advanced

Copyright © 2003-2015 Curt Hill

Environment Variables

Copyright © 2003-2015 Curt Hill

Command Interpretation

• Suppose that at the prompt the command:XYZ /z abc.defis entered – what happens?

• The first word is the command name– This may be prefixed by the disk,

subdirectory etc.– xyz is assumed to be name of

command and /z and abc.def is passed to the command for inspection

Copyright © 2003-2015 Curt Hill

Searching for the command 1

• First the internal commands are searched for this command– The internal commands are in the

command processor – They do not have file

representations– They include dir, type, ren, del,

copy, etc

• If it is found then it is executed, otherwise the search continues

Copyright © 2003-2015 Curt Hill

Searching 2• Next we look in the current

directory– There are two extensions that can

be executed:• .EXE• .BAT

– They will be searched in that order: first xyz.exe and finally xyz.bat

• If they are not found there, then the path is checked– The order of the directories in the

path command is then the order they will be searched

Copyright © 2003-2015 Curt Hill

Path searches• Like in the current directory, the

first directory on the path is searched for xyz.exe and then xyz.bat

• Only if it is not found do we go to the second and subsequent directories

• If all the directories are searched and the command is not found, then we declare that this is an unknown file or command

Copyright © 2003-2015 Curt Hill

Advantages• The OS does not distinguish

between its own external commands and foreign commands

• Internal commands have an advantage over other commands

• However external commands are just files like any other

• If we want to redefine we can• If we want to write a new kind of

command that makes life easier all we have to do is put it on the path

Copyright © 2003-2015 Curt Hill

Commands• We next want to consider various

commands that may be useful• These are typically file

manipulation command• Any executable can be used

– If it generates a window it may still be started from the command line

– Windows distinguishes between GUI and non-GUI executables

Copyright © 2003-2015 Curt Hill

DIR• Short for directory• Displays the files present in the

local• Command alone shows all files

in current directory• You may also use file names

and wild cards• DIR is an internal command• UNIX used ls with different

options

COPY

• Make an identical copy of a file• COPY source destination• COPY a.dat b.dat

– Make a copy of a.dat– Same disk, directory, etc– Retains same date as the a.dat

• UNIX uses cp with different options

Copy Again• Accepts wildcards in source file

and matching in destination• COPY must give it a new name

or copy it elsewhere, since a directory can only have 1 identically named item

• Concatenation of files is allowed using + between file specs for source– COPY b.dat+c.dat all.dat

Copyright © 2003-2015 Curt Hill

DEL (ERASE)• Removes the file from the disk• Accepts wildcards• DEL *.bak• UNIX uses rm with different

options

RENAME• Gives a new name• May abbreviate to REN• May use wildcards• UNIX uses mv which moves

rather than renames• A rename is move to same location

with different name

CLS• Clear the screen

Copyright © 2003-2015 Curt Hill

Directory Commands• Cd or chdir changes the current

directory• Md or mkdir creates a new directory

– Rd or rmdir destroys

• The directory name follows the command

• Two specials– Single dot refers to the current

directory– Two dots refers the ancestral

Copyright © 2003-2015 Curt Hill

Conclusion• We now have the basics• Next we learn about

redirection, pipes and standard files

• Then batch files


Recommended