本篇文章给大家谈谈linux有多少pts,以及linux有多少行代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、linux有多少种终端
- 2、linux 有哪些终端?
- 3、linux中who命令显示的pts/0和是什么意思
- 4、linux 没有pts/0终端直接是pts/1 是为啥?
- 5、linux 中 pts/0 pts/1什么意思?
- 6、linux系统有多少个用户,怎么查
1、linux有多少种终端
1、串行端口终端 /dev/ttySn
串行端口终端是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常称为终端设备,因为那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0、/dev/tts/1等,设备号分别是(4,0)、(4,1)等,分别对应于DOS系统下的COM1、COM2等。若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。
2、伪终端 /dev/pty/
伪终端是成对的逻辑终端设备。例如/dev/ptyp3和/dev/ttyp3。它们与实际物理设备并不直接相关。如果一个程序把ptyp3看作是一个串行端口设备,则它对该端口的读写操作会反映在该逻辑终端设备对应的另一个ttyp3上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。telnet主机A就是通过伪终端与主机A的登录程序进行通信。
3、控制终端 /dev/tty
控制终端是指能够控制一个套设备或者几套设备的终端控制器。如果当前进程有控制终端的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令ps
-ax来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令tty可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。
4、控制台终端 /dev/ttyn,/dev/console
在Linux系统中,计算机显示器通常被称为控制台终端。它仿真了类型与Linux的一种终端,并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等。当你在控制台上登录时,使用的是tty1。使用ALT+[F1-F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1-tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。
5、虚拟终端 /dev/pts/n
在X Windows模式下的伪终端,比如在KUbuntu下用Konsole,就是用的虚拟终端,用tty命令可看到/dev/pts/1。
2、linux 有哪些终端?
1. tty(终端设备的统称):
tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。
2. pty(虚拟终端):
但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty)
3. pts/ptmx(pts/ptmx结合使用,进而实现pty):
pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。
Linux终端:在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:
1、串行端口终端(/dev/ttySn)
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于DOS系统下的COM1、COM2等。若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。例如,在命令行提示符下键入:echo test /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。可接串口来实验。
2、伪终端(/dev/pty/)
伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。
例如/dev/ptyp3和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty/m3和 /dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/ 写操作会反映在该逻辑终端设备对应的另一个ttyp3(slave设备)上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。
这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用ttyp3的程序则认为自己正在与一个串行端口进行通信。这很象是逻辑设备对之间的管道操作。对于ttyp3(s3),任何设计成使用一个串行端口设备的程序都可以使用该逻辑设备。但对于使用ptyp3的程序,则需要专门设计来使用 ptyp3(m3)逻辑设备。
例如,如果某人在网上使用telnet程序连接到你的计算机上,则telnet程序就可能会开始连接到设备 ptyp2(m2)上(一个伪终端端口上)。此时一个getty程序就应该运行在对应的ttyp2(s2)端口上。当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给 getty程序,而getty程序就会通过s2、m2和telnet程序往网络上返回”login:”字符串信息。这样,登录程序与telnet程序就通过“伪终端”进行通信。通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上。
在使用设备文件系统 (device filesystem)之前,为了得到大量的伪终端设备特殊文件,使用了比较复杂的文件名命名方式。因为只存在16个ttyp(ttyp0—ttypf) 的设备文件,为了得到更多的逻辑设备对,就使用了象q、r、s等字符来代替p。例如,ttys8和ptys8就是一个伪终端设备对。不过这种命名方式目前仍然在RedHat等Linux系统中使用着。
但Linux系统上的Unix98并不使用上述方法,而使用了”pty master”方式,例如/dev/ptm3。它的对应端则会被自动地创建成/dev/pts/3。这样就可以在需要时提供一个pty伪终端。目录 /dev/pts是一个类型为devpts的文件系统,并且可以在被加载文件系统列表中看到。虽然“文件”/dev/pts/3看上去是设备文件系统中的一项,但其实它完全是一种不同的文件系统。
即: TELNET --- TTYP3(S3: slave) --- PTYP3(M3: master) --- GETTY
=========================================================================
实验:
1、在X下打开一个或N个终端窗口
2、#ls /dev/pt*
3、关闭这个X下的终端窗口,再次运行;比较两次输出信息就明白了。
在RHEL4环境下: 输出为/dev/ptmx /dev/pts/1存在一(master)对多(slave)的情况
=========================================================================
3、控制终端(/dev/tty)
如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。
4、控制台终端(/dev/ttyn, /dev/console)
在Linux 系统中,计算机显示器通常被称为控制台终端 (Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话期存在。只有系统或超级用户root可以向 /dev/tty0进行写操作 即下例:
1、# tty(查看当前TTY)
/dev/tty1
2、#echo "test tty0" /dev/tty0
test tty0
5 、虚拟终端(/dev/pts/n)
在Xwindows模式下的伪终端.
6 、其它类型
Linux系统中还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。例如针对ISDN设备的/dev/ttyIn终端设备等。
======================
如果你是问shell的版本的话:
我一般都是用ubuntu,他默认的是bash
目前主要有下列版本的Shell:
Bourne Shell:是贝尔实验室开发的。
BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell。
Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
C Shell:是SUN公司Shell的BSD版本。
sh (Bourne) : The original shell from early versions of UNIX.
csh, tcsh, zsh: The C shell, and its derivatives, originally created by Bill Joy of Berkeley
UNIX fame. The C shell is probably the third most popular type of shell
after bash and the Korn shell.
ksh, pdksh: The Korn shell and its public domain cousin. Written by David Korn, this is
the default shell on many commercial UNIX versions.
bash: The Linux staple shell from the GNU project. bash, or Bourne Again SHell,
has the advantage that the source code is freely available, and even if it’s
not currently running on your UNIX system, it has probably been ported to
it. bash has many similarities to the Korn shell.
3、linux中who命令显示的pts/0和是什么意思
先说pts/0吧,man里面是这样说的:ptmx
and
pts
-
pseudo-terminal
master
and
slave,pts是所谓的伪终端或虚拟终端,具体表现就是你打开一个终端,这个终端就叫pts/0,如果你再打开一个终端,这个新的终端就叫pts
/1。比如用who命令查询当前登录的用户,可以看到每个用户的TTY设备(简单来说就是用户输入命令还有显示信息的设备,比如终端),下面是我机器上的显示:
calabash
tty7
2009-12-09
20:04
(:0)
calabash
pts/0
2009-12-09
20:20
(:0.0)
calabash
pts/1
2009-12-09
20:27
(:0.0)
有一个tty7是表示图形界面,我当前登录的是GNOME,当然就是图形界面了。还有tty1-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切换,+F7就是切换回图形界面。下面两行说明我当前打开了两个终端窗口,所以就有pts/0和pts/1
再说一下SSH吧,要把本机当做一个远程SSH服务器用,要先装个openssh-server,装完之后会自动启动sshd服务监听ssh连接,Ubuntu应该是预装了openssh-client的,所以启动sshd后,可以自己连接自己,最简单的命令:ssh
user@localhost
至于Windows下面可以用putty用作ssh连接客户端。然后突然想起很久以前小龚推荐我注册的一个unix-
center的账号可以登录上面的主机,就是SSH连接的。今天在公司就一直挂在unix-
center的Ubuntu上面,发现上面登录的用户还真不少:
USER
TTY
FROM
LOGIN@
IDLE
JCPU
PCPU
WHAT
k418675
pts/2
202.108.140.161
08:32
3:42
0.08s
0.06s
sshd:
k418675
[
wateran_
pts/3
222.92.112.66
08:41
8:06
0.06s
0.06s
-bash
xiaoshe
pts/4
129.192.196.5
14:17
11:17m
0.08s
0.08s
-bash
lfly
pts/5
211.144.118.166
09:33
0.00s
0.24s
0.06s
sshd:
lfly
[pri
steed.de
pts/6
119.145.41.2
11:58
4:49
0.06s
0.06s
-bash
topojuly
pts/7
218.30.165.69
15:46
10:55m
0.10s
0.10s
-bash
nwpumabi
pts/8
222.92.112.66
15:12
1:35
0.08s
0.08s
-bash
ilylm
pts/9
113.96.216.247
16:26
1:15m
0.08s
0.08s
-bash
niugao
pts/10
:1.0
09:10
7:36
0.06s
0.06s
-bash
niugao
pts/11
:2.0
09:11
7:36
0.08s
0.08s
-bash
cu911
pts/12
221.215.10.154
16:38
0.00s
0.10s
0.02s
vi
./newhead.sh
wendao4
pts/13
113.9.75.218
16:47
3.00s
0.08s
0.08s
-bash
clyet
pts/15
218.247.11.196
14:12
2:07
0.08s
0.02s
sshd:
clyet
[pr
bigarmy
pts/17
124.207.17.24
10:46
4:22m
0.10s
0.10s
-bash
tonylu
pts/16
218.18.214.166
14:19
2:13m
0.08s
0.08s
-bash
nwpumabi
pts/19
222.92.112.66
11:08
5:38
0.08s
0.08s
-bash
vector09
pts/23
:8.0
11:18
5:26
0.38s
0.10s
-bash
vector09
pts/24
:9.0
11:18
5:29
0.08s
0.08s
-bash
vector09
pts/21
:8.0
11:23
5:24
0.08s
0.08s
bash
fishruby
pts/26
118.229.195.133
15:04
1:03
0.08s
0.08s
-bash
jy016492
pts/28
218.17.152.141
15:17
7:56m
0.08s
0.00s
sshd:
jy0164921
xingzj01
pts/29
222.92.112.66
12:46
4:00
0.08s
0.08s
-bash
ls87
pts/30
192.168.1.18
13:39
4:43m
0.20s
0.04s
vim
可以看到有很多pts,就是代表每个用户用来输入输出的终端了
4、linux 没有pts/0终端直接是pts/1 是为啥?
这个不用太在意,在Linux系统中,你每打开一个终端,里面会添加一个记录,但是如果你关闭了一个终端,那么就会减少一个记录,有可能你打开了7个, 又关闭了2个,所以最后显示的是这个样子的,也有可能你的系统版本就是从1开始计算的,只要最后显示的终端数跟你实际打开的终端个数是一样的,那就没有问题了。
楼主如果对Linux系统感兴趣,想学习更多Linux系统知识,可以百度《Linux就该这么学》,不错的一本Linux入门教程。
5、linux 中 pts/0 pts/1什么意思?
虚拟终端,pts就是定义虚拟终端的,这句话的意思是在那个在本机定义一个虚拟终端在ip地址为10.98.43.221的机器上显示.
6、linux系统有多少个用户,怎么查
1. 使用w命令查看登录用户正在使用的进程信息
w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:
用户名称
用户的机器名称或tty号
远程主机地址
用户登录系统的时间
空闲时间(作用不大)
附加到tty(终端)的进程所用的时间(JCPU时间)
当前进程所用时间(PCPU时间)
用户当前正在使用的命令
w命令还可以使用以下选项
-h忽略头文件信息
-u显示结果的加载时间
-s不显示JCPU, PCPU, 登录时间
$ w 23:04:27 up 29 days, 7:51, 3 users, load average: 0.04, 0.06, 0.02
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 dev-db-server 22:57 8.00s 0.05s 0.01s sshd: ramesh [priv]
jason pts/1 dev-db-server 23:01 2:53 0.01s 0.01s -bash
john pts/2 dev-db-server 23:04 0.00s 0.00s 0.00s w $ w -h ramesh pts/0 dev-db-server 22:57 17:43 2.52s 0.01s sshd: ramesh [priv]
jason pts/1 dev-db-server 23:01 20:28 0.01s 0.01s -bash
john pts/2 dev-db-server 23:04 0.00s 0.03s 0.00s w -h
$ w -u 23:22:06 up 29 days, 8:08, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ramesh pts/0 dev-db-server 22:57 17:47 2.52s 2.49s top
jason pts/1 dev-db-server 23:01 20:32 0.01s 0.01s -bash
john pts/2 dev-db-server 23:04 0.00s 0.03s 0.00s w -u
$ w -s 23:22:10 up 29 days, 8:08, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM IDLE WHAT
ramesh pts/0 dev-db-server 17:51 sshd: ramesh [priv]
jason pts/1 dev-db-server 20:36 -bash
john pts/2 dev-db-server 1.00s w -s
2.使用who命令查看(登录)用户名称及所启动的进程
who命令用于列举出当前已登录系统的用户名称。其输出为:用户名、tty号、时间日期、主机地址。
$ who ramesh pts/0 2009-03-28 22:57 (dev-db-server)
jason pts/1 2009-03-28 23:01 (dev-db-server)
john pts/2 2009-03-28 23:04 (dev-db-server)
如果只希望列出用户,可以使用如下语句:
$ who | cut -d' ' -f1 | sort | uniq john
jason
ramesh
补充:users命令,可用于打印输出登录服务器的用户名称。该命令除了有help和version选项外,再没有其他选项。如果某用户使用了多个终端,则相应的会显示多个重复的用户名。
$ users john jason ramesh
3. 使用whoami命令查看你所使用的登录名称
whoami命令用于显示登入的用户名。
$ whoami john
whoami命令的执行效果和id -un的效果完全一样,例如:
$ id -un john
whoami命令能显示当前登入的用户名称,以及当前所使用的tty信息。该命令的输出结果包括如下内容:用户名、tty名、当前时间日期,同时还包括用户登录系统所使用的链接地址。
$ who am i john pts/2 2009-03-28 23:04 (dev-db-server)
$ who mom likes john pts/2 2009-03-28 23:04 (dev-db-server) Warning: Don't try "who mom hates" command.
当然,如果你使用su命令改变用户,则该命令(whoami)所显示的结果将随之改变。
4. 随时查看系统的历史信息(曾经使用过系统的用户信息)
last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:
用户名称
tty设备号
历史登录时间日期
登出时间日期
总工作时间
$ last jason jason pts/0 dev-db-server Fri Mar 27 22:57 still logged in
jason pts/0 dev-db-server Fri Mar 27 22:09 - 22:54 (00:45)
jason pts/0 dev-db-server Wed Mar 25 19:58 - 22:26 (02:28)
jason pts/1 dev-db-server Mon Mar 16 20:10 - 21:44 (01:33)
jason pts/0 192.168.201.11 Fri Mar 13 08:35 - 16:46 (08:11)
jason pts/1 192.168.201.12 Thu Mar 12 09:03 - 09:19 (00:15)
jason pts/0 dev-db-server Wed Mar 11 20:11 - 20:50 (00:39)
关于linux有多少pts和linux有多少行代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。