Почему терминал отвечает с помощью & ldquo; 2 & rdquo; когда я использую, кто | wc -l

Название гласит все. Я единственный пользователь на своем компьютере, но когда я набираю, кто | wc -l, он отвечает 2. Почему это?

1
задан 31 March 2014 в 17:14

3 ответа

who дает подробную информацию о зарегистрированных пользователях по одной в каждой строке, как показано в

aditya@aditya-desktop:~$ who
aditya   tty7         2014-03-31 16:45 (:0)
aditya   pts/2        2014-03-31 17:51 (:0)
aditya@aditya-desktop:~$ 

wc -l, не дает строк. В who|wc -l мы выполнили команды. То есть, мы отправляем вывод команды who в wc -l. wc -l будет измерять количество строк на выходе, заданное командой who, которое равно 2.

aditya@aditya-desktop:~$ who|wc -l
2
aditya@aditya-desktop:~$ 

Для получения дополнительной информации вы можете прочитать руководства, набрав man who и

4
ответ дан 24 May 2018 в 10:12
  • 1
    Правильно, я понимаю все это, кроме конца. Почему два пользователя онлайн? Как я могу войти в две отдельные учетные записи, когда я нахожусь? Или есть какой-то другой произвольный «пользователь» ?? – Mdomin45 31 March 2014 в 17:31
  • 2
    @ user3046635 нажмите ctrl + f1 и ctrl + f7. ты поймешь. – Registered User 31 March 2014 в 17:32
  • 3
    Пока в терминале? Нажатие клавиши ctrl + f1 в терминале ничего не делает, а нажатие ctrl + f7 входов; 5 ~, которое я не понимаю, и нажатие кнопки возврата просто вернет синтаксическую ошибку из-за полуколонии. – Mdomin45 31 March 2014 в 17:36
  • 4
    это была опечатка. вам нужно набрать ctrl + alt + f1 и ctrl + alt + f7 – Registered User 31 March 2014 в 17:48
  • 5
    @ user3046635 ^^ – Registered User 31 March 2014 в 17:54

Из info coreutils 'who invocation':

   If given no non-option arguments, `who' prints the following
information for each user currently logged on: login name, terminal
line, login time, and remote hostname or X display.

Итак, если вы вошли в более чем одно место, и никто не регистрируется, вывод who | wc -l будет количество мест, в которых вы зарегистрированы. Если вы откроете больше окон терминала, вы увидите, что это число увеличится. То же самое, если вы откроете больше вкладок в окне терминала.

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

who is using_my_pc | wc -l

Нет, это шутка (что смешно, потому что она работает в этом случае). Смотрите info coreutils 'who invocation', чтобы увидеть, что именно. Правильный способ увидеть число уникальных пользователей, зарегистрированных в вашей системе:

who | cut -d' ' -f1 | uniq | wc -l
2
ответ дан 24 May 2018 в 10:12
  • 1
    @Jobin Какой из них: who is using_my_pc? – Radu Rădeanu 31 March 2014 в 18:31
  • 2
    [F1]. – jobin 31 March 2014 в 18:31
  • 3
    +1, я просто любил трюк who is using_my_pc. Это вполне соответствует логике других команд, таких как whoami, которые должны быть легко читаемыми людьми. – John WH Smith 1 April 2014 в 01:18
Команда

who показывает информацию о пользователях, которые в настоящее время вошли в систему.

avinash@avinash-Lenovo-IdeaPad-Z500:~$ who
avinash  tty7         2014-03-31 16:52 (:0)
avinash  pts/1        2014-03-31 17:59 (:0)

tty7 представляет вышеупомянутого пользователя, который запускает сеанс X GUI. А также второй, , указанный выше пользователь также запускает сеанс gnome-terminal.

Как и @Aditya, wc -l подсчитывает количество строк в стандартном входе. who | wc -l в этой команде, вывод команды who был подан как вход во вторую команду wc -l. Таким образом, inturn, wc -l вычисляет количество строк, присутствующих в стандартном вводе (2), и выводит (stdout) конечный результат.

Чтобы увидеть количество пользователей, которые вошли в систему, запустите команду who с параметром -q, как показано ниже.

avinash@avinash-Lenovo-IdeaPad-Z500:~$ who -q
avinash avinash avinash
# users=3

Из man who

-q, --count
          all login names and number of users logged on
1
ответ дан 24 May 2018 в 10:12
  • 1
    Мой вопрос таков: почему он говорит два, когда в систему входит только один пользователь? Я что-то упускаю? – Mdomin45 31 March 2014 в 17:31

Другие вопросы по тегам:

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