Самый простой способ найти текущего пользователя – это открыть терминал, который покажет имя пользователя и имя хоста.
Запутался? Позвольте нам показать вам:
andreyex@destroyer:~$
где:
Другой способ – использовать переменную среды $USER.
Но что, если вы хотите использовать эти данные в bash-скрипте? Или вы хотите найти текущего пользователя в bash-скрипте? Что ж, в этой статье такие вопросы будут рассмотрены более подробно.
В этой статье мы расскажем вам о следующих способах поиска текущей учетной записи пользователя в Linux:
Каждое из этих пояснений к командам будет включать выполнение командной строки, а также то, как это можно использовать в скрипте bash, чтобы вы могли получить максимальную отдачу от каждого из них.
Чтобы узнать текущего вошедшего в систему пользователя с помощью команды who, все, что вам нужно сделать, это выполнить команду who следующим образом:
who
andreyex :1 2024-03-11 12:45 (:1)
Вы увидите текущего пользователя вместе с некоторой дополнительной информацией, где:
Если бы вы использовали команду who только для получения имени пользователя, вам пришлось бы внести некоторые изменения.
Здесь я использовал команду awk, чтобы напечатать только имя пользователя, удалив всю остальную дополнительную информацию:
who | awk '{print $1}'
andreyex@destroyer:~$ who | awk '{print $1}' andreyex
Чтобы использовать команду who для поиска текущей учетной записи пользователя, вы можете использовать команду who с аргументом awk и присвоить его переменной, как показано здесь:
#!/bin/bash # Получите текущую учетную запись пользователя, используя who и awk current_user=$(who | awk '{print $1}') echo "The current user is: $current_user"
При выполнении это выдаст вам следующий результат:
andreyex@destroyer:~$ ./who.sh The current user is: andreyex
В отличие от команды who, когда вы выполняете команду whoami в Linux, она выводит только имя пользователя текущего вошедшего в систему пользователя:
whoami
andreyex@destroyer:~$ whoami andreyex
Да, никаких дополнительных флагов не требуется! Сразу к делу.
Если вы хотите найти текущую учетную запись пользователя с помощью команды whoami, ее можно вычислить в скрипте bash следующим образом:
#!/bin/bash # Получите текущего пользователя, вошедшего в систему, с помощью whoami current_user=$(whoami) echo "The currently logged-in user is: $current_user"
Если вы решите использовать приведенный выше скрипт, ожидайте следующего вывода:
andreyex@destroyer:~$ ./who.sh The currently logged-in user is: andreyex
Чтобы использовать переменную среды $USER в скрипте bash для поиска текущего пользователя, вам нужно соединить ее с командой echo, как показано на рисунке:
echo $USER
andreyex@destroyer:~$ echo $USER andreyex
Теперь давайте посмотрим на ту часть скрипта bash, где он предназначен для использования!
Если вы хотите использовать скрипт bash для поиска текущего пользователя, это может быть идеальным примером, поскольку вам не нужно присваивать его какой-либо переменной.
Конечно, вы можете добиться аналогичных результатов с помощью команд (используя $(command)), но все же мы считаем это самым простым способом.
Вот как вы можете использовать переменную среды $USER в скрипте bash:
#!/bin/bash echo "The current user is: $USER"
Да, простая однострочная команда, и при выполнении она даст вам те же результаты, что и две предыдущие команды:
andreyex@destroyer:~$ ./USER.sh The current user is: andreyex
Если вы системный администратор и хотите, чтобы пользователи принудительно меняли свой пароль при следующем входе в систему, вот подробное руководство, объясняющее, как заставить пользователей изменить пароль:
Вы также можете удалять учетные записи пользователей с помощью команды userdel:
Вы также можете изменять учетные записи пользователей с помощью команды usermod:
Мы надеемся, что вы найдете это руководство полезным.