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

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

2
задан 31 March 2014 в 16:14

4 ответа

Это вызвано тем, что открытый терминал (физический или виртуальный) считается, поскольку пользователь вошел в систему. Таким образом, когда Вы входите в систему в учетную запись, Вы входите в систему однажды при открытии терминала, любое использование 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
ответ дан 31 March 2014 в 16:14

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

4
ответ дан 31 March 2014 в 16:14

От 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
ответ дан 31 March 2014 в 16:14

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 команда с -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
ответ дан 31 March 2014 в 16:14

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

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