Linux系统学习

  • 一、抓取日志中关键行并写如到log.sh文件中
    echo "#######reading content for pageNo=##########" >> log.sh
    find . -name "reportexport.log" | xargs grep "reading content for pageNo=" >> log.sh

    echo "###########Ending export excel:PID=############" >> log.sh
    find . -name "reportexport.log" | xargs grep "Ending export excel:PID=" >> log.sh

    echo "############export excel pid: =##############" >> log.sh
    find . -name "reportexport.log" | xargs grep "export excel pid: =" >> log.sh

    二、结果
    ###################Ending export excel:PID=##################
    2012-09-10 10:48:08,737  INFO [easytrade.reportexport.ReportProcessor@pool-1-thread-10] -    -->easytrade.reportexport.ReportProcessor.run(ReportProcessor.java:280)
    ###################export excel pid: =##################
    2012-09-10 10:48:09,125  INFO [easytrade.reportexport.ReportProcessor@TP-Processor19] -    -->easytrade.reportexport.ReportProcessor.destory(ReportProcessor.java:453)
    三、抓取关键字段,取值
    字段:值 格式,这个还需要研究一下

    查看(38) 评论(0) 收藏 分享 管理

  • liunx系统管理【转账】

    2012-08-17 14:30:48

    http://blog.csdn.net/maidanm/article/details/7845685

    查看(6) 评论(0) 收藏 分享 管理

  • 常见liunx命令(个人总结)

    2012-05-22 09:43:05


    本文档适合初初学者,通过本文档,可以简单用命令操作liunx系统;

    一.系统基础操作命令:

    1、cd命令:进入某个目录

    cd /usr/local/tomcat/   --进入tomcat目录下,请注意区分 usr前面是否有‘/;

    2、ls / ll / ls -a 命令:查看当前目录下有哪些文件

    上述命令自己试一下就知道区别了,很简单的

    3、mkdir命令:新建目录

    mkdir /usr/local/test   --/usr/local/目录下新建test目录

    cd /usr/local/   mkdir test1   --进到local目录下,在当前目录下新建test1 目录

    4、touch命令:新建文件

    touch /usr/local/test/file.sh --/usr/local/test目录下新建file.sh文件

    5、cp命令:复制目录或者文件

    cp /usr/local/test/file.sh  /usr/local/test1/  --把文件file.shtest目录复制到test1目录下

    6、mv命令:复制目录或者文件

    mv  /usr/local/test/file.sh  /usr/local/test1/  --把文件file.shtest目录移动到test1目录下

    7...

    二.文档基本操作命令

    1、打开一个文件

    vi /usr/local/test/file.sh

    2、移动光标

    向上移动鼠标光标

    向下移动鼠标光标

    向左移动鼠标光标

    向右移动鼠标光标

    3、编辑文档

    在光标所在字符前面开始编辑;在光标所在字符后面开始编辑;新起一行编辑。

    ESC:退出编辑状态;在退出编辑状态情况下可以做下面几种操作

    :q 不保存退出文档;  :q!不保存强制退出文档;

    :wq 保存退出文档;  :wq!保存强制退出文档;

    还原编辑过的内容

    在文档中查询

    /test   在文档中查询test字符串   按向下查找相同的字符串

    PSvi下不支持小键盘

    鼠标光标移动也可以用键盘上移动键

    4、对于时时变化的文档,我们要查看最新的内容可以用下面的命令

    tailf /usr/local/tomcat/log/log.log

    5、echo命令

    echo "" > /usr/local/tomcat/log/log.log  --清空文档内容,在清空历史日志信息比较常用

    echo "this is new low" > /usr/local/tomcat/log/log.log  --log.log文档中写人:this is new low内容

    其他,比如在文件特定地方追加内容,自己百度一下

    三.服务器相关命令

    tomcat服务为例,讲几个常见的命令:

    1、查看tomcat是否启动:

    ps -ef |grep tomcat  或者 ps -ef |grep java   或者 ps -aux |grep tomcat

    2、启动tomcat

    /usr/local/tomcat/bin/startup.sh &  加上“&”表示从后台启动

    3、停止tomcat

    一般是直接kill掉进程:kill -9 *** ; "***" 可以通过ps -ef |grep tomcat 查到的进程号

    4、其他后续完善

    学会上面命令,再加上举一反三,估计日常对liunx的基础操作就差不多了,下一讲简单介绍各种服务的安装等。

    查看(233) 评论(4) 收藏 分享 管理

  • 【Linux】vim的用法

    2012-02-08 16:45:11

        在linux下写ns代码以及tcl测试脚本,观察trace文件等都少不了用vim。vim是一个高效的浏览工具。有很多使用技巧,在 此,转载一个用法简介。

    =========================================


    先稍为介绍一下 vim. vi 是 unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都
    有. vi 有各种变种, 在不同的机器上常用不同的变种软件. 其中 vim 比较好用也用得比较
    广泛. vim 是 Vi IMproved 的缩写, 表示更好的 vi. 我个人觉得它是非常好的编辑器(为
    了避免 Emacs 粉丝挑眼, 就不说最好了). 没用过的也建议试试看, 当然 vim 对编写文本
    文件很方便好用, 比如编写程序, html文档等等, 却不能用来编写 word 文档.

    关于 vim 的安装, 基本使用方法等网络上能搜出许多, 就不在这里罗嗦了, 要是对 vim 有
    兴趣, 那就看看这里(中文文档): http://vcd.gro.clinux.org/

    本 文就说些其中比较有用, 比较常用的命令, 若能熟练运用这些命令, 那么会发现编辑文件
    很舒服.

    说明:
    以下的例子中 xxx 表示在命令模式下输入 xxx 并回车
    以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车
    小括号中的命令表示相关命 令.
    在编辑模式或可视模式下输入的命令会另外注明.

     

     

    1. 查找

      /xxx(?xxx)      表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示
                      向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.
                      一般来说是区分大小写的, 要想不区分大小写, 那得先输入
                      :set ignorecase
                      查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找.

      *(#)            当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的
                      下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方
                      向查找.

      g*(g#)          此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而
                      是匹配包含该单词的所有字符串.

      gd              本命令查找与光标所在单词相匹配的单词, 并将光标停留在文档的非
                      注释段中第一次出现这个单词的地方.

      %               本命令查找与光标所在处相匹配的反括号, 包括 () [] {}

      f(F)x           本命令表示在光标所在行进行查找, 查找光标右(左)方第一个x字符.
                      找到后:
                      输入 ; 表示继续往下找
                      输入 , 表示反方向查找

     

     

    2. 快速移动光标
       在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
    位和编辑. 因此能更快一点移动光标是很有用的.

      w(e)            移动光标到下一个单词.
      b               移动光标到上一个单词.

      0               移动光标到本行最开头.
      ^               移动光标到本行最开头的字符处.
      $               移动光标到本行结尾处.

      H               移动光标到屏幕的首行.
      M               移动光标到屏幕的中间一行.
      L               移动光标到屏幕的尾行.
      gg              移动光标到文档首行.
      G               移动光标到文档尾行.
      c-f             (即 ctrl 键与 f 键一同按下) 本命令即 page down.
      c-b             (即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up.

      ''              此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查
                      找到某个单词后, 再输入此命令则回到上次停留的位置.

      '.              此命令相当好使, 它移动光标到上一次的修改行.

      `.              此命令相当强大, 它移动光标到上一次的修改点.

     

     

     

    3. 拷贝, 删除与粘贴
       在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴. 其中拷贝与删除是与光标移动命令
    结合的, 看几个例子就能够明白了.

      yw              表示拷贝从当前光标到光标所在单词结尾的内容.
      dw              表示删除从当前光标到光标所在单词结尾的内容.
      y0              表示拷贝从当前光标到光标所在行首的内容.
      d0              表示删除从当前光标到光标所在行首的内容.
      y$              表示拷贝从当前光标到光标所在行尾的内容.
      d$              表示删除从当前光标到光标所在行尾的内容.
      yfa             表示拷贝从当前光标到光标后面的第一个a字符之间的内容.
      dfa             表示删除从当前光标到光标后面的第一个a字符之间的内容.

      特殊地:
      yy              表示拷贝光标所在行.
      dd              表示删除光标所在行.
      D               表示删除从当前光标到光标所在行尾的内容.

      关于拷贝, 删除和粘贴的复杂用法与寄存器有关, 可以自行查询.

     

     

     

    4. 数字与命令
       在 vi 中数字与命令结合往往表示重复进行此命令, 若在扩展模式的开头出现则表示行
    号定位. 如:

      5fx             表示查找光标后第 5 个 x 字符.

      5w(e)           移动光标到下五个单词.

      5yy             表示拷贝光标以下 5 行.
      5dd             表示删除光标以下 5 行.

      y2fa            表示拷贝从当前光标到光标后面的第二个a字符之间的内容.

      :12,24y         表示拷贝第12行到第24行之间的内容.
      :12,y           表示拷贝第12行到光标所在行之间的内容.
      :,24y           表示拷贝光标所在行到第24行之间的内容. 删除类似.

     

     

     

    5. 快速输入字符
       在 vi 中, 不要求你输入每一个字符, 可以有很多种方法快速输入一些字符.
       使用 linux/unix 的同学一定有一个经验, 在命令行下输入命令时敲入头几个字符再按
    TAB 系统就会自动将剩下的字符补齐, 假如有多个匹配则会打印出来. 这就是著名的命令
    补齐(其实windows中也有文件名补齐功能). vi 中有许多的字符串补齐命令, 非常方便.

      c-p(c-n)        在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜
                      索开头与其匹配的单词并补齐, 不断输入此命令则循环查找. 此命令
                      会在所有在这个 vim 程序中打开的文件中进行匹配.

      c-x-l           在编辑模式中, 此命令快速补齐整行内容, 但是仅在本窗口中出现的
                      文档中进行匹配.

      c-x-f           在编辑模式中, 这个命令表示补齐文件名. 如输入:
                      /usr/local/tom 后再输入此命令则它会自动匹配出:
                      /usr/local/tomcat/

      abbr            即缩写. 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个
                      字符串. 比如编写java文件的常常输入 System.out.println, 这很
                      是麻烦, 所以应该用缩写来减少敲字. 可以这么做:
                      :abbr sprt System.out.println
                      以后在输入sprt后再输入其他非字母符号, 它就会自动扩展为System.
                      out.println

     

     

     

    6. 替换
       替换是 vi 的强项, 因为可以用正规表达式来匹配字符串.以下提供几个例子.

      :s/aa/bb/g      将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb
      :s/\/bb/g  将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词
      :%s/aa/bb/g     将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb
      :12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb
      :12,23s/^/#/    将从12行到23行的行首加入 # 字符
      :%s= *$==       将所有行尾多余的空格删除
      :g/^\s*$/d       将所有不包含字符(空格也不包含)的空行删除.

     

     

     

    7. 多文件编辑
       在一个 vim 程序中打开很多文件进行编辑是挺方便的.

      :sp(:vsp) 文件名    vim 将分割出一个横(纵)向窗口, 并在该窗口中打开新文件.
                          从 vim6.0 开始, 文件名可以是一个目录的名称, 这样, vim 会
                          把该目录打开并显示文件列表, 在文件名上按回车则在本窗口打
                          开该文件, 若输入 O 则在新窗口中打开该文件, 输入 ? 可以看
                          到帮助信息.

      :e 文件名           vim 将在原窗口中打开新的文件, 若旧文件编辑过, 会要求保存.

      c-w-w               vim 分割了好几个窗口怎么办? 输入此命令可以将光标循环定位
                          到各个窗口之中.

      :ls                 此命令查看本 vim 程序已经打开了多少个文件, 在屏幕的最下方
                          会显示出如下数据:
                          1   %a      "usevim.html"         行 162
                          2   #       "xxxxxx.html"         行 0

                          其中:
                          1               表示打开的文件序号, 这个序号很有用处.
                          %a              表示文件代号, % 表示当前编辑的文件,
                                          # 表示上次编辑的文件
                          "usevim.html"   表示文件名.
                          行 162          表示光标位置.

      :b 序号(代号)       此命令将指定序号(代号)的文件在本窗口打开, 其中的序号(代号)
                          就是用 :ls 命令看到的.

      :set diff           此命令用于比较两个文件, 可以用
                          :vsp filename
                          命令打开另一个文件, 然后在每个文件窗口中输入此命令,就能看
                          到效果了.

     

     

     

    8. 宏替换
       vi 不仅可以用 abbr 来替换文字, 也可以进行命令的宏定义. 有些命令输起来很费劲,
    因此我把它们定义到 - 上, 这样就很方便了.这些配置可以预先写到 ~/.vimrc
    (windows 下为 $VIM/_vimrc) 中, 写进去的时候不用写前面的冒号.

      :nmap :nohls              取消被搜索字串的高亮
      :nmap w                  命令模式下转移光标到不同窗口
      :imap                输入模式下运行
      :nmap :%s= *$==          删除所有行尾多余的空格.
      :imap              同上

      :java 中: (注, 这里为什么说 java 中, 因为以下定义对其他文件格式不起作用, 下文
                会说到如何实现这一点)
      :nmap :comp javac:mak -d . %
           此命令用 javac 编译 java 文件, 它会自动将光标定位到出错点. 不过这需要定
    义一个 javac.vim 文件在 $VIM/compiler 下, 在 javac.vim 里面只有两行字:
              setlocal makeprg=javac
              setlocal errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#

      :nmap :comp ant:mak
           此命令用 ant 编译 java 文件, 它会自动将光标定位到出错点. 一般来说, 安装
           vim 后已经有了compiler/ant.vim文件, 因此这个命令可以直接使用. 但是需要
           在当前目录下有 build.xml 文件, 当然还必须安装 ant 才行.

      :nmap :cl                 此命令用于查看所有的编译错误.
      :imap

      :nmap :cc                 此命令用于查看当前的编译错误.
      :imap

      :nmap :cn                 此命令用于跳到下一个出错位置.
      :imap

      :nmap :cp                 此命令用于跳到上一个出错位置.
      :imap

      :nmap :JavaBrowser
           此命令用于在窗口左部分割出一个新窗口, 里面的内容是 java 的资源树, 包括
           本文件中出现的类, 类的成员变量及成员方法, 就好像 JCreator 表现的那样.
           在这个窗口中输入 ? 会看到帮助. 嘿嘿, 很好用, 不过需要 ctags 支持.
      :imap

     

     

     

    9. TAB
       TAB 就是制表符, 单独拿出来做一节是因为这个东西确实很有用.

       <<                  输入此命令则光标所在行向左移动一个 tab.
       >>                  输入此命令则光标所在行向右移动一个 tab.
       5>>                 输入此命令则光标后 5 行向右移动一个 tab.
       :12,24>             此命令将12行到14行的数据都向右移动一个 tab.
       :12,24>>            此命令将12行到14行的数据都向右移动两个 tab.

       那么如何定义 tab 的大小呢? 有人愿意使用 8 个空格位, 有人用4个, 有的用2个.
       有的人希望 tab 完全用空格代替, 也有的人希望 tab 就是 tab. 没关系, vim 能
       帮助你.以下的设置一般也都先写入配置文件中, 免得老敲.

       :set shiftwidth=4   设置自动缩进 4 个空格, 当然要设自动缩进先.
       :set sts=4          即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.
       :set tabstop=4      实际的 tab 即为 4 个空格, 而不是缺省的 8 个.
       :set expandtab      在输入 tab 后, vim 用恰当的空格来填充这个 tab.

     

     

     

    10. autocmd
        这个命令十分的强大, 可以用这个命令实现对不同的文件格式应用不同的配置; 可以
    在新建文件时自动添加上版权声明等等. 这些命令一般定义在 ~/.vimrc 这样的配置文件
    里面. 由于他很强大, 所以我不能给出很具体的说明, 只能举几个例子, 详细的请看帮助.

      :autocmd!               删除所有之前的自动命令.
      autocmd FileType        java  source ~/.vim/files/java.vim
      autocmd FileType        java  source ~/.vim/files/jcommenter.vim
        以上两条命令让我在打开 java 文件时才应用后面提到的两个配置文件.
      autocmd BufNewFile      *.java  0r ~/.vim/files/skeletons/java.skel
        以上这条命令让我在新建 java 文件时自动加入 java.skel 文件的内容.
      autocmd BufNewFile      *.java  normal gnp
        以上这条命令让我在新建 java 文件时自动运行 gnp 命令, 这个命令进行一些特殊化
        处理, 比如将新 java 文件中的 __date__ 替换成今天的日期什么的.

     

     

     

    11. 常用脚本
        在 vim.sf.net 你可以发现很多脚本(script), 这些脚本常常有让你意想不到的作用.
    我常用的有:

        jcommenter.vim        自动加入 javadoc 风格的注释.
        JBrowser.vim          类资源浏览. C, C++ 等可以用 Tlist

        还有许多有用的, 比如 checkstyle.vim 可以检验你的编程风格, jad.vim 可以直接
        反编译 .class 文件等等.

     

     

     

    12. 常用配置
        在~/.vimrc 配置文件中你常常需要一些个性化配置. 比如上面写的一些宏定义, 一些
    autocmd 定义等等. 比如:

        set suffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc
            这样在vim中打开文件时, 按 tab 键补齐文件名时它会忽略上述文件.

        set nu          显示行号
        set ai          设置自动缩进
        map Y y$        让 Y 和 D 一样, 要不然 Y 的本意和 yy 一样.

     

     

     

    13. 其他
        还有许多有意思的命令, 记录在这里免得忘记.

        .                                                                     重复上次编辑命令.
        :g/^/exec "s/^/".strpart(line(".")." ", 0, 4)     在行首插入行号。
        :runtime! syntax/2html.vim                            转换 txt 成 html, 会按照你的颜色配置来转换

    查看(81) 评论(0) 收藏 分享 管理

  • Linux 硬件信息查看的命令

    2011-12-29 11:34:19

    Linux

    内存: cat /proc/meminfo
    cpu:  cat /proc/cpuinfo
    硬盘: df -h -T(no device的设备看不到)
          fdisk -l可以在redhat9.0中看; redhat企业版不行.
    还有几个命令可以看很多硬件设备的信息.
    lspci -v
    dmidecode 
    dmesg


    Solaris
    网卡速度:  dmesg |grep link 
    CPU频率:   psrinfo -v                    或者mpstat
    cpu\内存等:prtdiag -v (大部分信息全部列出)  需要先进入/usr/platform/sun4u/sbin
    硬盘:      iostat -E

    查看(38) 评论(0) 收藏 分享 管理

  • linux下 快速搭建appach +tomcat集群

    2011-03-10 18:50:34

        测试环境快速搭建集群,主要操作步骤:
        搭建的集群是apache+tomcat(tomcat1、tomcat2)
    1、安装apache 、 tomcat 过程略

    2、tomcat配置
     修改tomcat1--server.xml>
        找到  修改为:
         
     
     同理,修改 修改tomcat2--server.xml>

        找到  修改为:
         

      1)此处注意tomcat端口冲突问题:
      2)jvmRoute="××××" 参数配置:这是实现负载均衡的关键一步,通过修改Route属性,使得apache把tomcat关联起来

    3、apache配置
      在conf/extra/httpd-vhosts.conf中增加虚拟机,示例代码如下:
          ServerAdmin [email protected]
         ProxyRequests Off

         Proxypass /server-status !
         Proxypass /balancer-manager !
         Proxypass / balancer://proxy/ stickysession=JSESSIONID
        
             Order Deny,Allow
             Allow from all
             BalancerMember http://10.10.90.98:8085  loadfactor=1 disablereuse=On route=tomcatc1
             BalancerMember http://10.10.90.98:8086  loadfactor=3 disablereuse=On route=tomcat2
        
      其中, loadfactor参数设置负载比例:



    4、 后台监控 
    我们如何知道某个节点负载多少,响应时间多久,服务是否正常呢?Apache提供了负载均衡监控平台: http://localhost/balancer-manager 。但是,这个服务默认是不存在。我们需要配置:
    1.   
    2.         SetHandler balancer-manager  
    3.         Order Deny,Allow  
    4.         #Deny from all  
    5.         Allow from localhost ip6-localhost  
    6.  

    5、session绑定
    配置参数:
     stickySession=JSESSIONID

    说明:
        每次请求都按照负载均衡配置的节点次序依次请求到不同的Tomcat上。尤其是当我们通过 jvmRoute 和 route 做了绑定之后,信息更加准确。但是, 仔细观察,每次请求的SessionID都是不一样! 对于纯Web应用,尤其是依靠SessionID区分唯一用户的应用,这将是一场噩梦——解决了服务器压力均衡问题,却带来了SessionID不唯一问题!这就需要SessionID绑定,或者说叫做“会话复制”。 
        
    stickySession 粘性会话,根据这一属性,浏览器将通过cookie绑定SeesionID。如果这个时候再次访问 http://localhost/zlex ,你会发现,页面不会来回跳转了! 

    sticky是什么?

    引用
    sticky模式 
    利用负载均衡器的sticky模式的方式把所有同一session的请求都发送到相同的Tomcat节点。这样不同用户的请求就被平均分配到集群 中各个tomcat节点上,实现负载均衡的能力。这样做的缺点是没有灾难恢复的能力。一旦一个节点发生故障,这个节点上所有的session信息全部丢 失; 
    同一用户同一session只和一个webServer交互,一旦这个webserver发生故障,本次session将丢失,用户不能继续使用 !
    6、session 复制
        Session复制,主要是指集群环境下,多台应用服务器之间同步Session,确保Session保持一致,且Session中的内容保持一致,对外透明——看起来就像是一台应用服务器! 
    如果其中一台服务器发生故障,根据负载均衡的原理,Apache会遍历寻找可用节点,分发请求。与此同时,当前用户Session不能发生数据丢失,其余各节点服务器应保证用户Session数据同步。
       
    部分文字转自: http://calvinliu.javaeye.com/blog/748459
     

    查看(129) 评论(0) 收藏 分享 管理

  • liunx 任务作业

    2010-12-07 13:13:48

      任务调度使用crontab
    1、设置任务
     crontab -e 
    2、每隔一定时间去执行 
      date > /home/mydate1
      1)、希望,每天凌晨2:00去执行 date >>/home/mydate2
       可以在crontab -e 中加入
       0 2 * * * date >> /home/mydate
      2)、希望,每分去执行
        可以在crontab -e 中加入
        * * * * * date >> /home/mydate
    3,怎么去调度多个任务?
     1),可以直接在crontab -e 中添加
     2),可以吧所有的任务,写入到一个可执行文件(shell编程)
       vi mytask.sh  
         date >>/home/mydata3
         cp /home/mydata3 /root/
     3),加x(执行)权限
         chmod 744 mytask.sh
     4),设置任务 
       crontab -e
          * * * * * /root/mytask.sh 
    4、终止任务
        crontab -r  
    5、列出当前有那些调度任务
        crontab -l  
    6、“*” 整数取值范围及意义是
    0~59 表示分 
    1~23 表示小时 
    1~31 表示日 
    1~12 表示月份 
    0~6 表示星期(其中0表示星期日) 

    查看(41) 评论(0) 收藏 分享 管理

  • RHEL5 (x64)下安装oracle11G

    2010-09-01 16:50:27

       闲来无事,在RHEL5 (x64)下安装oracle11G玩玩,下面附件具体的操作:


    查看(55) 评论(0) 收藏 分享 管理

  • samba安装成功了

    2010-08-04 16:22:35

        成功完成samba的安装,记录一下关键的步骤:
    1,安装
    tar -xvf  samba-3.4.4.tar.gz
    cd  samba-3.4.4/source3
    ./configure --prefix=/usr/local/ samba
    make 
    make install

    2,确认是否安装成功

    ----若出现以下表示安装成功
    ==============================================================
    MO files for pam_winbind are installed.
    ==============================================================
    ==============================================================
    All MO files for Samba are installed. You can use "make uninstall"
    or "make uninstallmo" to remove them.
    ==============================================================

    make installbin----若出现以下表示安装成功
    ======================================================================
    The binaries are installed. You may restore the old binaries (if there
    were any) using the command "make revert". You may uninstall the binaries
    using the command "make uninstallbin" or "make uninstall" to uninstall
    binaries, man pages and shell scripts.
    ================================================================

    3,复制文件

    cp samba-3.3.4/packaging/RHEL/setup/smb.conf /usr/local/samba/lib/smb.conf


    4,启动关闭

    启动和关闭samba
    (1)、 启动(其中&表示在后台运行)
    /usr/local/samba/sbin/smbd  start  &   
    /usr/local/samba/sbin/nmbd  start  &

    (2)、关闭
    ps -auxf |grep samba  查找samba 的进程
    效果如下:
    [root@localhost ~]# ps -auxf |grep samba 
    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ
    root     32355  0.0  0.3   4636   644 pts/2    R+   17:44   0:00          \_ grep samba
    root     32233  0.0  1.2  13420  2536 ?        Ss   17:27   0:00 /usr/local/samba/sbin/smbd start   //这条是主进程
    root     32234  0.0  0.4  13420  1012 ?        S    17:27   0:00  \_ /usr/local/samba/sbin/smbd start
    root     32335  0.0  0.6  11268  1300 ?        Ss   17:41   0:00 /usr/local/samba/sbin/winbindd
    root     32336  0.0  0.4  11268  1052 ?        S    17:41   0:00  \_ /usr/local/samba/sbin/winbindd
    杀掉: kill -9  32233  就可以杀掉了。这个比较麻烦,当然还有其他方法

    5,报错

    /usr/local/samba/sbin/smbd: error while loading shared libraries: libtalloc.so.1: cannot open shared object file: No such file or directory
    解决办法:
    ln -s /usr/local/samba/lib/libtalloc.so.1  /usr/lib/libtalloc.so.1
    ln -s /usr/local/samba/lib/libtdb.so.1  /usr/lib/libtdb.so.1
    ln -s /usr/local/samba/lib/libwbclient.so.0  /usr/lib/libwbclient.so.0

    6,配置

    详细说明:vi  /usr/local/samba/lib/smb.conf
    [global] 全局配置
        workgroup = MYHOME     ---- 指定工作组
        server string = File Server ---- 服务器的说明 
        security = share   ----安全级别: 共分3种 
                        1.share (任何用户都不需要密码,直接可以访问)
                        2.user   要提供用户名和密码才能访问
                        3.server 将用户和密码提交到另一服务器验证,如果递交失败,就 退到user安全级。 要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
    ****************匿名用户
    匿名用户,只要把security = share 修改成这样。就可以访问了。


    ----------------
    window ===打开网上邻居=====\\ip地址(比如我的: \\192.168.1.131) 如果可以访问,说明配置成功。
    -------------------

    ********************增加用户,验证用户。
    [
    常用参数:
        comment :         目录说明 
        path :             目录路径
        public             开放共享 默认为no , 如果=yes 表示无需身份验证
        browseable:        显示共享名称。
        valid users:       允许列表中的用户访问
        read only:         默认为yes,共享目录只读 。
        write able:        write able =no 与read only = yes 一样的效果
        wire list:        如果前面只读,只有在此里面的用户才有写的权利
        creat mask:       指定在共享目录里面建立文件的权限, 权限最高只能为 766
        directory mask:   指定建立目录的权限
        force user:       指定存取的用户张号
        force group:     指定用户存取组
    ]
    (1)、   增加用户:  useradd  sambashare(用户名)
    (2)、    smbpasswd  -a  sambashare(用户名)  键入回车,提示你输入密码 [必须进入: cd /usr/local/samba/bin/中]

    (3)、----------配置如下:(放在配置文件最下面)
    [sambashare]  
     comment = sambashare directory
     path = /home/sambashare
     public = no
     write list = sambashare
     valid users = @sambashare
    注释:
    (1)、如果其他用户想查看sambashare用户下的文件,只需要把valid users = @sambashare,@用户名就可以了。
    (2)、建立一个文件共享目录, 要求全部人可查看, 但每个人只能删除自己的文件, 不能删除别人。
    [public]
                comment = Public Stuff
                path = /home/forevergao/
                public = yes
                browseable = yes
                writeable = yes


    (4)、 设定public的权限, 因为samba不能做到每个人只能删除自己的文件, 不能删除别人的功能,linux设置目录Sticky bit权限. 目录设定了Sticky的权限,在这个目录下的文件只有root与文件的所有者才能删除, 别的用户可能通过设置,才能查看此用户目录下所有文件,但不能删除,只有本用户才能删除。

    *最后别忘了分配权限和新建目录

    mkdir /home/share/chenjian

    chmod  1777  /home/sambashare

    查看(258) 评论(5) 收藏 分享 管理

  • redhat as5 修改ip地址

    2010-05-24 10:22:33

    [root@redhat5]# ifconfig

    [root@ redhat5]# ifconfig eth0 192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0
    [root@ redhat5]# route add default gw 192.168.0.3 dev eth0
    [root@ redhat5]# ifconfig eth0 down
    [root@ redhat5]# ifconfig eth0 up
    [root@ redhat5]# ifconfig
    [root@ redhat5]# ping 192.168.0.1

    也可以直接改动配置文件 ifcfg-eth0
    /etc/sysconfig/network-scripts/ifcfg-eth0
    [root@ redhat5]# more /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    ON BOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.0.1
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.3

    改后要重新加载 eth0
    #ifconfig eth0 down
    #ifconfig eth0 up
    #/etc/init.d/network restart

    查看(48) 评论(0) 收藏 分享 管理

  • 手动释放缓存

    2010-05-20 08:59:17


      /proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存。操作如下:

    [root@server test]# cat /proc/sys/vm/drop_caches
    0

      首先,/proc/sys/vm/drop_caches的值,默认为0。

    [root@server test]# sync

      手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

    [root@server test]# echo 3 > /proc/sys/vm/drop_caches
    [root@server test]# cat /proc/sys/vm/drop_caches
    3

      将/proc/sys/vm/drop_caches值设为3

    [root@server test]# free -m
    total used free shared buffers cached
    Mem: 249 66 182 0 0 11
    -/+ buffers/cache: 55 194
    Swap: 511 0 511

      再来运行free命令,会发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB。那么有效的释放了buffer和cache。

      ◎ 有关/proc/sys/vm/drop_caches的用法在下面进行了说明

    /proc/sys/vm/drop_caches (since Linux 2.6.16)
    Writing to this file causes the kernel to drop clean caches,
    dentries and inodes from memory, causing that memory to become
    free.
    To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to
    free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
    to free pagecache, dentries and inodes, use echo 3 >
    /proc/sys/vm/drop_caches.
    Because this is a non-destructive operation and dirty objects
    are not freeable, the user should run sync first.

    查看(68) 评论(0) 收藏 分享 管理

  • Linux下软件安装方法

    2009-11-03 16:29:15


    对于Linux初学者来说,安装一个很小的软件恐怕都是一件很让人头疼的事,因为在Linux下安装软件不像在 Windows中那样简单。在Linux中大多数软件提供的是源代码,而不是现成的可执行文件,这就要求用户根据自己系统的实际情况和自身的需要来配置、编译源程序后,软件才能使用。多数初学者往往不知道该如何进行配置和编译就盲目地运行一些有执行属性的文件或者机械地运行“make”、“make install”之类的命令。结果呢?是软件没装成,自己急出一身汗,后果严重的还会破坏系统的稳定性。下面笔者将安装软件方面的一些规律写出来与大家分享。
    目前流行的软件包有两种比较常见的形式,一种是RPM包的形式,另一种是压缩成*.tar.gz的形式。本文将讨论这两种形式的软件包在文本环境和图形环境(X Window)下不同的安装方法。
    文本环境下的软件安装
    一、安装简便的RPM包
    RPM是RedHat Package Manager的缩写,它只能使用在安装了RPM软件的系统中,RedHat Linux和Turbo Linux中已经使用了它。这种结构的包使用起来还是很方便的,只要记住几条简单的命令和参数就可以方便地使用:
    #〉rpm [options] filename.rpm
    其中常用的options包括:
    -i: 安装软件
    -e: 卸载软件
    -q:查看软件安装的信息和状态
    -U: 升级现有软件
    例如安装软件时,可以使用如下命令:“rpm -i filename.rpm”,软件安装在什么地方、是怎么安装的都不需要用户操心,RPM可以帮助用户管理。由于RPM使用方便,很多软件都有RPM版本。如果想使用RPM形式的软件就要首先下载一个RPM管理软件。在ftp://ftp.rpm.org/pub/rpm/dist/rpm- version网站可以下载最新的版本——rpm-3.-.4.i386。该软件有RPM包和.tar.gz包两种形式,如果你的系统中已经有了RPM管理软件,你可以下载RPM形式的包来升级现有软件,否则就必须了解.tar.gz包的安装方法。
    二、安装需要编译的.tar.gz包
    由于RPM包使用的局限性(必须安装RPM),目前更多的软件使用的是源代码形式的.tar.gz包。这种软件的安装通常要经过解压缩、软件配置、软件编译及安装的过程。
    解压缩通常有两种命令方法:一种是“gunzip filename-VERSION-OS.tar.gz | tar xvf -”,它实质是两条命令“gunzip filename-VERSION-OS.tar.gz”和“tar xvf filename-VERSION-OS.tar”;另一种是“tar xzvf filename-VERSION-OS.tar.gz”。一般来说在软件解压缩后会生成一个目录filename-VERSION-OS。
    软件的配置、编译、安装是最让初学者望而生畏的事了,但笔者认为掌握一些规律还是不难的。一般来说,在解压缩生成的目录中都会有名为Readme、 Rnstall或Readme.install之类的文件。这些文件通常会对软件的功能、特性、版权许可、安装以及相关知识加以介绍,并且会提到关于安装的方法和步骤。举例来说:在apache_1.3.6的install文件中说明了如下内容(此处只列出总的条目,具体内容省略):
    Installing the Apache 1.3 HTTP server with APACI
    ==============================
    1.Overview for the impatient(概括说明配置的全过程)
    $./configure--prefix=PREFIX
    $make
    $make install
    $PREFIX/bin/apachectl start
    2.Requirements(需要的条件)
    3.Configuring the source tree(配置的参数说明)
    4.Building the package(编译软件的方法)
    5.Installing the package(安装软件的方法)
    6.Testing the package(软件测试)
    理解并能熟练使用这些说明文件后,就可以利用一些规律来安装大多数的软件。对于那些没有说明文件的软件(当然这种情况比较少见),这些规律通常也是适用的。一般来说,与安装软件有直接关系的文件只有两个:configure 、Makefile。
    其中,configure文件具有可执行的属性,是用来配置软件的,它的参数比较多,用法也比较灵活。当然,不同的软件参数也不相同,这时候就需要借助它的help参数,运行下面的命令就会让你感到豁然开朗:
    #〉 ./configure -help
    Usage: configure [options]
    Options: [defaults in brackets after descriptions]
    General options:
    --quiet, --silent do not print messages
    --verbose,-v print even more messages
    --sha [=DIR] switch to a shadow tree (under DIR) for building
    Stand-alone options:
    --help,-h print this message
    --show-layout print installation path layout (check and debug)
    [[The No.1 Picture.]]
    图1 Gnome运行界面
    Installation layout options:
    --with-layout=[F:]ID use installation path layout ID (from file F)
    --target=TARGET install name-associated files using basename TARGET
    ……
    接下来,就可以运行“./configure [options]”来配置该软件。注意,命令行中的“./”非常重要,它告诉系统要运行的命令就在当前目录下(否则系统就会到$path变量指定的路径下去执行命令)。执行命令后可以生成Makefile文件或者修改已有的文件配置。
    Makefile文件通常是用来编译和安装软件的。运行make命令时系统会自动根据Makefile文件中的设置对软件进行编译和安装。make命令有时还可以带一些参数,如:all、build、config、install等。具体要带哪个参数可以参看Makefile文件。在Linux中绝大部分文件是文本文件,Makefile就是一个shell程序(Linux中shell程序与DOS中的批处理文件有很多相似之处,当然功能要强得多),很容易读懂,尤其是编译时可带的参数都会明确写出,例如:
    ##========================
    ## Targets
    ##========================
    # default target
    all: build
    ##------------------------
    ## Build Target
    ##------------------------
    # build the package
    build:
    ……
    # the non-verbose variant for package maintainers
    build-quiet:
    @$(MAKE) -f $(TOP)/$(MKF) $(MFLAGS) $(MFWD) QUIET=1 build
    # build the additional support stuff
    build-support:
    ……
    ##------------------------
    ## Installation Targets
    ## -----------------------
    # the install target for installing the complete Apache
    # package. This is implemented by running subtargets for the
    # separate parts of the installation process.
    install:
    ……
    # the non-verbose variant for package maintainers
    install-quiet:
    @$(MAKE) -f $(TOP)/$(MKF) $(MFLAGS) $(MFWD) QUIET=1 install
    # create the installation tree
    install-mktree:
    ……
    上面这段代码是apache_1.3.6的Makefile文件的一部分,从这段程序可以看出all参数表示完全编译(缺省参数)。此外,编译时还可以带build、build-quiet、build-surpport等参数;安装时可以带install、install-quiet、 install-surpport等参数。它们的功能分别在“#”表示的注释中进行了说明。需要额外说明的是,有些软件(例如Linux的内核升级程序)不用configure命令来配置软件,而是用make config来完成这项工作,所以,具体使用哪种方法要具体问题具体分析。
    图形界面下的软件安装
    在图形环境下,同样可以弹出一个仿真终端以文本的方法来安装软件,但那样就太笨了,因为在X Window中有一些简单的方法可以帮您完成软件安装。下面笔者以RedHat 6.0为例做介绍。
    一、图形界面下安装.tar.gz包
    在X Window下,安装这种形式的包简化程度并不大,只是在解压缩软件时方便一些。用鼠标左键双击要安装的软件包,系统就会自动生成一个目录—— filename.tar.gz#utar,在这个目录下就有你要解压缩的内容——filename目录。将该目录拷贝到你要解压缩的目录下,解压缩的工作就这样简单地完成了。不过,剩下的工作还要弹出一个仿真终端以文本的方法来完成。
    二、图形界面下安装RPM包
    在X Window中你要安装、升级、卸载和查询一个RPM软件包实在是太容易了。以Redhat 6.0为例,它的X Window中有一个Gnome RPM软件可以完成上面提到的一切工作。
    点击“Start”→“System”→“GnomeRPM”,可以运行该软件。它将安装好的RPM包形式的软件按照功能分在Amusements、 Application、Development、Document、Extension、Extentions、Networking、System Environment、UserInterface、X11等几个树形目录中,每个目录中有相应的文件图标和名称。要安装或升级软件,只要点击工具栏的相应按钮就会弹出打开文件的对话框,选中你要安装的RPM文件,单击“OK”按钮,一切大功告成;卸载软件时,需要根据分类找到该软件的图标,点击右键,选Uninstall就可以了。如果你会在Win 95/98中查找文件的话,在Linux中查找已经安装的软件也就不难了。这个软件可以到下面的站点下载: ftp.gnome.org/pub/GNOME/stable/
    sources/gnorpm。
    几点注意事项
    一、安装方法的适用范围
    上面提到的软件安装方法并不是在任何版本的Linux上都适用。笔者认为,.tar.gz包的安装方法适用于各种版本的Linux,而RPM包则有一定的局限性。
    目前常见的各种Linux发行版本中,如:Redhat 6.0、Turbo Linux 3.0.2、Xteam 3.0等都支持RPM包。如果你想知道你使用的Linux是否支持RPM包,只要运行一下“rpm --help”命令就知道了。不过,对于不支持RPM包的版本,可以安装一个RPM管理软件。
    二、容易出现的问题
    在安装软件时,一定要保证你对用到的软件包有访问权限。当然如果你是root就没问题了。但如果你真的是root你就需要注意另一个问题,由于 root的权限过高,所以在安装软件时,要防止对系统其它软件造成误操作(在使用rm 等“危险”命令时,尤其要注意)。
    另一个容易出现的问题是,在卸载RPM包的软件时要慎重,因为很多软件之间是相互关联的,你卸载的软件很可能是其它软件要用到的,要防止由于卸载了一个软件而影响另一个软件的正常使用。所以笔者建议,初学者对于与系统运行有关的软件尽量不要删除(对于游戏、应用软件一类的软件不必有太多顾虑)。等你成为一名经验丰富的系统管理员时,你就能灵活地处理这些问题了。

    查看(58) 评论(0) 收藏 分享 管理

  • V I 命令

    2009-10-30 15:36:16



    1.*关于退出:*
    :wq! ----强制保存退出
    :wq  ---- 保存退出
    :  x   ----- 作用和:wq 一样
    ZZ  ---- 作用和:wq一样,(注意Z是大写的,并且不是在命令模式)
    :q  ---- 退出
    :q! ---  强制退出
    ========================================================
    2.*关于移动:*
    h : 在当前行向左移动一个字符
    j: 移动到下一行
    k:移动到上一行
    l:在当前行向右移动一个字符
    Ctrl +f: 向前滚动一页
    Ctrl +b:向后滚动一页
    :n   将光标定位到第n行
    :   $   将光标定位到最后一行
    0    将光标定位到本行的行首
    $    将光标定位到本行的行尾
    G    将光标定位到本文章的最后一行,与:   $功能相同。
    H    将光标定位到屏幕的顶端
    M    将光标定位到屏幕的中间
    L     将光标定位到屏幕的底端
    =============================================================
    3.*关于搜索:*
    /: 后面跟要查找的东西,在文件中向前搜索
    ?:后面跟要查找的东西,在文件中向后搜索
    n: 向前重复搜索
    N: 向后重复搜索
    =============================================================
    4.*关于复制*
    yy: 复制光标当前行
    nyy: 复制光标当前行到当前行以下的n-1行
    :1,100 co 200 将1~100的内容复制到第200行。
    :100,102 co $ 将100~102行的内容复制到最后一行。
    ==============================================================
    5.*关于粘贴:*
    p :   粘贴到当前行的下一行
    P(大) :   粘贴到当前行的 上一行
    ==============================================================
    6.*关于删除.剪切:*
    dd  删除当前行
    ndd  与nyy相似
    dw  删除一个单词
    ndw  与ndd相似
    x    删除一个字符
    nx   删除n个字符
    dG   删除当前光标到文件末尾的所有内容。
    d0   删除当前光标到本行行首的所有内容
    d$   删除当前光标到本行行尾的所有内容
    :1,100d  删除1~100
    :100d    删除第100行
    :1,100 mo $  将1~100行的内容移动到最后一行。
    ======================================================
    7.*关于插入:*
    i:  在当前位置的字符前面进入插入模式
    I: 在当前行的开头进行插入
    a: 在当前位置的字符后面进入插入模式
    A: 在当前行的结尾进行插入
    o:  在当前行下面打开一个新行进行插入
    O:在当前行上面打开一个新行进行插入
    ======================================================
    8.*关于撤销:*
    u: 撤销上一次的更改
    =======================================================
    9.*关于替换:
    r*egexp:是要匹配的式样
    replacement: 是要替换的字符串*
    *:s /regexp/replacement  -------------------------替换当前行出现的第一个式样
    :s/regexp/replacement/g-------------------------替换当前行所有的匹配
    :%s/regexp/replacement/g-----------------------替换文件中所有匹配式样
    ==========================================================

    *PS: 还有一个重要的命令就是"." 命令,这个命令是用来重复上一命令的

    查看(29) 评论(0) 收藏 分享 管理

  • Putty 中文乱码问题

    2009-09-26 23:18:51

         putty的中文支持还是很好的,呵呵打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change…,选择Fixedsys字体,字符集选择CHINESE_GB2312。在window-〉Appearance-〉Translation中,Received data assumed to be in which character set 中,把Use font encoding改为UTF-8如果经常使用,把这些设置保存在session里面. 现在打开putty,登录成功后,在shell中输入:export LC_ALL=’zh_CN.utf8′,这样应该可以的

    查看(27) 评论(0) 收藏 分享 管理

  • 配置scim中文输入法

    2009-09-02 10:48:34


                    一开始安装了ubuntu没有中文输入法,很不爽。
    配置scim中文输入法
    1).终端输入:sudo apt-get remove scim
    2)sudo apt-get install scim
    3)sudo apt-get install scim-chinese
    这一步是下载安装中文输入法,前面那一步只是下载一个可以运行输入法的平台,现在是在这个具体平台上安装中文输入
    4) sudo gedit /etc/X11/Xsession.d /95xinput
    这个步骤是新建一个95xinput的文件,该文件的具体内容如下:
       1. /usr/bin/scim -d  
       2. XMODIFIERS="@im=SCIM"  
       3. export XMODIFIERS  
       4. export GTK_IM_MODULE=scim
    5)exit 退出终端
    6)Logout,重新登录

    查看(33) 评论(0) 收藏 分享 管理

  • linux面试题参考答案

    2009-08-17 12:54:30

    linux面试题参考答案

    1. 在Linux系统中,以 文件 方式访问设备 。
    2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
    3. Linux文件系统中每个文件用 i节点 来标识。
    4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块
    5. 链接分为: 硬链接 和 符号链接 
    6. 超级块包含了i节点表 和 空闲块表 等重要的文件系统信息。
    7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是目录 。
    8. 前台起动的进程使用 Ctrl+c 终止。
    9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。
    10. 网络管理的重要任务是: 控制 和 监控 
    11. 安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 。
    13. 编写的Shell程序运行前必须赋予该脚本文件 执行 权限。
    14. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的安全保护、备份、恢复和更新。
    15. 系统交换分区是作为系统 虚拟存储器 的一块区域。
    16. 内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统。
    17. 内核配置是系统管理员在改变系统配置 硬件 时要进行的重要操作。
    18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、 网关地址 和 子网掩码 等必要信息。
    19. 唯一标识每一个用户的是用户 ID 和用户名
    20 . RIP 协议是最为普遍的一种内部协议,一般称为动态路由信息协议
    21. 在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统 。
    22. DHCP可以实现动态 IP 地址分配。
    23. 系统网络管理员的管理对象是服务器、 用户 和服务器的进程 以及系统的各种资源。
    24. 网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的中心。
    25. 当想删除本系统用不上的 设备驱动程序 时必须编译内核,当内核不支持系统上的 设备驱动程序 时,必须对内核 升级 。
    26 Ping命令可以测试网络中本机系统是否能到达 一台远程主机 ,所以常常用于测试网络的 连通性 。
    27. vi编辑器具有两种工作模式: 命令模式 和 输入模式 。
    28. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型 ,第二段占3位,表示 文件所有者 对该文件的权限。
    29. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态(阻塞态) 。
    30. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址和主机名 之间的转换。
    31. Apache是实现WWW服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端 为用户提供浏览 web服务 的就是apache应用程序。
    32. 在Linux系统上做备份可以有两种类型:系统备份 和 用户备份 。其中前者是指对 操作系统 的备份,后者是指对 应用程序和用户文件的备份。
    33. CD-ROM标准的文件系统类型是 iso9660 。
    34. 当lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo 。
    35. 在使用ls命令时,用八进制形式显示非打印字符应使用参数 -b 。
    36. Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat 。
    37. 设定限制用户使用磁盘空间的命令是 quota 。
    38 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc 。
    39. 硬连接只能建立对 文件 链接。符号链接可以跨不同文件系统创建。
    40. 套接字文件的属性位是 s 。
    41. 结束后台进程的命令是 kill 。
    42. 进程的运行有两种方式,即 独立运行和使用父进程运行 。
    43. Links分为 硬链接和符号链接 。
    44. 在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux 。
    45. 管道文件的属性位是 p 。
    46. 将前一个命令的标准输出作为后一个命令的标准输入,称之为 管道 。
    47. 为脚本程序指定执行权的命令及参数是 chmod a+x filename 。
    48. 进行远程登录的命令是 telnet 。
    49. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是: ping abc.tuu.edu.cn –c 10 。
    50. DNS服务器的进程命名为named,当其启动时,自动装载 /etc目录下的 named.conf 文件中定义的DNS分区数据库文件。
    51. Apache服务器进程配置文件是 httpd.conf 。
    52.在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip 。
    53. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 :w test.txt 。
    54 可以在标准输出上显示整年日历的命令及参数是 cal -y 。
    55. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有 空格 。
    56. 检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是 fsck –a /dev/had5 。
    57. 在Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 Samba服务器 。
    58. 系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和 系统性能监测 。
    59 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup 。
    60. 在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为 hdb 。
    61. 当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核 。
    62. 如果只是要修改系统的IP地址,应修改 /etc/rc.d/rc.inet1 配置文件。
    63. 当LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts 文件。
    64. 在vi编辑环境下,使用 Esc键 进行模式转换。
    65. Slackware Linux 9.0通常使用 ext3 文件系统,系统的全部磁盘块由 四 部分组成。
    66. 将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar zcvf /home/wang.tar.gz /home/stud1/wang 。
    67. 管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入 。
    68. 在使用手工的方法配置网络时,可通过修改 /etc/HOSTNAME 文件来改变主机名,若要配置该计算机的域名解析客户端,需配置 /etc/resolv.conf 文件。
    69. 启动进程有手动启动和调度启动两种方法,其中调度启动常用的命令为 at 、 batch 和 crontab 。
    70. test.bns.com.cn的域名是 bns.com.cn ,如果要配置一域名服务器,应在 named.conf 文件中定义DNS数据库的工作目录。
    71. Sendmail邮件系统使用的两个主要协议是: SMTP 和 POP ,前者用来发送邮件,后者用来接收邮件。
    72. DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址 。
    73. 目前代理服务器使用的软件包有很多种,教材中使用的是 squid 。
    74. rm命令可删除文件或目录,其主要差别就是是否使用递归开关 -r或-R 。
    75. mv 命令可以移动文件和目录,还可以为文件和目录重新命名。
    76. 路由选择协议(RIP)的跳数表示到达目的地之前必须通过的 网关 数,RIP接受的最长距离是 15跳 。
    77. ping命令用于测试网络的连通性,ping命令通过 ICMP 协议(internet控制信息协议)来实现。
    78. nfs 协议用于实现Unix(/linux)主机之间的文件系统共享。
    79. 在Linux操作系统中,设备都是通过特殊的 文件 来访问。
    80. shell不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言。 bash是Linux的缺省shell。
    81. 用 >;>; 符号将输出重定向内容附加在原文的后面。
    82. 增加一个用户的命令是:adduser 或useradd 。
    83 进行字符串查找,使用grep命令。
    84. 使用 * 每次匹配若干个字符。
    85. /sbin 目录用来存放系统管理员使用的管理程序。
    二.单项选择题:
    1. 下面的网络协议中,面向连接的的协议是: A 。
    A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议
    2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备。
    A defaults B sw C rw和ro D noauto
    3. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 C 。
    A 文件类型 B 文件所有者的权限 
    C 文件所有者所在组的权限 D 其他用户的权限
    4. 终止一个前台进程可能用到的命令和操作 B 。
    A kill B ;+C C shut down D halt
    5.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 D 。
    A -m B -d C -f D -p
    6. 下面关于i节点描述错误的是 A 。(inode是一种数据结构,vfs中描述文件的相关参数??)
    A i节点和文件是一一对应的
    B i节点能描述文件占用的块数
    C i节点描述了文件大小和指向数据块的指针
    D 通过i节点实现文件的逻辑结构和物理结构的转换
    7. 一个文件名字为rr.Z,可以用来解压缩的命令是: D 。
    A tar B gzip C compress D uncompress
    8. 具有很多C语言的功能,又称过滤器的是 C 。
    A csh
    B tcsh
    C awk  (
    awk详解

    D sed
    9. 一台主机要实现通过局域网与另一个局域网通信,需要做的工作是 C 。
    A 配置域名服务器
    B 定义一条本机指向所在网络的路由
    C 定义一条本机指向所在网络网关的路由
    D 定义一条本机指向目标网络网关的路由
    10. 建立动态路由需要用到的文件有 D 。
    A /etc/hosts B /etc/HOSTNAME C /etc/resolv.conf D /etc/gateways
    11. 局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1。主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是 B 。
    A route add –net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1
    B route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.255 metric 1
    C route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1
    D route add default 192.168.1.0 netmask 172.168.1.1 metric 1
    12. 下列提法中,不属于ifconfig命令作用范围的是 D 。
    A 配置本地回环地址 B 配置网卡的IP地址
    C 激活网络适配器 D 加载网卡到内核中
    13. 下列关于链接描述,错误的是 B 。
    A 硬链接就是让链接文件的i节点号指向被链接文件的i节点
    B 硬链接和符号连接都是产生一个新的i节点
    C 链接分为硬链接和符号链接 D 硬连接不能链接目录文件
    14. 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 C。
    A 主机IP设置有误
    B 没有设置连接局域网的网关
    C 局域网的网关或主机的网关设置有误
    D 局域网DNS服务器设置有误
    15. 下列文件中,包含了主机名到IP地址的映射关系的文件是: B 。
    A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks
    16. 不需要编译内核的情况是 D 。
    A 删除系统不用的设备驱动程序时 B 升级内核时
    C 添加新硬件时 D 将网卡激活
    17. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称 A 。
    A 直接赋值 B使用read命令
    C 使用命令行参数 D使用命令的输出
    18. D 命令可以从文本文件的每一行中截取指定内容的数据。
    A cp B dd C fmt D cut
    19. 下列不是Linux系统进程类型的是 D 。
    A 交互进程 B 批处理进程 C 守护进程 D 就绪进程(进程状态)
    20.配置Apache 1.3.19服务器需要修改的配置文件为___A______
    A httpd.conf B access.conf C srm.conf D named.conf
    21. 内核不包括的子系统是 D 。
    A 进程管理系统 B 内存管理系统 C I/O管理系统 D硬件管理系统
    22. 在日常管理中,通常CPU会影响系统性能的情况是: A 。
    A CPU已满负荷地运转 B CPU的运行效率为30%
    C CPU的运行效率为50% D CPU的运行效率为80%
    23. 若一台计算机的内存为128MB,则交换分区的大小通常是 C 。
    A 64MB B 128MB C 256MB D 512MB
    24. 在安装Linux的过程中的第五步是让用户选择安装方式,如果用户希望安装部分组件(软件程序),并在选择好后让系统自动安装,应该选择的选项是 D 。
    A full B expert C newbie D menu
    25. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用 C 命令。
    A cat B more C less D menu
    26. 下列信息是某系统用ps –ef命令列出的正在运行的进程, D 进程是运行Internet超级服务器,它负责监听Internet sockets上的连接,并调用合适的服务器来处理接收的信息。
    A root 1 4.0 0.0 344 204? S 17:09 0:00 init 
    B root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty 
    C root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sbin/syslogd 
    D root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbin/inetd 
    27.在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中, B 是能够实现本地与远程主机之间的文件传输工作。
    A telnet B FTP C SNMP D NFS 
    28.当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出现了问题,满足该目的的命令是 C 。
    A ping B ifconfig C traceroute D netstat
    29.对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是 D 。
    A -rwxr-xr-x B -rwxr--r-- C -r--r--r-- D -r-xr-x—x
    30. 在i节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第1块到第11块,则该文件共占有 B 块号。
    A 256 B 266 C 11 D 256×10
    (??)31. 用ls –al 命令列出下面的文件列表, D 文件是符号连接文件。
    A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello
    B -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey
    C drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhang
    D lrwxr--r-- 1 hel users 2024 Sep 12 08:12 cheng
    32. DNS域名系统主要负责主机名和 A 之间的解析。
    A IP地址 B MAC地址 C 网络地址 D 主机别名
    33. WWW服务器是在Internet上使用最为广泛,它采用的是 B 结构。
    A 服务器/工作站 B B/S C 集中式 D 分布式
    34.Linux系统通过 C 命令给其他用户发消息。
    A less B mesg y C write D echo to
    [ 注:mesg [y|n] 所有使用者 决定是否允许其他人传讯息到自己的终端机介面 ]
    35.NFS是 C 系统。
    A 文件 B 磁盘 C 网络文件 D 操作
    36. B 命令可以在Linux的安全系统中完成文件向磁带备份的工作。
    A cp B tr C dir D cpio
    [注:如果用 echo $PATH 或者 echo $LD_LIBRARY_PATH 等类似的命令来显示路径信息的话,我们看到的将会是一大堆用冒号连接在一起的路径, tr 命令可以把这些冒号转换为回车,这样,这些路径就具有很好的可读性了:
    echo $PATH | tr ":" "\n"
    ]
    37.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 C 目录中。
    A /bin B /etc C /dev D /lib 
    38.在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用 D 命令实现。
    A # reboot B # halt C # reboot D # shutdown –r now
    39.网络管理具备以下几大功能:配置管理、 A 、性能管理、安全管理和计费管理等。
    A 故障管理 B 日常备份管理 C 升级管理 D 发送邮件
    40.关于代理服务器的论述,正确的是 A 。
    A 使用internet上已有的公开代理服务器,只需配置客户端。
    B 代理服务器只能代理客户端http的请求。
    C 设置好的代理服务器可以被网络上任何主机使用。
    D 使用代理服务器的客户端没有自己的ip地址。
    41.关闭linux系统(不重新启动)可使用命令 B 。
    A Ctrl+Alt+Del B halt C shutdown -r now D reboot
    42.实现从IP地址到以太网MAC地址转换的命令为: C 。
    A ping B ifconfig C arp D traceroute
    43.在vi编辑器中的命令模式下,键入 B 可在光标当前所在行下添加一新行。
    A ; B ; C ; D A
    44.在vi编辑器中的命令模式下,删除当前光标处的字符使用 A 命令。
    A ; B ;; C ; D ;;
    45.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用 C 命令。
    A 上箭头 B 下箭头 C ; D ;
    46.用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 A 。
    -rwxr-xr-- 1 root root 599 Cec 10 17:12 ff
    A 普通文件 B 硬链接 C 目录 D 符号链接
    47.删除文件命令为: D 。
    A mkdir B rmdir C mv D rm
    48.在下列的名称中,不属于DNS服务器类型的是:____C_____
    A Primary Master Server B Secondary Master Server
    C samba D Cache_only Server
    49.网络管理员对WWW服务器进行访问、控制存取和运行等控制,这些控制可在 A 文件中体现。
    A httpd.conf B lilo.conf C inetd.conf D resolv.conf
    50.邮件转发代理也称邮件转发服务器,它可以使用SMTP协议,也可以使用 C 协议。 
    A FTP B TCP C UUCP D POP
    51.启动samba服务器进程,可以有两种方式:独立启动方式和父进程启动方式,其中前者是在 C 文件中以独立进程方式启动。
    A /usr/sbin/smbd B /usr/sbin/nmbd C rc.samba D /etc/inetd.conf
    52.DHCP是动态主机配置协议的简称,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机分配___D______地址。
    A 网络 B MAC C TCP D IP
    53.为了保证在启动服务器时自动启动DHCP进程,应将 A文件中的dhcpd=no改为dhcpd=yes。 
    rc.inet1 B lilo.conf C inetd.conf D httpd.conf
    [注: 英文原义:RC
    中文释义:含有程序(应用程序甚至操作系统)启动指令的脚本文件]
    注解:这一文件在操作系统启动时会自动执行,它含有要运行的指令(命令或其它脚本)列表。
    54.对文件进行归档的命令为 D 。
    A dd B cpio C gzip D tar
    55.改变文件所有者的命令为 C 。
    A chmod B touch C chown D cat
    56.在给定文件中查找与设定条件相符字符串的命令为: A 。
    A grep B gzip C find D sort
    57.建立一个新文件可以使用的命令为 D 。
    A chmod B more C cp D touch(指令改变档案的时间记录。)
    58.在下列命令中,不能显示文本文件内容的命令是: D 。 
    A more B less C tail D join
    59.在使用匿名登录ftp时,用户名为 B 。
    A users B anonymous C root D guest
    60.在实际操作中,想了解命令logname 的用法,可以键入 D 得到帮助。
    A logname --man B logname/? C help logname D logname --help
    61.如果LILO被安装在MBR,使用 A 命令即可卸载LILO。
    A lilo –u B lilo –c C lilo –v D lilo -V
    62.当用命令ls –al查看文件和目录时,欲观看卷过屏幕的内容,应使用组合键 D 。
    A Shift+Home B Ctrl+ PgUp C Alt+ PgDn D Shift+ PgUp
    63.mc是UNIX风格操作系统的 C 。
    A 文件编辑器/程序编译器 B 配置网络的窗口工具 
    C 目录浏览器/文件管理器 D Samba服务器管理工具
    64.i节点是一个 D 长的表,表中包含了文件的相关信息。
    A 8字节 B 16字节 C 32字节 D 64字节
    65.文件权限读、写、执行的三种标志符号依次是 A 。
    A rwx B xrw C rdx D srw
    66.Linux 文件名的长度不得超过 C 个字符。
    A 64 B 128 C 256 D 512
    67.进程有三种状态: C 。
    A 准备态、执行态和退出态 B 精确态、模糊态和随机态
    C 运行态、就绪态和等待态 D 手工态、自动态和自由态
    68. 从后台启动进程,应在命令的结尾加上符号 A 。
    A & B @ C # D $
    69. B 不是邮件系统的组成部分。
    A 用户代理 B 代理服务器 C 传输代理 D 投递代理
    70.在Shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是 D 。
    A fold B join C tr D read
    71.crontab文件由六个域组成,每个域之间用空格分割,其排列如下: B 。
    A MIN HOUR DAY MONTH YEAR COMMAND
    B MIN HOUR DAY MONTH DAYOFWEEK COMMAND
    C COMMAND HOUR DAY MONTH DAYOFWEEK 
    D COMMAND YEAR MONTH DAY HOUR MIN 
    crontab命令:实现程序定时运行
    72.用ftp进行文件传输时,有两种模式: C 。
    A Word和binary B .txt和Word Document 
    C ASCII和binary D ASCII和Rich Text Format
    73.某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为 D 。
    A 467 B 674 C 476 D 764
    74.在DNS系统测试时,设named进程号是53,命令 D 通知进程重读配置文件。
    A kill –USR2 53 B kill –USR1 53 C kill -INT 63 D kill –HUP 53
    75.Apache服务器默认的接听连接端口号是 C 。
    A 1024 B 800 C 80 (http)D 8
    76.PHP和MySQL的联合使用解决了 C 。
    A 在Proxy上处理数据库的访问问题 B 在WWW服务器上处理黑客的非法访问问题
    C 在WWW服务器上处理数据库的访问问题
    D 在Sendmail邮件系统上处理数据库的访问问题
    77.OpenSSL是一个 A 。
    A 加密软件 B 邮件系统 C 数据库管理系统 D 嵌入式脚本编程语言
    78.Samba服务器的配置文件是 D 。
    A httpd.conf B inetd.conf C rc.samba D smb.conf
    79.关于DNS服务器,叙述正确的是 D 。
    A DNS服务器配置不需要配置客户端
    B 建立某个分区的DNS服务器时只需要建立一个主DNS服务器
    C 主DNS服务器需要启动named进程,而辅DNS服务器不需要
    D DNS服务器的root.cache文件包含了根名字服务器的有关信息
    80.退出交互模式的shell,应键入 C 。
    A ; B ^q C exit D quit
    81.将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下,命令是 B 。

    [[email protected]:%7E#mount][email protected]:~#mount[/email]
    dev/had1 /winsys 

    [[email protected]:%7E#mount][email protected]:~#mount[/email]
    /dev/had1 /winsys

    [[email protected]:%7E#mount][email protected]:~#mount[/email]
    /dev/had1 winsys

    [[email protected]:%7E#mount][email protected]:~#mount[/email]
    dev/had1 winsys
    82.设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为 B 。
    A /home B /root C /home/root D /usr/local
    83.字符设备文件类型的标志是 B 。
    A p B c C s D l
    84.将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令是 C 。 
    A mount /mnt/cdrom B mount /mnt/cdrom /dev/hdc
    C mount /dev/hdc /mnt/cdrom D mount /dev/hdc
    85.将光盘/dev/hdc卸载的命令是 C 。
    A umount /dev/hdc B unmount /dev/hdc
    C umount /mnt/cdrom /dev/hdc D unmount /mnt/cdrom /dev/hdc
    86.在/home/stud1/wang目录下有一文件file,使用 D 可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。
    A cat file >;file.copy B cat >;file.copy C cat file file.copy & D cat file >;file.copy &
    87.在DNS配置文件中,用于表示某主机别名的是: B 。
    A NS B CNAME C NAME D CN
    88.可以完成主机名与IP地址的正向解析和反向解析任务的命令是: A 。
    A nslookup B arp C ifconfig D dnslook
    89.下列变量名中有效的shell变量名是: C 。
    A -2-time B _2$3 C trust_no_1 D 2004file
    90.qmail是 B 。
    A 收取邮件的协议 B 邮件服务器的一种 C 发送邮件的协议 D 邮件队列
    92.已知某用户stud1,其用户目录为/home/stud1。分页显示当前目录下的所有文件的文件或目录名、用户组、用户、文件大小、文件或目录权限、文件创建时间等信息的命令是 D 。
    A more ls –al B more –al ls C more 
    B 每年1月1日早上6点执行date命令,使用at命令:at 6am Jan 1 date
    C 每日晚11点执行date命令,crontab文件中应为:0 23 * * * date
    D 每小时执行一次clear命令,crontab文件中应为:0 */1 * * * clear
    94.系统中有用户user1和user2,同属于users组。在user1用户目录下有一文件file1,它拥有644的权限,如果user2用户想修改user1用户目录下的file1文件,应拥有 B 权限。
    A 744 B 664 C 646 D 746
    ??95.如果想配置一台匿名ftp服务器,应修改 C 文件。
    A /etc/gateway B /etc/ftpservers C /etc/ftpusers D /etc/inetd.conf
    96.Samba服务器的进程由B 两部分组成 。
    A named和sendmail B smbd和nmbd C bootp和dhcpd D httpd和squid
    97.要配置NFS服务器,在服务器端主要配置 C 文件。
    A /etc/rc.d/rc.inet1 B /etc/rc.d/rc.M C /etc/exports D /etc/rc.d/rc.S
    98.为保证在启动服务器时自动启动DHCP进程,应对 B 文件进行编辑。
    A /etc/rc.d/rc.inet2 B /etc/rc.d/rc.inet1 C /etc/dhcpd.conf D /etc/rc.d/rc.S
    99.在配置代理服务器时,若设置代理服务器的工作缓存为64MB,配置行应为 D 。
    A cache 64MB B cache_dir ufs /usr/local/squid/cache 10000 16 256
    C cache_ mgr 64MB D cache_ mem 64MB
    100.安全管理涉及的问题包括保证网络管理工作可靠进行的安全问题和保护网络用户及网络管理对象问题。 C 属于安全管理的内容。
    A 配置设备的工作参数 B 收集与网络性能有关的数据 
    C 控制和维护访问权限 D 监测故障
    101.以下命令对中,正确的是: B 。
    A ls和sl B cat和tac C more和erom D exit和tixe
    cat是显示文件夹的命令,这个大家都知道,tac是cat的倒写,意思也和它是相反的。cat是从第一行显示到最后一行,而tac是从最后一行显示到第一行,而rev 则是从最后一个字符显示到第一个字符
    102. B 命令是在vi编辑器中执行存盘退出。
    A :q B ZZ C :q! D :WQ
    103.下列关于/etc/fstab文件描述,正确的是 D 。
    A fstab文件只能描述属于linux的文件系统 B CD_ROM和软盘必须是自动加载的
    C fstab文件中描述的文件系统不能被卸载 D 启动时按fstab文件描述内容加载文件系统
    104.通过文件名存取文件时,文件系统内部的操作过程是通过 C 。
    A 文件在目录中查找文件数据存取位置。B 文件名直接找到文件的数据,进行存取操作。
    C 文件名在目录中查找对应的I节点,通过I节点存取文件数据。
    D 文件名在中查找对应的超级块,在超级块查找对应i节点,通过i节点存取文件数据
    105.Linux将存储设备和输入/输出设备均看做文件来操作, C 不是以文件的形式出现。
    A 目录 B 软链接 C i节点表 D 网络适配器
    106.关于i节点和超级块,下列论述不正确的是 B 。
    A i节点是一个长度固定的表 B 超级块在文件系统的个数是唯一的
    C i节点包含了描述一个文件所必需的全部信息
    D 超级块记录了i节点表和空闲块表信息在磁盘中存放的位置
    107. D 设备是字符设备。
    A hdc B fd0 C hda1 D tty1(A,B,C为块设备)
    108. B 目录存放着Linux的源代码。
    A /etc B /usr/src C /usr D /home
    109.关于文件系统的安装和卸载,下面描述正确的是 A 。
    A 如果光盘未经卸载,光驱是打不开的 B 安装文件系统的安装点只能是/mnt下
    C 不管光驱中是否有光盘,系统都可以安装CD-ROM设备
    D mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的
    110. B 不是进程和程序的区别。
    A 程序是一组有序的静态指令,进程是一次程序的执行过程
    B 程序只能在前台运行,而进程可以在前台或后台运行
    C 程序可以长期保存,进程是暂时的
    D 程序没有状态,而进程是有状态的
    111.文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 A 。
    A chmod a+x g+w exer1 B chmod 765 exer1
    C chmod o+x exer1 D chmod g+w exer1
    112.有关归档和压缩命令,下面描述正确的是 C 。
    A 用uncompress命令解压缩由compress命令生成的后缀为.zip的压缩文件
    B unzip命令和gzip命令可以解压缩相同类型的文件
    C tar归档且压缩的文件可以由gzip命令解压缩
    D tar命令归档后的文件也是一种压缩文件
    113.不是shell具有的功能和特点的是 C 。
    A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令
    114.下列对shell变量FRUIT操作,正确的是: C 。
    A 为变量赋值:$FRUIT=apple B 显示变量的值:fruit=apple
    C 显示变量的值:echo $FRUIT D 判断变量是否有值:[ -f “$FRUIT” ]

    查看(221) 评论(1) 收藏 分享 管理

  • Linux必学的60个命令

    2009-08-17 12:50:24

    Linux必学的60个命令
    Linux提供了大量的命令,利用它可以有效地完成大量的工
    作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,
    就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。
    不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个部分一一介绍。
    ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
    ◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
    ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
    ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
    ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
    ◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
    本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。
    immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。
    Linux必学的60个命令(1)-安装与登陆命令
    login
    1.作用
    login的作用是登录系统,它的使用权限是所有用户。
    2.格式
    login [name][-p ][-h 主机名称]
    3.主要参数
    -p:通知login保持现在的环境参数。
    -h:用来向远程登录的之间传输用户名。
    如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。
    一般界面是这样的:
    Manddrake Linux release 9.1(Bamboo) for i586
    renrel 2.4.21-0.13mdk on i686 / tty1
    localhost login:root
    password:
    上面代码中,第一行是Linux发行版本号,第二行是内核版本号和登录的虚拟控制台,我们在第三行输入登录名,按“Enter”键在Password后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会在屏幕上回显,光标也不移动。
    登录后会看到下面这个界面(以超级用户为例):
    [root@localhost root]#
    last login:Tue ,Nov 18 10:00:55 on vc/1
    上面显示的是登录星期、月、日、时间和使用的虚拟控制台。
    4.应用技巧
    Linux
    是一个真正的多用户操作系统,可以同时接受多个用户登录,还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的
    访问方式,允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台
    之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使用F1-F6 。
    例如,用户登录后,按一下“Alt+
    F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+
    F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制
    台最有用的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。
    shutdown
    1.作用
    shutdown命令的作用是关闭计算机,它的使用权限是超级用户。
    2.格式
    shutdown [-h][-i][-k][-m][-t]
    3.重要参数
    -t:在改变到其它运行级别之前,告诉init程序多久以后关机。
    -k:并不真正关机,只是送警告信号给每位登录者。
    -h:关机后关闭电源。
    -c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
    -F:在重启计算机时强迫fsck。
    -time:设定关机前的时间。
    -m: 将系统改为单用户模式。
    -i:关机时显示系统信息。
    4.命令说明
    shutdown
    命令可以安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭Linux系统,这是十分危险的。因为Linux与Windows不同,其后台运行着
    许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用
    shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录。
    halt
    1.作用
    halt命令的作用是关闭系统,它的使用权限是超级用户。
    2.格式
    halt [-n] [-w] [-d] [-f] [-i] [-p]
    3.主要参数说明
    -n:防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块。
    -w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录。
    -f:没有调用shutdown,而强制关机或重启。
    -i:关机(或重启)前,关掉所有的网络接口。
    -f:强迫关机,不呼叫shutdown这个指令。
    -p: 当关机的时候顺便做关闭电源的动作。
    -d:关闭系统,但不留下纪录。 
    4.命令说明
    halt
    就是调用shutdown
    -h。halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操作完成后就会停止内核。若系统的
    运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。 
    reboot
    1.作用
    reboot命令的作用是重新启动计算机,它的使用权限是系统管理者。
    2.格式
    reboot [-n] [-w] [-d] [-f] [-i]
    3.主要参数
    -n: 在重开机前不做将记忆体资料写回硬盘的动作。
    -w: 并不会真的重开机,只是把记录写到/var/log/wtmp文件里。
    -d: 不把记录写到/var/log/wtmp文件里(-n这个参数包含了-d)。
    -i: 在重开机之前先把所有与网络相关的装置停止。
    install
    1.作用
    install命令的作用是安装或升级软件或备份数据,它的使用权限是所有用户。
    2.格式
    (1)install [选项]... 来源 目的地
    (2)install [选项]... 来源... 目录
    (3)install -d [选项]... 目录...

    前两种格式中,会将复制至或将多个文件复制至已存在的,同时设定权
    限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也是必须的。
    3.主要参数
    --backup[=CONTROL]:为每个已存在的目的地文件进行备份。
    -b:类似 --backup,但不接受任何参数。
    -c:(此选项不作处理)。
    -d,--directory:所有参数都作为目录处理,而且会创建指定目录的所有主目录。
    -D:创建前的所有主目录,然后将复制至 ;在第一种使用格式中有用。
    -g,--group=组:自行设定所属组,而不是进程目前的所属组。
    -m,--mode=模式:自行设定权限模式 (像chmod),而不是rwxr-xr-x。
    -o,--owner=所有者:自行设定所有者 (只适用于超级用户)。
    -p,--preserve-timestamps:以文件的访问/修改时间作为相应的目的地文件的时间属性。
    -s,--strip:用strip命令删除symbol table,只适用于第一及第二种使用格式。
    -S,--suffix=后缀:自行指定备份文件的。
    -v,--verbose:处理每个文件/目录时印出名称。
    --help:显示此帮助信息并离开。
    --version:显示版本信息并离开。
    mount
    1.作用
    mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
    2.格式
    mount -a [-fv] [-t vfstype] [-n] [-rw] [-F] device dir
    3.主要参数
    -h:显示辅助信息。
    -v:显示信息,通常和-f用来除错。
    -a:将/etc/fstab中定义的所有文件系统挂上。
    -F:这个命令通常和-a一起使用,它会为每一个mount的动作产生一个行程负责执行。在系统需要挂上大量NFS文件系统时可以加快加载的速度。
    -f:通常用于除错。它会使mount不执行实际挂上的动作,而是模拟整个挂上的过程,通常会和-v一起使用。
    -t vfstype:显示被加载文件系统的类型。
    -n:一般而言,mount挂上后会在/etc/mtab中写入一笔资料,在系统中没有可写入文件系统的情况下,可以用这个选项取消这个动作。
    4.应用技巧
    在Linux
    和Unix系统上,所有文件都是作为一个大型树(以/为根)的一部分访问的。要访问CD-ROM上的文件,需要将CD-ROM设备挂装在文件树中的某个挂
    装点。如果发行版安装了自动挂装包,那么这个步骤可自动进行。在Linux中,如果要使用硬盘、光驱等储存设备,就得先将它加载,当储存设备挂上了之后,
    就可以把它当成一个目录来访问。挂上一个设备使用mount命令。在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要
    加载对象的设备名称及要将设备加载到哪个目录下。
    (1)Linux可以识别的文件系统
    ◆ Windows 95/98常用的FAT 32文件系统:vfat ;
    ◆ Win NT/2000 的文件系统:ntfs ;
    ◆ OS/2用的文件系统:hpfs;
    ◆ Linux用的文件系统:ext2、ext3;
    ◆ CD-ROM光盘用的文件系统:iso9660。
    虽然vfat是指FAT 32系统,但事实上它也兼容FAT 16的文件系统类型。
    (2)确定设备的名称
    在Linux
    中,设备名称通常都存在/dev里。这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个
    IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd是Floppy Device(或是Floppy
    Disk?)。a代表第一个设备,通常IDE接口可以接上4个IDE设备(比如4块硬盘)。所以要识别IDE硬盘的方法分别就是hda、hdb、hdc、
    hdd。hda1中的“1”代表hda的第一个硬盘分区
    (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查
    /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的设备代号。
    (3)查找挂接点
    在决
    定将设备挂接之前,先要查看一下计算机是不是有个/mnt的空目录,该目录就是专门用来当作挂载点(Mount
    Point)的目录。建议在/mnt里建几个/mnt/cdrom、/mnt/floppy、/mnt/mo等目录,当作目录的专用挂载点。举例而言,如
    要挂载下列5个设备,其执行指令可能如下 (假设都是Linux的ext2系统,如果是Windows XX请将ext2改成vfat):
    软盘 ===>mount -t ext2 /dev/fd0 /mnt/floppy
    cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom
    SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom
    SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr
    不过目前大多数较新的Linux发行版本(包括红旗 Linux、中软Linux、Mandrake Linux等)都可以自动挂装文件系统,但Red Hat Linux除外。
    umount
    1.作用
    umount命令的作用是卸载一个文件系统,它的使用权限是超级用户或/etc/fstab中允许的使用者。
    2.格式
    unmount -a [-fFnrsvw] [-t vfstype] [-n] [-rw] [-F] device dir
    3.使用说明
    umount
    命令是mount命令的逆操作,它的参数和使用方法和mount命令是一样的。Linux挂装CD-ROM后,会锁定CD—ROM,这样就不能用CD-
    ROM面板上的Eject按钮弹出它。但是,当不再需要光盘时,如果已将/cdrom作为符号链接,请使用umount/cdrom来卸装它。仅当无用户
    正在使用光盘时,该命令才会成功。该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。
    chsh
    1.作用
    chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。
    2.格式
    chsh [ -s ] [ -list] [ --help ] [ -v ] [ username ]
    3.主要参数
    -l:显示系统所有Shell类型。
    -v:显示Shell版本号。
    4.应用技巧
    前面介绍了Linux下有多种Shell,一般缺省的是Bash,如果想更换Shell类型可以使用chsh命令。先输入账户密码,然后输入新Shell类型,如果操作正确系统会显示“Shell change”。其界面一般如下:
    Changing fihanging shell for cao
    Password:
    New shell [/bin/bash]: /bin/tcsh
    上面代码中,[ ]内是目前使用的Shell。普通用户只能修改自己的Shell,超级用户可以修改全体用户的Shell。要想查询系统提供哪些Shell,可以使用chsh -l 命令,见图1所示。
    图1 系统可以使用的Shell类型
    从图1中可以看到,笔者系统中可以使用的Shell有bash(缺省)、csh、sh、tcsh四种。
    exit
    1.作用
    exit命令的作用是退出系统,它的使用权限是所有用户。
    2.格式
    exit
    3.参数
    exit命令没有参数,运行后退出系统进入登录界面。
    last
    1.作用
    last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户。通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统。
    2.格式
    1ast[—n][-f file][-t tty] [—h 节点][-I —IP][—1][-y][1D]
    3.主要参数
    -n:指定输出记录的条数。
    -f file:指定用文件file作为查询用的log文件。
    -t tty:只显示指定的虚拟控制台上登录情况。
    -h 节点:只显示指定的节点上的登录情况。
    -i IP:只显示指定的IP上登录的情况。
    -1:用IP来显示远端地址。
    -y:显示记录的年、月、日。
    -ID:知道查询的用户名。
    -x:显示系统关闭、用户登录和退出的历史。
    动手练习
    上面介绍了Linux安装和登录命令,下面介绍几个实例,动手练习一下刚才讲过的命令。
    1.一次运行多个命令
    在一个命令行中可以执行多个命令,用分号将各个命令隔开即可,例如:
    #last -x;halt
    上面代码表示在显示系统关闭、用户登录和退出的历史后关闭计算机。
    2.利用mount挂装文件系统访问Windows系统
    许多Linux发行版本现在都可以自动加载Vfat分区来访问Windows系统,而Red Hat各个版本都没有自动加载Vfat分区,因此还需要进行手工操作。
    mount
    可以将Windows分区作为Linux的一个“文件”挂接到Linux的一个空文件夹下,从而将Windows的分区和/mnt这个目录联系起来。因
    此,只要访问这个文件夹就相当于访问该分区了。首先要在/mnt下建立winc文件夹,在命令提示符下输入下面命令:
    #mount -t vfat /dev/hda1 /mnt/winc

    表示将Windows的C分区挂到Liunx的/mnt/winc目录下。这时,在/mnt/winc目录下就可以看到Windows中C盘的内容了。使
    用类似的方法可以访问Windows系统的D、E盘。在Linux系统显示Windows的分区一般顺序这样的:hda1为C盘、hda5为D盘、
    hda6为E盘……以此类推。上述方法可以查看Windows系统有一个很大的问题,就是Windows中的所有中文文件名或文件夹名全部显示为问号
    “?”,而英文却可以正常显示。我们可以通过加入一些参数让它显示中文。还以上面的操作为例,此时输入命令:
    #mount -t vfat -o iocharset=cp936 /dev/hda1 /mnt/winc
    现在它就可以正常显示中文了。
    3.使用mount加挂闪盘上的文件系统
    在Linux下使用闪盘非常简单。Linux对USB设备有很好的支持,当插入闪盘后,闪盘被识别为一个SCSI盘,通常输入以下命令:
    # mount /dev/sda1 /usb
    就能够加挂闪盘上的文件系统。
    小知识
    Linux命令与Shell

    谓Shell,就是命令解释程序,它提供了程序设计接口,可以使用程序来编程。学习Shell对于Linux初学者理解Linux系统是非常重要的。
    Linux系统的Shell作为操作系统的外壳,为用户提供了使用操作系统的接口。Shell是命令语言、命令解释程序及程序设计语言的统称,是用户和
    Linux内核之间的接口程序。如果把Linux内核想象成一个球体的中心,Shell就是围绕内核的外层。当从Shell或其它程序向Linux传递命
    令时,内核会做出相应的反应。Shell在Linux系统的作用和MS DOS下的COMMAND.COM和Windows 95/98 的
    explorer.exe相似。Shell虽然不是系统核心的一部分,只是系统核心的一个外延,但它能够调用系统内核的大部分功能。因此,可以说
    Shell是Unux/Linux最重要的实用程序。
    Linux中的Shell有多种类型,其中最常用的是Bourne
    Shell(sh)、C Shell(csh)和Korn Shell(ksh)。大多数Linux发行版本缺省的Shell是Bourne
    Again Shell,它是Bourne Shell的扩展,简称bash,与Bourne Shell完全向后兼容,并且在Bourne
    Shell的基础上增加了很多特性。bash放在/bin/bash中,可以提供如命令补全、命令编辑和命令历史表等功能。它还包含了很多C
    Shell和Korn
    Shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。Linux系统中200多个命令中有40个是bash的内部命令,主要包括
    exit、less、lp、kill、 cd、pwd、fc、fg等。


    Linux必学的60个命令(2)-文件处理命令
    Linux
    系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是
    一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。
    Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。
    file
    1.作用 件内容判断文件类型,使用权限是所有用户。
    2.格式
    file通过探测文
    file [options] 文件名
    3.[options]主要参数
    -v:在标准输出后显示版本信息,并且退出。
    -z:探测压缩过的文件类型。
    -L:允许符合连接。
    -f name:从文件namefile中读取要分析的文件名列表。
    4.简单说明
    使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。
    5.应用实例
    如果我们看到一个没有后缀的文件grap,可以使用下面命令:
    $ file grap
    grap: English text
    此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。
    mkdir
    1.作用
    mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。
    2.格式
    mkdir [options] 目录名
    3.[options]主要参数
    -m, --mode=模式:设定权限,与chmod类似。
    -p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。
    -v, --verbose:每次创建新目录都显示信息。
    --version:显示版本信息后离开。
    4.应用实例
    在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:
    $ mkdir -m 777 tsk
    grep
    1.作用
    grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
    2.格式
    grep [options]
    3.主要参数
    [options]主要参数:
    -c:只输出匹配行的计数。
    -I:不区分大小写(只适用于单字符)。
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。
    pattern正则表达式主要参数:
    \:忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    。:所有的单个字符。
    * :有字符,长度可以为0。

    则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式
    (Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符
    “*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。
    4.应用实例

    询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了
    第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3
    \}\.[0-0\{3\}\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。
    $grep '[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile
    补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。
    dd
    1.作用
    dd命令用来复制文件,并根据参数将数据转换和格式化。
    2.格式
    dd [options]
    3.[opitions]主要参数
    bs=字节:强迫 ibs=及obs=。
    cbs=字节:每次转换指定的。
    conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。
    count=块数目:只复制指定的输入数据。
    ibs=字节:每次读取指定的。
    if=文件:读取内容,而非标准输入的数据。
    obs=字节:每次写入指定的。
    of=文件:将数据写入,而不在标准输出显示。
    seek=块数目:先略过以obs为单位的指定的输出数据。
    skip=块数目:先略过以ibs为单位的指定的输入数据。
    4.应用实例
    dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:
    $ rdev vmlinuz /dev/hda
    $dd if=vmlinuz of=/dev/fd0
    上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。
    find
    1.作用
    find命令的作用是在目录中搜索文件,它的使用权限是所有用户。
    2.格式
    find [path][options][expression]
    path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。
    3.主要参数
    [options]参数:
    -depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。
    -maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。
    -mindepth levels:表示至少查找到开始目录的第level层子目录。
    -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。
    -version:打印版本。
    [expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。
    —name:支持统配符*和?。
    -atime n:搜索在过去n天读取过的文件。
    -ctime n:搜索在过去n天修改过的文件。
    -group grpoupname:搜索所有组为grpoupname的文件。
    -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。
    -size n:搜索文件大小是n个block的文件。
    -print:输出搜索结果,并且打印。
    4.应用技巧
    find命令查找文件的几种方法:
    (1)根据文件名查找
    例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:
    find / -name lilo.conf
    find命令后的“/”表示搜索整个硬盘。
    (2)快速查找文件

    据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了
    这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配
    置文件,那么它应该在/etc目录内,此时可以使用下面命令:
    find /etc -name smb.conf
    这样,使用“快速查找文件”方式可以缩短时间。
    (3)根据部分文件名查找方法
    有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:
    find / -name '*abvd*'
    输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。
    (4) 使用混合查找方式查找文件
    find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。
    find /etc -size +500000c -and -mtime +1
    mv
    1.作用
    mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。
    2.格式
    mv[options] 源文件或目录 目标文件或目录
    3.[options]主要参数
    -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。
    -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
    4.应用实例
    (1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中:
    $ mv /usr/cbu/ * .
    (2)将文件cjh.txt重命名为wjz.txt:
    $ mv cjh.txt wjz.txt 
    ls
    1.作用
    ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。
    2.格式
    ls [options][filename]
    3.options主要参数
    -a, --all:不隐藏任何以“.” 字符开始的项目。
    -A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。
    --author:印出每个文件著作者。
    -b, --escape:以八进制溢出序列表示不可打印的字符。
    --block-size=大小:块以指定的字节为单位。
    -B, --ignore-backups:不列出任何以 ~ 字符结束的项目。
    -f:不进行排序,-aU参数生效,-lst参数失效。
    -F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。
    -g:like -l, but do not list owner。
    -G, --no-group:inhibit display of group information。
    -i, --inode:列出每个文件的inode号。
    -I, --ignore=样式:不印出任何符合Shell万用字符的项目。
    -k:即--block-size=1K。
    -l:使用较长格式列出信息。
    -L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。
    -m:所有项目以逗号分隔,并填满整行行宽。
    -n, --numeric-uid-gid:类似-l,但列出UID及GID号。
    -N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。
    -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。
    -Q, --quote-name:将项目名称括上双引号。
    -r, --reverse:依相反次序排列。
    -R, --recursive:同时列出所有子目录层。
    -s, --size:以块大小为序。
    4.应用举例
    ls
    命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可执
    行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色表示是其它格式文件。ls最常使用的是ls- l,见图1所示。
    图1 使用ls-l命令

    件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型,它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文
    件)、c(字符设备文件)。后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其
    他用户的权限。每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)。对于目录,表示进入权限。s表示当文件被执行时,把该文件的UID
    或GID赋予执行进程的UID(用户ID)或GID(组
    ID)。t表示设置标志位(留在内存,不被换出)。如果该文件是目录,那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文
    件,那么在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名
    称。
    diff
    1.作用
    diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。
    2.格式
    diff [options] 源文件 目标文件
    3.[options]主要参数
    -a:将所有文件当作文本文件来处理。
    -b:忽略空格造成的不同。
    -B:忽略空行造成的不同。
    -c:使用纲要输出格式。
    -H:利用试探法加速对大文件的搜索。
    -I:忽略大小写的变化。
    -n --rcs:输出RCS格式。
    cmp
    1.作用
    cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。
    2.格式
    cmp[options] 文件名
    3.[options]主要参数
    -l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。
    cat
    1.作用
    cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。
    2.格式
    cat [options] 文件1 文件2……
    3.[options]主要参数
    -n:由第一行开始对所有输出的行数编号。
    -b:和-n相似,只不过对于空白行不编号。
    -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。
    4.应用举例
    (1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令:
    $ cat README 
    (2)
    有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件
    打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中:
    $ cat README INSTALL File1
    (3)cat还有一个重要的功能就是可以对行进行编号,见图2所示。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。
    图2 使用cat命令/etc/named.conf文件进行编号
    对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:
    $ cat -b /etc/named.conf
    ln
    1.作用
    ln命令用来在文件之间创建链接,它的使用权限是所有用户。
    2.格式
    ln [options] 源文件 [链接名]
    3.参数
    -f:链结时先将源文件删除。
    -d:允许系统管理者硬链结自己的目录。
    -s:进行软链结(Symbolic Link)。
    -b:将在链结时会被覆盖或删除的文件进行备份。
    链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

    连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode
    Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户
    就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和
    其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。
    与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
    动手练习
    上面我们介绍了Linux文件处理命令,下面介绍几个实例,大家可以动手练习一下刚才讲过的命令。
    1.利用符号链接快速访问关键目录

    号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中。比如,
    Apache
    Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也
    非常不容易记忆)。
    为了解决这个问题,可以在主目录中创建一个符号链接,这样在需要进入该目录时,只需进入这个链接即可。
    为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令:
    $ ln -s /usr/local/httpd/htdocs gg
    这样每次进入gg目录就可访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。
    2.使用dd命令将init.rd格式的root.ram内容导入内存
    dd if=/dev/fd0 f=floppy.fd
    dd if=root.ram f=/dev/ram0 #
    3.grep命令系统调用
    grep是Linux/Unix中使用最广泛的命令之一,许多Linux系统内部都可以调用它。
    (1)如果要查询目录列表中的目录,方法如下:
    $ ls -l | grep '∧d'
    (2)如果在一个目录中查询不包含目录的所有文件,方法如下:
    $ ls -l | grep '∧[∧d]'
    (3)用find命令调用grep,如所有C源代码中的“Chinput”,方法如下:
    $find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
    Linux必学的60个命令(3)-系统管理命令
    Linux必学的系统管理命令
    对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令。
    df
    1.作用
    df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。
    2.格式
    df [options]
    3.主要参数
    -s:对每个Names参数只给出占用的数据块总数。
    -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
    -k:以1024字节为单位列出磁盘空间使用情况。
    -x:跳过在不同文件系统上的目录不予统计。
    -l:计算所有的文件大小,对硬链接文件则计算多次。
    -i:显示inode信息而非块使用量。
    -h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。
    -P:使用POSIX输出格式。
    -T:显示文件系统类型。
    4.说明
    df命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等。

    级权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%。这是因为Linux系统为超级用户保留了10%的空间,由其单独支配。也就是
    说,对于超级用户而言,他所见到的硬盘容量将是110%。这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常
    工作。
    5.应用实例
    Linux支持的文件系统非常多,包括JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、vfat、MSDOS等。使用df -T命令查看磁盘空间时还可以得到文件系统的信息:
    #df -T
    文件系统 类型 容量 已用 可用 已用% 挂载点
    /dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% /
    /dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C
    /dev/hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D
    /dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E
    /dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F
    /dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G
    从上面除了可以看到磁盘空间的容量、使用情况外,分区的文件系统类型、挂载点等信息也一览无遗。
    top
    1.作用
    top命令用来显示执行中的程序进程,使用权限是所有用户。
    2.格式
    top [-] [d delay] [q] [c] [S] [s] [n]
    3.主要参数
    d:指定更新的间隔,以秒计算。
    q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
    c:显示进程完整的路径与名称。
    S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
    s:安全模式。
    i:不显示任何闲置(Idle)或无用(Zombie)的行程。
    n:显示更新的次数,完成后将会退出top。
    4.说明
    top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息。这里我们结合图1来说明它给出的信息。
    图1 top命令的显示

    图1中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。第二行显示的是所有启动的进程、目前运行的、挂起
    (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。
    第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况,包括总的交换分区、使用
    的、空闲的和用于高速缓存的大小。第六行显示的项目最多,下面列出了详细解释。
    PID(Process ID):进程标示号。
    USER:进程所有者的用户名。
    PR:进程的优先级别。
    NI:进程的优先级别数值。
    VIRT:进程占用的虚拟内存值。
    RES:进程占用的物理内存值。
    SHR:进程使用的共享内存值。
    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
    %CPU:该进程占用的CPU使用率。
    %MEM:该进程占用的物理内存和总内存的百分比。
    TIME+:该进程启动后占用的总的CPU时间。
    Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
    top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
    :立刻刷新。
    P:根据CPU使用大小进行排序。
    T:根据时间、累计时间排序。
    q:退出top命令。
    m:切换显示内存信息。
    t:切换显示进程和CPU状态信息。
    c:切换显示命令名称和完整命令行。
    M:根据使用内存大小进行排序。
    W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
    可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。
    5.应用实例
    使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面,见图2所示。
    图2 使用top命令监视指定用户
    free
    1.作用
    free命令用来显示内存的使用情况,使用权限是所有用户。
    2.格式
    free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
    3.主要参数
    -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
    -s delay:显示每隔多少秒数来显示一次内存使用情况。
    -t:显示内存总和列。
    -o:不显示缓冲区调节列。
    4.应用实例
    free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
    #free -b -s5
    使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。
    quota
    1.作用
    quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户。
    2.格式
    quota [-g][-u][-v][-p] 用户名 组名
    3.参数
    -g:显示用户所在组的磁盘使用限制。
    -u:显示用户的磁盘使用限制。
    -v:显示没有分配空间的文件系统的分配情况。
    -p:显示简化信息。
    4.应用实例
    在企业应用中磁盘配额非常重要,普通用户要学会看懂自己的磁盘使用情况。要查询自己的磁盘配额可以使用下面命令(下例中用户账号是caojh):
    #quota caojh
    Disk quotas for user caojh(uid 502):
    Filesystem blocks quota limit grace files quota limit grace
    /dev/hda3 58 200000 400000 41 500 1000
    以上显示ID号为502的caojh账号,文件个数设置为500~1000个,硬盘空间限制设置为200MB~400MB。一旦磁盘配额要用完时,就需要删除一些垃圾文件或向系统管理员请求追加配额。
    at
    1.作用
    at命令用来在指定时刻执行指定的命令序列。
    2.格式
    at [-V] [-q x] [-f file] [-m] time
    3.主要参数
    -V:显示标准错误输出。
    -q:许多队列输出。
    -f:从文件中读取作业。
    -m:执行完作业后发送电子邮件到用户。
    time:设定作业执行的时间。time格式有严格的要求,由小时、分钟、日期和时间的偏移量组成,其中日期的格式为MM.DD.YY,MM是分钟,DD是日期,YY是指年份。偏移量的格式为时间+偏移量,单位是minutes、hours和days。
    4.应用实例
    #at -f data 15:30 +2 days
    上面命令表示让系统在两天后的17:30执行文件data中指明的作业。
    lp
    1.作用
    lp是打印文件的命令,使用权限是所有用户。
    2.格式
    lp [-c][-d][-m][-number][-title][-p]
    3.主要参数
    -c:先拷贝文件再打印。
    -d:打印队列文件。
    -m:打印结束后发送电子邮件到用户。
    -number:打印份数。
    -title:打印标题。
    -p:设定打印的优先级别,最高为100。
    4.应用实例
    (1)使用lp命令打印多个文件
    #lp 2 3 4
    request id is 11 (3 file(s))
    其中2、3、4分别是文件名;“request id is 11 (3 file(s)) ”表示这是第11个打印命令,依次打印这三个文件。
    (2)设定打印优先级别
    #lp lp -d LaserJet -p 90 /etc/aliases
    通过添加“-p 90”,规定了打印作业的优先级为90。它将在优先级低于90的打印作业之前打印,包括没有设置优先级的作业,缺省优先级是50
    useradd
    1.作用
    useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。
    2.格式
    useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
    3.主要参数
    -c:加上备注文字,备注文字保存在passwd的备注栏中。 
    -d:指定用户登入时的启始目录。
    -D:变更预设值。
    -e:指定账号的有效期限,缺省表示永久有效。
    -f:指定在密码过期后多少天即关闭该账号。
    -g:指定用户所属的群组。
    -G:指定用户所属的附加群组。
    -m:自动建立用户的登入目录。
    -M:不要自动建立用户的登入目录。
    -n:取消建立以用户名称为名的群组。
    -r:建立系统账号。
    -s:指定用户登入后所使用的shell。
    -u:指定用户ID号。
    4.说明
    useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。
    5.应用实例
    建立一个新用户账户,并设置ID:
    #useradd caojh -u 544
    需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。
    groupadd
    1.作用
    groupadd命令用于将新组加入系统。
    2.格式
    groupadd [-g gid] [-o]] [-r] [-f] groupname
    3.主要参数
    -g gid:指定组ID号。
    -o:允许组ID号,不必惟一。
    -r:加入组ID号,低于499系统账号。
    -f:加入已经有的组时,发展程序退出。
    4.应用实例
    建立一个新组,并设置组ID加入系统:
    #groupadd -g 344 cjh
    此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。
    kill
    1.作用
    kill命令用来中止一个进程。
    2.格式
    kill [ -s signal | -p ] [ -a ] pid ...
    kill -l [ signal ]
    3.参数
    -s:指定发送的信号。
    -p:模拟发送信号。
    -l:指定信号的名称列表。
    pid:要中止进程的ID号。
    Signal:表示信号。
    4.说明
    进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。
    Linux
    操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
    批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的
    Apache服务器的监控进程。
    kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号
    和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中
    止某些进程来提高系统资源。在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭
    这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。
    5.应用实例
    (1)强行中止(经常使用杀掉)一个进程标识号为324的进程:
    #kill -9 324
    (2)解除Linux系统的死锁
    在Linux
    中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当
    kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果
    Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID,然
    后使用kill命令停止这个程序:
    #kill -SIGKILL XXX
    其中,XXX是包含有Mozolla浏览器的程序的进程标识号。
    (3)使用命令回收内存
    我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令:
    #kill -9 XXX
    其中,XXX是无用的进程标识号。
    然后使用下面命令:
    #free
    此时会发现可用内存容量增加了。
    (4)killall命令
    Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:
    # killall -HUP inetd
    crontab
    1.作用
    使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。
    2.格式
    crontab [ -u user ] 文件
    crontab [ -u user ] { -l | -r | -e }
    3.主要参数
    -e:执行文字编辑器来设定时程表,内定的文字编辑器是vi。
    -r:删除目前的时程表。
    -l:列出目前的时程表。
    crontab
    文件的格式为“M H D m d
    cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期
    天)。cmd表示要运行的程序,它被送入sh执行,这个Shell只有USER、HOME、SHELL三个环境变量。
    4.说明
    和at命令相比,crontab命令适合完成固定周期的任务。
    5.应用实例
    设置一个定时、定期的系统提示:
    [cao @www cao]#crontab -e
    此时系统会打开一个vi编辑器。
    如果输入以下内容:35 17 * * 5 wall "Tomorrow is Saturday I will go CS",然后存盘退出。这时在/var/spool/cron/目录下会生产一个cao的文件,内容如下:
    # DO NOT EDIT THIS FILE - edit the master and reinstall.
    # (/tmp/crontab.2707 installed on Thu Jan 1 22:01:51 2004)
    # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
    35 17 * * 5 wall "Tomorrow is Saturday I will play CS "
    这样每个星期五17:35系统就会弹出一个终端,提醒星期六可以打打CS了!显示结果见图3所示。
    图3 一个定时、定期的系统提示
    动手练习
    1.联合使用kill和top命令观察系统性能的变化
    首先启动一个终端运行top命令,然后再启动一个终端使用kill命令,见图4所示。
    图4 观察kill命令对top终端的影响
    这时利用上面介绍的kill命令来中止一些程序:
    #kill SIGKILL XXX
    然后再看top命令终端的变化,包括内存容量、CPU使用率、系统负载等。注意,有些进程是不能中止的,不过学习Linux命令时可以试试,看看系统有什么反应。
    2.使用at和halt命令定时关机
    首先设定关机时间是17:35,输入下面代码:
    #at 17:35
    warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
    at>halt `-i -p
    at> 
    job 6 at 2004-01-01 17:35

    时实际上就已经进入Linux系统的Shell,并且编写一个最简单程序:halt -i
    -p。上面Shell中的文本结束符号表示按“Ctrl+D”组合键关闭命令,提交任务退出Shell。“Job 6 at 2004-01-01
    17:35”表示系统接受第6个at命令,在“2004-01-01 17:35”时执行命令:先把所有网络相关的装置停止,关闭系统后关闭电源。
    3.用crontab命令实现每天定时的病毒扫描
    前面已经介绍了一个简单的crontab命令操作,这里看一些更重要的操作。
    (1)建立一个文件,文件名称自己设定,假设为caoproject:
    #crontab -e
    (2)文件内容如下:
    05 09 * * * antivir
    用vi编辑后存盘退出。antivir是一个查杀Linux病毒的软件,当然需要时先安装在系统中。
    (3)使用crontab命令添加到任务列表中:
    #crontab caoproject
    这样系统内所有用户在每天的9点05分会自动进行病毒扫描。
    4.用kill使修改的配置文件马上生效
    Windows用户一般都知道,重要配置文件修改后往往都要重新启动计算机才能使修改生效。而Linux由于采用了模块化设计,可以自己根据需要实时设定服务。这里以网络服务inetd为例介绍一些操作技巧。
    inetd
    是一个监听守护进程,监听与提供互联网服务进程(如rlogin、telnet、ftp、rsh)进行连接的要求,并扩展所需的服务进程。默认情况下,
    inetd监听的这些daemon均列于/etc
    /inetd.conf文件中。编辑/etc/inetd.conf文件,可以改变inetd启动服务器守护进程的选项,然后驱使inetd以
    SIGHUP(signal 1)向当前的inetd进程发送信号,使inetd重读该文件。这一过程由kill命令来实现。
    用vi或其它编辑器修改inetd.conf后,首先使用下面命令:
    #ps -ef |grep inetd
    上面代码表明查询inetd.conf的进程号(PID),这里假设是1426,然后使用下面命令:
    # kill -1426 inetd
    这样配置文件就生效了。
    这一讲介绍的系统管理命令都是比较重要的,特别是crontab命令和quota命令使用起来会有一定难度,需要多做一些练习。另外,使用kill命令要注意“-9“这个参数,练习时最好不要运行一些重要的程序。 
    Linux必学的60个命令(4)-网络操作命令Linux必学的60个命令:网络操作命令

    为Linux系统是在Internet上起源和发展的,它与生俱来拥有强大的网络功能和丰富的网络应用软件,尤其是TCP/IP网络协议的实现尤为成熟。
    Linux的网络命令比较多,其中一些命令像ping、
    ftp、telnet、route、netstat等在其它操作系统上也能看到,但也有一些Unix/Linux系统独有的命令,如ifconfig、
    finger、mail等。Linux网络操作命令的一个特点是,命令参数选项和功能很多,一个命令往往还可以实现其它命令的功能。
    ifconfig
    1.作用
    ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。
    2.格式
    ifconfig -interface [options] address
    3.主要参数
    -interface:指定的网络接口名,如eth0和eth1。
    up:激活指定的网络接口卡。
    down:关闭指定的网络接口。
    broadcast address:设置接口的广播地址。
    pointopoint:启用点对点方式。
    address:设置指定接口设备的IP地址。
    netmask address:设置接口的子网掩码。
    4.应用说明
    ifconfig是用来设置和配置网卡的命令行工具。为了手工配置网络,这是一个必须掌握的命令。使用该命令的好处是无须重新启动机器。要赋给eth0接口IP地址207.164.186.2,并且马上激活它,使用下面命令:
    #fconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127

    命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址。若运行不带任何参数的ifconfig命令,这个命令将显示机器所有激活接口的
    信息。带有“-a”参数的命令则显示所有接口的信息,包括没有激活的接口。注意,用ifconfig命令配置的网络设备参数,机器重新启动以后将会丢失。
    如果要暂停某个网络接口的工作,可以使用down参数:
    #ifconfig eth0 down
    ip
    1.作用
    ip是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具,例如ifconfig、route等,使用权限为超级用户。几乎所有的Linux发行版本都支持该命令。
    2.格式
    ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
    3.主要参数
    OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头,分为长、短两种形式。目前,ip支持如表1所示选项。
    OBJECT是要管理者获取信息的对象。目前ip认识的对象见表2所示。
    表1 ip支持的选项
    -V,-Version 打印ip的版本并退出。
    -s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或多次,则输出的信息将更为详尽。
    -f,-family 这个选项后面接协议种类,包括inet、inet6或link,强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或any。link比较特殊,它表示不涉及任何网络协议。
    -4 是-family inet的简写。
    -6 是-family inet6的简写。
    -0 是-family link的简写。
    -o,-oneline 对每行记录都使用单行输出,回行用字符代替。如果需要使用wc、grep等工具处理ip的输出,则会用到这个选项。
    -r,-resolve 查询域名解析系统,用获得的主机名代替主机IP地址
    COMMAND
    设置针对指定对象执行的操作,它和对象的类型有关。一般情况下,ip支持对象的增加(add)、删除(delete)和展示(show或list)。有些
    对象不支持这些操作,或者有其它的一些命令。对于所有的对象,用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法。如果没
    有指定对象的操作命令,ip会使用默认的命令。一般情况下,默认命令是list,如果对象不能列出,就会执行help命令。
    ARGUMENTS
    是命令的一些参数,它们倚赖于对象和命令。ip支持两种类型的参数:flag和parameter。flag由一个关键词组成;parameter由一个
    关键词加一个数值组成。为了方便,每个命令都有一个可以忽略的默认参数。例如,参数dev是ip link命令的默认参数,因此ip link ls
    eth0等于ip link ls dev eth0。我们将在后面的详细介绍每个命令的使用,命令的默认参数将使用default标出。
    4.应用实例
    添加IP地址192.168.2.2/24到eth0网卡上:
    #ip addr add 192.168.1.1/24 dev eth0
    丢弃源地址属于192.168.2.0/24网络的所有数据报:
    #ip rule add from 192.168.2.0/24 prio 32777 reject
    ping
    1.作用
    ping检测主机网络接口状态,使用权限是所有用户。
    2.格式
    ping [-dfnqrRv][-c][-i][-I][-l][-p][-s][-t] IP地址
    3.主要参数
    -d:使用Socket的SO_DEBUG功能。
    -c:设置完成要求回应的次数。
    -f:极限检测。
    -i:指定收发信息的间隔秒数。
    -I:网络界面使用指定的网络界面送出数据包。
    -l:前置载入,设置在送出要求信息之前,先行发出的数据包。
    -n:只输出数值。
    -p:设置填满数据包的范本样式。
    -q:不显示指令执行过程,开头和结尾的相关信息除外。
    -r:忽略普通的Routing Table,直接将数据包送到远端主机上。
    -R:记录路由过程。
    -s:设置数据包的大小。
    -t:设置存活数值TTL的大小。
    -v:详细显示指令的执行过程。
    ping
    命令是使用最多的网络指令,通常我们使用它检测网络是否连通,它使用ICMP协议。但是有时会有这样的情况,我们可以浏览器查看一个网页,但是却无法
    ping通,这是因为一些网站处于安全考虑安装了防火墙。另外,也可以在自己计算机上试一试,通过下面的方法使系统对ping没有反应:
    # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    netstat
    1.作用
    检查整个Linux网络状态。 
    2.格式
    netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]
    3.主要参数
    -a--all:显示所有连线中的Socket。
    -A:列出该网络类型连线中的IP相关地址和网络类型。
    -c--continuous:持续列出网络状态。
    -C--cache:显示路由器配置的快取信息。
    -e--extend:显示网络其它相关信息。
    -F--fib:显示FIB。
    -g--groups:显示多重广播功能群组组员名单。
    -h--help:在线帮助。
    -i--interfaces:显示网络界面信息表单。
    -l--listening:显示监控中的服务器的Socket。
    -M--masquerade:显示伪装的网络连线。
    -n--numeric:直接使用IP地址,而不通过域名服务器。
    -N--netlink--symbolic:显示网络硬件外围设备的符号连接名称。
    -o--timers:显示计时器。
    -p--programs:显示正在使用Socket的程序识别码和程序名称。
    -r--route:显示Routing Table。
    -s--statistice:显示网络工作信息统计表。
    -t--tcp:显示TCP传输协议的连线状况。
    -u--udp:显示UDP传输协议的连线状况。
    -v--verbose:显示指令执行过程。
    -V--version:显示版本信息。
    -w--raw:显示RAW传输协议的连线状况。
    -x--unix:和指定“-A unix”参数相同。
    --ip--inet:和指定“-A inet”参数相同。
    4.应用实例
    netstat
    主要用于Linux察看自身的网络状况,如开启的端口、在为哪些用户服务,以及服务的状态等。此外,它还显示系统路由表、网络接口状态等。可以说,它是一
    个综合性的网络状态的察看工具。在默认情况下,netstat只显示已建立连接的端口。如果要显示处于监听状态的所有端口,使用-a参数即可:
    #netstat -a
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp 0 0 *:32768 *:* LISTEN
    tcp 0 0 *:32769 *:* LISTEN
    tcp 0 0 *:nfs *:* LISTEN
    tcp 0 0 *:32770 *:* LISTEN
    tcp 0 0 *:868 *:* LISTEN
    tcp 0 0 *:617 *:* LISTEN
    tcp 0 0 *:mysql *:* LISTEN
    tcp 0 0 *:netbios-ssn *:* LISTEN
    tcp 0 0 *:sunrpc *:* LISTEN
    tcp 0 0 *:10000 *:* LISTEN
    tcp 0 0 *:http *:* LISTEN
    ......
    上面显示出,这台主机同时提供HTTP、FTP、NFS、MySQL等服务。
    telnet
    1.作用
    telnet表示开启终端机阶段作业,并登入远端主机。telnet是一个Linux命令,同时也是一个协议(远程登陆协议)。
    2.格式
    telnet [-8acdEfFKLrx][-b][-e][-k][-l][-n][-S][-X][主机名称IP地址]
    3.主要参数
    -8:允许使用8位字符资料,包括输入与输出。
    -a:尝试自动登入远端系统。
    -b:使用别名指定远端主机名称。
    -c:不读取用户专属目录里的.telnetrc文件。
    -d:启动排错模式。
    -e:设置脱离字符。
    -E:滤除脱离字符。
    -f:此参数的效果和指定“-F”参数相同。
    -F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
    -k:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
    -K:不自动登入远端主机。
    -l:指定要登入远端主机的用户名称。
    -L:允许输出8位字符资料。
    -n:指定文件记录相关信息。
    -r:使用类似rlogin指令的用户界面。
    -S:服务类型,设置telnet连线所需的IP TOS信息。
    -x:假设主机有支持数据加密的功能,就使用它。
    -X:关闭指定的认证形态。
    4.应用说明

    户使用telnet命令可以进行远程登录,并在远程计算机之间进行通信。用户通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。为了通过
    telnet登录到远程计算机上,必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作
    权限,因此,这种情况下能使用的功能是很少的。
    telnet只为普通终端提供终端仿真,而不支持X-
    Window等图形环境。当允许远程用户登录时,系统通常把这些用户放在一个受限制的Shell中,以防系统被怀有恶意的或不小心的用户破坏。用户还可以
    使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。
    ftp
    1.作用
    ftp命令进行远程文件传输。FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身,所以ftp既是协议又是一个命令。
    2.格式
    ftp [-dignv][主机名称IP地址]
    3.主要参数
    -d:详细显示指令执行过程,便于排错分析程序执行的情形。
    -i:关闭互动模式,不询问任何问题。
    -g:关闭本地主机文件名称支持特殊字符的扩充特性。
    -n:不使用自动登陆。
    -v:显示指令执行过程。
    4.应用说明
    ftp
    命令是标准的文件传输协议的用户接口,是在TCP/IP网络计算机之间传输文件简单有效的方法,它允许用户传输ASCⅡ文件和二进制文件。为了使用ftp
    来传输文件,用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp会话,并用来确定用户对要传输的文件进行什么样的访问。
    另外,用户需要知道对其进行ftp会话的计算机名字的IP地址。
    用户可以通过使用ftp客户程序,连接到另一台计算机上;可以在目录中上下移动、列出目录内容;可以把文件从远程计算机机拷贝到本地机上;还可以把文件从本地机传输到远程系统中。ftp内部命令有72个,下面列出主要几个内部命令:
    ls:列出远程机的当前目录。
    cd:在远程机上改变工作目录。
    lcd:在本地机上改变工作目录。
    close:终止当前的ftp会话。
    hash:每次传输完数据缓冲区中的数据后就显示一个#号。
    get(mget):从远程机传送指定文件到本地机。
    put(mput):从本地机传送指定文件到远程机。
    quit:断开与远程机的连接,并退出ftp。
    route
    1.作用
    route表示手工产生、修改和查看路由表。
    2.格式
    #route [-add][-net|-host] targetaddress [-netmask Nm][dev]If]
    #route [-delete][-net|-host] targetaddress [gw Gw] [-netmask Nm] [dev]If]
    3.主要参数
    -add:增加路由。
    -delete:删除路由。
    -net:路由到达的是一个网络,而不是一台主机。
    -host:路由到达的是一台主机。
    -netmask Nm:指定路由的子网掩码。
    gw:指定路由的网关。
    [dev]If:强迫路由链指定接口。
    4.应用实例
    route命令是用来查看和设置Linux系统的路由信息,以实现与其它网络的通信。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
    在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。使用下面命令可以增加一个默认路由:
    route add 0.0.0.0 192.168.1.1
    rlogin
    1.作用
    rlogin用来进行远程注册。
    2.格式
    rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host
    3.主要参数
    -8:此选项始终允许8位输入数据通道。该选项允许发送格式化的ANSI字符和其它的特殊代码。如果不用这个选项,除非远端的不是终止和启动字符,否则就去掉奇偶校验位。
    -E:停止把任何字符当作转义字符。当和-8选项一起使用时,它提供一个完全的透明连接。
    -K:关闭所有的Kerberos确认。只有与使用Kerberos 确认协议的主机连接时才使用这个选项。
    -L:允许rlogin会话在litout模式中运行。要了解更多信息,请查阅tty联机帮助。
    -d:打开与远程主机进行通信的TCP sockets的socket调试。要了解更多信息,请查阅setsockopt的联机帮助。
    -e:为rlogin会话设置转义字符,默认的转义字符是“~”。
    -k:请求rlogin获得在指定区域内远程主机的Kerberos许可,而不是获得由krb_realmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
    -x:为所有通过rlogin会话传送的数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。
    4.使用说明
    如果在网络中的不同系统上都有账号,或者可以访问别人在另一个系统上的账号,那么要访问别的系统中的账号,首先就要注册到系统中,接着通过网络远程注册到账号所在的系统中。rlogin可以远程注册到别的系统中,它的参数应是一个系统名。
    rcp
    1.作用
    rcp代表远程文件拷贝,用于计算机之间文件拷贝,使用权限是所有用户。
    2.格式
    rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file
    3.主要参数
    -r:递归地把源目录中的所有内容拷贝到目的目录中。要使用这个选项,目的必须是一个目录。
    -p:试图保留源文件的修改时间和模式,忽略umask。
    -k:请求rcp获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
    -x:为传送的所有数据打开DES加密。
    finger
    1.作用
    finger用来查询一台主机上的登录账号的信息,通常会显示用户名、主目录、停滞时间、登录时间、登录Shell等信息,使用权限为所有用户。
    2.格式
    finger [选项] [使用者] [用户@主机]
    3.主要参数
    -s:显示用户注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
    -l:除了用-s选项显示的信息外,还显示用户主目录、登录Shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
    -p:除了不显示.plan文件和.project文件以外,与-l选项相同。
    4.应用实例
    在计算机上使用finger:
    [root@localhost root]# Finger
    Login Name Tty Idle Login Time Office Office Phone
    root root tty1 2 Dec 15 11
    root root pts/0 1 Dec 15 11
    root root *pts/1 Dec 15 11
    5.应用说明
    如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程的支持。
    mail
    1.作用
    mail作用是发送电子邮件,使用权限是所有用户。此外,mail还是一个电子邮件程序。
    2.格式
    mail [-s subject] [-c address] [-b address]
    mail -f [mailbox]mail [-u user]
    3.主要参数
    -b address:表示输出信息的匿名收信人地址清单。
    -c address:表示输出信息的抄送()收信人地址清单。
    -f [mailbox]:从收件箱者指定邮箱读取邮件。
    -s subject:指定输出信息的主体行。
    [-u user]:端口指定优化的收件箱读取邮件。
    nslookup
    1.作用
    nslookup命令的功能是查询一台机器的IP地址和其对应的域名。使用权限所有用户。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。
    2.格式
    nslookup [IP地址/域名]
    3.应用实例
    (1)在本地计算机上使用nslookup命令
    $ nslookup
    Default Server: name.cao.com.cn
    Address: 192.168.1.9
    >
    在符号“>”后面输入要查询的IP地址域名,并回车即可。如果要退出该命令,输入“exit”,并回车即可。
    (2)使用nslookup命令测试named
    输入下面命令:
    nslookup
    然后就进入交换式nslookup环境。如果named正常启动,则nslookup会显示当前DNS服务器的地址和域名,否则表示named没能正常启动。
    下面简单介绍一些基本的DNS诊断。

    检查正向DNS解析,在nslookup提示符下输入带域名的主机名,如hp712.my.com,nslookup应能显示该主机名对应的IP地址。如
    果只输入hp712,nslookup会根据/etc/resolv.conf的定义,自动添加my.com域名,并回答对应的IP地址。
    ◆检查反向DNS解析,在nslookup提示符下输入某个IP地址,如192.22.33.20,nslookup应能回答该IP地址所对应的主机名。
    ◆检查MX邮件地址记录在nslookup提示符下输入:
    set q=mx
    然后输入某个域名,输入my.com和mail.my.com,nslookup应能够回答对应的邮件服务器地址,即support.my.com和support2.my.com。
    动手练习
    1.危险的网络命令

    联网的发展使安全成为一个不能忽视的问题,finger、ftp、rcp和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,嗅
    探器可以非常容易地截获这些口令和数据。而且,这些服务程序的安全验证方式也是有弱点的,很容易受到“中间服务器”方式的攻击。这里笔者把一些不安全的命
    令根据危险等级列出,见表3所示。
    现在ftp、telnet可以被SSH命令代替绑定在端口22上,其连
    接采用协商方式,使用RSA加密。身份鉴别完成之后,后面的所有流量都使用IDEA
    进行加密。SSH(Secure Shell)程序可以通过网络登录到远程主机,并执行命令。rcp、rlogin等远程调用命令也逐渐被VNC软件代
    替。
    2.在一张网卡上绑定多个IP地址
    在Linux下,可以使用ifconfig方便地绑定多个IP地址到一张网卡。例如,eth0接口的原有IP地址为192.168.0 .254,可以执行下面命令:
    ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0
    ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0
    ......
    3.修改网卡MAC地址
    首先必须关闭网卡设备,命令如下:
    /sbin/ifconfig eth0 down
    修改MAC地址,命令如下:
    /sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
    重新启用网卡:
    /sbin/ifconfig eht0 up
    这样网卡的MAC地址就更改完成了。每张网卡的MAC地址是惟一,但不是不能修改的,只要保证在网络中的MAC地址的惟一性就可以了。
    4.初步部署IPv6
    IPv4
    技术在网络发展中起到了巨大的作用,不过随着时间的流逝它无论在网络地址的提供、服务质量、安全性等方面都越来越力不从心,IPv6呼之欲出。Linux
    是所有操作系统中最先支持IPv6的,一般Linux基于2.4内核的Linux发行版本都可以直接使用IPv6,不过主要发行版本没有加载IPv6模
    块,可以使用命令手工加载,需要超级用户的权限。
    (1)加载IPv6模块
    使用命令检测,其中inet6 addr: fe80::5054:abff:fe34:5b09/64,就是eth0网卡的IPv6地址。
    # modprobe IPv6
    #ifconfig
    eth0 Link encap:Ethernet HWaddr 52:54:AB:34:5B:09
    inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
    inet6 addr: fe80::5054:abff:fe34:5b09/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame.:0
    TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:100
    RX bytes:0 (0.0 b) TX bytes:1360 (1.3 Kb)
    Interrupt:5 Base address:0xec00
    (2)使用ping命令检测网卡的IPv6地址是否有效
    #ping6 -I eth0 -c 2 fe80::200:e8ff:fea0:2586
    和IPv4不一样,使用ping6命令时必须指定一个网卡界面,否则系统不知道将数据包发送到哪个网络设备。I表示Interface、eth0是第一个网卡,-c表示回路,2表示ping6操作两次。结果见图1所示。
    图1 IPv6网络下的ping6命令
    (3)使用ip命令在IPv6下为eth0增加一个IP地址
    #ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0
    使用ifconfig命令,查看网卡是否出现第二个IPv6地址。
    Linux网络的主要优点是能够实现资源和信息的共享,并且用户可以远程访问信息。Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户进行网络设定、检查网络状况、登录到远程计算机上、传输文件和执行远程命令等。
    上面介绍了Linux中比较重要的网络命令,其实Linux还有许多命令需要学习。Linux网络操作命令的一个特点就是命令参数选项很多,并不要求全部记住,关键在于理解命令的主要用途和学会使用帮助信息。 
    Linux必学的60个命令(5)-网络安全命令Linux必学的60个命令:系统安全相关命令
    虽然Linux和Windows NT/2000系统一样是一个多用户的系统,但是它们之间有不少重要的差别。对于很多习惯了Windows系统的管理员来讲,如何保证Linux操作系统安全、可靠将会面临许多新的挑战。本文将重点介绍Linux系统安全的命令。
    passwd
    1.作用
    passwd命令原来修改账户的登陆密码,使用权限是所有用户。
    2.格式
    passwd [选项] 账户名称
    3.主要参数
    -l:锁定已经命名的账户名称,只有具备超级用户权限的使用者方可使用。
    -u:解开账户锁定状态,只有具备超级用户权限的使用者方可使用。
    -x, --maximum=DAYS:最大密码使用时间(天),只有具备超级用户权限的使用者方可使用。
    -n, --minimum=DAYS:最小密码使用时间(天),只有具备超级用户权限的使用者方可使用。
    -d:删除使用者的密码, 只有具备超级用户权限的使用者方可使用。
    -S:检查指定使用者的密码认证种类, 只有具备超级用户权限的使用者方可使用。
    4.应用实例
    $ passwd
    Changing password for user cao.
    Changing password for cao
    (current) UNIX password:
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.
    从上面可以看到,使用passwd命令需要输入旧的密码,然后再输入两次新密码。
    su
    1.作用
    su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
    2.格式
    su [选项]... [-] [USER [ARG]...]
    3.主要参数
    -f , --fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
    -l , --login:加了这个参数之后,就好像是重新登陆为该使用者一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定USER,缺省情况是root。
    -m, -p ,--preserve-environment:执行su时不改变环境变数。
    -c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
    USER:欲变更的使用者账号,ARG传入新的Shell参数。
    4.应用实例
    变更账号为超级用户,并在执行df命令后还原使用者。 su -c df root
    umask
    1.作用
    umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。
    2.格式
    umask [-p] [-S] [mode]
    3.参数
    -S:确定当前的umask设置。
    -p:修改umask 设置。
    [mode]:修改数值。
    4.说明

    统Unix的umask值是022,这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,那
    么这种“组保护模式”就不在需要了。严密的权限设定构成了Linux安全的基础,在权限上犯错误是致命的。需要注意的是,umask命令用来设置进程所创
    建的文件的读写权限,最保险的值是0077,即关闭创建文件的进程以外的所有进程的读写权限,表示为-rw-------。在
    ~/.bash_profile中,加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。
    5.应用实例
    umask -S
    u=rwx,g=rx,o=rx
    umask -p 177
    umask -S
    u=rw,g=,o=
    上述5行命令,首先显示当前状态,然后把umask值改为177,结果只有文件所有者具有读写文件的权限,其它用户不能访问该文件。这显然是一种非常安全的设置。
    chgrp
    1.作用
    chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。
    2.格式
    chgrp [选项]... 组 文件...

    chgrp [选项]... --reference=参考文件 文件...
    将每个的所属组设定为。
    3.参数
    -c, --changes :像 --verbose,但只在有更改时才显示结果。
    --dereference:会影响符号链接所指示的对象,而非符号链接本身。
    -h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,�

    查看(46) 评论(0) 收藏 分享 管理

  • liunx下安装JDK和Eclipse

    2009-08-10 17:21:29

    安装JDK1.6

    下载jdk-6u3-linux-i586-rpm.bin

    chmod 755 jdk-6u3-linux-i586-rpm.bin //授权 按空格键往下
     ./jdk-6u3-linux-i586-rpm.bin             //安装 (yes)
     rpm -ivh jdk-6u3-linux-i586.rpm      //安装rpm      
       
     在vi /etc/profile 末尾加入
     
    JAVA_HOME=/JAVA/
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME%/lib/dt.jar
    export JAVA_HOME,PATH,CLASSPATH

    按ESC后输入
    :wq保存退出
     
    vi /home/username/.bashrc 末尾加入

    set JAVA_HOME=/java/
    export JAVA_HOME
    set PATH=$JAVA_HOME/bin:$PATH
    export PATH
    set CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    export CLASSPATH
     
    按ESC后输入
    :wq保存退出

    java -version  //试一下是不是可以看到Java(TM) SE Runtime Environnert 

     export设置全局变量大小写严格区分
     冒号":"分隔符
     "$"引用原来环境变量
     username 是你的用户名
     jdk1.6.0.03 安装完后的目录在 /usr/jdk1.6.0.03
      
     

    安装eclipse 

    下载eclipse-java-europa-fall2-linux-gtk.tar.gz

    gunzip  eclipse-java-europa-fall2-linux-gtk.tar.gz   //解压

    tar -xvf eclipse-java-europa-fall2-linux-gtk.tar         //执行压缩包 yes

    这时候就可以看到eclipse啦。
    在到桌面建一个快捷方式
    如:右击桌面====》新建启动器====》命令====》浏览路径设置到你解压下的文件里,/java/eclipse/eclipse
    安装完后再像windows一样配置一下eclipse的Jar路径指向/usr/jdk1.6.0.03

    编一个小程序试试,另一个世界感觉不错吧,就在这里OK啦! 

你可能感兴趣的:(linux)