В Windows для многих является совершенно привычной вещью менеджер закачек. Linux нам то же его предоставляет при том несколько вариантов, но мы рассмотрим один из самых популярных, особенно когда дело касается больших файлов: консольную качалку wget. На самом деле ее интерфейс весьма прост, поэтому начнем с ней знакомится не откладывая дело в долгий ящик.
Решим с помощью нее несколько простых задач(качать будем ну например CentOS с зеркала Яндекс):
Задача 1 просто скачать файл:
wget http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso
В этом случае файл сохранится в домашнем каталоге. Или в том каталоге в который перешел пользователь до начала загрузки wget'ом
Задача 2 Скачать и сохранить файл в определенный каталог:
wget -P /home/auser/download http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso
Не забываем про волшебное сочетание: ./ Это указывает на текущий каталог и заставляет уже в нем искать необходимую папку. Обратите внимание при необходимости иерархия папок указанная после ключа -P будет создана.
Задача 3: скачать файлы из списка, хранящемся в файле:wget -i spisok.txt
В сам файл нужно записать прямые ссылки на файлы. И wget последовательно скачает файлы из списка.
Задача 4: докачка файла:
wget -с http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso
Здесь важно предварительно перейти в директорию, где хранится нужный файл, а ключ c(continue) укажет что необходима докачка.
Задача 5: создать зеркальную копию сайта(на примере http://mirror.yandex.ru/):
wget -r http://mirror.yandex.ru/
Ключ -r заставляет заходить wget последовательно во все подкаталоги и воссоздавать всю структуру каталогов у вас на компьютере. Так же можно указать уровень рекурсии, то приведет к скачиванию только части каталогов. Допустим файловая структура site/content/1.htm и внутри content еще есть каталог subcontent. Вот если мы укажем уровень рекурсии 2, то будет загружен лишь каталог content , а подкаталог subcontent нет.
Задача 6:отключить машину по окончании загрузки:
sudo wget http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso &&shutdown -h now
Нам обязательно нужно предоставить права суперпользователя для того чтобы могла сработать команда shutown, флаг -h(halt) говорит о том что компьютер нужно выключить а now я думаю объяснять не надо:) При помощи операции логического И(&&) мы объединяем две операции для последовательного выполнения, т.е. сначала будет выполнено скачивание файла, а затем команда shutdown. Внимательно изучите вывод команды wget --help в нем много интересного:)
Удачных закачек!
Блог, описывающий повседневную жизнь линуксоида совсем недавно перешедшего из мира Windows
вторник, 5 октября 2010 г.
воскресенье, 3 октября 2010 г.
Прокачиваем gedit
Gedit это программа, которая идет по умолчанию с GNOME и является аналогом Блокнота Windows. Точнее говоря Блокнот Windows это жалкая тень Gedit:) Gedit по своим возможностям споставим с OpenSource проектом Notepad++ в Windows. Нам итак из коробки предоставляется возможность подсветки синтаксиса многих языков программирования, проверки орфографии, вывода статистики документа, сопряжения с внешними программами и т.д.
Но на самом деле это далеко не все: у Gedit есть постоянно расширяющийся набор плагинов. Вот о них то мы и поговорим. Чтобы установить их наберем в командной строке:
sudo apt-get install gedit-plugins
Дальше запускаем Gedit и входим в меню плагинов: Правка->Параметры->Модули
А здесь нам откроется выбор плагинов.
Меня заинтересовали такие модули:
1) Встроенный терминал. При помощи этого модуля вы сможете получить доступ из Gedit к командной строке Linux.
2) Дополнение скобок. Добавляет автоматически закрывающие скобки
3) Python консоль. Комментарии не требуются:)
На самом деле это далеко не все плагины. Не забудьте включить нижнюю панель в меню Вид
четверг, 30 сентября 2010 г.
Python для студента
Python это простой для освоения, открытый интерпритируемый язык. Но чем он полезен студенту? Кроме всех перечисленных свойств он имеет кучу открытых расширений.
Пройдемся по некоторым:
Numpy это библиотека матричных вычислений на Python. Его особенностью является использование С++ и С кода для реализации матричных вычислений.Это дает хороший прирост скорости,так как все эти операции сразу используют скомпилированные расширения python, написанные на С/С++ c использованием низкоуровневой библиотеки LAPPACK(решатель задач линейной алгебры). Эта же библиотека лежит в основе MATLAB
Но одной линейной алгебры мало нам и по сему обратим свой взор к Scipy она использует numpy и предоставляет такие возможности(взято из Википедии):
Доступные субпакеты
Дополнительная функциональность:
Основной функционал SciPy расширяется за счёт других инструментов.
Например:
Графика. На данный момент рекомендованным пакетом для отрисовки двухмерной графики является Matplotlib, тем не менее существует множество других, например HippoDraw, Chaco, и Biggles. Также популярными являются Python Imaging Library и MayaVi (для 3D визуализации)
Оптимизация. Хотя SciPy имеет свой пакет для оптимизации, OpenOpt имеет доступ к большему количеству оптимизационных пакетов и решателей
Продвинутый анализ данных. При помощи RPy, SciPy обеспечивает интерфейс к статистическому пакету R предназначенному для сложного анализа данных.
База данных. SciPy может взимодействовать с PyTables, иерархической базой данных разработанной для эффективного управления большими объёмами данных на основе HDF5.
Интерактивная оболочка. IPython это интерактивная среда которая обеспечивает дебаггинг и создание кода в стиле близком к MATLAB. Ну что ж мне кажется Вики все вполне хорошо описала для затравки.
Символьная математика. Существует несколько библиотек для Python, такие как PyDSTool, Symbolic и SymPy-- которые позволяют работать с символьной математикой.Библиотеки
Как видите это довольно серьезный набор для математика.Кроме того такие библиотеки как NetworkX,Boost.Python,igraph позволяют работать со структурами типа графов.
Если же касаться вопроса о символьной математике детальней, то остановемся на Sympy
Это библиотека позволяет дифференцировать, интегрировать, раскладывать в ряды и производить упрощения символических выражений. Библиотека свободная для использования под лицензией BSD, а по сему вы можете делать на ее основе и коммерческие продукты. В конце статьи будут приведены некоторые дополнительные ссылки.
А если мы хотим написать игру? Пожалуйста BSD библиотека PyGame спешит нам на помощь.Она позволит нам:
Создать нестандартный интерфейс
Работать с текстурами
Звуком
Другими графическими файлами
Библиотека использует средства OpenGL. Кроссплатформеная. Легка в инсталяции. На ее основе сделаны различные разработки в области графики кроме 2D игр.
Кстати если вы психолог, то вас может заинтересовать система проведения экспериментов в области восприятия PsychoPy. Это открытая разработка интгерирующая в себе инструменты для проведения экспериментов и их последующую численную обработку. Начинается все с того что вы пишите python скрипт, который описывает будущий эксперимент. Затем уже по его результатам система позволит провести различные статистические рассчеты по его результатам. Поддерживается весьма широкий спектр статических и прочих математических функций.
А захотелось нам например реализовать задачи связанные со сложной обработкой и анализом текстов. Пожалуйста! для этого у нас есть такой инструмент как NLTK (опять же под лицензией Apache).Эта библиотека разработана для того, чтобы предоставить инструменты анализа слов, синтаксического анализа и максимально облегчить работу с информацией текстового характера. Вокруг этой библиотеки реализовано много академических и учебных проектов. Кроме того на основе этой библиотеки написан учебник по синтаксическому анализу и прочим вопросам работы с текстовой информацией: Natural Language Processing with python.Книжечка зарубежная и непереведенная, но сама в рунете есть. Можете поискать ее в списке книг на форуме сайта python.su
На самом деле есть еще большое множество иных библиотек, которые в обзор не попали. А для многих компонентов Linux и OpenSource приложений поставляются python-библиотеки, открывающие доступ к возможностям последних. Вобщем возможности python заслцуживают внимания:)
Ссылки:
Расширения Python,упомянутые в заметке:
Статьи:
Пройдемся по некоторым:
Numpy это библиотека матричных вычислений на Python. Его особенностью является использование С++ и С кода для реализации матричных вычислений.Это дает хороший прирост скорости,так как все эти операции сразу используют скомпилированные расширения python, написанные на С/С++ c использованием низкоуровневой библиотеки LAPPACK(решатель задач линейной алгебры). Эта же библиотека лежит в основе MATLAB
Но одной линейной алгебры мало нам и по сему обратим свой взор к Scipy она использует numpy и предоставляет такие возможности(взято из Википедии):
Доступные субпакеты
- constants: Физические константы и коэффициенты пересчёта (с версии 0.7.0)
- cluster: Векторное квантование
- fftpack: Дискретные алгоритмы преобразования Фурье
- integrate: Инструменты для интегрирования
- interpolate: Инструменты для интерполяции
- io: Ввод/вывод данных
- lib: Врапперы Python для внешних библиотек
- linalg: Линейная алгебра
- misc: Разные утилиты
- optimize: Средства оптимизации
- sandbox: Экспериментальный код
- signal: Обработка сигналов
- sparse: Поддержка разреженных матриц
- special: Специальные функции
- stats: Статистические функции
- weave: Позволяет включение кода C/C++ внутри кода Python
Дополнительная функциональность:
Основной функционал SciPy расширяется за счёт других инструментов.
Например:
Графика. На данный момент рекомендованным пакетом для отрисовки двухмерной графики является Matplotlib, тем не менее существует множество других, например HippoDraw, Chaco, и Biggles. Также популярными являются Python Imaging Library и MayaVi (для 3D визуализации)
Оптимизация. Хотя SciPy имеет свой пакет для оптимизации, OpenOpt имеет доступ к большему количеству оптимизационных пакетов и решателей
Продвинутый анализ данных. При помощи RPy, SciPy обеспечивает интерфейс к статистическому пакету R предназначенному для сложного анализа данных.
База данных. SciPy может взимодействовать с PyTables, иерархической базой данных разработанной для эффективного управления большими объёмами данных на основе HDF5.
Интерактивная оболочка. IPython это интерактивная среда которая обеспечивает дебаггинг и создание кода в стиле близком к MATLAB. Ну что ж мне кажется Вики все вполне хорошо описала для затравки.
Символьная математика. Существует несколько библиотек для Python, такие как PyDSTool, Symbolic и SymPy-- которые позволяют работать с символьной математикой.Библиотеки
Как видите это довольно серьезный набор для математика.Кроме того такие библиотеки как NetworkX,Boost.Python,igraph позволяют работать со структурами типа графов.
Если же касаться вопроса о символьной математике детальней, то остановемся на Sympy
Это библиотека позволяет дифференцировать, интегрировать, раскладывать в ряды и производить упрощения символических выражений. Библиотека свободная для использования под лицензией BSD, а по сему вы можете делать на ее основе и коммерческие продукты. В конце статьи будут приведены некоторые дополнительные ссылки.
А если мы хотим написать игру? Пожалуйста BSD библиотека PyGame спешит нам на помощь.Она позволит нам:
Создать нестандартный интерфейс
Работать с текстурами
Звуком
Другими графическими файлами
Библиотека использует средства OpenGL. Кроссплатформеная. Легка в инсталяции. На ее основе сделаны различные разработки в области графики кроме 2D игр.
Кстати если вы психолог, то вас может заинтересовать система проведения экспериментов в области восприятия PsychoPy. Это открытая разработка интгерирующая в себе инструменты для проведения экспериментов и их последующую численную обработку. Начинается все с того что вы пишите python скрипт, который описывает будущий эксперимент. Затем уже по его результатам система позволит провести различные статистические рассчеты по его результатам. Поддерживается весьма широкий спектр статических и прочих математических функций.
А захотелось нам например реализовать задачи связанные со сложной обработкой и анализом текстов. Пожалуйста! для этого у нас есть такой инструмент как NLTK (опять же под лицензией Apache).Эта библиотека разработана для того, чтобы предоставить инструменты анализа слов, синтаксического анализа и максимально облегчить работу с информацией текстового характера. Вокруг этой библиотеки реализовано много академических и учебных проектов. Кроме того на основе этой библиотеки написан учебник по синтаксическому анализу и прочим вопросам работы с текстовой информацией: Natural Language Processing with python.Книжечка зарубежная и непереведенная, но сама в рунете есть. Можете поискать ее в списке книг на форуме сайта python.su
На самом деле есть еще большое множество иных библиотек, которые в обзор не попали. А для многих компонентов Linux и OpenSource приложений поставляются python-библиотеки, открывающие доступ к возможностям последних. Вобщем возможности python заслцуживают внимания:)
Ссылки:
Расширения Python,упомянутые в заметке:
Статьи:
понедельник, 27 сентября 2010 г.
автоматизируем Linux: установка многих пакетов в один присест
Допустим каждый раз нам приходится устанавливать группу пакетов на машины. Все это набивать каждый раз в консоли утомительно, но та же консоль может снять с нас эту рутину. Все достаточно просто, напишем такой скриптик:
apt-get install djview python-djvu
При чем в строчку через пробел можно вписывать любое количество пакетов. Запускать надо его из под sudo таким образом(предположим что сохранили мы его в myinst.sh):
sudo ./myinst.sh
./ заставит оболчку просмотреть тот каталог где вы сейчас находитесь
среда, 22 сентября 2010 г.
Запускаем и выключаем Linux: Часть 1
Это вопрос довольно таки важный для любой операционной системы. Мы рассмотрим его в двух статьях, где поговорим о следующих вопросах:
1. Запускаем Linux: этапы большого пути)
Ясно что первый этап он очень сложен нажать на кнопочку power у блока машины:). После этого начинает выполняться BIOS(Basic Input Output System ) это как бы встроенная ОС компьютера, которая должна его подготовить к работе с настоящей ОС. BIOS производит проверку оборудования (т.н. POST ),активирует жесткий диск, распознает другое базовое как результат вы слышите различные звуки из спикера. Если все пройдет успешно, то BIOS насчет считывать первые 512 байт с жесткого диска, т.н. MBR(Main Boot Record Главную Загрузочную Запись ). Она должна иметь особую структуру и передать управление загрузчику. Для Linux это либо LILO либо GRUB. Они позволяют выбрать необходимую операционную систему и ядро Linux для загрузки. Рассматривать в 1 части будем GRUB как наиболее распространенный из загрузчиков, итак что же он позволяет?
1.1 Загрузка ядра и параметры загрузки
загрузчик и ядро Linux выполняет много дел. Что ж кратко пробежимся по параметрам строки:
Возьмем для примера эту:
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686
root =/dev/sda1 ro qeit
initrd /boot/initrd.img 2.6.26-2-386
Первая строчка говорит загрузчику на каком устройстве размещено устройство
Вторая, где ядро
Третья куда монтировать. параметр qeit задает ожидание
Четвертая показывает, где находится сценарий загрузки.
Что ж с этим я думаю понятно
1.2 От скрипта Init до DE(Desktop Envirement )
- Этапы запуска системы
- Что такое MBR
- Что такое загрузчики, какие они бывают и что позволяют делать
- rc сценарии загрузки
- начальное монтирование файловых систем при загрузке системы
- Проблемы загрузки
- Этапы выключения системы
- Два способа выключения системы.
1. Запускаем Linux: этапы большого пути)
Ясно что первый этап он очень сложен нажать на кнопочку power у блока машины:). После этого начинает выполняться BIOS(Basic Input Output System ) это как бы встроенная ОС компьютера, которая должна его подготовить к работе с настоящей ОС. BIOS производит проверку оборудования (т.н. POST ),активирует жесткий диск, распознает другое базовое как результат вы слышите различные звуки из спикера. Если все пройдет успешно, то BIOS насчет считывать первые 512 байт с жесткого диска, т.н. MBR(Main Boot Record Главную Загрузочную Запись ). Она должна иметь особую структуру и передать управление загрузчику. Для Linux это либо LILO либо GRUB. Они позволяют выбрать необходимую операционную систему и ядро Linux для загрузки. Рассматривать в 1 части будем GRUB как наиболее распространенный из загрузчиков, итак что же он позволяет?
- Выбирать какую операционную систему из установленных загрузить, выбирать необходимую версию ядра
- Передавать параметры ядру перед его загрузкой
- Производить операции по просмотру дисковых разделов и т.д. из командной строки
1.1 Загрузка ядра и параметры загрузки
загрузчик и ядро Linux выполняет много дел. Что ж кратко пробежимся по параметрам строки:
Возьмем для примера эту:
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686
root =/dev/sda1 ro qeit
initrd /boot/initrd.img 2.6.26-2-386
Первая строчка говорит загрузчику на каком устройстве размещено устройство
Вторая, где ядро
Третья куда монтировать. параметр qeit задает ожидание
Четвертая показывает, где находится сценарий загрузки.
Что ж с этим я думаю понятно
1.2 От скрипта Init до DE(Desktop Envirement )
Если загрузка ядра корректна, то ядро начнет инициализацию своих подсистем и поиск оборудования. Каждое действие ядра сопровождается выводом сообщений и они сохраняются в лог. Если поиск оборудования прошел успешно, то следующий этап это:
а) Старт оболочки командной строки (обычно bash). Правда это не первый процесс запускаемой системой, родителем всех процессов в системе является скрипт init. Если все пройдет успешно, то вы увидите запрос на авторизацию в системе
б) Если в системе предустановлена графическая оболочка, то после активации всех систем ядра произойдет запуск X-server это базовая графическая система в *Nix системах
И уже, исходя из файлов конфигурации X будет запущена та или иная графическая среда рабочего стола.
Вот после этого можно считать что загрузка завершена. Итак если обобщить:
2. Выключаем Linux
Когда система выключается перед ней возникает несколько задач:
Отсюда два вывода:
1. Всегда выключайте компьютер через средства операционной системы
2. Обзаводитесь такими приборами как ИБП (источники бесперебойного питания) они дадут вам время для сохранения данных и корректного завершения работы
При некорректном завершении операций ввода/вывода может сложится ситуация полного разрушения файловой системы и это не вина Linux такая ситуация характерна для любой операционной системы. К слову, журналируемые файловые системы типа Ext4/3, Raiser и другие предоставляют инструменты для максимального снижения развития ситуации по описанному сценарию. В штатном режиме работы операционная система в обязательном порядке гарантирует сброс данных диск из буферов(либо при полном их заполнении, либо при выключении).На самом деле то, что применяется такая политика записи данных имеет свои преимущества, а именно: уменьшение обращений к жесткому диску что повышает скорость работы системы. При выключении системы ядро закрывает открытые файлы, завершает все процессы, потоки, закрывает все сетевые соединения. После этого ядро останавливает различные подсистемы управления оборудованием. Ну и в конце концов ядро на современных машинах может управлять электропитанием и следовательно может программно выключить машину.
Как мы можем выключить машину?
1 способ через графический интерфейс и здесь никаких комментариев не требуется.
2 способ через командную строку, так как выключение компьютера это процесс глобальный, то вам потребуются права суперпользователя(root) значит вам придется запустить команду выключения из под sudo, а сама команда выключения это shutdown. Для этой команды существуют различные ключи и параметры, нас же интересует следующие: -h это указание к останову системы, указать время мы можем либо словесно(например чтобы немедленно выключить машину: sudo shutdown -h now) или в форме указания времени до выключения (sudo shutdown -h +30 это приведет к выключению системы через 30 мин ) или указав точное время, например(shutdown -h 18:30).
На этом завершим краткое введение в тему старта/останова Linux, а во второй части изучим все эти процессы детальней.
Вот после этого можно считать что загрузка завершена. Итак если обобщить:
- Запуск BIOS и самотестирование оборудования
- Поиск MBR и передача управления программе, записанной в MBR
- Запуск загрузчика, выбор ядра при необходимости корректировка параметров загрузки
- Определение оборудования, загрузка необходимых модулей(выгрузка если в течении 10 сек не использованы), запуск сценариев инициализации системы
- Запрос авторизации и после успеха штатный режим работы.
2. Выключаем Linux
Когда система выключается перед ней возникает несколько задач:
- Остановка всех процессов,выполняющихся в системе
- Сброс на диск данных из буферов ввода/вывода
- Закрытие всех объектов ядра и освобождение памяти
- Останов аппаратуры
- Отключение электропитания через ACPI
Отсюда два вывода:
1. Всегда выключайте компьютер через средства операционной системы
2. Обзаводитесь такими приборами как ИБП (источники бесперебойного питания) они дадут вам время для сохранения данных и корректного завершения работы
При некорректном завершении операций ввода/вывода может сложится ситуация полного разрушения файловой системы и это не вина Linux такая ситуация характерна для любой операционной системы. К слову, журналируемые файловые системы типа Ext4/3, Raiser и другие предоставляют инструменты для максимального снижения развития ситуации по описанному сценарию. В штатном режиме работы операционная система в обязательном порядке гарантирует сброс данных диск из буферов(либо при полном их заполнении, либо при выключении).На самом деле то, что применяется такая политика записи данных имеет свои преимущества, а именно: уменьшение обращений к жесткому диску что повышает скорость работы системы. При выключении системы ядро закрывает открытые файлы, завершает все процессы, потоки, закрывает все сетевые соединения. После этого ядро останавливает различные подсистемы управления оборудованием. Ну и в конце концов ядро на современных машинах может управлять электропитанием и следовательно может программно выключить машину.
Как мы можем выключить машину?
1 способ через графический интерфейс и здесь никаких комментариев не требуется.
2 способ через командную строку, так как выключение компьютера это процесс глобальный, то вам потребуются права суперпользователя(root) значит вам придется запустить команду выключения из под sudo, а сама команда выключения это shutdown. Для этой команды существуют различные ключи и параметры, нас же интересует следующие: -h это указание к останову системы, указать время мы можем либо словесно(например чтобы немедленно выключить машину: sudo shutdown -h now) или в форме указания времени до выключения (sudo shutdown -h +30 это приведет к выключению системы через 30 мин ) или указав точное время, например(shutdown -h 18:30).
На этом завершим краткое введение в тему старта/останова Linux, а во второй части изучим все эти процессы детальней.
Подписаться на:
Сообщения (Atom)
