Korn shell
The Korn shell is a command interpreter that allows an end user to type in commands to communicate to the AIX system. By default, when a user logins, a shell process is started The default AIX shell is /usr/bin/ksh.
A ‘–‘ is prefixed to the name of the ksh program to indicate that this shell initially read the contents of the files /etc/environment, /etc/profile, and $HOME/.profile.
- /etc/environment specifies the basic environment for all processes
- /etc/profile specifies variables to be added to the environment by the shell
- $HOME/.profile specifies variables specific to user to be added to the environment by the shell
Other available shells are…
- /bin/bsh the Bourne shell
- /bin/csh the C-shell
- /bin/sh the Standard shell
$HOME/.hushlogin
If the ./hushlogin file exists, it will suppress the displaying of the /etc/motd file (message of the day file) and the message for unsuccessful login attempts for that user account.
The .profile file is used to personalize a user’s account and/or sets the environment$HOME/.profile the user will operate under. The following table represents some examples of settings that can be set in the .profile file.
Variables | What it does |
PRINTER=mylaser | Controls default printer. When you use the lp command with no additional flags to specify which queue to print to, by default it will go to the printer queue named after the equal sign. |
TMOUT=3600 | Will cause an automatic log off after 60 minutes (3600 seconds) if no keyboard activity encountered or no output is generated to the display after the timeout period has expired. There is a 60 second pause before the ksh is exited. |
ESCDELAY=1000 | Controls the amount of time permitted between the ESCape character and any other components of an ESCape sequence. The AIX Extended Curses library has a built-in timeout which sets the maximum amount of time permissible between the receipt of the ESC character and the second character of the escape sequence. |
set -o noclobber | Won’t allow you to overwrite a file with the redirection symbol (eg., cat junk > goodstuff).To overwrite the noclobber option when noclobber is enabled, type ‘>|‘ when redirecting output (eg., cat smit.log >| smit.bck). |
set -o ignoreeof | Disables ^D to logout; you must type exit to exit the shell |
set -o vi | Enable command line editing/playback using vi commands |
stty -olcuc -iuclc -xcase | -olcuc maps lower case to upper case on output. -iuclc=maps upper case to lower case on input. -xcase won’t allow you to login unless in lower case. |
alias, unalias
Assign a name or an abbreviated name that makes sense or is shorter for a command.
Examples | What it does |
alias | Lists the aliases that are currently defined. |
alias “dir=ls” | Creates an alias. dir will output the same contents as the ls command. |
unalias name | Removes an alias. unalias dir |
exec
Executes the command line directly without creating a new process (PID) (current shell is overlaid with command specified on the command line). When the command has finished or is terminated, control is returned to the init process, thereby logging off the user. Typically you will see this command used as the last entry in the $HOME/.profile.
Examples | What it does |
exec /usr/bin/smit | Will execute the System Management Interface Tool (SMIT) program – overlaying the current shell program |
Changing standard input (stdin) | |
exec <FileNameForInput | Reassigns standard input from the keyboard to a file |
exec </dev/tty | Reassigns standard input back to the keyboard |
exec <&- | Closes standard input |
exec </dev/null | Associate standard input to null device |
Changing standard output (stdout) | |
exec >WriteToFileName | Reassigns standard output from your terminal display to a file |
exec >/dev/tty | Reassigns stardard output back to your terminal |
exec >&- | Closes standard output |
exec >/dev/null | Associate standard output to null device |
$HOME/.sh_history
Contains the history of user commands executed on the command line for each login session.
history
List the last 16 commands executed from the command line. (Uses .sh_history)
Examples | What it does |
history ! 310 |
Re-executes the item labled 310 in the .sh_history file |
-25 | List the last 25 commands executed from the command line. Default number of commands listed is 16. |
r vi | Re-executes the latest ‘vi’ session stored in the .sh_history file |
kill
Sends a signal to a running process to inform it to do something. Typically you use the signal KILL to terminate or suspend a process.
Examples | What it does |
kill -9 5344 | Will terminate the process with a process id (PID) of 5344. A signal value of -9 means that the signal can’t be caught by the application but is intercepted by AIX to terminate the process in question. |
kill -l | Lists valid signals to use with the kill command. |
kill – | Easy way to terminate all processes running in the system EXCEPT your current shell and the /etc/init process. |
kill -STOP 3901 | Suspends the PID 3901. Execute the ps -elf|grep 3901 command and the status field (marked ‘S’) will have a ‘T’, meaning the process is suspended.. |
kill -CONT 3901 | Resumes the suspended process whose PID is 3901 |
process control
Pressing ^Z will suspend a process. To unsuspend a process, use the fg command to bring that process to the foreground again or to leave the process running in the background.
Examples | What it does |
^Z | Will suspend the current PID. Example output: [1] + 8193 Stopped |
jobs -l | List all current jobs suspended |
fg 3934 | Will bring suspended job PID 3934 to the foreground. If only one command is listed when jobs -l is executed, you only need to type fg to bring the only suspended process back to the foreground. |
4011 | Will run the suspended job with a PID of 4011 in the background now |
set, unset
Set positional parameters for the current shell.
Examples | What it does |
set `date`; echo $1 $2 $3 $4 $5 $6 |
Thu Nov 14 20:12:47 CST 2002 |
echo $6 | Displays the year – 2002 |
set -o | Displays current settings for the set command. |
set -o noclobberset +o noclobber | Won’t allow a user to overwrite a file with the same file name. Use -o to turn on or +o to turn off |
set -o vi set +o vi |
Enable users to use ‘vi’ commands to manipulate command line entry. Use -o to turn on or +o to turn off |
set o xtrace set +o xtrace |
Displays commands and their arguments as they are executed. Normally, you would place the ‘set -x’ command at the beginning of a script file. |
unset ENV | Used to undefine a system variable. Removes the system variable ENV from your user environment |