Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml

AspAutocadCDot netExcelFox proHtmlJava
LinuxMathcadPhotoshopPhpSqlVisual studioWindowsXml

COMMAND EXECUTION

linux



+ Font mai mare | - Font mai mic



COMMAND EXECUTION

The primary prompt ($PS1 - default $ or # for super-users) is displayed whenever the Bourne shell is ready to read a command. The secondary prompt ($PS2 - default >) is displayed when the Bourne shell needs more input.

Command Execution Format



command1 ; command2

execute command1 followed by command2

command &

execute command asynchronously in the background

command1 | command2

pass the standard output of command1 to standard input of command2

command1 && command2

execute command2 if command1 returns zero (successful) exit status

command1 || command2

execute command2 if command1 returns non-zero (unsuccessful) exit status

command

continue command onto the next line

execute command in the current shell

command )

execute command in a subshell

REDIRECTING INPUT/OUTPUT

The Bourne shell provides a number of operators that can be used to manipulate command input/output, and files.

I/O Redirection Operators

<file

redirect standard input from file

>file

redirect standard output to file. Create file if non-existent, else overwrite.

>>file

append standard output to file; create if non-existent.

<&-

close standard input

>&-

close standard output

<&n

redirect standard input from file descriptor n

>&n

redirect standard output to file descriptor n

n<file

redirect file descriptor n from file

n>file

redirect file descriptor n to file

n>>file

redirect file descriptor n to file. Create file if non-existent, else overwrite.

n<&m

redirect file descriptor n from file descriptor m

n>&m

redirect file descriptor n to file descriptor m

n<<x

redirect to file descriptor n until x is read

n<<-x

same as n<<x, except ignore leading tabs

n<&-

close file descriptor n for standard input

n>&-

close file descriptor n for standard output

FILENAME SUBSTITUTION

File name substitution is a feature which allows special characters and patterns to substituted with file names in the current directory, or arguments to the case and test commands.

Pattern-Matching Characters/Patterns

match any single character

match zero or more characters, including null

[abc]

match any characters between the brackets

[x-z]

match any characters in the range x to z

[a-ce-g]

match any characters in the range a to c, e to g

[!abc]

match any characters not between the brackets

[!x-z]

match any characters not in the range x to z

strings starting with . must be explicitly matched

VARIABLES

Like in other high-level progamming languages, variables are used by the Bourne shell to store values. Variable names can begin with an alphabetic or underscore character, followed by one or more alphanumeric or underscore characters. Other variable names that contain only digits or special characters are reserved for special variables (called parameters) set directly by the Bourne shell.

Variable Assignment Format

variable=, variable=''

declare variable and set it to null

variable=value

assign value to variable

VARIABLE SUBSTITUTION

Variable values can be accessed and manipulated using variable expansion. Basic expansion is done by preceding the variable name with the $ character. Other types of expansion use default or alternate values, assign default or alternate values, and more.

Variable Expansion Format

$variable

value of variable

value of variable

value of variable if set and not null, else print word. If >5zWAmitted, variable is only checked if it is set.

value of variable if set and not null, else variable is set to word, then expanded. If : is omitted, variable is only checked if it is set.

value of variable if set and not null, else print 'variable: parameter null or not set'. If : is omitted, variable is only checked if it is set.

value of variable if set and not null, else print value of word and exit. If : is omitted, variable is only chpOked if it is set:@$
value of word if variable is set and not null, else nothing is substituted. If : is omitted, variable is only checked if it is set.

SPECIAL PARAMETERS

Some special parameters are automatically set by the Bourne shell, and usually cannot be directly set or modified.

Special Parameters

$n

positional parameter n

number of positional parameters

all positional parameters

same as '$1' '$2' . . . '$n'

same as '$1 $2 . . . $n'

exit status of the last command

process id of the current shell

current options in effect

process id of the last background command

SPECIAL VARIABLES

There are a number of variables provided by the Bourne shell that allow you to customize your working environment. Some are automatically set by the shell, some have a default value if not set, while others have no value unless specifically set.

Special Variables

CDPATH

search path for cd when not given a full pathname; multiple pathnames are separated with a colon (no default)

HOME

default argument for the cd command; contains the pathname of the home directory

IFS

internal field separator (default space, tab, or newline)

LANG

contains the name of the current locale

MAIL

name of mail file to use if MAILPATH not set

MAILCHECK

specifies how often to check for mail in $MAIL or $MAILPATH. If set to 0, mail is checked before each prompt. (default 600 seconds)

MAILPATH

contains a list of colon-separated file names that are checked for mail. File names can be followed by a '%' and a message to display each time new mail is received in the mail file. (no default)

PATH

search path for commands; multiple pathnames are separated with a colon (default /bin:/usr/bin:)

PS1

primary prompt string (default $, #)

PS2

secondary prompt string (default >)

SHACCT

contains the name of the accounting file that contains accounting records for user shell procedures

SHELL

pathname of the shell

TERM

specifies your terminal type (no default)

QUOTING

Quotes are used when assigning values containing whitespace or special characters, to delimit variables, and to assign command output. They also improve readability by separating arguments from commands.

remove the special meaning of enclosed characters except '

remove the special meaning of enclosed characters except $, ', and

c

remove the special meaning of character c

`command`

replace with the standard output of command

JOB CONTROL

Job control is a process manipulation feature found in the Bourne shell when invoked as jsh. It allows programs to be stopped and restarted, moved between the foreground and background, their processing status to be displayed, and more. When a program is run in the background, a job number and process id are returned.

Job Control Commands

bg [%n]

put current or stopped job n in the background

fg [%n]

move current or background job n into foreground

jobs

display status of all jobs

jobs -l

display status of all jobs and their process ids

jobs -p

display process ids of all jobs

jobs -x command

replace job n in command with corresponding process group id, then execute command

kill [-signal] %n

send specified signal to job n (default 9)

stop %n

stop job n

stty [-]tostop

allow/prevent background jobs from generating output

suspend

suspend execution of current shell

wait

wait for all background jobs to complete

wait %n

wait for background job n to complete

Ctl-z

stop current job

Job Name Format

current job

%n

job n

previous job

%string

job whose name begins with string

%?string

job that matches part or all of string

OPTIONS

The Bourne shell has a number of options that specify your environment and control execution. They can be enabled/disabled with the set command or on the sh or jsh command line. Some options are only available on invocation.

Enabling/Disabling Options

sh [-/+options]

enable/disable the specified options

jsh [-/+options]

enable/disable the specified options; enable job control (see JOB CONTROL section)

set [-/+options]

enable/disable the specified options (see also set)

List of Options

-a

automatically export variables that are defined

-c commands

read and execute commands (w/sh only)

-e

exit if a command fails

-f

disable file name expansion

-h

remember locations of functions on definition instead of on execution (see also hash)

-i

execute in interactive mode (w/sh only)

-k

put variable assignment arguments in environment

-n

read commands without executing them

-p

do not set effective ids to real ids

-r

run a restricted shell (w/sh only)

-s

read commands from standard input (w/sh only)

-t

exit after reading and executing one command

-u

return error on substitution of unset variables

-v

display input lines as they are read

-x

display commands and arguments as executed

CONDITIONAL EXPRESSIONS

The test and [] commands are used to evaluate conditional expressions with file attributes, strings, and integers. The basic format is:

test expression
or
[ expression ]

where expression is the condition you are evaluating. There must be whitespace after the opening bracket, and before the closing bracket. Whitespace must also separate the expression arguments and operators. If the expression evaluates to true, then a zero exit status is returned, otherwise the expression evaluates to false and a non-zero exit status is returned.

test File Operators

-b file

true if file exists and is a block special file

-c file

true if file exists and is a character special file

-d file

true if file exists and is a directory

-f file

true if file exists is a regular file

-g file

true if file exists and its setgid bit is set

-k file

true if file exists and its sticky bit is set

-L file

true if file exists and is a symbolic link

-p file

true if file exists and is a fifo special file or a pipe

-r file

true if file exists and is readable

-s file

true if file exists and its size is greater than zero

-S file

true if file exists and is a socket

-t n

true if file descriptor n is open and associated with a terminal device

-u file

true if file exists and its set user-id bit is set

-w file

true if file exists and is writable

-x file

true if file exists and is executable

Test String Operators

-n string

true if length of string is not zero

-z string

true if length of string is zero

string

true if string is not set to null

string1 = string2

true if string1 is equal to string2

string1 != string2

true if string1 is not equal to string2

string = pattern

true if string matches pattern

string != pattern

true if string does not match pattern

Test Integer Operators

exp1 -eq exp2

true if exp1 is equal to exp2

exp1 -ne exp2

true if exp1 is not equal to exp2

exp1 -le exp2

true if exp1 is less than or equal to exp2

exp1 -lt exp2

true if exp1 is less than exp2

exp1 -ge exp2

true if exp1 is greater than or equal to exp2

exp1 -gt exp2

true if exp1 is greater than exp2

Other test Operators

exp

true if the given expression is false

(exp)

true if exp is true; used to group expressions ( used to escape parentheses)

exp1 -a exp2

true if both exp1 and exp2 evaluate to true

exp1 -o exp2

true if either exp1 or exp2 evaluate to true

CONTROL COMMANDS

case value in
pattern1 ) commands1 ;;
pattern2 ) commands2 ;;
. . .
patternn ) commandsn ;;
esac

Execute commands associated with the pattern that matches value; patterns can contain the special filename substitution characters like *, ?, and []. Multiple patterns can be given but must be separated with a | character.

for variable in word1 word2 . . . wordn
do
commands
done

Execute commands once for each word, setting variable to successive words each time.

for variable
do
commands
done

Execute commands once for each positional parameter, setting variable to successive positional parameters each time.

if command1
then
commands
fi

Execute commands if command1 returns a zero exit status.

if command1
then
commands2
else
commands3
fi

Execute commands2 if commands1 returns a zero exit status, otherwise execute commands3.

if command1
then
commands
elif command2
then
commands

elif commandn
then
commands
else
commands
fi

If command1 returns a zero exit status, or command2 returns a zero exit status, or commandn returns a zero exit status, then execute the commands corresponding to the if/elif that returned a zeroexit status. Otherwise, if all the if/elif commands return a non-zeroexit status, execute the commands between else and fi.

until command1
do
commands
done

Execute commands until command1 returns a zero exit status

while command1
do
commands
done

Execute commands while command1 returns a zero exit status.

COMMANDS

null command; returns zero exit status

file

read and execute commands from file in current environment

begin comments; terminate with a newline

break

exit from current for, until, or while loop

break n

exit from nth enclosing for, until, or while loop

cd dir

change directory to dir. If dir not specified, change directory to $HOME.

echo args

display args

eval command

evaluate command and execute the result

exec command

replace current process with command

exit

exit from the current program with the exit status of the last command. If given at the command prompt, terminate the login shell.

exit n

exit from the current program with exit status n

export

display a list of exported variables

export var

export variable var

getopts

parse positional parameters and options

hash

display a list of hashed commands

hash commands

remember locations of commands by putting them in the hash table

hash -r

remove all commands from the hash table

hash -r command

remove command from the hash table

newgrp

change the group-id to the default group-id

newgrp gid

change group id to gid

pwd

display the pathname of the current directory

read variables

read a line from standard input; assign each word on the line to each variable. Words delimited with $IFS.

readonly

display a list of readonly variables

readonly var

set variable var to be readonly

return

exit from a function with return status of the last command

return n

exit from a function with return status n

set

display a list of current variables and their values

set args

set positional parameters to args

set -args

set positional parameters that begin with -

set [options ]

enable/disable options (see OPTIONS section)

shift

shift positional parameters once to the left

shift n

shift positional parameters n times to the left

test expression

evaluate expression (see CONDITIONAL EXPRESSIONS section)

times

display total user and system time for current shell and its child processes

trap

display list of current traps

trap commands signals

execute commands when signals are received

trap '' signals

ignore signals

trap signals, trap -signals

reset traps to their default values

trap commands 0

execute commands on exit from the shell

type command

display information and location for command

ulimit [type] [options] n

set a resource limit to n. If n is not given, the specified resource limit is displayed. If no option is given, the file size limit (-f) is displayed. If no type is given, both limits are set, or the soft limit is displayed; type can be:

H

hard limit

-S

soft limit

and options can be:

-a

displays all current resource limits

-c n

set core dump size limit to n 512-byte blocks

-d n

set data area size limit to n kilobytes

-f n

set child process file write limit to n 512-byte blocks (default)

-m n

set physical memory size limit to n kilobytes

-s n

set stack area size limit to n kilobytes

-t n

set process time limit to n seconds

-vn

set virtual memory size to n kilobytes

umask

display current file creation mask value

umask mask

set default file creation mask to octal mask

unset variable

remove definition of variable

wait [n]

wait for execution (see JOB CONTROL section)

FUNCTIONS

Functions are used to reference a group of commands with a single name. They are more efficient to use than equivalent Bourne shell scripts, because once a function has been defined, it doesn't have to be read in from the disk again. Functions also provide a way to organize Bourne shell scripts into routines, like in other high-level programming languages. To be used, functions must be read in first, but can then be invoked like regular commands. For example, in Bourne shell scripts, functions are included at the top so that they are read in first. Environment functions can be put into a file and read in with the . command. Functions cannot be exported, so they are only available to the current shell. To exit from a function, but not from a Bourne shell script, use the return command. Functions are defined with the following format: name()

RESTRICTED SHELL

Running under the restricted shell rsh is equivalent to sh, except that changing directories, setting the value of PATH, specifying path or command names containing /, and redirecting output with > or >> are not allowed.

DEBUGGING BOURNE SHELL SCRIPTS

The Bourne shell provides a number of options that are useful in debugging scripts: -n, -v, and -x. The -n option causes commands to be read without being executed and is used to check for syntax errors. The -v option causes the input to displayed as it is read. The -x option causes commands in Bourne shell scripts to be displayed as they are executed. This is the most useful, general debugging option. For example, tscript could be run in trace mode if invoked 'sh -x tscript'.

FILES

$HOME/.profile

contains local environment settings. At login time, it is read in and executed after the /etc/profile file.

/etc/profile

contains system-wide environment settings. If existent, it is read in and executed before $HOME/.profile.

REGULAR EXPRESSIONS

c

non-special character c

c

special character c

beginning of line

end of line

any single character

[abc]

any character a, b, or c

[a-c]

any character in range a through c

[^abc]

any character except a, b, or c

[^a-c]

any character except characters in a-c

n

nth () match (grep only)

rexp

zero or more occurrences of rexp

rexp

one or more occurrences of rexp

rexp

zero or one occurrence of rexp

rexp1 | rexp2

regular expressions rexp1 or rexp2

(rexp)

tagged regular expression rexp (grep)

(rexp)

regular expression rexp (egrep)

MISC COMMANDS

The following commands are frequently used in Bourne shell scripts to filter input and output.

awk/nawk

Pattern Scanning and Processing Language

$awk [ options ] [ 'program' ] [ parameters ] [ files ]
$nawk [ options ] [ 'program' ] [ files ]

Description:

The awk/nawk command performs actions for lines in files that match patterns specified in program. Each input line is made up of fields separated by whitespace.

Options:

-ffile

get patterns from file instead of program

-Fc

separate fields with character c (default whitespace)

-v variable=value

assign value to variable (nawk only)

parameters

parameters have the format variable=expression

files

read standard input if files is - or no files are specified

Program Format:

Patterns in program can be associated with a statement to perform if an input line matches the pattern. The format is:

pattern

A missing pattern always matches, and a missing statement prints the current input line.

Patterns:

BEGIN

match before first input line

END

match after last input line

pattern1, pattern2, , patternn

match if pattern1, pattern2, or patternn match current input line

pattern1 && pattern2

match if pattern1 and pattern2 match current input line

pattern1 || pattern2

match if pattern1 or pattern2 match current input line

!pattern

match if pattern does not match current input line

/regular-expression/

match if regular-expression matches current input line

relational-expression

match if relational-expression evaluates to true

Flow Control Statements:

break

exit from a for or while loop

continue

execute next for or while loop

delete variable[expression]

delete element expression from array variable

do statement while (expression)

execute statement while expression is true

exit

skip remaining input

for (expression1 expression2; expression3) statement

execute statement while expression2 is true; loop is usually initialized with expression1 and incremented with expression3

for (variable in array) statement

execute statement, setting variable to successive elements in array

if (expression statement1 [ else statement2 ]

execute statement1 if expression is true, otherwise execute statement2

next

skip rest of the input line

return[expression]

return value of expression

system(command

execute command and return status

while (expression statement

execute statement while expression is true

Input/Output Statements:

close(file)

close file

getline

set $0 to next input record; set NF, NR, FNR

getline<file

set $0 to next input from file; set NF

getline var

set var to next input record; set NR, FNR

getline variable<file

set variable to next input record from file

command | getline

pipe output of command into getline

print

print current input record

print expression

print expression; multiple expressions must be separated with a ','

print expression>file

print expression to file; multiple expressions must be separated with a ','

printf format expression

print expression according to C-like format. Multiple expressions must be separated with a ','. Output can also be appended to file using >> or piped to a command using |.

printf format expression>file

print expression to file according to C-like format. Multiple expressions must be separated with a ','. Output can also be appended to file using >> or piped to a command using |.

Functions:

atan2(x,y)

arctangent of x/y in radians

cos(expr)

cosine of expr

exp(expr)

exponential of expr

gsub(regular-expression, string1, string2)

substitute string1 for all instances of regular-expression in string2. If string2 is not specified, use the current record $0.

index(string1, string2)

return the position of string1 in string2

int(expr)

integer value of expr

length(string)

return the length of string

log(expr)

natural logarithm of expr

match(string, regular-expression)

return the position in string where regular-expression occurs. If not found, return 0. RSTART is set to starting position, and RLENGTH is set to the length of string.

rand

random number between 0 and 1

sin(expr)

sine of expr in radians

split(string, array)

split string into array using $FS

split(string, array, fs)

split string into array using fs as separator

sprintf(format, expr)

format expr according to the printf format

sqrt(expr)

square root of expr

srand

new seed for rand (current time)

srand(expr)

set the seed for rand to expr

sub(regular-expression, string1, string2)

substitute string1 for the first instance of regular-expression in string2. If string2 not specified, use the current record $0.

substr(string, x)

return the suffix of string starting at position x

substr(string, x, n)

return n character substring of string starting at position x

function name(args,)

func name(args,) name (expr, expr, . . .)

define a function name

Operators:

assignment operators

conditional expression

||, &&, !

logical OR, logical AND, logical NOT

regular expression match/do not match

<, <=, >, >=, !=, ==

relational operators

add, subtract

multiple, divide, modulo

unary plus, unary minus

exponentiation

increment, decrement

Variables:

$ARGC

number of command-line arguments

$ARGV

array of command-line arguments

$FILENAME

current input file

$FNR

record number in current input file

$FS

input field separator (default blank and tab)

$NF

number of fields in the current record

$NR

number of current record

$OFMT

output format for numbers (default %g)

$OFS

output field separator (default blank)

$ORS

output record separator (default newline)

$RLENGTH

length of string matched by match()

$RS

contains the input record separator (default newline)

$RSTART

index of first character matched by match()

$SUBSEP

subscript separator (default 034)

current input record

n

nth input field of current record

cut

Display File Fields

$cut -clist [ files ]
$cut -flist [ -dc ] [ -s ] [ files ]

Description:

The cut command displays fields from lines in the specified files according to selection options. The fields can be of fixed or variable length.

Options:

-clist

display characters from the positions in list

-dc

set the field delimiter to c (default tab)

-flist

display the fields specified in list

-s

suppress lines with no delimiter characters

files

read standard input if files are -, or no files are specified

list

comma separated list of integer field numbers; integers separated with a - indicate a range

echo

Display Arguments

$echo arguments

Description:

The echo command displays arguments on standard output. Special escape characters can be used to format arguments.

Escape Characters:

b

backspace

c

line without ending newline

f

formfeed

n

newline

r

carriage return

t

tab

v

vertical tab

backslash

x

character whose octal value is x

egrep

Search Files for Patterns

$egrep [ options ] 'expression' [ files ]

Description:

The egrep command displays lines in files that contain the given full regular expression pattern.

Options:

-b

precede each line with the block number

-c

display the number of lines that match only

-e -expression

search for expression that begins with -

-f file

get expressions from file

-i

ignore case of letters during comparisons

-l

display file names with matching lines once

-n

display the output with line numbers

-v

display non-matching lines

files

read standard input if no files are specified

expr

Evaluate Expression Arguments

$expr arguments

Description:

The expr command evaluates arguments as an expression. Expression tokens must be separated with blanks, and special characters must be escaped. Integer arguments can be preceded by a minus sign to indicate a negative number.

Operators (listed in order of precedence):

exp1 | exp2

return exp1 if neither null nor 0, else return exp2

exp1 & exp2

return exp1 if neither null nor 0, else return 0

exp1 <, <=, =, !=, >=, > exp2

return result of the integer or string comparison

exp1 +, -, *, /, % exp2

return result of the arithmetic operation

exp1 : exp2

return the result on the number of matched characters between exp1 and exp2

grep

Search Files for Patterns

$grep [ options ] 'expression' [ files ]

Description:

The grep command displays lines from files that match the given limited regular expression.

Options:

-b

precede each line with the block number

-c

display the number of matching lines

-i

ignore case of letters during comparisons

-l

display only filenames with matching lines once

-n

display the output with line numbers

-s

do not display error messages

-v

display non-matching lines only

files

read standard input if no files are specified

paste

Merge Lines Between Files

$paste file1 file2 . . .
$paste -dlist file1 file2 . . .
$paste -s [ -dlist ] file1 file2 . . .

Description:

The paste command merges corresponding lines from files. Each file is treated as a column or columns of a table and displayed horizontally.

Options:

-dlist

replace tabs with characters from list. If this option is not specified, the newline characters for each file (except for the last file, or if -s is given, the last line) are replaced with tabs. The list can contain these special characters:

n

newline

t

tab

empty string

backslash

-s

merge subsequent lines instead of one

files

read standard input if file1 or file2 is -

sed

Stream Editor

$sed [ -n ] [ -e 'script ' [ -f file ] [ files ]

Description:

The sed command copies files to standard output and edits them according to the given editing commands.

Options:

-e script

execute commands in script

-f file

get commands from file

-n

suppress default output

files

read standard input if no files given

Command Format:

[address [ ,address ] ] commands [ arguments ]

execute commands for each input line that matches address or range of addresses. If commands is preceded by '!', input lines that do not match the address are used.

Addresses:

If no address is given, all input lines are matched.

Two addresses indicate a range.

current line

last line

n

nth line

/regular-expression

regular expression

n

newline

Commands:

The maximum number of addresses listed in parentheses.

(1)a

append the following text to the output text

(2)b label

branch to the :label command. If label is empty, go to the end of the script.

(2)c

change line text

(2)d

delete lines

(2)D

delete first line of input only

(2)g

replace input lines with buffer contents

(2)G

append buffer contents to input lines

(2)h

replace buffer contents with input lines

(2)H

append input lines to buffer contents

(1)i

insert the following text text

(2)l

display input lines

(2)n

display input line; read next input line

(2)N

append next input line to current line

(2)p

display input lines

(2)P

display first line of input line only

(1)q

quit

(2)r file

display contents of file

(2)s/RE/s/flags

substitute s for the regular expression RE that matches input lines according to flags. The flags can consist of zero or more of:

n

substitute for just the nth occurrence of the regular expression RE (1-512)

g

substitute for all occurrences of RE

p

display input line if substitution was made

w file

append input line to file if substitution made

(2)t label

branch to :label command if substitution was made. If label is empty, go to end of script.

(2)w file

append input line to file

(2)x

exchange input line with buffer contents

(2)y/s1/s2

replace characters in s1 with characters in s2. The lengths of s1 and s2 must be equal.

(2)!cmd

execute command for the input lines not selected

display current line number

(2) as a group

interpret rest of input line as comments

(0)#n

interpret rest of input line as comments and ignore

sort

Sort-Merge Files

$sort [-cmu] [-ofile] [-yk] [-zn][-dfiMnr][-btc]
[ +pos1 -pos2 ]] [ files ]

Description:

The sort command sorts lines from files.

Options:

-b

ignore leading tabs and spaces

-c

check that the input is in sorted order

-d

sort in dictionary order; only letters, digits, and white-space are significant in comparisons

-f

sort upper and lower case letters together

-i

ignore non-printable characters

-m

merge already sorted files

-M

sort as months. The first three non-blank characters are converted to upper case and compared. (implies -b)

-n

sort by numerical value; blanks, minus signs, and decimal points can also be given (implies -b)

-ofile

send output to file (default standard output)

-r

reverse the sorting order

-tc

set the field separator to c

-u

display only one occurrence of duplicate lines

-y[k]

use k kilobytes of memory to sort (default max)

-zn

use n bytes of buffer for long lines

files

read standard input if files is - or no files given

+pos1 [ -pos2] sort from pos1 to pos2.

If pos2 is not specified, sort from pos1 to the end of line. The format for pos1 and pos2 is: m[.n] [bdfinr]

m

m fields from start of line (default 0)

n

n characters from start of field (default 0)

bdfinr

option applies to the specified key only

tr

Translate Characters

$tr [-cds] [string1] [string2]

Description:

The tr command copies standard input to output and translates characters from string1 to characters in string2.

Options:

-c

translate characters not in string1

-d

delete characters in string1 from input

-s

truncate repeated characters from string2

Strings:

[a-z]

specifies range of characters from a to z

[c*n]

specifies n repetitions of c. If the first digit in n is 0, n interpreted as octal. (default decimal)

uniq

Report Duplicate Lines

$uniq [ -udc [ +n ] [ -n ] ] [ file1 [ file2 ] ]

Description:

The uniq command removes duplicate adjacent lines from file1 and places the output in file2.

Options:

-c

display a count of duplicate lines also

-d

display only duplicate lines once

-u

display only unique lines from the original file

n

skip first n fields from start of line

+n

skip first n characters from the start of field

wc

Count Characters, Lines and Words

$wc [ -clw ] [ files ]

Description:

The wc command counts the characters, lines, or words in the specified files. A total count for all files is kept.

Options:

-c

display number of characters (default all options)

-l

display number of lines

-w

display number of words

files

read standard input if no files are specified

EXAMPLE COMMANDS

# Execute multiple commands on one line
$ pwd ; ls tmp ; echo 'Hello world'
# Run the find command in the background
$ find . -name tmp.out -print &
# Connect the output of who to grep
$ who | grep fred
# Talk to fred if he is logged on
$ && talk fred
# Send ls output to ls.out
$ ls > ls.out
# Append output of ls to ls.out
$ ls >> ls.out
# Send invite.txt to dick, jane, and spot
$ mail dick jane spot < invite.txt
# Send the standard error of xsend to stderr.out
$ xsend file 2>stderr.out
# List file names that begin with z
$ ls z*
# List two, three, and four character file names
$ ls ?? ??? ????
# List file names that begin with a, b, or c
$ ls [a-c]*
# List file names that do not end with .c
$ ls *[!.c]
# Set NU to the number of users that are logged on
$ NU=`who | wc -l`
# Set TOTAL to the sum of 4 + 3
$ TOTAL=`expr 4 + 3`
# Set and export the variable LBIN
$ LBIN=/usr/lbin; export LBIN
# Unset variable LBIN
$ unset LBIN
# Set SYS to the hostname if not set, then display its value
$ echo $
# Display an error message if XBIN is not set
$ : $
# Display $HOME set to /home/anatole
$ echo '$HOME set to' $HOME
# Display the value of $TERM
$ echo $TERM
# Bring background job 3 into the foreground
$ fg %3
# Stop the find job
$ stop %find
# Display the number of positional parameters
$ echo 'There are $# positional parameters'
# Display the value of positional parameter 2
$ echo $2
# Display all information about current jobs
$ jobs -l
# Terminate job 5
$ kill %5
# Increment variable X
$ X=`expr $X + 1`
# Set variable X to 20 modulo 5
$ X=`expr 20 % 5`
# Set diagnostic mode
$ set -x
# Run the dbscript in noexec mode
$ sh -n dbscript
# Check for new mail every 2 minutes
$ MAILCHECK=120; export MAILCHECK
# Set the primary prompt string
$ PS1='Good morning!'; export PS1
# Check if VAR is set to null
$ [-z '$VAR'] && echo 'VAR is set to null'
# Check if VAR is set to ABC
$ ['$VAR' = ABC ]
# Check if xfile is empty
$ test ! -s xfile
# Check if tmp is a directory
$ [ -d tmp ]
# Check if file is readable and writable
$ test -r file -a -w file
# Display an error message, then beep
$ echo 'Unexpected error!007'
# Display a message on standard error
$ echo 'This is going to stderr' >&2
# Display a prompt and read the reply into ANSWER
$ echo 'Enter response: c'; read ANSWER
# Create a function md that creates a directory and cd's to it
$ md()
# Set a trap to ignore signals 2 and 3
$ trap '' 2 3
# Set X to 1 and make it readonly
$ X=1 ; readonly X
# Set VAR to 1 and export it
$ VAR=1 ; export VAR
# Set the positional parameters to A B C
$ set A B C
# Set the file size creation limit to 1000 blocks
$ ulimit 1000
# Disable core dumps
$ ulimit -c 0
# Add group write permission to the file creation mask
$ umask 013
# Display the first and third fields from file
$ awk '' file
# Display the first seven characters of each line in tfile
$ cut -c1-7 tfile
# Display the first and third fields from the /etc/passwd file
$ cut -f1,3 -d':' /etc/passwd
# Display lines in names that begin with A, B, C, or Z
$ egrep '[A-C,Z]*' names
# Display lines from dict that contain four character words
$ egrep '.' dict
# Display password entries for users with the Korn shell
$ grep ':/bin/ksh$' /etc/passwd
# Display number of lines in ufile that contain unix; ignore case
$ grep -c 'unix' ufile
# Display the lengths of field 1 from file
$ nawk'' file
# Display the first ten lines of tfile
$ nawk '' tfile
# List the contents of the current directory in three columns
$ ls | paste d' ' - - -
# Display file with all occurrences of The substituted with A
$ sed 's/The/A/g' file
# Display your user name only
$ id | sed 's/).*//' | sed 's/.*(//'
# Display file with lines that contain unix deleted
$ sed '/unix/d' file
# Display the first 50 lines of file
$ sed 75q file
# Sort the /etc/passwd file by group id
$ sort -t':' -n +3 -4 /etc/passwd
# Translate lower case letters in file to upper case
$ cat file | tr a-z A-Z
# Display adjacent duplicate lines in file
$ uniq -d file
# Display the numbers of characters and words in file
$ wc -l file
# Display the number of .c files in the current directory
$ ls *.c | wc -l

EXAMPLE BOURNE SHELL SCRIPTS

The bnl script is the Bourne shell version of the UNIX nl command. It displays line-numbered output.

#!/bin/sh

bnl - Bourne shell line-numbering filter
A Olczak - ASP, Inc


# Initialize line number counter
LNUM=1

# Check usage
if [ '$#' -eq 0 ]
then
echo 'Usage: $0 file'
exit 1
fi

# Process each file
for FILE
do
# Make sure file exists
if [ ! -f '$FILE' ]
then
echo '$FILE: non-existent or not accessible'
exit 1
fi

# Read each line, display with line number
cat $FILE | while read LINE
do
echo '$LNUM: $LINE'
LNUM=`expr $LNUM + 1`
done

# Reset line number counter
LNUM=1
done

The kcal script implements a menu-driven calendar program. It supports addition, deletion, modification, and listing of calendar entries. It also provides the ability to find the calendar entry for the current day and list all calendar entries.

#!/bin/sh

bcal - Bourne shell calendar program

Anatole Olczak - ASP, Inc


# Check arguments
if [ '$#' -gt 0 ]
then
echo 'Usage: $0'
exit 1
fi

# Use variable setting or default


# Create calendar file if non-existent; flag
# creation error
if [ ! -f '$CALFILE' ]
then
echo 'Creating default $HOME/.calfile'
> $HOME/.calfile ||
fi
# Variable declaration/assignment
DATE= LINE= ENTRY= REPLY='yes'
PAGER=/bin/more CLEAR=/bin/clear

# Set trap to not allow interrupts
trap '$CLEAR; echo '007Interrupt ignored - use
menu to quit. Press <Return> to continue.';
read TMP; $CLEAR' 2 3

# Check the date
checkdate()

# Change an entry
changeentry() /tmp/.FOUND$$

# Remove the specified original entry
grep -v $DATE $CALFILE > /tmp/.CHANGE$$

# Put back new change in record format.
# Add trailing n
(cat /tmp/.FOUND$$ | tr '012' ',' ; echo )
>>/tmp/.CHANGE$$

# Put back new file
cat /tmp/.CHANGE$$ > $CALFILE

# Clean up tmp files
rm -rf /tmp/.CHANGE$$ /tmp/.FOUND$$

# Add new calendar entry
addentry()

formatentry()

# Find specific entry
findentry()

# Remove specific entry
delentry()

# Set menu selection prompt
PS3='Enter selection or <Return> for default menu:'

# Display menu
while true
do
$CLEAR

echo ' *** CALENDAR PROGRAM *** nn'
echo ' 1) Add calendar entryn'
echo ' 2) Delete calendar entryn'
echo ' 3) Change calendar entryn'
echo ' 4) Find calendar entryn'
echo ' 5) List all calendar entriesn'
echo ' 6) List todays calendar entryn'
echo ' 7) Exitnn'
echo '$PS3c'
read i

case $i in
'1') checkdate
addentry
$CLEAR ;;
'2') checkdate
delentry
$CLEAR ;;
'3') checkdate
changeentry
$CLEAR ;;
'4') checkdate
findentry
$CLEAR ;;
'5') formatentry $CALFILE
$CLEAR ;;
'6') DATE=`date +%m%d%y`
findentry
$CLEAR ;;
'7') # Clean up files
rm -rf /tmp/.FOUND$$ /tmp/.CHANGE$$
/tmp/.DEL$$
exit ;;
* ) echo 'nnInvalid selection - press
<Return> to continuec'
read TMP
$CLEAR
continue ;;
esac
done


Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1407
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved