Почему терминал отвечает «2», когда я использую who | туалет

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

2
задан 18.05.2020, 10:51

4 ответа

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. И также второй, pts/1 представляет вышеупомянутого пользователя, также выполняет терминальный сеанс гнома.

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

Для наблюдения числа пользователей, которые зарегистрированы, выполнение who команда с [1 111] параметр как ниже.

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

От [1 112]

-q, --count
          all login names and number of users logged on
0
ответ дан 18.05.2020, 10:52
  • 1
    Мой вопрос - это: то, почему это говорит два, когда существует явно только один пользователь, вошло в систему? Я пропускаю что-то? – John 18.05.2020, 10:52

who дает подробную информацию, в настоящее время входил в систему пользователи один на каждой строке, поскольку после [1 111]

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 и man wc

0
ответ дан 18.05.2020, 10:53
  • 1
    @user3046635 нажимают ctrl+f1 и ctrl+f7. Вы поймете. – Ziad Younis 18.05.2020, 10:53
  • 2
    В то время как в терминале? Нажатие ctrl+f1 в терминале doesn' t, кажется, делают что-либо, и нажимающий ctrl+f7 исходные данные; 5 ~, который я don' t понимают, и нажимающий возврат просто возвратит синтаксическую ошибку из-за точки с запятой. – the kamilz 18.05.2020, 10:54
  • 3
    @user3046635 ^^ – Jacob Pagano 18.05.2020, 10:54
  • 4
    Право, я понимаю все это за исключением конца. Почему два пользователя онлайн? Я так или иначе вхожу в две отдельных учетных записи, когда я преуспеваю? Или есть ли некоторый другой произвольный " user"? – Brayton Larson 18.05.2020, 10:55
  • 5
    это была опечатка. Вы имеете к типу ctrl+alt+f1 и ctrl+alt+f7 – Jude Song 18.05.2020, 10:55

Это вызвано тем, что открытый терминал (физический или виртуальный) считается, поскольку пользователь вошел в систему. Таким образом, когда Вы входите в систему в учетную запись, Вы входите в систему однажды при открытии терминала, любое использование Ctrl + Высокий звук + t (здесь названный как виртуальный терминал) или использование Ctrl + Высокий звук + F {1-7} (здесь названный как физический терминал), Вы входите в систему еще раз, каждый раз, когда Вы входите в систему.

Это ясно показывают в выводе who. Второй столбец показывает, как пользователь вошел в систему. В случае, если Вы вошли в систему с помощью виртуального терминала, Вы будете видеть pts/<no>, который представляет Вас, использовали /dev/pts для входа в систему, который используется для входа в систему с помощью виртуального терминала. Если Вы войдете в систему с помощью физического терминала, Вы будете видеть tty<no>, который представляет Вас, использовали /dev/tty для вхождения в систему.

Для разъяснения этого посмотрите следующую ситуацию:

я вошел в систему однажды использование графического интерфейса, однажды использование виртуального терминала, однажды использование физического терминала, таким образом, вывод:

jobin    tty1         2014-03-31 18:05
jobin    :0           2014-03-31 16:58 (:0)
jobin    pts/1        2014-03-31 17:25 (:0)

первая строка указывает на физический терминальный вход в систему, второй графическое и третье виртуальное.

Так причина Вы видите "2", то, потому что Вы вошли в систему графического интерфейса, а также терминала (не вполне уверенный, есть ли у Вас физический или виртуальный).

0
ответ дан 18.05.2020, 10:53
  • 1
    Это было довольно быстро!: D Вы на самом деле читал ответ? – xXJinXx 18.05.2020, 10:54
  • 2
    Да, я считал всю вещь. Это имеет намного больше смысла теперь. Я открыл виртуальный терминал, таким образом он показывает и tty7 и pts/0. – Steve 18.05.2020, 10:54
  • 3
    Спасибо за понимание вопроса и предоставление понятного ответа. – Rx M 18.05.2020, 10:55

От 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
0
ответ дан 18.05.2020, 10:54
  • 1
    who | cut -d' ' -f1 | uniq | wc -l один. – abestrad 18.05.2020, 10:54
  • 2
    @Jobin, Который: who is using_my_pc? – postanote 18.05.2020, 10:54
  • 3
    +1, я просто любил эти who is using_my_pc прием. Это вполне следует за логикой других команд как whoami, которые предназначены, чтобы быть легко читаемыми людьми. – DYZ 18.05.2020, 10:55

Теги

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