Вы можете использовать команду 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.
Я бы использовал:
grep -Po "(?<=^ID=).+" /etc/os-release | sed 's/"//g'
lsb_release -i
может делать то, что вы хотите, если он установлен. В противном случае хитрость заключается в проверке файлов типа /etc/redhat-release
, /etc/debian_version
и т. д.
$ lsb_release -i
Distributor ID: Fedora
Я всегда сначала проверял 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
.