Unix & Linux 大学教程
作者: Harley Hahn
学习随记
第1章 Unix简介
第2章 什么是Linux? 什么是Unix
- 引导(booting)是bootstrapping的简写
- 内核(kernel) 基本服务: 见P10
- 内核种类: monolithic kernel, microkernel
- 内核调用其他程序: 这些程序被称为服务器server
- Unix = 内核 + 实用工具 (或说: Unix = kernel + shell + toos)
- GUI(graphical user interface 图形用户界面)
- 硬盘的分区: partition
第3章 Unix 连接
主机 + 终端 ( host + terminal )
最初的终端: 电传机 teletype33-ASR
多任务系统 multitasking
主机和终端 teletype( tty ), 从原理上unix可以使用任意数量的主机和任意类型的终端: 终端服务器(teminal server)
控制台: console
无头系统 headless system
客户端/服务器关系
SSH (secure shell)
您键入的字符通过主机回显到屏幕上,而不是通过终端 回显(echo)
第4章 开始使用Unix
login:
CR = carriage return 托架回车
LF = linefeed 换行
date whoami who w
-
注销(停止使用Unix): logout, exit, login
发送一个eof(end-of-line) -
改变口令: passwd
"paaword"的缩写, Unix的人喜欢短名称。如ls, cp, ps. -
检查他人是否使用过你的账户: last
-
用户标识和用户 who
-
超户: root
第5章 GUI图形用户界面
- X window
KDE和Gnome
第6章 Unix 工作环境
进程(process)
时间片(time slice)
命令行界面(command line interface, CLI)
- 运行级别( runlevel )
运行级别 | 描述 |
---|---|
0 | 停机 |
1 | 单用户模式:命令行 |
2 | 非标准化 |
3 | 多用户模式: 命令行 |
4 | 非标准化 |
5 | 多用户模式: GUI |
6 | 重新启动 |
任务切换 <Alt-Tab>
虚拟控制台
唯一的控制台 console
6.16 以超级用户工作: su
如果你已经作为一句普通用户登录系统, 那你可能以使用命令su(substitute userid, 替换用户标记)变成超级用户
su命令允许你临时变成另一个用户标识,为此,只需在su命令之后输入新的用户标识即可.
假设你已经以harley登录系统, 下面是可能的shell提示:
[ harley ] $ |
现在输入命令su将用标识变换为weedly. 然后系统提示输入weedly的口令。一旦输入了weedly的口令,当前shell就被挂起, 系统将为weedly启动一个新shell。
[ harley ] $ su weedly Password: [ weedly ] $ |
当您结束weedly的工作时,你需要做的是结束当前shell,输入exit命令就可结束当前shell, 一时结束了新的shell,就会自动返回到原来的shell,即用户标识harley.
[ weedly ] $ exit [ harley ] $ |
尽管你可以用su命令变换到任何一个用户标识,但su命令的主要用途还是变换到超级用户。
su - weedly | //-(连字符)两边都有一个空格, 同时变换用户标识和环境 |
变换成超级用户: su - root
[ harley ] $ su - root Password: # ...... # exit [ harley ] $ |
6.17 以超户执行一条命令: sudo command
系统要求您输入您的口令(不是超级用户的)
su(substitute userid)
sudo(substitute the suerid and do someting)
8.19 浏览配置文件
例: less /etc/passwd
/boot/grub/menu.lst: 关于计算机上可以引导的操作系统的信息。
/etc/hosts: 系统已知的一列主机名称和IP地址。
/etc/inittable: 不同运行级别的定义。
/etc/passwd: 每个用户标识的基本信息。
/etc/profile: 当一个用户登录时,系统自动执行的命令。
/etc/samba/smb.conf: Samba的配置信息, Samba是一个允许Unix系统的Windows系统共享文件和打印机的工具。
6.20 系统关闭与重启: init、 reboot、 shutdown
例:
重启系统 sudo init 6
关闭系统 sudo init 0
我们日常通常使用的是:
重启 sudo reboot
关机 sudo shutdown now
第7章 键盘使用
- intr(interrupt,中断)终止程序,
- tty显示自己的终端名命令。
- stty("set tty", 设置tty)用来显示或改变终端的设置。
- getty("get tty", 获取tty)用来打开与一个终端的通信,并启动登录进程。
- pwd "print working directory(显示工作目录)"
- lp "line print"(行打印机)" lp(system V) or lpr(伯克利的Unix)
7.4 知道终端类型
echo $TERM
显示您的shell的所有环境变量的值:
printenv
代表" print evvironment variables, 显示环境变量"
- 键盘映射系统, 大多数系统, ^C(Ctrl-C)键映射到intr信号上
- 可以修改映射
- erase删除最后一个字符, werase删除最后一个词, kill删除整行
- 大多数键盘按下
键发送**erase信号, 有的是用 键 - 纸带机时代的错误处理:
- 先按下
键,发送一个BS(backspace, 退格), 然后,再按下<Rubour(擦掉)>键, 发送一个DEL命令。 - ^H通常映射到erase键
设置擦除键:
stty erase ^H |
7.18 显示键映射: stty -a
信号 | 键 | 作用 |
---|---|---|
erase | <Backspace>/<Delete> | 删除键入的最后一个字符 |
werase | ^W | 删除键入的最后一个单词 |
kill | ^X/^U | 删除整行 |
intr | ^C | 停止正在运行的程序 |
quit | ^ | 停止程序并保存core文件 |
stop | ^S | 暂停屏幕显示 |
start | ^Q | 重新启动屏幕显示 |
eof | ^D | 指示已经没有数据 |
显示系统的键盘映射时,使用下述命令:
stty -a
stty是"set terminal(设置终端)"命令.
^Z键可以暂停程序, ^Z映射到susp(suspend, 挂起)
^Z暂停一个程序,直到通过输入fg(foreground, 前台)命令重新启动程序。
7.9 修改键映射: stty
将kill键修改为^U:
stty kill ^U
7.21 返回和换行
Teletype ASR33时代,<Return>键的代码选择,不仅用于<Return>键,还是文本文件每行结束的一个特殊标记.
Teletype的两个动作:
1 CR(carriage return, 托架返回)
2 LF(linefeed, 换行)
因此,序列CR-LF执行打印一个新行所需的准备动作
键盘上按下<Return> 建或^M(它们等价)发送一个CR码。 按下<Linefeed>键或^J键可以发送LF码.
**当Unix开发人员开始使用Teletype作为终端时,他们基于CR和LF码创建了两个信号。CR码变成了返回信号,LF码变成了换行信号。
7.22新行字符的重要性
文本文件中, Unix使用^J(newline)字符标记每行结束.
Microsoft Windows使用^M^J标记每行的结束.
所以,两个系统中复制文本文件时,要转换。
7.23^J的一个重要用途: stty sane, reset
我们只需要在每行的末尾按下<Return>键就好, 其它让Unix做。
如果终端设置搞乱, 不能正常工作,有两条命令可以用来将终端设置恢复为合理值, 它们是stty sane和reset.
^J是所有Unix都接受的,所以,当其它方法失效时,键入下述命令之一可以复原终端。
一定确保在命令前和命令后键入^J。
<Ctrl-J>stty sane<Ctrl-J>
<Ctrl-J>reset<Ctrl-J>