Перейти к содержимому

Linux как разлогиниться через консоль

  • автор:

Как выйти из сеанса Ubuntu [Совет для начинающих]

Ответ зависит от того, используете ли вы сервер Ubuntu или рабочий стол. Я покажу вам шаги для обоих.

Выйти из Ubuntu из терминала (для сервера)

Если вы используете сервер Ubuntu и вы ограничены экраном терминала, вы можете использовать команду выхода:

Да. Это способ выхода из терминала, потому что в Ubuntu или любой дистрибутив Linux. У вас есть команды для завершения работы Ubuntu, но нет отдельной команды выхода из системы.

Почему в Linux нет команды выхода из системы?

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

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

Если вы хотите выйти из сеанса, просто выйдите из оболочки. Вот почему команда выхода эквивалентна команде выхода из системы в Linux.

Выйти из рабочего стола Ubuntu (метод графического интерфейса)

Если вы используете рабочий стол Ubuntu, у вас есть графический интерфейс (называемый среда рабочего стола). Вы можете использовать здесь свою мышь.

Я показываю снимок экрана рабочего стола GNOME по умолчанию, но если вы используете другие варианты рабочего стола Ubuntu, такие как Kubuntu, Lubuntu и т. д., в меню питания также должна быть кнопка выхода или опция выхода.

Чтобы выйти из сеанса рабочего стола Ubuntu, перейдите в правый верхний угол и щелкните, чтобы открыть панель задач. Вы должны увидеть параметр «Выключить / выйти». Щелкните по нему, и он покажет вариант выхода.

Выйти из Ubuntu

Когда вы нажмете кнопку «Выйти», откроется диалоговое окно с запросом вашего подтверждения. Если он не получит от вас никаких данных, вы выйдете из системы через 60 секунд.

Подтверждение выхода из системы Ubuntu

Вот и все. Теперь, когда вы знаете, как выйти из сеанса Ubuntu, позвольте мне рассказать вам секретный совет.

Вы можете использовать Ctrl + Alt + Del сочетание клавиш в Ubuntu чтобы вывести меню выхода из системы. Круто, не правда ли?

Linux как разлогиниться через консоль

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

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

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

Пример 11. Команда logout

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

Есть и другой, ещё более «немногословный» способ сообщить системе, что пользователь хочет завершить текущий сеанс работы. Нажав Alt+F2 Мефодий попадёт на вторую виртуальную консоль, где всё ещё открыт сеанс для пользователя « methody » и нажмёт сочетание клавиш Ctrl+D, чтобы прекратить и этот сеанс. Комбинация клавиш Ctrl+D приводит не к передаче компьютеру очередного символа, а к закрытию текущего входного потока данных. Грубо говоря, командная оболочка вводит команды пользователя с консоли, как если бы она читала их построчно из файла. Нажатие Ctrl+D сигнализирует ей о том, что этот «файл» закончился, и теперь ей неоткуда больше считывать команды. Такой способ завершения совершенно аналогичен явному завершению командной оболочки командой logout .

Linux Смена пользователя в консоли (терминал) — Как зайти под пользователем (перелогиниться)

vedro-compota's picture

Чтобы начать работать от имени пользователя username в Linux просто наберите в терминале команду:

и нажмите клавишу Enter.

Перелогиниться под тем же (текущим) пользователем

Залогиниться заново под тем же пользователем, под которым вы находитесь в текущем терминале, вне зависимости от его имени можно так:

Команды linux shell (putty) ssh шпаргалка

— вывод списка всех файлов и папок в текущей директории отсортированных по алфавиту с отображением размеров директорий и файлов.

— сменить директорию на dirname (cd — change directory)

— смена директории на домашний каталог, а также команда без «

» (тильды) делает то же самое в большинстве шелов

— показать текущий каталог

— показать каталог для текущего пользователя

— создать каталог dir

— удалить каталог dir

— удалить форсированно file

— удалить форсированно каталог dir * (без вопросов удалит каталог и все что в нем хранится)

— удалить форсированно каталог test (без вопросов удалит каталог test и все что в нем хранится)

cp file1 file2 — скопировать file1 в file2

cp -r dir1 dir2 — скопировать dir1 в dir2; так же создаст каталог dir2, если его не существует

cp -rp dir1 dir2 — скопировать dir1 в dir2; так же создаст каталог dir2, если его не существует и оставит все прежние права старой папки

mv file1 file2 — переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2

mv -f /dir /var/dir2/— переместить dir в /var/dir2/dir c перезаписью всего что внутри /var/dir2/

ln -s file link — создать символическую ссылку link к файлу file (Create a symbolic link to file)
Примеры:

touch file — создать file

cat > file — направить стандартный ввод в file

more file — вывести содержимое file

head file — вывести первые 10 строк file

tail file — вывести последние 10 строк file

tail -f file — вывести содержимое file по мере роста, начинает с последних 10 строк

view file — вывести файл на экран

Локальная/удаленная синхронизация файлов (rsync)
Копировать (синхронизировать) все содержимое из папки folder1 в папку cpfolder2, опция —ignore-existing предлагает игнорировать уже скопированные файлы. Опция —delete будет удалять файлы в папке назначения cpfolder2 если вдруг добавились/изменились какие-то файлы в ней или в папке откуда копируются файлы. Таким образом мы делаем зеркало из папки folder1 в папке cpfolder2. Ставим задачу в крон и получаем зеркало из папки folder1 в папке cpfolder2

Резервное удаленное копирование данных между двумя шеллами (ssh) rsync

— Копирует локальную папку Dropbox со всем её содержимым на удаленный сервер remoteserver.com на котором ssh висит на 54332 порту в удаленную папку /root/backup.

— Копирует с удаленного сервера remoteserver.com (порт 54332) папку /var/lib на локальный компьютер в папку /root/temp

Опции rsync:
-a режим архива, при использовании заменяет несколько ключей (-rlptgoD)
-r рекурсивно. Копирует все файлы, включая вложенные каталоги
-l при копировании сохраняет символические ссылки
-p сохраняет права на файлы
-t сохраняет время изменения файлов
-g сохраняет группу файлов
-o сохраняет владельца файлов (работает только из под root)
-D сохраняет файлы устройств и специальны файлы
-v показывает название файлов при копировании
-z сжатие файлов при копировании
-e ssh использовать при копировании ssh
—progress показывает прогресс выполнения копирования
—bwlimit=KBPS ограничивает скорость передачи файлов

ps — вывести ваши текущие активные процессы

ps -aux — вывести все процессы (от рута)

top — показать все запущенные процессы

kill pid — убить процесс с id pid

killall proc — убить все процессы с именем proc

bg — список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне

fg — выносит на передний план последние задачи

fg n — вынести задачу n на передний план

netstat -nlp — смотрим какие порты открыты

netstat -tulpn | grep :80 — смотрим что занимает 80 порт

fuser 7000/tcp — найти PID процессов открывших 7000-й tcp порт

ls -l /proc/3813/exe — ищем имя процесса ассоциированного с PID # 3813

ls -l /proc/3813/cwd — Найти текущий рабочий каталог процесса bittorrent или pid 3813

pwdx 3813 — тоже самое что и «ls -l /proc/3813/cwd»

ps aux | grep 3813 — узнать владельца процесса с PID 3813

lsof -i :80 — что висит на 80 порту

chown root /filename — смена владельца файла/директории /filename на root

chown root:group /filename смена владельца файла/директории /filename на root и смена группы на group

chown -hR root /filename смена владельца файла/директории /filename на root и всех находящихся в ней файлов на root

Дополнительные опции: man chown.

chmod user file — сменить права file на user, раздельно для пользователя, группы и для всех добавлением:

? 1 — исполнение (x) Примеры:

chmod 777 — чтение, запись, исполнение для всех (потенциальная угроза безопасности)

chmod 755 — rwx для владельца, rx для группы и остальных.

chmod -R 755 ./folder — смена прав для файлов в директории и её поддиректориях

Дополнительные опции: man chmod.

ssh [email protected] — подключится к host как user

ssh -p port [email protected] — подключится к host на порт port как user

ssh-copy-id [email protected] — добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

grep pattern files — искать pattern в files

grep -r pattern dir — искать рекурсивно pattern в dir

command | grep pattern — искать pattern в выводе command

locate file — найти все файлы с именем file

find | grep text — найти текст text во всех файлах текущей директории

find / -name vasy\* — найти файлы и папки с названием vasy*

grep -rl ‘что_ищем’ /путь — найти файлы в теле которых ‘что_ищем’

grep -Ril «что_ищем» /путь — найти файлы в теле которых ‘что_ищем’

НАЙТИ файлы с именем files.php и заархивировать в archive.txz:

Найти php.ini вы можете с помощью команд:

date — вывести текущую дату и время

cal — вывести календарь на текущий месяц

uptime — показать текущий аптайм

w — показать пользователей онлайн

whoami — имя, под которым вы залогинены

finger user — показать информацию о user

cat /proc/cpuinfo — информация ЦПУ

cat /proc/meminfo — информация о памяти

man command — показать мануал для command

df — показать инф. о использовании дисков

du — вывести «вес» текущего каталога

du -sh — cколько весит папка?

du -shc dirname/ — общий вес папки

du -shc dirname/* — общий вес папки и всех его подкаталогов первого уровня

free — использование памяти и swap

Информация о ядре Linux:

Узнать версию Linux Debian / Ubuntu:

Узнать версию Linux CentOS:

Узнать версию Linux Redhat:

Узнать версию Linux также можно такими командами:

whereis app — возможное расположение программы app

which app — какая app будет запущена по умолчанию

TAR: подробнее — тут tovld.com/archives/916
tar cf file.tar files — создать tar-архив с именем file.tar содержащий files
tar xf file.tar — распаковать file.tar
TAR GZ:
tar czf file.tar.gz files — создать архив tar с сжатием Gzip
tar xzf file.tar.gz — распаковать tar с Gzip
TAR BZ:
tar cjf file.tar.bz2 — создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 — распаковать tar с Bzip2

GZIP:
gzip file — сжать file и переименовать в file.gz
gzip -d file.gz — распаковать file.gz в file

ZIP:
сжать /dir в archive.zip:

распаковать archive.zip в текущую директорию:

добавить в архив foo из папки folder только файлы с расширениями php, html, js, css:

добавить в архив foo из папки folder только файлы с именем index.php:

ZIP end exclude some files and dirs:

7 ZIP:
win:
7z.exe a archive.7z -r c:\dir\with\files\*index.php — заархивировать все файлы с именем index.php из директории c:\dir\with\files\ и всех ее поддиректорий.

ping host — пропинговать host и вывести результат

traceroute google.com — трассировка маршрута к серверу google.com

whois domain — получить информацию whois для domain

dig domain — получить DNS информацию domain

dig -x host — реверсивно искать host

wgеt file — скачать file

wgеt -c file — продолжить остановленную закачку

ifconfig — вывод сетевых интерфейсов и подключений

ifconfig -a — Отображение всех интерфейсов, включая отключенные

ifconfig eth0 down — выключаем интерфейс eth0

ifconfig eth0 up — поднимаем (включаем) интерфейс eth0
или
ifup eth0 — поднимаем (включаем) интерфейс eth0

Установка из исходников:

Установка собранных пакетов:
dpkg -i pkg.deb — установить пакет (Debian, Ubuntu)

rpm -Uvh pkg.rpm — установить пакет (RPM RedHatm CentOS)

Установка программ из репозиториев:

Debian / Ubuntu:
Обновить данные о доступных в репозиториях программах можно командой:
apt-get update — Обновить данные о доступных в репозиториях программах:

apt-get install apache2 — установить пакет «apache2» (Debian, Ubuntu)

RedHat, CentOS, Scientific Linux:
yum install httpd — Установить пакет «httpd»

Удаление пакетов:

Debian / Ubuntu:
apt-get remove apache2 — удалит ранее установленный пакет apache2

Удаление пакета со всеми его зависимостями и оставшимися конфигами в системе на примере удаления exim4: http://unixforum.org/index.php?showtopic=130111

dpkg -l | grep exim4 — проверяем на наличие установленного пакета exim4 в системе, если существует — смотрим ниже

aptitude purge

iexim4 — удаляем пакет exim4 изначально правильно (с чисткой остаточных конфигов), если до этого не пробовали его удалить по другому

aptitude purge

cexim4 — удаляем пакет exim4 если он был некорректно удален ранее

aptitude purge

c — Удалит все пакеты вместе с оставшимися конфигами (мусором)

cron — выполнение заданной команды в определенное время

Клавиатурные сочетания

Ctrl+C — завершить текущую команду

Ctrl+Z — остановить текущую команду, продолжть с fg на переднем плане или bg в фоне

Полезные команды Linux

user Перейти в домашний каталог пользователя user # cd — Перейти в предыдущую директорию, из которой был сделан переход в текущую директорию # cp -a test_1 test_2 Копировать директорию test_1 в директорию test_2 # cp file_1 file_2 Копировать файл file_1 в файл file_2 # cp -a /tmp/test . Rопировать директорию test и все ее содержимое в текущую директорию # cp test/* . Копировать все файлы содержащиеся в директории test в текущую директорию # iconv -l Выводит список доступных для использования кодировок # iconv -c -f windows-1251 -t utf-8 inputFile > outputFile Конвертировать файл из кодировки windows-1251 в кодировку utf-8 # ln -s /path/to/filedir ./link Создать в текущей директории символическую ссылку link на директорию или файл filedir # ln /path/to/filedir ./link Создать в текущей директории жесткую ссылку link на директорию или файл filedir # ls Вывести листинг содержимого текущей директории # ls -F Листинг текущей директории с добавлением к именам символов, обозначающих тип объекта # ls -l Листинг текущей директории с подробностями по каждому объекту ( права доступа, владелец, группа, дата, размер ) # ls -a Кроме обычных объектов, вывести в листинге, скрытые файлы и директории, текущего каталога # ls /tmp | pr -T5 -W$COLUMNS Листинг директории /tmp в 5 колонок # ls *[0-9]* Вывести в листинг файлов и директорий текущего каталога, содержащие в имени цифровые символы # lstree Листинг иерархии директорий и файлов, начиная с корневого каталога (/) # mkdir dir Создать в текущем каталоге, директорию с именем dir # mkdir dir_1 dir_2 Создать в текущем каталоге две директории, с именами dir_1 и dir_2 # mkdir -p /path/to/dir Создать иерархию директорий. Кроме самой директории dir будут созданы все промежуточные директории # mv filedir new_filedir Переместить ( переименовать ) файл или директорию из filedir в new_filedir # rm -rf /dir Рекурсивно удалить директорию dir и всё её содержимое, без запроса подтверждения на удаление # rm -f file Удалить файл file, без запроса подтверждения # rm -rf /dir_1 /dir_2 Удалить директории /dir_1 и /dir_2 вместе с содержимым, без запроса подтверждения # rmdir /dir Удалить директорию /dir # tree Вывести иерархию директорий и файлов, начиная с корневой (/) # touch -t 0712250000 file1 Изменить дату и время создания файла, если указанный файл не существует, создать его с указанными датой и временем (YYMMDDhhmm) ]]> Вверх ]]>

Предисловие

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

Поэтому, хоть про это уже и много раз написано, я всё же решился написать ещё одну статью «Linux для новичков» и перечислить здесь базовые команды, которые нужно знать перед любым собеседованием в отдел (или компанию), где используют Linux. Я подумал, какие команды и утилиты и с какими параметрами я использую чаще всего, собрал фидбек от коллег, и скомпоновал это всё в одну статью. Статья условно делится на 3 части: сначала краткая информация об основах ввода-вывода в терминале Linux, затем обзор самых базовых команд, а в третьей части описывается решение типовых задач в Linux.

У каждой команды есть много опций, здесь все они перечислены не будут. Всегда можно ввести `man <команда>` или `<команда> —help`, чтобы узнать о команде подробнее.

Немного о выводе команд

Когда запускается процесс в Linux, создаётся 3 стандартных потока данных для этого процесса: stdin, stdout и stderr. Они имеют номер 0, 1 и 2 соответственно. Но нас сейчас интересуют stdout и, в меньшей степени, stderr. Из названий несложно догадаться, что stdout используется для вывода данных, а stderr — для вывода сообщений об ошибках. По умолчанию при запуске команды в Linux stdout и stderr выводят всю информацию на консоль, однако, если вывод команды большой, может быть удобно перенаправить его в файл. Это можно сделать, например, так:

Если мы выведем содержимое файла man_signal, то мы увидим, что оно идентично тому, что было бы при простом запуске команды `man signal`.

Операция перенаправления `>` по умолчанию использует stdout. Можно указать о перенаправлении stdout явно: `1>`. Аналогично можно указать о перенаправлении stderr: `2>`. Можно эти операции скомбинировать и таким образом разделить обычный вывод команды и вывод сообщений об ошибках:

Перенаправить и stdout, и stderr в один файл можно следующим образом:

Операция перенаправления `2>&1` означает перенаправление stderr туда же, куда направлен stdout.

Еще один удобный инструмент для работы с вводом-выводом (а точнее, это удобное средство межпроцессного взаимодействия) — pipe (или конвейер). Конвейеры часто используются для связи нескольких команд: stdout команды перенаправляется в stdin следующей, и так по цепочке:

Базовые команды Linux

Вывести текущую (рабочую) директорию.

Вывести текущую дату и время системы.

Данная команда показывает, кто залогинен в системе. Помимо этого также на экран выводится uptime и LA (load average).

Вывести содержимое директории. Если не передать путь, то выведется содержимое текущей директории.

Лично я часто использую опции -l (long listing format — вывод в колонку с дополнительной информацией о файлах), -t (сортировка по времени изменения файла/директории) и -r (обратная сортировка — в сочетании с -t наиболее «свежие» файлы будут внизу):

Есть 2 специальных имени директории: «.» и «..«. Первое означает текущую директорию, второе — родительскую директорию. Их бывает удобно использовать в различных командах, в частности, ls:

Также есть полезная опция для вывода скрытых файлов (начинаются на «.«) — -a:

И еще можно использовать опцию -h — вывод в human readable формате (обратите внимание на размеры файлов):

Изменить текущую директорию.

Если не передавать имя директории в качестве аргумента, будет использоваться переменная окружения $HOME, то есть домашняя директория. Также может быть удобно использовать `

` — специальный символ, означающий $HOME:

mkdir

Иногда нужно создать определенную структуру директорий: например, директорию в директории, которой не существует. Чтобы не вводить несколько раз подряд mkdir, можно использовать опцию -p — она позволяет создать все недостающие директории в иерархии. Также с этой опцией mkdir не вернет ошибку, если директория существует.

Опция -r позволяет рекурсивно удалять директории со всем их содержимым, опция -f позволяет игнорировать ошибки при удалении (например, о несуществующем файле). Эти опции позволяют, грубо говоря, гарантированно удалить всю иерархию файлов и директорий (если на это есть права у пользователя), поэтому, их нужно использовать с осторожностью (классический пример-шутка — «rm -rf /«, при определенных обстоятельствах удалит вам если не всю систему, то очень много важных для её работоспособности файлов).

Копировать файл или директорию.

У этой команды также есть опции -r и -f, их можно использовать, чтобы гарантированно скопировать иерархию директорий и папок в другое место.

Переместить или переименовать файл или директорию.

Вывести содержимое файла (или файлов).

Также стоит обратить внимание на команды head (вывести n первых строк или байт файла) и tail (о ней — далее).

Вывести n последних строк или байт файла.

Очень полезной является опция -f — она позволяет выводить новые данные в файле в реальном времени.

Иногда текстовый файл слишком большой, и неудобно выводить его командой cat. Тогда можно открыть его с помощью команды less: файл будет выводиться по частям, доступна навигация по этим частям, поиск и прочий простой функционал.

Также может оказаться удобным вариант использования less с конвейером (pipe):

Вывести список процессов.

Я сам обычно использую BSD опции «aux» — вывести все процессы в системе (так как процессов может быть много, я вывел только первые 5 из них, использовав конвейер (pipe) и команду head):

Многие также используют BSD опции «axjf«, что позволяет вывести дерево процессов (здесь я убрал часть вывода для демонстрации):

У этой команды много различных опций, так что при активном использовании рекомендую ознакомиться с документацией. Для большинства же случаев хватит просто знать «ps aux«.

Послать сигнал процессу. По умолчанию посылается сигнал SIGTERM, который завершает процесс.

Так как процесс может иметь обработчики сигналов, kill не всегда приводит к ожидаемому результату — моментальному завершению процесса. Чтобы «убить» процесс наверняка, нужно послать процессу сигнал SIGKILL. Однако это может привести к потере данных (например, если процесс перед завершением должен сохранить какую-то информацию на диск), так что нужно пользоваться такой командой осторожно. Номер сигнала SIGKILL — 9, поэтому короткий вариант команды выглядит так:

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

Послать хосту ICMP пакет ECHO_REQUEST.

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

OpenSSH SSH клиент, позволяет подключаться к удаленному хосту.

Есть много нюансов в использовании SSH, также этот клиент обладает большим количеством возможностей, поэтому при желании (или необходимости) можно почитать про это более подробно.

Копировать файлы между хостами (для этого используется ssh).

rsync

Также для синхронизации директорий между хостами можно использовать rsync (-a — archive mode, позволяет скопировать полностью всё содержимое директории «как есть», -v — вывод на консоль дополнительной информации):

Вывести на экран строку текста.

Здесь заслуживают внимания опции -n — не дополнять строку переносом строки в конце, и -e — включить интерпретацию экранирования с помощью «\».

Также с помощью этой команды можно выводить значения переменных. Например, в Linux exit code последней завершенной команды хранится в специальной переменной $?, и таким образом можно узнать, какая именно ошибка произошла в последнем запущенном приложении:

telnet

Клиент для протокола TELNET. Используется для коммуникации с другим хостом.

Если нужно использовать протокол TLS (напомню, что SSL давно устарел), то telnet для этих целей не подойдёт. Зато подойдёт клиент openssl:

Решение типовых задач в Linux

Изменить владельца файла

Изменить владельца файла или директории можно с помощью команды chown:

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

Изменить права доступа файла

Эта задача решается с помощью команды chmod. В качестве примера приведу установку прав «владельцу разрешено чтение, запись и исполнение, группе разрешено чтение и запись, всем остальным — ничего»:

Первая 7 (это 0b111 в битовом представлении) в параметре означает «все права для владельца», вторая 6 (это 0b110 в битовом представлении) — «чтение и запись», ну и 0 — это ничего для остальных. Битовая маска состоит из трёх битов: самый младший («правый») бит отвечает за исполнение, следующий за ним («средний») — за запись, и самый старший («левый») — за чтение.
Также можно выставлять права с помощью специальных символов (мнемонический синтаксис). Например, в следующем примере сначала убираются права на исполнение для текущего пользователя, а затем возвращаются обратно:

У этой команды есть много вариантов использования, поэтому советую прочитать про неё подробнее (особенно про мнемонический синтаксис, например, здесь).

Вывести содержимое бинарного файла

Это можно сделать с помощью утилиты hexdump. Ниже приведены примеры её использования.

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

Искать файлы

Найти файл по части имени в дереве каталогов можно с помощью команды find:

Также доступны другие опции и фильтры поиска. Например, так можно найти файлы в папке test, созданные более 5 дней назад:

Искать текст в файлах

Справиться с этой задачей поможет команда grep. У неё есть множество вариантов использования, здесь в качестве примера указан самый простой.

Один из популярных способов использования команды grep — использование её в конвейере (pipe):

Опция -v позволяет сделать эффект grep‘а обратным — будут выводиться только строки, не содержащие паттерн, переданный в grep.

Смотреть установленные пакеты

Универсальной команды нет, потому что всё зависит от дистрибутива Linux и используемого пакетного менеджера. Скорее всего вам поможет одна из следующих команд:

Посмотреть, сколько места занимает дерево директорий

Один из вариантов использования команды du:

Можно менять значение параметра -d, чтобы получать более подробную информацию о дереве директорий. Также можно использовать команду в комбинации с sort:

Опция -h у команды sort позволяет сортировать размеры, записанные в human readable формате (например, 1K, 2G), опция -r позволяет отсортировать данные в обратном порядке.

«Найти и заменить» в файле, в файлах в директории

Данная операция выполняется с помощью утилиты sed (без флага g в конце заменится только первое вхождение «old-text» в строке):

Можно использовать её для нескольких файлов сразу:

Вывести колонку из вывода

Справиться с этой задачей поможет awk. В данном примере выводится вторая колонка вывода команды `ps ux`:

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

Узнать IP адрес по имени хоста

С этим поможет одна из следующих команд:

Сетевая информация

Можно использовать ifconfig:

А можно и ip:

При этом, если, например, вас интересует только IPv4, то можно добавить опцию -4:

Посмотреть открытые порты

Для этого используют утилиту netstat. Например, чтобы посмотреть все слушающие TCP и UDP порты с отображением PID’а процесса, слушающего порт, и с числовым представлением порта, нужно использовать ее со следующими опциями:

Информация о системе

Получить данную информацию можно с помощью команды uname.

Чтобы понять, в каком формате производится вывод, можно обратиться к help‘у данной команды:

Информация о памяти

Чтобы понять, сколько оперативной памяти занято или свободно, можно воспользоваться командой free.

Информация о файловых системах (свободное место на дисках)

Команда df позволяет посмотреть, сколько места свободно и занято на примонтированных файловых системах.

Опция -T указывает, что нужно выводить тип файловой системы.

Информация о задачах и различной статистике по системе

Для этого используется команда top. Она способна вывести разную информацию: например, топ процессов по использованию оперативной памяти или топ процессов по использованию процессорного времени. Также она выводит информацию о памяти, CPU, uptime и LA (load average).

Эта утилита обладает богатым функционалом, так что если вам надо часто ей пользоваться, лучше ознакомиться с её документацией.

Дамп сетевого трафика

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

Опция -A говорит о том, что мы ходим видеть вывод в ASCII (поэтому это хорошо для текстовых протоколов), -i any указывает, что нас не интересует сетевой интерфейс, port — трафик какого порта дампить. Вместо port можно использовать host, либо комбинацию host и port (host A and port X). И еще полезной может оказаться опция -n — не конвертировать адреса в хостнеймы в выводе.
Что если трафик бинарный? Тогда нам поможет опция -X — выводить данные в hex и ASCII:

При этом надо учитывать, что в обоих вариантах использования будут выводиться IP пакеты, поэтому в начале каждого из них будут бинарные заголовки IP и TCP. Вот пример вывода для запроса «123» посланного в сервер, слушающий порт 12345:

4 способа выйти из десктопной сессии Ubuntu

Когда вы используете систему Ubuntu, которая имеет несколько пользователей и одному из пользователей необходимо поработать в системе, у Вас есть несколько способов передать систему ему.

Самый простой спосбо, это выйти из системы и передать управление другому пользователю.

Однако, когда Вы выходите из системы, Ваши текущие сессии и все запущенные приложения остановятся. Таким образом, когда Вы входите в систему назад, необходимо будет вновь открыть все необходимые приложения.

В этой статье мы опишем четыре способа использовать, который пользователь может выйти из его сессии Ubuntu:

  • Используя UI
  • Используя Горячие клавиши
  • Через панель поиска средства запуска приложения
  • Через командную строку Ubuntu, Терминал

Метод 1: выйдите из системы Используя UI

Один из простых способов выйти из Вашей сессии Ubuntu состоит в том, чтобы использовать меню, доступное через направленную вниз стрелку, расположенную в главном правом углу Вашего экрана Ubuntu. Это — меню, которое Вы будете видеть при нажатии на эту стрелку:

выйдите из системы Используя UI

Нажмите свое имя пользователя, и Вы будете в состоянии видеть следующие два основных элемента подменю: Выйдите из системы и Настройки учетной записи. Нажмите на опцию Log Out, чтобы выйти из Вашей текущей сессии Ubuntu. Следующее диалоговое окно отобразится, если Вы сделаете так:

выйдите из системы Используя UI

Это диалоговое окно позволяет Вам выйти из системы прямо тогда путем нажатия кнопки Log Out. Иначе система автоматически заканчивает Вашу сессию после 60 секунд, если Вы не нажимаете Кнопку отмены.

Метод 2: выйти из системы Используя горячие клавиши

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

выйти из системы Используя горячие клавиши

Вы видите все такие сочетания клавиш и даже создаете Ваше собственное из Вашей утилиты параметров настройки системы. Откройте утилиту Settings непосредственно в представлении Keyboard путем ввода слова “ярлыки” в панель поиска средства запуска приложения следующим образом:

выйти из системы Используя горячие клавиши

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

выйти из системы Используя горячие клавиши
Метод 3: выйти из системы Используя поиск средства запуска приложения

Другой быстрый метод к выходу из системы Вашей сессии должен использовать очень полезную панель поиска средства запуска приложения. К этой панели можно получить доступ путем удара Супер ключевого / Windows, включают клавиатуру.

выйти из системы Используя поиск средства запуска приложения

Введите ключевое слово “выход из системы” в эту панель поиска, и Вы будете видеть утилиту Log Out в результате поиска следующим образом:

Нажмите на Журнал результат поиска, и Вы будете представлены, то же Выходит из системы диалоговое окно, которое мы описали выше.

Метод 4: выйдите из системы Используя терминал

Откройте командную строку Ubuntu, Терминал, или посредством поиска средства запуска приложения или посредством ярлыка Ctrl+Alt+T.

Тогда введите следующую команду для окончания сессии входа в систему текущего пользователя:

При выполнении этой команды появляется диалоговое окно, которое позволяет Вам выйти из системы прямо тогда путем нажатия кнопки Log Out. Иначе система автоматически заканчивает Вашу сессию после 60 секунд.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Капельница от запоя — облегчение за 15–20 минут