在CentOS 5上安装Git

1
yum install -y zlib-devel openssl-devel
1
expat-devel
1
gettext-devel
cur-devel
1
yum install
1
-y perl cpio curl<br />
1
2
3
4
5
6
7
wget -c http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz<br />
tar xzvf git-latest.tar.gz<br />
cd git-{date}<br />
autoconf<br />
./configure --with-curl=/usr/local<br />
make<br />
make install

mysql自动备份shell脚本

 #!/bin/bash
  bak_path=/data/bak_path
  mysql_bk_dir=$bak_path/mysql_bk_dir
  log_file=$backup_path/backuplog
  password=123456
   for i in $(mysql -p$password -e "show databases\G" |grep Database | awk '{print $2}')
  do
     new_file="$mysql_bk_dir"/$i$(date +%Y%m%d).tar.gz
     dump_file="$mysql_bk_dir"/$i$(date +%Y%m%d).sql
    old_file="$mysql_bk_dir"/$i$(date +%Y$m%d).tar.gz
    echo "------------------------------------------------------------" >> $log_file
    echo $(date +"%Y-%m-%d %H:%M:%S") >> $log_file
   echo "------------------------------------------------------------" >>  $log_file
     if [ -f $old_file ]; then
       rm -rf $old_file >> $log_file 2>&1;
      echo "[$old_file] Delete Old File Success!" >> $log_file
     else
         echo "[$old_file] No Old Backup File!" >> $log_file
      fi
      if [ -f $new_file ]; then
         echo "[$new_file] The backup file is exist, can't backup!" >> $log_file;
      else
         cd $mysql_bk_dir
/usr/local/mysql/bin/mysqldump --opt $i -p$password > $dump_file
        tar zcf $new_file $dump_file >> $log_file 2>&1
         echo "[$new_file] Backup success!" >> $log_file
         rm -rf $dump_file
      fi
     sleep 15
done

linux乱码

修改/etc/sysconfig/i18n文件

#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"



改为

LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

Linux tar 命令说明

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<==仅打包,不压缩
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc<==打包后,以gzip压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc<==打包后,以bzip2压缩
# 特别注意,在参数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 -

.htaccess中的apache rewrite规则详解

.htaccess中的apache rewrite写法:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blog/$1
# 没有输入文件名的默认到到首页
RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$
RewriteRule ^(/)?$ blog/index.php [L]

阅读剩余部分...

linux svn服务器的安装

环境:centos、subversion-1.7.1(1.7版本以后不需要subversion-devel了)
说明:此安装方法是独立的,不需要apache

一、 安装
1, 安装apr

  
1
#yum install apr

2, 安装apr-util
    到http://apr.apache.org/download.cgi 下载 apr-1.4.5.tar.gz

   
1
2
3
4
#tar –zxvf apr-1.4.5.tar.gz
    #cd apr-1.4.5
    # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/bin
    # make &amp;&amp; make install

3, 安装sqlite
   
1
2
#./configure --prefix=/usr/local/sqlite
     #make &amp;&amp; make install

4, 安装subversion-1.7.1
   
1
2
3
4
#tar –zxvf subversion-1.7.1.tar.gz
    #cd subversion-1.7.1
    # ./configure --prefix=/usr/local/subsersion --without-berkekey-db --with-zlib --with-apr=/usr/bin --with-apr-util=/usr/local/apr-util/ --with-sqlite=/usr/local/sqlite/
    #make &amp;&amp; make install

二、 配置
    # /usr/local/subsesion/bin/svnadmin create /var/www/svnserve/
  编辑/var/www/svnserve/svnserve.conf
  
1
2
3
4
5
6
7
8 [general]
    19 anon-access=none
    20 auth-access=write
    27 password-db = passwd
    34 authz-db = authz
    39 realm = /var/www/svnserve/test
    48 [sasl]

编辑passwd 文件
 
1
2
6 [users]
    7 loginUser = loginPasswd

编辑authz文件(其它注释掉)
  
1
2
3
4
21 [groups]
    24 user= loginUser
    26 [/]
    27 @admin = rw

三、 启动
 
1
2
3
4
#useradd svn
    #passwd svn
    #chown –R svn:svn /var/www/svnserve
    # su - svn -c "/usr/local/subsersion/bin/svnserve -d --config-file=/var/www/svnserve/svnserve.conf --listen-port=8400 -r /var/www/svnserve"

linux面试笔试资料

1. 在Linux系统中,以 文件 方式访问设备 。
2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。
3. Linux文件系统中每个文件用i字节来标识。
4. 全部磁盘块由四个部分组成,分别为引导块、i字节表块、专用块、数据储存块。
5. 链接分为: 硬链接 和 符号链接 。
6. 超级块包含了i字节表 和 空闲块表 等重要的文件系统信息。
7. 某文件的权限为:drw-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 text.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 文件系统,系统的全部磁盘块由4部分组成。
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协议来实现。
78. nfs用于实现Unix(/linux)主机之间的文件系统共享。
79. 在Linux操作系统中,设备都是通过特殊的 文件 来访问。
80. shell不仅是 用户命令的解释器 ,它同时也是一种功能强大的编程语言。 bash是Linux的缺省shell。
81. 用>;>;符号将输出重定向内容附加在原文的后面。
82. 增加一个用户的命令是:useradd、adduser。
83 进行字符串查找,使用grep命令。
84. 使用*每次匹配若干个字符。
85. /sbin 目录用来存放系统管理员使用的管理程序。

二.单项选择题
1. 下面的网络协议中,面向连接的的协议是: 。
A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议
2. 在/etc/fstab文件中指定的文件系统加载参数中, 参数一般用于CD-ROM等移动设备。
A defaults B sw C rw和ro D noauto
3. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 。
A 文件类型 B 文件所有者的权限
C 文件所有者所在组的权限 D 其他用户的权限
4. 终止一个前台进程可能用到的命令和操作 。
A kill B ctrl+C C shut down D halt
5.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 。
A -m B -d C -f D -p
6. 下面关于i节点描述错误的是 。
A i节点和文件是一一对应的
B i节点能描述文件占用的块数
C i节点描述了文件大小和指向数据块的指针
D 通过i节点实现文件的逻辑结构和物理结构的转换
7. 一个文件名字为rr.Z,可以用来解压缩的命令是: 。
A tar B gzip C compress D uncompress
8. 具有很多C语言的功能,又称过滤器的是 。
A Csh
B tcsh
C awk
D sed
9. 一台主机要实现通过局域网与另一个局域网通信,需要做的工作是 。
A 配置域名服务器
B 定义一条本机指向所在网络的路由
C 定义一条本机指向所在网络网关的路由
D 定义一条本机指向目标网络网关的路由
10. 建立动态路由需要用到的文件有 。
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网络时,其路由设置正确的是 。
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命令作用范围的是 。
A 配置本地回环地址 B 配置网卡的IP地址
C 激活网络适配器 D 加载网卡到内核中
13. 下列关于链接描述,错误的是 。
A 硬链接就是让链接文件的i节点号指向被链接文件的i节点
B 硬链接和符号连接都是产生一个新的i节点
C 链接分为硬链接和符号链接
D 硬连接不能链接目录文件
14. 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 。
A 主机IP设置有误
B 没有设置连接局域网的网关
C 局域网的网关或主机的网关设置有误
D 局域网DNS服务器设置有误
15. 下列文件中,包含了主机名到IP地址的映射关系的文件是: 。
A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks
16. 不需要编译内核的情况是 。
A 删除系统不用的设备驱动程序时 B 升级内核时
C 添加新硬件时 D 将网卡激活
17. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称 。
A 直接赋值 B使用read命令
C 使用命令行参数 D使用命令的输出
18. 命令可以从文本文件的每一行中截取指定内容的数据。
A cp B dd C fmt D cut
19. 下列不是Linux系统进程类型的是 。
A 交互进程 B 批处理进程 C 守护进程 D 就绪进程
20.配置Apache 1.3.19服务器需要修改的配置文件为_____ __ 。
A httpd.conf B access.conf C srm.conf D named.conf
21. 内核不包括的子系统是 。
A 进程管理系统 B 内存管理系统 C I/O管理系统 D硬件管理系统
22. 在日常管理中,通常CPU会影响系统性能的情况是: 。
A CPU已满负荷地运转 B CPU的运行效率为30%
C CPU的运行效率为50% D CPU的运行效率为80%
23. 若一台计算机的内存为128MB,则交换分区的大小通常是 。
A 64MB B 128MB C 256MB D 512MB
24. 在安装Linux的过程中的第五步是让用户选择安装方式,如果用户希望安装部分组件(软件程序),并在选择好后让系统自动安装,应该选择的选项是 。
A full B expert C newbie D menu
25. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用 命令。
A cat B more C less D menu
26. 下列信息是某系统用ps –ef命令列出的正在运行的进程, 进程是运行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模型中,应用层包含了所有的高层协议,在下列的一些应用协议中, 是能够实现本地与远程主机之间的文件传输工作。
A telnet B FTP C SNMP D NFS
28.当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出现了问题,满足该目的的命令是 。
A ping B ifconfig C traceroute D netstat
29.对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是 。
A -rwxr-xr-x B -rwxr--r-- C -r--r--r-- D -r-xr-x—x
30. 在i节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第1块到第11块,则该文件共占有 块号。
A 256 B 266 C 11 D 256×10
31. 用ls –al 命令列出下面的文件列表, 文件是符号连接文件。
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 IP地址 B MAC地址 C 网络地址 D 主机别名
33. WWW服务器是在Internet上使用最为广泛,它采用的是 结构。
A 服务器/工作站 B B/S C 集中式 D 分布式
34.Linux系统通过 命令给其他用户发消息。
A less B mesg y C write D echo to
35.NFS是 系统。
A 文件 B 磁盘 C 网络文件 D 操作
36. 命令可以在Linux的安全系统中完成文件向磁带备份的工作。
A cp B tr C dir D cpio
37.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 目录中。
A /bin B /etc C /dev D /lib
38.在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用 命令实现。
A # reboot B # halt C # reboot D # shutdown –r now
39.网络管理具备以下几大功能:配置管理、 、性能管理、安全管理和计费管理等。
A 故障管理 B 日常备份管理 C 升级管理 D 发送邮件
40.关于代理服务器的论述,正确的是 A 。
A 使用internet上已有的公开代理服务器,只需配置客户端。
B 代理服务器只能代理客户端http的请求。
C 设置好的代理服务器可以被网络上任何主机使用。
D 使用代理服务器的客户端没有自己的ip地址。
41.关闭linux系统(不重新启动)可使用命令 。
A Ctrl+Alt+Del B halt C shutdown -r now D reboot
42.实现从IP地址到以太网MAC地址转换的命令为: 。
A ping B ifconfig C arp D traceroute
43.在vi编辑器中的命令模式下,键入 可在光标当前所在行下添加一新行。
A B C D A
44.在vi编辑器中的命令模式下,删除当前光标处的字符使用 命令。
A B C D
45.在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用 命令。
A 上箭头 B 下箭头 C <.> D <*>
46.用命令ls -al显示出文件ff的描述如下所示,由此可知文件ff的类型为 。
-rwxr-xr-- 1 root root 599 Cec 10 17:12 ff
A 普通文件 B 硬链接 C 目录 D 符号链接
47.删除文件命令为: 。
A mkdir B rmdir C mv D rm
48.在下列的名称中,不属于DNS服务器类型的是:____ _____。
A Primary Master Server B Secondary Master Server
C samba D Cache_only Server
49.网络管理员对WWW服务器进行访问、控制存取和运行等控制,这些控制可在 文件中体现。
A httpd.conf B lilo.conf C inetd.conf D resolv.conf
50.邮件转发代理也称邮件转发服务器,它可以使用SMTP协议,也可以使用 协议。
A FTP B TCP C UUCP D POP
51.启动samba服务器进程,可以有两种方式:独立启动方式和父进程启动方式,其中前者是在
文件中以独立进程方式启动。
A /usr/sbin/smbd B /usr/sbin/nmbd C rc.samba D /etc/inetd.conf
52.DHCP是动态主机配置协议的简称,其作用是可以使网络管理员通过一台服务器来管理一个网络系统,自动地为一个网络中的主机分配___ ______地址。
A 网络 B MAC C TCP D IP
53.为了保证在启动服务器时自动启动DHCP进程,应将 文件中的dhcpd=no改为dhcpd=yes。
A rc.inet1 B lilo.conf C inetd.conf D httpd.conf
54.对文件进行归档的命令为 。
A dd B cpio C gzip D tar
55.改变文件所有者的命令为 。
A chmod B touch C chown D cat
56.在给定文件中查找与设定条件相符字符串的命令为: 。
A grep B gzip C find D sort
57.建立一个新文件可以使用的命令为 。
A chmod B more C cp D touch
58.在下列命令中,不能显示文本文件内容的命令是: 。
A more B less C tail D join
59.在使用匿名登录ftp时,用户名为 。
A users B anonymous C root D guest
60.在实际操作中,想了解命令logname 的用法,可以键入 得到帮助。
A logname --man B logname/? C help logname D logname --help
61.如果LILO被安装在MBR,使用 命令即可卸载LILO。
A lilo –u B lilo –c C lilo –v D lilo -V
62.当用命令ls –al查看文件和目录时,欲观看卷过屏幕的内容,应使用组合键 。
A Shift+Home B Ctrl+ PgUp C Alt+ PgDn D Shift+ PgUp
63.mc是UNIX风格操作系统的 。
A 文件编辑器/程序编译器 B 配置网络的窗口工具
C 目录浏览器/文件管理器 D Samba服务器管理工具
64.i节点是一个 长的表,表中包含了文件的相关信息。
A 8字节 B 16字节 C 32字节 D 64字节
65.文件权限读、写、执行的三种标志符号依次是 。
A rwx B xrw C rdx D srw
66.Linux 文件名的长度不得超过 C 个字符。
A 64 B 128 C 256 D 512
67.进程有三种状态: 。
A 准备态、执行态和退出态 B 精确态、模糊态和随机态
C 运行态、就绪态和等待态 D 手工态、自动态和自由态
68. 从后台启动进程,应在命令的结尾加上符号 。
A & B @ C # D $
69. 不是邮件系统的组成部分。
A 用户代理 B 代理服务器 C 传输代理 D 投递代理
70.在Shell脚本中,用来读取文件内各个域的内容并将其赋值给Shell变量的命令是 。
A fold B join C tr D read
71.crontab文件由六个域组成,每个域之间用空格分割,其排列如下: 。
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
72.用ftp进行文件传输时,有两种模式: 。
A Word和binary B .txt和Word Document
C ASCII和binary D ASCII和Rich Text Format
73.某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为 。
A 467 B 674 C 476 D 764
74.在DNS系统测试时,设named进程号是63,命令 是通知进程重读配置文件。
A kill –USR2 63 B kill –USR1 63 C kill -INT 63 D kill –HUP 63
75.Apache服务器默认的接听连接端口号是 。
A 1024 B 800 C 80 D 8
76.PHP和MySQL的联合使用解决了 。
A 在Proxy上处理数据库的访问问题 B 在WWW服务器上处理黑客的非法访问问题
C 在WWW服务器上处理数据库的访问问题
D 在Sendmail邮件系统上处理数据库的访问问题
77.OpenSSL是一个 。
A 加密软件 B 邮件系统 C 数据库管理系统 D 嵌入式脚本编程语言
78.Samba服务器的配置文件是 。
A httpd.conf B inetd.conf C rc.samba D smb.conf
79.关于DNS服务器,叙述正确的是 。
A DNS服务器配置不需要配置客户端
B 建立某个分区的DNS服务器时只需要建立一个主DNS服务器
C 主DNS服务器需要启动named进程,而辅DNS服务器不需要
D DNS服务器的root.cache文件包含了根名字服务器的有关信息
80.退出交互模式的shell,应键入 。
A B ^q C exit D quit
81.将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下,命令是 。
A root@l04.edu.cn:~#mount dev/had1 /winsys
B root@l04.edu.cn:~#mount /dev/had1 /winsys
C root@l04.edu.cn:~#mount /dev/had1 winsys
D root@l04.edu.cn:~#mount dev/had1 winsys
82.设超级用户root当前所在目录为:/usr/local,键入cd命令后,用户当前所在目录为 。
A /home B /root C /home/root D /usr/local
83.字符设备文件类型的标志是 。
A p B c C s D l
84.将光盘CD-ROM(hdc)安装到文件系统的/mnt/cdrom目录下的命令是 。
A mount /mnt/cdrom B mount /mnt/cdrom /dev/hdc
C mount /dev/hdc /mnt/cdrom D mount /dev/hdc
85.将光盘/dev/hdc卸载的命令是 。
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,使用 可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。
A cat file >file.copy B cat >file.copy
C cat file file.copy & D cat file >file.copy &
87.在DNS配置文件中,用于表示某主机别名的是: 。
A NS B CNAME C NAME D CN
88.可以完成主机名与IP地址的正向解析和反向解析任务的命令是: 。
A nslookup B arp C ifconfig D dnslook
89.下列变量名中有效的shell变量名是: 。
A -2-time B _2$3 C trust_no_1 D 2004file
90.qmail是 。
A 收取邮件的协议 B 邮件服务器的一种 C 发送邮件的协议 D 邮件队列
91.已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,进入目录/home/stud1/test的命令是 。
A cd test B cd /stud1/test C cd stud1/test D cd home
92.已知某用户stud1,其用户目录为/home/stud1。分页显示当前目录下的所有文件的文件或目录名、用户组、用户、文件大小、文件或目录权限、文件创建时间等信息的命令是 。
A more ls –al B more –al ls C more < ls –al D ls –al | more
93.关于进程调度命令, 是不正确的。
A 当日晚11点执行clear命令,使用at命令:at 23:00 today clear
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文件,应拥有 权限。
A 744 B 664 C 646 D 746
95.如果想配置一台匿名ftp服务器,应修改 文件。
A /etc/gateway B /etc/ftpservers C /etc/ftpusers D /etc/inetd.conf
96.Samba服务器的进程由 两部分组成 。
A named和sendmail B smbd和nmbd C bootp和dhcpd D httpd和squid
97.要配置NFS服务器,在服务器端主要配置 文件。
A /etc/rc.d/rc.inet1 B /etc/rc.d/rc.M C /etc/exports D /etc/rc.d/rc.S
98.为保证在启动服务器时自动启动DHCP进程,应对 文件进行编辑。
A /etc/rc.d/rc.inet2 B /etc/rc.d/rc.inet1 C /etc/dhcpd.conf D /etc/rc.d/rc.S
99.在配置代理服务器时,若设置代理服务器的工作缓存为64MB,配置行应为 。
A cache 64MB
B cache_dir ufs /usr/local/squid/cache 10000 16 256
C cache_ mgr 64MB        D cache_ mem 64MB
100.安全管理涉及的问题包括保证网络管理工作可靠进行的安全问题和保护网络用户及网络管理对象问题。 属于安全管理的内容。
A 配置设备的工作参数 B 收集与网络性能有关的数据
C 控制和维护访问权限 D 监测故障
101.以下命令对中,正确的是: 。
A ls和sl B cat和tac C more和erom D exit和tixe
102. 命令是在vi编辑器中执行存盘退出。
A :q B ZZ C :q! D :WQ
103.下列关于/etc/fstab文件描述,正确的是 。
A fstab文件只能描述属于linux的文件系统
B CD_ROM和软盘必须是自动加载的
C fstab文件中描述的文件系统不能被卸载
D 启动时按fstab文件描述内容加载文件系统
104.通过文件名存取文件时,文件系统内部的操作过程是通过 。
A 文件在目录中查找文件数据存取位置。
B 文件名直接找到文件的数据,进行存取操作。
C 文件名在目录中查找对应的I节点,通过I节点存取文件数据。
D 文件名在中查找对应的超级块,在超级块查找对应i节点,通过i节点存取文件数据
105.Linux将存储设备和输入/输出设备均看做文件来操作, 不是以文件的形式出现。
A 目录 B 软链接 C i节点表 D 网络适配器
106.关于i节点和超级块,下列论述不正确的是 。
A i节点是一个长度固定的表
B 超级块在文件系统的个数是唯一的
C i节点包含了描述一个文件所必需的全部信息
D 超级块记录了i节点表和空闲块表信息在磁盘中存放的位置
107. 设备是字符设备。
A hdc B fd0 C hda1 D tty1
108. 目录存放着Linux的源代码。
A /etc B /usr/src C /usr D /home
109.关于文件系统的安装和卸载,下面描述正确的是 。
A 如果光盘未经卸载,光驱是打不开的
B 安装文件系统的安装点只能是/mnt下
C 不管光驱中是否有光盘,系统都可以安装CD-ROM设备
D mount /dev/fd0 /floppy 此命令中目录/floppy是自动生成的
110. 不是进程和程序的区别。
A 程序是一组有序的静态指令,进程是一次程序的执行过程
B 程序只能在前台运行,而进程可以在前台或后台运行
C 程序可以长期保存,进程是暂时的
D 程序没有状态,而进程是有状态的
111.文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 。
A chmod a+x g+w exer1 B chmod 765 exer1
C chmod o+x exer1 D chmod g+w exer1
112.有关归档和压缩命令,下面描述正确的是 。
A 用uncompress命令解压缩由compress命令生成的后缀为.zip的压缩文件
B unzip命令和gzip命令可以解压缩相同类型的文件
C tar归档且压缩的文件可以由gzip命令解压缩
D tar命令归档后的文件也是一种压缩文件
113.不是shell具有的功能和特点的是 。
A 管道 B 输入输出重定向 C 执行后台进程 D 处理程序命令
114.下列对shell变量FRUIT操作,正确的是: 。
A 为变量赋值:$FRUIT=apple B 显示变量的值:fruit=apple
C 显示变量的值:echo $FRUIT D 判断变量是否有值:[ -f “$FRUIT” ]

三.简答题
1.简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
Linux通过i节点表将文件的逻辑结构和物理结构进行转换。i节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所 有者、文件的存取许可方式以及文件的类型等重要信息,在i节点表中最主要的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出 现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查询该文件名对应的项,由于此 得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。
2.简述进程的启动、终止的方式以及如何进行进程的查看。
在Linux中启动一个进程有手工启动和调度启动两种方式:
(1)手工启动用户在输入端发出命令,直接启动一个进程的启动方式。可以分为: ①前台启动:直接在SHELL中输入命令进行启动。 ②后台启动:启动一个目前并不紧急的进程,如打印进程。
(2)调度启动系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时 间和场合,到时候系统会自动完成该任务。
经常使用的进程调度命令为:at、batch、crontab。
3. 简述DNS进行域名正向解析的过程。
首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
(4)若没有找到,则返回错误信息。

4.系统管理员的职责包括那些?管理的对象是什么?
系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。

5.简述安装Slackware Linux系统的过程。
(1)对硬盘重新分区。
(2)启动Linux系统(用光盘、软盘等)。
(3)建立Linux主分区和交换分区。
(4)用setup命令安装Linux系统。
(5)格式化Linux主分区和交换分区
(6)安装Linux软件包
(7)安装完毕,建立从硬盘启动Linux系统的LILO启动程序,或者制作一张启动Linux系统的软盘。重新启动Linux系统。

6.什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后必须由网络管理员修改路由表。
动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。

7.进程的查看和调度分别使用什么命令?
进程查看的命令是ps和top。
进程调度的命令有at,crontab,batch,kill。

8.当文件系统受到破坏时,如何检查和修复系统?
成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。
使用命令fsck对受到破坏的文件系统进行修复。fsck检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。在 执行 fsck命令时,检查首先从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node。

9.解释i节点在文件系统中的作用。
在linux文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引。I节点包含了描述一个文件所必须的全部信息。所以i节点是文件系统管理的一个数据结构。

10.什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
链接分硬链接和符号链接。
符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。
硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。

11.在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则。
磁盘簇(或i节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调度磁盘空间效率。当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些。通常使用经验值。

12.简述网络文件系统NFS,并说明其作用。
网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享。对于用户而言 可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用NFS之后省去了登录的过程,方便了用户访问系统资源。

13.某/etc/fstab文件中的某行如下:
/dev/had5  /mnt/dosdata  msdos  defaults, usrquota  1  2
请解释其含义。
(1)第一列:将被加载的文件系统名;
(2)第二列:该文件系统的安装点;
(3)第三列:文件系统的类型;
(4)第四列:设置参数;
(5)第五列:供备份程序确定上次备份距现在的天数;
(6)第六列:在系统引导时检测文件系统的顺序。

14.Apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项:
(1)MaxKeepAliveRequests 200 (2)UserDir public_html
(3)DefaultType text/plain (4)AddLanguare en.en
(5)DocumentRoot“/usr/local/httpd/htdocs”
(6)AddType application/x-httpd-php.php.php.php4
(1)允许每次连接的最大请求数目,此为200;
(2)设定用户放置网页的目录;
(3)设置服务器对于不认识的文件类型的预设格式;
(4)设置可传送语言的文件给浏览器;
(5)该目录为Apache放置网页的地方;
(6)服务器选择使用php4。


15.某Linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容。
/etc/rc.d/rc.inet1:
……
ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1
ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 1
(1)ROUTE应改为小写:route;
(2)netmask 255.255.0.0应改为:netmask 255.255.255.0;
(3)缺省路由的子网掩码应改为:netmask 0.0.0.0;
(4)缺省路由必须在最后设定,否则其后的路由将无效。
解释内容:
(1)route:建立静态路由表的命令;
(2)add:增加一条新路由;
(3)-net 192.168.1.0:到达一个目标网络的网络地址;
(4)default:建立一条缺省路由;
(5)gw 192.168.0.101:网关地址;
(6)metric 1:到达目标网络经过的路由器数(跳数)。

16.试解释apache服务器以下配置的含义:
(1)port 1080 (2)UserDir userdoc
(3)DocumentRoot “/home/htdocs”
(4) Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
deny from all
allow from 192.168.1.5
(5)Server Type Standlone
Apache服务器配置行含义如下:
(1)将apache服务器的端口号设定为1080;
(2)设定用户网页目录为userdoc;
(3)设定apache服务器的网页根目录:/home/htdocs;
(4)在此apache服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP地址为192.168.1.5的主机访问;
(5)定义apache服务器以独立进程的方式运行。

17.简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
(1)ftp有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,密码为用户在远程系统中的用户密码。
区别:使用匿名登录只能访问ftp目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可。
(2)ftp文件传输有两种文件传输模式:ASCII模式和binary模式。ASCII模式用来传输文本文件,其他文件的传输使用binary模式。
(3)常用的ftp文件传输命令为:bin、asc、put、get、mput、mget、prompt、bye
四.编程与应用题:
1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。
参考程序:

#!/bin/sh
FILENAME=
echo “Input file name:”
read FILENAME
if [ -c "$FILENAME" ]
then
cp $FILENAME /dev
fi
2.请下列shell程序加注释,并说明程序的功能和调用方法:#!/bin/sh
#!/bin/sh
#
# /etc/rc.d/rc.httpd
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case "$1" in
'start')
/usr/sbin/apachectl start ;;
'stop')
/usr/sbin/apachectl stop ;;
'restart')
/usr/sbin/apachectl restart ;;
*)
echo "usage $0 start|stop|restart" ;;
esac
参考答案:
(1)程序注释
#!/bin/sh 定义实用的shell
#
# /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。
#
# Start/stop/restart the Apache web server.
#
# To make Apache start automatically at boot, make this

# file executable: chmod 755 /etc/rc.d/rc.httpd
#
case "$1" in #case结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置参数”,即$1
'start') #若位置参数为start
/usr/sbin/apachectl start ;; #启动httpd进程
'stop') #若位置参数为stop
/usr/sbin/apachectl stop ;; #关闭httpd进程
'restart') #若位置参数为stop
/usr/sbin/apachectl restart ;; #重新启动httpd进程
*) #若位置参数不是start、stop或restart时
echo "usage $0 start|stop|restart" ;; #显示命令提示信息:程序的调用方法
esac #case结构结束
(2)程序的功能是启动,停止或重新启动httpd进程
(3)程序的调用方式有三种:启动,停止和重新启动。
3.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。
参考答案:
#!/bin/sh
i=1
groupadd class1
while [ $i -le 30 ]
do
if [ $i -le 9 ] ;then
USERNAME=stu0${i}
else
USERNAME=stu${i}
fi
useradd $USERNAME
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
i=$(($i+1))
done

4.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。
参考程序:
#!/bin/sh
i=1
while [ $i -le 50 ]
do
userdel -r stud${i}
i=$(($i+1 ))
done
5.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:
(1)在下午4 :50删除/abc目录下的全部子目录和全部文件;
(2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内;
(3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;
(4)在下午5:55将IDE接口的CD-ROM卸载(假设:CD-ROM的设备名为hdc);
(5)在早晨8:00前开机后启动。
参考答案:
解决方案:
(1)用vi创建编辑一个名为prgx的crontab文件;
(2)prgx文件的内容:
50 16 * * * rm -r /abc/*
0 8-18/1 * * * cut -f1 /xyz/x1 >;>; /backup/bak01.txt
50 17 * * * tar zcvf backup.tar.gz /data
55 17 * * * umount /dev/hdc
(3)由超级用户登录,用crontab执行 prgx文件中的内容:
root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。
6.设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。
参考答案:
(1)编写shell程序fileback:
#!/bin/sh
DIRNAME=`ls /root | grep bak`
if [ -z "$DIRNAME" ] ; then
mkdir /root/bak
cd /root/bak
fi
YY=`date +%y`
MM=`date +%m`
DD=`date +%d`
BACKETC=$YY$MM$DD_etc.tar.gz
tar zcvf $BACKETC /etc
echo "fileback finished!"
(2)编写任务定时器:
echo "0 0 1 * * /bin/sh /usr/bin/fileback" >; /root/etcbakcron
crontab /root/etcbakcron
或使用crontab -e 命令添加定时任务:
0 1 * * * /bin/sh /usr/bin/fileback
7.有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?
参考答案:(1)第一种方法:
用户应使用crontab –e 命令创建crontab文件。格式如下:
0 0 * * sun cp –r /user/backup /tmp
(2)第二种方法:
用户先在自己目录下新建文件file,文件内容如下:
0 * * sun cp –r /user/backup /tmp
然后执行 crontab file 使生效。
8.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。
参考答案: 建立程序 Pro16如下:
#!/bin/sh
i=1
while [ i -le 50 ]
do
if [ -d /userdata ];then
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo "user$i"
let "i = i + 1" (或i=$(($i+1))
else
mkdir /userdata
mkdir -p /userdata/user$i
chmod 754 /userdata/user$i
echo "user$i"
let "i = i + 1" (或i=$(($i+1))
fi
done

五、多选题
1.关于硬链接的描述正确的(BE)。
A 跨文件系统 B不可以跨文件系统 D可以做目录的连接
C 为链接文件创建新的i节点 E链接文件的i节点同被链接文件的i节点
2.在网站发布用户wang的个人网页时,需要创建用户网页目录,假定用户网页目录设定为web用户目录在/home目录下),如下描述正确的是(BCE)
A 存放用户网页的绝对路径/wang/web B存放用户网页的目录~wang/
C 存放用户网页的绝对路径/home/wang/web D存放用户网页的绝对路径/home/web
E 在本机访问用户wang的个人网页的URL地址http://localhost/~wang/
3.在一台WWW服务器上将端口号设定为8000,默认的网页文件index.html,服务器网页的根目录/www。在本机访问服务器时,正确的用法是(BDE)
A 浏览器访问该服务器的URL地址http://localhost/
B 浏览器访问该服务器的URL地址http://localhost:8000/
C 浏览器访问该服务器的用户li网页URL地址http://localhost/~li
D 浏览器访问该服务器的用户li网页URL地址http://localhost:8000/~li
E 浏览器访问该服务器的URL地址localhost:8000/
4.在shell编程中关于$2的描述正确的是(CE)
A 程序后携带了两个位置参数 B 宏替换 C 程序后面携带的第二个位置参数
D 携带位置参数的个数 E 用$2引用第二个位置参数
5.某文件的权限是 - r w x r - - r- -,下面描述正确的是(CD)
A 文件的权限值是755 B 文件的所有者对文件只有读权 限
C 文件的权限值是 744 D 其他用户对文件只有读权限 E同组用户对文件只有写权限
6.关于OpenSSH的作用的描述正确的是(ACE)
A 开放源代码的安全加密程序 B OpenSSH常用于为http协议加密
C OpenSSH用于提高远程登录访问的安全性 D 它和telnet实用同样的端口号
E OpenSSH是免费下载的应程序
7.关于NFS服务器描述正确的是(BC)
A 网络中实现Windows系统之间文件系统共享的应用软件
B 网络中实现Linux系统之间文件系统共享的应用软件
C 网络中实现Unix系统之间文件系统共享的应用软件
D 网络中实现Windows系统和Unix之间文件系统共享的应用软件
E 网络中实现Windows系统和Linux之间文件系统共享的应用软件
8.关于sed描述正确的是(ABD)
A sed 是Linux系统中的流编辑器 B sed 是UNIX系统中的流编辑器
C sed 网络文件系统的类型

D 利用管道对标准输入/标准输入的数据进行编辑和组合
E sed是NFS的应用程序
9.关于限制磁盘限额,描述正确的是(ABD)
A 使用edquota可以监控系统所有用户使用的磁盘空间,并在接近极限时提示用户
B 用户组的磁盘限额是用户组内所有用户予设磁盘空间总和
C 单个用户的磁盘限额就是该用户所在用户组内所有磁盘限额的总合
D 在Linux系统下限制用户使用的磁盘空间可以使用edquota
E 用户组的磁盘限额就是该用户组内拥有最大磁盘限额值的用户的磁盘限额
10.关于建立系统用户的正确描述是(ABD)
A 在Linux系统下建立用户使用adduser命令
B 每个系统用户分别在/etc/passwd和/etc/shadow文件中有一条记录
C 访问每个用户的工作目录使用命令“cd /用户名”
D 每个系统用户在默认状态下的工作目录在/home/用户名
E 每个系统用户在/etc/fstab文件中有一条记录

linux的sort命令

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!

1 sort的工作原理

 

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear

2 sort的-u选项

它的作用很简单,就是在输出行中去除重复行。

[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
pear
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear
pear
[rocrocket@rocrocket programming]$ sort -u seq.txt
apple
banana
orange
pear

pear由于重复被-u选项无情的删除了。

3 sort的-r选项

sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。

[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort number.txt
1
2
3
4
5
[rocrocket@rocrocket programming]$ sort -r number.txt
5
4
3
2
1

4 sort的-o选项

由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。

但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。

[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt
[rocrocket@rocrocket programming]$ cat number.txt
[rocrocket@rocrocket programming]$
看,竟然将number清空了。

就在这个时候,-o选项出现了,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。

[rocrocket@rocrocket programming]$ cat number.txt
1
3
5
2
4
[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt
[rocrocket@rocrocket programming]$ cat number.txt
5
4
3
2
1

5 sort的-n选项

你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。

我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!

[rocrocket@rocrocket programming]$ cat number.txt
1
10
19
11
2
5
[rocrocket@rocrocket programming]$ sort number.txt
1
10
11
19
2
5
[rocrocket@rocrocket programming]$ sort -n number.txt
1
2
5
10
11
19

6 sort的-t选项和-k选项

如果有一个文件的内容是这样:

[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4

这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。

那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?

幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)

指定了间隔符之后,就可以用-k来指定列数了。

[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。

7 其他的sort常用选项

-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写

-c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1

-C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1

-M会以月份来排序,比如JAN小于FEB等等

-b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。

有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思。今天,我们就来搞定它—-k选项!

1 准备素材

$ cat facebook.txt
google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500

 

第一个域是公司名称,第二个域是公司人数,第三个域是员工平均工资。(除了公司名称,其他的别信,都瞎写的^_^)

2 我想让这个文件按公司的字母顺序排序,也就是按第一个域进行排序:(这个facebook.txt文件有三个域)

$ sort -t ‘ ‘ -k 1 facebook.txt
baidu 100 5000
google 110 5000
guge 50 3000
sohu 100 4500

看到了吧,就直接用-k 1设定就可以了。(其实此处并不严格,稍后你就会知道)

3 我想让facebook.txt按照公司人数排序

$ sort -n -t ‘ ‘ -k 2 facebook.txt
guge 50 3000
baidu 100 5000
sohu 100 4500
google 110 5000

不用解释,我相信你能懂。

但是,此处出现了问题,那就是baidu和sohu的公司人数相同,都是100人,这个时候怎么办呢?按照默认规矩,是从第一个域开始进行升序排序,因此baidu排在了sohu前面。

4  我想让facebook.txt按照公司人数排序 ,人数相同的按照员工平均工资升序排序:

$ sort -n -t ‘ ‘ -k 2 -k 3 facebook.txt
guge 50 3000
sohu 100 4500
baidu 100 5000
google 110 5000

看,我们加了一个-k2 -k3就解决了问题。对滴,sort支持这种设定,就是说设定域排序的优先级,先以第2个域进行排序,如果相同,再以第3个域进行排序。(如果你愿意,可以一直这么写下去,设定很多个排序优先级)

5 我想让facebook.txt按照员工工资降序排序,如果员工人数相同的,则按照公司人数升序排序:(这个有点难度喽)

$ sort -n -t ‘ ‘ -k 3r -k 2 facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000

此处有使用了一些小技巧,你仔细看看,在-k 3后面偷偷加上了一个小写字母r。你想想,再结合我们上一篇文章,能得到答案么?揭晓:r和-r选项的作用是一样的,就是表示逆序。因为sort默认是按照升序排序的,所以此处需要加上r表示第三个域(员工平均工资)是按照降序排序。此处你还可以加上n,就表示对这个域进行排序时,要按照数值大小进行排序,举个例子吧:

$ sort -t ‘ ‘ -k 3nr -k 2n facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000

看,我们去掉了最前面的-n选项,而是将它加入到了每一个-k选项中了。

6 -k选项的具体语法格式

要继续往下深入的话,就不得不来点理论知识。你需要了解-k选项的语法格式,如下:

[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]

这个语法格式可以被其中的逗号(“,”)分为两大部分,Start部分和End部分。

先给你灌输一个思想,那就是“如果不设定End部分,那么就认为End被设定为行尾”。这个概念很重要的,但往往你不会重视它。

Start部分也由三部分组成,其中的Modifier部分就是我们之前说过的类似n和r的选项部分。我们重点说说Start部分的FStart和C.Start。

C.Start也是可以省略的,省略的话就表示从本域的开头部分开始。之前例子中的-k 2和-k 3就是省略了C.Start的例子喽。

FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算“排序首字符”。

同理,在End部分中,你可以设定FEnd.CEnd,如果你省略.CEnd,则表示结尾到“域尾”,即本域的最后一个字符。或者,如果你将CEnd设定为0(零),也是表示结尾到“域尾”。

7 突发奇想,从公司英文名称的第二个字母开始进行排序:

$ sort -t ‘ ‘ -k 1.2 facebook.txt
baidu 100 5000
sohu 100 4500
google 110 5000
guge 50 3000

看, 我们使用了-k 1.2,这就表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。你会发现baidu因为第二个字母是a而名列榜首。sohu和 google第二个字符都是o,但sohu的h在google的o前面,所以两者分别排在第二和第三。guge只能屈居第四了。

8 又突发奇想,,只针对公司英文名称的第二个字母进行排序,如果相同的按照员工工资进行降序排序:

$ sort -t ‘ ‘ -k 1.2,1.2 -k 3,3nr facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000

由 于只对第二个字母进行排序,所以我们使用了-k 1.2,1.2的表示方式,表示我们“只”对第二个字母进行排序。(如果你问“我使用-k 1.2怎么不行?”,当然不行,因为你省略了End部分,这就意味着你将对从第二个字母起到本域最后一个字符为止的字符串进行排序)。对于员工工资进行排 序,我们也使用了-k 3,3,这是最准确的表述,表示我们“只”对本域进行排序,因为如果你省略了后面的3,就变成了我们“对第3个域开始到最后一个域位置的内容进行排序” 了。

9 在modifier部分还可以用到哪些选项?

可以用到b、d、f、i、n 或 r。

其中n和r你肯定已经很熟悉了。

b表示忽略本域的签到空白符号。

d表示对本域按照字典顺序排序(即,只考虑空白和字母)。

f表示对本域忽略大小写进行排序。

i表示忽略“不可打印字符”,只针对可打印字符进行排序。(有些ASCII就是不可打印字符,比如\a是报警,\b是退格,\n是换行,\r是回车等等)

10 思考思考关于-k和-u联合使用的例子:

$ cat facebook.txt
google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500

这是最原始的facebook.txt文件。

$ sort -n -k 2 facebook.txt
guge 50 3000
baidu 100 5000
sohu 100 4500
google 110 5000

$ sort -n -k 2 -u facebook.txt
guge 50 3000
baidu 100 5000
google 110 5000

当设定以公司员工域进行数值排序,然后加-u后,sohu一行就被删除了!原来-u只识别用-k设定的域,发现相同,就将后续相同的行都删除。

$ sort  -k 1 -u facebook.txt
baidu 100 5000
google 110 5000
guge 50 3000
sohu 100 4500

$ sort  -k 1.1,1.1 -u facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500

这个例子也同理,开头字符是g的guge就没有幸免于难。

$ sort -n -k 2 -k 3 -u facebook.txt
guge 50 3000
sohu 100 4500
baidu 100 5000
google 110 5000

咦!这里设置了两层排序优先级的情况下,使用-u就没有删除任何行。原来-u是会权衡所有-k选项,将都相同的才会删除,只要其中有一级不同都不会轻易删除的:)(不信,你可以自己加一行sina 100 4500试试看)

11 最诡异的排序:

$ sort -n -k 2.2,3.1 facebook.txt
guge 50 3000
baidu 100 5000
sohu 100 4500
google 110 5000

以第二个域的第二个字符开始到第三个域的第一个字符结束的部分进行排序。

第一行,会提取0 3,第二行提取00 5,第三行提取00 4,第四行提取10 5。

又因为sort认为0小于00小于000小于0000….

因此0 3肯定是在第一个。10 5肯定是在最后一个。但为什么00 5却在00 4前面呢?(你可以自己做实验思考一下。)

答案揭晓:原来“跨域的设定是个假象”,sort只会比较第二个域的第二个字符到第二个域的最后一个字符的部分,而不会把第三个域的开头字符纳入比较范围。当发现00和00相同时,sort就会自动比较第一个域去了。当然baidu在sohu前面了。用一个范例即可证实:

$ sort -n -k 2.2,3.1 -k 1,1r facebook.txt
guge 50 3000
sohu 100 4500
baidu 100 5000
google 110 5000

12 有时候在sort命令后会看到+1 -2这些符号,这是什么东东?

关于这种语法,最新的sort是这么进行解释的:

On older systems, `sort’ supports an obsolete origin-zero syntax `+POS1 [-POS2]‘ for specifying sort keys.  POSIX 1003.1-2001 (*note Standards conformance::) does not allow this; use `-k’ instead.

原来,这种古老的表示方式已经被淘汰了,以后可以理直气壮的鄙视使用这种表示方法的脚本喽!

(为了防止古老脚本的存在,在这再说一下这种表示方法,加号表示Start部分,减号表示End部分。最最重要的一点是,这种方式方法是从0开始计数的,以前所说的第一个域,在此被表示为第0个域。以前的第2个字符,在此表示为第1个字符。明白?)

linux忘记root登录密码解决办法

1.系统启动,在出现系统选择界面时,在选项上按“e”键,

2.然后在这一行“kernel/boot/vmlinuz-2.4.18-14  root=LABEL=/”的“root”前加上“single”

3.然后按f10进入字符界面,当出现“sh-2.05b#”时,就意味着已经进入单用户模式。

4.输入“passwd root”,就可以重新设置root密码了。

5.设置完成后,reboot重启,用刚才设置的密码就可以进入linux系统了

Linux常用命令收藏

显示日志文件
tail -n行号  -f   日志文件名     用于观察日志最后n行的刷新情况

删除目录
rm -rf 目录

解压缩
tar –zxvf apr-1.4.2.tar.gz

压缩
tar -czvf this.tar.gz ./*.*

获取系统时间
date +'%Y-%m-%d %H:%M:%S'

查进程
ps -ef|grep poscoupon/tomcat
ps aux|grep poscoupon/tomcat

批量杀进程,如查杀所有poscoupon的进程
ps -ef |grep poscoupon/tomcat |awk '{print $2}' |xargs kill -9
ps -ef |grep tomcat |awk '{print $2}' |xargs kill -9

杀进程: (-9强杀)
kill <pid>  -9

查1天之内被存取过的文件
find /home    -atime -1                 

查看8天内有变更的文件
find /home/tomcat/coupon -ctime -8    

拷贝子目录
cp -R coupon/ bak1/

查看系统发行版本:
cat /etc/issue

查系统内核:
uname -a

查看端口号有80的tcp连接
netstat -anpt | grep 80

linux自启动命令
在/etc/rc.local   中添加要启动的命令
启动时将以root身份运行

启动时指定脚本以某用户身份运行
su - username -c "/path/program.name"   加进rc.local就可以了.

在root用户中,以指定用户身份运行
sudo -u poscoupon  /home/poscoupon/autoStartup.sh



启动ftp
/etc/rc.d/init.d/vsftpd start

linux 查看系统版本的命令

1. 查看内核版本命令:

1) [root@q1test01 ~]# cat /proc/version
   Linux version 2.6.9-22.ELsmp (bhcompile@crowe.devel.redhat.com) (gcc version 3.4.4 20050721

3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2005

2) [root@q1test01 ~]# uname -a
   Linux q1test01 2.6.9-22.ELsmp #1 SMP Mon Sep 19 18:00:54 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux

3) [root@q1test01 ~]# uname -r
   2.6.9-22.ELsmp

2. 查看linux版本:

1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:

   [root@3.5.5Biz-46 ~]# [root@q1test01 ~]# lsb_release -a
   LSB Version:    :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-

   ia32:graphics-3.0-noarch
   Distributor ID: RedHatEnterpriseAS
   Description:    Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
   Release:        4
   Codename:       NahantUpdate2
   注:这个命令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。


2) 登录到linux执行cat /etc/issue,例如如下:

   [root@q1test01 ~]# cat /etc/issue
   Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
   Kernel \r on an \m

3) 登录到linux执行cat /etc/redhat-release ,例如如下:

   [root@q1test01 ~]# cat /etc/redhat-release
   Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
   注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1

4) 登录到linux执行rpm -q redhat-release ,例如如下:

   [root@q1test01 ~]# rpm -q redhat-release
   redhat-release-4AS-3
   注:这种方式下可看到一个所谓的release号,比如上边的例子是3
   这个release号和实际的版本之间存在一定的对应关系,如下:
   redhat-release-3AS-1 -> Redhat Enterprise Linux AS 3
   redhat-release-3AS-7.4 -> Redhat Enterprise Linux AS 3 Update 4
   redhat-release-4AS-2 -> Redhat Enterprise Linux AS 4
   redhat-release-4AS-2.4 -> Redhat Enterprise Linux AS 4 Update 1
   redhat-release-4AS-3 -> Redhat Enterprise Linux AS 4 Update 2
   redhat-release-4AS-4.1 -> Redhat Enterprise Linux AS 4 Update 3
   redhat-release-4AS-5.5 -> Redhat Enterprise Linux AS 4 Update 4
   另:第3)、4)两种方法只对Redhat Linux有效.


查看系统是64位还是32位:

1、getconf LONG_BIT or getconf WORD_BIT

2、file /bin/ls

3、lsb_release -a

Debian 修改IP地址或DNS

在debian中,IP地址的配置参数在/etc/network/目录下的interface中,而DNS的配置参数在/etc目录下的resolv.conf中,下面是配置参数的说明:

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

IP地址设置: /etc/network/interface

// 动态DHCP获得

# 启动系统激活设备
# Loop回环地址
auto lo
iface lo inet loopback

# 启动系统激活设备
# 网卡eth0设置为DHCP类型
auto eth0
iface eth0 inet dhcp

// 静态Static获得

# 启动系统激活设备
# Loop回环地址
auto lo
iface lo inet loopback

# 启动系统激活设备
# 网卡eth0设置为Static类型
auto eth0
iface eth0 inet static

# 指定IP地址、子网掩码、网关
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1

注:在配置IP地址参数时,“// 动态DHCP获得”和“// 静态Static获得”只能取其中的一种,二者不能同时存在,切记!!!

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

DNS服务器设置: /etc/resolv.conf
# 必须设置.否则无法访问任何URL

nameserver 8.8.4.4
nameserver 8.8.8.8

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

重启网卡

/etc/init.d/networking restart
    ifdown eth0
    ifup eth0

linux安装memcached服务

1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
# cd /tmp
# sudo wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz
# sudo wget http://www.monkey.org/~provos/libevent-1.2.tar.gz
2.先安装libevent:
# tar zxvf libevent-1.2.tar.gz
# cd libevent-1.2
# ./configure –prefix=/usr  //如果出错需安装gcc,执行sudo apt-get install gcc
# make   //如果出错需安装make,执行sudo apt-get install make
# sudo make install
3.测试libevent是否安装成功:
# ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3
-rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3
-rw-r–r– 1 root root 454156 11?? 12 17:38 libevent.a
-rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
表示都安装成功。
4.安装memcached,同时需要安装中指定libevent的安装位置:
# cd /tmp
# tar zxvf memcached-1.2.0.tar.gz
# cd memcached-1.2.0
# ./configure –with-libevent=/usr
# make
# sudo make install
5.测试是否成功安装memcached:
# ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
6.启动Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.1.100 -p 12000 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,
如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`

Linux网络配置命令行工具

一,ifconfig

用于基本接口与IP配置的ifconfig

ifconfig工具(interface configurator,接口配置器)提供了一些非常基本但是非常重要的功能。它可以打开和关闭网络适配器,分配IP地址与netmask信息。一些常用指令如下:

查看网络接口当前配置与接口命名:

ifconfig

打开(up)或关闭(down)适配器

ifconfig <网络名> <up|down>

为适配器分配IP地址:

ifconfig <网络名> <ip地址>

为适配器分配第二个IP地址:

ifconfig <网络名:实例数> <ip地址>

范例:ifconfig eth0:0 192.168.1.101


二,ethtool


用于管理以太网卡的ethtool工具

Ethtool可以查看和修改以太适配器的各种设置(不包括Wi-Fi网卡),包括tx/rx,checksumming和wake-on-LAN设置。下面是一些有用的命令:

显示某个网络适配器的驱动信息,适用于查询软件兼容性的情况:

ethtool -i <接口名>

显示网络数据:

ethtool -S

设置适配器连接速度(Mbps)

ethtool speed <10|100|1000>



三,iwconfig


iwconfig配置无线网络

iwconfig工具可以算是无线网卡的ifconfig和ethtool。你可以检查基本的Wi-Fi网络设置,如SSID、channel和加密等细节。此外还可以修改一些高级设置,包括接收敏感度,RTS/CTS,碎片,以及重试数。下面介绍几个有用的命令:

显示当前无线设置,包括接口名称:

iwconfig

设置ESSID(扩展服务设置识别器)或网络名:

iwconfig <接口名> essid <网络名>

范例:iwconfig <接口名> "my network"

范例:Example: iwconfig <接口名> any

设置radio的无线channel(1-11):

iwconfig <接口名> <channel>

输入WEP加密密钥(WPA和WPA1尚不支持,需要wpa_supplicant的支持):

iwconfig eth0 key <HEX格式的密钥>

限制适配器仅能在指定MAC地址下连接到AP:

iwconfig <接口名> ap <mac地址>

范例:iwconfig eth0 ap 00:60:1D:01:23:45

设置radio的发射强度,仅在无线网卡支持的情况下有效。默认单位为dBm,可设置为mW:

iwconfig <接口名> txpower <强度>

范例:iwconfig eth0 txpower 15

范例:iwconfig eth0 txpower 30mW



四,tcpdump


用于嗅探网络包的tcpdump

这不是一个简单的工具。这是一个嗅探器/分析器。它可以捕捉你的接口中和网络上传输的包。这个工具常常通过其他GUI程序进行调用,不过在terminal下也同样有用。可以从以下几个指令开始了解:

-i:设置需要捕捉的接口,如eth0或ath0。

-n:停止用主机名称替换IP地址。

-nn:停止解析主机名或端口名。

-s:每个packet显示的最大byte数。默认值为68,设置为0则显示整个packet。

v,-vv和-vvv:显示随packet输出的详细信息,如IP packet的全长度和选项,完全解码的SMB packet,以及telnet细节。

-x:以HEX格式显示packet内容。

-X:以ASCII格式输出packet内容。



五,ping


Ping,你的网络声纳

Ping工具与微软在Windows中提供的差不多,不过选项类型和名称不同。另外,Linux中的Ping在默认情况下会无休止的ping,而不是Windows中的四次。

开始ping一个IP地址或主机名/域名:

ping <ip地址>

要停止ping,使用Ctrl+C。

一些有用的选项包括:

-c:为发送的packet计数

-i:packet间等待的时间长度,单位为秒

-s:packet大小,默认为56

-w:执行ping的时间长度,单位为秒



六,netstat


检测网络数据的netstat

netstat工具可以显示网络连接、接口数据、路由表、masquerade连接和multicast成员的详细信息。常用指令如下:

查看打开的socket列表:

netstat

显示所有网络接口:

netstat -i

显示每个协议的概括情况:

netstat -s



七,hostname


用于查看和修改主机名的hostname

所有管理员都知道主机名(hostname)是什么东西。主机名是一个相比IP地址而言更加友好的网络设备显示方式。Linux当中提供了一个hostname工具,可以让你暂时修改你的主机名。

查看当前主机名:

hostname

暂时更改主机名(可以维持到重启之前):

hostname <新的主机名>

若想要永久的更改主机名,则需要编辑/etc/hostname文件或/etc/sysconfig/network文件

Bash 使用技巧大补贴

Bash 是我们经常与之打交道的 Shell 程序,本文针对其使用技巧进行了搜罗。相信在你看过这些内容之后,定会在 Bash 的世界里游刃有余。

  • 从历史中执行命令 有时候,我们需要在 Bash 中重复执行先前的命令。你当然可以使用上方向键来查看之前曾经运行过的命令。但这里有一种更好的方式:你可以按 Ctrl + r 组合键进入历史搜索模式,一旦找到需要重复执行的命令,按回车键即可。
  • 重复命令参数 先来看一个例子: 
    1
    
    mkdir /path/to/exampledir cd !$&nbsp;
    本例中,第一行命令将创建一个目录,而第二行的命令则转到刚创建的目录。这里,“!$”的作用就是重复前一个命令的参数。事实上,不仅是命令的参数可以重复,命令的选项同样可以。另外,Esc + . 快捷键可以切换这些命令参数或选项。
  • 用于编辑的快捷键
    • Ctrl + a:将光标定位到命令的开头
    • Ctrl + e:与上一个快捷键相反,将光标定位到命令的结尾
    • Ctrl + u:剪切光标之前的内容
    • Ctrl + k:与上一个快捷键相反,剪切光标之后的内容
    • Ctrl + y:粘贴以上两个快捷键所剪切的内容
    • Ctrl + t:交换光标之前两个字符的顺序
    • Ctrl + w:删除光标左边的参数(选项)或内容
    • Ctrl + l:清屏
  • 处理作业 首先,使用 Ctrl + z 快捷键可以让正在执行的命令挂起。如果要让该进程在后台执行,那么可以执行 bg 命令。而 fg 命令则可以让该进程重新回到前台来。使用 jobs 命令能够查看到哪些进程在后台执行。 你也可以在 fg 或 bg 命令中使用作业 id,如: 
    1
    
    fg %3
     又如: 
    1
    
    bg %7
  • 使用置换
    • 命令置换 先看例子: 
      1
      
      du -h -a -c $(find . -name *.conf 2&gt;&amp;-)
       注意 $() 中的部分,这将告诉 Bash 运行 find 命令,然后把返回的结果作为 du 的参数。
    • 进程置换 仍然先看例子: 
      1
      
      diff &lt;(ps axo comm) &lt;(ssh user@host ps axo comm)
       该命令将比较本地系统和远程系统中正在运行的进程。请注意 <() 中的部分。
    • xargs 看例: 
      1
      
      find . -name *.conf -print0 | xargs -0 grep -l -Z mem_limit | xargs -0 -i cp {} {}.bak
       该命令将备份当前目录中的所有 .conf 文件。
  • 使用管道 下面是一个简单的使用管道的例子: 
    1
    
    ps aux | grep init
     这里,“|”操作符将 ps aux 的输出重定向给 grep init。 下面还有两个稍微复杂点的例子: 
    1
    
    ps aux | tee filename | grep init
     及: 
    1
    
    ps aux | tee -a filename | grep init
  • 将标准输出保存为文件 你可以将命令的标准输出内容保存到一个文件中,举例如下: 
    1
    
    ps aux &gt; filename
     注意其中的“>”符号。 你也可以将这些输出内容追加到一个已存在的文件中: 
    1
    
    ps aux &gt;&gt; filename
     你还可以分割一个较长的行: 
    1
    
    command1 | command2 | ... | commandN &gt; tempfile1
     
    1
    
    cat tempfile1 | command1 | command2 | ... | commandN &gt; tempfile2
  • 标准流:重定向与组合 重定向流的例子: 
    1
    
    ps aux 2&gt;&amp;1 | grep init
     这里的数字代表:
    • 0:stdin
    • 1:stdout
    • 2:sterr
    上面的命令中,“grep init”不仅搜索“ps aux”的标准输出,而且搜索 sterr 输出。