Чтобы ваша команда работала с любым пользователем, попробуйте
last $(whoami)| head -8
Я заменил параметр username
в вашей команде на $(whoami)
, который является выводом whoami
.Команда whoami
печатает имя пользователя, связанное с текущим действующим идентификатором пользователя.Когда вы запускаете это без использования sudo
или других средств для изменения эффективного идентификатора пользователя, это должно быть имя пользователя текущего пользователя.
или
last -n 8 $(whoami)
Если ваш last
Команда поддерживает опцию -n 8
или просто -8
, вы можете указать количество строк, которые будут напечатаны без прохождения через head
.Обратите внимание, что это может добавить строку, указывающую, когда файл wtmp
был запущен.С | head -8
эта дополнительная строка будет удалена, если над ней будет достаточно строк входа в систему.
псевдоним или функция
Согласно https://stackoverflow.com/a/7131683/10622916 вы не можете передать аргумент псевдониму.,Аргументы будут добавлены к расширению псевдонима.
Поэтому невозможно вставить аргумент в расширение псевдонима или объединить его с -
для создания опции.
Если вам нужнопсевдоним, а не функцию, вы можете использовать
alias mylogin='last $(whoami)|head -n'
Затем вы можете вызвать
mylogin 8
, который будет расширен до
last $(whoami)| head -n 8
Это решение имеетнедостатком является то, что вы получите сообщение об ошибке head
при вызове
mylogin
без аргументов, потому что это расширяется до
last $(whoami)| head -n
Чтобы избежать этой ошибки, вы можете использовать функцию вместопсевдоним.
mylogin () {
if [ -n "$1" ]
then
last -n "$1" $(whoami)
else
last $(whoami)
fi
}
В функции вы также можете использовать
last $(whoami) | head -n "$1"
вместо
last -n "$1" $(whoami)