Linux как узнать какой терминал

Обновлено: 04.07.2024

В этой статье пойдет речь про команды навигации в терминале.

Решил написать несколько статей на тему терминала Linux. Постараюсь объяснять наиболее доходчиво.

Что из себя представляет корневая файловая система Linux?

Прежде, чем приступить к командам навигации в терминале, поговорим о директориях в Linux. Здесь нет дисков C:, D: и прочих.

Когда я начинал свой путь в Linux, для меня это было наиболее непонятно. Поэтому хочу пояснить этот момент.

Неважно, на сколько разделов вы разобьёте ваш диск, в системе будет:

Затем идут все остальные каталоги, которые служат для своих целей.

  • /home - хранит каталоги пользователей, в которых можно, как правило, выполнять большинство действий без пароля администратора. Ваш домашний каталог находится по адресу: /home/Ваше_Имя_пользователя .
  • /mnt и /media - в эти каталоги монтируются другие физические диски, флешки и прочие носители информации.
  • /media - сюда монтируются диски, флешки, то есть, в этом каталоге создается папка с названием вашего электронного носителя.

Остальные каталоги системные, рассказу о них стоит выделить целую статью.

Перейдем к командам в терминале.

Команды навигации в терминале.

Когда вы открываете терминал в Ubuntu, то вы находитесь в своем домашнем каталоге:

Домашний каталог

(тильда) - означает домашний каталог текущего пользователя.

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

Выполнение данной команды представлено на скриншоте выше.

Для навигации в терминале используется команда "cd" (англ. change directory - изменить каталог).

Сначала пишется команда cd, а затем путь, куда нужно перейти.

Вот так выглядит переход в каталог /home:

Но это не всё, что можно делать с помощью команды cd :

Примеры выполнения команды cd

Перейти в директорию уровнем выше:

Перейти в директорию двумя уровнями выше:

Перейти в домашнюю директорию вашего пользователя:

Перейти в домашнюю директорию пользователя user_name:

Перейти в директорию, в которой находились до перехода в текущую директорию:

Следующая команда, используемая в навигации - "ls" (сокращение от англ. list).

Если ввести в терминале:

отобразится содержимое текущей директории:

Примеры выполнения команды ls

Отобразить содержимое текущей директории с добавлением к именам символов, характеризующих их тип:

Показать детализированное представление файлов и директорий в текущей директории:

Показать скрытые файлы и директории в текущей директории:

Ключи можно комбинировать вместе:

Кроме того, у команды ls очень много других ключей, которые можно посмотреть, выполнив команду:

Автодополение названий директорий в терминале.

Когда вы вводите команду cd, вам необязательно вводить полностью имя директории, достаточно нажать на клавиатуре клавишу "TAB", произойдет автодополнение названия каталога.

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

Если список огромнейший, то для отмены его просмотра нажмите клавишу N.

Это касается не только "cd", но и других команд. Например, когда вы хотите отредактировать какой-то файл. Вы выполнили команду ls, увидели, что у файла имя состоит из 30 знаков, то достаточно ввести первые буквы его имени и нажать клавишу "TAB" и произойдет автодополнение.

Пейзаж оплачивается службой канонических для управления и мониторинга нескольких систем ubuntu. Что лучше, что, заплатив за это, вы также поддерживаете Ubuntu!

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

В bash, zsh и т. Д. :

С рыбными раковинами:

Это более авторитетно, но может быть испорчено вашими программами. Однако, на моем, он говорит xterm , а на ttys - linux , что, я думаю, означает Linux Console.

Использование pstree и awk - самый простой способ:

Объяснение

    Отображение дерева процессов с pstree из $ ( процесс).
  • -s : отображать родителей процесса
  • -A : отображать вывод в чистом ASCII.

Инструмент awk сканирует шаблон и аргумент -F используется для разделения процессов.

Если вы используете bash, я думаю, эта команда поможет вам:

which $(ps -o 'cmd=' -p $(ps -o 'ppid=' -p $))

Во многих системах linux echo $TERM return xterm см. Выше.

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

1: Закройте каждый экземпляр терминала, работающий в данный момент.

2: Открыть новый терминал обычным способом.

3: введите команду следующим образом:

ps -o 'cmd=' -p $(ps -o 'ppid=' -p $)

4: Возврат должен быть примерно таким:

Здесь is breakdown:

Итак: ps - это «состояние процесса»

ps опция -o - Отображать информацию, связанную с указанным разделенным пробелами или запятыми списком ключевых слов. Звучит сложно, но не совсем. (пробел или запятая) указан разделитель (список ключевых слов).

Итак, (список ключевых слов) - 'cmd=' Только одно ключевое слово в списке. Итак, просто просим отобразить команду на открытие терминала.

ps option -p - это «по идентификатору процесса». Это очень хорошая опция для ps. Проблема в том, что вы должны передать ps этот идентификатор процесса. Итак, как получить идентификатор процесса? Мы разворачиваем выражение $(ps -o 'ppid=' -p $)

, поэтому мы знаем, что $ является оператором расширения в bash. Мне нравится думать "развернуть". Таким образом, $(foo -opt bar) развернет или развернет "foo -opt bar". Но в bash одиночная круглая скобка (. ) раскрывает подоболочку.

Таким образом, $(foo -opt bar) расширяет "foo -opt bar" как запускаемый в дочерней оболочке . Очень странно и трудно понять.

Хорошо, теперь мы снова запускаем почти идентичную команду, ps -o 'ppid=' -p $ , но на этот раз ps, состояние процесса, показывает нам, что он может видеть из экземпляра дочерней оболочки .

-o список ключевых слов, только одно ключевое слово, как и раньше, но ppid= это запрашивает непосредственно идентификатор процесса родительской оболочки !! Из ВНУТРЕННЕЙ ОБОЛОЧКИ! Очень умно, да? Я так взволнован, когда я могу это понять!

-p снова «по идентификатору процесса», а в bash $ - идентификатор процесса.

Если вы вызываете ps -o 'ppid=' -p $ или любую другую команду, запрашивающую $ непосредственно из первой оболочки, он может сказать, что pid = 1, или pid из xWindow, или из вашей настольной программы, или вы можете получить реальный pid оболочки. Если вы спрашиваете много раз, вы, возможно, каждый раз получаете разные ответы!

Но, если вы вызовете дочь и спросите ее: «Кто ваш папа», она скажет вам! Очень умно. Хотел бы я быть таким гением, чтобы изобрести этот метод.

Когда вы сами устанавливали систему и все настраивали, то точно знаете какой дистрибутив у вас установлен, какая версия и какая версия ядра. Но совсем другая ситуация, когда вы покупаете VPS или пытаетесь настроить компьютер другу или знакомому с Linux. Довольно часто может возникнуть вопрос как узнать версию Linux потому что эта информация часто очень важна. Например, уязвимости в программном обеспечении часто затрагивают только определенные релизы.

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

Скользящие или фиксированные релизы

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

  • Скользящие релизы (rolling);
  • Фиксированные релизы (fixed).

Эти способы работают немного по-разному и вам нужно понимать это прежде чем мы перейдем к версии Linux. Скользящие релизы не имеют точек выпуска нового релиза, новые возможности, исправления и улучшения постоянно добавляются в официальный репозиторий и их получают пользователи. Такой подход используется в ArchLinux, Gentoo и OpenSUSE Thumbleweed. Поэтому у таких дистрибутивов нет версий, они всегда имеют самую новую версию после того, как было выполнено обновление пакетов. Но у них есть минус - это более низкая стабильность по сравнению с фиксированными релизами, которые можно хорошо протестировать.

Фиксированные релизы используются в Ubuntu. Каждые 6 месяцев выходит новый релиз, поэтому тут есть четкое разделение на версии, новая версия дистрибутива Linux получает новое программное обеспечение, а затем на протяжении всего термина поддержки получает обновления безопасности.

Как узнать версию Linux?

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

Узнать дистрибутив

Прежде всего давайте узнаем имя дистрибутива и его версию если это возможно. Для этого будем смотреть содержимое файлов в папке /etc/, которые заканчиваются на release:

В Ubuntu утилита выведет содержимое двух файлов /etc/lsb-release и /etc/os-release. В них будет содержаться исчерпывающая информация о имени дистрибутива и версии его релиза:

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

Тут уже нет версии, есть только имя дистрибутива, поскольку ArchLinux использует систему скользящих релизов. Немного меньше, но почти всю ту же информацию можно получить используя команду lsb_release:

Также очень часто вы можете узнать имя дистрибутива посмотрев пункт "О программе" для любого системного приложения или лучше утилиты "Настройки":

И еще один способ увидеть версию дистрибутива в основанных на Debian системах - посмотреть информацию о сборке пакета:

Или для RPM систем:

rpm -qa | grep openssl

Узнать версию ядра

Во многих случаях нам нужна не столько версия дистрибутива linux, сколько версия ядра, которое в нем используется. Для просмотра этой информации тоже есть несколько команд:

У меня используется версия ядра 4.8.0-59, тут же мы видим архитектуру системы - x86_64. Обозначение SMB означает, что ядро поддерживает многоядерные процессоры или несколько процессоров. Но мы можем узнать ту же информацию, посмотрев содержимое файла /proc/version:

Есть еще несколько файлов с подобной информацией:

Как узнать архитектуру компьютера

Вы уже знаете как узнать версию Linux, имя дистрибутива и ядро, архитектура уже проскальзывала в командах выше, но существует отдельная команда, которая выводит только архитектуру:

Для этих же целей можно использовать uname:

Выводы

Теперь вы знаете как посмотреть версию Linux. Как видите, в Linux достаточно много способов для решения этой задачи. Надеюсь, эта информация была полезной для вас.

Терминал и текстовые команды — главный способ управления операционной системой Linux, особенно, если речь идёт о сервере. И хоть слово «терминал» пугает новичков, поверьте, что всё гораздо проще. Сегодня мы подготовили для вас шпаргалку с базовыми командами — сохраняйте её в закладки и повышайте свою продуктивность в сотни раз. 😉

Начнём с теории

Linux (Линукс) — это целое семейство операционных систем Unix с открытым исходным кодом, основанных на ядре Linux. Сюда входят все самые популярные системы на основе ОС, например: Ubuntu, Fedora, Mint, Debian и другие. Их ещё называют дистрибутивами. Подробнее о каждом читайте в этом посте.

Терминал (или «Bash», сокращение от «Bourne-Again shell») — это программа, которая используется для взаимодействия с командной оболочкой. Терминал применяется для выполнения административных задач, например: установку пакетов, действия с файлами и управление пользователями.

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

В ОС есть несколько сотен команд и их модификаций. Они группируются по нескольким категориям:

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

Типичная команда выглядит вот так:

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

id — если вы хотите получить информацию о вашей учётной записи.

w — полезная команда, если вам нужно узнать, какой пользователь сейчас находится в системе (или команда -f — для того, чтобы узнать, откуда был совершён вход).

lsblk — если вы хотите открыть список блочных устройств хранения данных.

lscpu — отображает информацию о процессорах.

free — показывает объём свободной и уже используемой памяти (альтернативная команда — free -g).

lsb_release -a — если вы хотите получить информацию о версии вашей ОС.

Команды для работы с файлами

Содержит в себе практически все мелкие утилиты и инструменты для взаимодействия с файлами и папками.

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

cd — change directory, что в переводе означает «сменить директорию». Из названия понятно, что с помощью этой команды можно перемещаться между папками. Вписываем её, а потом адрес: cd /user/test/dir/111. Есть сокращенные варианты: cd- для перемещения в предыдущую директорию или cd (без аргументов) для прыжка в домашнюю папку.

pwd — укажет полный путь до директории, в которой вы находитесь. Если вы перепрыгнули на рабочий стол с помощью cd

/Desktop/, то pwd покажет что-то в духе /home/Polzovatel/Desktop.

dd — мощная утилита для взаимодействия с разделами. С её помощью можно делать копии разделов, перемещать их, удалять без возможности восстановления.

rm — опасная команда для удаления директорий и их содержимого. Стирает все данные, которые обнаружит в указанной папке без возможности к восстановлению.

grep — это полнотекстовый поиск в файле. Очень полезная команда, когда вам нужно что-то найти. Например, grep значение /путь/до/файла покажет строки в которых есть «значение». А команда grep -ril значение /путь/до/каталога/* покажет все файлы, в которых есть искомое значение.

-r — рекурсивный поиск

-i — игнорировать регистр (Case insensetive)

-l — вывести результат списком.

chown пользователь:группа — команда позволяет изменить владельца файла.

chmod — изменяет права на файл или каталог

find — суперполезная команда. С её помощью можно искать файлы по определённым параметрам.

Следующие команды потребуются вам при работе с файлами разного типа и объёма:

cat — показывает содержимое файлов. Также может использоваться в двух вариантах: 1) одним текстовым файлом (cat путь_к_файлу), она отображает содержимое файла в окне терминала, 2) если же указать больше элементов, то команда склеит их (cat путь_к_файлу_1 путь_к_файлу_2).

head — «голова», как и cat, показывает содержимое документов, но не всё, а только первые 10 строк. При желании количество строк можно увеличить или сократить, добавив параметр -n.

tail -f — используется для просмотра растущего файла в окне интерактивного запуска кода.

touch — эта команда создавалась для изменения времени последнего открытия файла или директории, но используют её, в основном, для создания новых файлов.

wget — загружает из интернета документы, картинки, целые страницы и прочий контент.

wc — считает количество строк, слов, знаков и байтов.

zip — упаковывает файлы в архив в формате .zip.

diff — сокращение от «difference». Команда показывает разницу между двумя текстовыми файлами.

Что вы можете сделать с двоичными файлами? На самом деле, вариантов не очень много:

strings — команда выведет готовые к печати строки файла;

od — позволит вам напечатать файл в восьмеричном формате;

cmp — даёт возможность побайтно сравнивать файлы.

Если вам требуется сравнить текстовые файлы друг с другом, введите эти команды:

comm — отсортированные файлы будут строка за строкой.

diff — позволяет построчно выявить различия. Эта команда используется наиболее часто в силу богатого набора опций.

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

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

userdel — удаляет выбранную учётную запись. Синтаксис простейший: userdel <имя учётной записи>, которую нужно стереть

Для установки, удаления и обновления пакетов

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

Debian/Ubuntu

sudo apt-get install название_пакета — устанавливает программу на выбор.

sudo apt remove название_пакета — команда, используя которую можно удалить не только ПО, но и все неиспользуемые пакеты.

sudo apt-get update — обновляет информацию о пакетах, имеющихся в системе, и тех, что хранятся в подключённых репозиториях.

sudo apt-upgrade — обновляет установленные пакеты до самых свежих версий, доступных в подключенных репозиториях.

sudo apt purge — удаляет все файлы конфигурации вместе с пакетами ПО.

sudo apt autoremove -purge — удаляет абсолютно всё: и пакеты, и зависимости, и конфиги.

Red Hat Linux/CentOS

sudo dnf install название_пакета — устанавливает программу на выбор.

sudo dnf upgrade — обновляет установленные пакеты до самых свежих версий.

sudo dnf remove название_пакета — стирает с жёсткого диска имеющийся в системе пакет.

Бонус! Хитрости, которые сэкономят время

Этот список полезных знаков в разы ускорит вашу работу с командами:

!! — повторяет последнюю команду.

!$ — позволяет изменить команду, сохраняя последний аргумент. Например, команда less !$ — используется для повторного открытия файла в меньшем объёме.

!* —позволяет изменить команду, сохраняя при этом все аргументы. Например, head states.txt | grep '^Al' — при использовании должен быть хвост.

tail !* — избавляет от необходимости вводить остальную часть команды.

>x.txt — используется для создания пустого файла или очистки существующего.

lsof -P -i -n — определяет, к каким скриптам идёт обращение со стороны веб-сервера.

И самая крутая команда в Linux: для вывода полного руководства о той или иной команде есть man (сокращенно от manual). Чтобы вывести мануал достаточно просто выполнить man <имя команды>. В качестве примера давайте рассмотрим команду cat:

NAME
cat - concatenate files and print on the standard output

SYNOPSIS
cat [OPTION]. [FILE].

DESCRIPTION
Concatenate FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

-A, --show-all
equivalent to -vET

-b, --number-nonblank
number nonempty output lines, overrides -n

-e equivalent to -vE

-E, --show-ends
display $ at end of each line

-n, --number
number all output lines

-s, --squeeze-blank
suppress repeated empty output lines

-t equivalent to -vT

-T, --show-tabs
display TAB characters as ^I

-v, --show-nonprinting
use ^ and M- notation, except for LFD and TAB

--help display this help and exit

--version
output version information and exit

EXAMPLES
cat f - g
Output f's contents, then standard input, then g's contents.

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

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

И, если вы хотите попробовать какие-то команды на настоящем сервере — попробуйте наши Облачные VPS с готовым шаблоном популярных дистрибутивов Linux: Ubuntu, CentOS и Django и почасовой оплатой от 44 копеек.

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