| Previous | Table of Contents | Next |
Vi Editing Mode
To edit commands saved in your history file simply press the Escape key. You are now in vi command mode. If you want to make a correction to the previous command simply press k. Now move around on the line using vi commands. Make changes to the line then press Return. You don't have to press Esc before pressing Return.
For further information about editing the history file using vi commands refer to Module 50.
The vi editor is described in Module 151.
INTERNAL COMMANDS
There are two types of UNIX commands: internal and external commands. Internal commands are part of the ksh. They are executed within the shell itself. No new process has to be spawned, no code has to be read from disk and loaded into memory, and no PATH searching is performed. Therefore, internal commands are executed much faster than external commands.
Except for the following two internal commands, all internal commands have been placed in a module of their own name or in the Programming Constructs module.
| . | The dot command. The dot command executes a shell script in the current environment. The shell script is read just as if you had typed all the lines at your terminal, without a new child process being started. Usually, a shell script is executed in a subshell (a child process is started) and changes to the environment do not affect the current shell. The dot command circumvents this restriction. Therefore, any environmental changes made in the shell script executed by the dot command will be reflected in the current shell environment. |
| : | The colon command. The colon command is the same as the true command. It does nothing. It always returns a 0 exit status. It is often used in while loops or if statements to fill a required command position. For example, |
while :
do
echo "Stuck in an infinite loop."
done
| is just one of many ways to use the colon command. |
|
|
|---|
| C Shell |
| The C shell uses the source command to perform the dot (.) command function used by the ksh. |
|
|
COMMAND EXECUTION
The procedures that are followed by the shell to execute a command are described in Module 23.
DIAGNOSTICS AND BUGS
Users often have the problem of the shell appearing to be hung or not responding. There are several situations to be aware of and solutions to each.
The first situation is the Ctrl-S and Ctrl-Q dilemma. If you type input on the keyboard and there is no response, first press Ctrl-Q to resume output to your terminal. If this does not work, the system may be extremely slow, in which case you must be patient.
Another possibility is the shell or last program you executed is hung. Try pressing Delete two or three times. If you are in applications, you might try pressing Esc or Ctrl-D depending on the application's required interrupt or attention key.
RELATED COMMANDS
Refer to the following modules.
|
|
|||
|---|---|---|---|
| Module | Module Name | Module | Module Name |
|
|
|||
| 4 | alias | 104 | popd |
| 9 | bg | 106 | |
| 14 | cd | 107 | printenv |
| 23 | Commands | 108 | Programming Constructs |
| 38 | echo | 110 | pushd |
| 41 | env | 111 | pwd |
| 42 | eval | 112 | read |
| 44 | exec | 113 | Regular Expressions |
| 45 | exit | 118 | set |
| 47 | export | 119 | setenv |
| 49 | false | 120 | shift |
| 50 | fc | 121 | sleep |
| 51 | fg | 125 | stop |
| 54 | Filenames | 129 | suspend |
| 59 | getopts | 136 | time |
| 64 | history | 137 | times |
| 67 | I/O and Redirection | 141 | trap |
| 68 | jobs | 142 | true |
| 70 | kill | 145 | typeset |
| 73 | let | 146 | ulimit |
| 74 | line | 147 | umask |
| 92 | newgrp | 152 | wait |
| 94 | nice | 156 | whence |
| 96 | nohup | 157 | whereis |
| 99 | pack | 158 | which |
|
|
|||
RELATED FILES
The following list describes the files the ksh command uses.
| standard input | Reads from the terminal keyboard or the output of a pipe. |
| standard output | Writes to the terminal screen or the input of a pipe. |
| standard error | Writes errors to the terminal screen or the input of a pipe. |
| /etc/profile | Executes the commands stored in this file during login to perform common system login procedures. |
| /etc/alias | Executes the commands stored in this file during login to set up common aliases. |
| $HOME/.profile | Executes the commands stored in this file during login to set up user-defined environment. |
| $ENV | Executed each time a new ksh is spawned. |
| /tmp/ksh* /tmp/sh* |
Used for the history file, some implementations use sh* instead of ksh*. |
| /dev/null | The system trash can, used to dump unwanted output. |
| /etc/passwd | Used to find home directories for ~name substitutions. |
| Previous | Table of Contents | Next |