- Linux для начинающих или чему может научить девушка?
- Упражнения по работе с командной строкой linux
- Основные команды для работы с файлами
- Работа с текстовыми файлами
- Осваиваем Linux за три недели
- Зачем сейчас нужно уметь обращаться с Linux?
- Как Linux связан с освоением других дисциплин?
- Почему для этого нужен отдельный курс?
- Что в Linux интересного?
- Как проверять решение задач на курсе по Linux? Это вообще возможно?
- А почему всё-таки Linux так хорош?
Linux для начинающих или чему может научить девушка?
Приветствую, коллеги. Долгое время проект NetSkills был посвящен исключительно сетевым технологиям — Курс молодого бойца, Основы GNS, UNetLab. Однако от подписчиков все чаще звучал вопрос: “А что еще должен знать сетевой инженер или системный администратор?”. Тут можно привести большой список технологий/направлений и в итоге сделать вывод, что знать только сети — недостаточно! Совершенно очевидно, что для успешной карьеры нужно намного больше. Поэтому было принято решение расширить проект и для начала выпустить курс “Linux для начинающих”.
Немаловажная деталь, преподаватель — девушка, которая совсем недавно примкнула к проекту NetSkills. Чему же может научить девушка? Если вы заинтересовались, добро пожаловать под кат…
Цель курса – изучить основы администрирования операционных систем Linux. Материал по большей части практический и содержит минимальное количество теории. Курс подойдет как для начинающих системных администраторов, которые занимаются настройкой серверов компании, так и для сетевых инженеров, т.к. бОльшая часть сетевого оборудования работает под управлением Linux (особенно если учитывать тенденцию импортозамещения), поэтому навыки работы с этой системой им однозначно не помешают. Да и вообще, каждый уважающий себя ИТ-шник просто обязан обладать базовыми навыками работы с Linux системами. Ценность такого сотрудника сразу вырастает.
Для тех, кому лень читать выкладываю первый видео урок:
Весь курс будет разделен на две части: базовый и расширенный курс. В базовом курсе мы рассмотрим основные понятия, научимся производить первоначальную настройку сервера, а также настроим шлюз доступа в Интернет. В расширенном курсе мы рассмотрим, как развернуть серверную инфраструктуру компании на основе Linux.
В план базового курса вошли следующие темы:
1.Цели изучения операционной системы Linux, ее основные преимущества.
2.Создание виртуальных машин.
3.Установка операционной системы CentOS.
4.Структура файловой системы Linux.
5.Основные команды, необходимые для работы в консоли Linux (cd, ls, man, grep, find, cp, mv, rm и т.д.).
6.Настройка сети в CentOS. Утилиты Putty, WinSCP.
7.Основы безопасности. Заведение новых пользователей в системе.
8.Установка пакетов. Пакетный менеджер. Репозитории.
9.Файловый менеджер mc, текстовый редактор nano и сетевые утилиты (ifconfig, nslookup, arp, telnet).
10.Настройка шлюза доступа в Интернет. Iptables. NAT. DHCP.
Итак, зачем изучать линукс и каковы его преимущества? Полагаю, стоит начать с определения.
GNU/Linux – это семейство unix-подобных операционных систем, основанных на ядре Linux. ОС из этого семейства распространяются обычно бесплатно в виде так называемых дистрибутивов, содержащих помимо самой ОС еще и набор прикладного ПО (т.е. по сути сборка). Дистрибутивов Linux на сегодняшний день существует огромное количество, но почти все они являются потомками трех основных дистрибутивов: Debian, Slackware и Red Hat. Подробнее о GNU/Linux и дистрибутивах можно прочитать здесь и здесь.
Возможно, у кого-то возник вопрос: почему GNU/Linux, а не просто Linux. Все дело в том, что Linux – это всего лишь ядро, в то время как GNU/Linux – это операционная система. Однако, Linux’ом можно называть как ядро так и ОС – и так и так будет правильно.
Условно говоря, ОС состоит из двух частей: kernel space и user space. Kernel space это ядро, которое непосредственно взаимодействует с устройствами в системе, обслуживает их и производит настройку. В нашем случае – это ядро Linux, разработка которого началась в 1991 году Линусом Торвальдсом, являвшимся на тот момент студентом. Оно поддерживает многозадачность, динамические библиотеки, виртуальную память, отложенную загрузку, большинство сетевых протоколов и производительную систему управления памятью и распространяется по лицензии GNU GPL, т.е. свободно. Подробнее про само ядро и его «увлекательную» систему нумерации версий можно узнать здесь. Пользователи же работают в пространстве user space (пространстве приложений), а это в свою очередь файлы. Вообще говоря, все в Linux’е представлено файлами — настройки, сами приложения, даже процессы. Это очень удобно при настройке и когда пытаешься выяснить почему же все поломалось.
Дистрибутивы Linux распространяются в основном по лицензии GNU General Public License – лицензии на свободное программное обеспечение. Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы, а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права.
Помимо выше указанных неоспоримых плюсов данной ОС, она обладает еще рядом особенностей:
1.Безопасность
2.Производительность
3.Надежность
4.Масштабируемость
5.Аппаратная совместимость
6.Не требуется импортозамещение
7.Зарплата Linux администраторов выше, чем у обычных администраторов
Благодаря выше перечисленным особенностям, Linux получил широкое распространение и используется во многих сферах: критические сервисы (скоростные поезда в Японии, CERN, системы контроля воздушного трафика), социальные сети, поисковые сервисы, а так же в мобильных телефонах, планшетах, ПК, банкоматах и автомобильной электронике.
Вообще говоря, на основе Linux можно сделать много чего, но мы остановимся на более повседневных вещах. Предположим, в некоторой компании, где работает большое количество пользователей, нужно развернуть серверную инфраструктуру, т.е. пользователям нужно дать доступ в Интернет, запретить в рабочее время сидеть в социальных сетях, организовать корпоративную почту, файловый сервер, и т.д. Что мы можем сделать на основе Linux? На самом деле очень даже многое.
Мы можем:
1.Настроить программный маршрутизатор/ шлюз доступа в Интернет с функциями межсетевого экрана и DHCP сервера
2.Ограничить доступ пользователей к сети Интернет с помощью proxy сервера
3.Организовать почтовый сервер для корпоративной почты
4.Создать веб сервер для корпоративного сайта и внутренних веб ресурсов
6.Настроить первичный и вторичный DNS сервера
7.Развернуть файловый сервер
8.Собирать резервные копии с остальных серверов
9.Развернуть сервер логирования для сбора событий с других серверов
Такую схему мы и будем разворачивать в рамках данного курса.
Полагаю, на этом первый урок можно закончить.
Источник
Упражнения по работе с командной строкой linux
На этой странице собраны упражнения по основным командам для манипуляции с файлами и директориями из командной строки Linux. Каждая из этих команд выполняет одно простое действие, но в дальнейшем может быть использована для составления более сложных цепочек команд.
Перед тем как начать — первый простой вопрос:
Как получить справку по команде ssh? ответ
Основные команды для работы с файлами
Как посмотреть текущую рабочую директорию? ответ
Как сменить рабочую директорию? ответ
например, cd /var/www/
Как перейти в родительскую директорию? ответ
Как вернуться в домашнюю директорию? ответ
cd — вызов команды без аргументов приводит к переходу в директорию, указанную в переменной окружения $HOME.
Как вывести список файлов в директории? ответ
ls — вывести список файлов в текущей директории
ls /var/log/ — вывести список файлов в директории /var/log/
ls -l — вывести подробный список файлов
Как посмотреть вермя последнего изменения/доступа к файлу /tmp/test.txt? ответ
ls -l /tmp/test.txt — посмотреть время последнего изменения файла
ls -lu /tmp/test.txt — посмотреть время последнего доступа к файлу
stat /tmp/test.txt — показывает 3 временные метки:
- Access — время последнего доступа к файлу (любое открытие файла для чтения: просмотр, поиск по файлу и т.п.)
- Modify — время последнего изменения файла
- Change — время изменения статуса файла (прав доступа, владельца, изменение файла).
Как создать новую директорию test? ответ
Как создать пустой файл? ответ
Существует множество способов создать пустой файл. Вот некоторые из них:
- cp empty.txt empty1.txt — скопировать любой другой пустой файл
- touch empty.txt — «потрогать» несуществующий файл
- :> empty.txt — перенаправить в файл вывод команды, которая ничего не делает
- vi empty.txt, затем сразу :wq — открыть файл и сохранить его пустым
Как создать файл /tmp/2mb.txt размером 2Mb? ответ
dd if=/dev/zero of=2mb.txt bs=1M count=2
если в предыдущей команде задать bs=1MB, то файл будет размером 2_000_000 байт.
в данном примере файл будет заполнен нулевыми байтами (0x00).
Как узнать тип файла? ответ
$ file empty.txt empty.txt: empty $ file /usr/bin/perl /usr/bin/perl: symbolic link to `perl5.16.3′ $ file /usr/bin/perl5.16.3 /usr/bin/perl5.16.3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped $ file index.html index.html: HTML document, UTF-8 Unicode text, with very long lines
Как переименовать файл? ответ
mv имя_файла новое_имя_файла
Как удалить файл/директорию? ответ
rm имя_файла — удалить файл
rmdir имя_директории или rm -r имя_директории — удалить директорию
shred -uv имя_файла — удаление файла для параноиков (без опции -u просто перезаписывает содержимое файла мусором)
Как создать символическую/жесткую ссылку на файл/директорию? ответ
ln -s имя_файла имя_ссылки — создаём символическую ссылку на файл
ln -s имя_директории имя_ссылки — создаём символическую ссылку на директорию
ln имя_файла имя_жесткой_ссылки — создаём жесткую ссылку на файл
в обычных условиях создать жесткую ссылку на директорию невозможно
Как посмотреть размер файла? ответ
ls -l имя_файла — размер файла в байтах
ls -lh имя_файла — размер файла в более привычном формате
Как как узнать размер директории? ответ
du -s имя_директории — размер места в килобайтах (блоках по 1024 байт), которое директория со всем своим содержимым занимает на диске
du -sh имя_директории — в более привычном формате
Как узнать сколько свободного места осталось на разделе диска? ответ
при помощи команды df место_монтирования_раздела или просто df
df -h выведет размеры не в килобайтах, а в более удобном формате.
df -ih выведет информацию о количестве использованных и свободных инодов
Работа с текстовыми файлами
Как сравнить два текстовых файла? ответ
diff файл_1 файл_2 или diff -a файл_1 файл_2
Как посчитать количество строк в текстовом файле? ответ
или awk ‘END
а можно открыть файл в текстовом редакторе vi имя_файла и посмотреть кол-во строк CTRL+G
Как вывести на экран отсортированные строки текстового файла? ответ
Как удалить дубли строк из файла? ответ
sort -u имя_файла
или sort имя_файла | uniq
Как дописать содержимое одного текстового файла в конец второго? ответ
cat файл_1 >> файл_2
Как разбить текстовый файл на несколько по 100 строк в каждом? ответ
split -l 100 имя_файла 100-
в результате работы этой команды в директории появятся файлы 100-aa, 100-ab… содержащие по 100 строк из исходного файла. Если исходный файл содержал число строк не кратное 100, то в последнем файле будет меньше ста строк.
Как вывести на экран первые 30 строк файла? ответ
head -n30 имя_файла
Как вывести на экран последние 30 строк файла? ответ
tail -n30 имя_файла
Как посмотреть содержимое текстового файла? ответ
cat имя_файла — вывести файл на экран целиком
more имя_файла — выводить файл на экран постранично (пробел — перейти к следующей странице, enter — на строку вниз)
less имя_файла — выводить файл на экран с возможностью перемещаться по нему вверх и вниз
vi имя_файла или nano имя_файла или emacs имя_файла — открыть файл в любимом текстовом редакторе
Как вывести на экран строки текстового файла /tmp/file.txt начинающиеся со слова ‘START’? ответ
*!G4;:%#`START/ p’ имя_файла
Как вывести на экран содержимое текстового файла без однострочных комментариев (строка комментария начинается с символа #)? ответ
Как среди нескольких файлов в директории найти те, которые содержат слово ‘test’? ответ
grep ‘test’ * — поиск во всех файлах в текущей директории
grep ‘test’ файл_1 файл_2 файл_3 — поиск только в указанных файлах
Источник
Осваиваем Linux за три недели
Идея вводного курса по работе с Linux возникла у нас с коллегами довольно давно. Я с 2011 года занимаюсь биоинформатикой в Лаборатории алгоритмической биологии СПбАУ РАН (тут и тут мой напарник писал про то, чем мы занимаемся). Сразу нужно сказать, что работа биоинформатика без Linux практически невозможна, поскольку большинство биоинформатических программ созданы именно под эту операционную систему и работают только на ней.
В силу того, что это область на стыке наук, мы постоянно общаемся с биологами. Биологам же сейчас приходится работать с очень большими объемами данных, поэтому умение использовать Linux, оптимальную для подобных задач операционную систему, становится необходимым навыком. На самом деле, речь не только об умении обращаться с Linux, а в целом о компьютерной грамотности: какие существуют правила работы на сервере, как загружать и эффективно хранить файлы с данными, какие программы запускать для их обработки и как это сделать и т.д. — все те вещи, которые как упрощают и ускоряют вашу работу, так и значительно облегчают совместную деятельность с коллегам. Несмотря на то, что разобраться с Linux можно и самостоятельно, почитав умные книжки и сайты, для людей из не технической среды это часто вызывает определенные сложности и многие сдаются на начальных этапах освоения этой ОС (например, на знакомстве с командной строкой).
На основе нашего опыта я и мой коллега Андрей Пржибельский (@andrewprzh) изначально собирались провести несколько занятий для биологов по компьютерной грамотности. А потом эта идея выросла в трехнедельный открытый онлайн-курс (MOOC) Института биоинформатики на русском языке, который позже был сужен до именно введения в Linux, как отправной точки, — поскольку вместить все в три недели оказалось очень и очень трудно. Курс уже начался и оказался достаточно популярен (на данный момент на него записалось более пяти тысяч человек), но первый дедлайн по заданиям — 24 ноября, поэтому еще можно присоединиться без потери баллов или просто изучать курс в свободном режиме (все материалы останутся открытыми).
Про саму подготовку первого в нашей жизни онлайн-курса, если сообществу интересно, мы напишем отдельный пост — это совсем не так просто и быстро, как может показаться на первый взгляд.
Но сначала хотелось бы остановиться на ответах на вопросы, которые нам задавали чаще всего. При подготовке курса мы общались с самыми разными людьми и столкнулись с тем, что многие совсем не понимают, где используется Linux, и не догадывались, что система может быть им полезна. Итак:
Зачем сейчас нужно уметь обращаться с Linux?
Многие не замечают, но Linux уже вокруг нас. Все Android устройства работают на Linux, большинства серверов в Интернете также используют эту операционную систему и есть множество других примеров. Конечно, можно продолжать пользоваться всеми этими вещами и не зная Linux, но освоив основы этой системы, можно лучше понять поведение окружающих вас вещей. Кроме того, при работе с большим объемом данных, Linux просто необходим, ведь большинство сложных вычислений над огромными массивами данных выполняются именно на компьютерах под управлением Linux. И это не случайный выбор: большинство вычислительных задач выполняются на Linux гораздо быстрее, чем на Windows или Mac OS X.
Как Linux связан с освоением других дисциплин?
Огромная доля научного ПО, особенно программ для обработки больших данных (например, в области биоинформатики) разработана специально под Linux. Это значит, что эти приложения просто не могут быть запущены под Windows или Mac OS X. Так что если вы не умеете работать в Linux, то автоматически лишаетесь возможности использовать самые современные научные наработки. Кроме того, изучая Linux, вы лучше понимаете как работает компьютер, ведь вы сможете отдавать ему команды практически напрямую.
Почему для этого нужен отдельный курс?
У Linux очень много возможностей, которые полезно знать и, конечно же, уметь ими воспользоваться в нужный момент. К счастью, современные версии Linux гораздо более дружелюбны к пользователям, чем их собратья еще 5-6 лет назад. Сейчас можно не мучиться часами и даже днями ночами после установки системы, чтобы настроить себе выход в Интернет, печать на принтере, раскладки клавиатуры и так далее. Любой желающий сможет начать использовать Linux так же, как он использовал Windows или Mac OS X уже после минимального знакомства с этой системой, которое будет исчисляться минутами. Однако возможности Linux гораздо шире «повседневного» использования. Рассказать обо всей функциональности Linux просто невозможно даже за трехнедельный курс. Однако мы стараемся научить слушателей использовать большинство базовых возможностей Linux, а самое главное, надеемся, что прошедшие курс смогут успешно продолжить освоение Linux самостоятельно.
Что в Linux интересного?
Для нас Linux похож на очень интересную книгу, которую вы прочитали и с удовольствием рекомендуете своим друзьям и даже чувствуете зависть от того, что у них знакомство с этим произведением еще впереди. Единственная разница в том, что хоть мы и знакомы с Linux уже почти по 10 лет, не можем сказать, что «прочитали» его целиком. В нем постоянно можно найти что-то новое для себя, узнать что многие вещи, которые ты привык делать одним способом, можно сделать совершенно по-другому — гораздо проще и быстрее.
Чем больше знакомишься с Linux, тем он становится интереснее. И от первоначального желания «поскорее бы выключить и перезагрузиться в родную и знакомую Windows (Mac OS X)» вы вскоре переходите в состояние «хм, а тут не так и плохо» и еще немного позже в «как я вообще мог работать в этой Windows?!». А еще изучая Linux вы порою можете почувствовать себя немного хакером или героем фильма про программистов =)
Наш курс состоит из краткого обзора основных возможностей Linux, однако для начинающих пользователей этого должно быть вполне достаточно, чтобы заинтересоваться Linux и немного погрузиться в его философию. Например, большую часть курса мы будем проводить за работой в терминале, так что у новичков должно возникнуть и привыкание и понимание преимуществ такого подхода к управлению компьютером. Для более продвинутых пользователей могут представлять интерес отдельные занятия курса — например, про работу с удаленным сервером или программирование на языке bash. Полная программа онлайн-курса доступна здесь.
Как проверять решение задач на курсе по Linux? Это вообще возможно?
Ответ на этот вопрос был нетривиальным — мы долго думали, как проверять задания (например, что пользователь установил Linux себе на компьютер или отредактировал файл в определенном редакторе) и как придумать интересные задачи, чтобы действительно показать реальную работу с Linux. Для каких-то тем получились довольно любопытные подходы. Например, специально для курса был добавлен новый тип задач на платформе Stepic — подключение к удалённому серверу (и открытие «терминала») прямо в окне браузера — по отзывам первых пользователей, им понравилось. Конечно, в первый раз не обошлось без шероховатостей, но, в целом, всё работает довольно хорошо. Про техническую сторону этого вопроса скоро появится отдельный пост от разработчиков. Пример такого задания (для просмотра вживую можно записаться на курс):
Нужно сказать, что не все пользователи воспринимали задачи с юмором. Например, мы проверяли навык установки программ на Linux на примере программы VLC. Нужно было установить ее в свою систему одним из рассказанных способов, потом открыть справку о программе, найти фамилию первого автора и ввести ее в форму для проверки. Каких только комментариев мы не наслушались про это задание 🙂 А ошибались люди в основном в том, что вводили имя и фамилию, или только имя, или часть фамилии (а она там двойная, через дефис!). В общем, если решитесь проходить курс, то читайте условия задач внимательнее и это сэкономит много времени и нервов! Правда с тем же автором было замечание и по делу, оказалось что в старых версиях VLC он идет аж на 14 месте, так что добавили в проверку еще одного автора, который первый среди «старого» списка (и, кстати, третий в «новом»).
А почему всё-таки Linux так хорош?
Вопрос, конечно, неоднозначный. На мой взгляд одним из ключевых преимуществ Linux перед Windows или Mac OS X является то, что эта операционная система разрабатывается огромным сообществом программистов по всему миру, а не в двух, пусть и очень больших компаниях (Microsoft и Apple). Исходный код этой системы открыт, и каждый может познакомится с внутренним устройством Linux или поучаствовать в его развитии. Разработчики развивают его не только для пользователей-покупателей, но и для самих себя, с чем и связан такой большой прогресс в развитии и многие другие его преимущества. В качестве «бонусов» для обычных пользователей: Linux бесплатный, на Linux практически нет вирусов (а сами разработчики вирусов зачастую сидят под Linux!), существую огромное число версий этой системы и каждый может выбрать понравившуюся именно ему!
И напоследок хотелось бы рассказать о своем первом знакомстве с Linux именно в рабочем процессе (до этого был еще отдельный курс по учебе, но из него я не очень много вынес, к сожалению). Этот случай меня так впечатлил, что помню его до сих пор. Когда я работал на кафедре в Политехе на 3-ем курсе мне понадобилось запускать одну программу для обработки данных. Программа была написана на С++, а работали мы тогда в Windows XP. Запусков нужно было сделать много, были они довольно однотипные и занимали обычно пару минут. За это время ничего другого сделать на компьютере было нельзя — он полностью «подвисал», так что можно было поболтать с другими сотрудниками или просто прогуляться по кабинету. Примерно через пару недель таких запусков, мой научный руководитель посоветовал попробовать мне сделать всё тоже самое, но не в Windows, а в Linux. Я тогда подумал «ну какая разница», но так руководителя уважал, то программу перекомпилировал и его совет исполнил. Какового же было моё удивление, когда я запустил ту же самую программу на тех же самых данных и получил результат (естественно, точно такой же) за несколько секунд! Я даже со стула встать не успел, не то что прогуляться…
Кстати, помимо нашего русскоязычного онлайн-курса по Linux, существует хороший англоязычный вводный курс от Linux Foundation, про который уже писали на хабре. Судя по сайту, он снова начнется 5 января 2015.
Если вы знаете ещё интересные онлайн-курсы или обучающие материалы по азам Linux, будем рады увидеть ссылки на них в комментариях.
Источник