Что должен знать продвинутый пользователь linux

Обновлено: 07.07.2024

Linux — это многопользовательская система. На практике это означает, что для работы в системе нужно в ней зарегистрироваться, т. е. дать понять системе, кто именно находится за монитором и клавиатурой. Вместо формального «зарегистрироваться в системе» обычно используют выражение «войти в систему». Операционная система представляется чем-то вроде замкнутого помещения, внутри которого можно оказаться, только успешно проникнув через «дверь» — пройдя процедуру регистрации. Наиболее распространённый способ регистрации на сегодняшний день — использование системных имён (login name) и паролей (password). Это надёжное средство убедиться, что с системой работает тот, кто нужно, если пользователи хранят свои пароли в секрете и если пароль достаточно сложен и не слишком короток (иначе его легко угадать или подобрать).

Загрузка заканчивается интерфейсом входа в систему: выводится приглашение ввести системное имя пользователя ( login: ) и пароль. Если вы выбрали загрузку в графический режим, то можно не вводить системное имя вручную, а нажать на кнопку с нужным именем, однако пароль при этом всё равно нужно ввести самостоятельно.

Пользователи обычно создаются непосредственно в процессе установки системы, однако всегда можно добавить новых пользователей или удалить существующих при помощи стандартных средств управления пользователями.

Не следует входить в систему в качестве пользователя root : он необходим для выполнения административных задач, поэтому на него не распространяются ограничения доступа. Для выполнения обычных администраторских задач (изменение настроек системы), не требуется входить в систему под именем root , обычный пользователь может временно получить права администратора (см. об этом далее).

Графический и текстовый интерфейс

В операционной системе Linux пользователю доступны два режима работы: графический и текстовый. В текстовом режиме недоступны возможности графических интерфейсов: рисование окон произвольной формы и размера, поддержка миллионов цветов, отрисовка изображений. Все возможности текстового режима ограничены набором текстовых и псевдографических символов и несколькими десятками базовых цветов. Тем не менее в Linux в текстовом режиме можно выполнять практически любые действия в системе (кроме тех, которые требуют непосредственного просмотра изображений). Текстовый режим в Linux — это полнофункциональный способ управления системой благодаря интерфейсу командной строки (см. об этом далее). В Linux существует огромное множество программ (включая даже игры), предназначенных для работы в текстовом режиме.

Бывают ситуации, когда графический режим недоступен или неработоспособен (удалённый доступ по сети, проблемы с поддержкой видеокарты, сбои системы и др.). В таких случаях всегда остаётся возможность работать в текстовом режиме, поскольку его возможности поддерживаются непосредственно графическим оборудованием и не требуют специальных драйверов или настройки.

Если загрузка системы по каким-то причинам не дошла до графического режима и завершилась приглашением к регистрации (login:) на текстовой виртуальной консоли, то можно попробовать запустить графический режим вручную. Для этого следует войти в систему (ввести имя пользователя и пароль), и ввести команду startx . Эта команда запускает графическую подсистему X11, которая займёт седьмую виртуальную консоль. Можно запустить до трёх графических подсистем (интерфейсов) одновременно, они займут консоли с седьмой по девятую. Чтобы переключиться из графического режима на другую консоль, следует нажимать одновременно Ctrl , Alt и функциональную клавишу с номером нужной консоли.

Благодаря виртуальным консолям каждый компьютер, на котором работает Linux, предоставляет возможность зарегистрироваться и получить доступ к системе одновременно нескольким пользователям. Даже если в распоряжении всех пользователей есть только один монитор и одна системная клавиатура, эта возможность небесполезна: можно переключаться между виртуальными консолями так, как если бы вы переходили от одного монитора с клавиатурой к другому, подавая время от времени команды и следя за выполняющимися там программами. Более того, ничто не препятствует зарегистрироваться в системе несколько раз под одним и тем же системным именем — это один из способов организовать параллельную работу над несколькими задачами.

Завершение работы

Командная строка

Командная строка — это способ организации интерфейса, в котором каждая строка, введённая пользователем — это команда системе, которую та должна выполнить. Термин «командная строка» происходит от того, что команды вводятся обычно в одну строку, которая завершается нажатием клавиши «ввод» ( Enter ). В Linux этот вид интерфейса всегда был основным, а потому хорошо развитым.

Первое слово в такой строке — это, как правило, имя исполняемого файла — программы, все остальные слова — параметры. Программа выполняет нужные пользователю действия, но может делать это по-разному в зависимости от полученных параметров. Параметры могут быть общими, например имя файла, который нужно обработать, или специфическими для этой программы модификаторами выполнения.

Чтобы получить командную строку, пользователь должен войти в систему и запустить программу, которая будет принимать его команды и передавать их на выполнение — командную оболочку (её ещё называют интерпретатор командной строки, просто оболочка, по-английски «shell»).

Получить командную строку можно многими способами. Самый простой и универсальный — зарегистрироваться на одной из первых шести виртуальных консолей: после входа в систему запустится командная оболочка и появится приглашение командной строки. Не выходя из графической среды можно получить командную строку при помощи любого эмулятора терминала — они перечислены в главном меню в разделе «Терминалы». Для пользователей графической среды KDE командная строка доступна также по нажатию F2 (функция «ввести команду»).

Умение найти командную строку и выполнить в ней команду пригодится любому пользователю Linux, даже если он работает исключительно в графической оконной среде. Дело в том, что графические интерфейсы в Linux очень многообразны, кроме того, пользователь имеет возможность существенно поменять конкретный вид и расположение частей интерфейса по своему вкусу. Найти общие для всех и неизменные свойства графического интерфейса в Linux весьма непросто (если вообще возможно). В то же время командная строка доступна всегда и всюду выглядит практически одинаково. Поэтому очень часто в документации, рассчитанной на широкую аудиторию и общие случаи, в пример приводятся именно фрагменты командной строки. Нередко к командной строке апеллируют и люди, к которым обратились за советом по Linux. Оно и понятно: процитировать команду, которая даст нужный результат, гораздо проще и лаконичнее, чем словами описывать действия, которые нужно произвести для достижения того же эффекта в графической среде.

Когда упоминается команда, которую нужно выполнить в Linux, всегда имеется в виду команда, которую нужно ввести в командной строке.

О том, как узнать подробнее о разных командах, немного написано в разделе Документация, и много — во всевозможных учебниках и пособиях по Linux. Краткий рекомендательный список книг и сетевых ресурсов приведён в конце того же раздела «Документация».

Права доступа

В Linux существует ровно один пользователь, права которого существенно выше прав остальных пользователей — это root (администратор). От имени этого пользователя можно выполнить любые административные (изменяющие систему) действия — на него не распространяются ограничения доступа.

Когда нужно сделать что-то, выходящее за рамки полномочий обычного пользователя, потребуется получить полномочия администратора. В большинстве случаев достаточно получить полномочия временно, для выполнения одного или нескольких конкретных действий. Некоторые программы (в том числе основное средство настройки системы — ALT Linux Control Center) при необходимости запрашивают пароль пользователя root . После того как пароль правильно введён, эта программа (и только она!) будет работать уже с правами администратора, поэтому следует внимательно относиться к совершаемым действиям.

Временно получить командную оболочку c правами администратора можно при помощи команды su - . Это операция доступна только тем пользователям, при добавлении которых был установлен флажок «Разрешить пользователю получать привилегии администратора (su)». По умолчанию этот флажок установлен только для первого из добавленных при установке пользователей, хотя впоследствии его можно установить или снять в любой момент для любого пользователя.

Как задавать вопросы?

Если в процессе работы возникнут сложности и сбои, очень важно по возможности конкретно сформулировать суть проблемы (вопрос). Поиски ответа стоит начать с документации (локальной и в Интернете), также можно спросить опытных пользователей и обратиться в службу поддержки. Ниже кратко описаны те шаги, которые стоит сделать для получения нужной информации.

Почитать документацию

Прежде всего следует обратиться к уже установленной документации. Основной массив документации на русском языке — это документация ALT Linux, к главной странице документации можно перейти в любом броузере со стартовой страницы дистрибутива. В документации ALT Linux содержатся вводные сведения о Linux, основные сведения по установке, настройке и использованию ALT Linux. Каждая программа также сопровождается собственной документацией, многие — и системой помощи, к сожалению, не везде эта документация переведена на русский язык. Подробнее о том, как найти документацию по конкретной программе, см. раздел Документация.

Поискать в Интернет

На сайте freesource.info есть довольно разнообразная информация, связанная со свободным ПО вообще, в частности, стоит обратить внимание на раздел, посвящённый ALT Linux. Здесь есть конкретные инструкции и примеры настроек, которые ещё не успели попасть в документацию, кроме того, предложения и планы разработчиков. Содержание сайта всё время уточняется и дополняется, поскольку он открыт для пополнения всем заинтересованным.

Спросить в списке рассылки

Обратиться в службу поддержки

Приобретая экземпляр дистрибутива, пользователь в том числе приобретает контракт, по условиям которого он получает право на объём услуг по информационной и технической поддержке, опеределённый в купоне техподдержки дистрибутива.

Впрочем, для заключения контракта не обязательно покупать дистрибутив, просто обращайтесь к нам. Специалисты ALT Linux помогут всегда: от разового решения любых задач для пользователей любых Linux, до регулярного технического обслуживания и разработки технологических решений на базе Linux. Более подробную информацию об услугах ALT Linux по технической поддержке можно найти на сайте ALT Linux.

1Задавший вопрос пользователь должен принимать в расчёт, что все подписчики списка рассылки участвуют в нём добровольно, и никто из них не обязан отвечать на какие-либо вопросы, поэтому предъявлять претензии на этот счёт бессмысленно и невежливо.

Несколько дней назад я (здесь и далее — автор оригинальной статьи — Прим. пер.) написал о книгах, которые могут скачать начинающие пользователи, и прочитать их, чтобы изучить Linux самостоятельно. Сегодня в секции о Linux у нас есть кое-что и для опытных пользователей. Перед вами несколько советов, которые вы должны попробовать, если вы опытный пользователь Ubuntu Linux

1. Быстро и умно управляйте командной строкой
Вы можете использовать клавиатурные сокращения и другие особенности командной строки, чтобы сделать ввод команд легче и быстрее. Вы уже должны знать о клавише 'tab', которая завершает часть команды или даже имена файлов и директорий.
Вот некоторые клавиатурные сокращения, которые вы можете использовать в терминале:
Ctrl-a — переместиться к началу линии
Ctrl-e — переместиться к концу линии
Alt-] x перемещает курсор прямо к следующему месту появления x
Alt-Ctrl-] x перемещает курсор назад к предыдущему месту появления x
Ctrl-u удалить все от курсора до начала линии
Ctrl-k удалить от курсора до конца линии
Ctrl-w удалить от курсора до начала слова
Ctrl — y вставляет текст из буфера обмена
Ctrl — l очищает экран, перемещая текущую строку вверх на экран
Ctrl-x ctrl-u отмена последних изменений. ctrl-__
Alt-r отмена всех изменений в строке
Alt-Ctrl-e расширить командную строку
Ctrl-r инкрементальный обратный поиск в истории
Alt-p не инкрементальный обратный поиск в истории
. выполнить последнюю команду из истории
!abc выполнить последнюю команду из истории, начинающуюся на abc
!n выполнить n-ую команду из истории
^abc^xyz заменить первое появление abc на xyz в последней команде и выполнить ее
Также не забудьте проверить 4 сайта, где вы можете найти классные трюки командной строки.

2. Запускайте приложения Ubuntu Linux с помощью горячих клавиш.
Это можно сделать двумя способами:
* Использовать приложения типа Launchy или Gnome-Do, которые позволяют быстро запускать приложения, набрав всего несколько букв из имени приложения.
* Или Вы можете вызвать редактор gconf (нажать Alt+F2, после этого ввести gconf-editor и нажать ввод) и перейти в apps > metacity > global_keybindings. Там необходимо дважды нажать на любой из run_command_N и указать горячие клавиши, по которым будет запускаться нужное Вам приложение. Запомните это число N, перейдите в apps > metacity > keybinding_commands, дважды нажмите на соответствующую command_N (где N — число, которое Вы запомнили ранее) и введите название приложения, которое будет запущено. Например, если Вы хотите запускать Firefox, просто укажите firefox.



Заодно стоит ознакомиться с горячими клавишами, используемыми в Ubuntu по умолчанию.

3. Продолжайте работу с того места, на котором закончили.

image


Вы можете настроить Ubuntu, чтобы она запоминала приложения, которые были открыты при последнем выходе из системы. Когда Вы начнете новый сеанс все эти приложения уже будут запущены, и Вы сможете продолжить с того места, на котором закончили.
Чтобы включить эту функцию, перейдите в System > Preferences > Startup Applications, перейдите на закладку настроек и установите галочку у пункта «Automatically remember running applications when logging out».

image

4. Создайте отдельный раздел под домашнюю директорию Ubuntu Linux.

Новая версия Ubuntu выходит в свет каждые 6 месяцев. Не смотря на то, что Вы можете обновить систему до последней версии используя менеджер обновления, иногда обновление может пройти не корректно, и некоторые пользователи предпочитают в этом случае чистую установку.
Минус этого варианта в том, что все данные в домашней директории будут утеряны. Чтобы избежать этой проблемы Вы можете создать отдельный раздел под домашнюю директорию при первой установке Ubuntu и выделить необходимый объем дискового пространства согласно Вашим потребностям. Во время следующей установки Ubuntu просто укажите этот раздел для домашней директории (указав /home в качестве точки монтирования).
В этом случае все Ваши файлы и данные сохранятся даже в случае чистой установки.

5. Обновляйте и устанавливайте приложения для Ubuntu Linux без подключения к Интернет.

image


Для этого есть несколько способов, но наиболее простым из них является использование APTonCD. APTonCD позволяет создать CD или DVD диски, содержащие все необходимые Вам пакеты, которые Вы можете в дальнейшем установить на компьютеры без подключения к интернет.
Для создания установочного носителя APTonCD требует подключения к сети (или заранее загруженных пакетов). Однако, после подготовки носителя, Вам не потребуется подключение к сети машин, на которые будут установлены приложения. Вставьте нужный CD/DVD и используйте apt-get как и обычно.

6. Устанавливайте новые шрифты, шрифты Microsoft и улучшайте отображение шрифтов

Ubuntu предоставляет не слишком много выбора, когда дело доходит до шрифтов. Однако Вы можете легко установить новые шрифты, включая такие шрифты Microsoft как Arial, Verdana, impact и многие другие. Вы можете просмотреть различные сайты и выбрать шрифт, который наиболее Вам подходит.

7. Используйте PPA, устанавливайте последние версии программного обеспечения.
Прежде чем программное станет частью дистрибутива Ubuntu или станет доступно через репозитории, ему приходится пройти ряд этапов. Конечно, эти дополнительные этапы гарантируют дополнительную стабильность, но это так же означает, что Вы не получаете самые последние версии программного обеспечения, когда оно становится доступным.
Если Вы хотите быть впереди планеты всей, Вы можете найти Personal Package Archives для Вашего любимого ПО на Launchpad и добавить их Вашу систему. Я описал использование PPA лишь вкратце. Если этот вариант доставляем Вам слишком много хлопот, Вы можете скачать последние deb-пакеты и установить двойным нажатием (Вы не будете получать автоматические обновления для ПО, установленного этим способом).
Используя последние версии, Вы можете столкнуться с парой трудностей, но чаще всего они не являются критичными. Вы всегда можете посетить Форумы Ubuntu и быстро найти помощь.

8. Работайте из-под root.
Пользователь root заблокирован в Ubuntu по умолчанию, чтобы минимизировать возможность выполнения несанкционированных действий. Однако, если Вы «обещаете быть осторожным», Вы можете разблокировать пользователя root следующим способом:

image


1. Введите sudo passwd root и укажите новый пароль для root.
2. Перейдите в System > Administration > Login Window, откройте закладку Security и поставьте галочку «Enable local system administrator login»
Теперь Вы сможете зайти под root из окна входа. Так же Вы можете ввести «sudo su», указать свой пароль и переключиться в пользователя root.

9. Запускайте приложения и игры для Windows.

image


Кто не захочет поиграть в Counter Strike на Ubuntu (если Вы, конечно, интересуетесь играми) или даже запустить Photoshop? С Ubuntu это очень легко сделать (англ).

10. Сокращайте время загрузки используя профилирование.
Разработчики Ubuntu Linux проделали великолепную работу для уменьшения времени загрузки, Jaunty быстр, а Karmic будет еще быстрее. Однако есть еще одна возможность для улучшения — профилирование загрузки. Профилирование позволяет Ubuntu составить список всех файлов, используемых при загрузке, и отсортировать их согласно расположению на жестком диске. Засчет этого при последующих загрузках системы эти файлы будут считываться быстрее.
Для профилирования загрузки выполните следующие действия

* В меню grub выделите пункт загрузки ядра, который Вы используете чаще всего.
* Нажмите «e» для редактирования.
* Выделите строку, начинающуюся с «kernel» и снова нажмите «e». Добавьте в конец строки слово «profile».

Нажмите «Enter» и затем «b» для продолжения загрузки.
Обратите внимание, что во время профилирования в первый раз систему загружается медленней, однако при последующих загрузках Вы увидите прирост скорости. Так же учтите, что прирост зависит от конкретной машины и расположения файлов на жестком диске, так что ускорение может быть не значительным или даже отсутствовать в некоторых случаях.

11. Попробуйте другие cреды рабочего стола Ubuntu.
Если вам нужно что-то другое, нежели стандартная оболочка Gnome, вы просто обязаны заценить альтернативные менеджеры рабочего стола. Если вы ищете полную замену среды, то KDE4, имеющий большую историю, сейчас очень удобен и красив. Чтобы заполучить KDE, вам просто нужно выполнить «sudo apt-get install kubuntu-desktop».

12. Создайте медиацентр или медиасервер.

image


Было бы здорово, если бы у вас была возможность легко просматривать и управлять вашими огромными коллекциями музыки, видео и фотографий. Очарованы интерфейсом Windows Media Center? Подождите, вы еще не видели всех классных возможностей Ubuntu в качестве медиацентра. Вы даже можете получить доступ к медиа через телефон, PSP или другой компьютер, если вы установите медиасервер на вашу Ubuntu.

13. Делитесь профилем Firefox с Windows.
Многие используют Windows и Linux на одном компьютере. Если вы один из них, значит у вас уже были случаи, когда вы не могли найти свои закладки, потому что они были сделаны в Windows. Узнайте, как вы можете делить один профиль Firefox между несколькими ОС без синхронизации через интернет (гарантированно, если у вас одинаковые версии Firefox). Для разных компьютеров вы, конечно, можете использовать Weave.

14. Настраивайте Nautilus на свой вкус.

image


Nautilus — стандартный файловый менеджер в Ubuntu. Вы можете довольствоваться тем, что есть, однако вы можете заставить его делать больше. Используйте расширения для улучшения функций или даже для добавления новых возможностей в Nautilus.

15. Компилируйте собственное ядро.
Если вы не знаете, чем заняться на выходных, и хотите уделить время настройки чего-нибудь, как насчет сборки собственное конфигурации ядра для удовлетворения именно ваших требований? Вообще-то это больше служит для обучения себя. Кто-то может вам подсказать, что это позволяет использовать только те драйвера и функции, которые нужны конкретно вам, хотя если все замечательно работает со стандартным ядром и у вас нет никакого интереса к ядру Linux, то просто пропустите этот пункт.
Но если вам нужны какие-то экспериментальные возможности ядра или необходимо скомпилировать его особым образом, вы всегда можете найти руководство в документации к Ubuntu.

16. Измените экран Usplash и создайте собственный фон для GRUB.

image


Вы не защитали для себя предыдущий совет? Вот еще один. Экран Usplash — это текст и логотип Ubuntu с бегущей полоской, который вы видите при загрузке системы.

Если Вы хотите изменить их на что-нибудь более интересное, выполните следующие шаги. Что может быть лучшим способом показать Ваше Linux-фу, чем настроить первый экран загрузки? Вы можете создать собственный загрузочный экран используя одну из Ваших фотографий, GIMP и немного умения. Вот как это сделать.

Знаете другие возможности и хаки, доступные пользователям Ubuntu? Уверен что знаете. Поделитесь ими в комментариях.

Во всех операционных системах, в том числе и в Linux, термин 'команда' означает либо утилиту командной строки, либо определённую возможность, встроенную в командную оболочку системы. Тем не менее, для самих пользователей это различие не имеет особого значения. В конце концов, и те и другие команды терминала Linux вызываются одинаково. Вы вводите слово в вашем эмуляторе терминала и получаете результат выполнения команды.

Я уже писал о командах терминала Linux, но тогда затронул лишь несколько самых интересных, самых полезных команд, рассчитывая на то, что пользователь уже достаточно знаком с возможностями терминала. Но нужно сделать ещё одну статью, рассчитанную на новичков, тех, кто только делает свои первые шаги в освоении Linux.

И вот она. Её цель - собрать основные простые и сложные команды Linux, которые должен знать каждый пользователь, чтобы наиболее эффективно управлять своей системой. Для удобности запоминания опций команд я в скобках добавил слова, от которых они произошли - так намного проще, на себе проверено.

Это не значит, что я перечислю все команды, все перечислены тут - я постараюсь охватить всё самое полезное, то, что может пригодиться в повседневной жизни. Чтобы было удобнее читать, разделим этот список на категории команд по назначению. Большинство рассмотренных здесь утилит не требуют дополнительной установки, они будут предустановлены в любом дистрибутиве Linux, а если не будут, то их несложно найти в официальных репозиториях.

Команды Linux для управления файлами

Утилита для просмотра содержимого каталогов. По умолчанию показывает текущий каталог. Если в параметрах указать путь, то она перечислит содержимое конечного каталога. Полезные опции -l (List) и -a (All). Первая форматирует вывод в виде списка с более подробной информацией, а вторая включает показ скрытых файлов. Подробнее здесь.

2. cat

Позволяет перейти из текущего каталога в указанный. Если запустить без параметров - возвращает в домашний каталог. Вызов с двумя точками возвращает на уровень вверх относительно текущего каталога. Вызов с тире (cd -) возвращает к предыдущему каталогу. Более детально здесь.

4. pwd

Печатает на экран текущий каталог. Это может быть полезно, если ваша командная строка Linux не выводит такую информацию. Эта команда будет востребована в Bash программировании, где для получения ссылки на каталог выполняется скрипт. Более подробно в отдельной статье.

5. mkdir

Создание новых каталогов. Наиболее удобная опция -p (Parents), позволяет создать всю структуру подкаталогов одной командой, даже если они ещё не существуют. Подробнее о том как создать папку читайте в отдельной статье.

6. file

Команда file показывает тип файла. В Linux файлы не обязаны всегда иметь расширения для того, чтобы с ними работать. Поэтому пользователю иногда трудно определить, что за файл перед ним. Эта маленькая утилита решает проблему.

Копирование файлов и каталогов. Она не копирует каталоги по умолчанию рекурсивно (то есть все поддиректории и все файлы в поддиректориях), поэтому не забудьте добавить опцию -r (Recursive) или -a (Archive). Последняя включает режим сохранения атрибутов, владельца и временного штампа в дополнение к рекурсивному копированию.

Перемещение или переименование файлов и каталогов. Примечательно, что в Linux это одна и та же операция. Переименование - это перемещение файла в ту же папку с другим именем. Подробнее - здесь.

Удаляет файлы и папки. Очень полезная команда Linux: с её помощью вы можете убрать весь беспорядок. Если нужно рекурсивное удаление, используйте опцию -r. Однако будьте осторожны: конечно, для того чтобы повредить систему вам нужно будет серьёзно постараться, однако можно удалить собственные важные файлы. Rm удаляет файлы не в корзину, из которой потом всё можно будет восстановить, а полностью стирает. Действия оператора rm необратимы. Поверьте, ваши оправдания в духе "rm съела мою курсовую" никому не будут интересны. Подробнее в этой статье.

10. ln

Создает жёсткие или символические ссылки на файлы. Символические или программные ссылки - это что-то похожее на ярлыки в Windows. Они предоставляют удобный способ доступа к определённому файлу. Символические ссылки указывают на файл, но не имеют никаких метаданных. Жёсткие ссылки, в отличие от символических, указывают на физический адрес области диска, где хранятся данные файла.

11. chmod

Изменяет права доступа к файлу. Это чтение, запись и выполнение. Каждый пользователь может изменять права для своих файлов.

12. chown

Изменяет владельца файла. Только суперпользователь может изменять владельцев. Для рекурсивного изменения используйте опцию -R.

13. find

Поиск в файловой системе, файлах и папках. Это очень гибкая и мощная команда Linux не только из-за своих способностей ищейки, но и благодаря возможности выполнять произвольные команды для найденных файлов.

14. locate

В отличие от find, команда locate ведёт поиск в базе данных updatedb для шаблонов имён файлов. Эта база данных содержит снимок файловой системы, что позволяет искать очень быстро. Но этот поиск ненадёжен, потому что вы не можете быть уверены, что ничего не изменилось с момента последнего снимка. Подробнее - тут.

15. du

Показывает размер файла или каталога. Самые полезные опций: -h (Human), которая преобразует размеры файлов в легко читаемый формат, -s (Summarize), которая выводит минимум данных, и -d (Depth), устанавливающая глубину рекурсии по каталогам.

16. df

Анализатор дискового пространства. По умолчанию вывод достаточно подробный: перечислены все файловые системы, их размер, количество использованного и свободного пространства. Для удобства есть опция -h, делающая размеры легко читаемыми.

17. dd

Как сказано в официальном руководстве, это команда терминала для копирования и преобразования файлов. Не очень понятное описание, но это всё, что делает dd. Вы передаёте ей файл-источник, пункт назначения и пару дополнительных опций. Затем она делает копию одного файла в другой. Вы можете задать точный размер данных, которые нужно записать или скопировать. Работает утилита со всеми устройствами. Например, если вы хотите перезаписать жёсткий диск нулями из /dev/zero, можете сделать это. Также она часто используется для создания LiveUSB или гибридных ISO образов.

18 mount / umount

Это команды консоли Linux для подключения и отключения файловых систем Linux. Можно подключать всё: от USB накопителей, до ISO образов. И только у суперпользователя есть права для этого.

Linux команды консоли для работы с текстом

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды. Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less. Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Утилита head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк. Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от follow (следовать). Утилита постоянно выводит изменения в файле на экран. Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

Grep, как и другие инструменты Linux, делает одно действие, но делает его хорошо: она ищет текст по шаблону. По умолчанию она принимает стандартный ввод, но вы можете искать в файлах. Шаблон может быть строкой или регулярным выражением. Она может вывести как совпадающие, так и не совпадающие строки и их контекст. Каждый раз, когда вы выполняете команду, которая выдает очень много информации, не нужно анализировать всё вручную - пусть grep делает свою магию.

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (Numeric), по числовому значению, и -r (Reverse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

23. wc

Утилита командной строки Linux для подсчёта количества слов, строк, байт и символов. Подробнее тут.

24. diff

Показывает различия между двумя файлами в построчном сравнении. Причём выводятся только строки, в которых обнаружены отличия. Измененные строки отмечаются символом "с", удалнные - "d", а новые - "а". Подробнее - здесь.

Кстати, я подготовил ещё одну подробную статью, в которой описан именно просмотр содержимого текстового файла в Linux c помощью терминала.

Команды Linux для управления процессами

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill - достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.

27. top / htop

Обе команды похожи, обе отображают процессы и могут быть использованы как консольные системные мониторы. Я рекомендую установить htop, если в вашем дистрибутиве он не поставляется по умолчанию, так как это улучшенная версия top. Вы сможете не только просматривать, но и контролировать процессы через его интерактивный интерфейс.

28. time

Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.

Команды Linux окружения пользователя

29. su / sudo

Su и sudo - это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +"%j %V", выведет день в году и номер недели в формате ISO.

31. alias

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить. Здесь собрано несколько полезных алиасов.

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Команды Linux для управления пользователями

35. useradd / userdel / usermod

Эти команды консоли Linux позволяют вам добавлять, удалять и изменять учетные записи пользователей. Скорее всего, вы не будете использовать их очень часто. Особенно если это домашний компьютер, и вы являетесь единственным пользователем. Управлять пользователями можно и с помощью графического интерфейса, но лучше знать об этих командах на всякий случай.

36. passwd

Эта команда позволяет изменить пароль учетной записи пользователя. Как суперпользователь вы можете сбросить пароли всех пользователей, даже несмотря на то, что не можете их увидеть. Хорошая практика безопасности - менять пароль почаще.

Linux команды для просмотра документации

37. man / whatis

Команда man открывает руководство по определённой команде. Для всех основных команд Linux есть man страницы. Whatis показывает, какие разделы руководств есть для данной команды.

38. whereis

Показывает полный путь к исполняемому файлу программы. Также может показать путь к исходникам, если они есть в системе.

Команды Linux для управления сетью

39. ip

Если список команд Linux для управления сетью вам кажется слишком коротким, скорее всего вы не знакомы с утилитой ip. В пакете net-tools содержится множество других утилит: ipconfig, netstat и прочие устаревшие, вроде iproute2. Всё это заменяет одна утилита - ip. Вы можете рассматривать её как швейцарский армейский нож для работы с сетью или как непонятную массу, но в любом случае за ней будущее. Просто смиритесь с этим.

40. ping

Ping - это ICMP ECHO_REQUEST дейтаграммы, но на самом деле это неважно. Важно то, что утилита ping может быть очень полезным диагностическим инструментом. Она поможет быстро проверить, подключены ли вы к маршрутизатору или к интернету, и дает кое-какое представление о качестве этой связи.

41. nethogs

Если у вас медленный интернет, то вам, наверное, было бы интересно знать, сколько трафика использует какая-либо программа в Linux или какая программа потребляет всю скорость. Теперь это можно сделать с помощью утилиты nethogs. Для того чтобы задать сетевой интерфейс используйте опцию -i.

42. traceroute

Это усовершенствованная версия ping. Мы можем увидеть не только полный маршрут сетевых пакетов, но и доступность узла, а также время доставки этих пакетов на каждый из узлов. Подробнее - тут.

Выводы

Мы рассмотрели основные команды Linux, которые могут пригодиться вам при повседневном использовании системы. Если вы считаете, что есть другие команды, которые нужно добавить в этот список, напишите в комментариях!

Изучите необходимый минимум Linux, чтобы быть продуктивным главное изображение

Разные операционные системы длительное время обслуживают различные аудитории: Windows — бизнес-профессионалов, Mac — творческих, а Linux — разработчиков. Разработчикам ОС такой тип рыночного спектра сильно упростил концепцию продукта, технические требования, пользовательский опыт и направление рынка. Однако, он также ужесточил нормы рабочего пространства, что деформировало отдельных пользователей под узкие, непересекающиеся области: у бизнесменов нет возможности заглянуть в творческий процесс, а у разработчиков нет представления о проблемах бизнеса.

Для современных бизнес-аналитиков особенно актуален вопрос ликвидации пробела между бизнесом и разработкой. Бизнес-аналитики должны быть двухплатформенными, способными использовать командную строку, доступную только на Linux (или в macOS), но при этом уметь извлекать широкие возможности из Microsoft Office в Windows. Очевидно, что мир Linux пугает тех, у кого образование в сфере бизнеса. К счастью, как и в большем количестве вопросов, вам необходимо изучить 20% информации, чтобы выполнить 80% работы. Вот мои 20%.

Почему современные бизнес-аналитики должны знать Linux

Благодаря своим open source корням, Linux выиграл от вкладов тысяч разработчиков за всё время его существования. Они построили программы и утилиты, чтобы упростить работу не только себе, но и тем программистам, которые последовали за ними. В результате open source разработка создала эффект сетевой выгоды: чем больше разработчики строили утилиты на оригинальной платформе, тем больше других разработчиков могло влиять на эти утилиты, чтобы писать собственные программы.

В результате получился огромный пакет программ и утилит (то есть софт), который был написан на Linux и под Linux. Большая часть его никогда не портировалась в Windows. Один из примеров — популярная система контроля версий (VCS), которая называется git. Разработчики могли написать софт под Windows, но они этого не сделали. Они написали его для работы в командной строке, для Linux, потому что Linux — экосистема, в которой уже были все необходимые инструменты.

Если вдаваться в подробности, разработка на Windows ведёт к двум основным проблемам:

  1. Базовые задачи, вроде парсинга файлов, рабочего планирования и поиска текста используются чаще, чем запуск утилиты командной строки.
  2. Языки программирования (Python, C++) и связанные с ними библиотеки выкидывают ошибки, потому что они ожидают конкретных параметров Linux или специфических локаций файловой системы.

Если собрать всё вместе, это выльется в трату времени на переписывание базовых инструментов, которые уже доступны в Linux, они позволят избежать ошибок совместимости с ОС. Тут нет никаких сюрпризов — экосистема Windows просто не была задумана и спроектирована под нужды разработки софта.

Теперь давайте рассмотрим базовые идеи Linux.

Фундаментальная единица Linux: "оболочка"

Shell (оболочка, также известная как терминал, консоль или командная строка) — это текстовый интерфейс пользователя, через который команды отправляются машине. На Linux, по-умолчанию, язык оболочки называется bash. В отличие от Windows-пользователей, которые в своём большинстве используют навигацию "навести-кликнуть" по окну, Linux-разработчики привязаны к клавиатуре и пишут команды в оболочке. Хоть этот переход далёк от естественного для тех, у кого нет бэкграунда в программировании, плюсы разработки в Linux сильно перевешивают изначальное вложение в обучение.

img

Изучаем несколько важных концептов

В сравнении с достаточно зрелым языком программирования, bash имеет всего несколько основных концептов, которые необходимо выучить. Как только вы охватите это, остаток bash — простое запоминание. Я переформулирую понятней: хорошо разбираться в bash значит запомнить 20-30 команд и их часто используемые аргументы.

Linux кажется непроницаемым для тех, кто не касается разработки, из-за способа, которым разработчики (не напрягаясь) извергают эзотерические команды терминала, когда им захочется. Правда в том, что они хорошо знают только несколько десятков команд — за всем более сложным они так же (как и все смертные) обращаются в Google.

Опуская мелкие загвоздки, стоящие на пути, вот главные концепты в bash.

Командный синтаксис

Команды соответствуют синтаксису:

Псевдонимы директорий

  • Текущая директория (где я?): .
  • Родительская директория текущей директории: ..
  • Домашняя директория пользователя:

Например, чтобы поменять текущую директорию на родительскую директорию нужно ввести: cd ..

Таким же способом, чтобы скопировать файл, расположенный в "/path/to/file.txt" в текущую директорию, нужно ввести cp /path/to/file.txt . (заметьте, что в конце команды точка). Поскольку это всего лишь псевдонимы, вместо них может использоваться реальное имя пути.

STDIN / STDOUT

Всё, что вы пишите в окне и подтверждаете (с помощью ENTER), называется стандартным вводом (STDIN).

Всё, что программа выводит в ответе в терминал (например текст из файла), называется стандартным выводом (STDOUT)

Конвейер (piping)

Pipe принимает STDOUT от команды слева от pipe и превращает его в STDIN для команды справа от pipe.

Символ "больше" принимает STDOUT от команды слева и записывает/перезаписывает в новый файл справа

пример: ls > tmp.txt

Два символа "больше" принимают STDOUT от команды слева и добавляют к новому или существующему файлу справа.

пример: date >> tmp.txt

Шаблоны поиска (wildcards)

В bash можно написать John* . Если вы хотите вывести список всех файлов в какой-то папке, заканчивающихся на ".json", пишете : ls *.json

Завершение с помощью tab

Bash часто завершает команды сам, по определённой логике, если вы начинаете вводить команду и нажимаете TAB.

Однако, стоит попробовать что-то вроде zsh или fish для автозаполнения, потому что запоминать команды и все их параметры очень сложно. Более того, эти инструменты применят автозаполнение, основываясь на вашей истории используемых команд.

Выход

Иногда вы застреваете в какой-нибудь программе и не можете оттуда выйти. Это очень часто повторяющееся событие для новичков в Linux, которое невероятно демотивирует. Часто выход происходит с помощью чего-то, содержащего q. Хорошо бы запомнить то, что будет написано ниже и использовать, когда вы в ловушке.

Что я помню из команд bash

Это те команды, которые я использую чаще всего в Linux (начиная от самых часто используемых к самым редко используемым). Как я уже писал раньше, знание всего горстки команд поможет выполнять большой набор необходимых программируемых задач.

  • cd изменить директорию
  • ls -lha вывести директорию в виде списка (подробного)
  • vim или nano редактор командной строки
  • touch создать новый пустой файл
  • cp -R скопировать файл или директорию (и всё их содержимое)
  • mv переместить или переименовать файл
  • rm удалить файл
  • rm -rf удалить файл или папку без возможности восстановления [использовать аккуратно!]
  • pwd вывести текущую рабочую директорию
  • cat или less или tail или head -n10 вывести в STDOUT содержимое файла
  • mkdir создать пустую директорию
  • grep -inr найти строку в любом файле этой директории или дочерних директориях

column -s, -t <delimited_file> отобразить разделенный запятыми файл в виде столбцов

ssh @ соединиться с удалённой машиной

tree -LhaC 3 показать структуру директории на 3 уровнями вглубь (с размерами файлов и включая скрытые директории)

htop (или top ) диспетчер задач

pip install --user пакетный менеджер Python для установки пакетов в

pushd . ; popd ; dirs; cd - push/pop/view директорию в стек + изменить обратно на последнюю директорию

tmux new -s session, tmux attach -t session создать новую сессию терминала без создания нового окна [продвинутый уровень]

wget загрузить веб-страницу или веб-ресурс

find <directory> вывести список всего содержимого директории и её дочерних директорий рекурсивно

Продвинутые и не часто используемые команды

Я считаю хорошей практикой хранить список команд, которые полезны в определённых ситуациях, даже если подобные ситуации случаются редко (например, какой процесс блокирует конкретный сетевой порт). Вот несколько нестандартных команд, которые у меня всегда под рукой:

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Переход на Линукс может вызвать массу затруднений. Многим ныне продвинутым пользователям приходилось с этим сталкиваться. В конце концов, они ведь тоже когда-то были нубами. К счастью, сообщество Линукс делает всё, чтобы новичкам было проще совладать с этой системой. Существует великое множество руководств, самоучителей и тому подобной документации, призванной помочь новоявленным линуксоидам. На Линукс я перешёл 3 года назад. Сообщество с радостью приняло меня и помогало посредством форумов, IRC и E-mail, и подобная отзывчивость меня сильно удивляла.


Вот я и решил вернуть свой долг сообществу и передать эстафетную палочку новому поколению Линукс. В этой статье я расскажу о семи заповедях, которые мне хотелось бы услышать во время моей первой встречи с Линукс. Я надеюсь, что при помощи этих советов, работа с этой системой станет более безопасной, удобной, поучительной и, конечно же, более приятной.

I. Никогда не логиньтесь с правами "root".

Это, пожалуй, та самая привычка, которой необходимо строго придерживаться. Многие из нас пришли в Линукс из Windows, поэтому мы считаем: чем больше власть над системой, тем лучше, и логинимся с правами администратора. Так позвольте же мне заметить: главная причина, по которой Windows ненадёжен и заполонен вирусами, в том, что большинство пользователей работает на компьютере под рутом.


С большой властью приходит большая ответственность. С правами рута вы должны осознавать последствия всего того, что делаете, но даже в этом случае ошибок не избежать . Помню, начинал я с SUSE Linux, там требовалось выполнять множество заданий с правами администратора. В связи с этим я без зазрения совести логинился под рутом. В SUSE у пользователя с правами администратора по умолчанию фоном стоит картинка, на которой изображены бомбы с фитилями и знаки предупреждения. Тогда мне было невдомёк, что это означает и, основываясь на опыте работы с Windows, считал, что всё делаю правильно.

Так в чём же опасность работы под рутом?

К тому же, есть пара отличных и проверенных способов, которые позволят вам избежать необходимости заходить в систему с правами администратора:

II. Правильно называйте файлы.

В Линуксе файлы можно называть как угодно, кроме:

Всё остальное - пожалуйста. Но я всё-таки приведу несколько советов, чтобы вы могли избежать затруднений в будущем:

Я настолько привык к этой заповеди, что даже при работе с Windows или Mac стараюсь её придерживаться.

III. Помещайте домашний каталог на отдельный раздел жесткого диска.


Соблюдая эту заповедь, вы получаете небывалую гибкость в работе с компьютером. Если поместить домашний каталог на другой раздел, то у вас появится возможность переустанавливать систему или даже менять дистрибутивы без потери личных данных и настроек. Просто не трогайте раздел с домашним каталогом (/home) и делайте что хотите с корневым ("/"). Теперь вы можете установить столько дистрибутивов сколько заблагорассудится, и при этом можно не беспокоиться о личных данных и настройках, они всегда будут с вами.

Если вам не повезло и вы узнали об этом только сейчас, а не при установке системы, то не отчаивайтесь. Carthik из блога Ubuntu составил пошаговое руководство, названное "Перемещаем домашний каталог на отдельный раздел" .

IV. При сбоях пытайтесь восстановить систему.


Несмотря на то, что Линукс крайне стабилен, он всё-таки может зависнуть, как и любая другая система. Вместо того, чтобы нажать CTRL-ALT-DEL, кнопку "Restart" или выдернуть кабель из розетки, вы должны уметь восстановить систему без перезагрузки. Лично я в таких случаях прохожу через несколько этапов, если не помогает один - приступаю к другому.

V. Изучайте и экспериментируйте.


Допустим, в ряды линуксоидов вы попали благодаря другу, который посоветовал вам использовать конкретный дистрибутив, чем вы до сих пор и занимаетесь. Это конечно замечательно, но вдруг этот дистрибутив вам не подходит. Так почему бы не воспользоваться гибкостью и разнообразием Линукс и Open Source? Не бойтесь экспериментировать с различными дистрибутивами, приложениями и оконными менеджерами. В конце концов, вы найдете, то что вам больше всего по душе. Ведь если вы живёте в лучшем на ваш взгляд месте на планете, то это не помешает вам путешествовать по всему миру. Возможно вы найдете лучшее место для жилья, но если нет, то время, проведенное в путешествии, нельзя считать потраченным зря: вы узнали много нового о других странах, людях, традициях, различных способах мышления и, наконец, просто получили удовольствие.

Всё то новое, что вы опробуете, внесёт свой вклад в вашу копилку знаний, и со временем вы будете чувствовать себя в мире Линукс как рыба в воде. Я испытал 10 дистрибутивов, 4 десктопа и 5 оконных менеджеров. Благодаря своей недавней статье Etymology of Distro , я заинтересовался ещё несколькими дистрибутивами такими, как Zenwalk, Foresight и Sadayon. Так что, изучай, мой друг, это сделает тебя лучше.

Если вы хотите установить и настроить систему, которая будет больше всего удовлетворять вашим потребностям и при этом работать 24 часа в сутки 7 дней в неделю, то прислушайтесь к следующим советам:

VI. Дружите с командной строкой.

Существует множество статей, которые указывают на важность командной строки . Я надеюсь, что вы уже осознали всю необходимость этого мощного инструмента и в состоянии выполнять простейшие административные задачи. В этом деле главное не просто копировать и вставлять команды из различных руководств, которых великое множества на просторах Интернета. Главное - понимать, зачем нужна та или иная строка. Следуя этой заповеди, через некоторое время вы сможете крепко подружиться с консолью. Плюс ко всему, это своего рода псевдо-язык. Каждая команда является аналогом реального слова. Если сказать вашей собаке "Спайк, лови мяч", то она поймёт. В таком случае почему бы вам не понять "sudo mv /file1 /file2"?

VII. Всегда держите Линукс под рукой.


Я часто попадал в ситуацию, когда друг (подруга) просил (-а) сделать что-нибудь на его (её) компьютере, но его (её) выбор операционной системы меня всегда расстраивал. В таких случаях крайне удобно иметь при себе Линукс, будь то Live USB , Live CD или даже Live CD-визитная карточка . Есть дистрибутивы, специально предназначенные для этого, например, Knoppix , DSL и Puppy Linux .

Читайте также: