42 команды Linux которые вы должны знать

18.12.2020 Дмитрий Демченко 1038 + Linux

Синтаксис

Рассмотрим синтаксис.

who параметры файл

Основные параметры:

  • -a — читает файл /etc/utmp, включает все основные опции;
  • -b — показывает дату и время загрузки операционной системы;
  • -d — показывает зомби-процессы.
  • -u — выводит активных пользователей.
  • -s — выводит имя, терминальную сессию и  время, данный параметр используется по умолчанию;
  • -T — информация о терминальной сессии;
  • -q — количество пользователей в системе в данный момент;
  • -r — показывает уровень процесса init.

Обычно для выполнения команды who берется информация файла: «/etc/utmp».

Альтернативные файлы: «/etc/wtmp» и «/etc/inittab».

Примеры

Если не использовать опции и аргументы, на экране появятся данные по умолчанию, включающие в себя информацию об учетных записях (тех, кто подключен к системе). Чтобы ознакомиться с данными о пользователе, который изъявил желание обратиться к терминалу прямо сейчас («спросить» у системы о самом себе), необходимо использовать команду «who am i».

$ who am i

Для получения обширной информации о подключенных пользователей достаточно ввести команду в виде:

$ who -a

Каких-либо дополнительных указаний в этом случае не потребуется. Если использовать исключительно «who», данных будет сравнительно меньше. Детализировать этот запрос или нет – решать только вам. Смотрите по ситуации.

Время загрузки системы можно посмотреть по команде:

$ who —login

Впишите её в терминале и ознакомьтесь с результатами запроса.

Чтобы посмотреть «runinit» (текущий уровень запуска), впишите в команду соответствующую опцию. Это будет выглядеть так:

$ who -r

Опция -s не имеет особого смысла, поскольку она провоцирует вывод таких стандартных значений, как «Имя пользователя», «терминальная линия», «время начала/окончания сеанса». Эта информация доступна и без добавления каких-либо опций. Едем дальше.

С помощью аргумента -T можно узнать состояние терминальной сессии. На практике это выглядит следующим образом:

$ who -T

Для чего нужна информация о состоянии терминальной сессии? От её состояния зависят некоторые нюансы в работе пользователя. Обратите внимание на название любой сессии, отображенной в окошке терминала. Если рядом с ним указан значок «+», значит, пользователь может получать сообщения от других терминалов. Если такой возможности нет, рядом с названием сессии будет указан значок «-».

При неисправности линии появится вопросительный знак.

При необходимости узнать, сколько пользователей подключено к системе, вводится:

$ who -q

Чтобы посмотреть, кто из пользователей активен в данный момент времени, введите команду:

$ who -u -H

При добавлении опции -d отображаются зомби-процессы:

$ who -d

Важное примечание: при использовании опции -d нельзя увидеть поле EXIT в окне терминала. Оно появляется лишь при добавлении опции -а.

Заключение

Основная задача утилиты who заключается в получении информации о пользователях, подключенных к системе. Вторичная задача – сбор данных о терминальных сессиях, благодаря которым и происходит их подключение.

Читайте также:  Основные команды текстового редактора VI / VIM

Благодаря выше предоставленным примерам команд вы тоже можете ощутить простоту отслеживания данных о user системы. Всего несколько нажатий клавиш – и ответы на вопросы найдены.

Просмотр файлов с помощью cat в Linux

Для просмотра файла просто наберите: #cat

[[email protected] ~]# cat new_file это новый файл

1234 [hc@host~]# cat new_fileэтоновыйфайл

Можно вывести с номерами строк:

[[email protected] ~]# cat -n new_file 1 это 2 новый 3 файл

1234 [hc@host~]# cat -n new_file 1 это 2 новый 3 файл

Можно просмотреть содержимое нескольких файлов.

[[email protected] ~]# cat -n new_file old_file 1 это 2 новый 3 файл 4 Это старый файл

12345 [hc@host~]# cat -n new_file old_file 1 это 2 новый 3 файл 4 Этостарыйфайл

Обратите внимание, что содержимое выводится единым массивом данных, что хорошо видно по тому, что содержание второго файла вывелось строкой под номером 4 – нумерация не началась заново при выводе этого файла. Т.е. cat , как это и заложено в ее названии, склеила файлы.

Где взять нативные игры для Linux

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

Как видите, Linux для развлечений не так уж и непригоден, как может показаться, и игры всё-таки есть. Но возникает следующий вопрос: где же их взять? Рассмотрим несколько источников, где вы можете скачать нативные игры для linux:

Где взять нативные игры для Linux

Steam

Steam — это цифровая платформа для распространения видеоигр. Так же как и Amazon — платформа для распространения книг, а Itunes — музыки. Здесь вы можете покупать, устанавливать и играть в многопользовательские игры, а также общаться с другими клиентами сервиса. Все игры защищены с помощью DRM. В Steam вы можете найти тонны игр от уровня ААА до небольших инди проектов.

Несколько лет назад игровая платформа Steam объявила о поддержке Linux, и это было большой новостью. Она означала, что у игровой индустрии серьезные планы на Linux. Valve создала собственную игровую консоль, основанную на Linux, а также свой дистрибутив Linux — SteamOS. Это заставило разработчиков портировать множество игр для Linux. Об установке и настройке Steam вы можете прочитать в отдельной статье — Установка и использование Steam

Где взять нативные игры для Linux

— это платформа, похожая на Steam. Здесь тоже можно найти различные игры в Linux, покупать их, устанавливать и играть. Если игры поддерживают несколько платформ, вы можете скачать их и использовать в разных операционных системах. Главное отличие GOG от Steam, здесь распространяются только игры без защиты DRM.

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

Portable Linux Games

Сайт — это коллекция нативных игр для 32 битных систем Linux. Вы не сможете просто так запустить их в 64 битной системе, для этого надо будет скачать несколько бибилотек. Здесь вы можете скачать любую понравившуюся игру. Загруженные файлы уже включают все зависимости игры, например Wine или Perl. Всё что нужно — скачать игру, запустить двойным щелчком и играть. Очень полезно, если у вас нет постоянного доступа к высокоскоростному интернету.

Где взять нативные игры для Linux

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

Читайте также:  Linux: LKM — Linux Kernel Module, модули ядра Linux

Репозитории программ

Поищите в официальных репозиториях вашего дистрибутива. Обычно там тоже есть некоторые игры. Если у вас Ubuntu, то в центре приложений есть даже раздел для игр. То же самое есть и в других дистрибутивах Linux, например в Linux Mint.

Где взять нативные игры для Linux

Я должен беспокоиться?

Вероятно, нет: обновления были отправлены во все основные дистрибутивы, а сама ошибка была преувеличена, по мнению экспертов по безопасности. Чтобы процитировать Павана Кингера в Trend Micro :

«В целом, риск фактических эксплойтов, нацеленных на GHOST, относительно невелик по сравнению с другими уязвимостями, такими как Shellshock или Heartbleed». — Pawan Kinger

И процитировать Джейка Эджа из :

«Несмотря на то, что уязвимость GHOST glibc является серьезной, ее также, похоже, довольно сложно эксплуатировать — и она серьезно перегружена». — Джейк Эдж

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

Управление пользователями

Для управления пользователями в Linux Ubuntu существует команда usermod, которая также может принимать множество ключей и параметров. Если помните, ранее мы создали пользователя ludos. Это обычный пользователь, не являющийся администратором и не имеющий прав использовать команду sudo. Предоставим ему эти привилегии, добавив его в группы adm и sudo. Здесь мы вынуждены сделать маленькое отступление, сказав пару слов о группах. Как просмотреть список групп и что в них хранится, вы уже в курсе, но не будет лишним также знать, что группы могут быть первичными и вторичными.

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

На досуге вы можете изучить ключи команды usermod, выполнив ее с параметром —help, а сейчас нам достаточно знать два ключа:

  • -a — ключ добавляет пользователя в указанную группу.
  • -G — специальный ключ, определяющий список дополнительных групп.

Формируем такую команду, добавляя юзера в группы adm и sudo, перечисляя их через запятую:

Управление пользователями

usermod -a -G adm,sudo ludos

Получив данные о пользователе командой id ludos, мы видим, что его ID и GID остались прежними, зато он оказался членом групп adm и sudo.

Открыв графическую оболочку управления пользователями, мы обнаруживаем, что наш обычный ludos стал администратором, а так как он входит еще и в группу sudo, то может пользоваться и привилегиями root, в чём мы и убеждаемся, войдя в учетную запись ludos, открыв терминал и запросив разрешения root.

Управление пользователями

Как разрешаются ID

Мы только что увидели процесс, запущенный от обычного пользователя 1000 внезапно переключился на root. Не волнуйтесь, никакой эскалации привилегий не было. Помните, что это просто маппинг ID: пока наш процесс думает, что он является пользователем root в системе, Linux знает, что root — в его случае — означает обычный UID 1000 (благодаря нашему маппингу). Так что в то время, когда пространства имён, принадлежащие его новому user namespace (подобно network namespace в C), признают его права в качестве root, другие (как например, network namespace в P) — нет. Поэтому процесс не может делать ничего, что пользователь 1000 не смог бы.

Всякий раз, когда процесс во вложенном user namespace выполняет операцию, требующую проверки разрешений — например, создание файла — его UID в этом user namespace сравнивается с эквивалентным ID пользователя в корневом user namespace путём обхода маппингов в дереве пространств имён до корня. В обратном направлении происходит движение, например, когда он читает ID пользователей, как мы это делаем с помощью ls -l my_file. UID владельца my_file маппится из корневого user namespace до текущего и окончательный соответствующий ID (или nobody, если маппинг отсутствовал где-либо вдоль всего дерева) отдаётся читающему процессу.

КОМАНДЫ 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. Мы можем увидеть не только полный маршрут сетевых пакетов, но и доступность узла, а также время доставки этих пакетов на каждый из узлов.