UNIX

发表于:2007-07-04来源:作者:点击数: 标签:
1. Unix 操作系统 达内公司 培训 2. 在Unix环境中的软件 开发 3. 参考书 UNIX操作系统(第五版) Jerry Peek, Grace Todino John Strang著 4. 课程目标 登录退出Solaris▲系统 Solaris文件系统畅游 新建文件和目录 改变许可的文件和目录 操作文本文件 使用vi文

1. Unix 操作系统
   达内公司培训
  
2. 在Unix环境中的软件开发

3. 参考书
   UNIX操作系统(第五版)
   Jerry Peek, Grace Todino & John Strang著

4. 课程目标
   登录退出Solaris▲系统
   Solaris文件系统畅游
   新建文件和目录
   改变许可的文件和目录
   操作文本文件 
   使用vi文本编辑器
   用命令查找目录和文件
   使用基本的网络命令
   识别和更改初始化文件
   注:▲ 是SUN的Unix操作系统版本及商标。
  
5. 环境和期间
   训练环境:
   配备Solaris 8操作系统的SUN Ultra 10工作站
   预期时间:
   3天
  
6. Solaris计算环境

7. Unix和其它的操作系统
   (饼图略)
   市场份额排名:
   Windows▲: NT, 9x, 2K, XP
   Linux▲: RedHat, SuSE, SlackWare, Mandrak, BluePoint等
   Unix: SUN Solaris, IBM AIX, HP HP-UX, SGI, DEC, SCO UNIX, FreeBSD等     
   Mac▲: OS, Macintosh
   注:▲ 微软(Microsoft)公司视窗操作系统及注册商标
       ▲ 由瑞典斯德哥尔摩大学教授Linus编写及其它自由软件伙伴修正的内核源自Unix的流行操作系统。
       ▲ 苹果(Apple)公司的操作系统及图形系统。
      
8. Solaris介绍
   Solaris是Sun公司的Unix版本
   1965年贝尔实验室中加入麻省理工学院和通用电气公司来开发新操作系统Multics
   1970年1月1日0点,贝尔实验室的程序员Brian Kernighan和Dennis Ritche将它命名为UNIX
   1973年Unix绝大部分用C语言重写
   1980年BSD 4.1(伯克利软件发行)。伯克利加入了虚拟机支持、TCP/IP网络、vi、csh▲和更多功能
   1983年在BSD UNIX 4.2版本上SunOS建立
   1988年美国电话电报公司和SUN微系统公司加入了系统5修正4版本的开发工作,这就是以后被开发成的Solaris 2
   注:▲ vi是Unix/Linux环境中的文本编辑器,csh指C Shell是Unix/Linux环境中的操作系统同用户的接口之一。
  
9. Unix版本的历史  
   (列表略)     
  
10. 更多关于Unix
    它能做什么?
    产品线:网页服务器、邮件服务器、数据库服务器
    编程开发
    谁应该懂Unix?
    Unix管理员、系统管理者、系统顾问
    Oracle管理员、网络工程师、程序开发者。
   
11. 硬件
    (图略)
   
12. 软件
    操作系统对应用软件
    客户机对服务器
   
13. Solaris操作系统
    内核
    外壳
    文件系统
    (图略)      
   
14. 内核
    管理设备、内存和进程
    控制系统程序、工具和系统硬件之间的功能
    管理交换空间、后台程序、文件系统和其它功能
   
15. 外壳
    一个外壳是指在用户和内核之间扮演翻译者或解释者的一个接口
    在Solaris环境中存在着三种外壳:▲
    Bourne shell($)
    Korn shell($)
    C shell(%)
    注:▲ 事实上其它Unix/Linix类似的平台也是这样。
   
16. Bourne shell(bsh)   
    由Stephen Bourne为美国电话电报公司的Unix编写
    最早和最广为人知的Unix外壳
    最多的外壳脚本的通用命名者
    Bourn-Again Shell(bash)▲
    该外壳下的
    超级管理员标识:#
    用户标识▲ :$
    注:▲ 改进版bsh,也很流行。
        ▲ 也即“命令行起始符”。
       
17. C shell(csh)   
    作为BSD Unix的一部分由Bill Joy——vi的作者——在加州大学伯克利分校创作
    介绍了命令行的历史和一个和C编程语言类似的程序环境
    同Bourne shell语法不兼容
    tcsh,一个增强的但完全兼容的csh
    该外壳下的
    超级管理员标识:#
    用户标识▲ :%
    注:▲ 改进版bsh,也很流行。
        ▲ 也即“命令行起始符”
       
18. 文件系统
    一个为了特定目的而组合在一起的目录、子目录、文件的层次
    目录——其它文件和目录的一个位置,目录结构使你能通过目录层次访问目录和新建文件
    子目录——任何在其它目录下的目录,比如一些子目录在/usr、/etc和/kernel目录下
   
19. 通常的Unix系统目录结构   
   (图略)      
  
20. 路径名
    一个路径名唯一精确的识别出详细的文件或目录在它指定的位置。   
    在路径中在每个目录名之间的一个斜线(/)显出不同的目录
    在第一个位置首位的一个斜线代表/目录▲
    绝对路径
    指定一个文件或目录和/目录的关系
    由一个斜线开始
    相对路径
    指定一个文件或目录和当前工作目录的关系
    不以一个斜线开始
    注:▲ Unix/Linux环境中文件系统的根目录,树型组织结构。
   
21. 命令行语法
    $Command [选项] [argument(s)]
    在命令行的每个部分之间必须用一个空格作为一个分隔符
    在一个命令行单行最多可以输入256个字符。
    与DOS▲不同的地方
    字格敏感▲
    不同的命令提示▲:/
    注:▲ Disk Operation System磁碟操作系统,早期广泛使用的人机交互界面。
        ▲ 英文大小写字母代表不同的含义,例如aS和As不同,而在DOS中则相同。
        ▲ 这是提示用户,不要和DOS中的反斜线\混淆,都是命令提示符及目录分隔符。
       
22. Unix的主要能力
    多任务——能使内核同时分开多条通道处理
    多用户——能使超过一个用户访问相同的系统资源
    分布式处理——能使资源透过网络使用
   
23. 登录、退出

24. 登录
    telnet 192.168.0.200▲
    login: (用户名)▲   
    password: (用户密码)▲
    注: ▲ telnet是远程登录,后面是用服务器IP地址,视具体情况而定。
    ▲ 这里不用加括号,直接敲,前面的登录和密码是由计算机输出的提示。
   
25. 退出
    logout或exit▲
    直接关机可能破坏一些文件系统(如盘同步写),因为文件映像表在退出时由内存写回盘上。
    注: ▲ 这两个命令任选其一然后敲回车键(Enter),区别是logout是早期设计的正统的退出方式,
        exit是后来的灵活的退出方式,除了可以用作退出操作系统,也时常用于退出一些软件环境。
       
26. 使用者帐户
    /etc/passwd
    /etc/shadow
    用户名和用户身份
    用户的自家目录
   
27. 密码的必要条件▲
    必须有6-8个字符的长度
    至少包含两个字母和一个数字或特殊字符
    必须和登录标识不同
    必须和前一个密码有至少三个字符的不同
    注:▲ 这些条件被计算机科学家证实是良好的设定口令习惯,可以避免结合穷举法、折半查找等多种算法的解密。
   
28. 改变你的密码
    经常地改变你的密码有助于避免未授权登录
    1 打出passwd命令
    2 打出你当前的密码并按回车键
    3 打出你新的密码并按回车键
    4 再次打出你的新密码并按回车键 
    注:▲ 经常会出现超级管理员初始化普通用户名和密码时不符合命名规范但由于权限成功了,然后普通用户修改时
       系统报错的情况,这时可以使用passwd username命令,username部分替换成该用户名,可以解决。
      
29. 基本Unix命令

30. clear
    用途:清除终端屏幕▲
    格式:clear      
    注:▲ 通常是指显示器
   
31. pwd
    用途:显示当前目录的绝对路径(打印工作目录)
    格式:pwd
   
32. cd
    用途:改变目录
    访问绝对和相对路径皆可
    当前目录.
    上一级目录..   
    格式:cd [directory_name]▲
    示例:cd /home/test1/dir2 (绝对路径)
          cd dir4/flowers     (相对路径)
          cd                  (返回原来路径,当有跳转到其它目录下的操作时)
          cd ../..            (返回上两级目录,相当于cd ..两次)
    注:▲ 示例命令中的方括号“[]”里面的部分为可选项,非必要。

33. ls
    用途:显示一个文件和目录的列表
    格式:ls -a       显示隐藏文件 隐藏文件:文件名以“.”开始
          ls -F       显示文件类型 目录文件:/,可执行文件:*,文本文件:(无)
          ls -R       显示一个递归的列表(含子目录下的所有文件)
         
34.       ls -t       显示文件按时间排序,由近到远。
          ls -l       显示一个长列表
          d rwx r-x r-x 4 user nobody 1024 Feb 22 09:20 .fm
          (格式从左到右依次显示文件类型、拥有者的读写执行权限、同组者的读写执行权限、
                      其它人的读写执行权限、链接数、拥有者用户名、组名、文件大小、最后一次修改时间、文件名)
                     
35. 文件类型
    d 目录
    - 普通文件
    文本,包括ASCII▲文本、英语文本、命令文本和可执行脚本
    可执行或二进制,包括32位可执行和可扩展链接格式(ELF)代码文件和其它动态链接可执行的文件
    数据,那些被一个在系统中运行的应用程序新建的东西。
    格式:file (一个或多个)文件名
    注:▲ American Standard Code for Information Interchange美国信息互换标准代码
   
36. 文件许可
    r 读权限
    w 写权限,对目录来说,可生成文件与子目录或删除文件与子目录
    x 执行权限,对目录来说,可查找该目录下内容
    - 没有权限
    如 - rw- r-- r--
         拥  同  其
         有  组  它
         者  者  人
    其中,拥有者-生成文件时登录的人,权限最高,u表示
          同组者-系统管理员分配的同组的一个或几个人,g表示
          其它人-除拥有者,同组者外的人,o表示
         
37. chmod
    用途:改变许可
    符号模式使用字母和符号的组合
    示例:$chmod g-r dante           (将文件dante同组者的读许可除去)
          $chmod u+x go+r dante      (为文件dante的拥有者添加执行许可)
          $chmod a=rw dante          (给文件dante所有用户添加读写许可)
         
38. 八进制模式使用八进制数字
    基础表示:
               4 读
               2 写
               1 执行                                           
    派生表示:
               7 rwx
               6 rw-
               5 r-x
               4 r--
               3 -wx
               2 -w-
               1 --x
               0 ---
    可以得出规律,基础表示都是2的n次幂,派生表示由基础表示读写执行权限组合而得。
    示例:
               $chmod 555 dante    (文件dante的权限改为r-x r-x r-x)
               $chmod 644 dante    (文件dante的权限改为rw- r-- r--)
               $chmod 755 dante    (文件dante的权限改为rwx r-x r-x)
              
39. touch
    用途:创建一个新的空的文件或更新访问和修改时间。
    格式:touch (一个或多个)文件名
   
40. mkdir
    用途:用相对或绝对路径新建目录均可
    必须拥有适当的建立目录的许可
    格式:mkdir [-p] 目录名
    示例:
               $mkdir reports/weekly           (相对路径,已存在)
               $mkdir dir1 dir2 dir3           (一次创建多个目录)
               $mkdir ~/games                  (跳转以前的那个路径)
               $mkdir -p practice/dir1/admin   (各上级路径不存在,全都新建)
              
41. cp
    用途:复制文件
    格式:cp [-i] (一个或多个)源文件 目的文件(或目录)
    示例:$cp nuts flavors             (将文件nuts复制,副本名为flavors)
          $cp nuts flavors dir2        (将文件nuts、flavors复制到目录dir2中去)
          $cp -i beans nuts            (将文件beans复制,副本名为nuts,在复制过程中交互式提问
                                        如果与目的文件同名的文件存在,源文件的覆盖动作是否执行)
    用途:复制一个目录及其内容到另外的目录
    格式:cp -r[i] (一个或多个)源目录 目的目录
    示例:$cp -r dir3 dir4             (将目录dir3复制到目录dir4)
          $cp -r dir1 dir4 /tmp        (将目录dir1和dir4复制到tmp目录下,绝对路径)                                       
         
42. mv
    用途:移动或更名文件和目录
    格式:mv [-i] 源 目标文件(或目录)
    示例:$mv nuts brands                              (将文件nuts更名为brands)
          $mv /export/home/user2/dir1/brands ~         (将文件/export/home/user2/dir1/brands移动到以前的路径)
          $mv dir5 dir6                                (将目录dir5更名为dir6)
         
43. rm和rmdir
    用途:删除文件
    格式:rm [-i] (一个或多个)文件名
    示例:$rm file1 file2 file3                        (将文件file1、file2、file3删除)
          $rm file4                                    (将文件file4删除,过程中交互式提问确认删除)
    用途:删除目录▲
    格式:rmdir (一个或多个)空目录名▲
          rm -r[i] (一个或多个)目录名
    示例:$rmdir empty_dir              (将空目录empty_dir删除)
          $rm -r dir6                                 (将文件file4删除,过程中交互式提问确认删除)
          $rm -ir ~/dir7                              (将以前路径下dir7目录及其内容删除,过程中交互式提问确认删除) 
    注:▲ rmdir只能在目标目录为空时才能执行,这里指的都是内容为空的目录,否则要用rm -r递归删除目录及其内容。
   
44. ln
  用途:给文件或目录建立替代名称或别名
  两种链接,硬链接和符号(或称软)链接
  格式:ln [-s] 源文件 目标文件
  符号链接-跨越文件系统链接一个文件或目录
    (图略)
   
45. 硬链接-用来链接在同一文件系统上的文件
    硬链接的文件之间共享同样节点数目并指向硬盘上同样的数据。
    (图略)
   
46. man -雇工是你的朋友
  用途:Unix的雇工页是描述那些你需要知道的关于系统的在线命令、系统调用、文件格式和系统维护的
  格式:man 名字
     man -k 关键字
  在Manpage中滚动
  空格键   一次滚动手册一页
  回车键   一次滚动手册一行
  b         移到上一屏
  f      移到下一屏
  q         退出手册
  /string   查找含有字符串的信息
  n      寻找一下个出现的字符串

47. 保留字符
    它们是键盘上的对外壳有特殊的意义的字符
    举例:; $ % > ! ~ * ? [] <> |
    点(.)和下划线(_)除外
   
48. 星号(*)
    代表0到多个字符
    $ls d*                        (列出名字以d开头的所有文件)
   
49. 问号(?)
    代表单个字符
    $ls dir?                      (列出名字以dir开头,最后一个字母不明的所有文件)
    $ls z?.txt                    (列出名字以z开头,最后一个字母不明的文本文件)
   
50. 方括号([])
    匹配一组或范围中的字符到一个单个字符
    $ls [b-f]*
    $ls [fF]k*abc?e.txt
   
51. 分号(;)  
    输入多个命令在同一命令行(以分号为分隔符)
    $cd;ls                        (返回原来路径,显示该路径下的文件)
    $date;cal;pwd                 (显示日期,显示日历,显示当前目录)
   
52. 尖括号(>,<,>>)
    用(>)来将一个命令的输出重新定向到文件中而不是屏幕上。   
    用(<)来将一个命令的输入从文件中而不是键盘上重新定向。
    用(>>)来添加一个命令的输出到一个现存的文件中。
    $mailx openlab@tarenalab2 < dat.txt      (从dat文本文件中输入到邮箱openlab@tarenalab2,即将文本文件作为邮件发给该邮箱)
    $cal 5 2003 > may.june                   (显示2003年5月的日历,并将结果输出到文件may.june中且不在屏幕上显示)
    $cal 6 2003 >> may.june                  (显示2003年6月的日历,并将结果添加到文件may.june中)
   
53. 管道(|)   
    得到一个命令的输出并把它传送为下一个命令的输入
    这和带分号的多个命令同一行的区别在于,分号分隔多个相互无关的命令,
    而管道的命令之间是有关的,后一个命令的执行依赖于前一个命令的结果。
   
54. 文本编辑
    配置文件、网页、程序源代码等所有基于文本的
    文本阅读器对编辑器

55. cat
    将一个文本文件的内容显示在屏幕上
    也经常用于将两个或多个文件到一个大文件中
    cat (一个或多个)文件名
    $cat /etc/passwd > /dev/null                                          (将一个文件的内容不显示在屏幕上而输出到另外一处的文件中)
    $cat /etc/passwd | awk -F:'{print $1 "\t" $6}'\ | sort > ~/userinfo   (先显示一个文件的内容,然后对其进行,awk脚本代码,不懂!)

56. more
    一次显示一个文本文件的内容一屏幕
    more (一个或多个)文件名
    空格键   一次滚动手册一页
    回车键   一次滚动手册一行
    b        移到上一屏
   f      移到下一屏
    h         显示more功能的帮助页面
   q         退出返回外壳提示
   /string   查找含有字符串的信息
   n      寻找一下个出现的字符串
       
57. 头和尾巴
    显示第一行或后n行的一个或多个文件,
    默认显示第一行或到后10行。
    head [-n] (一个或多个)文件名
    tail [-n] (一个或多个)文件名
    $tail -30 /usr/dict/words

58. emacs
    由免费软件基金会(角马工程)发起人Richard M. Stallman编写
    Emacs里面的"macs"代表宏
    能被用来读邮件、新闻组,甚至上网冲浪
    购置功能:
    自动缩进
    编译选项
    括号匹配
    HTML语法检查
    拼写检查
    多文件缓冲
    无限次撤消
    分屏编辑
    修正控制
  
59. vi全屏幕文本编辑器
    (图略)

60. 调用vi
    vi 文件名            打开或新建一个文件
    vi                  打开一个新的以后命名的文件
    view 文件名          以只读方式打开一个文件

61. 位置
    向上  k
    向下  j
    向左  h
    向右  l
    注:▲ 均指控制光标

62. 输入
    i    在光标当前位置插入
    a    在光标所在位置后插入
    l    在行头插入
    A    在行尾插入
    o    在光标所在行下插入一空行
    O    在光标所在行上插入一空行
    <Esc>  退出插入状态

63. 删除文本
    x    删除一个字符
    dw    删除当前词
    3dw    删除三个词
    dd    删除当前行
    5dd    删除五行
    :5,10d

64. 撤消和更改文本
    r    替换一个字符
    cw    替换一个单词
    clearcase/" target="_blank" >cc    替换一行
    C    替换从光标至行尾
    J    把当前行和下一行连起来
    u    废除刚才的编辑操作(即undo)
    ~    改变大小写

65. 复制和粘贴文本
    yy    拷贝行(或Y)
    yw    拷贝词
    p    当前行下粘贴
    P    当前行上粘贴
    :1,2co3 拷贝行1,行2在行3之后
    :4,5m6 移动行4,行5在行6之后

66. 保存和退出文件
    :w    存盘
    :w    新文件存成新文件
    :wq    存盘退出vi(或ZZ,或:x)
    :q!    强行退出不存盘

67. 高级编辑选项
    :set nu  显示行代码(:set nonu 隐藏行号)
    :(number)  光标停在指定行,如:21或21G
    G   到文件尾(1G到文件头)
    /串   从当前行往下查找
    ?串   从当前行往上查找
    n   查找继续
    :1,$s/旧串/新串/g 替换全文(或:%s/旧串/新串/g)
    :r<文件名>  在光标所在位置插入另一个文件

68. 练习
    (略)

69. 在Unix上找东西
    /bin,/sbin,/usr/sbin,/usr/local/bin...

70. which
    在你的寻找路径基础上显示通向一个可访问的命令的路径名
    如果该路径名无法显示或不正确,则按照你的要求,修改路径变量
    $which vi

71. whereis
    寻找所有系统中经常被运行的文件所在的目录
    寻找所有存放需要的命令的目录,包括适当的说明页
    /usr/ucb/whereis
    $whereis vi

72. whatis
    显示一个单行的关键字的摘要
    使用/usr/share/man/windex数据库,由命令catman建立。
    $whatis vi

73. id
    显示符合有效用户ID的用户名称
    id [选项]

74. 查找人们
    显示关于登录到本地系统的所有当前用户的信息
    who
    w
    who am i命令是显示关于你真实用户ID的信息
    who am i
    whoami命令只显示有效用户的登录名称
    whoami

75. users
    显示一个登录用户的简表
    users

76. find
    寻找基于指定标准的文件,然后对匹配的文件执行一个命令
    find 路径 表达式 [动作]
    $find / -name perl
    $find . -name \*.txt -print
    $find /export/home -mtime 10 -print
    $find /etc -user 0 -size + 400 -print
    $find ~-perm 777 > holes
    $find /export/home -type f -atime +365 -exec rm {}\;
    $find /export/home/html -name "*.html" -print | xargs\
    perl -p -i.bak -e"s/Copyright 2002/Copyright 2003/g;"

77. grep
    寻找一个包含有一个特定的文本字符串的文件,并把所有包含该部分的行打印到屏幕上
    大小写敏感
    grep [选项] 字符串 文件名
    -i    当搜索时忽略字符串的大小写
    -v    寻找所有不匹配字符串的行
    $grep root/etc/passwd
    $ls -la | grep -i 'Sep 1'

78. wc
    显示一个文件中行、单词或字符的数目
    wc [option] (一个或多个)文件名
    -l    算行数
    -w    算单词数
    -C    算字符数
    $grep "\" ~/docs/new*.txt | wc -l
   
79. diff
    寻找文本文件之间的差别
 diff [选项] 文件1 文件2

80. df和du
    df    显示空闲的磁盘块和文件数目
 $df -k
 du    统计磁盘利用率
 $du -sk*

81. ps
    显示当前在系统运行的进程
 /usr/bin/ps [选项]
 -e    显示每个现在运行的进程
 -f    生成一个完全的列表
 -U uidlist    谁的真实用户ID或登录名字被
 给出
 $ps -e | grep lp
 $pgrep -l lp
 /usr/ucb/ps -auwx
 prstat

82. kill
    结束你无法正常方式退出的不想要的命令处理
 kill [信号] 进程号
 $kill 12932
 $kill -9 12418
 $sleep 100&
 $pkill sleep▲
 注:▲ 休眠,暂停进程,一会儿(一般以毫秒为单位)继续。

83. 作业控制
    能够同时执行数个作业
    命令                     值
    jobs                    显示当前正在运行的作业
    fg %n                   在前台运行一个作业  
    bg %n                   在后台运行一个作业  
    kill 作业ID %n           放弃指定的后台作业,必须是指定的
    Control -c              取消前台作业
    Control -z              挂起前台作业
    stop                    挂起后台作业
    $/usr/open*/bin/cmdtool&

84. 网络基础
    (插图略)

85. 客户机-服务器
    分布式处理-允许远程访问
    站点-网络上的一台计算机系统
    网络-允许在机器间交换信息
        -局域网(LAN)-覆盖一个小区域
 -广域网(WAN)-跨度几千英里
    服务器-通过网络提供资源给客户机
    客户机-使用来自网络上的服务器的服务
    命名服务-网络上普通用户和组的站点列表,比如DNS服务

86. 网络模型
    (图略)
    国际标准组织ISO/OSI七层模型         五层TCP/IP网络模型
    应用层                            应用层
    表示层
    会话层
    传输层                            传输层
    网络层                            因特网
    数据链路层                         网络接口
    物理层                            硬件

87. 普通协议和应用
    TCP/IP层                         TCP/IP协议和应用
    应用层                           NFS,NIS+,DNS,SMIP,DHCP,SNMP,HTTP,RPC,RIP,rlogin,telnet,和ftp
    传输层                           TCP和UDP
    因特网                           IP,ARP,RARP和ICMP
    网络接口                         以太网,ATM,FDDI和PPP

88. 网络寻址
    查询站点名
    /etc/nodename
    /etc/hosts
    /etc/hostname.hme0
    $ 站点名
    输入数字、子网掩码和默认网关
    /etc/hosts
    /etc/netmasks
    /etc/defaultrouter
    官方对私有IP地址
    192.168.0.0-192.168.255.255

89. 网络服务
    因特网特务后台(inetd)
    /etc/inet/inetd.conf
    #pkill -HUP inetd
    关闭不需要的服务
    端口号
    /etc/services

90. 重要的文件和工具
    #ping -s host2
    #ifconfig -a
    #netstat -rn
    #rusers -l tarenalab2
    #finger user1@tarenadb
    #traceroute www.sina.com.cn

91. telnet
    远程登录服务器模拟一个终端允许你连接到并工作在一个远方的系统上
    使用TCP/IP连接到其它系统
    telnet 站点名 [端口号]

92. rlogin
    在其它工作站上建立一个远程登录会话
    rlogin 站点名

93. ftp
    为了下载文件建立的服务器和站点,有时供应一个匿名ftp帐号
    ftp 192.168.0.23
 Name: [用户名]
 Password: [用户的密码]
    命令:
 cd & lcd
 dir
 bye
 bin & asc
 get & put
 mget & mput

94. mailx
    发送和接收电子邮件消息
    mailx
    mailx openlab@tarenalab3
    命令:
 delete  删除消息
 header  打印动态消息头页面
 help  打印这个帮助消息
 mail user 给指定用户发信
 next  到达并打出下一条消息
 print  打印消息
 quit  退出保留未读消息
 reply  回复消息(仅)给作者
 undelete 恢复删除的信息

95. 用户通讯程序
    write
 mesg -y|-n
    wall
    talk

96. 外壳脚本
    脚本1:时间同步
    1. vi /tmp/timesync
  #!bin/sh
  /usr/bin/rdate -s ben.cs.wisc.edu
    2. chmod +x /tmp/timesync
    3. crontab -e
  #update system clock daily
  0 2 *** /tmp/timesync

97. 脚本2:lcf(小写文件名)
    #!/bin/sh
    #将任何有大写字符的文件名小写
    #
    for old file in $*
    do
 if [-f $oldfile]
 then
 lcfile=`echo $oldfile | tr "[A-Z]""[a-z]"
  if[$oldfile != $lcfile]
 then
  mv -i $oldfile $lcfile
  fi
 fi
    done

98. 设定初始化文件

99. 环境变量
    SunOS 5.x 系统软件提供了若干默认环境变量其值可以定制
    临时改变环境变量在命令行,只影响当前外壳
    通过更改初始化文件可以永久修改环境变量

100. 初始化文件概述
     初始化文件包含当外壳开始时执行的命令和变量设置
     两级:
 系统通行-放在/etc文件夹里
 用户指定-放在用户自家文件夹里
     外壳 系统通行(先读)     用户指定(后读)
     Bourne 1./etc/profile     2.$HOME/.profile
     Korn 1./etc/profile     2.$HOME/.profile
                                      EMV=$HOME/.kshrc;export ENV
        3.$HOME/.kshrc
     C  1./etc/profile     2.$HOME/.login
        3.$HOME/.cshrc
        4.$HOME/.logout
       
101. 初始化文件的模板
     /etc/skel/local.profile
     /etc/skel/local.login
     /etc/skel/local.cshrc
    
102. 初始化文件的内容
     设置默认文件新建许可
     设置环境变量
     设置默认提示
     为默认的命令路径设置命令路径
     为默认的终端类型设置变量TERM
     帮你检查邮件
     设立用户命令
    
103. dtprofile    
     CDE的终端设置
     标准的系统通行的代表
     当用户第一次登录到CDE的时候被创建在用户本家的目录里。
    
104. 外壳转换
     ksh  调用Korn Shell     
     sh   调用Bourne Shell     
     ksh  调用C Shell
    
105. 环境变量
   setenv 变量 值
   setenv OPENWINHOME /usr/openwin          
  
106. 外壳中的引用
   %echo $PATH
   %setenv WTO `uname -n`
   %echo .$WTO
     %echo "$WTO"
     %echo '$WTO'
     %echo \$WTO
    
107. 路径
   set path=(... ... ...)    
   set path=($path pathname...)
  
108. 历史
     显示以前在C Shell输入的命令到屏幕
     set history=30       
     %history
     %history 5
     %!n
     %!!
     %^e^d
    
109. 别名
     一个长命令的短小些的替代品     
     为多个命令新建一个单行命令
     存在命令的新建变体
     改变一个命令组
     alias 别名 值
     %alias h history 
     %alias c clear
     %alias home 'cd;ls' 
     %alias ls 'ls -l'
     %alias copy 'cp -i'
     %alias       显示当前的别名列表
     %unalias copy   取消指定别名
    
110. 用户提示符
   set prompt=值
   set prompt="`hostname`:$cwd %"
  
111. 一个.cshrc例子
   #echo "Starting .cshrc..."    
   umask 022
   #
  
   setenv MANPATH "/usr/share/man:/usr/man:/usr/share/catman:/usr/catman"
   setenv CC /usr/local/bin/gcc
   setenv CCC /usr/local/bin/g++
   setenv ORACLE_BASE /tarenaora
   setenv ORACLE_HOME ${ORACLE_BASE}/lib
   set path=(${ORACLE_HOME}/bin /usr/j2se/bin /urs/bin /usr/local/bin /usr/ucb /usr/ccs/bin /etc.)
   setenv JAVA_HOME /usr/j2se
   setenv EDITOR vi
  
112. #c shell variables
   #home   - Home directory
   #history  - Size of history list.
   #mail   - Check for new mail, msgs every 360 seconds
   #prompt  - System prompt(machine name + event No.)
   set history=100
   set prompt="`hostname`! %"
   set mail=(360 /usr/spool/mail/$USER /usr/msgs)
   #
   alias ll "ls -l | more"
   alias ckmail "rsh openlab Mail -H"
   alias make /usr/bin/make
  
★好书推荐:

     不少UNIX类书籍一般成书时间比较早,但UNIX是一项久经考验的成熟技术,
        精华是不会受时间变迁而衰减的,反而越老的书中越可能淘到宝贝。
       
      Unix宝典(第二版) UNIX Bible,Second Edition
     
   美国IDG宝典系列确实经典,遗憾的是很少有人问津,可能是这类书名太多,
   以至于人们都怕了。其实我一直在看,这个系列电子工业制作得还是不错的。
   这本书从命令解释、模块构建、内核及文件系统、网络与ISP连接组建、家用
   及工作站、服务器安装与管理、系统管理高级工具、故障预防及灾难恢复、
   安全及前期管理、文件传输、电子邮件、DNS及Web服务器等一路讲来,让读
   者对UNIX操作系统有总体认识的同时,也能学到许多实际应用。
  
      UNIX环境高级编程 Advanced Programming in the UNIX Environment
     
     关于这本书,我不想再多说了,绝对的好书,如果你想在UNIX系统下深度挖掘、
     成为编程高手,那么它将是案头必备!翻译得太烂、建议看原版。
    
        UNIX系统管理实用教程 UNIX System Administration A Beginner's Guide
       
     由于是面向管理员的,所以各种网络协议、系统维护等知识,还有命令参数等概念和操作
     讲得很多很透,书如其名,颇具实用性。当然了,书中偏重点在Sun Solaris上,另外也
     时常和Linux对比。
    
        UNIX系统管理技术手册(第三版) UNIX System Administration Handbook(Third Edition)
       
   惊讶于本书作者的写作意图是要将一个完全不懂UNIX甚至操作系统概念的人逐步培养成一
   代卓越的系统专家,书中内容覆盖了UNIX/Linux系统的各个主流版本(包括FreeBSD、RedHat)、
   各个方面、面向各级水平的读者,由浅入深,其知识面及详尽程度是少有的,无论是开发者还
   是管理员,手边常翻,受益匪浅。
  
      UNIX程序设计艺术(影印版) The art of UNIX programming
     
   如果你有生之年看过除了这一本之外所有的UNIX书,上帝都会为你遗憾。这是网友的书评。
   大师巨著,不用多说了吧,推荐阅读(且目前也只有)影印版,期待高质量翻译版。
  
      UNIX用户手册(第二版) UNIX User`s Handbook
     
   以惠普公司的HP-UX为重点,放在其它UNIX系统上也是能用的。第二版比我买的第一版更加详
   尽、增添了200多页(Unix环境下C/C++设计、脚本编程、外壳介绍方面)内容,非常好。
  
      FreeBSD技术内幕 FreeBSD Unleashed

    您知道吗?华纳兄弟公司出品的电影《黑客帝国》所采用的特殊效果就是在由多台FreeBSD系
    统所组成的群集上实现的,对于这款当前最红的、由著名的加州大学伯克利分校的技术狂人们
    开发的、完全开源免费、获得Yahoo、Google等众多大牌网站青睐的UNIX操作系统,想了解关于
    它的一切及获得它(随书附赠光盘二张,分别是操作系统和相关资源)体验使用的乐趣,必读此
    书,它继承了SAMS图书一贯的品质。     

       

    
       
  
  
  
  
  
  
    

原文转自:http://www.ltesting.net