Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1176860
  • 博文数量: 573
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 66
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-28 16:21
文章分类

全部博文(573)

文章存档

2018年(3)

2016年(48)

2015年(522)

分类: LINUX

2015-12-23 14:44:07


问题:Linux系统中以什么方式访问设备的?

回答:Linux系统中,以 文件 方式访问设备 。

什么是Linux文件系统?

问:Linux内核引导文件系统是?

答:Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。

 

/etc/fstab文件系统详解:

 /etc/fstab文件

    通常情况下,一个Linux系统将拥有很多的文件系统,然而,仅仅通过一个或非常少的文件系统来配置Linux系统也是可能的,你希望创建多个文件系统 的一个原因就是通过使用/etc/fstab文件中指定的mount选项来控制对它们的访问.

    /etc/fstab文件的内容主要包括六项:

    /dev/hda1     /              ext3    defaults  1 1

    /dev/hda5     /usr           ext3    defaults  1 2

    /dev/hda1     /home          ext3    defaults  1 2

    /dev/hda6     /var           ext3    defaults  1 1

    /dev/hda7     swap           swap    defaults  0 0

    /dev/fd0      /mnt/floppy    ext3    noauto    0 0

    /dev/cdrom    /mnt/cdrom     iso9660 noauto,ro 0 0

    none          /proc          proc    defaults  0 0

    第一列:设备名或者设备卷标名,(/dev/sda10 或者 LABEL=/)

    第二列:设备挂载目录        (例如上面的"/"或者"/mnt/D/")

    第三列:设备文件系统          (例如上面的"ext3"或者"vfat")

    第四列:挂载参数     (看帮助man mount)

    对于已经挂载好的设备,例如上面的/dev/sda2,现在要改变挂载参数,这时可以不用卸载该设备,而可以使用下面的命令(没有挂载的设 备,remount 这个参数无效)

    #mount /mnt/cdrom/ -o remount,ro  (改defaults为ro)

    为了安全起见,可以指明其他挂载参数,例如:

    default 设置该安装选项为rw,suid(允许SUID和SGID执行),dev(允许字符和块专用设备),exec(允许二进制文件的执行),auto(允许 mount -a),nouser(只有根用户能配置该文件系统,不允许普通用户挂载)和async(异步I/O)

    nodev 不解释或允许在该文件系统上创建字符或块专用文件(设备文件),(不允许挂载设备文件)

    noexec 在该文件系统上不允许二进制文件或脚本的执行,(不允许可执行文件可执行,但千万不要把根分区挂为noexec,那就无法使用系统了,连mount 命令都无法使用了,这时只有重新做系统了!

    ro 设置此文件系统为只读

    user 允许除根用户以外的用户配置该文件系统.除非被明令撤销否则该选项会自动设置noexec,nosuid和nodev选项

    nosuid,nosgid 不允许SUID或SGID对该文件系统产生作用(不允许有suid和sgid属性)

    noatime 取缔在此文件系统内所有文件和目录上的访问时间更新,该选项在2.2.x版及其之后的内核中可以使用

    第五列:指明是否要备份,(0为不备份,1为要备份,一般根分区要备份)

    第六列:指明自检顺序. (0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)


问:Linux文件系统用什么来标识?

答:Linux文件系统中每个文件用 i节点 来标识。

Linux文件系统详解:

    1 fstab文件的作用

    文件/etc/fstab存放的是系统中的文件系统信息.当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开.同时fsck、 mount、umount的等命令都利用该程序.

    2. fstab文件格式

    下面是/etc/fatab文件的一个示例行:

    fs_spec fs_file fs_type fs_options fs_dump fs_pass

    /dev/hda1 / ext2 defaults 1 1

    fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdaXN,X是IDE设备通道 (a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN.对于NFS情况,格式一般为:

    ,例如:`knuth.aeb.nl:/'.对于procfs,使用`proc'来定义.

    fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格.

    fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等.

问:Linux磁盘块由哪个部分组成?

答:全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。

Linux磁盘块管理详解:

    Liunx系统中,如何有效地对存储空间加以使用和管理,是一项非常重要的技术.本章讲述如何查看系统中存储空间的使用情况、如何进行文件的转储、以及如 何进行软盘的格式化.

    磁盘空间管理

    系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中.因此,应该随时监视磁盘空间的使用情况.Linux系统提供了一组有关磁盘空间管理的命 令.

    df命令

    功能:检查文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息.

    语法:df [选项]

    说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况.

    该命令各个选项的含义如下:

    -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统.

    -k 以k字节为单位显示.

    -i 显示i节点信息,而不是磁盘块.

    -t 显示各指定类型的文件系统的磁盘空间使用情况.

    -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反).

    -T 显示文件系统类型.

    例1:列出各文件系统的磁盘空间使用情况.

    $ df

    Filesystem 1 K-blocks Used Available Use% Mounted on

    /dev/hda2 1361587 1246406 44823 97% /

    df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4 列分别表示已用的和可用的数据块数目.用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数.这是因为缺省的每个分区都留了少量空间供系统管 理员使用.即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间.清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间.最后,Mounted on列表示文件系统的安装点.

问:Linux链接分为?

答:链接分为 硬链接 和 符号链接 。

Linux链接详解:

    一、软链接(符号链接)

    软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接.因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同 机器、不同网络对文件进行链接.

    建立软链接,只要在ln后面加上选项 –s.

    二、硬链接

    硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode.可以用:ln命令来建立硬链接.语法

    ln [options] existingfile newfile

    ln[options] existingfile-list directory

    用法: 第一种:为"existingfile"创建硬链接,文件名为"newfile".第二种:在"directory"目录中, 为"existingfile-list"中包含的所有文件创建一个同名的硬链接.常用可选[options] –f 无论"newfile"存在与否,都创建链接.-n 如果"newfile"已存在,就不创建链接.

问:Linux超级块包含哪些文件系统信息?

答:超级块包含了i节点表 和 空闲块表 等重要的文件系统信息。

Linux超级块详解:

    Linux系统中的每个文件都被赋予一个唯一的数值,这个数值称做索引节点.索引节点存储在一个称作索引节点表< inode table>中,该表在磁盘格式化时被分配.每个实际的磁盘或分区都有其自己的索引节点表.一个索引节点包含文件的所有信息,包括磁盘上数据的地址 和文件类型.文件类型包括如普通文件、目录和特殊文件这样的信息.

    linux硬盘组织方式为:引导区、超级块(superblock),索引结点(inode),数据块(datablock),目录块 (diredtory block).其中超级块中包含了关于该硬盘或分区上的文件系统的整体信息,如文件系统的大小等;超级块后面的数据结构是索引结点,它包含了针对某一个具 体文件的几乎全部信息,如文件的存取权限、所有者、大小、建立时间以及对应的目录块和数据块等;数据块是真正存储文件内容的位置.但是索引结点中不包括文 件的名字,文件名是放在目录块里的.目录块里包含有文件的名字以及此文件的索引结点编号.

问:某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限?

答:用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 。

问:Linux前台起动的进程使用哪个组合快捷键停止?

答:前台起动的进程使用 Ctrl+c 终止。

Linux快捷链详解:

    Linux基本的键盘输入快捷键和一些常用命令

   

    切换到第一个文本终端.在Linux下你可以有多达六个不同的终端.这个命令的意思是:"同时按住键和 键,然后按键,再释放所有的键".

    (n=16)

    切换到第n个文本终端.(你也可以使用不是很经常用到的命令chvt n 来实现,n指的是第n个文本终端).在文本终端下(不是在X窗口),你也可以简单使用来实现切换,不需 要键.

    打印出你正在使用的终端名称,如果你希望知道终端的名字,可以使用命令fgconsole.

   

    切换到第一个图形用户界面(一般来说X-window在第七个终端)

    (n=7到12)

    切换到第n个图形用户街面.根据缺省,第一个X-Window在第7个终端运行,从第8到第12什么也没有,当然你可以逐个启动这些图形用户界面.

   

    (在文本终端下)可以使用TAB自动完成命令,或者显示所有的可选项.这个快捷键真的非常好用,经常使用你会发觉它可以节约你很多的时间.

   

    (在文本终端或者X窗口下)滚动和编辑以前输入的命令.按执行一个历史命令

   

    回滚

   

    滚动终端输出.对于登录提示也起作用,所以你可以使用它回滚启动信息.你显卡的内存大小决定你可以回滚多少内容

   

    回滚终端输出

    <+>

    (在X窗口下) 改变X服务器的屏幕解析率 (如果你设置X服务器有多个不同的屏幕解析率).比如对于我的标准SVGA卡和显示器,在文件/etc/X11/XF86Config有以下的设置行: (从缺省开始,到可以支持的最大虚拟屏幕解析率)

    Modes "1024x768" "800x600" "640x480" "512x384" "480x300" "400x300" "1152x864"Z

    当然,首先我必须设置我的X服务器,可以使用using Xconfigurator, xf86config, 也可以手工编辑文件:/etc/X11/XF86Config.XFdrake (Mandrake使用图形用户界面进行配置 ).你也可以参考命令xvidtune和xvidgen.

    <->

    (在X窗口下)把X服务器的屏幕解析率修改到上一次的设置.

   

    (在X窗口,KDE下)关闭我鼠标将要指向的窗口(鼠标的光标形状会有所改变).同样的效果也可以使用命令xkill(在X终端上)来实现.当一个程序窗 口被挂住的时候特别有用.

   

    (在X窗口下) 终止当前的 X窗口服务.如果X窗口不能正常退出时可以使用.

   

    (适用于文本终端下)关机和重新启动.这是一个在文本终端下的正常关机命令,千万不要按计算机上的reset键来重新关机和重新启动!

    c

    终止当前进程(对于一般的小型文本模式的应用程序)

    d

    (在一个空白的命令行上输入)退出当前的终端.参加下一个命令.

    d

    给当前的进程送文件结束符合.不要按两次否则你会把自己退出系统.

    s

    停止终端传输

    q

    从新开始终端传输.如果你的终端突然莫名其妙的停止响应,可以参考上一条命令.

    z

    把当前进程送到后台处理.

    exit

    退出系统.我也可以使用logout命令达到同样效果.(如果你启动了第二个shell程序,比如,使用bash,这条命令将使你退出第二个shell回 到第一个shell,但是不会退出系统.当然,可以再一次使用exit退出)

    reset

    恢复崩溃的终端(有些终端显示一些奇怪的字符)到缺省的设置.当你使用cat命令准备显示一个二进制文件时,你可能看不到你所输入的命令,尽管命令仍然照 常工作.

    <鼠标的中间键>

    粘贴当前选择的文本.这是一个常规的Linux"复制-粘贴"操作.它是对被广泛采用的通信用户界面下"复制-粘贴"操作的一个非常有用的扩展(但是它不 支持旧版本的NetScape,因为在旧版的NetScape只能使用MAC/Windows风格的"复制-粘贴"操作.如果你运行"setup"程序进 行设置,你可以在文本终端下使用这个功能.而且它在大多数的对话框里也能很好的工作,真的非常方便!)如果你有一个"Linux-Ready"的鼠标 (logitec或者其类似产品)或者你通过使用"模拟三键鼠标",这个功能可以得到最大限度的发挥.一般来说,"第三键"的模拟是通过同时点击左右两个 鼠标键来实现.

    ~

    (水文符合) 我的主目录(一般来书是/home/我的登录名).举例,命令~/my_dir将修改我的工作目录到我的主目录的子目录"my_dir"下.相对于输 入"cd ~",你也可以只输入"cd",我把我的所有文件都放在自己的主目录下.

    .

    (点符号) 当前目录.举例:./my_program 将试图执行当前目录下的"my_program"文件

    (两个点)到当前的上一级目录(也叫"父目录").举个例子,命令"cd"将修改我的当前工作目录到上一级目录.

    一些KDE的快捷键(很有用,但不是非要不可的)

   

    切换不同的程序窗口.往回切换,使用

   

    切换不同的桌面.往回切换,使用

   

    显示我系统里正在运行的进程列表.允许我终止那些由我启动的进程(或者送信号给这些进程)

   

    访问K菜单 (对等于微软Windows的的"开始"菜单).

   

    使用键盘上的箭号键模拟鼠标的操作

    <鼠标左键>

    拖曳并移动一个窗口.一般来说,我通过拖曳窗口的题目栏来移动一个窗口.有些时候,我用它把

    一个窗口移动到屏幕之外.使用这个功能,我可以把窗口移动到屏幕的任何位置.

   

    把当前屏幕的快照存到剪贴板

   

    把当前桌面的快照存到剪贴板

   

    锁定桌面

   

    切换隐藏/显示桌面的功能(当老板走过来的时候迅速藏起你的纸牌接龙游戏非常管用哦!)

    (非必须掌握)

    这是在Linux的内核(底层内核)上支持的一组组合键.它意味着这些组合键在大部分情况下都是有效的.组合键主要是针对开发人员的程序调试目的或者在紧 急场合下才使用;你也可以使用其他的办法,安全第一.键在PC上指的是PrintScreen键.组合键的功能可以通过设置相 对应的内核参数来激活或者取消,比如: echo "1" > /proc/sys/kernel/sysrq

   

    终止在当前虚拟终端上运行的所有进程(包括X窗口).这个组合键被称为"安全访问键"(SAK).

   

    发送 TERM 信号(结束信号)到除了init进程以外的所有运行进程,要求其退出

   

    发送 KILL (终止信号)到除了init进程以外的所有运行进程, 这个组合键比上一个更加有效,但是也可能引起一些程序被异常终止.

   

    发送KILL命令到所有运行进程(包括init),系统将不再能够使用

   

    在所有的挂载文件系统上运行紧急同步(缓存写) .这可以保护数据丢失

   

    以只读模式重新挂载所有已加载的文件系统.这和上面的同步组合键有相同的功能,但是另外有一个好处:如果操作顺利完成,下一次硬件重新启动时,fsck将 不会重新检查所有的文件系统.

    关闭键盘的原始模式.当你的X窗口程序挂住没有响应时特别有用.使用这个组合键之后,你可能会接着使 用程序启动.

   

    不进行同步和卸载就立刻重新启动系统.之后你可能会碰到一下错误信息.

   

    关机 (如果正确设置以后)

   


    导出当前的寄存器和标志到控制台

   

    导出当前任务和相关信息到控制台

   

    导出内存的内容到控制台

    SysRq><数字>

    "数字"从0到9.设置控制台记录的级别,用于控制哪一些内核信息将被显示在控制台上.举例,"0"意味着只有象PANIC和OOPS的之类的紧急信息才 被显示在控制台上.

   

    显示帮助信息.还有,任何其他不被支持的 组合键将显示同样的帮助.

问:Linux网络管理的重要任务是?

答:网络管理的重要任务是: 控制 和 监控 。

问:Linux系统对硬盘分区时,必须有哪两种分区类型?

答:安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 。

问:Linux内核分为哪几个子系统?

答:内核分为 进程管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统。

问:RIP 协议是?

答:RIP 协议是最为普遍的一种内部协议,一般称为动态路由信息协议。

问:Linux系统网络管理员的管理对象是?

答:系统网络管理员的管理对象是服务器、 用户 和服务器的进程 以及系统的各种资源。

问:Linux网络管理通常由几部分组成?

答:网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的中心。

问:Linux vi编辑器具有两种工作模式?

答:vi编辑器具有两种工作模式: 命令模式 和 输入模式

问:Linux进程可以具有的基本状态有?

答:进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态(阻塞态) 。

问:Linux DNS作用?

答:DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址和主机名 之间的转换。

问:Linux系统上做备份可以有两种类型?

答:在Linux系统上做备份可以有两种类型:系统备份 和 用户备份 。其中前者是指对 操作系统 的备份,后者是指对 应用程序和用户文件的备份。

问:Linux CD-ROM标准的文件系统类型是?

答:CD-ROM标准的文件系统类型是 iso9660 。

问:使lilo.conf生效的命令是?

答:当lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo 。

问:Linux限制用户使用磁盘空间的命令是?

答:设定限制用户使用磁盘空间的命令是 quota 。

Linux quota命令详解:

    什么是 Quota?

    Quota 让你可以从两方面指定磁盘的储存限制: 使用者所能够支配的索引

    节点(inodes)数量;以及使用者可以取用的磁盘区块数量.

    Quota 背後的含意是强制使用者在大部分的时间中保持在他们的磁盘使用

    限制之下,取消他们在系统上无限制地使用磁盘空间的能力.

    Quota 是以每一使用者,每一文件系统为基础的.如果使用者可能在超过

    一个以上的文件系统上建立文件,那么必须在每一文件系统上分别设定

    quota.

    Quota 目前在 Linux  上的情况

    Quota 的支持据我所知自从 1.3.8x 版开始已经整合到核心之中,而且它

    也在 2.0  版的核心里.如果你的系统不支持 quota  那么我建议你来次

    更新.

    目前为止,quota 只能在 ext2  文件系统上运作.

    在 Linux 上使用 Quota 的需求

    核心

    2.x 版的核心可以从这里取得

    

    Quota 软件

    端视你的 Linux  发行套件而定,在你的系统上可能已经装好也可能没有

    quota 软件.quota 软件的原始程序代码可以从这里取得

    

    ----------------------------------------------------------------

    在 Linux  上设定 quota -  第一部份: 配置

    1.  配置你的核心

    重新配置你的核心并且对这个选项回答 y  以加入 quota  的支持:

    Quota support (CONFIG_QUOTA) [n] y

    2.  编译并安装 quota 软件

    Quota 软件的原始程序代码可以从这里取得

    

    3.  修改你系统的启动脚本文件以检查 quota  并且在启动时期打开 quota

    这里有个范例:

    # Check quota and then turn quota on.

    if [ -x /usr/sbin/quotacheck ]

    then

    echo "Checking quotas. This may take some time."

    /usr/sbin/quotacheck -avug

    echo " Done."

    fi

    if [ -x /usr/sbin/quotaon ]

    then

    echo "Turning on quota."

    /usr/sbin/quotaon -avug

    fi

    不变的规则是*永远*得要在挂入你 /etc/fstab 里的文件系统*之后*

    打开 quota , 否则 quota  将不会运作.我建议在你系统的启动脚本文件

    最后面打开 quota , 或者,如果你喜欢,在你的系统脚本文件刚挂入文件

    系统之处打开它.

    4. 修改 /etc/fstab

    还没有启用 quota  的分割区一般看起来像:

    /dev/hda1       /       ext2    defaults        1       1

    /dev/hda2       /usr    ext2    defaults        1       1

    要在文件系统上加入 quota  的话,在包含 "defaults" 这个字的第四个

    字段加上 "usrquota" .

    /dev/hda1       /       ext2    defaults            1       1

    /dev/hda2       /usr    ext2    defaults,usrquota   1       1

    如果你需要在一文件系统中的群组 quota 支持,将 "usrquota" 改为

    "grpquota".

    /dev/hda1       /       ext2    defaults            1       1

    /dev/hda2       /usr    ext2    defaults,grpquota   1       1

    如果要同时支持使用者 quota 与群组 quota 的话

    /dev/hda1       /       ext2    defaults            1       1

    /dev/hda2       /usr    ext2    defaults,usrquota,grpquota  1   1

    5.  建立 "quota.user" 这个 quota  记录

    这个 quota  记录档,quota.user , 应该由 root 拥有,而且 root 有

    读写的权限而其它任何人都没有.

    以 root 的身分登录.进入你想要启用 quota  之分割区的最上层,并且

    这样建立 quota.user:

    touch /partition/quota.user

    touch /partition/quota.group

    chmod 600 /partition/quota.user

    chmod 600 /partition/quota.group

    6.  重新启动

    现在重新启动系统以便让你所作的切换生效.

    同时注意以后对于你还想要启用 quota  的其它分割区只需要步骤 4, 5,

    以及 6  .

    在 Linux  上设定 quota -  第二部份: 为使用者及群组指定 Quota

    这项操作是使用 edquota 指令执行的.(详情参考 man edquota).

    我通常在编辑 quota 之前会先使用 quotacheck 并加上参数 -avug 以

    取得最新的文件系统使用状况.这只是一个个人习惯,并非必要步骤.

    为特定使用者指定 quota

    这儿有个例子.在我的系统上有一个名叫 bob 的使用者.使用

    "edquota bob" 这个指令将会把你带进 vi (或是在你的 $EDITOR  环

    境变量中所指定的编辑器)以便为使用者 "bob"  编辑在每个启用

    quota  的分割区上的 quota :

    Quotas for user bob:

    /dev/hda2: blocks in use: 2594, limits (soft = 5120, hard = 6400)

    inodes in use: 356, limits (soft = 1000, hard = 1500)

    "blocks in use" 是使用者在某个分割区上已经使用的区块总数(以千位

    元组为单位)

    "inodes in use" 是使用者在某个分割区上所拥有的文件总数.

    为特定群组指定 quota

    现在在我的系统上有一群组叫 games."edquota -g games" 再度将我带入

    vi 以便为 games 群组编辑 quota :

    Quotas for group games:

    /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000)

    inodes in use: 1454, limits (soft = 3000, hard = 4000)

    为一群使用者指定相同的 quota 值

    为了快速地为我系统上的一群使用者,例如一百名,设定和 bob 相同的

    quota 值,我首先以手动编辑 bob 的 quota 信息,然后执行:

    edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

    这是假设你使用 csh,并且你的使用者 UID 从 500 开始.

    除了 edquota  之外,还有三个你应该熟习的其它专有名词: 软性限制,

    硬性限制,以及缓冲期间.

    软性限制

    一般来说,软性限制指出 quota  使用者在分割区上拥有的磁盘用量总数

    .但是合并使用缓冲期间的时候,它的动作就如同一道临界线,当 quota

    使用者超越时便发出有关他即将违犯 quota  的警告.

    硬性限制

    硬性限制只在设定有缓冲期间时才会运作.它指出磁盘用量的绝对限制,

    quota 使用者不能超越他的硬性限制.

    缓冲期间

    以 "edquota -t" 指令执行,缓冲期间是对 quota  使用者实行软性限制

    之前的时间限制.可以使用的时间单位是秒、分、小时、日、星期、以及

    月.这是你使用 "edquota -t" 指令将会见到的:

    Time units may be: days, hours, minutes, or seconds

    Grace period before enforcing soft limits for users:

    /dev/hda2: block grace period: 0 days, file grace period: 0 days

    把 0 days 这个部份切换为你觉得合理的任何期限.我个人选择  7 days

    (或是 1 week ).

    ----------------------------------------------------------------

    其它的 Quota  指令

    Quotacheck

    Quotacheck  是用来扫描文件系统的磁盘用量,并更新 "quota.user" 此

    quota 记录档到最新的状态.我建议定期在系统启动时执行  quotacheck

    或藉由 cronjob  每隔一段时间执行一次(像是,一星期? ).

    Repquota

    Repquota  产生文件系统之摘要 quota  信息.这里有份 repquota 所得

    的输出范例:

    # repquota -a

    Block limits               File limits

    User            used    soft    hard  grace    used  soft  hard  grace

    root      --  175419       0       0          14679     0     0

    bin       --   18000       0       0            735     0     0

    uucp      --     729       0       0             23     0     0

    man       --      57       0       0             10     0     0

    user1     --   13046   15360   19200            806  1500  2250

    user2     --    2838    5120    6400            377  1000  1500

    Quotaon 以及 Quotaoff

    Quotaon 是用来打开 quota  的计算; quotaoff 则是将其关闭.实际上

    两者很类似.它们是在系统启动与关机时执行的.

问:Linux中用来存放系统所需要的配置文件和子目录的目录是?

答:在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc 。

问:Linux结束后台进程的命令是?

答:kill

Linux kill命令详解:

    当需要中断一个前台进程的时候,通常是使用< Ctrl+c >组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令.该命令可以终止后台进程.至于终止后台进程的原 因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死.总之这种情况是经常发生的.

    kill命令是通过向进程发送指定的信号来结束进程的.如果没有指定发送信号,那么默认值为TERM信号.TERM信号将终止所有不能捕获该信号的进程. 至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的.

    kill命令的语法格式很简单,大致有以下两种方式:

    kill [-s 信号 | -p ] [ -a ] 进程号 …

    kill -l [信号]

    -s 指定需要送出的信号.既可以是信号名也可以对应数字.

    -p 指定kill命令只是显示进程的pid,并不真正送出结束信号.

    -l 显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到.

    kill命令的使用

    下面看看该命令的使用.

    [例24] 在执行一条find指令时由于时间过长,决定终止该进程.

    首先应该使用ps命令来查看该进程对应的PID,键入ps,显示如下:

    PID TTY TIME COMMAND

    285 1 00:00:00 -bash

    287 3 00:00:00 -bash

    289 5 00:00:00 /sbin/mingetty tty5

    290 6 00:00:00 /sbin/mingetty tty6

    312 3 00:00:00 telnet bbs3

    341 4 00:00:00 /sbin/mingetty tty4

    345 1 00:00:00 find / -name foxy.jpg

    348 1 00:00:00 ps

    可以看到该进程对应的PID是345,现在使用kill命令来终止该进程.键入:

    # kill 345

    再用ps命令查看,就可以看到,find进程已经被杀掉了.

    [例25] 杀掉进程11721

    # ps PID TTY TIME COMMAND

    11668 p1 00:00:00 -tcsh

    11721 p1 00:00:00 cat

    11737 p1 00:00:00 ps

    # kill 11721

    [1] Terminated cat

    #

    有时候可能会遇到这样的情况,某个进程已经挂死或闲置,使用kill命令却杀不掉.这时候就必须发送信号9,强行关闭此进程.当然这种"野蛮"的方法很可 能会导致打开的文件出现错误或者数据丢失之类的错误.所以不到万不得已不要使用强制结束的办法.如果连信号9都不响应,那恐怕就只有重新启动计算机了.

    控制多个进程命令

    Linux可使用户同时运行多个进程,还允许用户或系统管理员能控制正在运行的进程.

    nohup命令

    理论上,我们一般退出Linux系统时,会把所有的程序全部结束掉,包括那些后台程序.但有时候,例如您正在编辑一个很长的程序,但是您下班或是有事需要 先退出系统,这时您又不希望系统把您编辑那么久的程序结束掉,希望退出系统时,程序还能继续执行.这时,我们就可以使用nohup命令使进程在用户退出后 仍继续执行.

    一般这些进程我们都是让它在后台执行,结果则会写到用户自己的目录下的nohup.out这个文件里(也可以使用输出重定向,让它输出到一个特定的文 件).

    [例26] $ nohup sort sales.dat &

    这条命令告诉sort命令忽略用户已退出系统,它应该一直运行,直到进程完成.利用这种方法,可以启动一个要运行几天甚至几周的进程,而且在它运行时,用 户不需要去登录.

    nohup命令把一条命令的所有输出和错误信息送到nohup.out文件中.若将输出重定向,则只有错误信息放在nohup.out文件中.

    renice命令

    renice命令允许用户修改一个正在运行进程的优先权. 利用renice命令可以在命令执行时调整其优先权.其格式如下:

    $ renice -number PID

    其中,参数number与nice命令的number意义相同.

    注:

    (1) 用户只能对自己所有的进程使用renice命令.

    (2) root用户可以在任何进程上使用renice命令.

    (3) 只有root用户才能提高进程的优先权.

:Linux进程的运行有两种方式是?

答:进程的运行有两种方式,即 独立运行和使用父进程运行 。

问:Linux Links分为哪两种?

答:Links分为 硬链接和符号链接 。

问:Linux查看全部进程的命令是?

答:在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux 。

Linux ps命令详解:

    1)ps a 显示现行终端机下的所有程序,包括其他用户的程序.

    2)ps -A 显示所有程序.

    3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示.

    4)ps -e 此参数的效果和指定"A"参数相同.

    5)ps e 列出程序时,显示每个程序所使用的环境变量.

    6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系.

    7)ps -H 显示树状结构,表示程序间的相互关系.

    8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外.

    9)ps s 采用程序信号的格式显示程序状况.

    10)ps S 列出程序时,包括已中断的子程序资料.

    11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况.

    12)ps u  以用户为主的格式来显示程序状况.

    13)ps x  显示所有程序,不以终端机来区分.

    最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作.

问:Linux进行远程登录的命令是?

答:进行远程登录的命令是 telnet 。

linux telnet命令详解:

    语  法:telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名 称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端 口>]

    补充说明:执行telnet指令开启终端机阶段作业,并登入远端主机.

    参  数:

    -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<认证形态> 关闭指定的认证形态.

问:Apache服务器进程配置文件是?

答:Apache服务器进程配置文件是 httpd.conf 。

apache服务器配置详解:

    # 基于 NCSA 服务的配置文件.

    #

    #这是Apache服务器主要配置文件.

    #它包含服务器的影响服务器运行的配置指令.

    #参见<" target="_blank">以取得关于这些指令 的详细信息

    #

    #不要只是简单的阅读这些指令信息而不去理解它.

    #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告.

    #

    #这些配置指令被分为下面三个部分:

    #1. 控制整个Apache服务器行为的部分(即全局环境变量)

    #2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数

    #3. 虚拟主机的设置参数

    #

    #配置和日志文件名:如果你指定的文件名以"/"开始(win32下以"dirver:/"),

    #服务器将使用绝对路径,如果文件名不是以"/"开始的,那么它将把ServerRoot

    #的值附加在文件名的前面,例如,对"logs/foo.log",如果ServerRoot的值

    #为"/usr/local/apache2",则该文件应为"/usr/local/apache2/logs/foo.log"

    #

    ##第一区:全局环境参数

    #

    #这里设置的参数将影响整个Apache服务器的行为;

    #例如Apache能够处理的并发请求的数量等.

    #

    #ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录.

    #

    #注意!如果你想要将它指定为NFS或其它网络上的位置,

    #请一定要去阅读与LockFile有关的文档(可能在

    #<" target="_blank">…n.html#lockfile> ).

    #这将会使你自己也能解决很多问题.

    #

    #路径的结尾不要添加斜线.

    #

    ServerRoot "/usr/loacl/apache2"

    #

    #串行访问的锁文件必须保存在本地磁盘上

    #

   

   

    #LockFile logs/accept.lock

   

   

    #ScoreBoardFile:用来保存内部服务进程信息的文件.

    #如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中,

    #并且它不能被第三方软件所使用.

    #如果指定了,要确保不能使用两个Apache使用同一个记分板文件,

    #这个记分板文件必须保存在本地磁盘上.

    #

   

   

    #ScoreBoardFile logs/apache_runtime_status

   

   

    #

    #PidFile:记录服务器启动进程号的文件.

    #

   

    PidFile logs/httpd.pid

   

    #

    #Timeout:接收和发送前超时秒数

    #

    Timeout 300

    #

    #KeepAlive:是否允许稳固的连接(每个连接有多个请求),

    #设为"Off"则停用.

    #

    KeepAlive On

    #

    #MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,

    #设为0表示无限制接入.

    #我们推荐你将其设为一个较大的值,以便提高性能

    MaxKeepAliveRequests 100

    #

    #KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数

    #

    KeepAliveTimeout 15

    ##

    ##Server-Pool大小设定(针对MPM的)

    ##

    # prefork MPM

    # StartServers:启动时服务器启动的进程数

    # MinSpareServers:保有的备用进程的最小数目

    # MaxSpareServers:保有的备用进程的最大数目

    # MaxClients:服务器允许启动的最大进程数

    # MaxRequestsPerChild:一个服务进程允许的最大请求数

   

    StartServers 5

    MinSpareServers 5

    MaxSpareServers 10

    MaxClients 150

    MaxRequestPerChild 0

   

    # worker MPM

    # StartServers:服务器启动时的服务进程数目

    # MaxClients:允许同时连接的最大用户数目

    # MinSpareThreads:保有的最小工作线程数目

    # MaxSpareThreads:允许保有的最大工作线程数目

    # ThreadsPerChild:每个服务进程中的工作线程常数

    # MaxRequestsPerChild:服务进程中允许的最大请求数目

   

    StartServers 2

    MaxClients 150

    MinSpareThreads 25

    MaxSpareThreads 75

    ThreadsPerChild 25

    MaxRequestsPerChild 0

   

    # perchild MPM

    # NumServers:服务进程数量

    # StartThreads:每个服务进程中的起始线程数量

    # MinSpareThreads:保有的最小线程数量

    # MaxSpareThreads:保有的最大线程数量

    # MaxThreadsPerChild:每个服务进程允许的最大线程数

    # MaxRequestsPerChild:每个服务进程允许连接的最大数量

   

    NumServers 5

    StartThreads 5

    MinSpareThreads 5

    MaxSpareThreads 10

    MaxThreadsPerChild 20

    MaxRequestsPerChild 0

   

    # WinNT MPM

    # ThreadsPerChild:服务进程中工作线程常数

    # MaxRequestsPerChild:服务进程允许的最大请求数

   

    ThreadsPerChild 250

    MaxRequestsPerChild 0

   

    # BeOS MPM

    # StartThreads:服务器启动时启动的线程数

    # MaxClients:可以启动的最大线程数(一个线程等于一个用户)

    # MaxRequestsPerThread:每个线程允许的最大请求数

   

    StartThreads 10

    MaxClients 50

    MaxRequestsPerThread 10000

   

    # NetWare MPM

    # ThreadStachSize:为每个工作线程分配的堆栈尺寸

    # StartThreads:服务器启动时启动的线程数

    # MinSpareThreads:用于处理实发请求的空闲线程数

    # MaxSpareThreads:空闲线程的最大数量

    # MaxThreads:在同一时间活动的最大线程数

    # MaxRequestPerChild:一个线程服务请求的最大数量,

    # 推荐将其设置为0,以实现无限制的接入

   

    ThreadStackSize 65536

    StartThreads 250

    MinSpareThreads 25

    MaxSpareThreads 250

    MaxThreads 1000

    MaxRequestPerChild 0

   

    # OS/2 MPM

    # StartServers:启动的服务进程数量

    # MinSpareThreads:每个进程允许的最小空闲线程

    # MaxSpareThreads:每个进程允许的最大空闲线程

    # MaxRequestsPerChild:每个服务进程允许的最大连接数

   

    StartServers 2

    MinSpareThreads 5

    MaxSpareThreads 10

    MaxRequestsPerChild 0

   

    #

    # Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值

    # 参见指令

    # 使用如下命令使Apache只在指定的IP地址上监听,

    # 以防止它在IP地址0.0.0.0上监听

    #

    # Listen 12.34.56.78:80

    Listen 80

    #

    # 动态共享支持(DSO)

    #

    # 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的"LoadModule"行,

    # 因此,在这里包含了这些指令,以便能在使用它之前激活.

    # 那些静态编译的模块不需要在这里列出 (即以"httpd -l"列出的模块)

    #

    # 示例:

    # LoadModule foo_module modules/mod_foo.so

    #

    #

    # ExtendedStatus:当调用"server-status"时,控制Apache是产生"全"状态

    # 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off).

    # 默认为off

    #

    # ExtendedStatus On

    ### 第二区:"主"服务配置

    #

    # 这一区建立被 "主" 服务器用的指令值,以回应那些不被

    # 定义处理的任何请求.

    # 这些数值也提供默认值给后面定义的容器.

    # 如果中有定义,那么这里定义的指令值将被

    # 中的定义所覆盖.

    #

   

   

    #

    # 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动

    # 然后再将它切换为你想要使用的用户或组.

    #

    # User/Group:运行httpd的用户和组

    # 在SCO (ODT3)上使用"User nouser"和"Group nogroup"

    # 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户.

    # 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET),

    #节在这些系统上不要使用"Group #-1".

    #

    User nobody

    Group #-1

   

   

    #

    # ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件.

    # 作为一个出错文档,这个地址显示在server-generated页上,

    # 例如:admin@your-domain.com

    #

    ServerAdmin [email]kreny@sina.com[/email]

    #

    # ServerName指定Apache用于识别自身的名字和端口号.

    # 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错

    #

    # 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作.

    # 参见UseCanonicalName指令

    #

    # 如果你的主机没有注册DNS名,在这里键入它的IP地址

    # 无论如何,你必须使用它的IP地址来提供服务,

    # 这里使用一种容易理解的方式重定向服务

    ServerName " target="_blank">

    #

    # UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令.

    # 当设置为 "Off"时,Apache会使用用户端提供的主机名和端口号.

    # 当设置为"On",Apache会使用ServerName指令的值.

    #

    UseCanonicalName Off

    #

    # DocumentRoot:你的文档的根目录.默认情况下,所有的请求从这个目录进行应答.

    # 但是可以使用符号链接和别名来指向到其他的位置.

    #

    DocumentRoot "/home/redhat/public_html"

    #

    # Apache可以存取的每个目录都可以配置存取权限(包括它的子目录).

    #

    # 首先,我们配置一个高限制的特征.

    # 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块.

    # 如下所示

   

    Order Deny,Allow

    Deny from all

   

    #

    # 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用.

    # - 所以,如果Apache没有象你所期待的那样工作的话,

    # 请检查你是否在下面明确的指定它可用.

    #

    #

    # 这将改变到你设置的DocumentRoot

    #

   

    #

    # Options:这个指令的值可以是"None","All",或者下列选项的任意组合:

    # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

    #

    # 注意,"MultiViews"必须被显式的指定,"Options All"不能为你提供这个特性.

    #

    # 这个指令既复杂又重要,请参见

    #"d/core.html#optioins" 以取得更多的信息." target="_blank">…〉酶 嗟男畔ⅰ?lt;/a>

    #

    Options FollowSymLinks

    #

    # AllowOverride控制那些被放置在.htaccess文件中的指令.

    # 它可以是"All","None",或者下列指令的组合:

    # Options FileInfo AuthConfig Limit

    #

    AllowOverride None

    #

    # 控制谁可以获得服务.

    #

    Order allow,deny

    Allow from all

   

    #

    # UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名.

    #

    UserDir public_html

    # 为防止在UserDir指令上的漏洞,对root用户设置

    # 象"./"这样的UserDir是非常有用的.

    # 如果你使用Apache 1.3或以上版本,我们强烈建议你

    # 在你的服务器配置文件中包含下面的行

    UserDir disabled root

    #

    # 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例:

    #

    #

    # AllowOverride FileInfo AuthConfig Limit Indexes

    # Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec

    #

    # Order allow,deny

    # Allow from all

    #

    #

    # Order deny,allow

    # Deny from all

    #

    #

    #

    # DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名

    #

    # index.html.var文件(一个类型映象文件)用于提供一个文档处理列表,

    # 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢.

    #

    DirectoryIndex index.php index.html index.html.var

    #

    # AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名.

    # 参见AllowOverride指令.

    #

    AccessFileName .htaccess

    #

    # 下面的行防止.htaccess和.htpasswd文件被Web客户查看.

    #

   

    Order allow,deny

    Deny from all

   

    #

    # Typeconfig:定义在哪里查询mime.types文件.

    #

    TypeConfig conf/mime.types

    #

    # DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型.

    # 如果你的服务主要包含text或HTML文档,"text/plain"是一个好的选择;

    # 如果大多是二进制文档,诸如软件或图像,你应使用

    # "application/octer-stream"来防止浏览器象显示文本那样显示二进制文件.

    #

    DefaultType text/plain

    #

    # mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints),

    # 这个MIMEMagicFile指令定义hints定义所在的文件.

    #

   

    MIMEMagicFile conf/magic

   

    #

    # HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时

    # 记录主机名,如;为off时记录IP地 址,204.62.129.132." target="_blank">为off时记录IP地址,204.62.129.132.

    # 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会

    # 至少造成对 nameserver 进行一次查询.

    #

    HostnameLookups Off

    #

    # EnableMMAP:控制是否进行内存转储(如果操作系统支持的话).

    # 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它.

    # 在一些系统上,关闭它会提升系统性能(与文件系统类型无关);

    # 具体情况请参阅d/core.html#enablemmap" target="_blank">…html#enablemmap

    #

    # EnableMMAP off

    #

    # EnableSendfile:控制是否使用sendfile kernel支持发送文件

    # (如果操作系统支持的话).默认为on,如果你的服务器安装在网络文件系统

    # (NFS)上,请你关闭它.

    # 参见d/core.html#enablesendfile" target="_blank">…#enablesendfile

    #

    # EnableSendfile off

    #

    # ErrorLog:错误日志文件定位.

    # 如果你没有在内定义ErrorLog指令,这个虚拟主机的错误信息

    # 将记录在这里.如果你在那儿定义了ErrorLog,这些错误信息将记录在你所

    # 定义的文件里,而不是这儿定义的文件.

    #

    ErrorLog logs/error_log

    #

    # LogLevel:控制记录在错误日志文件中的日志信息数量.

    # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg.

    #

    LogLevel warn

    #

    # 下面的指令为CustomLog指令定义格式别名.

    #

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\"" combined

    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    LogFormat "%i -> %U" referer

    LogFormat "%i" agent

    # 你需要安装了mod_logio.c模块才能使用%I和%O.

    # LogFormat "%h %l %u %t \"%r\" %>s %b \"%i\" \"%i\" %I %O" combinedio

    #

    # 指定接入日志文件的定位和格式(一般日志格式).

    # 如果你没有在内定义这个指令,传输信息将记录在这里,

    # 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置.

    #

    CustomLog logs/access_log common

    #

    # 如果你想要记录agent和referer信息,可以使用下面的指令

    #

    # CustomLog logs/referer_log referer

    # CustomLog logs/agent_log agent

    #

    # 如果你想要使用一个文件记录access,agent和referer信息,

    # 你可以如下定义这个指令:

    #

    # CustomLog logs/access_log combined

    #

    # ServerTokens

    # 这个指令定义包含在HTTP回应头中的信息类型.默认为"Full",

    # 这表示在回应头中将包含模块中的操作系统类型和编译信息.

    # 可以设为列各值中的一个:

    # Full | OS | Minor | Minimal | Major | Prod

    # Full传达的信息最多,而Prod最少.

    #

    ServerTokens Full

    #

    # 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中

    # (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误

    # 或自定义的错误文档以外).

    # 设为"EMail"将包含一个指向ServerAdmin的mailto:连接.

    # 可以为如下值:On | Off | EMail

    #

    ServerSignature On

    #

    # Aliases:在这时添加你需要的别名,格式如下:

    # Alias 别名 真实名

    #

    # 注意,如果你在别名的未尾包含了"/",那么在URL中也需要包含"/".

    # 因此,"/icons"不是这个示例中的别名.

    # 如果别名中以"/"结尾,那么真实名也必须以"/"结尾,

    # 如果别名中省略了结尾的"/",那么真实名也必须省略.

    #

    # 我们使用别名"/icons/"来表示FancyIndexed目录列表,如果你不使用、

    # FancyIndexing,你可以注释掉它.

    #

    # Alias /icons/ "/usr/local/apache2/icons/"

    #

    # Options Indexes MultiViews

    # AllowOverride None

    # Order allow,deny

    ## Allow from all

    #

    #

    # 这将改变ServerRoot/manual.这个别名提供了手册页所在的位置,

    # 即使你改变了你的DocumentRoot.如果你对有无手册页并不在意的话,

    # 你可以注释掉它.

    #

    Alias /manual "/usr/loacl/apache2/manual"

   

    Options Indexes FollowSymLinks MultiViews IncludesNoExec

    AddOutputFilter Includes html

    Order allow,deny

    Allow from all

   

    #

    # ScriptAlias:指定包含服务脚本的目录.

    # ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外.

    # 尾部的"/"规则与Alias一样

    #

    ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/"

    # 这里是添加php 4支持的指令

    AddType application/x-httpd-php .php

    LoadModule php4_module modules/libphp4.so

   

    #

    # 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的

    # 脚本接口路径.

    #

    # Scriptsock logs/cgisock

   

    #

    # 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录,

    # 如果你配置了的话.

    #

   

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

   

    #

    # Redirect允许你告诉客户端使用存在于服务器名字空间中的文档,

    # 而不是现在的,这帮助客户定位那些改变了位置的文档.

    # 例如:

    # Redirect permanent /foo " target="_blank">

    #

    # 控制server-generated目录列表显示的指令

    #

    #

    # IndexOptions:控制server-generated目录列表显示特征.

    #

    IndexOptions FancyIndexing VersionSort

    #

    # AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示,

    # 只适用于FancyIndexed指令

    #

问:Linux解压缩.gz文件的命令是?

答:在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip 。

gzip解压命令详解:

     ~]# tar

    [-cxtzjvfpPN] 文件与目录 …

    参数:

    -c :建立一个压缩文件的参数指令(create 的意思);

    -x :解开一个压缩文件的参数指令!

    -t :查看 tarfile 里面的文件!

    特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!

    因为不可能同时压缩与解压缩.

    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

    -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

    -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

    例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成

    『 tar -zcvPf tfile sfile』才对喔!

    -p :使用原文件的原来属性(属性不会依据使用者而变)

    -P :可以使用绝对路径来压缩!

    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

    --exclude FILE:在压缩的过程中,不要将 FILE 打包!

    范例:

    范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

    [root@linux ~]# tar -cvf

    /tmp/etc.tar /etc tar -zcvf

    /tmp/etc.tar.gz /etc

    [root@linux ~]# tar -jcvf

    /tmp/etc.tar.bz2 /etc

    # 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用

    .tar 来作为辨识.

    # 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~

    # 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

    # 上述指令在执行的时候,会显示一个警告讯息:

    # 『tar: Removing leading `/' from member names』那是关於绝对路径的特殊设定.

    范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

    [root@linux ~]# tar -ztvf

    /tmp/etc.tar.gz

    # 由於我们使用 gzip 压缩,所以要查阅该 tar file

    内的文件时,

    # 就得要加上 z 这个参数了!这很重要的!

    范例三:将 /tmp/etc.tar.gz 文件解压缩在

    /usr/local/src 底下

    [root@linux ~]# cd /usr/local/src

    [root@linux src]# tar

    -zxvf /tmp/etc.tar.gz

    # 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,

    # 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz

    ,

    # 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc

    # 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

    范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz

    内的 etc/passwd 解开而已

    [root@linux ~]# cd /tmp

    [root@linux tmp]# tar

    -zxvf /tmp/etc.tar.gz etc/passwd

    # 我可以透过 tar -ztvf 来查阅 tarfile

    内的文件名称,如果单只要一个文件,

    # 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

    范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!

    [root@linux ~]# tar -zxvpf

    /tmp/etc.tar.gz /etc

    # 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

    范例六:在 /home 当中,比 2005/06/01 新的文件才备份

    [root@linux ~]# tar -N

    '2005/06/01' -zcvf home.tar.gz /home

    范例七:我要备份 /home, /etc ,但不要 /home/dmtsai

    [root@linux ~]# tar --exclude

    /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

    范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!

    [root@linux ~]# cd /tmp

    [root@linux tmp]# tar

    -cvf - /etc | tar -xvf -

    # 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!

    # 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~

    # 这分别代表 standard output, standard input 与管线命令啦!

    # 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

    gzip, zcat 命令

    [root@linux

    ~]# gzip [-cdt#] 档名

    [root@linux ~]# zcat 档名.gz

    参数:

    -c :将压缩的资料输出到萤幕上,可透过资料流重导向来处理;

    -d :解压缩的参数;

    -t :可以用来检验一个压缩档的一致性~看看文件有无错误;

    -# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6 ~

    范例:

    范例一:将 /etc/man.config 复制到 /tmp

    ,并且以 gzip 压缩

    [root@linux ~]# cd /tmp

    [root@linux tmp]# cp /etc/man.config

    .

    [root@linux tmp]# gzip man.config

    # 此时 man.config 会变成 man.config.gz

    !

    范例二:将范例一的文件内容读出来!

    [root@linux tmp]# zcat man.config.gz

    # 此时萤幕上会显示 man.config.gz 解压缩之后的文件内容!!

    范例三:将范例一的文件解压缩

    [root@linux tmp]# gzip -d man.config.gz

    范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件

    [root@linux tmp]# gzip -9 -c

    man.config > man.config.gz

    bzip2, bzcat 命令

    [root@linux ~]# bzip2

    [-cdz] 档名

    [root@linux ~]# bzcat 档名.bz2

    参数:

    -c :将压缩的过程产生的资料输出到萤幕上!

    -d :解压缩的参数

    -z :压缩的参数

    -# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!

    范例:

    范例一:将刚刚的 /tmp/man.config 以 bzip2

    压缩

    [root@linux tmp]# bzip2 -z man.config

    # 此时 man.config 会变成 man.config.bz2

    !

    范例二:将范例一的文件内容读出来!

    [root@linux tmp]# bzcat man.config.bz2

    # 此时萤幕上会显示 man.config.bz2 解压缩之后的文件内容!!

    范例三:将范例一的文件解压缩

    [root@linux tmp]# bzip2 -d man.config.bz2

    范例四:将范例三解开的

    man.config 用最佳的压缩比压缩,并保留原本的文件

    [root@linux tmp]# bzip2 -9 -c

    man.config > man.config.bz2

    compress 命令

    [root@linux ~]# compress

    [-dcr] 文件或目录

    参数:

    -d :用来解压缩的参数

    -r :可以连同目录下的文件也同时给予压缩呢!

    -c :将压缩资料输出成为 standard output (输出到萤幕)

    范例:

    范例一:将 /etc/man.config 复制到 /tmp ,并加以压缩

    [root@linux ~]# cd /tmp

    [root@linux tmp]# cp /etc/man.config

    .

    [root@linux tmp]# compress man.config

    [root@linux tmp]# ls -l

    -rw-r--r-- 1 root root 2605 Jul 27 11:43 man.config.Z

    范例二:将刚刚的压缩档解开

    [root@linux tmp]# compress -d

    man.config.Z

    范例三:将 man.config 压缩成另外一个文件来备份

    [root@linux tmp]# compress -c

    man.config > man.config.back.Z

    [root@linux tmp]# ll man.config*

    -rw-r--r-- 1 root root 4506 Jul 27 11:43 man.config

    -rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z

    # 这个 -c 的参数比较有趣!他会将压缩过程的资料输出到萤幕上,而不是写入成为

    # file.Z 文件.所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名.

    # 关於资料流重导向,我们会在 bash shell 当中详细谈论的啦!

    dd 命令

    [root@linux

    ~]# dd if="input_file"

    of="outptu_file" bs="block_size"

    \

    count="number"

    参数:

    if :就是 input file 啰~也可以是装置喔!

    of :就是 output file 喔~也可以是装置;

    bs :规划的一个 block 的大小,如果没有设定时,预设是 512 bytes

    count:多少个 bs 的意思.

    范例:

    范例一:将 /etc/passwd 备份到 /tmp/passwd.back

    当中

    [root@linux ~]# dd if=/etc/passwd

    of=/tmp/passwd.back

    3+1 records in

    3+1 records out

    [root@linux ~]# ll /etc/passwd

    /tmp/passwd.back

    -rw-r--r-- 1 root root 1746 Aug 25 14:16 /etc/passwd

    -rw-r--r-- 1 root root 1746 Aug 29 16:57 /tmp/passwd.back

    # 仔细的看一下,我的 /etc/passwd 文件大小为

    1746 bytes,因为我没有设定 bs ,

    # 所以预设是 512 bytes 为一个单位,因此,上面那个 3+1 表示有 3 个完整的

    # 512 bytes,以及未满 512 bytes 的另一个 block 的意思啦!

    # 事实上,感觉好像是 cp 这个指令啦~

    范例二:备份 /dev/hda 的 MBR

    [root@linux ~]# dd if=/dev/hda

    of=/tmp/mbr.back bs=512 count=1

    1+0 records in

    1+0 records out

    # 这就得好好了解一下啰~我们知道整颗硬盘的 MBR 为

    512 bytes,

    # 就是放在硬盘的第一个 sector 啦,因此,我可以利用这个方式来将

    # MBR 内的所有资料都纪录下来,真的很厉害吧! ^_^

    范例三:将整个 /dev/hda1 partition

    备份下来.

    [root@linux ~]# dd if=/dev/hda1

    of=/some/path/filenaem

    # 这个指令很厉害啊!将整个 partition 的内容全部备份下来~

    # 后面接的 of 必须要不是在 /dev/hda1 的目录内啊~否则,怎么读也读不完~

    # 这个动作是很有效用的,如果改天你必须要完整的将整个 partition 的内容填回去,

    # 则可以利用 dd if=/some/file of=/dev/hda1 来将资料写入到硬盘当中.

    # 如果想要整个硬盘备份的话,就类似 Norton 的 ghost 软体一般,

    # 由 disk 到 disk ,嘿嘿~利用 dd 就可以啦~厉害厉害!

    cpio 命令

    [root@linux

    ~]# cpio -covB > [file|device]

    [root@linux ~]# cpio -icduv

    参数:

    -o :将资料 copy 输出到文件或装置上

    -i :将资料自文件或装置 copy 出来系统当中

    -t :查看 cpio 建立的文件或装置的内容

    -c :一种较新的 portable format 方式储存

    -v :让储存的过程中文件名称可以在萤幕上显示

    -B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes !

    这样的好处是可以让大文件的储存速度加快(请参考 i-nodes 的观念)

    -d :自动建立目录!由於 cpio 的内容可能不是在同一个目录内,

    如此的话在反备份的过程会有问题! 这个时候加上 -d 的话,

    就可以自动的将需要的目录建立起来了!

    -u :自动的将较新的文件覆盖较旧的文件!

    范例:

    范例一:将所有系统上的资料通通写入磁带机内!

    [root@linux ~]# find / -print |

    cpio -covB > /dev/st0

    # 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0

    喔!

    范例二:检查磁带机上面有什么文件?

    [root@linux ~]# cpio -icdvt

    [root@linux ~]# cpio -icdvt  /tmp/content

    # 第一个动作当中,会将磁带机内的档名列出到萤幕上面,而我们可以透过第二个动作,

    # 将所有的档名通通纪录到 /tmp/content 文件去!

    范例三:将磁带上的资料还原回来~

    [root@linux ~]# cpio -icduv

    # 一般来说,使用 SCSI 介面的磁带机,代号是 /dev/st0

    喔!

    范例四:将 /etc 底下的所有『文件』都备份到 /root/etc.cpio

    中!

    [root@linux ~]# find /etc -type

    f | cpio -o > /root/etc.cpio

    # 这样就能够备份啰~您也可以将资料以 cpio -i

问:vi编辑器保存文件的命令是?

答:在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 :w test.txt 。

vi编辑器命令详解:

    vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件.若在vi执行时

    没有指定一个文件,那么vi命令会自动产生一个无名的空的工作文件.若指定的文件不存在,

    那么就按指定的文件名创建一个新的文件.若对文件的修改不保存的话,v i命令并不改变原

    来文件的内容.

    注意:vi命令并不锁住所编辑的文件,因此多个用户可能在同时编辑一个文件,那么最后

    保存的文件版本将被保留.

    下面是vi命令使用的一些选项及含义:

    -c sub-command 在对指定的文件编辑前,先执行指定的命令 sub-command .

    -r filename 恢复指定的文件filename .

    -R 将指定的文件以只读的方式放入编辑器中,这样不会保存对文件的任何修 改.

    -y number 将编辑窗口的大小设为number行.

    下面是vi编辑所处的三种模式:

    .命令模式 进入vi时所处的模式.在此模式下用户可输入各种子命令对进行*作,如删除行、

    粘贴行、移向下一个字、移向不同行等.

    .文本输入模式 在此模式下可以修改一行的内容并增添新行.在命令模式下键入a 、i 或

    c键可进入文本输入模式,按Escape键可返回命令模式.

    .命令项模式 在此模式下,可以通过子命令输入更多的参数.如:w子命令要求输入一文

    件名,"/"子命令要求输入一个查找项.用户使用Escape键返回命令模式.

    下面是自命令模式下执行的,在同一行上移动的自命令:

    h 将光标左移一格.

    l 将光标右移一格.

    j 将光标下移一格.

    k 将光标上移一格.

    w 将光标移到下一个小字的前面.

    W 将光标移到下一个大字的前面.

    b 将光标移到前一个小字的前面.

    B 将光标移到前一个大字的前面.

    e 将光标移到下一个小字的后面.

    E 将光标移到前一个大字的后面.

    fc 把光标移到同一行的下一个c字符处.

    Fc 把光标移到同一行的前一个c字符处.

    tc 把光标移到同一行的下一个字符c的前一格.

    Tc 把光标移到同一行的前一个字符c的后一格.

    number| 把光标移到递number列上.

    下面是命令模式下在行间移动的子命令:

    +或Enter 把光标移至下一行第一个非空白字符.

    - 把光标移至上一行第一个非空白字符.

    0 把光标移到当前行的第一个字符处.

    $ 把光标移到当前行的最后一个字符处.

    H 把光标移到屏幕最顶端一行.

    L 把光标移到屏幕最底端一行.

    M 把光标移到屏幕中间.

    下面是命令模式下改变屏幕显示的子命令:

    z- 把当前行作为屏幕的最后一行,并重新显示屏幕.

    z. 把当前行作为屏幕的中间一行,并重新显示屏幕.

    Ctrl+l 重新显示屏幕当前内容.

    /pattern/z- 寻找pattern的下一个位置,并把所在行设为屏幕的最后一行.

    下面是在命令模式下用来显示页面的子命令:

    Ctrl + f向后滚一页.

    Ctrl + d向后滚半页.

    Ctrl + b向前滚一页.

    Ctrl + u向前滚半页.

    Ctrl + e屏幕向下滚一行.

    Ctrl + y屏幕项上滚一行.

    下面是在命令模式下用来查找字符串所使用的子命令:

    /pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始.

    ?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始.

    n 在上次指定的方向上,再次执行上次定义的查找.

    N 在上次指定的方向的相反方向上,再次执行上次定义的查找.

    /pattern/+number 将光标停在包含pattern的行后面第number行上.

    /pattern/-number 将光标停在包含pattern的行前面第number行上.

    % 移到匹配的"()"或"{}"上.

    下面是在文本输入模式下用来输入文本的子命令(用户可在任何时候按Escape返回到命令模式):

    a 在光标之后开始输入文本.

    A在行尾开始输入文本.

    i在光标之前开始输入文本.

    I在行首第一个非空白字符前输入文本.

    o在光标所在行后插入一空行.

    O在光标所在行前插入一空行.

    下面是在命令模式下改变文本所使用的子命令(用户可在任何的时候按Escape键返回到命令模式):

    cc或S 修改一整行.

    C 改变一行光标位置以后的部分.

    cw 改变光标所在单词.

    dd删除当前行.

    D 删除光标所在行光标后面的内容.

    dw删除光标所在的单词.

    J 把下一行内容加到本行行尾.

    rc把光符所在字符替换成c .

    R 覆盖本行内容.

    u恢复上一次的修改.

    x删除光标所在的字符.

    ~ 改变光标所在出字符的大小写.

    . 重复上一个*作.

    <<把当前行移到左边.

    >>把当前行移到右边.

    下面是用于文件中拷贝文本的字命令:

    p 将缓冲区内容取到光标所在行的下面一行.

    P 将缓冲区内容取到光标所在行的上面一行.

    "bd 将文本删除至有名缓冲区b .

    "bp 张贴有名缓冲区b中内容.

    yy把当前行放入缓冲区.

    Y 把当前行放入缓冲区.

    Yw把光标所在的单词放入缓冲区.

    下面是用于保存文件的子命令:

    :w 回写修改后的文件.

    :w filename 当filename不存在时,把修改后的文件存为文件filename ,当文件filename

    存在时,报错.

    !w filename 如果文件filename存在时,把修改后的文件保存为文件filename .

    下面列出了在vi编辑的多个文件之间切换所用的子命令:

    :n开始编辑vi激活的文件列表中的下一个文件.

    :n filenames 指定将被编辑的新的文件列表.

    下面列出了用于在当前文件和另外一个文件间切换的子命令:

    :e filename 使用filename激活vi (在vi中装入另一个文件filename).

    e!重新装入当前文件,若当前文件有改动,则丢弃以前的改动.

    :e+filename 使用filename激活vi ,并从文件尾部开始编辑.

    :e+number filename 使用filename激活vi ,并在第number行开始编辑.

    :e# 开始编辑另外一个文件.

    下面是在本文件中加入其他文件代码所使用的子命令:

    :r filename读取filename文件,并将其内容加到当前文件后.

    :r ! command执行command文件,并将其输出加到当前文件后.

    下面是vi中其他的子命令:

    ctrl+g 取得正在编辑文件的有关信息.

    :sh启动sh ,从sh中返回可用exit或ctrl+d .

    :! Command 执行命令command .

    !!重新执行上次的:! Command子命令.

    :q退出vi ,若用户对编辑的文件有所修改,系统不会让用户使用q命令退出.

    :q!退出vi而不管是否对文件有改动.

    ZZ或:wq 保存对文件的修改并退出vi .

    用户可在一个特殊的文件.exrc中定义特殊的vi命令.在vi中使用这些命令时,必须在该

    命令前加上一个冒号( :) .

    命令状态:

    2007-06-05  15:37命令状态:

    j,k,h,l:上下左右

    0: 行首

    $: 行尾

    i,I :插入命令,i 在当前光标处插入 I 行首插入

    a,A:追加命令,a 在当前光标后追加,A 在行末追加

    o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行

    r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换

    数字s: 替换指定数量字符

    x: 删除光标处字符

    dd: 删除当前行

    d0: 删除光标前半行

    d$: 删除光标后半行

    ctrl+f :后翻页

    ctrl+b:前翻页

    G : 文件尾

    数字G: 数字所指定行

    /string 查找字符串

    n 继续查找

    N 反向继续查找

    % 查找对应括号

    u 取消上次操作

    ex命令状态

    :set number 显示行号

    :set smd 显示显示状态

    :0 文件首

    :1,5 copy 7 块拷贝

    :1,5 del 块删除

    :1,5 move 7 块移动

    :1,$s/string1/string2/g 全文件查找string1并替换为string2

    :wq! 存盘退出

问:Linux下显示整年日历的命令是?

答:可以在标准输出上显示整年日历的命令及参数是 cal -y 。

问:Windows9.x与Unix/Linux共享的工具是?

答:在Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 Samba服务器 。

Samba服务器详解:

    ======================= Global Settings =====================================

    [global] //设置samba服务整体环境

    workgroup = hackase //设置工作组名

    server string = angel server //服务器的名说明

    ; hosts allow = 192.168.1. 192.168.2. 127. //限制可访问此服务的IP范围,默认是全部

    允许的,要是想设设置去掉前面的";"

    printcap name = /etc/printcap //打印机配置文件

    load printers = yes //是否共享打印机

    # bsd, sysv, plp, lprng, aix, hpux, qnx, cups

    printing = cups //打印机的类型.标准打印机类型包括以上几种.

    ; guest account = pcguest //pcguest为用户名.可改去掉前边的";"让用户以

    pcguest身份匿名登录,但保证/etc/passwd中有此人.

    log file = /var/log/samba/%m.log //为登录服务器的用户建立不同的日志文件.

    max log size = 0 //日志文件的大小,"0"代表无限制

    //以下是smb.conf文件对服务器安全级别的设置

    security = SHARE //安全性的级别共四种.share、user、server、domain

    ; password server = 密码验证服务器.

    ; password level = 8 //密码级别

    ; username level = 8

    encrypt passwords = yes //用户密码加密,当然也可以不加密

    smb passwd file = /etc/samba/smbpasswd //将密码服务器设置为samba server.需

    要这个东东来指定验证文件.这个是文件

    的路径,如果samba server是指定的win

    server这个不须要

    ; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt

    unix password sync = Yes

    passwd program = /usr/bin/passwd %u

    passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*

    pam password change = yes

    ; username map = /etc/samba/smbusers //如果每个windows用户在samba服务器中有帐户这

    个可以不设

    ; include = /etc/samba/smb.conf.%m

    obey pam restrictions = yes

    ; interfaces = 192.168.12.2/24 192.168.13.2/24 如果多网段要在这里列出

    ; remote announce = 192.168.1.255 192.168.2.44

    ; local master = no

    ; os level = 33

    ; domain master = yes

    ; preferred master = yes

    ; domain logons = yes

    ; logon script = %m.bat

    ; logon script = %U.bat

    ; logon path = 

    ; wins support = yes //wins server支持

    ; wins server = w.x.y.z

    ; wins proxy = yes //wins 代理设置

    dns proxy = no //dns代理设置

    ; preserve case = no

    ; short preserve case = no

    ; default case = lower

    ; case sensitive = no

    #============================ Share Definitions ==============================

    [homes] //用户访问自已目录的设置

    comment = Home Directories //说明(以下同理)

    browseable = no//设定目录可不可以别人浏览

    writeable = yes//用户写入自己的权限

    valid users = %S

    create mode = 0664

    directory mode = 0775

    ; [netlogon] //此段域用户登录目录设置

    ; comment = Network Logon Service

    ; path = /usr/local/samba/lib/netlogon

    ; guest ok = yes

    ; writable = no

    ; share modes = no

    ;[Profiles]

    ; path = /usr/local/samba/profiles

    ; browseable = no

    ; guest ok = yes

    [printers] //打印机设置

    comment = All Printers

    path = /var/spool/samba

    browseable = no

    printable = yes

    ;[tmp] //用户共享资源设置

    ; comment = Temporary file space

    ; path = /tmp //可以自定义目录,去掉前边的";"就OK了

    ; read only = no //是否只读或可写

    ; public = yes

    ;[public] //用户共享资源设置

    ; comment = Public Stuff

    ; path = /home/samba

    ; public = yes

    ; writable = yes

    ; printable = no

    ; write list = @staff

    ;[fredsprn]

    ; comment = Fred's Printer

    ; valid users = fred

    ; path = /home/fred

    ; printer = freds_printer

    ; public = no

    ; writable = no

    ; printable = yes

    ;[fredsdir]

    ; comment = Fred's Service

    ; path = /usr/somewhere/private

    ; valid users = fred

    ; public = no

    ; writable = yes

    ; printable = no

    ;[pchome]

    ; comment = PC Directories

    ; path = /usr/local/pc/%m

    ; public = no

    ; writable = yes

    ;[public]

    ; path = /usr/somewhere/else/public

    ; public = yes

    ; only guest = yes

    ; writable = yes

    ; printable = no

    ;[myshare]

    ; comment = Mary's and Fred's stuff

    ; path = /usr/somewhere/shared

    ; valid users = mary fred

    ; public = no

    ; writable = yes

    ; printable = no

    ; create mask = 0765

    [my work] //偶的东东

    comment = is me work

    path = /root/my work

    valid users angel

    public = yes

    writeable = yes

    _content>好了,了解smb.conf的文件就好办了.我们开始对samba server的四个安全级别分别讲解.

    1、share级配置

    这个在四个等级中是最低的,方法也是最简单.我们只要对smb.conf文件修改一下就可以了.

    workgroup = hackase

    server string = angel server

    hosts allow = 192.168.1. //限制192.168.1的IP网段可以防问

    printcap name = /etc/printcap

    load printers = yes //共享打印机

    printing = cups //打印机用linux标准的

    guest account = angel

    log file = /var/log/samba/%m.log

    max log size = 20

    security = share

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

    其他的设置默认就可以了,也可以像我把所有的注释删除.[tmp]这个字段的";"去掉.路径可以更改. 重启一下服务 /etc/samba/smb restart //

    service smb restart 也可

    用testparm测试我们配置的文件是否正确:

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

    [root@localhost root]# testparm //测试时[printers]注释掉了所以这里没有.

    Load smb config files from /etc/samba/smb.conf

    Processing section "[homes]"

    Processing section "[tmp]"

    Processing section "[my]"

    Loaded services file OK. //如有错误,会在这列出错误的地方.

    Press enter to see a dump of your service definitions

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

    用smbclient命令查看网络共享情况

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

    [root@localhost etc]# smbclient -L localhost //本机名为localhost

    Password:

    Domain=[HACKBASE] OS=[Unix] Server=[Samba 2.2.7a]

    Sharename Type Comment

    --------- ---- -------

    tmp Disk Temporary file space

    my Disk is me

    IPC$ IPC IPC Service (angel server)

    ADMIN$ Disk IPC Service (angel server)

    root Printer Home Directories

    Server Comment

    --------- -------

    Workgroup Master

    --------- -------

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

    2、user级配置

    user比share级安全级别高一点点,很简单的,可以在share基础上改一下就可以了.

    改一下security = share字段为:security = user.在加上如下字段:

    guest


问:Linux系统管理员的职责是?

答:Linux系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和 系统性能监测 。

问:Linux DNS解析是否正确的命令是?

答:在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup 。

问:如何修改Linux的系统IP地址?

答:如果只是要修改系统的IP地址,应修改 /etc/rc.d/rc.inet1 配置文件。

问:Linux局域网内的用户可以使用计算机名互相访问时,应配置哪个文件?

答:当LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts 文件。

问:Linux DHCP是?

答:DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址 。

问:试列举mv 命令的作用

答:mv 命令可以移动文件和目录,还可以为文件和目录重新命名。


阅读(1227) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~