русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Команды bash в linux

1. Командная оболочка. Bash

Важнейшим из пользовательских процессов является командная оболочка (она же командный интерпретатор, или просто shell). Именно она обеспечивает взаимодействие пользователя с системой в текстовом режиме, позволяя вводить команды. Именно она запускается, когда вы регистрируетесь на текстовой консоли, и предоставляет вам интерфейс командной строки.

Не нужно, увлекшись удобствами графического интерфейса, недооценивать командную строку. Во-первых, многие административные задачи могут быть выполнены только оттуда; во-вторых, командная строка — самое удобное средство автоматизации рутинных процедур. Командой в Linux считается все, что может быть исполнено: исполняемые файлы, встроенные команды оболочки, псевдонимы команд, пользовательские функции, файлы сценариев (скрипты) — заранее подготовленные последовательности команд в текстовом виде.

Таким образом, командный интерпретатор - это программа, имеющая свои собственные встроенные команды (built-in commands), свое собственное переменное окружение (environment), а также позволяющая выполнять внешние команды, которые присутствуют в системе.

Оболочка принимает вводимые пользователем команды, обрабатывает, если нужно, их аргументы, отправляет команды на выполнение, принимает возвращаемые ими значения и выполняет определенные действия в зависимости от этих значений. Кроме того, в оболочку встроен язык программирования (командный язык), позволяющий писать сложные разветвленные командные сценарии. Именно командный язык отличает разные оболочки друг от друга, и именно из него исходят пользователи, выбирая оболочки.

Linux является Unix-подобной ОС. Первоначально ОС Linux была разработана Линусом Торвальдсом (Linus Torvalds) в Университете Хельсинки (Финляндия) на основе ОС Minix - маленькая UNIX-система, созданная Andry Tanenbaum. Раннее развитие Linux прежде всего было связано с проблемой переключения задач в защищенном режиме для 80386. И Линус "стал серьезно обдумывать маниакальную идею, как сделать Minix лучше себя самого".

Командная оболочка в UNIX-системах уже существовала, это была оболочка "Bourne shell"(shell Баурна или просто shell). Немного позднее в UNIX-системах разработали оболочку C shell, которая использует иной синтаксис, чем-то напоминающий синтаксис языка программирования Си.

Для Linux разработано много командных интерпретаторов. Основной, используемой по умолчанию является "Bash", разработанная на основе shell и называемая "Новый Shell Баурна" (Bourne Again Shell). Таким образом, Bash - это развитие прежнего shell с добавлением многих полезных возможностей, частично содержащихся в C shell. Поскольку Bash можно рассматривать как надмножество синтаксиса прежнего shell, любая программа, написанная на добром старом shell Баурна должна работать и в Bash.

Однако следует отметить, что ОС Linux не является UNIX-системой, так как ее код был полностью переписан, первоначально Линусом, в дальнейшем с помощью многих UNIX-программистов и энтузиастов из Internet, тех, кто имеет достаточно навыков и способностей развивать систему.

Ядро Linux не использует коды UNIX или какого-либо другого частного источника, и большинство программ Linux разработаны в рамках проекта GNU из Free Software Foundation в Cambridge, Massachusetts. Но в него внесли лепту также программисты всего мира.

Вот наиболее распространенные командные оболочи Linux:

  • Bourne shell - оболочка Борна, стандарт для многих UNIX-подобных систем;
  • bash - Bourne Again shell, «новая оболочка Борна» (используется по умолчанию в Linux);
  • csh - С shell, оболочка Си: синтаксис ее командного языка похож на синтаксис языка С;
  • tcsh - tiny С shell, минимальная оболочка Си;
  • pdksh - public domain Korn shell, общедоступная оболочка Корна;
  • sash - stand-alone shell, автономная оболочка, может быть использована в случае, когда программные библиотеки недоступны.

Список всех установленных в системе программ-оболочек находится в файле /etc/shells.

Начальная оболочка для каждого пользователя, запускаемая для него при регистрации в системе, указывается в файле /etc/passwd . Это может быть не обязательно bash. Администратор может вообще определенным пользователям запретить вход в систему, указав в качестве "оболочки", загружаемой после регистрации, /sbin/nologin. Или вообще указать специально разработанный скрипт, позволяющий просматривать тоги журналы (логи), например.

Для редактирования файла /etc/passwd в Linux существует специальная команда vipw, которая проверяет правильность редактирования (команда доступна только администратору).

Описание файлов /etc/passwd, /etc/shadow и /etc/groups

В дальнейшем, при работе в оболочке по умолчанию, вы можете сменить текущую оболочку на любую из установленных (точнее, войти в подоболочку). Чтобы выйти из нее и вер- нуться в родительскую оболочку, введите команду exit. В начальной оболочке эта команда завершает сеанс работы.

В любой оболочке можно запускать командные сценарии, состоящие из команд другой оболочки: первая строка каждого сценария содержит указание на то, в какой оболочке его следует выполнять, и текущая оболочка запускает для него указанную как дочерний процесс.

Как я уже говорила, по умолчанию новому пользователю назначается оболочка bash. Это прекрасная оболочка, включающая много усовершенствований и лучших свойств других оболочек, и менять ее я не рекомендую. В дальнейшем, говоря «оболочка», я буду иметь в виду именно bash.

 

 

2. Разбор командной строки, избранные функции bash

Интерпретатор, получив командную строку, выполняет над ней ряд преобразований, используя для этого свои мощные функции, а именно:

  1. Раскрывает псевдонимы ( alias) для быстрого вызова наиболее употребительных команд.
  2. Раскрывает метасимволы или группрвые симовлы (*, ?, [, ], ~, {, }) для поиска файлов по шаблонам имен.
  3. Подставляет переменные, которые может использовать командный процессор.
  4. Перенаправляет выходные данные одной команды в качестве входных данны для другой команды, используя конвейер (pipe).
  5. Выполняет объединение команд.
  6. Выполняет команду, если она - встроенная команда интерпретатора, или запускает процесс, если команда внешняя.
  7. Перенаправляет стандартный ввод/вывод.

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

2.1. Псевдонимы

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

Встроенная команда alias назначает псевдоним, т.е. обеспечивает удобный сокращенный ввод длинных команд. Без аргументов выводит список всех имеющихся псевдонимов. Напимер, можно назначить команду "rm" псевдонимом для «rm -i», чтобы не забыть воспользоваться ключом -i. Вы тоже можете назначить короткий псевдоним для любой длинной команды.

Чтобы псевдонимы были доступны при входе в систему, определите их в вашем файле ~/.bash_profile

Команда unalias удаляет псевдоним из списка.

2.2. Метасимволы

Ключевое свойство большинства оболочек Linux/Unix - это способность ссылаться сразу более, чем на один файл, используя для этого специальные символы. Эти, так называемые "метасимволы" (wildcards), позволяют ссылаться, скажем, на все файлы, содержащие символ "n".

В лабораторной работе 1 был описан синтаксис использования группрвых символов, чтобы их можно было использовать при выполнении команд.

Тут не считаю лишним повториться.

Типы метасимволов

  • * - Любой набор символов, в том числе пустая строка. Например, когда вы используете символ "*" в имени файла, shell заменяет ее всеми возможными именами файлов из каталога, на который вы ссылаетесь.

    Процесс замены "*" на имена файлов называется расширением метасимволов и выполняется самим интерпретатором. Это важно: конкретные команды, вроде ls, никогда не видят "*" в своем списке параметров. Shell, расширяя метасимволы, включает в список параметров все имена, прошедшие сравнение с шаблоном.

    Однако, использование "*" не даст совпадения с именами файлов, которые начинаются с точки ("."). Эти файлы воспринимаются как "спрятанные", хотя на самом деле их никуда не прятали. Они не показываются в списке, выдаваемом нормальной командой ls и не выбираются при использовании "*". Это мера предосторожности: если "метасимвол *" выбирал бы имена файлов, начинающиеся на ".", она бы также выбрала имена "." (ссылка на текущий каталог) и ".." (ссылка на родительский каталог). Но это может быть опасно при выполнении ряда команд.

  • ? - Любой одиночный символ (позволяет подставить строго один символ).

  • [набор] - Любой одиночный символ из заданного набора, который, как правило, является последовательностью символов, например [aeiouAEiou] для всех гласных букв, либо диапазоном с дефисом, например, [А-Z] для всех заглавных букв

  • [^набор] - Любой одиночный символ, не заданный в наборе

  • [!набор] - Любой одиночный символ, не заданный в наборе

Если вы хотите включить в набор символ минуса, то поместите его первым или последним. Чтобы включить в набор закрывающую квадратную скобку, поместите ее первой. Чтобы включить в набор символы ^ или !, не помещайте их на первое место.

2.3.Переменные командного интерпретатора

Как любой язык программирования, командный язык bash поддерживает переменные. Тип их — строковый. Оператор присваивания выглядит так:

$имя_переменной=значение

Имя должно начинаться с буквы и может состоять из латинских букв, цифр, знака подчеркивания. Если значение переменной содержит специальные символы, в имени файла, то при указании его имени в команде этот символ нужно экранировать знаком «\» (обратный слэш) или заключать все имя в двойные кавычки.

Вот ряд символов, которые имеют специальное значение для командного интерпретатора, и их использование не рекомендуется:

~ ! @ # $ & % * ( ) [ ] { } ' " \ : ; > < пробел

Операция подстановки значения переменной обозначается символом $ (не путайте с приглашением bash). Вывести значение переменной можно командой echo:

$ cwd=/home/den/MyDownloads/packages

$ echo cwd # выводит имя переменной cwd

$ echo $cwd # выводит значение переменной /home/den/MyDownloads/packages

Установленные таким образом переменные доступны только встроенным командам bash. Чтобы они стали доступны дочерним процессам (программам и командным сценариям, запускаемым из-под bash), их нужно поместить в окружение bash. Делается это командой export.

Например:

$ export HELLO="Hello from environment! " # пробел нужно экранировать кавычками

Переменные окружения

Окружение (environment)- это набор переменных, значения которых может менять поведение оболочки.

Когда оболочка начинает работу, она устанавливает для себя несколько переменных окружения. Имена их стандартны. Программы и сценарии могут запросить их значения вместо того, чтобы пытаться выяснить нужную им информацию самостоятельно.

Таким образом, командный интерпретатор определяет переменные окружения, которые используются в текущем сеансе. Каждая новая введенная команда фактически запускается как дочерний процесс родительского процесса, в качестве которого, в данном случае выступает командный интерпретатор bash. Переменные окружения отличаются от обычных переменных тем, что они доступны как для родительских, так и для дочерних процессов. Автоматическое определение переменных окружение происходит после аутентификации пользователя в системе. Программа login, в случае успешного завершения процесса аутентификации, на основе файла /etc/passwd определяет какой командный интерпретатор будет использоваться в сеансе данного пользователя. После определения командного интерпретатора происходит настройка сеанса согласно конфигурационным файлам, представленным ниже.

Конфигурационный файл Описание
/etc/profile

Определяет переменные окружения для всех пользователей системы. Данный файл выполняется при первом входе в систему и содержит основные переменные окружения, такие как, переменная поиска расположения команд PATH, переменная имени хоста HOSTNAME, переменная, определяющая размер истории команд HISTSIZE. Кроме того данный файл генерирует дополнительные переменные окружения из конфигурационных файлов, находящихся в каталоге /etc/profile.d .

/etc/bashrc

Выполняется для всех пользователей, при каждом запуске командного интерпретатора bash. В данном файле определяется значение переменной PS1, а также дополнительные псевдопимы команд (alias). Псевдонимом называется сокращенное произвольно заданное название команды или последовательности команд, позволяющее выполнять сложные последовательности команд, не вводя их с клавиатуры, а вызывая их через обращение к соответствующему псевдониму. Переменные, определенные в данном файле могут«быть переназначены аналогичным пользовательским файлом -/.bashrc, который имеет более высокий приоритет.

-/.bashprofile

Используется как файл, содержащий индивидуальные настройки пользователя. Выполняется только один раз при входе пользователя в систему. Кроме того, данный файл осуществляет запуск файла -/.bashrc

~/.bashrc

Данный файл содержит переменные окружения и псевдонимы установленные пользователем. Он выполняется каждый раз при входе пользователя в систему или при открытии нового сеанса bash. Данный файл лучше всего подходит для определения пользовательских переменных и псевдонимов.

~/.bash_logout

Данный файл выполняется каждый раз при выходе из системы или завершении последнего сеанса интерпретатора bash. По умолчанию в данном файле содержится команда очистки экрана терминала.

/etc/inputrc

Данный файл содержит описание интерпретации различных сочетаний клавиш, а также содержит специальные комбинации клавиш, нажатие которых вызывает выполнение заданных команд.

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

export AB=/usr/dog/contagious/ringbearer/grind

В данном примере временной переменной окружения AB присваивается путь к каталогу, расположенному достаточно "глубоко" в иерархии каталогов файловой системы. Команда export указывает на необходимость экспорта значения переменной АВ в оболочку, для того чтобы сделать его доступным для других оболочек, которые могут быть открыты в пределах текущего сеанса работы с системой. Теперь к указанному выше каталогу можно добраться посредством выполнения команды cd $AB

Единственным недостатком временных переменных окружения является то, что они автоматически уничтожаются при завершении текущего сеанса работы с системой. Для того чтобы создать постоянную (в отличие от временной) переменную окружения, ее необходимо внести в файл настройки командной оболочки .bashrc.

Для изменения конфигурационных файлов /etc/profile и /etc/bashrc необходимо быть суперпользователем root.

Обычные пользователи могут изменять конфигурационные файлы ~/.bash_profile, ~/.bashrc и ~/.bash_Iogout, находящихся в их домашних каталогах. В эти конфигурационные файлы можно включить установку своих переменных в окружение с помощью команды export и использовать их в любом сеансе.

Одной из наиболее часто изменяемых переменных окружения является переменная PATH. Можно также переопределить или дополнить переменную окружения PATH в конфигурационном файле ~/.bashrc.

PATH=$PATH:~

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

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

Наиболее распространенные переменные окружения командной оболочки:

  • BASH - Содержит полный путь к команде bash (как правило, значение этой переменной равно /bin/bash).
  • BASH_VERSION - Номер версии bash.
  • DIRSTACK- Массив, содержащий текущее значение стека каталога.
  • EDITOR - текстовый редактор по умолчанию.
  • EUID - Числовой эффективный идентификатор текущего пользователя.
  • FUNCNAME - имя текущей функции в скрипте.
  • GROUPS - Массив, содержащий список групп, к которым принадлежит текущий пользователь.
  • HISTFILE - Местоположение файла истории команд. Как правило, история команд хранится в файле ~/.bash_history.
  • HISTFILESIZE - Число командных строк, которые могут храниться в файле истории. После достижения этого числа новые командные строки заносятся в историю за счет удаления наиболее ранних командных строк. По умолчанию размер списка недавно использовавшихся команд равен 1000 строк.
  • HOME - Домашний каталог пользователя.
  • HOSTNAME - Имя данного компьютера (узла).
  • HOSTTYPE - Тип компьютера.
  • LANG - Текущий используемый по умолчанию язык.
  • LC_CTYPE - внутренняя переменная, котороя определяет кодировку символов.
  • MAIL - Местоположения файла ящика электронной почты пользователя. Как правило, это файл, расположенный в каталоге /var/spool/mail, имя которого совпадает с регистрационным именем пользователя.
  • MAILCHECK - Интервал в минутах между проверками почты.
  • OLDPWD - Каталог, который являлся текущим до момента последнего изменения каталога.
  • OSTYPE - Текущая операционная система.
  • PATH - Разделенный символами двоеточия список каталогов, в которых производится поиск исполняемых файлов. Крайне важен порядок ледования имен каталогов. При выполнении команд перечисленные в этой переменной каталоги проверяются последовательно слева направо. Т.о., при выполнении команды foo, расположенной в каталогах /bin и /usr/bin, будет выполнена команда, расположенная в каталоге /bin. Для того чтобы в аналогичной ситуации была выполнена команда foo, расположенная в каталоге /usr/bin, следует либо указать полный путь к этой команде, либо изменить порядок следования имен каталогов в переменной окружения PATH. Текущий каталог поиска должен быть задан явно ('.'), оболочка не производит поиск в текущем каталоге по умолчанию. Поиск запускаемых программ в текущем каталоге таит потенциальную опасность вследствие возможности непреднамеренного выполнения опасной программы, поэтому переменная PATH обычно инициализируется без '.' Для того, чтобы добавить к переменной PATH путь к своим собственным командам или сценариям оболочки, их следует разместить в подкаталоге /bin домашнего каталога, который будет автоматически занесен в переменную PATH. Не все исполняемые команды расположены в каталогах, перечисленных в переменной окружения PATH. Некоторые команды встроены непосредственно в оболочку. Другие команды могут быть переопределены с помощью псевдонимов, позволяющих заменить команды с параметрами практически любой сложности (с точки зрения синтаксиса) одним простым именем. Помимо этого, существует возможность создания функций, хранящих в себе целую последовательность команд.
  • PPID - Идентификационный номер процесса, соответствующего команде, в результате выполнения которой была запущена текущая оболочка(например, процесс, породивший оболочку).
  • PS1, PS2, PS3, PS4 - Переменные, определяющие вид приглашения оболочки.

    Переменные PS1 и PS2 устанавливают первичное и вторичное приглашение командного интерпретатора.

    Первичное приглашение (PS1) указывает на готовность интерпретатора к вводу команд. Значение этой переменной имеет вид "$" для обычных пользователей и "#" для суперпользователя. Вообще говоря, приглашение командной строки может содержать в себе достаточно большое количество разнообразных элементов (дату, время, регистрационное имя пользователя, сетевое имя компьютера и т.д.). Вид приглашения легко изменить, соответствующим образом задав значение переменной PS1.

    В данной переменной содержится строка вида [\u@\h \W]\$, в которой каждому символу соответствует определенное значение. Допустимые символы, используемые для формирования первичного приглашения, приведены здесь.

    Вторичное приглашение (PS2) появляется, если вы нажали клавишу Enter, синтаксически не закончив ввод команды.

    Данная переменная содержит второстепенное приглашение, которое возникает при многострочном редактировании текста или незавершенном вводе команды. По умолчанию оно обозначается как >.

    PS3. Данная переменная содержит приглашение, присутствующее в операторе select, используемой для организации интерактивных консольных меню. По умолчанию приглашению PS3 в операторе select соответствует значение #?.

    PS4. Данная переменная используется в основном при отладке сценариев командного интерпретатора и по умолчанию содержит строковое значение «++».

    Например, запуск команды получения информации DNS:

    [root@rhel5 ~]# nslookup >

  • PWD - Текущий рабочий каталог пользователя. Это значение изменяется каждый раз при переходе в другой каталог с помощью команды cd.
  • SECONDS - время работы скрипта(в сек.).
  • SHELL - Текущий интерпретатор команд.
  • SHELLOPTS - Список включенных параметров интерпретатора.
  • SHLVL - Число запусков новых копий интерпретатора команд.
  • UID - Числовой идентификатор текущего пользователя.
  • USER - Имя текущего пользователя.
  • $# - Общее количество параметров переданных скрипту.
  • $* - Все аргументы переданыне скрипту(выводятся в строку).
  • $@ - Тоже самое, что и предыдущий, но параметры выводятся в столбик.
  • $! - PID последнего запущенного в фоне процесса.
  • $$ - PID самого скрипта.

Чтобы просмотреть значения всех переменных текущего сеанса, как определенных вами, так и переменных окружения, введите команду set без параметров или env< или printenv.

Удалить переменную можно командой unset.

2.4. Подстановки и организация взаимодействия между командами

Подстановка значений переменных окружения текущего сеанса работы с системой может быть осуществлена с помощью использования метасимвола знака доллара ($). В результате оболочка автоматически заменяет имя переменной на ее значение. Например,

ls -l $BASH

Подстановка результата вычисления арифметического выражения

Существуют две синтаксические формы подстановки результата вычисления арифметического выражения: $[выражение] и $((выражение)). Например,

echo "I am $[2000-1957] years old."

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

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

ls $(pwd)

ls `pwd`

Раскрытие символа тильды

Символ тильды (~) позволяет быстро вводить названия каталогов.

~ Имя домашнего каталога пользователя ~/подкаталог Имя одного из подкаталогов в домашнем каталоге пользователя ~+ Имя текущего каталога ~- Имя предыдущего каталога

Раскрытие фигурных скобок

С помощью фигурных скобок можно вместо нескольких однотипных команд ввести одну. В скобках должен содержаться список, элементы которого должны быть разделены запятыми. Интерпретатор считывает элементы по одному и с каждым из них формирует отдельную команду, которую затем выполняет. Например, команда

mkdir expenses/{Jan,Feb,Mar} эквивалентна mkdir expenses/Jan mkdir expenses/Feb mkdir expenses/Mar

Каналы

Метасимвол канала (|) указывает на необходимость организации взаимодействия между командами путем использования в качестве входных данных (ввода) команды результата выполнения (вывода) другой команды. Другими словами, с помощью канала (конвейера) результаты первой команды могут быть переданы как входные данные второй команде. Например,

cat /etc/passwd | sort | head -3

Последовательности и группы команд

Использование последовательностей и групп команд позволяют ввести несколько команд на одной строке.

команда1;команда2 Выполнить сначала команду 1, затем команду 2 (команда1;команда2) Запустить отдельную копию интерпретатора, в которой выполнить последовательно команды 1 и 2 { команда1;команда2 } Выполнить команды 1 и 2 последовательно в текущем интерпретаторе команда1 && команда2 Выполнить команду 2 только в случае успешного выполнения команды 1 команда1 || команда2 Выполнить команду 2 только в случае неуспешного выполнения команды 1

Результатом выполнения любой команды (т.е. результатом завершения соответствующего процесса) является код завершения. Успешное завершение имеет код 0, неуспешное 1. Значение кода завершения присваивается предопределенной переменной ? (знак вопроса). Например, echo $?

Повторное выполнение команд

Оболочка располагает средствами, позволяющими вызывать предыдущие команды и редактировать их. История (history) команд оболочки представляет собой список использовавшихся ранее команд. Этот список можно просмотреть с помощью команды history.

После ввода командной строки оболочка помещает ее в историю команд. Список ранее использовавшихся команд хранится в файле, который позволяет в любое время вызвать из него любую нужную командную строку для повторного выполнения. После повторного вызова командной строки она может быть отредактирована. История команд хранится в файле .bash_history, который находится в домашнем каталоге пользователя. По умолчанию командная оболочка способна "запомнить" до 1000 командных строк.

Для того чтобы посмотреть список ранее использовавшихся команд, выполните команду history. Она может употребляться либо без параметров, либо с параметром, позволюящим указать число отображаемых команд. Каждая командная строка имеет свой номер в истории команд.

Синтаксис раскрытия истории: !n Выполнить команду с заданным номером !! Выполнить предыдущую команду !строка Выполнить самую последнюю из команд, начинающихся с заданной строки !?строка? Выполнить самую последнюю из команд, содержащих заданную строку

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

 

 

3. Встроенные команды bash

Список встроенных команд оболочки bash можно получить по команде help или найти на man-странице в секции SHELL BUILTIN COMMANDS.

Вот несколько полезных встроенных команд:

  • echo [аргументы] — Вывод аргументов на экран.
  • enable — Заставляет оболочку вместо встроенной команды выполнить исполняемый файл с таким же именем. Полезно, если у вас есть собственный сценарий по имени, например, echo.
  • eval [аргументы] — Конструирование команды на лету, из указанных аргументов, и отправка ее на выполнение.
  • let — Вычисление выражений.
  • source — Прочитать и выполнить команды, содержащиеся в файле. Применяется для определения пользовательских переменных. и функций.
  • basename - Выделение локального имени.
  • expr - Вычисление выражения.
  • read - Ввод значения переменной.
  • shift - Сдвиг списка параметров.
  • test - Проверка условия.
Другие встроенные команды служат инструкциями командного языка bash.

Просмотров: 25266

Вернуться в оглавление:ОС Linux




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.