Здесь я напишу основные команды Linux, которые будут полезны Вам при освоении данной операционной системы.
Чтобы создать директорию (папку, каталог) используется команда mkdir (Make Directory), после которой пишем ее название. Например: mkdir new_dir
Для навигации по директориям используется команда cd directory_name/ (Change Directory). Слеш в конце не обязателен, но он помогает визуально в терминале отделять папки от файлов.
Для создания файла используется команда touch и указываем имя создаваемого файла. Например: touch new_file
Чтобы удалить файл, нужно ввести rm file_name (Remove). Для папки синтаксис немного другой. Для удаления каталога используется: rm -rf directory/ Расшифруем: -rf это два ключа, указывающих на то, что папку нужно удалить рекурсивно (Recurse) - т.е. заходя в каждую подпапку и без подтверждения (Force).
Внимание: будьте внимательны при использовании этой команды! Так как rm -rf / удалит АБСОЛЮТНО ВСЕ ФАЙЛЫ И ПАПКИ, т.е. ДАЖЕ саму ОС! Под "раздачу" могут попасть и файлы на всех примонтированных в данный момент дисках, и вообще все подряд, до чего "дотянется" данная команда. Причем, операционная система будет даже какое-то время работать, но - сбоить, не находя нужных ей файлов.
Хотя, даже в режиме sudo su в «Ubuntu» это не сработает, но в большинстве *NIX систем - вполне и очень быстро. Так что, не рискуйте повторять это у себя и других! Разве, - в качестве наглядной демонстрации "убийства" системы! :)
Для перемещения и переименования используется команда mv (Move). Например, для перемещения: mv filename dir/ В данном случае имя файла сохранится. Или так: mv filename dir/new_name Тогда перемещаемый файл будет попутно еще и переименован в «new_name». Для простого переименования достаточно написать mv filename new_name и файл будет переименован.
Чтобы вывести содержимое любого файла в терминал можно воспользоваться командой cat Например: у нас есть просто текстовый файл, чтобы вывести его в терминал (просмотреть его содержимое) пишем cat filename (имя файла) и его содержимое выведется прямо в окно нашего терминала.
Примечание: данная команда выводит именно содержимое. Т.е. cat video.avi не начнет воспроизведение видео, а просто выведет его бинарно-символьное содержимое прямо в терминал (в консоль).
Также у нас есть возможность по управлению вводом/выводом информации в терминале. Например, вот изощренный вариант копирования файла с использованием команды cat, пишем cat filename > new_filename, эта конструкция выведет содержимое файла filename, но оно не будет отображено в окне консоли, а сразу будет записано в new_filename.
Для фильтрации или ограничения вывода можно использовать команду grep Это полезно при анализе больших логов (лог-файлов), если нас интересует конкретная строка, хотя применений у этой команды очень много. Она, к примеру, умеет фильтровать почти все что можно вывести на экран. Например - ограничить вывод результата выполнения какой-либо команды.
Пример: cat filename | grep named покажет только те строки из файла, в которых есть слово «named».
Чтобы посмотреть краткую справку о какой-либо команде, в большинстве случаев, можно писать command --help, где command - название команды.
Для чтения полной справки есть команда man (manual). Используется она в виде man command, где command название команды, по которой мы хотим получить помощь. К сожалению, вся справочная информация - на английском языке. Для выхода из режима просмотра файла используется клавиша «Q», для навигации вверх/низ клавиши «PageUp» и «PageDown».
Для создания ссылки (что-то вроде ярлыка в Windows) используется команда ln (Link) Например: ln file1 file2 создаст "жесткую" ссылку (hard link) или ln -s file1 file2 - создаст символьную (мягкую) ссылку (symbolic link).
Эта команда создаёт ссылку на файл «file1», которая будет выглядеть и располагаться как «file2». Таким образом, для файловой системы исходный файл «file1» и ссылка на него «file2», на самом деле, физически будут являться одним и тем же файлом. Жесткие ссылки не могут указывать на файлы, расположенные на других дисковых разделах.
Если вы создаёте символьную ссылку (т.е. используя ключ «-s»), то при этом файл «file1» может и не существовать. Символьная ссылка с именем «file2» всё равно будет создана. Пример: ln -s /media/home/ed /home/ed - будет создана символьная ссылка в каталоге /home/ed на каталог /media/home/ed).
Чтобы запустить/остановить/перезапустить/перезагрузить какой-либо демон (службу) можно воспользоваться командой: /etc /init.d/daemon_name start/stop/restart/reload , также возможны и другие параметры, или отсутствие некоторых, они определяются уже конкретным программным обеспечением.
Выключение и перезагрузка компьютера выполняются командой shutdown -h now (Halt) - выключит компьютер. Комбинация shutdown -r now (Reboot) перезагрузит наш ПК. Ключ "Now" указывает, когда нужно совершить это действие, те - сейчас (now). Также есть возможность сделать это через заданный промежуток времени, указав вместо now, ключ +m , где m - количество минут до выключения. Можно - в формате hh:mm указать время выключения, например 18:00.
Подключение дисков (монтирование)
Немного хуже в Linux дело обстоит с подключением дисков/флешек, и если в Desktop версиях они подключаются автоматически при первом обращении к ним (те «проводник» сам запустит процесс их монтирования прозрачно для пользователя), то в серверных версиях ОС их придется подключать (монтировать) вручную.
Впрочем, здесь нет ничего сложного! Достаточно знать, что и куда мы хотим подключить? Например, чтобы подключить раздел SDB1, нам нужно ввести команду mount /dev/sdb1 /mnt/temp_disk где /dev/sdb1 - имя файла, отвечающего за раздел диска, а /mnt/temp_disk - папка, в которую нужно смонтировать (подключить) наш диск.
Причем, эта папка должна существовать и если в ней есть файлы то они станут временно недоступны, пока мы не размонтируем диск командой umount /dev/sdb1 , используя umount -a (All) можно отмонтировать все подключенные разделы, кроме корня (/). Применение же ключа -f , отмонтирует устройство независимо от того, используется оно или нет в данный момент. Внимание! подобная процедура может повредить открытые файлы на отмонтируемых устройствах.
Установка и управление пакетами
В отличие от Windows, где нужно искать программы самому, устанавливать их, думать где скачать какую-то библиотеку или фреймворк, в *NIX подобных системах используются так называемые пакеты. В Debian-ориентированных дистрибутивах они имеют расширение *.deb (DEBian), для «Red Hat Linux» используются *.rpm пакеты (рекурсивный акроним - RPM Package Manager).
Так же, следуя основной концепции открытого ПО *NIX (его можно сформулировать так: «программа должна выполнять одну задачу, но выполнять ее на отлично»), сама программа обычно занимает несколько сотен килобайт или - пару мегабайт. Все необходимые библиотеки/зависимости будут устанавливаться отдельно, хотя и в автоматическом режиме. На каком-то этапе инсталляции нам просто предложат их установить.
Подобная тактика снижает дисковые затраты, так как нет необходимости устанавливать и хранить одни и те же библиотеки для разных программ, но, в некоторых случаях, добавляет и проблем. Для установки используются репозитории (хранилища пакетов), расположенные по всему миру, поэтому нам не нужно искать, качать и устанавливать программное обеспечение вручную, достаточно знать его название и всего одной командой оно будет установлено на наш ПК.
Для установки/обновления/удаления/чистки программ в Linux Ubuntu используется консольный менеджер пакетов apt. Например, чтобы установить что-либо, мы пишем apt-get install prog_name , где prog_name - название устанавливаемого пакета (программы). Можно устанавливать и несколько пакетов сразу. Для этого просто перечислите их через пробел.
Для обновления ПО используются команды apt-get update и apt-get upgrade Первая обновит информацию о списке доступных пакетов и покажет, что именно требуется обновить, а вторая - запустит обновление всего, для чего оно потребуется.
Для удаления ненужных пакетов используется конструкция apt-get remove/purge prog_name Разница в том, что команда remove удалит сам пакет, а purge - пакет с файлами настроек. Для более подробной информации почитайте apt-get –help.
Немного о сетевых утилитах
Для проверки работоспособности сети и сетевого соединения используется команда ping, она работает так же, как и в Windows, разница только в некоторых ключах. Например, в Windows для "пинга" пакетами по 1500 байт используется ключ -l (Length) ping localhost -l 1500, в *NIX это будет ключ -s (Size) ping localhost -s 1500 и еще несколько ключей.
Еще есть ключ -A, который позволяет отправлять запросы намного быстрее (примерно пять раз в секунду, против одного в Windows), а в паре с sudo может "выстрелить" и около 1000 пакетов за то же время!
Также есть ключ -f Используйте его с осторожностью, так как он может "положить" слабый канал сети или "пингуемый" хост (ПК)! В этом режиме утилита не ждет ответа, а продолжает слать пакеты (около 4 тысяч в секунду), генерируя через сетевую карту компьютера очень большой трафик. Так как вывод терминала просто не успевает за отображением такого мощного "пинга", то на монитор ничего выводиться и не будет. В случае же потери пакета, будут отображаться точки: один потерянный пакет = одна точка.
Ради эксперимента я "пинганул" свой роутер таким образом :) Входящий и исходящий трафик повысился на ~10Mbps при значении в 1500 и на ~2Mbps при размере и частоте передаваемых пакетов по умолчанию (64B).
Чтобы проверить работу DNS (Domain Name System - системы доменных имен) используется утилита nslookup. Синтаксис у нее такой же, как и в Windows. Например, чтобы узнать какие IP адреса используются для домена sebeadmin, достаточно написать в терминале nslookup sebeadmin и мы получим IP или список IP адресов, которые отвечают за это доменное имя в глобальной сети Интернет.
Для проверки пути следования пакетов по сети используется другая утилита - traceroute (в windows - tracert). Например, чтобы передать данные от моего компьютера до этого сайта пишем traceroute sebeadmin На мониторе отобразится весь "путь", которым пройдут наши данные до сайта. Это называется трассировкой маршрута.
root @CoolServ:/home/asus/# traceroute sebeadmin
traceroute to sebeadmin (91.204.74.143), 30 hops max, 60 byte packets
1 172.30.2.1 (172.30.2.1) 0.493 ms 0.337 ms 1.474 ms
2 91.211.xxx.xxx (91.211.xxx.xxx) 1.076 ms 0.990 ms 0.915 ms
3 77.222.147.233 (77.222.147.233) 8.541 ms 8.483 ms 8.403 ms
4 m9-ix.caravan.ru (193.232.244.208) 21.012 ms 21.409 ms 22.029 ms
5 v811.th-1.caravan.ru (212.24.42.51) 139.798 ms 139.745 ms 139.945 ms
6 hosted-by.imhoster.net (91.204.74.143) 22.441 ms 21.840 ms 21.690 ms
Немного расшифруем: расстояние до сайта составило 6 хопов (прыжков или 6 роутеров (маршрутизаторов) по пути следования) наших пакетов.
Псевдографические утилиты
Первая из равных - MTR (My TraceRoute) – монитор трассы IP пакетов с обновлением информации. Это - аналог «traceroute», который «мониторит» маршрут, постоянно посылая ICMP пакеты на маршрутизаторы по пути следования.
Следующая программа, которая очень облегчает перемещение по диску, поиск по каталогам, редактирование файлов и много чего еще, - MC (Midnight Commander). Это файловый менеджер. Он визуально похож на популярный «Far Manager» для Windows (Far тоже использует псевдографику), хотя по удобству и интерфейсу он больше сродни другому менеджеру - «Total Commander». Вот так MC выглядит в терминале.
Если хорошо разобраться с этой оболочкой, то Вы будете быстро и удобно "путешествовать" по файловой системе, подключаться через Shell (SSH), FTP, SMB (Samba) к другим серверам для удобного копирования файлов и чувствовать себя весьма комфортно. Также в ней есть встроенный просмотрщик фалов, - клавиша (F3) и их редактор - (F4).
Консольный диспетчер задач HTOP. Есть несколько консольных диспетчеров задач, это «Top» и «Htop». Они немного отличаются удобством предоставления информации. Поскольку, на мой взгляд, «Htop» удобнее, то рассмотрим именно его:
Здесь все достаточно просто: слева вверху отображается загрузка ЦП, использование ОЗУ (оперативной памяти) и раздела подкачки на жестком диске. Правее - общее состояние системы. Как видим из скриншота, сейчас выполняется 27 процессов, 1 запущен. Средняя загрузка центрального процессора компьютера - 0% (диспетчеру нужно немного времени для сбора статистики).
Ниже отображен список запущенных демонов (процессов). Некоторые из них могут дублироваться. Более подробно об этой замечательной утилитке будет рассказано в другой статье.
Консольный редактор текстов «NANO». Это простой и, в то же время, удобный редактор текста, что-то вроде блокнота для MS Windows. Вот его окно в терминале:
Краткая инструкция по использованию:
- Выход (перед закрытием спросит сохранять-ли файл): Ctrl+X
- Сохранить файл: Ctrl+O
- Найти текст: Ctrl+W
- Заменить текст поиска на текст замены: Ctrl+ подтвердить замену Y, пропустить N, заменить все совпадения A
- Справка по клавиатурным сокращениям: Ctrl+G
-
Прокручивать текст экранами: PageUp/PageDown
Маленький, но шустрый текстовый браузер «LYNX» для терминала. Компоненты страниц выглядят немного страшновато, но если нужно срочно, находясь в терминальной сессии, зайти на какой-нибудь сайт, - он это сделает мгновенно! Вот, к примеру, так выглядит сайт sebeadmin в «lynx»:
Фото - кликабельно.
Конечно, есть еще множество различных утилит, но приведенные здесь используются чаще всего. Наиболее важные из оставшихся мы обязательно рассмотрим с Вами в следующих наших статьях.