Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Работа в командной оболочке Bash

Введение

Роберт Бруннер , ученый-исследователь NCSA, старший преподаватель астрономии, Университет штата Иллинойс, г. Урбана-Шампейн
Роберт Дж. Бруннер (Robert J. Brunner) занимается научными исследованиями в Национальном центре по приложениям для суперкомпьютеров и является старшим преподавателем астрономии в университете штата Иллинойс, город Урбана-Шампейн. Автор нескольких книг и множества статей и практических руководств на различные темы.

Описание:  В этой статье содержится введение в командную оболочку Bash, использующуюся практически на любой UNIX®-подобной операционной системе. Bash - это зрелая, мощная, простая и бесплатная командная оболочка. В этом руководстве кратко представлена история возникновения командных оболочек, объясняющая некоторые отличия Bash от других командных оболочек UNIX, а также дается обзор основных возможностей Bash. Представлена информация о файловой системе UNIX, основы работы с каталогами и файлами, а также несколько способов настройки поведения и внешнего вида Bash. Наконец, в руководстве рассматривается базовая функциональность Bash по управлению заданиями.

Дата:  26.06.2008
Уровень сложности:  средний

Активность:  24838 просмотров
Комментарии:  

Работа с файлами и каталогами в Bash

Большая часть работы, производимая в Bash, связана с файловой системой UNIX. Каждый, кто когда-либо использовал менеджер файлов, наверняка представляет себе файловую систему как дерево. То же самое верно и для командной строки. Все файлы и каталоги берут свое начало из каталога /, являющегося корневым узлом всей файловой системы. В таблице 2 приводится список стандартных каталогов, которые имеются в большинстве UNIX-систем.


Таблица 2. Стандартные каталоги UNIX-систем
КаталогРасписание
/Корневой каталог для всех UNIX-систем; содержит все остальные файлы.
/binСодержит бинарные версии файлов системных приложений, таких как файл самой командной оболочки Bash.
/devКаталог содержит псевдофайлы, представляющие физические устройства, такие как жесткие диски.
/etcВ этом каталоге хранится большая часть конфигурационных файлов системы.
/libКаталог содержит файлы библиотек, необходимых для системных приложений.
/optКаталог содержит необязательные компоненты системы или приложения.
/tmpКаталог содержит временные файлы, используемые системой или пользовательскими приложениями.
/usrСодержит пользовательские и некритичные для работы системы приложения и связанные компоненты.
/varКаталог содержит различные файлы, необходимые для системных приложений, такие как файлы журналов и файлы буферов.

Работа с каталогами в Bash

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

  • cd cизменяет текущий рабочий каталог на домашний каталог пользователя.
  • cd dirname изменяет текущий рабочий каталог на каталог dirname.
  • ls dirname выводит список содержимого каталога dirname.
  • mkdir dirname создает новый каталог с именем dirname.
  • pwd выводит полный путь к текущему рабочему каталогу.
  • rmdir dirname удаляет каталог с именем dirname.

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

Есть также несколько полезных сокращений для имен каталогов:

  • Одиночная точка (.) обозначает текущий рабочий каталог.
  • Две точки (..) обозначают родительский каталог текущего рабочего.
  • Тильда (~) обозначает домашний каталог пользователя (обычно это каталог, который является текущим рабочим при запуске Bash).

В листинге 3 показано, насколько просто использовать эти команды.


Листинг 3. Работа с каталогами в Bash
                    
rb$ pwd
/home/rb
rb$ mkdir temp
rb$ cd temp
rb$ ls 
rb$ cd ..
rb$ pwd
/home/rb
rb$ rmdir temp
rb$ ls ..
lost+found    rb          root
rb$ ls /
bin   etc     lib         misc  proc  usr
boot  home    lost+found  mnt   tmp   var
dev   initrd  opt         sbin  sys

Команды, выполняемые в предыдущем листинге, достаточно просты. Первая из них выводит на экран путь к текущему рабочему каталогу. Следующими командами создается новый каталог с именем temp, рабочий каталог изменяется на созданный, выводится содержимое этого каталога (на экран не выводится ничего, поскольку каталог пуст). Затем рабочий каталог изменяется на родительский, проверяется, что он совпадает с тем, с которого была начата работа, и только что созданный каталог удаляется. Наконец, выводится содержимое родительского для домашнего каталога пользователя (то есть каталога /home) и содержимое корневого каталога файловой системы.


Работа с файлами в Bash

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

  • cp file1 file2 копирует file1 в file2.
  • mv file1 file2 переименовывает file1 в file2.
  • mv filename dirname перемещает файл filename в каталог dirname .
  • less filename отображает содержимое файла в формате, удобном для чтения в окне терминала.
  • file filename указывает наиболее вероятный тип файла
  • cat filename выводит все содержимое файла.
  • head filename отображает первые десять строк файла (точное число отображаемых строк можно задавать).
  • tail filename отображает последние десять строк файла (точное число отображаемых строк можно задавать).
  • diff file1 file2 отображает различия, если они существуют, между файлами file1 и file2.
  • grep string filename ищет в файле строки, содержащие string.
  • rm filename удаляет файл.

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


Листинг 4. Работа с файлами в Bash
                      
rb$ $ cp .bashrc old.bashrc
rb$ diff old.bashrc .bashrc    
rb$ cat ~/.bash_profile 
source ~/.bashrc
rb$ cat ~/.bashrc 
export PS1='\u\$ '
export DERBY_INSTALL='/opt/Apache/db-derby-10.1.2.1-bin'
export CLASSPATH=$DERBY_INSTALL/lib/derby.jar:$DERBY_INSTALL/lib/derbytools.jar:.
rb$ head -4 /usr/share/dict/web2
A
a
aa
aal
rb$ tail -4 /usr/share/dict/web2
Zythia
zythum
Zyzomys
Zyzzogeton
rb$ grep exuberance /usr/share/dict/web2 
exuberance
rb$ file bash-tutorial.zip 
bash-tutorial.zip: Zip archive data, at least v2.0 to extract
rb$ file bash-tutorial.xml 
bash-tutorial.xml: XML document text

Команды работы с файлами, представленные в листинге, просты и сопровождаются примерами копирования файлов, просмотра содержимого, поиска вхождения определенных строк и распознавания типа для различных файлов. Прежде всего с помощью команды копирования мы создаем дубликат файла .bashrc, который будет обсуждаться позже. Этот файл позволяет настраивать поведение и внешний вид командной оболочки Bash. Можно воспользоваться командой diff, чтобы убедиться, что эти файлы действительно одинаковы - а поскольку это так, никаких различий выведено не будет. Затем с помощью команды cat мы отображаем содержимое файлов .bash_profile и .bashrc. Содержимое этих двух файлов будет обсуждаться детально в следующем разделе.

В следующих двух примерах листинга с помощью команд head и tail выводятся первые и последние строки файла соответственно. Указанный в этих примерах флаг -4 задает вывод на экран только четырех строк вместо принятых по умолчанию десяти. Далее с помощью команды grep мы находим вхождения строки exuberance в словаре, установленном на компьютере. Наконец, в последних двух примерах с помощью команды file отображаются типы двух различных файлов.

4 из 9 | предыдущая | следующая

Комментарии



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=316702
TutorialTitle=Работа в командной оболочке Bash
publish-date=06262008
author1-email=rb@ncsa.uiuc.edu
author1-email-cc=

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).