note-unix 原理与实践

Ken Thomoson & Ritchie Dennis
|— 电子工程 无线电 示波器 放大器 GO 语言 Plan9 系统 unicode-8
|— 应用数学 1941-0909–200111012 ;C语言 1969 ,Kiss it simple and stupid

UNIX原理与应用 4th

  • 清华大学出版社 吴文国/Sumitabha Das

诞生

Ken Thompson — Dennis Ritchie 

### 标准化 
    system v release 4 ,AT&T; POSIX.1 POSIX.2 ==> SUSV3 

COMMAND

tput ; 
man -k ;    apropos ;
whatis ; bc ; stty ; mailx ; cal ; lp ; cmp (逐字符比较); dos2unix ; unix2dos ; comm; od ; 

vi

~/.exrc ; ~/.vimrc vi 个性化配置文件 ; Ctrl+l 清屏 ; 
R :
s : 多个字符替换当前单个字符
S : 替换整行
从vi返回 shell :“:sh” , exit
### 位移:
    hjkl
    w e b 
    0 | $ 
    ^+f ^+b ^+d ^+u 
    ctrl+g : display line number 
    30G go to 30th line
J : 行合并
/ 全文搜索
?行搜索
. 重复最近一次操作
:s 替换: ":address/source_pattern/target_pattern/flags" 
    flags: g: global , c: interactive 

File

inode 
hard link / soft link 

grep & RE & sed

RE&ERE 正则表达式 与 扩展正则表达式
sed:
    sed options 'adress aciton' file(s)
    adress: (3,7) or '/开始模式/,/结束模式/'

shell program

$?  status return by last commad
test ; []
set
shift 
trap 'cmd-list' signal_list 
组运算符:
    () :run in 子shell 
    {}:运行在当前shell ;
export 导出变量
let : ksh/bash 
    let sum=256+128

X-Windows

X server ; startx/xinit ; 
GUI client 
run level : 3 , 5 xdm ; 
xhost and $DISPLAY = hostname:0.0 
    0.0=(X-instanceNumber.ScreenNumber) ;
-display 每个X客户端程序都有这个选项:
    xcalc -display hostnmae:0.0 &  ##
### 标准的X客户端程序
    dtfile ; xclock ; xcalc ; xbiff (邮件通知);xload ; xkill ; 
~/.xinitrc ; ~./.Xdefaults ; xrdb ~/.Xdefaults ##reload config ; 

network

DARPA: telnet & ftp ;
r tools: rsh ,rcp ,rlogin ; 

密码学基础

认证,保密,完整 
对称,非对称加密
/etc/hosts.equiv , ~/.rhosts ; 
MIME : Mutilpurpose Internet Mail Extensions ; 
FQDN : Full Qualify Domain Name 

awk and 报表处理

awk options 'selection_criteria {action}' file(s)

perl by larry wall

Pratical Extraction and report language 
perl more effect than awk shell 

vi 高级


内核&Shell
文件与进程
不同类型unix 系统调用完全一样
Type命令 Shell Built-in 命令
“man man “ ; man -k ~ ; whatis ~ ; apropos ~ ;

File 命令 : cmp ;commn ; diff ; dos2unix ; unix2dos ;zip/unzip {综合实现了tar & zip }
Vi 编辑器 : Yanking:拉回 ,复制文本
Shell 命令解释 程序设计
Bourne shell , korn shell , C shell ,bash
{~~~} 匹配
转义 \ 单引号 双引号 互相保护
/dev/null ; /dev/tty
tee命令
命令替换 “this is all the file: $(ls -all)”
变量链接: ${var1}${var2}
SUID 属主身份设置位 真实UID 有效 UID
程序运行时的 real user sys time: real 从运行到返回结果总计时间 ,user 用户态时间,程序运行的时间, sys 系统调用的时间 ,
“$_” 前一个命令的最后一个参数
cd ~- :先前目录 ; cd -

硬链接: 方便改名 ,程序可根据被调用文件名的不同,运行不同的逻辑

pr命令 ; paste command ; cut ; sort ; uniq ; tr {translate}只接受标准收入 ; sed
Shell 特殊参数:
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。以”$1 $2 … $n”的形式输出所有参数
$@ 传递给脚本或函数的所有参数。以”$1” “$2” … “$n” 的形式输出所有参数。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
http://c.biancheng.net/cpp/ # C语言中文网

test 语句配合 if 适用


--Write by Marcustar,关关雎鸠,在河之洲
目录
Download 相册