- [与 UNIX 建立连接](#与 UNIX 建立连接)
- [简单的 UNIX 命令](#简单的 UNIX 命令)
-
- 命令格式
- [ls 命令](#ls 命令)
- [who 命令](#who 命令)
-
- [虚拟终端 tty](#虚拟终端 tty)
- [伪终端 pty](#伪终端 pty)
- [who am i 命令](#who am i 命令)
- [cal 命令](#cal 命令)
- [help 命令](#help 命令)
- [man 命令](#man 命令)
- [shell 概述](#shell 概述)
-
- [shell 命令](#shell 命令)
- [更换 shell](#更换 shell)
-
- [临时更改 shell](#临时更改 shell)
- [永久更改 shell](#永久更改 shell)
- 登录过程
与 UNIX 建立连接
启动会话
要启动会话和系统建立连接,
- 既可以打开本地计算机的电源,通过命令行或者图形界面窗口(GUI)和本地计算机建立连接;
- 也可以使用 Putty、SSH 远程登陆软件和远程计算机建立远程连接启动会话。
会话(session)指一个终端用户与系统进行通讯的全过程,用户 从输入账号密码进入操作系统 到 退出操作系统 就是一个 会话过程。
登录
UNIX 是一个多用户操作系统,用户在使用 UNIX 系统前必须进行登录,只有登录验明身份才能分配资源。
无论是命令行还是 GUI ,登录时需要使用 登录名 和 口令。
- 登录名,又称为用户名,唯一 ,系统用它对用户进行身份确认。
- 口令,即密码,是一个 由字母和数字组成的序列。
命令提示符
最简单的命令提示符只有一个字符,用户可以设置提示符。
- 管理员 ,即 root(根用户),其命令提示符是 #。
- 普通用户 的命令提示符是 $。
- 可以根据提示符,来判断自己的身份。
修改口令
passwd
命令用来 修改或创建口令。
- 修改自己的口令:
$ passwd
- 修改别人的口令(只有 root 可以):
$ passwd username
,应用场景:root 创建普通用户后为其分配初始口令;某用户忘记密码,让管理员给重置密码。
退出系统
用户完成工作后离开系统的过程称为退出。
退出系统的 3 种方法:
$ exit
$ logout
[Ctrl-d]
退出意味着和系统断开连接,结束会话。
简单的 UNIX 命令
UNIX 系统有几百条命令/系统工具,绝大多数命令格式相同,大部分 UNIX 提供在线帮助 help
、man
。
- 通过输入命令,告诉系统要做什么事,命令行中回车键 Enter 表示命令行的结束符。
如,date
命令在屏幕上显示当前的日期和时间。
命令格式
- 每个命令行分为 3 个字段:命令名 、选项 和 参数。
如,狠狠地打他
中,打
就是命令名,狠狠地
就是选项,他
就是参数。
- 命令行格式:
$ 命令 [-选项] [参数]
,其中,选项和参数用中括号括起来,表示 可选,可有可无。 - UNIX 区分大小写,只接受小写的命令名。
- 其中,参数通常为
文件名/路径名
,用来 指定操作对象。
ls 命令
$ ls
命令本身,显示当前目录中的文件名。$ ls -l
,ls
命令加上选项-l
,表示以长格式列表显示文件详细信息。$ ls -a
,ls
命令加上选项-a
,显示目录中的隐藏文件。- 组合使用多个选项实现复杂需求 ,
-
开头的不同选项间需要有分隔符;也可以只写一个-
,后面叠加选项字母。 $ ls -l -a
或者$ ls -la
,把隐含文件以长格式形式显示出来。$ ls /boot
,参数/boot
指出 要显示哪个目录中的文件。$ ls -a /boot
,要 显示/boot
目录下的隐藏文件。
以上带连接符
-
的是 System V 流派的命令风格,BSD 流派的风格不带连接符
-
,如$ ls l
,GNU 流派的连接符是
--
,如$ ls --color
。
who 命令
用户信息:who
命令。
如第一行,表示用户 tux
从 desktop-n2ali3f.lan
这台主机登录的。
tty
、pts/0
、pts/1
、:0
又是什么含义呢?
很久很久以前,计算机是很昂贵的,不能让每个人独占一台计算机;
解决方法是每人一套物理终端,连接到计算机上,共享这台计算机的资源;
后来又出现了虚拟终端的方法。
- 物理终端:直接连接在主机上的显示器、键盘鼠标的统称。
- 虚拟终端(tty):附加在物理终端之上,用软件方式实现。类 UNIX 系统默认为用户创建几个虚拟终端,实现多用户的同时登录或单用户的多终端登录。
虚拟终端 tty
- UNIX 中 每个终端都是文件 ,虚拟终端对应的文件是
/dev/tty#
,1≤#≤6
。 - CentOS 默认启用 6 个虚拟终端,
tty1
是图形终端,tty2-tty6
是字符终端。 - 虚拟终端可以相互切换,可以通过
$ Ctrl-Alt-F[1-6]
,也可以通过$ chvt n
,(1≤n≤6)
- 可以通过
tty
命令来 查看当前的虚拟终端号。
伪终端 pty
- 伪终端是由 远程登录软件 或 终端模拟软件 模拟出的终端。
- 两种应用场景:图形界面下进行命令操作,远程登录。
pts
(pseudo-terminal slave)是pty
的实现方法,伪终端以pts/n
的形式命名,n
表示该终端是系统中的第几个伪终端。- 0:表示是图形用户界面终端。
who am i 命令
who am I
或 who am i
显示 终端上登录用户的信息。
cal 命令
cal
命令 显示指定年份的日历表,默认参数为当前月。- 参数中指定年和月,显示指定年月的日历表。如
$ cal 5 2019
,显示 2019 年 5 月份的日历表。
help 命令
help
命令提供 内部命令 帮助信息(只有内部命令,无外部命令)。
命令分类:
- 内部命令:shell 代码的一部分,shell 启动后驻留内存,执行速度快。
- 外部命令:又称系统工具程序,保存在文件系统中,被调用时才载入内存执行。
- 查看全部内部命令列表:
$ help
- 查看某一内部命令:
$ help command-name
,如$ help alias
查看alias
命令如何使用。
man 命令
man
联机帮助手册(分章编写),查看所有命令(内外部)的完整说明,说明内容包括:命令语法、各选项的意义、相关命令等。
man 命令用法:$ man command-name
,如 $ man ls
查看 ls
命令的相关信息。
man
命令中翻页移行:
- 翻页:后翻一页 Space;前翻一页 b
- 移行:后移一行 Enter ;前移一行 k
- 退出:q
在命令行中输入命令时,删除一行命令 用
[Ctrl-u]
,中断程序运行 用[Ctrl-c]
。
shell 概述
shell
负责用户和 UNIX 系统之间的交互,每次输入一个命令,以 Enter 结束。
shell 命令
- 一些 UNIX 命令 是 shell 程序的一部分 ,称为 内部命令 或 shell 命令。
- 大多数 UNIX 命令程序 存储在硬盘上 ,由 shell 查找、加载并执行 ,称为 外部命令 或 系统工具程序。
可以通过 $ ls /bin/*sh
查看 /bin
目录中的 shell。
在 shell 中,用不同颜色表示不同类型的文件。
其中,绿色表示可执行程序,蓝色表示目录,白色表示文本文件,蓝绿色表示链接文件(相当于 windows 下的快捷方式)。
更换 shell
可以随时更换正在使用的 shell,一种方法是 临时使用 ,另一种是 永久改变。
临时更改 shell
- 方法:当前 shell 中键入新 shell 名,
- 本质:创建当前 shell 子进程,在子进程中运行新 shell。
永久更改 shell
可以通过以下两种方式实现:
- 修改账户配置文件
- 使用
chsh
命令
登录过程
UNIX 登录过程如下:
- UNIX 启动时 ,内核被载入内存,其余部分在磁盘上,用户请求时再载入内存;
- 当 用户登录时,shell 程序也被载入内存;
- UNIX 完成启动后,
init
程序为每一个终端激活一个getty
程序 ,getty
程序显示"login: "
让用户登录;
init
进程是 UNIX 系统所有进程的 祖先进程 ,会启动所有系统服务和后台服务。系统启动后,inti
创建虚拟终端为用户登录做准备。
-
用户输入
username
后,getty
程序 读取这个输入,并启动login
程序; -
getty
程序把用户输入的字符串(用户标识/登录名)传给login
程序;
login
程序显示"password: "
,login
程序 验证用户名和口令,并检查下一步要执行的程序名,如 shell。
- 然后用户就可以在命令提示符下进行各种操作;
- 当用户使用完后,使用
$ exit
退出系统; init
进程发现某个终端上的 shell 退出后,就为该终端创建getty
进程,继续监视终端,为下一次登录做准备。
- 就这样不断循环进行。