Команды манипулирования файлами

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

touch

Команда touch используется для нескольких целей, в зависимости от того, существует ли уже файл. Если файл не существует, то команда touch создаст его (при условии, что вы имеете право на запись в каталог). Если файл уже есть, то команда touch модифицирует время последнего изменения файла.

Примеры

Для создания файла под названием testfile в текущем каталоге выполните следующую команду:

touch testfile

Для создания testfile в каталоге /u/testuser/testdir, выполните следующую команду:

touch /u/testuser/testdir/testfile

chmod

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

р Владелец. Пользователь, Который создал файл

р Группа. Группа, к Которой принадлежит владелец

р Мир, или остальные. Пользователи, не являющиеся владельцами и не принадлежащие к той группе, к Которой принадлежит владелец

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

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

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

(4 * значение бита чтения) + (2 * значение бита записи) + (1 * значение бита выполнения)

Значение права доступа может варьироваться от 0 (нельзя читать, нельзя писать, нельзя выполнять) до 7(можно читать, писать и выполнять).

Например, если вы хотите обеспечить чтение и запись, но не допустить выполнения, то значение будет каким:

(4 * 1) + (2 * 1) + (1 * 0) = б

Следует знать, что право на выполнение для каталога означает, что каталог доступен. То есть, можно хднять операции над файлами, размещенными в данном каталоге. Если вы даете право на запись в юге, то пользователь сможет читать, писать, удалять и выполнять файлы в данном каталоге, независимо от прав доступа для отдельных файлов.

С помощью команды chmod указываются новые права доступа, Которые вы хотите присвоить файлу или My. Новые права доступа можно указать одним из двух способов:

Примеры

Если вы хотите, чтобы testfile имел следующие права доступа: владелец - на чтение, запись и выполнение, группа - только на чтение и остальные - только на выполнение, выполните следующую команду:

chmod 741 testfile

При работе в символьном режиме необходимо указать следующее:

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

chmod 660 testfile

Если вы хотите добавить права на запись для группы для файла testfile в текущем каталоге (предполагая, что текущий код прав доступа для testfile равен 741), выполните следующую команду:

chmod g+w testfile

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

chmod o-r testfile

Если вы хотите гарантировать миру (остальным) такие же права доступа для testfile в текущем каталоге, что и для группы, выполните следующую команду:

chmod o=g testfile

ПРИМЕЧАНИЕ

Модификация прав доступа не оказывает никакого влияния на привилегированного пользователя (root). Привилегированный пользователь имеет доступ ко всем файлам и каталогам, независимо от данных вами прав доступа.

chgrp

Если вы хотите изменить группу, Которой принадлежит файл, то используйте команду chgrp. Группа должна быть одной из групп, к Которой принадлежит владелец. То есть, группа должна быть либо первичной группой, либо одной из вторичных групп владельца.

Примеры

Предположим, что пользователь testuser владеет файлом testfile и группа файла - staff. Также предположим, что testuser принадлежит к группам staff и devt. Для изменения владельца testfile с staff на devt выполните следующую команду:

chgrp devt testfile

chown

Если хотите поменять владельца файла или каталога, используйте команду chown.

ПРЕДОСТЕРЕЖЕНИЕ

В системах UNIX с дисковыми квотами менять владельца файла или каталога может только привилегированный пользователь.

Примеры

Если файлом testfile владеет пользователь testuser, то передача права владения файлом пользователю friend требует выполнения команды

chown friend testfile

rm

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

Ниже следует список нескольких флагов, Которые можно использовать с командой пп:

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

Примеры

Если вы хотите удалить из текущего каталога все файлы, имя Которых начинается с test, выполните следующую команду:

rm test* Однако, если вы ошибетесь при печати и введете следующее:

rm test * то из-за наличия шаблона, указывающего на все файлы, - * (звездочки), вы удалите все файлы.

ПРЕДОСТЕРЕЖЕНИЕ

Используя с командой rm символы шаблонов, будьте внимательны. Прежде чем удалить файл, убедитесь, что все правильно, так как удаленный файл нельзя восстановить.

 

Во избежание подобных ошибок используйте флаг -i, указывающий на необходимость запуска команды пп в интерактивном режиме. В данном режиме система будет спрашивать подтверждения, прежде чем удалять файл. Система удалит файл только после подтверждения вводом "у" Ниже приведен диалог, Который может состояться с системой, если вы хотите удалить из текущего каталога два файла testfilel и testfile2, используя флаг -i с командой rm.

rm -i testfile*

Remove file testfilel? у

Remove file testfile2? у

Флаг -f используется с командой пп для подавления каких бы то ни было сообщений от команды. Обычно, если ошибиться в наименовании, команда rm отображает сообщения о том, что файла нет. Однако флаг -f заставляет пп не отображать сообщений Если выполнить следующую команду

rm -f testfile

то файл testfile будет удален, если он есть, и не будет сделано ничего, если файла нет В любом случае команда пп не выдаст никаких сообщений Кроме того, команда пп -f всегда возвращает нулевой код возврата. Флаг -г используется для удаления файлов из каталога рекурсивно, включая каталоги и подкаталоги Если в текущем каталоге есть подкаталог с названием testdir и тот, в свою очередь, включает файлы testfilel и testfile2, то выполнение следующей команды удалит как файлы testfilel и testfile2, так и каталог testdir

rm -r testdir

Советую создать для команды пп псевдоним в вашей среде - пп -i, чтобы обязательно подтверждать удаление файлов.

Команда пп обрабатывает жесткие ссылки на файлы по-иному Если в текущем каталоге есть testfilel, то для создания файла под названием testfile2, Который является жесткой ссылкой на testfilel, выполните следующую команду:

ln testfilel testfile2

Команда создаст два идентичных файла testfilel и testfile2. Если вы теперь выполните следующую команду. ls -l testfile* то получите результат:

-rw-r-r- 2 testuser staff 10 Nov 3 14:28 testfilel

-rw-r-r- 2 testuser staff 10 Nov 3 14:28 testfile2

Здесь и testfilel, и testfile2 указывают на количество ссылок, равное 2, поскольку они связаны жесткой ссылкой. Теперь, если вы удалите файл testfilel командой rm

rm testfilel

то выполнятся два действия - удаление файла testfilel и уменьшение счетчика связей

testfile2 с 2 на 1. При повторном выполнении команды ls будет отображено:

-rw-r-r- I testuser staff 10 Nov 3 15:38 testfile2

где число ссьшок testfile2 равно 1.

mv

Если вы не удовлетворены именем файла, можете назвать его по-иному. Команда mv предоставляет такую возможность. Кроме того, она позволяет перемещать файлы из одного каталога в другой, сохраняя исходное имя, что эквивалентно копированию файлов из исходного каталога в каталог места назначения и последующего удаления исходного файла. Команда mv часто применяется при реорганизации файлов. При перемещении файлов или каталогов результирующий файл или каталог получает права доступа исходного файла или каталога, независимо от того, существовал ли раньше этот файл или каталог.

Ниже следует список флагов, Которые можно использовать с командой mv:

- -1 для интерактивного перемещения или переименования файлов.

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

Команда mv принимает два аргумента. Первый аргумент - это имя исходного файла или каталога. Второй аргумент -- это результирующий файл или каталог. Однако поведение команды mv зависит от того, существует ли результирующий каталог или файл.

Если файлы перемещаются внутри одной и той же файловой системы, то все ссылки на другие файлы сохраняются. Но если вы перемещаете файлы между файловыми системами, то ссылки не сохраняются.

Примеры

Для переименования файла в текущем каталоге воспользуйтесь следующей командой:

mv source_file dest_file

Если файл dest_file не существует, то при копировании будет создан новый файл dest_file. Если dest_file существует и вы имеете право на запись в него, то source_file копируется в dest_file и затем удаляется. С другой стороны, если у вас нет права на запись, то mv не делает ничего.

Для перемещения source_file из текущего каталога в каталог /u/testuser/target_dir с сохранением имени выполните следующие команды:

mv source_file /u/testuser/target_dir mv source_file /u/testuser/target_dir/.

Если файл уже существует в /u/testuser/target_dir, то существующий файл переписывается. Для перемещения source_file из текущего каталога в каталог /u/testuser/target_dir с именем target_file

выполните следующую команду:

mv source_file target_dir/target_file

Если вы не уверены в том, существует ли файл target_file, то задействуйте флаг -i:

mv -i source_file target_dir/target_file

Если файл targct_file существует, то система запросит подтверждение на перемещение файла. Точка (.) как имя результирующего файла указывает, что исходный файл должен сохраниться. Такое соглашение особенно полезно, если вы хотите переместить в другой каталог несколько файлов. Если необходимо переместить все файлы с именами, начинающимися на test, в каталог /u/testuser/target_dir, выполните следующую команду:

mv test* /u/testuser/target_dir/.

Для переименования каталога sourcc_dir в /u/testuser/target_dir выполните команду:

mv /u/guhas/source_dir /u/testuser/dest_dir

Если каталог dest_dir не существует, то каталог /u/testuser/source_dir переименовывается в /u/testuser/ dest_dir. Если /u/testuser/dest_dir существует и у вас есть разрешение на запись в него, то все файлы и подкаталоги из /u/testuser/source_dir перемещаются в /us/testuser/dest_dir.

ср

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

Ниже следует перечень флагов, использующихся в команде ср:

р -р для сохранения даты и времени модификации, а также кода прав доступа исходного файла.

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

р -h для следования символическим ссылкам.

р -r для копирования файлов из указанных каталогов и их подкаталогов. Специальные файлы, такие как связанные, обрабатываются точно так же, как и регулярные.

Примеры

Вы можете выполнить следующую команду для копирования source_ffle в target__ffle из текущего каталога:

ср source_file target_file

Если вы хотите скопировать source_file в каталог /u/testuser/target_dir с сохранением имени файла, то выполните следующую команду:

ср source_file /u/testuser/target_dir/.

Для копирования всех файлов из каталога /u/testuser/source_dir в каталог /u/testuser/target_dir с сохранением имен файлов, времени последней модификации и прав доступа, выполните следующую команду:

ср -р /u/testuser/source_dir/* /u/teatuser/target/dir/.

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

ср -r /u/testuser/source_dir /u/testuser/target/dir/.

Если вам кажется, что результирующий файл может уже существовать, используйте флаг -i. Ниже приведен диалог для копирования testfile из текущего каталога в каталог /u/testuser/testdir при условии, что testfile уже существует:

ср -i testfile /u/testuser/testdir/. overwrite /u/testuser/testdir/testfile? у

cat

Вы уже видели, что команда ср предоставляет возможность копировать один файл в другой. Однако команда не позволяет копировать в один и тот же файл множество файлов. Для конкатенации множества файлов в один существует команда cat. По умолчанию команда cat генерирует вывод в стандартный вывод и принимает ввод из стандартного ввода. Команда cat принимает в качестве аргументов одно или несколько имен файлов. Файлы конкатенируются в том порядке, в каком они указаны в списке аргументов.

Ниже перечислены несколько флагов, Которые можно использовать с командой cat:

р -b для устранения номеров строк из пустых строк при использовании флага -п.

р -е для отображения $ (знака доллара) в конце каждой строки, когда указан флаг -у.

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

р -q для подавления сообщений, если команда cat не может найти один или несколько входных файлов.

р -v для отображения непечатаемых символов в файле как печатаемых.

ПРЕДУПРЕЖДЕНИЕ

Если вы используете оператор перенаправления вывода {>) для перенаправления стандартного вывода из команды cat, то будьте внимательны и не используйте одно из вводных имен как имя файла вывода Если так сделать, то файл, из Которого осуществляется ввод, будет затерт. НеКоторые версии UNIX могут выдавать сообщение об ошибке, если вы каким-либо образом попытаетесь переписать файл.

При приеме ввода из стандартного ввода следует использовать Ctrl-D для указания конца ввода.

Примеры

В самой простой форме вы можете просто напечатать команду cat, что переведет вас в режим ввода. В режиме ввода можно ввести много строк, а затем Ctrl-D для сигнализации о конце ввода. Команда cat отобразит введенные строки:

cat

This is test line 1
This is test line 1
This is test line 2
This is test line 2
Ctrl d

Следует знать, что команда cat не обеспечивает какой-либо подсказки в приведенном выше случае. Если вы хотите отобразить файл под названием testfile в текущем каталоге на своем терминале, то выполните следующую команду:

cat testfile

В результате получится следующий вывод:

This is a test file

This does not contain anything meaningful

This is for demo only

Если файл большой, то следует проявить осторожность. Большие файлы будут быстро прокручиваться на терминале, и вы увидите только несколько последних строк. Этого можно избежать, послав вывод в команды more или pg, как в следующем примере:

cat testfile | more

Для конкатенации множества файлов с последующим отображением на терминале используйте следующую команду:

cat testfilel testfile2 testfile3

Если вы хотите конкатенировать данные файлы в файл под названием testfile, используйте оператор перенаправления > следующим образом:

cat testfilel testfile2 testfile3 > testfile

Если testfile уже существует, то он будет затерт соединенными файлами testfilel, testfile2 и testfile3. Если testfile уже существует и вы хотите присоединить конкатенацию в конец существующего файла, то вместе использования оператора перенаправления > следует использовать оператор р (два последовательных знака больше) следующим образом:

cat testfilel testfile2 testfile2 р testfile

Если вы попытаетесь соединить файл или несколько файлов, из Которых один или несколько файлов не существуют, то команда cat соединит все доступные файлы и сгенерирует сообщение о несуществующих файлах, добавив его в конец файла. Если вы хотите соединить два файла, testfilel и testfile2, в файл testfile в текущем каталоге и ошибочно введете testfile2 как testtile2 при выполнении следующей команды:

cat testfilel testtile2 > testfile

то получите сообщение, похожее на следующее, и в testfile будет содержаться только то, что было в testfilel

cat: cannot open testtile2 (не могу открыть файл testtile2)

Если использовать флаг -q, то сообщения об ошибке не будет.

Если в текущем каталоге у вас есть файл, содержащий следующие строки (обратите внимание на то что последняя строка содержит специальные символы), то команда cat покажет следующее:

This is a test file

This file does not contain anything meaningful

This file is for demo only

^F^F^F^F^F

Если выполнить команду cat с флагом -п, то команда отобразит строки с номерами, но последняя строка со специальными символами отобразится как пустая:

cat -n testfile

1 This is a test file

2

3 This file does not contain anything meaningful

4 This is for demo only

5

Если вы хотите убедиться в том, что отображаемые пустые строки действительно не содержат какихлибо непечатаемых символов, то используйте с командой cat флаг -v< Такая команда обеспечит отображение непечатаемых символов:

cat -v testfile
This is a test file

This file does not contain anything meaningful
This is for demo only

^F^F^F^F^F

rcp

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

Имя файла на удаленном хосте предваряется идентификатором удаленного хоста, как в hostname:/dirname/
filename.
Знак двоеточия (:) используется как разделитель между именем хоста и именем файла.

Возможно также указать имя пользователя на удаленном хосте как username@hostname:/dirname/filename.
Знак at (@) используется как разделитель между именем пользователя и именем хоста. Однако имя пользователя не является обязательным. Если оно не указано, то имя пользователя на удаленном хосте считается таким же, как и на локальном хосте.

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

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

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

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

Ниже приведен перечень нескольких флагов, с Которыми работает команда гср:

ПРИМЕЧАНИЕ

Для того чтобы командой rcp пересылать файлы с или на удаленный хост, вы должны определить имя локального хоста в файле /etc/hosts.equiv на удаленном хосте или определить имя локального хоста и имя пользователя в файле. rhoste в начальном каталоге пользователя удаленном хосте.

Примеры

Если вы хотите скопировать testfile из текущего каталога в testfile в каталоге testdir, Который находится в начальном каталоге на удаленном хосте otherhost, выполните следующую команду:

rср testfile otherhost:testdir/testfile

Если имя пользователя на локальном хосте - testuser, то данная команда будет считать, что имя пользователя на удаленном хосте также testuser. Если имя пользователя testuser на удаленном хосте не существует и вы должны использовать на удаленном хосте имя newtestuser, то выполните следующую команду

rср testfile newtestuser@otherhost:testdir/testfile

Если вы должны переслать testfile из удаленного хоста otherhosti на другой удаленный хост otherhostZ, причем необходимо сохранить существующую дату, время модификации и код прав доступа, выполните следующую команду:

rср -р testuserl@otherhostl:testfile testuser2@otherhost2:testfile

Команда скопирует testfile из начального каталога пользователя testuseri на удаленном хосте otherhostiв testfile в начальном каталоге testuser2 на удаленном хосте othcrhost2.

Если нужно скопировать все файлы в каталоге /u/testuser/testdir с удаленного хоста otherhost в текущий каталог на локальный хост, то выполните следующую команду:

rср testuser@otherhost:/u/testuser/testdir/*

Команда не будет копировать каких-либо подкаталогов, имеющихся в testdir, или каких-либо файлов из таких подкаталогов. Для копирования всех подкаталогов и файлов используйте следующую команду:

rср -r testuser@otherhost:/u/testuser/testdir/* .

ln

Иногда возникает необходимость обеспечить одному и тому же файлу альтернативные имена. Они могут создаваться путем связывания имен файлов командой ln. Можно связать файл с другим именем в том же самом каталоге или с тем же именем в другом каталоге.

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

Если вы осуществляете связывание с использованием жестких ссылок, то связи не могут пересекать файловые системы.

Флаги, которые можно использовать с командой ln, таковы:

По умолчанию команда ln создает жесткую ссылку.

Примеры

Если необходимо связать testfilel с testfile2 в текущем каталоге, выполните следующую команду:

ln testfilel testfile2

Команда создает жесткую ссылку от testfile2 к testfilel. В данном случае, если один из файлов удаляется, то другой останется нетронутым.

Если testfile находится в текущем каталоге и связывается с testfile в каталоге /u/testuser/testdir, выполните команду

ln testfile /u/testuser/testdir

Для создания символической ссылки testfilel в текущем каталоге выполните следующую команду:

ln -s testfilel testfile2

Команда создает ссылку testfile2, Которая будет содержать имя testfilel. Если удалить testfilel, то вы останетесь с осиротевшим testfile2, указывающим в никуда.

Если необходимо связать все файлы текущего каталога с файлами в другом каталоге, /u/testuser/testdir, выполните следующую команду:

ln * /u/testuser/testdir/.

Команды манипулирования каталогами

После того как вы стали пользователем операционной системы UNIX, вам назначается начальный каталог - обычно /u/username. Для организации всех файлов следует в начальном каталоге создать необходимые подкаталоги. Здесь мы представляем команды для создания и уничтожения каталогов.

mkdir

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

Ниже приводится перечень флагов, Которые можно использовать с командой mkdir:

Если текущий каталог - /u/testuser, то команда

mkdir temp

создаст каталог под названием temp в каталоге /u/testuser, с абсолютным маршрутом /u/testuser/temp.

Команда

mkdir /u/testuser/temp

также может использоваться для получения того же самого результата, что и предыдущая.
Команда

mkdir ../temp

может использоваться для создания каталога /u/temp. Здесь .. (две последовательные точки) применяются как часть относительного пути для указания того, что каталог temp будет создан в каталоге на один уровень выше, то есть в /и.

Для создания в текущем каталоге testdirl и testdir2 выполните

mkdir testdirl /u/testuser/temp/testdir2

Которая создаст testdirl в текущем каталоге и testdirl в /u/testuser/temp (если он существует). В данном примере testdirl использует относительный путь, a /u/testuser/temp/testdir2 использует абсолютный путь. Если каталог testdir уже есть или если вы повторно пытаетесь создать каталог, то получите сообщение, похожее на следующее:

mkdir: cannot create testdir.
testdir: File exists

Если вы хотите создать каталог testdir в текущем каталоге и задать для него код доступа 770, выполните следующую команду:

mkdir -т 770 testdir

Если необходимо создать каталог testdir в текущем каталоге и подкаталог temp в testdir, создайте каждый из них отдельной командой:

mkdir -р testdir/temp

rmdir

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

Далее описан флаг, Который работает с командой rmdir:

р -р для удаления всех каталогов в указанном пути.
Примеры

Если текущим каталогом является /u/testuser и он содержит подкаталог temp, то для удаления temp выполните команду

rmdir temp

Если каталог temp не пуст, то будет выдано сообщение, подобное следующему:

rmdir: Directory temp is not empty.

Предположим, что вы находитесь в каталоге /u/testuser и что каталог содержит подкаталог testdir, a подкаталог testdir содержит подкаталог temp. Для удаления каталога testdir в текущем каталоге и подкаталога temp из testdir, выполните следующую команду (предполагая, что все файлы и каталоги из testdir уже удалены):

rmdir -р testdir/temp

Команды для получения информации о файлах

Каждый файл и каталог в UNIX обладает несколькими связанными атрибутами. UNIX предлагает ряд команд для определения и обработки этих атрибутов.

ls

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

Команде ls можно передать одно или несколько имен файлов или каталогов. Имена файлов и каталогов не обязательны. Если они не заданы, то UNIX обрабатывает текущий каталог.

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

Следует помнить, что файлы, начинающиеся с точки (.), командой ls не обрабатываются, если не задан флаг -а. Сказанное означает, что по умолчанию записи с . (одинарной точкой) и .. (двумя последовательными точками) не обрабатываются.

Ниже приведен список флагов, Которые можно использовать с командой ls:

1. Права доступа, связанные с файлами или каталогами

2. Число жестких ссылок

3. Владелец

4. Группа

5. Размер (в байтах)

6. Время последней модификации

7. Название каждого файла. Для специальных файлов поле размера содержит наименьший и наи больший (major and minor) номера устройства. Если файл является символической ссылкой, то путь ссылки печатается с предварительным -> (знак минус и знак больше). Отображаются и атрибуты символической ссылки

1. / (слэш) после каждого каталога

2. * (звездочка) если файл исполняемый

3. == (знак равенства) если файл является сокетом

4. | (знак канала) если файл является каналом (FIFO)

5. @ (знак at) для символической связи

-g отображает о файлах и каталогах следующую информацию:

1. Права доступа

2. Количество ссылок

3. Группа

4. Размер (в байтах)

5. Время последней модификации

1. Права доступа

2. Количество ссылок

3. Владелец

4. Группа

5. Размер (в байтах)

6. Время последней модификации

1. Права доступа

2. Количество ссылок

3. Идентификатор владельца

4. Идентификатор группы

5. Размер (в байтах)

6. Время последней модификации

- -о для отображения следующей информации об указанных файлах и каталогах:

1. Права доступа

2. Количество ссылок

3. Идентификатор владельца

4. Размер (в байтах)

6. Время последней модификации

Сведения о правах доступа, Которые отображаются командой Is, при указании неКоторых флагов, таких как -1, состоят из 10 символов, означающих следующее:

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

Примеры

Предположим, что в текущем каталоге есть следующие файлы и каталоги: .doti, testi, test2, test3, test4. Предположим также, что test2 является каталогом.

Простейшая форма команды ls распечатывает список файлов и каталогов в текущем каталоге:

ls
testi test2 test3 test4

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

ls -a
. .. .doti testi test2 test3 test4

В данном списке нет никаких сведений о файлах. Для получения детализированного списка всех файлов и каталогов выполните команду с флагом -а:

ls -la
total 56

drwxrwx-- 3 testuser author 3072 Nov 24 17 35 .
drwxr-xr-x 36 root system 2048 Nov 23 19 51 ..

рrw-r-r- I testuser author 0 Nov 24 14 54 .doti
"rw-r-r- I testuser author 10 Nov 24 17 36 testi
drwxr-xr-x 2 testuser author 512 Nov 24 17 32 test2

рrw-r--r~ I testuser author 0 Nov 24 14 58 test3

рrw-r--r" I testuser author 0 Nov 24 17 33 test4
"rw-r-r- I testuser author 11885 Nov 24 11 50 test5

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

ls -ald
drwxrwx- 3 testuser author 3072 Nov 24 17:15

Как видно из приведенных примеров, список файлов и каталогов упорядочен по имени. Если вы хотите получить список всех записей, упорядоченный по времени последней модификации, чтобы знать, над чем вы работали в последний раз, выполните команду с флагом -t:

До сих пор в команде ls мы не указывали каких-либо имен файлов или каталогов. Если вы хотите найти все записи, Которые начинаются на test, укажите test* как имя входа:

ls -la test*

Обратите внимание на то, что записи . (единичная точка), .. (две последовательные точки) и .doti не распечатались, поскольку символ-заместитель - * (звездочка) не совпадает с символом точки (.).

Если вы хотите получить список имен каталогов и файлов, разделенный запятыми, то выполните команду с флагом -m:

ls -am
., ... .doti, testi, test2, test3, test4, test5

Если вы хотите подучить список записей и среди них уточнить имена каталогов при помощи наклонной черты (/), то выполните команду с флагом -р:

ls -ap

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

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

Для получения списка всех файлов в текущем каталоге, а также файлов во всех подкаталогах выполните команду с флагом -R:

ls -1R
total 40

Далее приведены примеры команды ls с и без флага -u. Список без флага -u отображает время последней модификации, тогда как список с флагом -и отображает время последнего доступа:

find

Если вы не уверены в существовании конкретного файла, то для его поиска используйте команду find. Команда find предоставляет возможность гибкого поиска файла по различным атрибутам, таким как имя, размер, права доступа и т.д. Дополнительно команда find предоставляет возможность выполнять команды для файлов, Которые найдены в результате поиска.

Формат команды find следующий:

find имя-каталога поисковое выражение

Имя каталога может быть полным путем или . (единичной точкой) для текущего каталога. Ниже представлен список условий, Которые можно использовать с командой find:

р -type filetype для поиска файла конкретного типа. Далее идет список типов, Которые допустимо использовать:

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

- operator -a operator для поиска файлов, Которые удовлетворяют обоим указанным условиям.

- operator -o operator для поиска файлов, Которые удовлетворяют одному из указанных условий.

- !operator для поиска файлов, Которые не удовлетворяют указанным условиям.

Примеры

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

find . -print

./test5

./testi

./test3

./test4

./test2

,/test2/test21

,/test2/test22

./.doti

Если вы хотите найти в текущем каталоге все файлы, Которые были модифицированы в последние 24 часа, воспользуйтесь оператором -mthne:

find . -mtime 0 -print

./test5

./testi

./test3

./test4

./test2

./test2/test21

./test2/test22

./.doti

Для поиска файла с кодом прав доступа 600 (право на чтение и запись имеет только владелец), выполните следующую команду с оператором -реrm:

find . -perm 600 -print
./testi

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

find . -perm -600 -print

./test5

./testi

./test4

./test2

./test2/test21

./test2/test22

./.doti

Если вас интересуют только каталоги, используйте оператор -type и выполните следующую команду:

find . type d -print

./test2

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

find . -ls

Для поиска всех файлов, Которые начинаются на test, используйте оператор -name и выполните следующую команду:

find . -name "test*" -print

./test5

./testi

./test3

./test4

./test2

./test2/test21

,/test2/test22

Как видите, команда find просматривает и подкаталог test2. Если хотите ограничить поиск только текущим каталогом, без подкаталогов, то используйте оператор -prune и выполните следующую команду:

find . -name "test*" -prune -print
./test5
./test1
./test3
./test4
./test2

Для поиска файлов в текущем каталоге, Которые созданы позже, чем файл test1, воспользуйтесь оператором -newer и выполните следующую команду:

find . -newer testi -print

./test5

./test2/test21

С другой стороны, если вы хотите получить список файлов, созданных раньше, чем testi, то используйте оператор отрицания ! в сочетании с оператором -newer, как в следующей команде:

find . ! -newer test1 -print

./test3

./test4

./test2

,/test2/test22

./.doti

Если вы хотите получить список всех файлов, имеющих размер точно 10 байтов, воспользуйтесь оператором -siize и выполните следующую команду:

find . -size -10с -print
./test1

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

find . -size -10с -print

./test3

./test4

./test2/test21

./test2/test22

./.dot1

Если вы хотите получить список всех файлов с нулевым размером, то выполните команду find с параметром -ехес:

Если вы хотите удалить все файлы с нулевым размером, но с подтверждением об удалении каждого перед реальным удалением, выполните следующую команду с оператором -ok:

find . -size -ok rm {} \;

< rm ... ./test3 > (yes)? у

< rm ... ,/test4 > (yes)? n

< rm ... ./test2/test21 > (yes)? у

< rm ... ./test2/test22 > (yes)? у

< rm ... ./.doti > (yes)? у

Здесь вы решили не удалять файл test4.

Все приведенные выше примеры использовали одновременно только один оператор Команду find можно выполнять со сложными условиями, объединив друг с другом несколько операторов с помощью условий or или and. Если вы хотите найти все файлы, Которые начинаются на test и имеют нулевой размер, выполните следующую команду:

find . -name 'test*' -size Oc -print

./test3

./test4

./test2/test21

./test2/test22

В данном примере объединены два разных оператора. Один и тот же оператор можно использовать несколько раз с условиями or или and. Если вам нужно найти все файлы в текущем каталоге, размер Которых больше нудя, но меньше 50 байтов и чьи имена начинаются на test, выполните следующую команду:

find . -size +0c -a -size -50с -name 'test*' -exec ls -1 {} \;

-rw---- 1 testuser author 10 Nov 24 17s 36 ./test1

file

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

Если файл оказывается ASCII, то команда file исследует первые 512 байтов и пытается определить язык. Если файл оказывается не ASCII, то команда file пытается выделить двоичный фрагмент из текстового файла, содержащего расширенные символы.

Если аргумент File специфицирует выполняемый или объектный модуль и номер версии равен или больше 0, то команда file выводит отметку о версии.

Команда file использует файл /etc/magic для идентификации файлов, Которые содержат сигнатуру (числовую или строковую константу), указывающую на тип файла.

Примеры

Если у вас в каталоге есть файл под названием letter, Который содержит письмо к другу, то выполнение команды

file letter

отобразит следующий результат:

letter: commands test

Если у вас есть файл под названием prog, Который является выполняемой программой, и вы работаете

на IBM RISC 6000 AIX версии 3.1, то выполнение команды

file prog

отобразит следующий результат (если тип системы RISC 6000):

prog: executable (RISC System/6000 V3.1)

Если вы находитесь в каталоге /dev, Который содержит специальные файлы, то выполнение команды

file hd1

для файла под названием hd1 (Который является диском с файловой системой) отобразит следующий результат:

hdl: block special

Команды, связанные с содержимым файлов

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

more

Команда more применяется для вывода содержимого файла на экран. По умолчанию команда more отображает по одному экрану, заполненному данными. Однако число строк на экране можно модифицировать. Команда more делает паузу после вывода каждой страницы. Для продолжения и просмотра следующей страницы нажмите пробел. Для перехода к новой строке нажмите Return или Enter. В основном команда more
используется в сочетании с другими командами, вывод Которых поступает в команду more для отображения.

Далее приведен перечень флагов, которые работают с командой more:

Как мы уже говорили, команда more делает паузу в конце каждой страницы отображения. Существует несколько подкоманд, Которые можно использовать во время пауз. Подкоманды управляют дальнейшим поведением команды more. Эти подкоманды таковы:

Примеры

Давайте предположим, что у нас в текущем каталоге есть файл под названием filel. Если вы хотите вывести на экран filel, то используйте следующую команду:

more filel

This is the line 1

This is the line 2

This is the line 3

This is the line 4

This is the line 5

This is the line 6

This is the line 7

This is the line 8

This is the line 9

This is the line 10

This is the line 11

This is the line 13

This is the line 14

This is the line 15

This is the line 16

This is the line 17

This is the line 18

This is the line 19

This is the line 20

This is the line 21

This is the line 22

This is the line 23
-More-(91%)

В этом случае при достижении конца файла команда more прекращает работу. Если вы не хотите выходить из команды more, достигнув конца файла, задействуйте флаг -w. Это особенно полезно, если вы просматриваете файл, находящийся в процессе создания. Следующая команда показывает использование флага -w:

more -w filel

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

more +g filel

This is the line 3

This is the line 4

This is the line 5

This is the line 6

This is the line 7

This is the line 8

This is the line 9

This is the line 10

This is the line 11

This is the line 12

This is the line 13

This is the line 14

This is the line 15

This is the line 16

This is the line 17

This is the line 18

This is the line 19

This is the line 20

This is the line 21

This is the line 22

This is the line 23

This is the line 24

This is the line 25

рMore-(EOF)

Если вы хотите начать отображение файла со строки 20 filel, выполните следующую команду:

more +20 filel

This is the line 20

This is the line 21

This is the line 22

This is the line 23

This is the line 24

This is the line 25

Если вы хотите отобразить пять файлов: filel, file2, file3, file4, file5, выполните следующую команду:

more filel file2 file3 file4 file5

less

Команда less - это еще одна из команд, предназначенных для просмотра содержимого файлов. По умолчанию на многих системах UNIX она может отсутствовать. Ее действие подобно действию команды more. Команда less предоставляет возможность перемещаться по файлу как в прямом, так и в обратном направлениях.

Ниже приведен список подкоманд, Которые используются после входа в команду less:

Примеры

Для вызова команды less для файла с именем filel, воспользуйтесь следующей командой:

less filel

tail

Команда tail применяется для отображения файла в стандартный вывод, начиная с указанной точки с начала или с конца файла. Будет ли отображение начинаться с начала файла или с конца, зависит от указанных параметров и флагов. Один из флагов, -f, можно использовать для непрерывного просмотра конца файла по мере роста файла. По умолчанию tail отображает последние 10 строк файла.

Ниже приведен список флагов, Которые используются с командой tail:

Со всеми флагами можно указать число с предварительным знаком + (знак плюс) или - (знак минус). Если указать +, то команда tail начинает обработку с начала файла. Если указать - или не указывать никакого знака, то tail начинает обработку с конца файла.

Примеры

Предположим, что есть файл под названием filel, содержащий 30 строк. Если необходимо видеть последние 10 строк файла, то выполните команду tail без каких-либо флагов,
как указано ниже:

tail filel

This is the line 21
This is the line 22
This is the line 23
This is the line 24
This is the line 25
This is the line 26
This is the line 27
This is the line 28
This is the line 29
This is the line 30

В предыдущем примере отображаются последние 10 строк filel. Если нужно пропустить 27 строк с начала файла, то выполните следующую команду:

tail +27 filel
This is the line 28
This is the line 29
This is the line 30

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

tail -с +500 filel
the line 27
This is the line 28
This is the line 29
This is the line 30

В данном примере отображение начинается с 500 байта с начала файла. Если вы хотите указать абсолютный номер строки, с Которой отображать файл, то используйте флаг -n, как в следующей команде:

tail -n -5 filel

This is the line 26

This is the line 27

This is the line 28

This is the line 29

This is the line 30

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

tail -г -n -5 filel
This is the line 30
This is the line 29
This is the line 28
This is the line 27
This is the line 26

В данном примере последние 5 строк отображаются в обратном порядке, от последней строки к началу.

head

Команда head отображает файл в стандартный вывод. Команда head начинает с начала файла и отображает указанное количество байтов или строк от начала файла. По умолчанию head отображает 10 строк. Ниже указаны флаги, Которые работают с командой head:

р -с number для отображения количества байтов с начала файла.

р-n number для отображения количества строк от начала файла.

Число может указываться без знака или ему может предшествовать знак -.

Примеры

Предположим, что есть файл filel, Который содержит то же самое, что и файл для примеров команды tail. Если вы хотите отобразить указанное количество строк от начала файла, то используйте флаг -n, как в следующей команде:

head -3 filel
This is the line 1
This is the line 2
This is the line 3

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

head -с 29 filel

This is the line 1
This is th

В данном примере отображаются первые 29 байтов filel.

WC

Команда wc подсчитывает количество байтов, слов и строк в указанных файлах. Словом является несколько символов, стоящих рядом и отделенных от других символов либо пробелом, либо символом новой строки.

Ниже приведен перечень флагов, Которые можно использовать с командой we:

р -1 для подсчета в файле только количества строк.

р -w для подсчета только числа слов.

р -с для подсчета только числа байтов.

В команде wc в качестве аргументов можно использовать несколько имен файлов.

Примеры

Если хотите узнать число байтов, слов и строк в filel, выполните следующую команду:

wc filel

25 125 491 filel

Данный пример показывает, что файл содержит 25 строк, 125 слов и 491 байт. Если нужно узнать только число слов в filel, используйте флаг -w, как в следующей команде:

wc -w filel

125 filel

Если вы хотите получить количество слов в filel и file2, выполните следующую команду:

wc -w filel file2
125 filel
463 file2
588 total

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

read

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

Далее следует флаг, Который можно использовать с командой read:

р -r для обработки символа \ (обратный слэш) как части ввода, а не как управляющего символа.

Примеры

Ниже приведен фрагмент сценария оболочки для чтения имени и фамилии из namcfilc и их печати:

while read -r Iname fname
do

echo $Iname","fname
done < namefile

od

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

Ниже приводится перечень флагов, Которые используются с командой od:

После имени файла можно указать смещение того байта, с Которого вы хотите начать вывод. Если смещение Предварить Ох, то оно будет интерпретироваться как шестнадцатеричное число. Если смещение предварить 0, то оно будет интерпретироваться как восьмеричное число. Смещение можно закончить буквой b для байтов, буквой k для килобайтов (1024 байта) и m - для мегабайтов (1024х1024 байта).

Примеры

Для отображения содержимого fliel выполните следующую команду:

od filel | more

0000000 000737 000007 031147 104407 000000 000000 000000 000000
0000020 000110 010007 000413 000001 000002 024250 000001 056674
0000040 000012 030504 000001 052320 000000 001000 000000 000000
0000060 000001 055020 000004 000002 000004 000004 000007 000005

Команда отобразит filel в десятичном формате. Если вы хотите отобразить файл в шестнадцатеричном формате, используйте флаг -h, как в следующей команде:

od -h filel | more

0000000 Oldf 0007 3267 8907 0000 0000 0000 0000
0000020 0048 1007 OlOb 0001 0002 28а8 0001 5dbc
0000040 ОООа 3144 0001 54d0 0000 0200 0000 0000
0000060 0001 5а10 0004 0002 0004 0004 0007 0005

Если отображение следует начать с позиции байта 40 и отобразить в формате ASCII, используйте следующую команду:

od -c filel +40 | more

0000040 \0 \n 1 D \0 001 Т 320 \0 \0 002 \0 \0 \0 \0 \0

0000060 \0 001 Z 020 \0 004 \0 002 \0 004 \0 004 \0 007 \0 005

Можно отобразить содержимое filel в восьмеричном, ASCII, шестнадцатеричном формате одновременно. Для этого используется следующая команда:

pg

Команда pg применяется для отображения содержимого файла по одной странице, точно так, как это делают команды more и less. Команда pg делает паузу в конце каждого отображенного, чтобы вы могли ввести какую-либо подкоманду. Они используются для поиска в файле, перехода по файлу вперед или назад и т.д.

Ниже следует перечень флагов, Которые можно использовать с командой pg:

Некоторые подкоманды команды pg можно использовать во время паузы в конце каждого экрана. После ввода подкоманды необходимо нажать клавишу Return. Ниже следует список доступных подкоманд:

Примеры

Предположим, что есть fi1, содержимое Которого совпадает с содержимым файла, использовавшегося с командой tail.

Для изменения количества строк, отображаемых командой pg, предварите размер знаком - (минус)как в следующей команде:

pg -7 filel
This is the line 1
This is the line 2
This is the line 3
This is the line 4
This is the line 5
This is the line 6
This is the line 7

В данном примере количество отображаемых строк установлено в 7. С другой стороны, если вы хотите начать отображение с 7-ой строки, то предварите число знаком + (плюс), как в следующей команде:

pg +7 filel

Если вы хотите модифицировать подсказку по умолчанию : (двоеточие), то используйте флаг -р как в следующей команде:

pg -7 -s "Enter Sub-command -> n filel
This is the line 1
This is the line 2
This is the line 3
This is the line 4
This is the line 5
This is the line 6
This is the line 7
Enter Sub-command ->

В данном примере подсказка по умолчанию будет заменена на следующую: Enter Sub-command ->. Если вы хотите начать файл со строки, в Которой есть шаблон line 5, то выполните следующую команду:

pg +/"line 5"/ filel

tee

Если вы хотите выполнить команду и ее вывод перенаправить в несколько файлов, в дополнение к стандартному выводу, то используйте команду tee. Команда tee принимает ввод из стандартного ввода, поэтому к ней можно подключить через канал другие команды.

Далее приведено описание необязательного флага, Который можно использовать с командой tee:

- -а для добавления в конец указанного файла. По умолчанию команда tee переписывает указанный файл.

Примеры

Если вы хотите использовать команду cat с filel для отображения содержимого файла на экране и хотите сделать копию file2, то используйте команду tee следующим образом:

cat filel | tee file2 | more

Если вы хотите добавить filel в конец уже существующего file2, то используйте флаг -а как в команде:

cat filel | tee -a fiie2 |more

vi

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

ПРЕДОСТЕРЕЖЕНИЕ

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

Ниже следует список флагов, Которые используются с командой vi:

Ниже приведен краткий перечень подкоманд, Которые можно использовать в command mode для перемещения в пределах одной строки.

Ниже приведен краткий справочник подкоманд, Которые можно использовать в command mode для перемещения между строками:

Ниже приведен краткий перечень подкоманд, Которые можно использовать в command mode для обновления экрана:

Ниже приведен краткий перечень подкоманд, Которые можно использовать в command mode для прокрутки страниц:

р Ctrl-f для перемещения вперед на один экран.

р Ctrl-d для перемещения вперед на половину экрана.

р Ctri-b для перемещения назад на один экран.

р Ctrl-u для перемещения назад на половину экрана.

р Ctrl-e для прокрутки окна вниз на одну строку.

р Ctri-y для прокрутки окна вверх на одну строку.

Ниже приведен краткий перечень подкоманд, Которые можно использовать в command mode для поиска подстрок в файле:

Ниже приведен краткий перечень подкоманд, Которые можно использовать для ввода текста в text entry mode. (Вы можете перейти в режим ввода текста в любой момент, нажав клавишу Escape).

Ниже приведен краткий перечень подкоманд, Которые можно использовать для модификации текста в command mode. (Вы можете перейти в режим ввода текста в любой момент, нажав клавишу Escape).

Ниже приведен краткий перечень подкоманд, Которые можно использовать для перемещения текста из одной части файла в другую:

- р для вставки содержимого буфера отката (undo buffeer) (как результата удаления - "вырезания") после позиции курсора.

- Р для вставки содержимого буфера отката (undo buffeer) (как результата удаления - "вырезания") перед позицией курсора.

Ниже приведен краткий перечень подкоманд, Которые можно использовать для сохранения файла:

Ниже приведен краткий перечень подкоманд, Которые можно использовать для перемещения между файлами, если команда vi была вызвана для нескольких файлов:

Ниже приведен краткий перечень подкоманд, Которые можно использовать для перемещения между текущим файлом и альтернативным:

Ниже приведен краткий перечень подкоманд, Которые можно использовать для добавления строк в файл из другого источника:

Ниже приведен краткий перечень подкоманд, Которые можно использовать для разных целей:

Специальный файл под названием .ехгс применяется для указания в нем специальной подкоманды vi. Для вызова данных подкоманд в сеансе vi используйте : (двоеточие) перед командой. НеКоторые из подкоманд из .ехгс таковы:

Back Next