Команда для получения только имени дистрибутива Linux.

Вы можете использовать команду who -u, которая дает список пользователей, вошедших в систему, вместе с PID сеансов оболочки.

root@server:/# who -u
root     - pts/0        2017-08-08 15:52 00:08       21934 (192.168.5.33)
root     - pts/1        2017-08-08 16:07  .         31669 (192.168.5.33)

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

root@server:/# kill 21934 31669

Обратите внимание, что уничтожение оболочки приведет к завершению родительского сеанса ssh.

2
07.12.2019, 22:25
3 ответа

Я бы использовал:

grep -Po "(?<=^ID=).+" /etc/os-release | sed 's/"//g'
0
27.01.2020, 22:02

lsb_release -iможет делать то, что вы хотите, если он установлен. В противном случае хитрость заключается в проверке файлов типа /etc/redhat-release, /etc/debian_versionи т. д.

$ lsb_release -i 
Distributor ID: Fedora
1
27.01.2020, 22:02

Я всегда сначала проверял lsb_release -i, а потом проверял /etc/os-releaseкак запасной вариант. Он должен быть доступен на многих дистрибутивов, но вы никогда не можете рассчитывать на то, что он будет везде курс. Это Freedesktop стандартный и присутствует в systemd системы . На Slackware показывает:

$ cat /etc/os-release
NAME=Slackware
VERSION="14.2"
ID=slackware
VERSION_ID=14.2
PRETTY_NAME="Slackware 14.2"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:slackware:slackware_linux:14.2"
HOME_URL="http://slackware.com/"
SUPPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"
BUG_REPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"

И на Raspbian:

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Вероятно, вас интересует поле ID.

2
27.01.2020, 22:02

Теги

Похожие вопросы