Параметры устанавливаемые шеллом

 

Параметр Описание
$# Количество аргументов командной строки
$? Значение кода возврата предыдущей команды
$$ Номер процесса шела в системе
$! Номер процесса в системе последней команды запущеной в фоне

Основные опции для запуска Bourn Shell

 

Опция Описание
-с string Выполнять команды из файла string
-s Выполнять команды полученные со сотандартного ввода (в случе запуска шела без опций он ведет себя также)
-r Запустить шелл в ограниченном режиме (restricted mode)

 

При запуске шела в restricted mode запрещается:

 

· Изменение директории командой cd

· Устанавливать переменную окружения PATH

· Запускать программы содержащие в имени символ /

· Перенаправлять ввод-вывод

 



C Shell.

 

Общие сведения.

История команд

Алиасы, подстановка команд, метасимволы

2.3.4 Переменные csh

Задания

Скрипты

Управляющие структуры скриптов.

Общие сведения.

 

csh это командный интерпретатор HP-UX и язык программирования высокого уровня используемый для трансляции команд вводимых пользователем в системные действия такие как запуск программ, перемещение по директориям файловой системы, управление информационными потоками между программами. csh в отличии от Bourne Shell имеет ряд дополнительных полезных возможностей

 

· Буфер истории команд

· Механизм алиасов

· Расширеный, С-подобный командный язык

 

Выход из шелла может осуществляться несколькими способами: по команде exit (либо logout если это логин шелл) и также в зависимости от переменной окружения ignoreoff если она не установлена, то по комбинации клавиш Ctrl-D.

 

Запуск шелла

В зависимости от того является ли csh Вашим логин-шеллом возможны различные сценарии его запуска. При запуске csh проверяет файлы:

 

           /etc/csh.login               Если csh это логин-шелл и этот файл существует, то он

выполняется

          .cshrc                           Если этот файл существует в вашем домашем каталоге,

то он выполняется в любом случае.

          .login                               Если csh это логин-шелл и этот файл существует в

домашнем каталоге то он выполняется

          .logout                              Если этот файл существует в домашнем каталоге, то он

выполняется всякий раз при выходе из шелла если это

логин-шелл

 

Установка переменных

 

Существуют два типа переменных которые могут быть устаовлены в.cshrc и.login, это локальные переменные, которые не передаются дальше порождаемым из шелла процессам и носят название локальных переменных и глобальные переменные, которые становяться доступными всем процессам порожденным из шелла и носят название переменных окружения. Локальные переменные устанавливаются командой set, глобальные – командой setenv.

 

История команд

csh поддерживает так называемый буфер команд в котором храняться последние введенные команды называемые событиями. Размер буфер определяет переменная history. Переменная savehistory определяет сколько команд буфера подлежит сохранению перед выходом из шела. Наиболее оптимальным размером буфера считается буфер на 10 … 20 команд. Просмотр буфера возможен по команде history.  Подстановка команд из буфера осуществляется с использованием символа восклицательного знака (!). Переменная prompt отвечает за вид системоной подсказки.

 

 

Например, выполнив команду:

 

% set prompt='[\!] % '

[2] %

 

можно изменить стандартную системную подсказку на новую в которой в скобках отображается номер последнего события. Повторный запуск событий из буфера может осуществляться по:

 

· По номеру события:!n где n – это номер события в буфере

· Относительному номеру события относительно текущего события:!-n

· Тексту события:! word где word – первые несколько символов события. Например набрав один раз команду history, в следующий раз можно использовать вместо этого команду!h.

 

Как специальный случай следует отметить команду!! которая запускает повторно самое последнее событие.

 

csh также допускает использование аргументов команд находящихся в буфере при посторении новых команд. Каждый аргумент в событии хранящемся в буфере нумеруется начиная с нуля (нулевой аргумент – имя самой команды). Последний аргумент еще представляется знаком ($), первый аргумент знаком (^). Для ссылки на на аргумент события нужно после номера события через двоеточие (:) ввести номер аргумента или его обозначение. Например:

 

       cruiser 4: ls -l.cshrc

-rw-r--r-- 1 roman users     814 Jan 2 23:08.cshrc

 

cruiser 5: history

  1 ls -l.profile

  2 history

  3 cat.profile

  4 ls -l.cshrc

  5 history

 

cruiser 6: cat!4:$

cat.cshrc

#

# Default user.cshrc file (/usr/bin/csh initialization).

set path=($path)

# Set up C shell environment:

   if ($?prompt) then          # shell is interactive.

              set history=20                # previous commands to remember.

              set savehist=20                          # number to save across sessions.

              set system=`hostname`  # name of this system.

              set prompt = "$system \!: " # command prompt.

endif

 

Алиасы, подстановка команд, метасимволы

csh предоставляет дополнительные удобства в виде командных алиасов. Например, вместо того чтобы каждый раз при необходимости вывести полный листинг директории или при выходе из шелла набирать набирать полные команды, можно создать их сокращенные псевдонимы (dir и x):

 

alias dir ls –als

alias exit x

 

для снятия алиаса нужно воспользоваться командой unalias:

 

       unalias dir

 

чтобы просмотреть список всех алиасов имеющихся в данный момент нужно ввести команду alias без параметров.

 

Подстановка команд

 

Подстановка команд в csh выполняется полностью аналогично подстановке в Bourne Shell рассмотреной перед этим:

 

cruiser 7: set dir=`pwd`

cruiser 8: echo $dir

/home/roman

cruiser 9:

 

Метасимволы

Все етасимволы включая синтаксические (; | () & || &&) а так же файловые (? * [] ~) и метасимволы квотинга (\ ‘ “) в csh имеют тот же смысл что и рассмотренные перед этим в Bourne Shell.

 

2.3.4 Переменные csh

 

Имя переменной Описание
$argv Список аргументов командной строки
$autologout Авто логаут если шеллом не пользовались спустя количеству секунд указанному в этой переменной. Неустановленное или нулевое значение отключает авто логаут.
$cwd Указатель текущей рабочей директории
$home Домашняя директория
$ignoreeof Если переменная установлена, то гнорировать символ конец файла (Ctrl-D) как символ завершения работы
$noclobber Если переменная установлена, то запретить перенаправление вывода в существующий файл (операция >). Перенаправление возможно лишь с использованием операции >!
$notify Если переменная установлена то посылать немендленные уведомления после окончания фоновых процессов
$path Путь для поиска выполняемых файлов. При изменении этой переменной нужно уведомить шелл выполнив команду rehash
$prompt Вид системной подсказки
$status Код возврата самой последней команды

 

 

Цифровые переменные csh

 

Команда at (@) назначает цифровой переменной арифметическое значение, точно так же как и команда set назначает значение стороковой переменной. Значением цифровых переменных являются десятичные целые.

 

% @ sum=(1 + 2)

% echo $sum

3

 

Основные арифметические операции в csh

 

Операция Описание
() Скобки изменяют порядок выполнения операций
+ Сложение
- Вычитание
* Умножение
/ Деление
% Остаток от деления

 

Основные логические операции в csh

 

Операция Описание
== Проверка на равенство
!= Пооверка на неравенство
! Логическое отрицание

 

Кроме этих операций есть еще ряд логических операций которые должны быть взяты в скобки и их операнды должны ьыть разделены пробелами в виде (operand1 >= operand2)

 

Операция Описание
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно
>> Правый битовый сдвиг
<< Левый битовый сдвиг
& Битовое И
| Битовое ИЛИ
&& Логическое И
|| Логическое ИЛИ

 

Например:

           

% @ r= (2 << 4)

% echo $r

32

 

Основные операции присвоения в csh

 

Операция Описание
= Простое рисвоение а = b
+= a = a + b
-= a = a - b
*= a = a * b
/= a = a / b
%= a = a % b

 

Постфиксные операции

 

К последним относятся операции ++ и --

 

       % @ a=10

       % @ a++

% echo $a

11

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: