·TCP/IP状态变迁图和TCP三次握... 
    ·cookie 信息跟踪调试 
    ·PIC(与位置无关代码)在u-bo... 
    ·命令行关闭特定服务和调整服... 
    ·《Unix/Linux日志分析与流量... 
    ·Oracle 11G 备份与恢复 块改... 
·Oracle Data Guard LOG_ARCHI...
 ·海量数据迁移之使用shell启用... 
    ·[MySQL] 查询5天之内过生日的... 
    ·Oracle RAC 手动升级 11.2.0.... 
    ·Win2003下如何卸载集群【转载... 
    ·hp unix 下进程查找 
    ·RI本动态ip服务器租用 买五个... 
    ·Android Camera之SurfaceView... 
·find exec linux
 1.1 UNIX的发展简史 
    60年代由麻省理工学院、通用电器公司、AT&T贝尔试验室组成一个专家小组,研制一个MULICS,是一个灵活的交互式操作系统。
    60年后期,BELL脱离该组织,失去了灵活的交互式操作系统。
    1990年,有一个叫Ken.Tompson写了一个SPACE TRAVEL的游戏,是在PDP-7上写的,为了更有效地发挥PDP-7的强大功能,托普森和另一位科学家Dennis Ritchie开发了一个新的操作系统UNIX。此前Dennis创建了C语言。
    1973年Ken和Dennis用C语言重写了UNIX。UNIX成为世界上第一个用高级语言写的操作系统。
    C语言使UNIX更容易移植,移植是UNIX最重要的优越性
    70年代UNIX版本不断更新,74年后,世界上所有的大学都可以以极小的代价获得UNIX的源代码,由此产生了很多重要的分支,包括一个BSD版,加州伯克利大学Berkeley Software Distribution。80年代AT&T重新命令UNIX版。
    l 1973年,美国高等院校开始使用UNIX
    l 1974年,Version 4
    l 1976年,Version5,6
    l 1978年,Bell开发出系统 III
    l 1979年,Berkekey分校发布BSD 3
    l 1982年,Berkekey分校发布BSD 4.2
    l 1983年,Bell开发出系统V
    l 1983年,Berkekey分校推出第一个内含TCPIP的BSD UNIX
    l 1985年,AT&T 推出SVR2,即系统V,RELEASE 2
    l 1987年,AT&T 推出SVR3
    l 1989年,AT&T 推出SVR4
    82年后,AT&T发布商业版,SYSTEM3以前均为内部使用。
    BSD起源于1974年,伯克利研究小组毕业的学生Bill Joy开发出更好性能的UNIX。如CSH、VI、虚拟存储环境,这些性能后来被柔进了SYSTEM 5。
1974  BSD     1979  2BSD     1982  3BSD
1984  4BSD     1987  4.3BSD  4.5BSD
 在微机领域,71年分支出XENIX
    81年   XENIX2.3  XENIX3.0  XENIX5.0遵守SVID
    85年 AT&T宣布一个标准SVID
(Standard Called System U Imterface Defination)
 85年出现SYSTEM U/386与SVID完全兼容。
    当时主要的UNIX(XENIX、SYSTEMU、BSD)占80%。
    BSD 一般出现在大学
    SYSTEM为用于商业领域
    XINIX 只用于PC
    1.2 UNIX标准化 
    1984年欧州5家成立X/OPEN协会。
XPG3――XPG4
SPE C 1170
 1985年IEEE公布POSIX 1003
    1988年5月 DEC、IBM、HP 公布OSF(BSD)AES
    1988年12月AT&T SUN公布UI (SYSTEM V)
    1992年12月NOVELL购买USL转让给X/OPEN
    1993年9月WINDOWS NT出现使OSF和UI和解,产生COSE。包括XPG4、POSIX、SUID3、SVR4.3、AES、MOTIF、TCPIP。
    1.3 常见商业版本 
    SUN SOLORIS纯SYSTEM V
IBM AIX5.3
HP-UX
 IRIX遵守POSIX
    Tru64 UNIX 成熟、统一对COSE遵守最好。SPEC1170 MACH微内核完整、大而全。
    LINUX 自由软件、微内核、多平台支持各种协议。
    2 Tru64 UNIX优点 
    l 全64位软硬件体系结构
    l 最快的64位平台
    l SMP多线程共享程序、软件升级不必重新连接、内存映射文件、 单一系统映像Cluster、VLM
    l 具存防崩溃性能
    l 超大规模收据库访问能力,支持大于17MB的文件
    l 规模可伸缩
    l 低成本管理
    l 最OPEN、最标准
    l 支持ADVFS、LSM、CLUSTER
    l 支持各种网络
    l 国际化不另收费用
    l 支持IEEE标准,POSIX命令及实时线程
    l 支持FIPS 151 -2
    l 支持ISO/IEC 9945-1 1990
    l 支持X/OPEN 可移植性指南VOLUME4(XPG4)
    l 支持BSD4.3 4.4
    l 支持MIT XIIR5 ADK FOR XIIR6
    l 支持FIPS 160(ANSI)
    l 支持OSF MOTIF
  1.2.3
    l 支持UNIX 93
    l 支持RFC
    l 支持ISO 9660(CDFS)
    l 支持NFS V.3
    l 支持SVR4 SVR3  SVID2 SVID3
    3 初次上机 
    3.1 进入系统 
    UNIX系统为多用户,多任务操作系统,有很完善的用户管理和安全机制,使用系统的每一个人都可以有一个用户名,并有一个用户识别码UID,每个用户至少属于一个用户组,可以同时属于多个用户组,组是UNIX系统为了方便用户管理而建立的一个用户集合,进入系统只需输入自己的用户名和口令,不需要输入组名。
    l 主机终端
    按回车键开始登录过程
    l 终端服务器
    按回车键登录到终端服务器
    用c命令 connect 开始登录过程
    l PC机  
    用telnet 命令
    login:用户名
    password :口令   (不显示出来)
    PC 用Telnet 开始登录过程
l Xwindows
   输入用户名按回车
    输入口令按回车
    可以选择语言环境
    3.2 改变口令 
    $ passwd 回车
    old password:输入旧口令
    new password :输入新口令
    reenter new password :重新输入,验证
    3.3 chsh 改变login shell 
chsh
/bin /sh
/bin /csh
3.4
chfn
 改变用户电话号码,力公室位置等信息 
chfn
 3.5 获得帮助 
    help 命令获极少的帮助
    man 查有联机手册
    man cmd 查看cmd详细手册
    man –k keyword 查看与keyword相关的所有命令。
man n cmd
 一般情况下手册被分组为1到8其8个组,某些命令在多个组中均有帮助信息,用man n 指定读取n组中的信息。
where is cmd
 查看cmd的绝对路径。
echo $PATH
which cmd
 查看cmd 是哪个目录的cmd
who am I whoamI
 查看自己的用户名
who, w
 查看当前谁在系统上
users, u
 查看当前系统的用户
finger user
 查看user 的信息
    ps 显示当前进程状况
    ps –u user 显示用户名为user 的进程状况
    3.6 作业调度 
    命令行可加&表示后台执行
    例  f 77 test.f &  在后台执行编译命令。
    命令的输入和输出可重定向。
    例 ls -l >dir.lis
lmf rdg -<l1
 -表示标准输入或标准输出
    例  zcat file.z| [cd/tmp ;tar xvf -]
    前命令的结果可以作为后一个命令的输入,称为管道技术
    例ps –ef | more
strings .*| grep user
 作业调入前台执行
fg %job
 ^z 使当前作业挂起
    bg %job 使作业在后台恢复执行
    at 批作业
at time cmd
 例 at 5pm Friday rm /tmp/*
    4 UNIX文件和目录结构 
    4.1 文件名和目录名 
    必须遵守以下规则:
    可采用除“1”外的任何ASCII字符
    以“.”开头的文件名在普通用户看来是隐蔽的。
    “.”代表当前目录,“..”代表上级目录。
    特殊字符用反斜杆引导“\”
    4.2 文件类型 
    l 普通文件
    l 链
    l 特殊文件,如终端、通信设备、驱动器、FIFO、SOCKET
    4.3  文件系统结构 
    倒树结构
    4.4 目录树 
    /.文件系统的根目录,超级用户的HOME目录
    /stand UNIX引导时使用的标准程序和数据文件
    /sbin  UNIX引导时使用的程序
    /dev  特殊设备文件
    /dev/console 控制台
    /dev/lp 并口打印机
    /dev/rz** 硬盘块设备文件
    /dev/rmton 磁带文件
    /etc   系统管理及配置数据库
    /opt   附加应用软件包的根
    /home  用户主目录和文件
    /var   系统用文件、目录、日志、记帐、邮件、假脱机
    /var/adm 系统日志,记帐
    /var/mail 用户邮件文件
    /var/news 新闻目录
    /var/opt  附加应用程序子目录
    /var/tmp  临时文件
    /var/spool 假脱机目录
    /var/uucp  Uucp日志和状态
    /usr    其它用户可访问的根
    /usr/bin  新的可执行程序命令
    /usr/sbin  新的系统命令,可执行程序
    /usr/lib   率
    /usr/include 头文件
    /usr/examples  例子文件
    /usr/share/man  联机手册
    /usr/ucb  包含Bsd Unix兼容的软件包
    /usr/ibn  多国字符程序数据
    4.5  目录和文件的使用 
    绝对路径名  以/开头,从根开始
    相对路径名  其它以..,目录名,文件名开始
    UNIX命令 相应DOS命令
    pwd  列出当前工作目录 cd
    ls   列目录内容 dir/w
ls -l           dir
ls -a           dir/a
ls -r           dir/s
ls -x           dir/w
ls –l |more        dir/p
 ls –F 用符号表示简单属性
    ls -q  用?表示非打印字符
    cat 显示文件内容
cat file         type file
cat file1 file2 file3    type file1+file2+file3
 cat -n file  显示行号
    cat -u file  显示非打印字符  -u 输出无缓冲
    cat -r file  多个空行合为1行
    cd  改变工作目录
cd usr          cd dos
cd /usr cd c:\dos
cd .. cd ..
cd ../.. cd ..\ ..
 mv 移动文件或目录
mv file1 file2 ren file1 file2
mv file1 dir2 move file1 dir2
mv dir1 dir2 xcopy dir1 dir2 deltree dir1
 mv –i 如果目标文件存在则提示
    mv -f 强制拷贝
    cp   拷贝文件
cp file1 file2     copy file1 file2
 cp  -i file1 file2  提示覆盖
cp  -r dir1 dir2   xcopy /s dir1 dir2
 cp  -p  属性不变
    cp file1 file2 file3 file4…target 合并文件
    ln 建立软链        dos 下只有用
    ln source des     norton tools 等工具才能实现,但chkdsk将检查出错误。
    ln  -s source 符号连接忽略des属性
ln  -f source des
 rm 删除文件或目录
rm file1         del file1
rm *           del *.*
rm -r dir        deltree  dir
rm -i
 rmdir  删除目录
    条件:目录必须是空目录
rmdir dir        rd dir
 mkdir 创建子目录
mkdir dir        md  dir
 mkdir  -m 指定使用mode
mkdir  -p ../dir1/dir2/dir3
 file 查看文件类型
file *
 find 查找指定文件
find path expression
 -print 打印文件所在路径
    -exec cmd 对找到的文件执行cmd命令
    -atime n 只查几天以前的文件
    pg 分页显示文件
    more 分页显示文件
    lp  打印文件
    lpstat  查看打印队列
    lprm 删除打印作业
cancel
 4.6 文件属性 
    4.6.1 定义 
$ ls –l
total 24094
-rw-r--r-- 1 root system 176584 Jul 5 17:09 3500install.pdf
-rw-r--r-- 1 root system 2593 Jun 13 12:48 DXsession
-rw-r--r-- 1 bin bin 2476 Apr 13 1999 GENERIC
lrwxr-xr-x 1 root system 7 May 31 16:41 bin -> usr/bin
-rw------- 1 root system 501 Jun 23 22:31 tcr2
drwxrwxrwt 3 root system 8192 Sep 3 12:59 tmp
drwxr-xr-x 29 root system 8192 Aug 31 14:22 usr
lrwxr-xr-x 1 root system 7 May 31 16:38 var -> usr/var
-rwxr-xr-x 1 root system 9549088 Jun 1 12:29 vmunix
 使用ls –l命令显示文件的全部属性,其中第一个域反应文件的类型和访问属性,第1列为
    - 表示为普通文件
    d 表示为目录文件
    l 该文件为连接
    第2,3,4列为文件属主读,写,执行的访问标识,如第2列为-则不可读,为r 则表示可读。
    第5,6,7列为文件所属组用户的读,写,执行的访问标识。
    第8,9,10列为其它组用户的读,写,执行的访问标识。
    第2个域为该文件的连接数,如果某目录文件的连接数越大,其子目录数就越多。
    第3个域为该文件的属主。
    第4个域为该文件的属组。
    第5个域为该文件的大小。
    第6个域为该文件的创建时间。
    第7个域为该文件的文件名。
    第8个域如果不空的活,则为该文件所连接文件路径。
    4.6.2 改变文件访问属性 
$ chmod nnn file
$ chmod [ugo][+-][rwx] file
 4.6.3 改变文件属主 
$ chown user file
$ chown user:group file
 4.6.4 改变文件属组 
$ chgrp group file
 4.6.5 更新文件访问时间 
$ touch file
 5 命令,重定向,管道和过滤器 
    5.1 命令格式 
cmd [ [-option [option value] …] [parameter1] [parameter2]….
 每一条Shell命令由一个命令动词或文件名开始,可以跟一个或多个命令选项,一个或多个命令叁数,按回车将命令提交到系统。大部分UNIX命令是一个可执行文件,位于环境变量PATH或path所指示的路径中。命令也可以是shell内部命令,命令还可以是自己编译连接的可执行文件或命令踋本(批处理)文件。一个命令行可以有65536个字符,如果一行写不完,可用\符号续行,在命令行中可以采用*和%等通配符。
ls –l
ls –l /usr
ls –l /etc/host*
 在一个命令行中可以输入多个命令,但必须用分号分隔开。
cd /usr/users/user01; ls –l; pwd
 5.2 重定向 
    在缺省情况下,命令的输入是标准输入设备键盘,输出是标准输出设备如终端显示器,可以通过>和<将命令的输出和输入重定向到文件或其它设备。
$ ls –l >dir.txt
$ more < .login
$ echo “” > /usr/sybase/sybase.log
 在缺省情况下,使用>将命令写到某文件中,如该文件不存在,本命令创建该文件,如果该文件存在,该文件的内容被本命令的输出结果覆盖。如果使用>>符号,则命令的输出被添加到该文件的后面。
    5.3 管道和过滤器 
    UNIX命令管理将一个命令的输出作为另一个命令的输入,在同一个命令行中有多个命令,后一个命令处理前一个命令的输出。
ps –ef|grep oracle
 以上命令查找命令行或用户名中含有字符串oracle的输出。 ps –ef命令输出系统中所有进程的长格式信息,通过grep oracle命令处理后,不包括oracle的行全部被过滤掉了。象grep这种命令叫过滤器。其它过滤器命令如下:
    wc 统计字数,行数,词数
    grep 按正规表达式进行模式检索
    -i 不区别大小写
    -v 不匹配的行
    -n 行前加行号
    -c 只输出行数
    -l 只输出匹配的文件名
    fgrep 只是字符串,含特殊字符时高速
    grep 有限制的规则表达式,比较快
    cgrep 完全正则表达式,功能最全
    -f   域
    -d  分隔符
    colum   删列
    colum 3.5,textfuke 删掉 3~9列
    sort -b cdfmnru +关健字开始位置-关健字结束位置,输入文件
    -f   不区别大小写
    -m只合并
    -r 降序
    -u  多个相同行只输出1行
    uniq 多个重复行归纳为1行
    join [-an.][-e串][-j(n)(m)][-o字段][-t字符]文件1文件2
    -a与文件<n>不匹配的全输出n=1,2
    -e 无对应字段时输出指定串
    -jnm 将文件n的第m个字段作关键字进行连接
    6 UNIX命令汇总 
    6.1 alias     别名     ksh、csh命令 
    alias  显示所有当前命令的别名
    alias name  显示别名为name的命令
    alias name cmd  置cmd命令的别名为name csh
    alias name=cmd  置cmd命令的别名为name ksh
    6.2 unalias   取消别名 
unalias name
 6.3 bg %jobid  恢复挂起的作业到后台运行 
    6.4 cal  显示当前日的月历 
cal [[month]year]
cal    2  1996
 6.5 chown owner file  改变文件属性 
    chown -h  改变一文件链的属性
chmod.chgrp
 6.6 启动一个cshell命令解释程序 
csh
 6.7 date  显示和设置日期 
    date mmddhhmm.yy设置月日时分年
    6.8 echo string 在标准输出上回显string 
    6.9 env  显示环境变量 
    env name=value  置环境变量name值为value
setenv
setenv name=value  unsetenv name
 6.10 exit 结束用户登录 
    6.11 export variable 
    在sh 和ksh下用户变量export后才可成为全局变量
    6.12 fg %jobid将挂起的作业调入前台执行 
    6.13 fmt file 简单正文格式化 
    fmt –w width 文件输出的行宽为width
    fmt –c 顶部对齐
    fmt –s  防止短行合并输出
    6.14 head file 显示文件头部10行 
    head –n file 显示头部n 行
    6.15 history 显示以前被执行过的命令csh ,ksh 
    6.16 jobs 显示所有运行的任务 
    在命令行尾加&使作业在后台执行
    正在执行作业时按ctrl-z (csh)使作业挂起
    然后可用jobs,fg,bg等命令
    6.17 kill pid 给进程发中止信号 
    kill-g pid 强制杀除进程
    6.18 ksh 启动ksh 命令解释程序 
    6.19 more 命令 
    more file  分页显示file 内容
    more –c   显示前清屏
    more –s   多个空行压缩为1行
    按空格:向前翻1屏
    按回车:向前滚1行
    b    回翻1屏
    G    到多少行,缺省第1行  nG  到第n行
    P% 到百分之一      np 到第n%处
    m 标记一个位置     m[a-z]  命名位置
    ‘ 返回标记的位置   ‘[a-z]
    v 运行editor 编辑文件
    /.? 找一串
q exit
 :n   跳到下一文件
    :p   前1文件
    6.20 news 查看新消息 
    news –a 显示所有新消息状态
    news –n 显示所有新消息状态
    6.21 nice cmd 以低于正常优先执行命令 
    nice =n cmd 设置优先级
    6.22 mohup cmd cmd 命令执行时不挂起 
    6.23 r ksh 下重执行前1个命令 
    6.24 resume %jobid 启动被挂起的作业 
    6.25 script file 
    将输出、输入到终端的信息同时写入文件中,script –a   同时写入文件中,-a是添加。
    6.26 set 显示当前变量值 
set name=value
uset name
 6.27 sh 启动bsh 
    6.28 spell file 查找文件的拼写错误 
    spell –b 美国英语拼写
    6.29  stop %jobid  挂起正在运行的作业 
    6.30  stty  显示设置终端选项 
    sttt –a 显示当前终端所在选项
    stty –g  显示当前设置,格式可作为stty实参
    line speed 置波特率
    -t type  终端类型
    columns n  设置列数
    6.31 tail file 显示文件最后10行 
    tail –n file 显示文件最后n 行
    6.32 tee file 将输入复制到输出及文件file中 
    tee –a file 添加到file 尾
    6.33 touch file 更新文件的存取时间 
    touch –a 只更新访问时间
    touch –m  只更新修改时间
    touch –c 防止建立以前不存在的文件 
    7 ed 编辑器 
ed file
 出错时,h提供简单帮助信息,H提供详细帮助信息,用a,c,I进入输入方式,在单独一行上用,回到命令格式保存文件w. Wq =x 
    p .p 显示当前行
    =  显示当前行的行号
    np 显示第n 行
    1,6p  显示1-6行
    $p 显示最后一行
    1,$p显示所有行
    + 显示下一行
    - 显示上一行
    n 显示当前行及行号
    nn 显示第n行及行号
    x,yn 显示x—y行及行号
    l 显示当前行包括非打印字符
    d 删除当前行
    u 取消最后命令
    s /str1/str2 用 str2 取代str1
s/str1// 删除str1
 2s/str1/str2/n 第2 行的str1改为str2并显示修改后的行
    s/str1/str2/g 全程替换
<first>,<end>m<line>
 6 第2—4行移到第6行之后
    t 块拷贝格式同m
    r file 将文件读到当前行后
    <first>,<end> w file 写块到文件
    !cmd 执行shell命令
    /模式/ 正向查找命令
    ?模式?反向查找命令
    // 继续找第2个
    g/the/p 全程查找并显示
    g/the/s/the/that/ 全程查找the并用that代替the 
    v与g命令相反
    v/the/n 全程查找不包含the 并显示
    ^代表行首 $行尾 .任意字符 *任意多个与前面相同字符
    /A….B/ 以A开关B结尾中间3个任意
    . s/. /. 第1个 . 当前行
    第2 个 . 任意字符
    第3个 . 字符
    s/xx*/y/ 用y代替2个或2个以上的x
    s/x*y/y/ 用y代替以x开头以y结束的所有字符
    &代表第1个模式内容
    /模式1/(模式1)/=/模式1/(&)/
    [xz]表示x或z
    [0-9]表示0-9的任意数字
    8 vi编辑器 
    vi file vi -r 只读模式 vi -r 恢复 -wnumber 指定窗 口大小
    vi +67 file 光标停在第67行
    命令模式 i,I,o,O,a,A进入输入模式,;/?最后一行模式
    最后一行模式
    :q 退出 :w写文件 :wq存盘退出 :q! Quit :x存盘退出
    命令模式 zz存盘退出 如未修改不存盘退出
    移动光标
    l 空格 右 w W 下词词首 5w 前移5个词
    h ^H 左 e E 词尾或标点
    j ^N 下 b B 返回词首
    k ^P 上 ) 下句句首
    0 行首 ( 上句句首
    & 行尾 } 下段句首
    + 下行行首 { 上段名首
    - 上行行首 ]] 下区第1字符
    [[ 上区第1字符
    H 光标到屏幕布顶部
    M 光标到屏幕布中部
    L 光标到屏幕布底部
    ctrl -F 向前一屏
    ^D  向前半屏
    ^B  向后一屏
    ^U  向后半屏
    ^Y 向上滚1行
    ^E 向下滚1行
    G   文件尾, nG到第n 行
    z+  向上翻页
    z^ 向下翻页
    z. 当前行到中间
    z-  当前行到底部
    rn 用字符n代替当前字符
    3rn 用n代替当前3个字符
    Rstring ESC 用输入串代替当前字符
    cw string ESC 用string代替当前光标到词尾的串
    5cw string ESC 用string代替当前光标到第5个词尾的串
    cb,CB string ESC用string替换词首到当前光标位置的串
    c&string ESC 用string替换到行尾的字串
    s删当前字符并开始输入正文
    S 删当前行并开始输入正文
    ~  改变当前字符大小写
    x 删当前字符
    X 删当前字符左边的字符
    dw 删光标到词尾的串
    d :return=dd 删两行
    d [[ 删光标到区首
D=d&
 fn 移到跟当前光标后面的“n”字符处
    Fn 移到跟当前光标前面的“n”字符处
    fn 移到跟当前光标后面的“n”字符前一列
    Fn 移到跟当前光标前面的“n”字符后一列
    ;  继续f,F,t,T查找
    ,  反向f,F,t,T查找
    :addr 到指定行
    :set nu 当前缓冲区加行号
    m [a-z] 做标记
    ‘a 返回原记号处
    ecol 定位到指定行
    J   光标所在行与下行合并
    u   取消前次操作
    U  光标未离开当前行之首,取消从光标移来所做的修改  p   将缓冲区内容插入光标右边,添加新行
    :e!  取消最后一次写文件以来所做的所有修改
    .  重复上一个命令
A sample .exrc file for vi e...
 Solaris PowerTOP 1.0 发布 
For STKMonitor
 busybox的httpd使用CGI脚本(Bu... 
    项目小体会 
    kernel 报错l701.exel[16922]:... 
    linux su - username -c 命... 
该贴由system转至本版2014-9-9 23:11:47