
- •I) Работа с файлами.
- •1.1. Файлы и их имена
- •1.2. Каталоги
- •1.3. Назначение основных системных каталогов
- •1.4.1. Файлы физических устройств
- •1.4.2. Именованные каналы (pipes)
- •1.4.3. Доменные гнезда (sockets)
- •1.4.4. Символические ссылки (еще раз об именах файлов)
- •1.5. Команды для работы с файлами и каталогами
- •1.5.1. Команды chown и chgrp
- •1.5.2. Команда mkdir
- •1.5.3. Команда cat
- •1.5.4. Команда cp
- •1.5.5. Команда mv
- •1.5.6. Команды rm и rmdir
- •1.5.7. Команды more и less
- •1.5.8. Команда find и символы шаблонов для имен файлов
- •1.5.9. Команда split — разбиваем файл на несколько частей
- •1.5.10. Сравнение файлов и команда patch
- •2) Дисковод cd-rom
- •2.2 ) Работа с дисками
- •3) Текстовый редактор
- •1. Основные принципы работы в
- •1.1. Знакомство с рабочей областью
- •1.2. Создание, открытие и сохранение документа
- •1.3. Экспорт текстовых файлов в pdf
- •1.4. Параметры печати
- •2. Основные приемы работы с текстом
- •2.1. Правка текста
- •2.2. Выделение текста
- •2.3. Правка выделенного фрагмента
- •2.3.1. Перемещение и копирование текста с помощью
- •3. Форматирование документа
- •3.1. Выбор параметров страницы
- •3.2. Форматирование символов
- •3.3. Форматирование абзацев
- •4. Таблицы
- •4.1. Создание и форматирование таблиц
- •5. Расширенные возможности
- •5.1. Создание и использование шаблонов в текстовом
- •5.2. Маркеры и нумерация
- •5.3. Оформление текста в несколько столбцов
- •5.4. Автозамена текста
- •5.5. Автотекст
- •5.6. Поиск и замена текста
- •5.7. Вставка специальных символов
- •5.8. Сноски
- •5.9. Вставка гиперссылок в документ
- •5.10. Вставка графических изображений
- •5.11. Редактор формул
- •5.12. Стили
- •5.12.1. Как применить стиль?
- •5.12.2. Создание оглавления
- •5.13. Работа с составными документами
1.5.9. Команда split — разбиваем файл на несколько частей
Иногда бывает необходимо разбить один большой файл на несколько файлов меньшего объема. Для примера рассмотрим ситуацию, когда вы хотите перенести на свой домашний компьютер файл song.mp3 формата "MP3", размером в 4,894,425 байт. Возможности перекачать этот файл по сети у вас нет, и единственно возможный способ переноса — воспользоваться дискетами. Но, поскольку на одну дискету файл не помещается, требуется разбить его на несколько маленьких файлов, а потом "собрать" снова. Для решения этой задачи можно воспользоваться командой split.
Команда split копирует файл, разбивая его на отдельные файлы заданной длины. В качестве аргументов ей надо указать имя исходного файла и префикс имен выходных файлов. Имена выходных файлов будут составляться из этого префикса и двух дополнительных букв `aa', `ab', `ac' и т. д. (без пробелов и точек между префиксом и буквами). Если префикс имен файлов не задан, то по умолчанию используется ‘x’, так что выходные файлы будут называться `xaa', `xab' и т. д..
Кроме аргументов можно задать опцию -b, определяющую размер выходных файлов в байтах. Вслед за –b должно стоять число, а за ним — буква k (показывающая, что размер выходного файла указан в килобайтах) или m (значит размер задан в мегабайтах). Если опция не задана, то по умолчанию размер выходных файлов принимается равным 1 Мбайту. Таким образом, чтобы перенести на дискетах файл song.mp3 надо вначале дать команду
[user]$ split -b1400k song.mp3 song.
скопировать полученные файлы song.aa, song.ab, song.ac, song.ad, song.ae на отдельные дискеты, перенести их на домашний компьютер, скопировать в какой-нибудь каталог и восстановить исходный файл с помощью команды
[user]$ cat song.* > song.mp3
после чего можно удалить временные файлы song.xx.
1.5.10. Сравнение файлов и команда patch
Вы не замечали, что задача сравнения содержимого двух различных файлов возникает при работе с компьютером удивительно часто? Конечно, ведь так легко скопировать файл, а потом забываешь, какая же из версий новее или качественнее (по одному автору ведомым критериям). Так что инструменты для сравнения файлов просто необходимы и Linux такие инструменты предоставляет.
Простейший из них — команда cmp. Эта команда просто сравнивает содержимое двух файлов по-байтно:
[user]$ cmp file1 file2
Если файлы полностью совпадают, она молча заканчивает свою работу (происходит возврат к командной строке без каких-либо дополнительных сообщений), а если файлы различаются, выдаются номер строки и номер байта в строке, где имеет место первое различие.
Конечно, информации, выдаваемой командой cmp, маловато для того, чтобы принять, например, решение о том, какой из двух файлов нам более ценен. Поэтому стоит воспользоваться командой diff для получения полного отчета о том, каковы же различия в интересующих нас файлах. Для получения отчета достаточно указать команде, какие именно файлы сравнивать:
[user]$ diff paper.old paper.new
Отчет о выявленных различиях будет выдан на стандартный выход. Естественно, его лучше перенаправить в файл:
[user]$ diff paper.old paper.new >paper.diff
Для оценки версий одного и того же файла более удобна может оказаться команда sdiff, которая выдает результат сравнения в виде двух столбцов, разделенных пробелами. Если строки с одинаковыми номерами в файлах различаются, то в выводе команды sdiff они разделены вертикальной чертой |. Если строка имеется только в первом файле, она отмечена знаком <. Соответственно, строка, встречающаяся только во втором файле, помечена знаком >.
Существует также команда diff3, которая позволяет сравнить сразу 3 файла.
Но все же наиболее часто используется традиционная для UNIX-систем команда diff. Эта ее востребованность объясняется тем, что создаваемый ею отчет о различиях двух файлов может быть использован командой patch. Чаще всего эти возможности используются при распространении обновлений программного обеспечения. Предположим, что некоторое программное приложение было разослано пользователям в виде файла program.c, содержащего исходный код программы на языке Си. После этого разработчик внес в программу некоторые исправления и сохранил текст в виде файла program.c.new. Требуется довести исправленный текст программы до пользователей. Очевидно, что пользователям достаточно сообщить только исправления, т. е. отчет об изменениях, создаваемый по команде
[user]$ diff program.c program.c.new > program.c.diff
Естественно, объем файла program.c.diff существенно меньше объема файла program.c.new, так что можно было бы получить существенную экономию на передаче файлов, если отправлять пользователям только файл program.c.diff (ведь объемы современных программных приложений составляют десятки мегабайт). Однако пользователи должны иметь возможность внести эти исправления в имеющуюся у них версию программы. Эту задачу позволяет решить команда patch. Имея файлы program.c и program.c.diff, пользователь может дать команду
[user]$ patch program.c program.c.diff > program.c.new
в результате выполнения которой он получит файл program.c.new.
1.5.11. ls
Это очень часто используемая команда. Она перенаправляет содержимое каталога в стандартный поток вывода. Если выполнить эту команду не указывая целевой каталог, то выведется содержимое текущего каталога.
adam@laptop:~/Documents/polishlinux.org$ pwd /home/adam/Documents/polishlinux.org/
adam@laptop:~/Documents/polishlinux.org$ls example.txt all_about_console.txt
adam@laptop:~/Documents/polishlinux.org$ls /var/ backups cache crash games lib local lock log mail opt run spool tmp
Если после команды ls поставить ключ -l, то выведется более подробная информация о содержимом каталога.
adam@laptop:~/Documents/polishlinux.org/examples$ ls -l total 0 -rw-r–r– 1 adam adam 0 2007-05-30 11:31 example.txt -rw-r–r– 1 adam adam 0 2007-05-30 11:31 all_about_console.txt
В первой строке показывается общее количество блоков на диске занимаемое файлами каталога. Остальные строчки описывают фалы в следующем формате (по столбцам):
-
-rw-r–r– - уровни доступа к файлам и каталогам
-
количество жестких ссылок на файл
-
пользователь и группа владельцев файла
-
размер файла
-
время последнего изменения файла
-
имя файла или каталога
Команда ls с ключом -a выводит так же и скрытые файлы. Имена скрытых файлов начинаются с точки.
adam@laptop:~/Documents/polishlinux.org/examples$ ls -a . .. .hidden_file example.txt all_about_console.txt
По мимо этого, доступна возможность сортировки файлов командой ls со следующими ключами:
-
-t - по времени (по убыванию)
-
-S - по размеру (по убыванию)
-
-r - обратный порядок (-tr)
Если запустить с ключом -R, то выведется все содержимое каталога и его подкаталогов (рекурсивный обход):
adam@laptop:~/Documents/polishlinux.org/examples$ ls -R .: directory1 directory2 example.txt all_about_console.txt
./directory1: file1 file2
./directory2: file3 file4
1.5.12. cd
С помощью команды cd (change directory) мы можем перемещаться по дереву каталогов. Для этой команды необходим один параметр - это целевой каталог (относительно текущего или относительно корня).
adam@laptop:~$cd /usr/bin adam@laptop:/usr/bin$pwd /usr/bin
Если вместо пути поставить символ тильда (~), то вас перекинут в домашнюю папку.
adam@laptop:/usr/bin$cd ~ adam@laptop:~$pwd /home/adam
Если ввести ключ в виде ~имя_пользователя, то нас перекинут в домашний каталог этого пользователя.
adam@laptop:~$cd ~zoidberg adam@laptop:/home/zoidberg$pwd /home/zoidberg
Любой каталог к UNIX всегда содержит каталог “.” и “..”. Одна точка “ссылка” (не жесткая, и не символическая) на текущий каталог, а две точки - это “ссылка” на родительский каталог.
adam@laptop:~$cd .. adam@laptop:/home$pwd /home
Как уже говорилось выше, можно использовать как относительный путь, так и абсолютный. Абсолютный всегда начинается с корня и дальше по иерархии каталогов (/home/adam), а относительный - это относительно текущего каталога, начинается сразу с его имени.
1.5.13 chmod |
смена прав доступа на файл или папку (выполняется от суперпользователя – su (sudo)), например: sudo chmod 775 folder параметры доступа 777, 775, 755 (и т.п.) |
chmod -R |
смена прав доступа на файл и папку, и файлы внутри папки (выполняется от суперпользователя – su (sudo)), например: sudo chmod -R 777 folder |
1.5.14 pwd |
показать в каком каталоге вы находитесь |