注:本人为Mac用户,用书为《Unix&Linux大学教程》,用的shell是系统默认的bash。
Unix 工作环境
多任务处理系统
Unix 可以同时执行多个任务,但是,单个处理器同一时间只能运行单个进程(process)。所以,Unix允许单一进程在极短的时间(时间片 time slice, 通常为10ms)内使用处理器,而由调度器分配处理器的使用。
多个终端和GUI终端
- Unix允许用户启动多个终端(多个CLI终端+GUI终端)。
- 当需要从一个terminal移动数据到另一个terminal时,可使用鼠标中键或复制粘贴。
超级用户 su
Mac的su功能是disabled的,一般使用sudo
替代执行单条指令,sudo
区别于su
,使用时仅需输入当前用户的口令(但谁可以执行sudo
是由超级用户决定的,存储于/etc/sudoers中)。在输入正确的口令后,在一段时间内,使用sudo指令都不需要口令,一般缺省为5分钟。
su weedly 变换用户标识
su - weedly 以weedly名义工作
配置文件
Windows:采用注册表.ini,难以阅读,修改后容易出事情
Unix: 使用配置文件,每个程序都拥有自己的配置文件,文档化可读性好,鼓励用户阅读修改
init、reboot、shutdown
系统运行级别:
运行级别 | 描述 |
---|---|
0 | 关机 |
1 | 单用户模式:命令行 |
2 | 非标准化 |
3 | 多用户模式:命令行 |
4 | 非标准化 |
5 | 多用户模式:GUI |
6 | 重启 |
用命令行重启是一件很酷的事哟~
sudo init 6 # 重启
sudo reboot # 重启
sudo shutdown now #关机
sudo dmesg | less # 浏览启动信息(看不懂)
- 注意:调戏系统之前请先存档!
开启多任务模式
一些简单的快捷键 Mac:
Command+Tab Command+Shift+Tab 切换程序
Command+Shift+V 粘贴为纯文本
Command+←(^A)Command+→( ^E) 行首,行尾
Unix键盘使用
- Teletype,缩写tty,是最初的终端,和现在的键盘类似,Return和Line Feed 分为连个键。Unix系统上终端的名字也叫tty。(
stty
:set tty设置终端,gtty
:打开终端通信。)输出 = 在卷筒纸上打印print。pwd = print working directory。 - VT100是最流行的终端。
支持多种类型终端
unix系统支持多种类型终端,但每个终端都有自己的特征,并有自己的命令集。因此,unix有一个标准数据库,讲不同类型终端的描述收集到这个数据库中。
infocmp vt100 | less # 获得VT100终端信息
系统如何知道终端类型
过去: 用户告诉系统
现在:内置终端 - 本来就知道,虚拟终端 - 仿真程序,非终端。
现在一般只能看到4种类型的终端:
VT100(文本终端), xterm(标准图形终端), VT220, 3270
我的终端是:
echo $TERM # TERM为环境变量,存储用户使用终端的类型
xterm-256color
修饰键Ctrl
Ctrl+A = ^A
Shift 和 Ctrl 都是Unix开发时就有的键,但Alt是新加的。
键盘信号
stty # 显示terminal设定和被修改过的键盘映射
stty -a # 显示键盘信号映射
stty kill ^U # 修改kill的键盘映射
Mac 上:
discard = ^O; dsusp = ^Y; eof = ^D; eol = ;
eol2 = ; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
键入过程中的信号
名称 | 描述 | 键 |
---|---|---|
erase | 删除最后一个字符 | Backspace Delete |
werase | 删除最后一个单词 | ^W |
kill | 删除整行 | ^U (Ubuntu/Mac) / ^X |
停止程序的信号
名称 | 描述 | 键 |
---|---|---|
intr | 中断正在执行的程序(可被程序忽略)或取消键入中的命令(与kill效果相同) | ^C /Delete |
quit | 停止程序,过去还会生成core文件帮助调试(程序终止时内存中的内容) | ^\ |
stop | 临时停止屏幕显示(程序不会停止,输出会被存储,但不会在终端中显示) | ^S |
start | 继续屏幕显示 | ^Q |
eof | 文件结束信号,可停止shell | ^D |
命令行编辑
标准输入允许Unix以相同方式读取数据(不管数据来自于终端或磁盘)。标准输出允许以相同方式输出。
- Return 返回 = ^M, 换行字符Line Feed = ^J
- 每行文本要以^J 结尾
- 用户写文本时输入