00. Клавиши переключения между консолями и графическим режимом
1 2 3 4 5 6 |
<Ctrl>+<Alt>+<Fn> (n от 1 до 6) Переключение из графического режима в консоль с номером n <Alt>+<Fn> (n от 1 до 6) Переключение между консолями <Alt>+<F7> Переключение из консоли в графический режим Решетка (#) означает, что команда должна быть выполнена от имени пользователя root. Если перед командой ничего не указано или же указан символ доллара ($), команду можно выполнить от имени обычного пользователя. |
01. Команды poweroff, halt, reboot, shutdown
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Для выхода из консоли (чтобы ею никто не воспользовался во время вашего отсутствия) предусмотрена команда logout, она же команда exit. Для перезагрузки компьютера существует команда reboot. Кроме нее вы можете использовать еще две команды — halt и poweroff: - команда halt завершает работу системы, но не выключает питание. Вы увидите сообщение System is halted, свидетельствующее о возможности выключения питания. Эта команда предназначена для старых компьютеров, не поддерживающих расширенное управление питанием - команда poweroff завершает работу системы и выключает ее питание. Самая "продвинутая" команда — shutdown — позволяет завершить работу и перезагрузить систему в назначенное время. Предположим, что вы хотите уйти пораньше, но компьютер нужно выключить ровно в 19:30 (вдруг некоторые пользователи задержались на работе, а вы выключите сервер, — некрасиво получится). Вот тут-то вам и поможет команда shutdown: # shutdown -h 19:30 [сообщение] Сообщение [сообщение] можно и не указывать, все равно Windows-пользователи его не увидят. Если нужно завершить работу системы прямо сейчас, вместо времени укажите now: # shutdown -h now Для перезагрузки системы есть опция –r: # shutdown -r now |
01. Оболочка csh
1 2 3 4 5 6 7 8 9 10 |
Оболочка csh (C Shell) по умолчанию используется в FreeBSD. Разработка csh началась еще в первых версиях BSD (Linux будет создан лет через 15). Тогда в институте Беркли начали создавать новую оболочку (csh), потому что не захотели мириться с ограничениями sh. Внутренний синтаксис csh очень напоминает язык программирования C, поэтому он должен был понравиться программистам (а в то время все пользователи компьютеров являлись программистами). Хотя сами программисты отмечали, что синтаксис не очень удобен, даже несмотря на то, что он похож на C. По сравнению с sh, у csh есть множество преимуществ: она умеет управлять заданиями, хранит историю ранее введенных команд, а также у csh есть сценарии, которые выполняются при входе пользователя (запуске оболочки) и при выходе пользователя (когда пользователь вводит команду exit). В то время у sh не было таких сценариев, которые оказались очень удобными. С точки зрения обычного использования оболочки (а не программирования) csh тоже была на высоте. В последних версиях FreeBSD и Linux вместо csh используется ее усовершенствованная версия — tcsh, а файл /bin/csh — это просто ссылка на /bin/tcsh. |
02. Оболочка ksh
1 2 3 4 5 6 7 8 9 10 11 12 |
Не хочется делать экскурс в историю UNIX, но пару слов сказать все же придется. Изначально система UNIX появилась в лабораториях компании AT&T, позже возникли версии UNIX института Беркли (операционная система называлась BSD). Так уж сложилось исторически, что AT&T и институт Беркли постоянно конкурировали между собой. Как только в Беркли разработали оболочку csh, в AT&T принялись создавать собственную оболочку, которая получила название ksh (Korn Shell) — по имени разработчика Дэвида Корна (David Korn). Оболочка ksh по функциям похожа на csh: есть поддержка управления заданиями, история команд, позволяет назначать командам псевдонимы, а также создавать конфигурационные файлы для под оболочек. Несмотря на то что оболочка была разработана в 1986 году, она до сих пор используется в некоторых версиях UNIX по умолчанию, а также устанавливается по умолчанию во всех дистрибутивах Linux (но не используется по умолчанию). Правда, изначально ksh — это коммерческий продукт, поэтому в FreeBSD и Linux используется не ksh, а ее бесплатная версия — pdksh, но для краткости исполнимый файл называется ksh. Начинающим пользователям ksh не понравится (лучше использовать bash) — она слишком неудобна в использовании, зато у нее довольно развитый синтаксис внутреннего языка, что придется по вкусу программистам. |
03. Оболочка bash
1 2 3 4 5 6 7 8 9 |
Командный интерпретатор bash (Bourne Again Shell) был разработан фондом свободного программного обеспечения (Free Software Foundation, FSF). За основу была взята оболочка sh. Оболочка стала очень популярной и сейчас используется по умолчанию во всех дистрибутивах Linux. Оболочка bash может использоваться также и для запуска сценариев sh, поэтому sh во многих системах уже не устанавливается, а файл /bin/sh — это ссылка на /bin/bash. С точки зрения пользователей bash намного удобнее, чем ksh. Вы можете легко редактировать командную строку, просматривать историю команд, создавать псевдонимы команд, создавать переменные окружения и использовать их в собственных сценариях. Как и в csh, в bash есть сценарии, которые вызываются при запуске оболочки и при выходе из нее. Синтаксис bash довольно прост, поэтому бóльшая часть сценариев, разрабатываемых в Linux, пишется именно на bash. |
04. Оболочка zsh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
Оболочки bash и tcsh (современная версия csh) будут рассмотрены в части III, оболочка ksh используется редко. Поэтому сейчас мы поближе познакомимся с оболочкой zsh, которая становится все более популярной. До знакомства с zsh я считал самой удобной оболочку bash. Однако это не так. Что же удобного в zsh? Во-первых, навигация. В bash для перехода в каталог /dir/subdir1/subdir2 нужно ввести команду: cd /dir/subdir1/subdir2 Можно использовать авто дополнение bash — вводить начальные символы каталога и нажимать клавишу <Tab>. Это будет выглядеть примерно так: cd /dir/sub [Tab]/subdi [Tab] В zsh можно ввести: /d/s/s Затем нажать клавишу <Tab> — вы перейдете в нужный каталог. Например, для перехода в /etc/sysconfig/network, нужно ввести /e/s/n и нажать клавишу <Tab>. Кстати, команда cd уже не нужна. Еще один трюк. Предположим, у нас есть каталог files, а в нем — каталоги f1 и f2. Внутри каждого каталога f* есть каталоги source и last. То есть структура каталогов будет примерно такой: /files/f1/sources/last /files/f2/sources/last Пусть мы находимся в каталоге /files/f1/sources/last, для перехода в каталог /files/f2/sources/last введите команду: cd 1 2 Но одной лишь навигацией возможности zsh не ограничиваются. Можно, например, использовать вот такое перенаправление: < /var/log/messages Оболочка запустит программу, указанную в переменной $PAGER. В большинстве случаев это аналогично команде: cat /var/log/messages | less Все возможности zsh в этой главе мы рассматривать не будем — их намного больше, чем вам кажется. Если вы заинтересовались, то прочитайте следующие страницы: http://opennet.ru/base/dev/zsh_intro.txt.html http://habrahabr.ru/blogs/linux/82537/ |
05. Оболочка tcsh
1 2 3 4 5 6 7 |
Оболочка tcsh является модифицированной версией csh. Буква t в названии означает TENEX: изначально оболочка была разработана для операционной системы TENEX (использовалась в далеком прошлом на компьютерах DEC PDP-10). В tcsh усовершенствована функция редактирования командной строки, есть авто завершение команд (как в bash). Кроме того, tcsh может распознавать потенциально опасные команды. Если вы от имени root попытаетесь удалить все файлы, оболочка потребует подтверждения. Оболочка tcsh очень удобна в использовании, но ее синтаксис сценариев сложнее, чем у bash. Однако в части III мы все же рассмотрим разработку сценариев на tcsh, чтобы вы смогли оценить сложность создания разработки сценариев на bash и на tcsh |
06. Оболочка ash
1 2 3 4 5 6 |
Almquist shell (ash) — самая простая командная оболочка. Это самая маленькая оболочка, доступная для UNIX (у нее самые низкие требования к дисковому пространству). У ash всего 24 встроенных команды и 10 опций командной строки. Обычно ash используется при загрузке Linux в однопользовательском режиме (или в режиме восстановления). Оболочка ash совместима с sh, с ее помощью можно проверить сценарии на совместимость с традиционным синтаксисом sh. А в операционной системе NetBSD оболочка ash используется вместо /bin/sh |
07. Выбор оболочки
1 2 3 4 5 6 7 8 9 10 |
Какую оболочку выбрать? Первым делом нужно оценить простоту работы в ней. Ведь вы будете использовать эту оболочку каждый день, поэтому данный фактор должен быть на первом месте. Затем нужно оценить простоту синтаксиса оболочки. Конечно, это только в том случае, если вы планируете разрабатывать собственные сценарии. Также не следует забывать, что вы можете использовать одну оболочку, а разрабатывать сценарии — на языке другой оболочки. Например, в повседневной работе вы можете использовать zsh, а разрабатывать сценарии на языке bash. Довольно удобны в использовании оболочки bash, tcsh и zsh. Скорее всего, вы выберете одну из них. А вот для программирования будете использовать или bash, или tcsh (синтаксис zsh не очень понятен) |
08. Базовые команды Linux
1 2 3 4 5 6 |
Все команды Linux можно условно разделить на несколько групп: - команды общего назначения — эти команды могут понадобиться в любой момент как при работе в консоли, так и при написании собственных сценариев - команды для работы с файлами и каталогами - команды обработки текста - команды для работы с сетью и Интернетом — выйти в Интернет в Linux можно даже без запуска графического интерфейса - команды системного администратора — любой системный администратор просто обязан знать командыs |
09. Команда arch: сведения об архитектуре компьютера
1 2 3 4 |
Данная команда поможет узнать тип аппаратной платформы, например: i386, i586, i686 и др. Пример использования: $ arch i686 |
10. Команда banner: текстовый баннер
1 2 3 4 5 6 7 |
Команда banner выводит строку (максимальная длина — 10 символов), рисуя буквы символом звездочки (*). Данную команду можно использовать в своих сценариях для вывода названия сценария. Пример использования: $ banner HellowWorld 4 В Ubuntu по умолчанию команда banner недоступна, для ее добавления нужно установить пакет sysvbanner. |
11. Команда chsh: изменение командного интерпретатора
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Команда chsh позволяет изменить командный интерпретатор, вывести список установленных интерпретаторов, а также установить командный интерпретатор по умолчанию. Синтаксис вызова программы: $ chsh [параметры] интерпретатор В качестве параметров вы можете передать: -L — выводит список установленных командных интерпретаторов (список хранится в файле /etc/shells) -s — устанавливает командный интерпретатор по умолчанию. Примеры использования команды: $ chsh zsh $ chsh -s zsh Первая команда изменяет текущий интерпретатор команд на оболочку zsh. Как только пользователь выйдет из системы и снова зайдет, будет запущен его интерпретатор по умолчанию (который установлен в файле /etc/passwd). Вторая команда устанавливает командный интерпретатор по умолчанию для текущего пользователя. |
12. Команды cksum и md5sum: вычисление контрольной суммы файла
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Команда cksum вычисляет контрольную сумму (CRC, cyclic redundancy code) указанных файлов. Формат вызова: $ cksum файлы Пример: $ cksum file1.txt file2.txt Для проверки подлинности некоторых файлов, передаваемых через Интернет, используется алгоритм MD5 (точнее, контрольный код, вычисленный с применением этого алгоритма). Разработчик программы выкладывает в Интернете пакет с этой программой и на своем сайте публикует контрольный код. Вы скачиваете пакет и вычисляете его контрольный код. Если коды отличаются, то файл при передаче был поврежден (или это другая версия пакета, которая, возможно, была подложена злоумышленником с целью ввода вражеского кода в вашу систему). Использовать программу нужно так: $ md5sum file.txt |
13. Команда clear: очистка экрана
1 2 3 4 |
Команда clear очищает экран при работе в консоли (терминале). Пример использования: $ clear |
14. Команда date: вывод даты и времени
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
Команда date относится как к командам общего назначения, так и к командам системного администратора. Обычным пользователям разрешено только просматривать дату и время в заданном формате, а пользователь с правами root может еще и устанавливать дату и время. Команда date (без параметров) просто выводит текущую дату и время. Но вы можете уточнить формат вывода даты и времени так: $ date +формат Строка формат может состоять из модификаторов, указанных в таблице. Модификатор Описание %% Знак % %a Сокращенное название дня недели (например, Вск) %A Полное название дня недели (например, Вторник) %b Сокращенное название месяца (например, Мар) %B Местное полное название месяца (например, Март) %c Дата и время (в формате, заданном в настройках системы) %C Век %d День месяца (с предшествующим нулем, например, 07) %D Дата (в формате %m/%d/%y) %F Полная дата (в формате %Y-%m-%d) %g Последние две цифры года, соответствующего номеру недели в году согласно ISO 8601 %G Год, соответствующий номеру недели в году согласно ISO 8601 %H Час (00..23) %I Час (01..12) %j Номер дня в году %k Час (0..23) %l Час (1..12) %m Месяц (01..12) %M Минута (00..59) %n Вставляет разрыв строки %r 12-часовое время (например, 12:12:07 PM) %R 24-часовой формат часов и минут %s Число секунд, прошедших с 1970-01-01 00:00:00 UTC (это так называемый timestamp) %S Секунда %t Вставляет символ табуляции %T Время (в формате %H:%M:%S) %U Номер недели в году (неделя начинается с воскресенья) %V Номер недели в году (неделя начинается с понедельника) %w День недели (0..6, где 0 — воскресенье) %y Последние две цифры года (00..99) %Y Год (все четыре цифры, например, 2010) %z Часовой пояс в формате +ччмм (например, +0200) %:z Часовой пояс в формате +чч:мм (например, +02:00) %Z Алфавитное сокращение часового пояса (например, EST) |
15. Команда echo: вывод сообщения
1 2 3 4 5 |
Команда echo выводит текстовую строку, указанную в качестве аргумента, например: $ echo "Hello, world!" Hello, world! Обычно данная команда используется в сценариях командного интерпретатора для вывода сообщений на экран. |
16. Команда exit: выход из системы
1 2 |
Для завершения сеанса работы в системе (при условии, что вы работаете в консоли) нужно использовать команду exit. Если не завершить сеанс работы, кто угодно сможет работать в системе под вашим именем (понятно, что во время вашего отсутствия за компьютером). |
17. Команда env: установка переменных окружения
1 2 3 4 5 6 7 8 |
Команда env служит для установки переменных окружения во время выполнения команды, например ее можно использовать для установки переменной EDITOR, которая содержит команду текстового редактора по умолчанию. Формат вызова команды: $ env переменная=значение команда Пример: # env EDITOR=nano edquota -u user |
18. Команды man и info: вывод справки
1 2 3 4 5 6 |
Команда man используется для получения справки о любой команде системы. Например, команда man ls отобразит справку об использовании команды ls, которая выводит содержимое каталога. О том, как правильно использовать саму справочную систему, вам расскажет команда man man. Команда info — это альтернативная справочная система. Если вы не нашли нужной информации с помощью команды man, попробуйте использовать команду info. |
19. Команда printenv: вывод значения переменной окружения
1 2 3 |
Команда env используется для установки значений переменной окружения, а команда printenv позволяет просмотреть текущее значение переменной окружения, например: $ printenv EDITOR |
20. Команда reset: сброс терминала
1 2 3 |
Полезна при некоторых проблемах с терминалом (консолью). Команда reset производит сброс терминала и его начальную инициализацию, что позволяет восстановить параметры по умолчанию без выхода и входа в систему. Нужно отметить, что данную команду вы будете выполнять очень редко. |
21. Команда sleep: пора спать
1 2 3 4 5 6 7 8 |
Команда sleep приостанавливает дальнейшее выполнение команд на указанное время. Ее полезно использовать в собственных сценариях, когда нужно приостановить выполнение сценария, чтобы пользователь успел прочитать сообщение. Когда мы будем разрабатывать собственные сценарии, то станем часто пользоваться этой командой. Формат вызова: $ sleep число По умолчанию число — это количество секунд; если после числа указан суффикс m, h, d, то считается, что число — это количество минут, часов и дней соответственно. |
22. Команда startx: запуск графического интерфейса X.Org
1 2 3 4 5 |
Linux может стартовать на разных уровнях запуска. На пятом уровне запуска графический интерфейс X.Org (бывшее название — X Window) запускается автоматически (если он вообще был установлен). На третьем же уровне запуск графического интерфейса не производится. Если он вам тем не менее нужен, то его можно запустить с помощью команды startx. Никаких параметров не требуется. |
23. Команда tee: перенаправление ввода
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Перенаправляет стандартный ввод в два файла. Если задан только один файл, то в этот файл и на стандартный вывод. По умолчанию файлы, если существуют, перезаписываются. Чтобы файлы не были перезаписаны, указывается параметр -a. Пример: $ tee output.1 output.2 ПРИМЕЧАНИЕ Напомню, что стандартным вводом считается клавиатура, а стандартным выводом консоль. Суть команды в том, что она записывает ввод пользователя в два файла. Если задан только один файл, то ввод пользователя отправляется в этот файл и на консоль. |
24. Команда true: успешное завершение
1 2 |
Данная команда ничего не делает, но всегда возвращает код 0, что соответствует успешному завершению. Часто используется при написании сценариев. |
25. Команда yes: возвращает y
1 2 3 4 |
Команда пригодится при написании сценариев. Она возвращает символ y (или строку, переданную ей в качестве параметра) и символ новой строки — как будто пользователь ввел y и нажал клавишу <Enter>. Пример использования этой команды: # yes | apt-get install mc |
26. Команда uname: название и версия дистрибутива Linux
1 2 3 4 5 6 7 8 9 10 11 |
Команда uname очень полезна, т. к. позволяет получить много интересной информации о вашем дистрибутиве. Рассмотрим наиболее частые варианты вызова uname: uname - название ядра системы uname –s - то же, что и просто uname uname –v - версия ядра uname –r - релиз ядра uname –o - тип операционной системы uname –a - вся возможная информация uname — универсальная команда, и она имеется на всех UNIX-системах (Linux, openBSD, FreeBSD, Solaris и т. д.). |
27. Конвертирование кодировок, звуковых и графических файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
При работе с ПК иногда приходится конвертировать файлы из одного формата в другой. (Примеров подобного конвертирования можно привести сотни) Текст: Команда iconv используется для преобразования текстовых документов из одной кодировки в другую: $ iconv $ iconv -f cp1251 -t UTF-8 -o file.txt > file_utf8.txt Первая команда выводит список поддерживаемых кодировок. Вторая — конвертирует файл file.txt из кодировки cp1251 в кодировку UTF-8, результат записывается в файл file_utf8.txt. Картинки: Для конвертирования различных графических форматов используется программа convert (чтобы она была доступна, нужно установить пакет imagemagic). Программа convert — это очень мощный и гибкий инструмент. Учтите, что в этой книге рассмотрены далеко не все его возможности. Вот несколько примеров преобразования графических файлов из одного формата в другой: $ convert picture.png picture.bmp ; из PNG в BMP $ convert icon.gif icon.jpg ; из GIF в JPEG $ i=png; for fn in *.$i; do convert "$fn" "${fn/.$i/.bmp}"; done Преобразуем все PNG-файлы в *.png.bmp, при этом размер результирующих изображений будет равен 50% от оригинала: $ convert -resize 1024x768 big.jpg small.jpg i=png; for fn in *.$i; do convert -resize 50% "$fn" "${fn/.$i/.bmp}"; done Также можно использовать опцию -rotate для поворота изображения, в нашем случае мы поворачиваем изображение на 270 : $ convert -rotate 270 fokta.jpg fotka-rotate.jpg Хотите добавить информацию об авторских правах? Это тоже можно сделать с помощью этой команды: $ convert -fill black -pointsize 36 -font arial -draw text 20.70 "Copyright (с)2011 Vasil Pupkin." f1.jpg f1c.jpg При желании можно легко преобразовать PDF в JPEG постранично: $ convert file.pdf file-%03d.jpg И, наоборот, преобразовать JPEG-изображения в PDF: $ convert *.jpg file.pdf Аудио: Представим, что у нас есть диск AudioCD и его нужно "сграбить" на жесткий диск. Для этого можно использовать команду cdparanoia: $ cdparanoia -B После этого треки аудиодиска будут сохранены на жестком диске в текущем каталоге в виде WAV-файлов. Но они просто огромны! Поэтому следует преобразовать их в формат MP3 или OGG. Это можно сделать следующими командами: # lame -b 256 in.wav out.mp3 # oggenc in.wav -b 256 out.ogg |
28. Файловые системы / FS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
Linux поддерживает много различных файловых систем. Начинающий пользователь просто теряется, когда видит такое многообразие выбора, ведь в качестве корневой файловой системы доступны: ext2, ext3, ext4, XFS, ReiserFS, JFS. "Родной" файловой системой Linux является журналируемая файловая системаext4, но вы можете выбрать предыдущую версию — ext3 или даже ext2. Linux также до сих пор поддерживает файловую систему ext — самую первую файловую систему Linux, но при установке системы вы не можете выбрать ext. Поддержка ext добавлена в ядро только на тот случай, если вам попадется носитель информации, отформатированный в этой файловой системе. ПРИМЕЧАНИЕ Linux до сих пор поддерживает файловую систему ext, но она считается устаревшей, и рекомендуется воздержаться от ее использования. Основное отличие ext3 от ext2 — наличие журнала, что делает файловую систему менее чувствительной к всевозможным сбоям. Новая версия — ext4 — построена на базе ext3, но изменений гораздо больше, чем просто наличие журнала. Файловые системы ext2 и ext3 совместимы. По сути, ext3 — та же ext2, только с журналом. Раздел ext3 могут читать программы (например, Total Commander и Ext2Fsd в Windows), рассчитанные на ext2. В свою очередь, ext4 — это усовершенствованная версия ext3. В современных дистрибутивах по умолчанию задана файловая система ext4(для redhat/centos это ufs), при необходимости можно выбрать другие файловые системы. - Файловая система XFS была разработана компанией Silicon Graphics в 2001 году. Основная особенность данной системы — высокая производительность (до 7 Гбайт/с). XFS может работать с блоками размером от 512 байтов до 64 Кбайт. Ясно, что если у вас много маленьких файлов, то в целях экономии места можно установить самый маленький размер блока. А если вы работаете с файлами большого размера (например, мультимедиа), то нужно выбрать самый большой размер блока — так файловая система обеспечит максимальную производительность (конечно, если "железо" позволяет). Учитывая высокую производительность этой файловой системы, ее нет смысла устанавливать на домашнем компьютере, поскольку все ее преимущества будут сведены на нет. А вот если вы будете работать с файлами очень большого размера, XFS проявит себя с лучшей стороны. - Файловая система ReiserFS считается самой экономной, поскольку позволяет хранить несколько файлов в одном блоке (другие файловые системы могут хранить в одном блоке только один файл или одну его часть). Например, если размер блока равен 4 Кбайт, а файл занимает всего 512 байт (а таких файлов очень много в разных каталогах), то 3,5 Кбайт просто не будут использоваться. А вот ReiserFS позволяет задействовать буквально каждый байт вашего жесткого диска! Но у этой файловой системы есть два больших недостатка: она неустойчива к сбоям, и ее производительность сильно снижается при фрагментации. Поэтому, если вы выбираете данную файловую систему, покупайте UPS (источник бесперебойного питания) и почаще дефрагментируйте жесткий диск. - Файловая система JFS (разработка IBM) сначала появилась в операционной системе AIX, а потом была модифицирована под Linux. Основные достоинства этой файловой системы — надежность и высокая производительность (выше, чем у XFS). Но у нее маленький размер блока (от 512 байтов до 4 Кбайт). Следовательно, она хороша на сервере баз данных, но не при работе с данными мультимедиа, поскольку блок в 4 Кбайт для работы, например, с видео в реальном времени будет маловат. Выбор файловой системы: - для рабочей станции и сервера общего назначения оптимальными файловыми системами являются ext3/ext4 или ReiserFS (в крайнем случае) - на сервере баз данных можно использовать JFS — в этом случае (особенно, если база данных огромная) будет наблюдаться определенный прирост производительности - файловая система XFS — это удел станции мультимедиа, на обычной рабочей станции или обычном сервере ее использовать не следует Файловые системы Windows: FAT32 - нет журнала NTFS - есть журнал |
29. Имена файлов в Linux
1 2 3 4 5 6 7 8 9 10 11 |
По сравнению с Windows в Linux несколько другие правила построения имен файлов, вам придется с этим смириться. Начнем с того, что в Linux нет такого понятия, как расширение имени файла. В Windows, например, для файла Document1.doc именем файла является фрагмент Document1, а doc — это расширение. В Linux Document1.doc — это имя файла, никакого расширения нет. Максимальная длина имени файла — 254 символа(зависит от ФС в ext4 уже пофигу). Имя может содержать любые символы (в том числе и кириллицу), кроме / \ ? < > * " |. Также вам придется привыкнуть к тому, что система Linux чувствительна к регистру в имени файла: FILE.txt и FiLe.Txt — это два разных файла. Разделение элементов пути осуществляется символом / (прямой слэш), а не \ (обратный слэш), как в Windows. |
30. Файлы и устройства
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Вот самые распространенные примеры файлов устройств: /dev/sdx — файл жесткого диска или USB-накопителя /dev/sdxN — файл устройства раздела на жестком диске, N — это номер раздела /dev/mouse — файл устройства мыши /dev/modem — файл устройства модема (на самом деле является ссылкой на файл устройства ttySn) /dev/ttySn — файл последовательного порта, n — номер порта (ttyS0 соответствует COM1, ttyS1 — COM2 и т. д.). ПРИМЕЧАНИЕ В современных дистрибутивах имена вида /dev/hdx уже не используются В свою очередь, файлы устройств бывают двух типов: блочные и символьные. Обмен информации с блочными устройствами, например с жестким диском, осуществляется блоками информации, а с символьными — отдельными символами. Пример символьного устройства — последовательный порт. ls -l /dev/ttyACM0 crw-rw---- 1 root uucp 166, 0 Jun 7 18:13 /dev/ttyACM0 ls /dev/nvme0n1 -l brw-rw---- 1 root disk 259, 0 May 29 10:57 /dev/nvme0n1 |
31. Стандартные каталоги Linux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
В зависимости от дистрибутива, в корневом каталоге могут находиться дополнительные каталоги или не быть. / — корневой каталог /bin — содержит стандартные программы Linux (cat, cp, ls, login и т. д.) /boot — каталог загрузчика, содержит образы ядра и Initrd (RAM-диска инициализации), может содержать конфигурационные и вспомогательные файлы загрузчика /dev — содержит файлы устройств /etc — содержит конфигурационные файлы системы /home — содержит домашние каталоги пользователей /lib — библиотеки и модули /lost+found — восстановленные после некорректного размонтирования файловой системы файлы и каталоги /media — в современных дистрибутивах содержит точки монтирования сменных носителей (CD-, DVD-, USB-накопителей) /misc — может содержать все, что угодно, равно как и каталог /opt /mnt — обычно содержит точки монтирования /proc — каталог псевдофайловой системы procfs, предоставляющей информацию о процессах /root — каталог суперпользователя root /sbin — каталог системных утилит, выполнять которые имеет право пользователь root /tmp — каталог для временных файлов /usr — содержит пользовательские программы, документацию, исходные коды программ и ядра /var — постоянно изменяющиеся данные системы, например очереди системы печати, почтовые ящики, протоколы, замки и т. д. |
32. Работа с файлами
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
touch <файл> Создание пустого файла cat <файл> Просмотр текстового файла tac <файл> Вывод содержимого текстового файла в обратном порядке, т. е. сначала выводится последняя строка, потом предпоследняя и т. д. cp <файл1> <файл2> Копирование файла <файл1> в файл <файл2>. Если <файл2> существует, программа попросит разрешение на его перезапись mv <файл1> <файл2> Перемещение файла <файл1> в файл <файл2>. Эту же команду можно использовать и для переименования файла rm <файл> Удаление файла locate <файл> Быстрый поиск файла which <программа> Вывод каталога, в котором находится программа, если она вообще установлена. Поиск производится в каталогах, указанных в переменной окружения PATH (это путь поиска программ) less <файл> Используется для удобного просмотра файла с возможностью скроллинга (постраничной прокрутки) Пример: touch file.txt echo "some text" > file.txt cat file.txt cp file.txt file-copy.txt cat file-copy.txt rm file.txt cat file.txt mv file-copy.txt file.txt cat file.txt Первая команда "touch" создает в текущем каталоге файл "file.txt". Вторая команда "echo" записывает строку some text в этот же файл. Обратите внимание на символ ">" — это символ перенаправления ввода/вывода Третья команда "cat" выводит содержимое файла — в файле записанная нами строка "some text". Четвертая команда "cp" копирует файл "file.txt" в файл с именем "filecopy.txt". После этого мы опять используем команду "cat", чтобы вывести содержимое файла "file-copy.txt", — надо же убедиться, что файл действительно скопировался. Шестая команда "rm" удаляет файл "file.txt". При удалении система спрашивает, хотите ли вы удалить файл. Если хотите удалить, то нужно нажать клавишу <Y>, а если нет, то <N>. Точно ли файл удален? Убедимся в этом: введите команду "cat file.txt". Система нам сообщает, что нет такого файла. Восьмая команда "mv" переименовывает файл "file-copy.txt" в файл "file.txt". Последняя команда выводит исходный файл file.txt. |
33. Работа с каталогами
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
mkdir <каталог> Создание каталога cd <каталог> Изменение каталога ls <каталог> Вывод содержимого каталога rmdir <каталог> Удаление пустого каталога rm -r <каталог> Рекурсивное удаление каталога При указании имени каталога можно использовать следующие символы: . — означает текущий каталог. Если вы введете команду cat ./file, то она вы ведет файл file, который находится в текущем каталоге .. — родительский каталог. Например, команда cd .. переведет вас на один уровень вверх по дереву файловой системы ~ — домашний каталог пользователя (об этом мы поговорим позже) Пример: mkdir directory cd directory touch file1.txt touch file2.txt ls cd .. ls directory rm directory rmdir directory rm -r directory |
34. Команда ln: создание ссылок
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
В Linux допускается, чтобы один и тот же файл существовал в системе под разными именами. Для этого используются ссылки. Ссылки бывают двух типов: жесткие и символические. Жесткие ссылки жестко привязываются к файлу — вы не можете удалить файл, пока на него указывает хотя бы одна жесткая ссылка. А вот если на файл указывают символические ссылки, его удалению ничто не помешает. Жесткие ссылки не могут указывать на файл, который находится за пределами файловой системы. Предположим, у вас два Linux-раздела: один корневой, а второй используется для домашних файлов пользователей и монтируется к каталогу /home корневой файловой системы. Так вот, вы не можете создать в корневой файловой системе ссылку, которая ссылается на файл в файловой системе, под монтированной к каталогу /home. Это очень важная особенность жестких ссылок. Если вам нужно создать ссылку на файл, который находится за пределами файловой системы, вам следует использовать символические ссылки. Для создания ссылок предназначена команда ln: ln file.txt link1 ln -s file.txt link2 Первая команда создает жесткую ссылку link1, указывающую на текстовый файл file.txt. Вторая команда создает символическую ссылку link2, которая ссылается на этот же текстовый файл file.txt. Модифицируя ссылку (все равно какую — link1 или link2), вы автоматически изменяете исходный файл — file.txt. Особого внимания заслуживает операция удаления. По идее, если вы удаляете ссылку link2, файл file.txt также должен быть удален, но не тут-то было — вы не можете его удалить до тех пор, пока на него указывает хоть одна жесткая ссылка. При удалении ссылки link2 просто будет удалена символическая ссылка, но жесткая ссылка и сам файл останутся. Если же вы удалите ссылку link1, будет удален и файл file.txt, поскольку на него больше не указывает ни одна жесткая ссылка. |
35. Команда chmod: права доступа к файлам и каталогам
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
Чтобы просмотреть текущие права доступа, введите команду: ls -l <имя файла/каталога> Рассмотрим фрагмент строки "-r--r-----" который описывает права доступа: - первый символ — это признак каталога. Сейчас перед нами файл. Если бы это был каталог, то первый символ был бы символом d (от англ. directory) - последующие три символа (r--) определяют права доступа владельца файла или каталога. Первый символ — это чтение, второй — запись, третий — выполнение. Как можно видеть, владельцу разрешено только чтение этого файла, запись и выполнение запрещены, поскольку в правах доступа режимы w и x не определены - следующие три символа (r--) задают права доступа для членов группы владельца. Права такие же, как и у владельца: можно читать файл, но нельзя изменять или запускать - последние три символа (---) задают права доступа для прочих пользователей. Прочие пользователи не имеют права ни читать, ни изменять, ни выполнять файл. При попытке получить доступ к файлу они увидят сообщение Access denied. Права доступа задаются командой chmod. Существуют два способа указания прав доступа: символьный (когда указываются символы, задающие право доступа, — r, w, x) и абсолютный. Возьмем отдельный набор прав, например для владельца: rw- Чтение разрешено — мысленно записываем 1, запись разрешена — запоминаем еще 1, а вот выполнение запрещено, поэтому запоминаем 0. Получается число 110. Если из двоичной системы перевести число 110 в восьмеричную, получится число 6. Двоичная система Восьмеричная система 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 Для новичков я бы рекомендовал вот такой вот порядок запоминания rwx 421 4 - чтение - r 2 - запись - w 1 - выполнение - x chmod 640 <имя_файла> Наиболее популярные права доступа: 644 — владельцу можно читать и изменять файл, остальным пользователям — только читать 666 — читать и изменять файл можно всем пользователям; 777 — всем можно читать, изменять и выполнять файл. Иногда символьный метод оказывается проще. Например, у нас есть файл script, который нужно сделать исполнимым, для этого можно применить команду: chmod +x script Для того чтобы снять право выполнения, указывается параметр -x: chmod -x script Подробнее о символьном методе вы сможете прочитать в руководстве по команде chmod (выполнив команду man chmod). |
36. Команда chown: смена владельца файла
1 2 3 4 5 |
Если вы хотите "подарить" кому-то файл, т. е. сделать какого-то пользователя владельцем файла, то вам нужно применить команду chown: chown пользователь файл ПРИМЕЧАНИЕ Возможно, что после изменения владельца файла вы сами не сможете получить к нему доступ, ведь владельцем будете уже не вы. |
37. Специальные права доступа (SUID и SGID)
1 2 3 4 5 6 7 8 9 10 11 |
Мы рассмотрели обычные права доступа к файлам, но в Linux есть еще так называемые специальные права доступа: SUID (Set User ID root) и SGID (Set Group ID root). Данные права доступа позволяют обычным пользователям запускать программы, требующие для своего запуска привилегий пользователя root. Например, демон pppd требует привилегий root, но чтобы каждый раз при установке PPP-соединения (модемное, ADSL-соединение) не входить в систему под именем root, достаточно установить специальные права доступа для демона pppd. Делается это так: chmod u+s /usr/sbin/pppd Однако не нужно увлекаться такими решениями, поскольку каждая программа, для которой установлен бит SUID, является потенциальной "дырой" в безопасности вашей системы. Для выполнения программ, требующих прав root, намного рациональнее использовать программы sudo и su (описание которых можно получить по командам man sudo и man su). |
38. Команда chattr: атрибуты файла, запрет изменения файла
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
С помощью команды chattr можно изменить атрибуты файла. Параметр + устанавливает атрибут, а параметр — атрибут снимает. Например: # chattr +i /boot/grub/menu.lst Данная команда устанавливает атрибут i, запрещающий любое изменение, переименование и удаление файла. Установить этот атрибут, равно как и снять его, имеет право только суперпользователь или процесс с возможностью CAP_LINUX_IMMUTABLE. Чтобы изменить файл, нужно очистить атрибут с помощью команды: # chattr -i /boot/grub/menu.lst Если установить атрибут j, то все данные, прежде чем они будут записаны непосредственно в файл, будут сохранены в журнал ext3. Данный атрибут имеет смысл, только если файловая система смонтирована с опциями data=ordered или data=writeback. Когда файловая система смонтирована с опцией data=journal, этот атрибут не имеет значения, поскольку все данные файла и так уже журналируются. Когда для файла установлен атрибут A (прописная буква), тогда не происходит обновление записи atime (в ней хранится время доступа к файлу). Это позволяет избежать лишних дисковых операций ввода/вывода, что полезно для медленных компьютеров. Если для файла установлен атрибут a, в файл можно только добавлять данные. Этот атрибут имеет право установить (или очистить) суперпользователь или процесс с возможностью CAP_LINUX_IMMUTABLE. Атрибут c заставляет систему упаковывать (сжимать) содержимое файла, что позволяет сэкономить место на диске. При чтении из этого файла возвращаются несжатые данные. При записи в файл информация автоматически сжимается и записывается на диск в уже сжатом виде. Когда изменяется каталог с установленным атрибутом D, изменения сразу же записываются на диск. Эквивалентно применению опции монтирования dirsync. Если для файла установлен атрибут d, для него не будет выполнено резервное копирование программой dump. Для файла с установленным атрибутом j его данные перед записью в файл сохраняются в журнале файловой системы ext3/ext4. Это происходит только, если файловая система смонтирована с опциями data=ordered или data=writeback. Если файловая система смонтирована с опцией data=journal, все данные уже и так журналируются и атрибут j никак на это не влияет. Этот атрибут имеет право установить(или очистить) суперпользователь или процесс с возможностью CAP_LINUX_IMMUTABLE. При изменении файла с установленным атрибутом S его данные синхронно записываются на диск. Аналогично опции монтирования sync к подмножеству файлов. Когда удаляется файл с установленным атрибутом s, система выполняет обнуление его блоков и запись их обратно на диск. При удалении файла с атрибутом u его содержимое сохраняется на диске, что позволяет впоследствии легко восстановить этот файл. Атрибуты X и Z используются экспериментальными заплатками сжатия для служебных целей. Установить любой атрибут можно командой chattr, а просмотреть — командой lsattr. Об остальных атрибутах вы сможете прочитать в справочной системе: man chattr |
39. Команды mount и umount
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
Как уже было отмечено, для Linux нет разницы между устройством и файлом. Все устройства системы представлены в корневой файловой системе как обычные файлы. Например, /dev/fd0 — это ваш дисковод для гибких дисков, /dev/hda (/dev/sda) — жесткий диск. Файлы устройств хранятся в каталоге /dev. mount [опции] <устройство> <точка монтирования> Точка монтирования — это каталог, через который будет осуществляться доступ к монтируемой файловой системе. mount /dev/cdrom /mnt/cdrom mount /dev/sdb /mnt/cdrom mount /dev/cdrom /mnt/cdrom mount /dev/dvd /mnt/cdrom mount /dev/fd0 /mnt/floppy mount /dev/fd1 /mnt/floppy mount /dev/sdb1 /mnt/usbdisk Нужно отметить, что CD/DVD-приводы, а также USB-накопители монтируются автоматически (к каталогу /media/<ID накопителя>), поэтому все, что было сказано о монтировании таких носителей, — исключительно для общего развития Для размонтирования файловой системы применяется команда umount: # umount <устройство или точка монтирования> umount /mnt/cdrom Опции монтирования файловых систем У команды mount довольно много опций, но на практике наиболее часто используются только некоторые из них: -t, -r, -w, -a. Параметр -t позволяет задать тип файловой системы. Обычно программа сама определяет файловую систему, но иногда это у нее не получается. Тогда мы должны ей помочь. Формат использования этого параметра следующий mount -t <файловая система> <устройство> <точка монтирования> Например: mount -t iso9660 /dev/hdc /mnt/cdrom Вот опции для указания наиболее популярных монтируемых файловых систем: ext2 или ext3 — файловая система Linux iso9660 — указывается при монтировании CD-ROM vfat — FAT, FAT32 (поддерживается Windows 9x, ME, XP) ntfs — NT File System (поддерживается Windows NT, XP), будет использована стандартная поддержка NTFS, при которой NTFS-раздел доступен только для чтения ntfs-3g — будет использован модуль ntfs-3g, входящий в большинство современных дистрибутивов. Данный модуль позволяет производить запись информации на NTFS-разделы. Параметр -r монтирует указанную файловую систему в режиме "только чтение". Параметр -w монтирует файловую систему в режиме "чтение/запись". Данный параметр используется по умолчанию для файловых систем, поддерживающих запись (например, NTFS по умолчанию запись не поддерживает, как и файловые системы CD/DVD-дисков). Параметр –a используется для монтирования всех файловых систем, указанных в файле /etc/fstab (кроме тех, для которых указано noauto — такие файловые системы нужно монтировать вручную). При загрузке системы вызывается команда mount с параметром -a. mount -a - часто используется для проверки правильной правки файла "/etc/fstab" (добавили nfs) без перезагрузки системы. Если вы не можете смонтировать NTFS-раздел с помощью опции ntfs-3g, то, вероятнее всего, он был неправильно размонтирован (например, работа Windows не была завершена корректно). В этом случае для монтирования раздела нужно использовать опцию –o force, например: sudo mount -t ntfs-3g /dev/sdb1 /media/usb -o force Если вы не хотите при каждой загрузке монтировать постоянные файловые системы (например, ваши Windows-разделы), то вам нужно прописать их в файле /etc/fstab формат файла fstab: устройство точка_монтирования тип_ФС опции флаг_РК флаг_проверки Здесь: тип_ФС — это тип файловой системы, а флаг_РК — флаг резервного копирования. Если он установлен (1), то программа dump заархивирует данную файловую систему при создании резервной копии. Если не установлен (0), то резервная копия этой файловой системы создаваться не будет. Флаг проверки устанавливает, будет ли данная файловая система проверяться на наличие ошибок программой fsck. Проверка производится в двух случаях: - если файловая система размонтирована некорректно; - если достигнуто максимальное число операций монтирования для этой файловой системы. С появлением системы инициализации systemd файл /etc/fstab стал далеко не единственным источником автоматического монтирования файловых систем. Он все еще поддерживается, и все, что здесь сказано об fstab, верно, но systemd позволяет монтировать файловые системы другим способом. Опции монтирования файловой системы в файле /etc/fstab auto Файловая система должна монтироваться автоматически при загрузке. Опция используется по умолчанию, поэтому ее указывать не обязательно noauto Файловая система не монтируется при загрузке системы (при выполнении команды mount -a), но ее можно смонтировать вручную с помощью все той же команды mount defaults Используется стандартный набор опций, установленных по умолчанию exec Разрешает запуск выполняемых файлов для данной файловой системы. Эта опция используется по умолчанию noexec Запрещает запуск выполняемых файлов для данной файловой системы ro Монтирование в режиме "только чтение" rw Монтирование в режиме "чтение/запись". Используется по умолчанию для файловых систем, поддерживающих запись user Данную файловую систему разрешается монтировать/размонтировать обычному пользователю (не root) nouser Файловую систему может монтировать только пользователь root. Используется по умолчанию umask Определяет маску прав доступа при создании файлов. Для файловых систем, не Linux-подобных, маску нужно установить так: umask=0 utf8 Применяется только на дистрибутивах, которые используют кодировку UTF-8 в качестве кодировки локали. В старых дистрибутивах (где используется KOI8-R) для корректного отображения русских имен файлов на Windows-разделах нужно задать параметры iocharset=koi8-u,codepage=866 |
40. Переход на ext4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
ВНИМАНИЕ! На момент ввода этой команды устройство должно быть размонтировано. Если нужно преобразовать в ext4 корневую файловую систему, то данную команду следует вводить с LiveCD, поддерживающего ext4. Если вы при установке системы выбрали файловую систему ext3, то перейти на ext4 можно без потери данных и в любой удобный для вас момент. Откройте терминал и введите команду: sudo tune2fs -O extents,uninit_bg,dir_index /dev/имя_устройства После этого проверим файловую систему: sudo fsck -pf /dev/имя_устройства Затем смонтируем файловую систему так: mount -t ext4 /dev/имя_устройства /точка_монтирования mount -t ext4 /dev/disk/by-uuid/UUID-устройства /точка_монтирования Если раздел автоматически монтируется через /etc/fstab, не забудьте исправить файловую систему на ext4: UUID=UUID-раздела /точка ext4 defaults,errors=remount-ro,relatime 0 1 Монтирование каталога к каталогу В Linux можно подмонтировать каталог к каталогу, а не только каталог к устройству. Делается это с помощью все той же команды mount, запущенной с параметром --bind: mount --bind исходный_каталог каталог_назначения |
41. Команда chroot: смена корневой файловой системы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Предположим, мы установили Windows после установки Linux, и программа установки Windows перезаписала начальный загрузчик. Теперь Windows загружается, а Linux — нет. Что делать? Нужно загрузиться с LiveCD и выполнить команду: chroot <раздел, содержащий корневую файловую систему> Например, если Linux был установлен в раздел /dev/sda5, то нужно ввести команду: chroot /dev/sda5 Данная команда сменит корневую файловую систему, т. е. вы загрузите ядро Linux с LiveCD, а затем сделаете подмену корневой файловой системы. Вам останется только ввести команду записи загрузчика (например, lilo) для восстановления начального загрузчика. Например livecd SGD: 1) Загружаемся с Super Grub Disk 2) Выбираем авто поиск системы на разделах 3) Грузимся в нашу систему 4) Чиним загрузчик из под нашей системы update-grub - обновление меню загрузчика grub-install /dev/sda - установка загрузчика на диск /dec/sda |
42. Команды поиска файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Синтаксис команды следующий: find список_поиска выражение Мощность программы find заключается в множестве самых разных параметров поиска, которые не так легко запомнить — их просто много. К тому же find может выполнять команды для найденных файлов. Например, вы можете найти временные файлы и сразу удалить их. Найти файлы с именем a.out (точнее, в имени которых содержится строка "a.out"), поиск начать с корневого каталога (/): find / -name a.out Найти файлы по маске *.txt: find / -name '*.txt' Найти файлы нулевого размера, поиск начать с текущего каталога (.): find . -size 0c Хотя для поиска пустых файлов намного проще использовать параметр -empty: find . -empty Найти файлы, размер которых от 100 до 150 Мбайт, поиск производить в домашнем каталоге и всех его подкаталогах: find ~ -size +100M -size -150M |
43. Команды kill, killall, xkill и ps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
Формат ее вызова следующий: kill [параметры] PID ps –ax | grep <имя> Например: ps –ax | grep firefox kill PID pkill firefox "Убить" процесс можно по-разному. "Убийство" процесса на самом деле сопровождается посылкой процессу определенного системного сигнала. Наиболее распространенные сигналы, используемые для завершения процесса: HUP (1) — полезен для программ-демонов. Получив этот сигнал, демон (служба) обязан перезапуститься (или перечитать файл конфигурации). Обычная программа, получив такой сигнал, завершается INT (2) — прерывание, именно этот сигнал посылается, когда вы нажимаете комбинацию клавиш <Ctrl>+<C>; KILL (9) — аварийное завершение процесса, программа не может игнорировать этот сигнал или как-то его обработать; TERM (15) — "мягкое" завершение программы (именно этот сигнал посылается программой kill по умолчанию). Программа, получив этот сигнал, должна корректно завершиться, например, освободить все занятые ресурсы, сохранить все данные. Обычно такой сигнал равносилен нормальному выходу из программы. В случае с "сильно" зависшими процессами толку от этого сигнала мало, нужно использовать KILL STOP (19) — приостанавливает выполнение процесса, этот сигнал нельзя обработать или игнорировать CONT (18) — возобновляет выполнение процесса Чтобы полностью "убить" процесс, нужно передать ему сигнал 9 (KILL): # kill -9 <PID> Кроме команды kill пользователи, предпочитающие графический интерфейс, могут применять программу xkill, позволяющую "убить" графическую программу. Введите команду xkill, указатель мыши изменится на череп, который нужно навести на окно зависшей программы и щелкнуть мышью. Обычно используется вот так вот: Жмем кнопки alt+f2 Печатаем xkill Кликаем мышкой в зависшие окно htop PID Идентификатор процесса USER Имя пользователя, запустившего процесс PR Приоритет процесса NI Значение nice VIRT Виртуальная память, использованная процессом (в килобайтах) RES Размер процесса, не перемещенный в область подкачки (в килобайтах) Этот размер равен размерам сегментов кода и данных, т. е. RES = CODE + DATA S Состояние процесса R — выполняется S — "спит" (режим ожидания), в этом состоянии процесс выгружен из оперативной памяти в область подкачки D — "непрерываемый сон" (uninterruptible sleep), из такого состояния процесс может вывести только прямым сигналом от оборудования T — процесс в состоянии трассировки или остановлен Z ("зомби") — специальное состояние процесса, когда сам процесс уже завершен, но его структура еще осталась в памяти %CPU Занимаемое процессом процессорное время %MEM Использование памяти процессом TIME+ Процессорное время, израсходованное с момента запуска процесса COMMAND Команда, которая использовалась для запуска процесса (обычно имя исполнимого файла процесса) |
44. Команды nice и renice: изменение приоритета процесса
1 2 3 4 5 6 7 8 9 10 |
Предположим, что вы работаете с видео и вам нужно перекодировать файл из одного видеоформата в другой. Конвертирование видео занимает много процессорного времени, а хотелось бы все сделать как можно быстрее и уйти раньше домой. Тогда вам поможет программа nice — она позволяет запустить любую программу с указанным приоритетом. Ясно — чем выше приоритет, тем быстрее будет выполняться программа. Формат вызова команды следующий: nice -n <приоритет> команда аргументы Максимальный приоритет задается числом −20, а минимальный — числом 19. Приоритет по умолчанию равен 10. Если процесс уже запущен, тогда для изменения его приоритета можно использовать команду renice: renice –n <приоритет> -p PID |
45. Команда fuser: кто открыл ресурс?
1 2 3 4 5 6 7 8 9 10 11 |
Иногда очень полезно знать, какая программа использует тот или иной порт или файл (каталог). В Windows для этого нужно устанавливать дополнительные программы сторонних разработчиков, в Linux применяется штатная команда fuser. Рассмотрим примеры ее использования: fuser -va 22/tcp fuser -va /home/user/report.doc sudo fuser -k -TERM -m /home/user/report.doc Первая команда показывает PID процесса, использующего порт 22. Вторая демонстрирует, какой процесс имеет доступ к файлу /home/user/report.doc. А третья команда завершает все процессы (отправляет им сигнал TERM), которые используют файл /home/user/report.doc. |
46. Команда cmp: сравнение двух файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Команда cmp используется для сравнения двух файлов. Если файлы идентичны, то cmp вообще никак не реагирует. А вот если файлы отличаются, то cmp выводит номер строки и номер символа в строке, откуда начинается различие. Команда cmp более универсальна, поскольку она может использоваться как для сравнения текстовых, так и двоичных файлов. А вот команда diff и ее аналоги умеют сравнивать только текстовые файлы. Формат вызова команды следующий: cmp [параметры] файл1 файл2 Параметры: -c Вывод отличающихся символов -i n Игнорировать первые n символов -l Вывод позиций всех отличий, а не только первого -s Не выводить информацию на экран, при этом код возврата будет следующим: 0 — файлы одинаковые 1 — файлы отличаются 2 — ошибка при открытии одного из файлов |
47. Команда column: разбивка текста на столбцы
1 2 3 4 5 6 7 8 9 10 11 |
Команда column используется для разбивки текста на несколько столбцов. Текст может быть прочитан как из файла, так и со стандартного ввода, если файл не указан. Формат вызова команды: column [параметры] [файл] Параметры: -c n Задает количество столбцов (число n) -s символ Указанный символ будет использоваться в качестве разделителя столбцов -t Текст будет форматироваться как таблицы. По умолчанию разделителем полей считается пробел, но с помощью параметра -s можно задать другой разделитель -x Сначала будут заполняться столбцы, а потом строки |
48. Команда comm: еще одна команда для сравнения файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Команда comm сравнивает содержимое двух файлов, которые были перед этим отсортированы командой sort. Вывод программы располагается в три столбца. В первом выводятся строки из файла1, во втором — из файла2, а в третьем — строки, которые имеются в обоих файлах. Формат вызова программы следующий: comm [параметры] файл1 файл2 Параметры: -1 Не выводить первый столбец -2 Не выводить второй столбец -3 Не выводить третий столбец -12 Будет выведен только третий столбец -13 Будет выведен только второй столбец -23 Вывод только первого столбца |
49. Команда diff: сравнение файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Команда используется для сравнения двух файлов. Формат вызова программы diff: diff [параметры] файл1 файл2 В выводе программы отличающиеся строки помечаются символами ">" и "<": - строка из первого файла помечается символом "<" - строка из второго файла — символом ">" Параметры: -a Сравнение всех файлов, в том числе бинарных -b Программа будет игнорировать пробельные символы в конце строки -B Игнорирует пустые строки -e Применяется для создания сценария для редактора ed, который будет использоваться для превращения первого файла во второй -w Игнорирует пробельные символы -y Вывод в два столбца -r Используется для сравнения файлов в подкаталогах. Вместо первого файла указывается первый каталог, вместо второго файла — соответственно второй каталог |
50. Команда diff3: сравнение трех файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Похожа на команду diff, только используется для сравнения трех файлов. Формат вызова команды таков: diff3 [параметры] файл1 файл2 файл3 Программа выводит следующую информацию: ==== — все три файла разные ===1 — первый файл отличается от второго и третьего ===2 — второй файл отличается от первого и третьего ===3 — третий файл отличается от первого и второго Параметры: -a Сравнивать файлы как текстовые, даже если они являются бинарными -A Создание сценария для редактора ed, который показывает в квадратных скобках все отличия между файлами -e Создает сценарий для ed, который помещает все отличия между файлами файл2 и файл3 в файл файл1 (будьте осторожны!) -i Добавить команды w (сохранить файл) и q (выйти) в конец сценария ed -x Создание сценария редактора ed, который помещает отличия между файлами в файл файл1 -X То же, что и -x, но отличия выделяются -3 Создает сценарии d, который помещает все различия между файлами файл1 и файл3 в файл1 |
51. Команда egrep: расширенный текстовый фильтр
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Производит поиск строки в одном или нескольких файлах. Команда egrep похожа на команду grep (которая будет описана позже), но считается более быстрой и более функциональной. Если файлы не заданы, то программа читает текст из стандартного ввода. Формат вызова программы: egrep [параметры] строка файлы Параметры: -A n Вывод n строк после строки, в которой есть искомая строка -B n Вывод n строк перед строкой, содержащей искомую строку -b Выводит для каждой строки файла, где есть искомая строка, ее положение в файле -c Выводит количество совпадений, но не выводит сами совпадения -C Выводит две строки до и две строки после строки, которая содержит искомую строку -e строка Используйте данный параметр, если искомая строка начинается с символа "-" -f файл Производит поиск искомых строк, которые имеются в указанном файле -h Выводит строки, содержащие искомую строку, но не выводит имена содержащих их файлов -i Игнорировать регистр букв -n Выводит номера строк (и сами строки), содержащих искомую строку -s Не выводить сообщения об ошибке, если некоторые файлы не могут быть открыты -w Поиск совпадения целого слова с искомой строкой -x Поиск совпадения целой строки с искомой строкой Пример использования: egrep "ppp [11]" * Данная команда ищет строку, заключенную в кавычки во всех файлах в текущем каталоге. |
52. Команда expand: замена символов табуляции пробелами
1 2 3 4 |
Команда expand заменяет в указанных файлах символы табуляции на соответствующее количество пробелов. Команде можно передать лишь один параметр -i, означающий, что замена должна быть только в начале строки. Формат вызова команды: expand [-i] файлы |
53. Команда fmt
1 2 3 4 5 6 7 8 9 10 |
Команда fmt форматирует текст, выравнивает его по правой границе и удаляет символы новой строки. Синтаксис вызова команды: fmt [параметры] файлы Парамаетры: -c Не форматировать первые две строки -p префикс Форматировать только строки, начинающиеся с указанного префикса -s Не объединять строки -t Начинать параграф с красной строки -w n Задает максимальную длину строки в n символов (по умолчанию 72) |
54. Команда fold
1 2 3 4 5 6 7 8 |
Выравнивает текст по правому краю. Производит разрыв строк, если это необходимо. Максимальная длина строки — 80 символов. Установить другую длину строки можно с помощью параметра -w, как и в случае с командой fmt. Кроме того, можно указать параметр -s, разрешающий разрыв строки только на пробеле. Формат вызова команды: fold [параметры] файлы |
55. Команды head и tail: вывод начала и хвоста файла
1 2 3 4 5 6 |
Команда head выводит первые десять строк файла, а tail — последние десять. Количество строк может регулироваться с помощью параметра -n. Пример использования: head -n 10 /var/log/messages tail -n 15 /var/log/messages |
56. Команда sort: сортировка файлов
1 2 3 4 5 6 7 8 9 10 11 |
Сортирует все указанные файлы, результат сортировки всех указанных файлов отправляется на стандартный вывод. Синтаксис вызова команды: sort [параметр]... [файлы] Параметры: -b Пробелы в начале сортируемых полей или начале ключей будут игнорироваться -d При сортировке будут игнорироваться все символы, кроме букв, цифр и пробельных символов -f Игнорировать регистр букв -r Сортировка в обратном порядке -o файл Вывод результатов сортировки в файл -t символ Использование указанного символа в качестве разделителя полей |
57. Команда split: разбиение файлов на несколько частей
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Используется для разделения файлов на части. По умолчанию создаются части размером в 1000 строк. Изменить размер можно, указав количество строк, например: split -500 файл1 В данном случае файл будет разбит на части по 500 строк в каждой (кроме, возможно, последней части, где может быть меньше строк). Команду можно также использовать для разделения файлов на части по размеру информации, а не по количеству строк, например с помощью параметра -b можно указать количество символов в каждой части. Примеры вызова команды: split -b100b файл split -b100k файл split -b100m файл Первая команда разделит файл на части по 100 байтов каждая, вторая — на части по 100 Кбайт каждая, третья — по 100 Мбайт каждая. |
58. Команда unexpand: замена пробелов символами табуляции
1 2 3 4 5 |
Заменяет последовательные пробелы символами табуляции. По умолчанию 8 пробелов заменяются одним символом табуляции. Количество пробелов можно задать с помощью параметра -t n (где n — количество пробелов). Синтаксис вызова: unexpand [параметры] файл |
59. Команда wc: подсчет слов в файле
1 2 3 4 5 6 7 8 9 10 |
Команда wc используется: для подсчета слов в текстовом файле: wc /var/log/messages для подсчета количества строк (если задан параметр -l): wc -l /var/log/messages для подсчета количества символов (параметр -c): wc -c /var/log/messages. |
60. маршрутизация
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
netstat -rn route -n Destination Адрес сети назначения Gateway Шлюз по умолчанию Genmask Маска сети назначения Flags Поле Flags содержит флаги маршрута: U — маршрут активен H — маршрут относится не к сети, а к хосту G — данная машина является шлюзом, поэтому при обращении к ней нужно заменить MAC-адрес машины получателя на MAC-адрес шлюза (если MAC-адрес получателя почему-то известен) D — динамический маршрут, установлен демоном маршрутизации M — маршрут, модифицированный демоном маршрутизации C — запись кэширована ! — запрещенный маршрут Metric Метрика маршрута, т. е. расстояние к цели в хопах (переходах). Один хоп (переход) означает один маршрутизатор Ref Количество ссылок на маршрут. Не учитывается ядром Linux, но в других операционных системах, например, в FreeBSD, вы можете столкнуться с этим полем Use Содержит количество пакетов, прошедших по этому маршруту Iface Используемый интерфейс MSS Максимальный размер сегмента (Maximum Segment Size) для TCP-соединений по этому маршруту Window Размер окна по умолчанию для TCP-соединений по этому маршруту irtt Протокол TCP гарантирует надежную доставку данных между компьютерами. Для такой гарантии используется повторная отправка пакетов, если они были потеряны. При этом ведется счет времени: сколько нужно ждать, пока пакет дойдет до назначения и придет подтверждение о получении пакета. Если время вышло, а подтверждение так и не было получено, то пакет отправляется еще раз. Это время и называется roundtrip time (время "путешествия туда-обратно"). Параметр irtt — это начальное время rtt. В большинстве случаев подходит значение по умолчанию, но для некоторых медленных сетей, например, для сетей пакетного радио, значение по умолчанию слишком короткое, что вызывает ненужные повторы. Параметр irtt можно увеличить командой route. По умолчанию его значение — 0 команда задает шлюз по умолчанию для интерфейса eth0: # route add default gw 192.168.181.2 eth0 Команда route за один вызов может добавить или удалить только один маршрут. Другими словами, вы не можете сразу добавить или удалить несколько маршрутов. Формат вызова команды route следующий: route [операция] [тип] адресат gw шлюз [метрика] [dev интерфейс] Параметр операция может принимать два значения: add (добавить маршрут) и del (удалить маршрут). Параметр тип необязательный, он задает тип маршрута: -net (маршрут к сети), -host (маршрут к узлу) или default (маршрут по умолчанию). Параметр адресат содержит адрес сети (если задается маршрут к сети), адрес узла (при добавлении маршрута к сети) или вообще не указывается, если задается маршрут по умолчанию. Параметр шлюз задает IP-адрес (или доменное имя) шлюза. Последние два параметра — метрика и dev необязательны. Параметр метрика задает максимальное число переходов (через маршрутизаторы) на пути к адресату. В Linux он необязательный, в отличие от других ОС. Последний параметр имеет смысл указывать, если в системе установлено несколько сетевых интерфейсов и нужно задать, через какой именно сетевой интерфейс следует отправить пакеты по указанному маршруту. Команда удаления маршрута выглядит так: route del адрес В других UNIX-системах есть параметр -f, удаляющий все маршруты (route -f), но в Linux такого параметра нет. Следовательно, для очистки всей таблицы маршрутизации вам нужно будет ввести серию команд route del. Изменять таблицу маршрутизации нужно только, зарегистрировавшись на компьютере локально. При удаленной регистрации (например, по ssh) легко ошибочно удалить маршрут, по которому вы "вошли в систему". О последствиях такого действия, думаю, говорить не нужно. Примеры: route add -net 192.76.16.0 netmask 255.255.255.0 dev eth0 Эта команды добавляет маршрут к сети 192.76.16.0 через устройство eth0. Шлюз не указан, просто все пакеты, адресованные сети 192.76.16.0, будут отправлены на интерфейс eth0. route add -net 192.16.16.0 netmask 255.255.255.0 gw 192.76.16.1 Эта команда добавляет маршрут к сети 192.16.16.0 через маршрутизатор 192.76.16.1. Сетевой интерфейс задавать не обязательно, но можно и указать при особом желании. route add default gw gate1 Эта команда добавляет маршрут по умолчанию. Все пакеты будут отправлены компьютеру с именем gate1. Обратите внимание: мы указываем доменное имя узла вместо IP-адреса. route add -net 10.1.0.0 netmask 255.0.0.0 reject Эта команда добавляет запрещающий маршрут. Отправка пакетов по этому маршруту (в сеть 10.1.0.0) запрещена. |
61. Команда pppoeconf: настройка DSL-соединения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
DSL (Digital Subscriber Line) — цифровая абонентская линия, позволяющая производить двунаправленный обмен данными по телефонной линии. Существует несколько вариантов DSL-линий: ADSL, VDSL, SDSL, RADSL. Наиболее распространены ADSL-линии. ADSL (Asymmetric DSL) — асимметрическая цифровая линия. Для передачи данных используется витая пара телефонной сети. Скорость передачи данных зависит от расстояния, например 1,5 Мбит/с при расстоянии в 5—6 км. Но обычно скорость ограничивается провайдером и зависит от тарифного плана. Самый доступный тарифный план подразумевает скорость передачи данных 128 Кбит/с. Раньше были соединения и на скорости 64 Кбит/с, но сейчас уже таких нет. Сегодня обычным домашним пользователям доступны соединения со скоростью передачи данных от 1 до 20 Мбит/с. В Debian/Ubuntu/Denix для настройки DSL-соединения используется удобная программа pppoeconf, запустить ее можно так: sudo pppoeconf Согласно спецификации PPPoE существуют две стадии: стадия поиска и стадия сессии. На первой стадии производится отправка специальных пакетов PADI (PPPoE Active Discovery Initiation), которые позволяют найти активные концентраторы доступа PPPoE. Стадия сессии — это само соединение и передача информации. После того как концентратор доступа будет найден, программа предложит вам создать резервную копию файла /etc/ppp/peers/dsl-provider, поскольку именно этот файл будет изменен в процессе настройки соединения. Если вы до этого не настраивали DSL-соединение, то в этом файле ничего не будет, поэтому можете даже не предпринимать никаких действий. Далее программа предложит установить популярные опции соединения (noauth и defaultroute): не стоит от них отказываться, поскольку их использует большинство провайдеров. Следующие два шага — ввод имени пользователя и пароля, которые применяются для аутентификации на сервере провайдера. После этого программа предложит вам добавить полученные от провайдера IP-адреса DNS-серверов в файл /etc/resolv.conf. Следующий вопрос — хотите ли вы устанавливать соединение при загрузке системы? А после этого программа спросит вас, хотите ли вы установить соединение немедленно. Для включения/отключения DSL-соединения используются следующие команды: sudo pon dsl-provider sudo poff dsl-provider |
62. Команда pppconfig: настройка модемного (PPP) соединения
1 2 3 4 5 |
Кроме команды pppoeconf в дистрибутивах Debian/Ubuntu/Denix есть команда pppconfig, которая настраивает модемное PPP-соединение. Она напоминает программу pppoeconf — вам нужно запустить ее и следовать инструкциям мастера настройки соединения. Ничего сложного. Запускать программу нужно так: sudo pppoeconf |
63. Команда wvdial: настройка PPP-соединения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
Программа wvdial также используется для создания PPP-соединения, но, чтобы не рассматривать две программы для создания таких соединений, мы обсудим ее для настройки GPRS/EDGE-соединения — это более актуально в наши дни, нежели модемное соединение. Вам нужно раздобыть настройки GPRS вашего оператора. Проще всего найти компьютер, подключенный к Интернету, и зайти на сайт оператора. В большинстве случаев там все описано. Если нет, то придется звонить в службу поддержки оператора и записывать параметры под диктовку. Для подключения к Интернету мы будем использовать программу wvdial — это значительно проще, чем создавать собственные скрипты для демона pppd. Данная программа обычно входит в состав дистрибутива, но не устанавливается по умолчанию. Поэтому ее нужно установить: rpm -ihv wvdial* sudo apt-get install wvdial yum install wvdial конфиг: /etc/wvdial.conf ---------------- [Dialer Defaults] # Порт, к которому подключен телефон Modem = /dev/ttyS0 # если телефон подключен к COM-порту # Modem = /dev/ircomm0 # инфракрасный порт # Modem = /dev/ttyUSB0 # телефон подключен по USB # Modem = /dev/ttyACM0 # телефон подключен по USB (см. примечание) # Скорость Baud = 115200 # можно не изменять # Стандартная строка инициализации модема Init1 = ATZ # Строка инициализации GPRS Init2 = AT+CGDCONT=1,"IP","AP" # Не изменяйте эти параметры # Для контрактных абонентов некоторых операторов опцию ISDN нужно # установить в 1 ISDN = 0 Modem Type = Analog Modem Carrier Check = no # Номер, по которому осуществляется соединение Phone = *99# # Имя пользователя и пароль Username = логин Password = пароль ---------------- ПРИМЕЧАНИЕ Некоторые телефоны, подключаемые к компьютеру по USB, определяются в Linux как устройства /dev/ttyACMn (где n — номер). Следовательно, если не выходит подключиться с использованием устройства /dev/ttyUSB0, тогда следует попробовать использовать устройство /dev/ttyACMn. Давайте разберемся, что нужно изменить вам "под себя". Во-первых, имя модема. В данном случае используется первый последовательный порт (ttyS0). Если вы подключаетесь с помощью USB-кабеля, то нужно указать другое имя устройства, например ttyUSB0. Во-вторых, необходимо указать точку доступа своего оператора (AP) — эту информацию надо получить у него. Например, для МТС точка доступа будет такой: internet.mts.ru. Затем следует изменить телефон доступа. Он зависит не только от оператора, но и от модели самого телефона, например: *99# — для телефонов Nokia, Ericsson, Motorola, SonyEricsson, Sendo *99***1# — для телефонов Siemens, Alcatel, Handspring, LG, Panasonic, Mitsubishi, Sagem *99**1*1# — для Samsung. Комбинация логина и пароля зависит от вашего оператора — например, для МТС нужно указать имя пользователя mts и такой же пароль (тоже mts). Уточните эти параметры у своего оператора. |
64. Текстовые браузеры
1 2 3 |
Если графический режим недоступен (например, на сервере), а по сети побродить хочется, можно использовать текстовый браузер lynx. В некоторых дистрибутивах вместо lynx используются браузеры links и elinks, но суть остается той же — просмотр страниц Интернета в текстовом режиме. В современных дистрибутивах текстовые браузеры не устанавливаются по умолчанию, поэтому их нужно установить отдельно. |
65. Команда ftp: FTP-клиент
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Для открытия соединения с любым FTP-сервером введите команду: ftp <имя или адрес FTP-сервера> Можно просто ввести команду ftp, а в ответ на приглашение ftp> ввести команду: open <имя или адрес FTP-сервера> Подключившись к серверу, вы можете ввести команду help, чтобы просмотреть список доступных команд. Для получения справки по той или иной команде введите help <имя_команды>. Наиболее популярные команды: ls Вывести содержимое каталога get Загрузить файл с сервера put Загрузить файл на сервер mget Получить несколько файлов с сервера. Допускается использование масокфайлов, например *.rpm mput Загрузить несколько файлов на сервер cd Изменить каталог mkdir Создать каталог rmdir Удалить пустой каталог delete Удалить файл |
66. Команда wget: загрузка файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
Программа wget — это лучший текстовый менеджер закачки файлов. Программа поддерживает протоколы HTTP, HTTPS и FTP. Использовать ее нужно так: wget [параметры] URL Некоторые параметры: --background Перейти в фоновый режим после запуска --quiet Тихий режим, сообщения wget не выводятся --input-file=file Считать URL из файла file, файл не обязательно должен быть в формате HTML. Если вы указали URL в файле и в командной строке, то сначала будут загружены URL из командной строки, апотом из файла --force-html Обязательно считать файл, указанный в предыдущем параметре, HTML-файлом --tries=number Устанавливает количество попыток загрузки URL --no-clobber Если при загрузке файла оборвалось соединение, то этот параметр позволит продолжить загрузку с места обрыва --continue Возобновление загрузки файла, например, если прервалась связь. Этот параметр нужно использовать, если вы забыли укаать параметр --no-clobber, а связь прервалась и вам нужно докачать файл, а не начинать его загрузку заново --wait=seconds Задает паузу в секундах между загрузками и повторами, что позволяет снизить нагрузку на сервер --quota=quota Задает максимальный размер загружаемых файлов (в байтах, килобайтах (после числа указывается k) и мегабайтах (после числа — m)). Квота не работает при загрузке одного файла, поскольку даже если квота превышена, то текущий файл загружаетсядо конца (если есть физически место на диске) --http-user=user Задают имя пользователя при HTTP-аутентификации, тип аутентификации устанавливается автоматически программой --http-passwd=pass Задают пароль при HTTP-аутентификации, тип аутентификации устанавливается автоматически программой --proxy-user=user Задают имя пользователя прокси-сервера --proxy-passwd=pass Задают пароль прокси-сервера --passive-ftp Пассивный режим FTP, обычно используется при наличии брандмауэра --recursive Включить рекурсивную загрузку, которая используется для рекурсивной загрузки сайтов --level=depth Максимальная длина рекурсивной загрузки (по умолчанию5 уровней) Примеры использования: wget --recursive http://site.ru wget http://site.ru/1.zip wget -r -l 10 -k http://example.org/ Скопировать весь сайт целиком |