Solaris
Welcome to my Solaris 10 notes
Components of Sun OS
Three components of Sun OS
- Kernel - the core of Sun OS and manages all physical resources of the computer
- Shell - a command interpreter and interfaces between user and kernel
- Directory Hierarchy
Default shells
Sun OS default primary shells:
- Bourne shell - original unix system shell and default for root user. regular user prompt is $ and root is #
- C shell - command line history, aliasing, and job control. default regular user is hostname% and root is hostname#
- Korn Shell - superset of Bourne shell plus C shell like features and enhancements. command line history, aliasing, job control, and command line editing default regular prompt is $ and root is #
Sun OS contains three alternative shells:
- Bash shell - GNU project Bourne Again SHell is bourne compatible shell that contains handy features from Korn and C shell.
- Z shell - resembles Korn shell plus enhancements
- TC shell - C compatible shell plus enhancements
Logging into Sun OS
All users must log into system
Desktop login
Use direct login or options
password requirements 6-8 characters, contain at least two alpha characters and one numerical or special character. cannot be same as user login name, different than last password by at least three characters, reverse of user login name password requirements don't apply to root user or regular user password set by root user
Desktop Environment
Solaris 10 includes Common Desktop Environment (CDE) and Java Desktop System (JDS) desktop environments.
Command Line
Run command line in a terminal window
Use Unix system commands to instruct the computing system to perform specific tasks
Commands can be executed with or without options or arguments
Unix command syntax is the order and structure of command line components.
Unix command line syntax = [command] [options] [arguments]
- command determines what system will execute
- option determines how command will run and always begins with - and are case sensitive, can use multiple options, combine options into one - or use a - for each option
- argument determines what command will affect
Multiple commands can be entered on one command line by using semi-colon(;) between each command.
Basic Solaris 10 commands
<populate>
man pages
display man page by typing man command
Syntax:
- $ man command
- $ man option command
- $ man option filename
- Space bar = page forward
- Return = line forward
- b = page backward
- /pattern = to perform a forward pattern search
- n = to move to next pattern match, must be proceeded with /pattern search
- h = provides navigation help
- q = quit man page
Searching man pages
This searches all man pages. To search while inside a man page see Navigating a man page pattern search.
Search by section syntax:
- man -s number [command|filename]
Search by keyword syntax:
- man -k keyword
Directories
A directory is a list of references to objects
Objects include files, sub-directories, and symbolic links
Each reference consists of a name and number
The name of object is used to identify & access object
The number specifies the inode. inode stores information about the object
pwd command shows current directory path
ls commands displays contents of current directory
Syntax:
- ls
- ls -options
- ls -options filename
- ls -options path_2_different_directory
<describe some common options, put screenshot of a long listing> -a
-l
-la
-ld directory
-R
-F cover output /(directory), *(executable), none, @(symbolic link))
Use file command to determine certain file types
Syntax:
- file filename
Initial login is set to home directory
Navigate using cd command
Syntax:
- cd directory
Using cd without options or arguments moves to home directory (some shells use cd ~)
path name abbreviations . = current or working directory .. = parent directory
cd .. moves to parent directory
cd ../.. moves up two parent directories, you can use /.. to move up more parent directories
use absolute or relative path names to navigate directories
cd absolute_path_name
cd relative_path_name
Files
Commands to view file in read-only format:
- cat (displays one or more text files without pausing)
- more (displays text files one page at a time, to navigate use man navigation keys)
- tail (displays last 10 lines of a text file,use -n or +n to change number of lines, replace n with an integer, -n displays n lines from end of file while +n displays file contents from line n to end of file)
- head (displays first 10 lines of a text file, use -n to change number of lines, replace n with an integer)
- wc (-l line count, -w word count, -c byte count, -m character count)
<add more detail about each command>
Printing files
Print using lp command
Syntax:
- lp options filename
Options:
- -d destination (use while not printing to default printer)
- -o nobanner (no banner is printed)
- -n number (number of copies)
- -m (sends mail message to owner after print job is complete)
Display status of all user print requests
Syntax:
- lpstat -options printername
Options:
- -p (status of all printers)
- -o (status of all output requests)
- -d (status of default printer)
- -t (extended status of all printers)
- -s (status summary of all printers)
- -a (identifies which printers are accepting print requests)
Status response from lpstat command:
- request-ID = name of the printer and job number
- user-ID = name of user accessing the printer
- file size = output size in bytes
- date/time = current date and time
- status = status of print request
Cancel print requests
Syntax:
- cancel request-ID
- cancel -u username
Modifying Directory Contents
Copy Files & Directories
Copy Files
Use cp command to copy the contents of a file to another file.
Syntax:
- cp -option source_file target_file_or_directory
Common options:
- -i (prevents accidental overwrite of file or directory, prompts user when an overwrite might occur)
- -r (recursive, includes the contents of directory and all sub-directories when copying a directory)
Examples:
Copy file within a directory:
cp source_file target_file
Copy multiple files to a different directory (relative path example):
cp source_file1 source_file2 target_directory
Copy Directories
Use cp -r command & option to copy the contents of a directory recursively to another directory
Syntax:
- cp -options source_directory target_directory
Note:
- If target_directory does not exist one will be created with source_directory name.
- If target_directory exists a new sub-directory below target_directory will be created with source_directory name.
Copying multiple directories
Syntax:
- cp -options source_directory1 source_directory2 target_directory
Moving Files & Directories
The mv command moves & can rename files & directories within the directory hierarchy
Syntax:
- mv -option source_file_or_directory target_file_or_directory
Examples:
Rename file1 in same directory to file2:
mv file1 file2
Move file1 to another directory:
mv file1 ../
Move & rename file1 to file2 in another directory:
mv file1 ../file2
Move & rename directory1 to directory2 in same directory:
mv directory1 directory2
Creating Files & Directories
Creating Files
You can use touch command to create an empty file or a text editor program
Syntax:
- touch filename
Creating Directories
Use mkdir command to create directories
Syntax:
- mkdir directory_name
- mkdir -p directory_names (-p creates all the parent directories that do not exist)
Removing files & directories
Remove file using rm command.
Syntax:
- rm -option filename
rm options:
- -i (prompts before deleting each file)
Remove empty directories. If directories are not empty an error message will result.
Syntax:
- rmdir directories
Remove directories that are not empty
Syntax:
- rm -options directories
rm options:
- -i (prompts before deleting each file or directory)
- -r (recursive, includes all contents of directory and sub-directories)
Using Symbolic links
A symbolic link is a pointer that contains the path name to another file or directory. Use ln -s command to create a symbolic link file. The file name for the symbolic link appears in the directory in which it is created.
Syntax:
- ln -s source_file target_file
Where source_file variable refers to the file in which you create a symbolic link. The target_file variable refers to the name of symbolic link. If source file does not exist a symbolic link to a non-existing file is created.
You remove symbolic link files the same way you would any other file using rm command.
vi text editor
vi editor modes:
- command (delete, change, copy, move, position cursor, search, exit)
- edit (enter text)
- last line (advanced options)
Switching between modes:
- default mode when creating or opening file is command
- i (insert text, switches to edit mode)
- Esc (returns to command mode)
- : (last line mode)
vi syntax:
- vi -options filename
vi options:
- -R (opens in read-only mode) view command does same thing, syntax = view filename
- -r (recovers specified file, if no file specified lists all files that can be recovered)(use if system crashes)
Inserting & appending text:
- a (appends text after cursor)
- A (appends text at end of line)
- i (inserts text before cursor)
- I (inserts text at beginning of line)
- o (opens a new line below the cursor)
- O (opens a new line above the cursor)
- :r filename (inserts text from another file)
Moving cursor in vi:
- h, left arrow, Backspace (left one character)
- j, down arrow (down one line)
- k, up arrow (up one line)
- l, right arrow, space bar (right one character)
- b (back one word)
- w (forward one word)
- e (end of current word)
- $ (end of the current line)
- 0 (beginning of the current line)
- ^ (to first non-white space character on the line)
- Return (to beginning of next line)
- G (goes to last line of file)
- nG (goes to n line of file)
- :n (goes to n line of file)
- Ctrl+F (pages forward one screen)
- Ctrl+B (pages back one screen)
- Ctrl+U (scrolls up 1/2 screen)
- Ctrl+D (scrolls down 1/2 screen)
- Ctrl+L (refreshes screen)
- Ctrl+G (displays current buffer)
Delete text in vi:
- r (overwrite one character on cursor)
- R (overwrites all characters from cursor and to the right until Esc is pressed)
- C (overwrites characters from cursor to end of line)
- s (substitutes a string for a character at cursor)
- x (deletes the character at cursor)
- dw (deletes a word or part of word to the right of character)
- dd (deletes line containing the cursor
- D (deletes the line from the cursor to right end of line
- :n,nd (deletes lines n-n)
- CW (overwrites characters at cursor location)
- J (joins current line & the line below)
- xp (transposes the character at the cursor and to right of cursor)
- ~ (changes the case of the letter at cursor)
- u (undo previous command)
- U (undo all changes to current line)
- . (repeats previous command)
Search & replace text in vi
To search & replace text in vi use these commands:
- /string (searches forward for string)
- ?string (searches backward for string)
- n (searches for next occurrence of string, after searching for a string)
- N (searches for previous occurrence of string, after searching for a string)
- :%s/string1/string2/g (search for string1, replace with string2 globally)
Copy & paste in vi
To copy & paste in vi use these commands:
- yy (yanks a copy of a line)
- p (puts yanked or deleted text under the line with cursor)
- P (puts yanked or deleted text before the line with cursor)
- :n,n co n (copies lines n-n and puts after line n)
- :n,n m n (moves lines n-n to line n)
Save & quit commands
To save & quit in vi use these commands:
- :w (writes contents of buffer to disk in existing file)
- :w filename (writes contents of buffer to filename)
- :wq (writes contents of buffer to disk in existing file and quits vi editor)
- :x (same as wq)
- ZZ (same as wq)
- q! (quits without saving changes)
Customizing vi session
Use set command to set or unset variables in current vi session:
- :set nu (show line numbers)
- :set nonu (hides line numbers)
- :set ic (instructs searches to ignore case)
- :set noic (instructs searches to be case sensitive)
- :set list (displays invisible characters)
- :set nolist (invisible characters are invisible)
- :set showmode (displays current mode)
- :set noshowmode (disables showing current mode)
- :set (displays all vi variables that are set)
- :set all (displays all set vi variables and their current value)
Pre-load vi with customizations:
- Create .exrc file in home directory
- Enter one set variable per line in .exrc file without colon
vi editor reads the .exrc file each time vi is executed.
Using shell commands
Korn shell
Metacharacters are specific characters having special meaning to Korn shell
Three types of metacharacters:
- path name metacharacters
- file name substitution metacharacters
- quoting metacharacters
Path name metacharacters:
- ~ (home directory of current user)
- ~username (home directory of username)
- - (stores previous working directory)
File name substitution metacharacters:
- * (wildcard character, represents zero or more characters, except leading period of hidden file)
- ? (wildcard character, represents any single character except leading period of hidden file)
- [ ] (square bracket characters represent a set or range of characters for a single character position)
Quoting metacharacters:
- ' ' (instructs shell to ignore all enclosed metacharacters)
- ` (instructs shell to execute and display the output for a Unix system command)
- " " (instructs shell to ignore all enclosed metacharacters except `, \, and $)
- \ (instructs shell to ignore the next character as a metacharacter)
- $ (instructs shell that the following text is the name of a shell variable)
- $ (command) (instructs shell to execute & display the output for the command identified)