自2011/7/21,我们已经开课了三天,讲课大概流程如下:
计算机基础知识介绍:
1. 什么是操作系统:
答:软件使用的平台(Platform)
2. 系统硬件的架构类型(Arch):
答:X86,X86_64,arm(手机),ppc,MIPS(龙芯),UltraSparc,Power,安腾
3. 世界上第一台电脑概况:
答:1946年2月15日,世界上第一台通用数字电子计算机ENIAC研制成功
4. 计算机之父:
答:冯·诺伊曼(Neumann,John von)
5. 计算机五大定律:
答:运算器,控制器,存储器,输入设备,输出设备
※ 运算器、控制器:
CPU:
时钟周期:统一计算机整体工作节拍
CPU针脚负责功能的输入
32bit:最大支持4G内存,PAE(32bit cpu扩展):64G
64bit:512G(决定CPU寻址能力)
缓存(造价高):缓存的大小对CPU的速度有着极大的影响
Ps:“微码
(Microcode):
也叫做微程序,镶嵌在芯片当中。”
※ 存储器:
内存:
CPU从内存中读取数据
分类:SD、DDR
6. 总线(BUS)类型:
答:PCI,ISA,EISA,ATA,SATA,SCSI
7. 批处理:
答:多个作业同时存储在磁带上(做完一件进行下一件
Ps:脱机处理:提高设备利用率
8. 分世系统:
答:多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源
计算机历史讲解:
关键词列举:
美国三家公司:GE,AT&T的Bell(park)实验室,麻省理工学院MIT
Ken研发系统Unics→Unix
Dennis开发B语言→C语言(Dennis+Ken)
TCP/IP诞生于BSRG(Unix)
Microsoft:取得Unix研发出来Xenix
DEC(公司):VAX→VMS(操作系统)
VMS+微软=windowsNT
Window2000
OS2+微软=windows visit
Andrew的学生Linus写出Linux
Linus: 2.0→2.2→2.4→2.6→3.0
官方网站: www.kernel.org
麻省理工学院(MIT):Stallman倡导自由(Free),GNU
GNU运动:GPL(宣言)General Public License(公源)
运动下的产果:gcc,emacs
关于linux的系统分类:
Linux发行商
Redhat,suse,debian,slackware,gentoo(编译成二进制的方法不同)编译好的二进制系统
Redhat
6.0~9.0→转交给Fedora现在为15
Redhat Enberprise 3.0
4.0 5.0 6.0
Ps:linux遵循GPL,所以redhat是靠服务和补丁进行收费的
官网:www.redhat.com
CentOS:和redhat完全兼容的一个版本
Ps:社区版的redhat
SUSE(三个大学生创造的)
被厂商收购
Debian
自发维护 灵活度自由性最好的版本
Ubuntu基于Debian
Slackware:自己编译软件
Gentoo: 编译好的框架
--------slackware
和gentoo
建议在linux
上有一定造诣的人使用
LFS:Linux From Scratch
教你从零构建Linux
--------专业人士使用
Linux哲学思想:
1. 一切皆文件
2. 短小,且目的单一的程序组成
3. 将多个短小的程序串联起来,可以完成复杂任务。
4. 尽量避免捕获用户接口(交互)
5. 通过文本文件保存软件的配置信息
Shell:
GUI(图形用户界面)Xwindow(协议)
Gnome(c语言开发)
KDE(C++)
Xface
CLI(字符界面)
BShell
Cshell
Kshell(商业版融合了B和C)
Bashell
Zshell
Linux特性:
具有多个终端,可以多用户同时使用。
终端:
虚拟终端
图形终端
伪终端(即为图形界面下)
Ps:终端之间可以快速切换:
su(Switch User)
半切换:su 【arguments】
完整切换:su –l 【arguments】
Ps:-l可以简写,不添加argument表示切换到管理用户
字符界面下:
$代表普通用户
#代表管理用户
Ps:任何一个用户登陆系统每时每刻都在某个目录当中
Linux命令:
命令格式简化特性:
并且全称命令不存在,所以linux命令相对比较严格,必须准确输入
如:passwd(在linux中为更换密码)
password却是无效命令
命令格式:
Command【options】【arguments】
Options(选项):转换命令执行方式
短选项:-l,-h
-lh(组合)
长选项(完整选项,不能组合):--help,--long
Ps:选项和选项之间用ps隔开。
arguments:命令作用对象
内部命令(无实体):不会有二进制文件
外部命令:对应的可执行二进制文件
Ps:如何区分命令:which(查看是否具有二进制),type
帮助命令的命令介绍:
man,info command(命令的开发人,年代等),--help(针对大部分外部命令),help(内部命令使用),whatis ls(带有命令的简单说明,命令在man手册中的章节,配合man使用)
man手册章节:
1. 普通的用户命令
2. 系统调用
3. 库调用
4. 特殊文件
5. 文件格式(文件语法说明)
6. 游戏
7. 杂项
8. 管理类命令
Linux系统路径:
相对路径:从当前路径下开始
绝对路径:从根开始
linux下的目录:
/bin(二进制):存放必要的命令文件
/sbin:存放系统管理命令文件(只有管理员才有权限)
/boot:引导目录(存放内核以及启动所需文件
/dev(device):设备文件目录(存放设备文件
/etc:配置文件目录(存放系统的配置文件
/home/USERNAME:用户主目录,存放用户信息
/root:管理员用户
/lib(library):库文件(存放必要的运行库
/media,/mnt:额外文件系统的挂载目录
/misc:备用目录
/tmp:临时文件目录
/opt:可选目录(存放第三方软件
/usr:第三方软件,额外的管理命令,帮主信息都存放在此文件下
/var:系统产生的常变换文件,如:打印机,邮件等假脱机目录
/proc:内核(中正在使用的参数)映像的映射(存放存储进程和系统信息
/sys:内核中硬件信息的映射
/srv:特定的服务器软件(临时目录
Linux下的时间划分:
系统时间
硬件时间
Linux下的用户划分:
用户(User):权限的集合,一种凭证
验证方法:刷卡,密码(用户名对应UID“一个数值”供系统识别),指纹。。。
加密方法:
对称加密
公钥加密
单向加密:提取数据的特征值
(雪崩效应:输入两次失误后,将会导致输出错误
(定长输出:密码加密后长度是个定值
md5(128定长输出) sha1(160bit)
系统用户:1~499(通常不允许登录系统
普通用户:500~65534
特殊用户(nobody):相当与windows上的来宾账号。
Id一般为-1,65535或者65536
组:可以理解为一种容器,可以存放用户
组也是权限的集合
和用户是集成关系(用户拥有组权限
组ID:GID
组密码:可以让外围用户临时加入组
以下我们用UID代表用户,GID代表组:
UID,GID范围:(0~65535)
root的id永远为0
ps:用id(命令)来查看id
私有组(基本组):任何用户必然会属于某一个组
共有组(附加组):
Ps: /etc/passwd 存放用户账号
/etc/shadow 存放用户密码
/etc/group 存放组账号
/etc/gshadow存放组密码
安全上下文:
权限、特权、访问令牌、完整性等级等等都包含在其中
目录,文件权限:
属主:即属于主用户的权限
属组:即属于组中的权限
其它:即所有人对此文件或者目录的使用权限
表示方法及具体权限:
文件:
读(r):查看
写(w):修改
执行(x):让文件运行
目录:
读:查看ls
写:能建新文件
执行:cd,ls-l
无权限
---:000:0
执行权限
--x:001:1
写权限
-w-:010:2
写,执行权限
-wx:011: 3
读权限
r--:100:4
读,执行权限
r-x:101:5
读,写权限
rw-:110:6
读,写,执行权限rwx:111:7
变量:
1. 本地变量(用户自定义变量):
只能在当前SHELL环境下获得赋值,进入子SHELL就不能获得赋值了
2. 环境变量:
在任何地方都可以访问的变量
3. 特殊变量:
特殊变量:$?
echo $?
0 代表命令执行正确
1-255代表命令执行错误
4. 位置变量
定义
:位置变量表示$0,$1,$2,....$9
$0 $1 $2 $3 $4
脚本名 A B C D
向脚本中使用位置参数;
向系统命令传递参数;
BASH的命令别名:
不具有永久性,重启后失效
如果要永久有效则需将命令保存在目录或则文件当中
对全局有效的保存:/etc、
profile = /etc/profile.d/* ,/etc/bashrc
对局部有效的保存:
~/.bash_profile,~/.bashrc,~/.bashe_logout
profile类 :
设置环境变量
运行用户登录要执行的一些命令
bashrc类:
设置别名
设置本地变量
Shell分类:
交互式登陆
shell:
以一个用户的身份输入命令执行
非交互式登陆
shell:
shell不与你进行交互,而是读取存放在文件中的命令
,并且执行它们。当它读到文件的结尾,shell也就终止了。
Shell的输入输出重定向,管道:
Shell的输入重定向:
是指不使用系统提供的标准输入端口,而进行重新的指定。
Shell的输出重定向:
是指不使用系统提供的标准输出端口,而进行重新的指定。
管道符:
将输出的命令作为结果输入下一行命令
正则表达式:
在普通的情况下,一个正则表达式看上去就是一个普通的查找串。
.:匹配任何单个字符 r.t:rat,rut,r t
$:匹配行结束符 weasel$:He`s aweasel
^:匹配行的开始 ^When in:When in the course of human events
*:匹配0或n个正好在它之前的那个字符。 。*:任意数量的任何字符。
\:引用符 列出的特殊字符当做普通字符进行匹配 $:\$
[]:匹配括号中的任何一个字符 r[aou]t:rat,rot,rut
[c1-c2]:括号中使用连字符置顶字符区间 [0-9]可以匹配0~9任何数字字符
[A-Za-z]可以匹配任何大小写字母
[^c1-c2]:排除,即补集。[^269A-Z]:匹配除了2、6、9和所有大些字母之外的任何字符。
+:匹配1或n个正好在它之前的那个字符。9+:9,99,999等
{i,j}[0-9]{4,6}匹配连续的任意4,5,6个数字字符