全部博文(2759)
分类: LINUX
2014-06-06 02:42:06
原文地址:Unix & Linux 大学教程 学习总结 作者:minminmsn
两年前我看这本书时,是一本812页的厚书,现在我总结成了40句话,什么时候成了1句话就好了。
Unix & Linux 大学教程 Harley Hahn
0,操作系统最重要功能
控制计算机并在计算机启动或者重新启动时初始化计算机
支持与计算机交互所使用的界面
为需要使用计算机资源(磁盘空间、文件位置、处理时间、内存等)的程序提供接口
管理计算机的内存
维护并管理文件系统
调度工作
提供账户和安全服务
1,内核提供服务:
内存管理(虚拟内存管理,包括分页)
进程管理(进程创建、终止、调度)
进程间通信(本地,网络)
输入输出
文件管理
安全和访问控制
网络访问(如TCP/IP)
2,Unix=内核+使用工具(包括shell和gui)
3, Linus Torvalds
4,计算机系统:
计算机=终端+主机
终端=输入设施+输出设施
5,抽象层次
应用程序/用户
桌面环境
窗口管理器
X Window
内核中的设备驱动程序
硬件
6,进程线程
在Unix系统中,每个对象或者用文件表示,或者用进程表示。简单地讲,文件存放数据或者允许访问资源,而进程是正在执行的程序。
进程可以分成更小的单元,称为线程,线程是一组运行在进程环境中的指令。因此可以将程序的结构描述为,在一个进程之内,不止一个线程在同时进行。
7,运行级别
0 关机
1 单用户
2 非标准化
3 多用户:CLI
4 非标准化
5 多用户:GUI
6 重启
8,快捷键
Ctrl + Alt + Left/Right 工作区的切换(基于gnome桌面)
9,终端
stty -a 获取当前终端行设置
intr
= ^C(停止正在运行程序); quit = ^\(停止程序并保存core文件); erase = ^?; kill = ^U(删除整行);
eof = ^D(提示已经没有数据); start = ^Q(开始屏幕显示);erae = ^H(删除一个字符);stop =
^S(暂停屏幕显示); susp = ^Z(暂停,fg恢复到前台); rprnt = ^R(搜索history命令); werase =
^W(删除一个单词); lnext = ^V; flush = ^O;
infocmp 打印终端信息 infocmp vt100 | less (infocmp需要安装ncurses)
echo $TERM 得到的默认终端是xterm
export IGNOREEOF=5 可以按^D提示logout或者exit退出
10,which type whereis
type 是 shell 内嵌,查看内置命令,bash 69个
help打印一些内置命令列表
11,cal -j 5 2014
查看2014年5月的每一天
12,uptime,uname
13,users,who,finger,w(谁正在做什么)
14,bc -l (支持+,-,*,/,%,^,sqrt(x),s(x),c(x),a(x),ln(x),j(n,x))
15,RTFM(Read the fucking manual),xman
(1).命令 (2).系统调用 (3).函数库 (4).特殊文件 (5).文件格式 (6).游戏 (7).杂项信息 (8).系统管理
man -f 快速查寻命令用法 whatis
man -k 关键字 apropos
man builtin man bash
16,环境变量
env
perintenv
set/unset(csh) set term=vt100
setenv/unsetenv(csh) setenv TEST hello
export(bash)
set -/+o 显示shell选项控制(bash)
17,引用和转义
使用反斜线引用单个字符(称为转义了这个字符)
使用单引号引用一串字符
使用双引号引用一串字符,但是保留$,`,\的特殊意义
18,搜素路径
export PATH="/...:/..."
set path=(/... /...)
PS1 shell 提示
export PS1="\u\w\@\$"
prompt(csh)
``命令替换
19,fc -l history
20,自动补全
文件名补全
命令补全
变量补全
用户标识补全
主机名补全(bash)
21,别名
alias,umalias
alias 'a=alias'
22,初始化文件
.profile文件
.rc文件
登陆shell(.bash_profile)
非登陆shell(.bashrc)
23,输入输出
<重定向标准输入(同0<)
>重定向标准输出(同1>)
>>追加标准输出(同1>>)
2>重定向标准错误
2>>追加标准错误
2>&1将标准错误重定向到标准输出
>&或者&>重定向标准输出+标准错误(只适用于Bash)
|管道
2>&1 |所有输出到管道
set -o noclobber 可以禁用>,但是可以用>|(强制重写)
24,编组和子shell
(cd directory; command)
25,管道线分流tee(从标准输入读取数据发送屏幕和文件各一份)
cat 1 2 3 |tee 123|grep hh (tee可以输出保存不止一个副本)
26,条件执行
command1 && command2(命令1成功执行后执行命令2)
command1 || command2(命令1没有成功后执行命令2)
27,过滤器
cat|grep|sort|less
(1)分析问题
(2)选择工具
(3)与他人讨论
(4)选择选项
28,文件简单操作
split 分割文件
tac 反转文本行顺序
rev 反转字符
colrm 删除指定的数据列,然后将剩余的数据写入标准输出
29,比较和抽取
cmp 逐字节地比较两个文件
comm 一行一行比较两个有序文本
diff 比较无序文本文件
cut -f 1,3-5 -d ':' /etc/passwd | sort (f列,d分隔符)
cut -c1-8(c按字符)
paste 可以将几个文件(其中每个文件都包含一列数据)组成一个大表
paste 水平组合数据,cat垂直组合数据
30,统计和格式化
nl 创建行号
wc 统计行、单词和字符
:set list 可视化制表符和空格
expand将制表符转换成空格(unexpand)
fold分割行 fold -s -w 40 file (40个字符一行,单词不分割)
31,选取、排列、组合及变换
grep (global re print)
ls -F /etc |grep -c "/" (c统计)
-in(忽略大小写并按行号)
-l (列出文件名)
-v(reverse,相反)
-x (占整行)
-r(recursive,递归)
-s(suppress,抑制)
-E(egrep)
look
sort -dfnu(sort -u = sort|uniq = cat|sort|uniq)
uniq -cdu(d只看重复行,u只看唯一行,c统计行数)
join 合并有序数据
strings在二进制中搜索字符串 strings /usr/bin/sort
tr A-Z a-z < old > new大小写转换
[:upper:] [:lower:] [:digit:]
32,非交互式文本编辑sed
sed 's/h/H/g'ole >new (-i in-place可以改变原始文件)
(1)从输入流中读取一行
(2)执行指定的命令,对该行进行必要的交换
(3)将该行写入到输出流中
number [,number] |/regex/ 对指定行进行操作或者包含特定字符串的行
5,10s(5到10行)
$s(最后一行)
/OK/(字符串OK所在行)
[0-9][0-9]包含两个连续数字的行
-e 多条更改
-f 文件
33,正则表达式
元字符
.
^
$
\< 匹配单词的开头
\> 匹配单词的结尾
[abc] 匹配abc中的任何字符
[^abc] 匹配不在abc中的任何字符
() 组:视为一个单独的单元
| 匹配选择之一
\ 引用:从字面上解释元字符
运算符
* 0或多次
+ 1或多次
? 0或1次
{n} n次 (xyz){5}匹配字符"xyz"5次
{n,} 最少n次
{,m} 最多m次
{n,m} n,m之间次 [0-9]{3,5}匹配3到5个数字
类
[:lower:] a-z
[:upper:] A-Z
[:alpha:] A-Za-z
[:alnum:] A-Za-z0-9
[:digit:] 0-9
[:punct:] 标点符号
[:blank:] 空格或制表符
grep -w 'cat' data
grep '\
grep '\bcat\b'data
man ascii
locale -a
34,显示文件
hexdump hexdump -C /bin/grep |less 显示二进制文件 -C 文件
od od -Ax -txlz /bin/grep |less
35,vim文本编辑器
命令模式
h
j
k
l
w
e
b
r
R
x
X
D
dd
u
U
yy
yw
y10w
y2)
y5}
10yy
p
P
xp 调换两个字符
ddp 调换两行
deep 调换2个单词
输入模式
i
a
o
I
A
O
搜索模式
:/keywords
:set number
:set all
.vimrc
36,文件系统
基于磁盘的文件系统
ext3、ext4,FAT32,HFS+(层次式文件系统),ISO 9660(CD-ROM),NTFS,UDF(可重写CD和DVD),UFS2(BSD,Solaris)
网络文件系统
NFS,SMB
特殊文件系统
devpts 伪终端的设备界面(PTY)
procfs proc文件系统
sysfs 系统数据文件系统(设备与驱动器)
tmpfs 临时存储文件系统
37,目录操作
.
..
~
pushd
popd
dirs
ls -CrR1F(C列,r字母表从大到小显示,R全部子目录,1文件名占一行,F带标志)
ls -lrtu显示最近访问过得文件
-普通
d目录
l符号
b块
c字符
p管道
dumpe2fs /dev/sda1 | grep "Block size"
tree 文件树
38,文件操作
setuid
setgid
umask
shred -fvuz filename 清空文件内容
stat file
ls -i
ln -s
whereis
locate
find
find path ... test ... action...
test如下:
-name
-iname
-type
-perm
-user
-group
-empty
-size
-atime
-ctime
-mtime
action如下:
-print
-fprint file
-ls
-exec command{} \;执行命令,{}指示匹配的文件名
-ok command{} \;同上,但是运行命令之前确认
-delete 删除文件
-fls file
xargs处理查找到的文件
find ~ -type f | xargs ls -s
(whoami;date) |xargs
39, 进程和作业控制
echo $$ 显示当前shell的PID
echo $! 显示上一条移至后台的命令的PID
sleeep (sleep 20;cat /etc/passwd) && vim /etc/termcap
jobs
ps
fg
bg
suspend 挂起当前shell
^Z
kill
top
prtstat
pstree
fuser
nice