`
bluepeer
  • 浏览: 72350 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

linux server命令总结

阅读更多

基础命令
文件查看
cat
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1 > textfile2    
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat  -b textfile1 textfile2 >> textfile3    
把  textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到  textfile3 里。
cat 也可以用来制作 image file。例如要制作软碟的 image file,将软碟放好后打
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软碟,请打
cat IMG_FILE > /dev/fd0
注:
1. OUTFILE 指输出的 image 档名。
2. IMG_FILE 指 image file。
3. 若从 image file 写回 device 时,device 容量需与相当。
4. 通常用在制作开机磁片。

head 命令
语法:head [ -n ] 文件
说明:该命令显示每个指定文件的前面n行。如果没有给出n值,缺省设置为10。如果没有指定文件,head就从标准输入读取。例如显示文件example.c的前3行。
head -3 example.c

tail 命令
与 head 命令恰恰相反的是 tail 命令。使用 tail 命令,你可以查看文件结尾的十行。这有助于查看日志文件的最后十行来阅读重要的系统消息。你还可以使用 tail 来观察日志文件被更新的过程。使用 -f 选项,tail 会自动实时地把打开文件中的新消息显示到屏幕上。例如,要活跃地观察 /var/log/messages,以根用户身份在 shell 提示下键入以下命令:
tail -f /var/log/messages
 
more 命令
语法: more [ 选项 ] 文件
说明:该命令一次显示一屏文本,显示满之后,停下来,并在终端底部打印出 “-- More --”,系统还将同时显示出已显示文本占全部文本的百分比,若要继续显示,按回车或空格键即可。若要退出,按 q 或 Q。
该命令的各选项含义如下:
-p 显示下一屏之前先清屏。
-c 作用同- p基本一样。
-d 在每屏的底部显示更友好的提示信息:
-- More -- (XX%)[Press space to contiune , ‘q’ to quit . ]
   而且若用户输入了-个错误命令则显示出错信息,而不是简单地鸣响终端。
-l 不处理 Ctrl+l (换页符)。如果没有给出这个选项,则more命令在显示了
   一个包含有 Ctrl+l 字符的行后将暂停显示,并等待接收命令。
-s 文件中连续的空白行压缩成一个空白行显示。
指令实例:
more example1.c       % 用分页的方式显示一个文件的内容。
more -c -10 example1.c          % 执行该命令后,先清屏,然后将以每十行每十行的方式显示文件example.c的内容。

less 命令
less 命令的功能几乎和 more 命令一样,也是用来按页显示文件,不同之处在于 less 命令在显示文件时允许用户既可以向前又可以向后翻阅文件。 less命令的使用与more命令类似,在此就不赘述了,用户如有不清楚的地方可直接查看联机帮助。
用 less 命令显示文件时,若需要在文件中往前移动,按 <b>,键;要移动到用文件的百分比表示的某位置,则指定一个 0 到 100 之间的数,并按 <p> 即可。
例: less test

目录管理
cd
说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚  login 时所在的目录)。
另外,"~" 也表示为 home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。
范例 : 跳到 /usr/bin/ :
cd /usr/bin
跳到自己的 home directory :
cd ~
跳到目前目录的上上两层 :
cd ../..
cd - 返回进入当前目录前所在目录

cp
使用方式:
cp [options] source dest
cp [options] source... directory
参数:
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案 aaa 复制(已存在),并命名为 bbb :
cp aaa bbb
将所有以.c开头的文件拷贝至 Finished 子目录中 :
cp *.c Finished

mv
使用方式:
mv [options] source dest
mv [options] source... directory
说明:将一个档案移至另一档案,或将数个档案移至另一目录。
参数:
-i 若目的地已有同名档案,则先询问是否覆盖旧档。
范例:
将档案 aaa 更名为 bbb :
mv aaa bbb
将所有以.C开头的文件移至 Finished 子目录中 :
mv -i *.c

rm
使用方式:rm [options] name...
说明:删除档案及目录。
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
范例:
删除所有.以C开头的文件;删除前逐一询问确认 :
rm -i *.c
将 Finished 子目录及子目录中所有档案删除 :
rm -r Finished
删除文件中有四个字母且有三个是Fin的所有文件
rm fin?

rmdir
使用方式: rmdir [-p] dirName
说明: 删除空的目录。
参数:
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
范例:
将工作目录下,名为 AAA 的子目录删除 :
rmdir AAA
在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除。
rmdir -p BBB/Test

mkdir 命令
功能:创建一个目录(类似DOS下的md命令)。
语法:mkdir [选项] dirname
说明:该命令创建由 dirname 命名的目录。要求创建目录的用户在当前目录中(dirname 的父目录中)具有写权限,并且 dirname 不能是当前目录中已有的目录或文件名称。
命令中各选项的含义如下:
-m 对新建目录设置存取权限。也可以用chmod命令设置。
-p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
指令实例:
mkdir -p -m 700 ./inin/mail/
该命令的执行结果是在当前目录中创建嵌套的目录层次inin 和inin下的mail目录,权限设置为只有文件主有读、写和执行权限。

touch 
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
参数:
-a 改变档案的读取时间记录。
-m 改变档案的修改时间记录。
-c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
-f 不使用,是为了与其他 unix 系统的相容性而保留。
-r 使用参考档的时间记录,与 --file 的效果一样。
-d 设定时间与日期,可以使用各种不同的格式。
-t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--version 列出版本讯息。
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
touch file
touch file1 file2
将  file 的时间记录改为 5 月 6 日 18 点  3 分,公元两千年。时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
将 file 的时间记录改变成与 referencefile 一样。
touch -r referencefile file
将  file 的时间记录改成 5 月 6 日 18 点  3 分,公元两千年。时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
touch  也可以制造一个空档(0 byte).例如DHCP Server所需的/etc/dhcpd.leases, dhcpd 必须要有这个档案才能运作正常.[root@/root]#touch /etc/dhcpd.leases [root@/root]#ls -l /etc/dhcpd.leases-rw-r--r-- 1 root root 0 Jul 3 05:50 /etc/dhcpd.leases
记得上一次重灌前把/etc下的设定档tar起来,重灌好之后把原有设定还原,却发现系统检查设定档的时间有问题,这个时候用。
find /etc -name * -exec touch {};
就可以把设定档的时间更新到与现在一致了。

ln
使用方式 : ln [options] source dist,其中 option 的格式为 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--help] [--version] [--]
说 明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种  : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档 案系统中,而软连结却可以跨越不同的档案系统。 ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。 不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
参数 :
-f :  链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
- i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将  dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v :  在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX :  将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
-- help : 显示辅助说明
--version : 显示版本
范例 :
将档案 yy 产生一个 symbolic link : zz
ln -s yy zz
将档案 yy 产生一个 hard link : zz
ln yy xx

目录权限管理
chmod
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
u 表示该档案的拥有者,
g 表示与该档案的拥有者属于同一个群体(group)者,
o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、
- 表示取消权限、
= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,
X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c : 若该档案权限确实已经更改,才显示其更改动作
-f : 若该档案权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
范例:
chmod a=rwx file 和 chmod 777 file 效果相同
chmod ug=rwx,o=x file 和 chmod 771 file 效果相同
若用chmod 4755 filename可使此程序具有root的权限

chown
使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...
说 明 : Linux/Unix 是多人多工操作系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自 己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。
参数 :
user : 新的档案拥有者的使用者
IDgroup : 新的档案拥有者的使用者群体(group)
-c : 若该档案拥有者确实已经更改,才显示其更改动作
-f : 若该档案拥有者无法被更改也不要显示错误讯息
-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
-v : 显示拥有者变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
范例 :
chown jessie.users file1.txt
将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
chown wang shiyan.c
% 把文件shiyan.c的所有者改为wang。
chown - R wang.users /his
% 把目录/his及其下的所有文件和子目录的属主人改成wang,属组改成users。

chgrp命令
功能说明:变更文件或目录的所属群组。
语   法:chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
补充说明:在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
参  数:
 -c或--changes  效果类似"-v"参数,但仅回报更改的部分。
 -f或--quiet或--silent  不显示错误信息。
 -h或--no-dereference  只对符号连接的文件作修改,而不更动其他任何相关文件。
 -R或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
 -v或--verbose  显示指令执行过程。
 
创建用户和组
useradd
格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
主要参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。 
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。

说明
useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。
应用实例
建立一个新用户账户,并设置ID:
#useradd caojh -u 544
需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值留给bin、mail这样的系统账号。

groupadd
作用 groupadd命令用于将新组加入系统。
格式
groupadd [-g gid] [-o]] [-r] [-f] groupname
主要参数
-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。
应用实例
建立一个新组,并设置组ID加入系统:
#groupadd -g 344 cjh
此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。

userdel
语法: userdel [-r] login
描述: userdel 命 令 修 改 系 统 帐 号 档 删 除 所 有 login 会 参 考 的 部 份 。 使 用 者 名 称 必 须是 存 在 的 。 
-r  使 用 者 目 录 下 的 档 案 一 并 移 除 。 在 其 他 位 置 上 的 档 案 也 将 一 一 找 出 并 删 除 。
档案
/etc/passwd - 使 用 者 帐 号 资 料 /etc/shadow - 使 用 者 帐 号 资 讯 加 密 /etc/group - 群 组 资 讯
警告
userdel 不 允 许 你 移 除 正 在线 上 的 使 用 者 帐 号 。 你 必 须 砍 掉 此 帐 号 现 在 在 系 统 上 执 行 的 程 序 才 能 进 行 帐 号 删 除 。 不 能 在 NIS client 端 移 除 NIS 属 性 的 东 西 。 这 动 做 须 在 NIS server 端 上 执 行 。 

文件查看,查找
ls
使用方式 : ls [-alrtAFR] [name...]
说明 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
参数 :
-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出)
-l 除档案名称外,亦将档案型态、权限、拥有者、档案大小等资讯详细列出
-r 将档案以相反次序显示(原定依英文字母次序)
-t 将档案依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的档案名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有档案,则以下之档案亦皆依序列出
范例:
列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 :
ls -ltr s*
将 /bin 目录以下所有目录及档案详细资料列出 :
ls -lR /bin
列出目前工作目录下所有档案及目录;目录于名称后加 "/", 可执行档于名称后加 "*" :
ls -AF

find
使用说明 :
将档案系统内符合 expression 的档案列出来。你可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。
find  根据下列规则判断 path 和 expression,在命令列上第一个 - ( )  , ! 之前的部份为 path,之后的是 expression。如果  path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。
expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。
-mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比档案 file 更晚被读取过的档案
-atime n : 在过去 n 天过读取过的档案
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比档案 file 更新的档案
-ctime n : 在过去 n 天过修改过的档案
-empty :  空的档案-gid n or -group name :  gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写
-name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写
-size  n : 档案大小 是 n 单位,b 代表 512 位元组的区块, c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type  c : 档案类型是 c 的档案。
d: 目录
c: 字型装置档案
b: 区块装置档案
p: 具名贮列
f: 一般档案
l: 符号连结
s: socket
-pid n : process id 是 n 的档案
你可以使用 ( ) 将运算式分隔,并使用下列运算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
范例:
将目前目录及其子目录下所有延伸档名是 c 的档案列出来。
# find . -name "*.c"
将目前目录其其下子目录中所有一般档案列出
# find . -ftype f
find . -name "*" -exec grep xxx {}  -print |morexxx为你想要找的字符串
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件

locate
使用方式: locate [-q] [-d ] [--database= ]
locate [-r ] [--regexp= ]
locate [-qv] [-o ] [--output= ]
locate [-e ] [-f ] <[-l ] [-c]
locate [-Vh] [--version] [--help]
说明:
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。
在一般的 distribution 之中,数据库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用
# locate your_file_name的型式就可以了。
参数:
-u  建立数据库,-u 会由根目录开始
-U  则可以指定开始的位置
-e 将 排除在寻找的范围之外。
-l 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。
-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在数据库中。
-q 安静模式,不会显示任何错误讯息。
-n 至多显示 个输出。
-r 使用正规运算式 做寻找的条件。
-o 指定数据库存的名称。
-d 指定数据库的路径
-h 显示辅助讯息
-v 显示更多的讯息
-V 显示程序的版本讯息 范例:
locate chdrv : 寻找所有叫 chdrv 的档案
locate -n 100 a.out : 寻找所有叫 a.out 的档案,但最多只显示 100 个
locate -u : 建立数据库
locate 命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的, locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或刚更名的,可能会找不到,在 内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)
locate指定用在搜寻符合条 件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”*”或”?”等)来指定范本样式,如指定范 本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。
locate指令和find找寻档案的功能类似,但 locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库 一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。
不过第一次在执行update後再使用 locate寻找档案常会失败,此时就要执行slocate ˉu该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行档,再由 locate到此数据库寻找所要找的资料。

grep
作用
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
格式 : grep [options]
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
应用实例
grep root /etc/passwd   查找passwd下root的相关信息
grep root *           查找当前文件中所有与root的字符
grep -c bash /etc/passwd 计算包括单词bash的行数

find / -name *.html | grep bookmark
查找find 命令结果中的字符串bookmark
who | grep root
who列出当前登陆linux系统的所有用户。从中查找root
ps aux | grep mozilla
查找与mozilla相关的进程
*多位任意驱配
?一位任意驱配

磁盘管理


 
DNS服务器配置
重启后台守护进程named /etc/rc.d/init.d/named restart
列表刷新 rndc reload
配置文件
/etc/named.conf
/etc/host.conf
/etc/resolv.boot
/etc/hosts
/etc/named.boot
/var/named/named.ca
/var/named/named.hosts  手动建立
/var/named/named.local
/var/named/named.rev    手动建立
一共有9个文件,其中关键的是两个:“/etc/named.conf”和“/var/named/named.hosts”。前者是域名解析配置文件,后者为域配置文件。
"/etc/named.conf"文件的语法和作用。
――――――――――――――――――――――――――――――――――――
/*
* A simple BIND 8 configuration
*/
options {
        directory "/var/named";
#        forwarders       {
#               192.168.192.100;
#                       };
#        forward only;
};

#logging {
#        category lame-servers { null; };
#        category cname { null; };
#};

zone "etran.com" in {
        type master;
        file "named.hosts";
};
zone "192.168.192.in-addr.arpa" in {
        type master;
        file "named.rev";
};

zone "." in {
        type hint;
        file "named.ca";
};

zone "0.0.127.in-addr.arpa" in {
        type master;
        file "named.local";
};
――――――――――――――――――――――――――――――――――――
options 一段中的directory是在指示最后4个文件的位置,而forwarders则是指示是哪一台机器将不能解析的域名转发到上级DNS服务器上。关键的 是几个zone段,格式如上。最重要的是带有“etran.com”字样的段。需要注意的是:该段中将etran.com换成您需要的域名,下面的 file段表示对应于该域的文件,当然该文件在directory定义的/etc/named目录中。
另外,我们还要体会一下反向域的概念。 DNS其实就是域名对应于IP地址,而反向域则正好相反,即将IP地址对应于域名,也就是说对给定的IP地址解析出其域名,这样可以解决IP欺骗的问题。 反向域的特征就是最后两个段是以in-addr.arpa结尾,另外,前面段中的IP地址是要反向来读的,比如说0.0.127.in- addr.arpa对应的其实是127.0.0.X之类的IP地址。

Serial     #序列号
Refresh    #刷新周期,以秒为单位
Retry     #循环周期
Expire    #中止时间
Minimum   #time-to-live的时间

“/var/named/named.hosts”这一文件主要负责将DNS域名映射为IP地址。配置实例如下:
―――――――――――――――――――――――――――――――――――――――
@       IN      SOA     ns.etran.com.  root.etran.com. (
                                800006  ;   serial number
                                86400   ;   Refresh interval, every 24 hours
                                300     ;   Retry interval, every 5 minutes
                                2592000 ;   30 days TTL
                                86400 ) ;    24 hours expiration
         IN      NS      ns.etran.com.
         IN      MX      1     mail.etran.com.
ns       IN      A        192.168.192.100
www     IN      CNAME   ns.etran.com.
mail      IN     CNAME   ns.etran.com.
ftp       IN     CNAME   ns.etran.com.
smtp     IN      CNAME   ns.etran.com.
pop3     IN      CNAME   ns.etran.com.
localhost  IN       A        127.0.0.1
―――――――――――――――――――――――――――――――――――――
    其中IN表示使用的是TCP/IP协议;
    上面的"NS"记录说明了本域("etran.com")的域名服务器地址为“192.168.192.100”;
    "MX"记录说明本域的邮件服务器地址,后面的1就是表示顺序,顺序小的优先使用。
    接下来的"A"记录简单地将DNS名映射为IP地址。
    最后的"CNAME"记录的是"别名",这是在说www.etran.com 、mail.etran.com、ftp.etran.com 等都是指向"192.168.192.100"这一台主机。
    最后一句是本地机器名的IP为127.0.0.1。

注:和外部网络连接时的DNS配置,及其多个DNS服务器之间的合理配置简单说明如下,以方便今后使用;
  * 主DNS服务器:
   通常用来给一个独立的网络提供名称和IP的解析服务,通常用在孤立的局域网中。
  * 从DNS服务器:
    通常用于一个局域网和另外的外部网络连通的环境。此DNS服务器通过参数设定后,可以自动定时和主DNS自动交换有关DNS的数据库文件,包括简单数据刷 新、数据暂存、数据更新,同时在主DNS失效时,它有暂时代替主DNS进行工作的功能,在进行大的系统建设时,为了系统的安全应该考虑使用第二个DNS服 务器。
  * 高速缓存DNS:
   仅仅起高速缓存的作用,在本地有请求时,它首先会查找自己缓存中的数据,查不到时才从主DNS取得数据,它可以加快DNS服务的效率。
  主配置文件在/etc 目录下面:named.boot, named.conf 两个。
  数据文件在/ var/named 目录下面所有文件。
三、配置缓冲或转发方式的named:(从DNS和cache DNS配置)
    在Internet中主要使用名字进行连接,因此网络中的DNS查询会十分频繁。很多情况下,会有大量且重复的DNS查询。尤其在使用拨号连接的条件下, 由于名字服务器位于ISP端,即使是曾经查询过的名字,其信息仍然保存在线路的另一端的名字服务器的缓冲区内,重复的DNS查询将占据宝贵的线路带宽。并 且DNS查询还往往使得网络连接软件不能正确获得超时信息,不能适时断开连接以节省电话连接时间。 因此,最好的办法是将查询结果保存在本地计算机上,以避免重复查询造成的无谓的网络流量。虽然很多TCP/IP 客户机能够在本机内保存一个名字解析缓冲区,但这个缓冲区相对来讲太小了,起不到很有效的作用,然而如果要将这个缓冲区设置的较大,又不能及时刷新名字解 析数据。要想很好的缓冲DNS数据,最好的缓冲区还是DNS服务器本身,因为DNS 的实现方式就是一种经常刷新的缓冲方式,并且named可以根据不同zone的不同设置,来实现数据刷新。 因此,最简单的办法就是设置一个具备缓冲能力的名字服务器,它将能够用做名字解析的缓冲,这就要需要设置名字服务器的过程。

配置DNS转发
某 些网络连接不鼓励向本地以外发送很大的数据流量,这要么是因为网络连接是按流量计费的,或网络连接本身是带宽不足。在这样的情况下,如果想将发往外部的 DNS 流量限制到尽可能的小,就需要使用 BIND 的转发机制。或者你的网络中只有一台机器能连接到 Internet ,而你在这台机器上运行了 BIND ,那么你可以将这台 BIND 作为内部网络中的其他 BIND 的转发器,使得其他 DNS 也能查找 Internet 域名。
转 发机制的这样的:当你设置了转发器后,所有非本域的和在缓存中无法找到的域名查询都将转发到设置的 DNS 转发器上,由这台 DNS 来完成解析工作并做缓存,因此这台转发器的缓存中记录了丰富的域名信息。因而对非本域的查询,很可能转发器就可以在缓存中找到答案,避免了再次向外部发送 查询,减少了流量。
转发器的配置格式是:
options { 
    forwarders { 192.168.24.35; 192.168.24.36; };
};
这里要注意,转发器本身不用做任何设置,而是对需要转发器的其他 DNS server 做以上配置。还有,如果该 DNS Server 无法联系到转发器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓存来响应查询了( 在连接不到转发器的情况下 )。
options { 
    forwarders { 192.168.24.35; 192.168.24.36; };
    forward only;
};
在 BIND 8.2 以后引入了一个新的特性:转发区( forward zone ),它允许你把 DNS 配置成只有查找特定域名的时候才使用转发器。( BIND 9 从9.1.0 才开始有转发区功能 )例如,你可以使你的服务器将所有对 xmgd.com 结尾的域名查询都转发给 xmgd.com 的两台名字服务器:
zone "xmgd.com" {
    type forward;
    forwarders { 210.52.83.228; 210.52.83.229; };
};
这样的功能有什么用呢?假设 xmgd.com 和你的网络有一个私有的连接,而 xmgd.com 又没有连接上 Internet ,那么你从 Internet 是无法查到 xmgd.com 后缀的域名的,这时你就要使用转发区的功能了。
还有一种转发区设置和刚才的设置刚好相反,它允许你设置什么样的查询将不被转发,当然这只适用于在 options 语句中指定了转发器的 DNS 。配置如下:
options { 
    directory "/var/named";    
    forwarders { 192.168.24.35; 192.168.24.36; };
};

zone "xmgd.com" {
    type master;
    file "zone.xmgd.com";
    forwarders {};
};
这样写你可能会问为什么你要在自己的权威区里禁止转发?难道不是自己回答查询而不使用转发器吗?
有 这样一种情况,在 xmgd.com 这个区中,你授权了几个子域,例如:zx.xmgd.com、lab.xmgd.com 等,那么在 xmgd.com 的权威服务器上设置转发后,因为对 zx.xmgd.com、lab.xmgd.com 这几个子域不是权威,那么如果有对 www.zx.xmgd.com 这样的子域的域名查询,服务器也将转发。这完全是没有必要的,因为服务器上就有 zx.xmgd.com 子域的 NS 记录,何须再转发。
 
实例2
Linux DNS 配置方法(BIND 8)
1. 如果你还没有安装BIND8:
在你的CDROM的RPMS目录中找到bind-*.i386.rpm,并安装它
rpm -i bind-*.i386.rpm
2. 需要修改或增加的文件有
/etc/resolv.conf
/etc/namec.conf
/var/named/named.111.222.1
/var/named/named.abc.cxm
服务器端(机器名为 pc110)配置:
3. 对文件/etc/namec.conf的修改:
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};

zone "1.222.111.in-addr.arpa"{
type master;
file "named.111.222.1";
};

zone "abc.cxm" {
type master;
file "named.abc.cxm";
};

4. 增加逆向DNS解析文件
(可以解决telnet 111.222.1.110很慢的问题)
/var/named/named.111.222.1
@ IN SOA pc110.abc.cxm. root.abc.cxm. (
2000102302 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS pc110
110 IN PTR pc110.abc.cxm.
36 IN PTR pc36.abc.cxm.
51 IN PTR pc51.abc.cxm.
5. 增加DNS解析文件: /var/named/named.abc.cxm
@ IN SOA pc110.abc.cxm. root.abc.cxm. (
2000102302; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS pc110.abc.cxm.
IN MX 30 pc110
pc110 IN A 111.222.1.110
www IN CNAME pc110
pc36 IN A 111.222.1.36
pc51 IN A 111.222.1.51
客户端配置:
6. linux 客户端配置:修改/etc/resolv.conf:
domain abc.cxm
search abc.cxm
nameserver 111.222.1.110
7. windows 客户端配置:
在网络中的TCP/IP属性里加入 域名abc.cxm 及相应的DNS Server IP即可
8. 服务器端重起named服务
#ndc restart
9. 测试
nslookup www.abc.cxm
辅助域名配置
假设想把机器hjc(IP为:111.222.1.88)设置为域 abc.cxm 的 slave DNS (假定pc110 已正确配置为主DNS(IP为111.222.1.110))。
1. 请先配置主DNS
2. 对主DNS的修改
在/var/named/named.111.222.1 中增加一行
@ IN NS 111.222.1.88.
/var/named/named.abc.cxm 中增加一行
@ IN NS hjc.abc.cxm.
3. 配置机器hjc.
/etc/named.conf:
zone "1.222.111.in-addr.arpa" {
type slave;
file "slave.111.222.1";
master {111.222.1.110}
};
zone "abc.cxm" {
type slave;
file "slave.abc.cxm";
master {111.222.1.110}
};
4. 启动slave DNS
ndc restart.

分享到:
评论

相关推荐

    Linux pstack命令总结

    pstack命令用来显示进程的栈跟踪。... [root@DB-Server ~]# man pstack PSTACK(1) Linux Programmer’s Manual PSTACK(1) NAME pstack – print a stack trace of a running process SYNOPSIS pstac

    安装 SUSE Linux Enterprise Server --服务器版

    本简明手册提供了对安装 SUSE Linux Enterprise Server 的快速介绍。它是对应 用程序各个字段以及 SUSE Linux Enterprise Server 支持的每个平台的安装类型 的概述,以及对安装过程的简短的说明。 SUSE Linux ...

    Linux 查看远程服务器文件状态的方法

    如下所示: test 命令判断文件是否存在: ssh usrname@remotehost test -e remote_file_path ... 您可能感兴趣的文章:查看远程 Linux 系统中某个端口是否开启的三种方法linux查看端口是否开放的方法总结lin

    Linux系统总复习.txt

    基础知识总结 1、Linux系统简介 了解 UNIX/Linux主要版本、开源/自由软件、X Window、Linux应用领域 2、Linux系统安装 掌握 1)VMware简单使用 2)Linux系统安装 图形安装和字符安装,图形安装-语言中文,字符...

    RED HAT LINUX 6大全

    4.8 使用Red Hat的wmconfig命令 54 4.9 个人化的X资源文件 54 4.10 使用xdm 55 4.11 XFree86疑难解答 57 4.12 小结 57 第5章 窗口管理器 58 5.1 GNOME X环境 59 5.1.1 什么是GNOME 59 5.1.2 GNOME 安装组件 59 5.1.3...

    Linux程序设计 第4版.haozip01

    13.7.6 对cd数据库应用程序的总结 487 13.8 小结 487 第14章 信号量、共享内存和消息队列 488 14.1 信号量 488 14.1.1 信号量的定义 489 14.1.2 一个理论性的例子 489 14.1.3 linux的信号量机制 490 14.1.4 ...

    Linux程序设计 第4版.haozip02

    13.7.6 对cd数据库应用程序的总结 487 13.8 小结 487 第14章 信号量、共享内存和消息队列 488 14.1 信号量 488 14.1.1 信号量的定义 489 14.1.2 一个理论性的例子 489 14.1.3 linux的信号量机制 490 14.1.4 ...

    总结Linux系统环境初始化、系统安全加固措施和系统内核优化

    13. Samba服务安装与配置 (nfs-server) 14. 建立交换分区 15. gitlab-runner 安装与配置 16.网卡管理 17. gradle 安装与配置 18. 时间同步服务 19. rabbitmq 安装与配置 20. MAVEN 安装与配置 21. 命令行录屏软件 22...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    11.4.2 在Director Server上安装IPVS管理软件 11.5 搭建高可用 LVS集群 11.5.1 通过heartbeat搭建LVS高可用性集群 11.5.2 通过Keepalived搭建LVS高可用性集群系统 11.5.3 通过piranha搭建LVS高可用性集群 ...

    Linux网络编程

    6.13 本章总结................... 205 第七章网络安全性....................206 7.1 网络安全简介...............206 7.1.1 网络安全的重要性..............206 7.1.2 信息系统安全的脆弱性.......207 7.2 Linux ...

    linux 网络编程源代码

    1.5 Linux 的发展.................................................................................................. 11 1.5.1 Linux 的发展历史 ..............................................................

    2018新版软考-中级-网络工程师 考点笔记归纳汇总

    笔记应该来说算最新的版本,服务器的一些设置和命令基于第五版教材的Server 2008 R2和最新版本的Linux简要命令;组网方面集合了最新第五版教材改版的华为命令等。 (由于本人水平有限,笔记当中如有出现错误,请...

    PHP 扩展Memcached命令用法实例总结

    所以建议还是在linux做。 &lt;?php $mem = new Memcached(); //添加一台服务器资源 $mem-&gt;addServer('127.0.0.1', '11211'); //添加多台,分布式存储,第三个参数为权重值 /* $servers =

    基于Mailserver性能监视系统

    为与Linux其他服务相统一,系统中还提供了restart(重新启动监视器)命令。系统要求对五个监视对象进行并发监视,多进程概念的引入恰好完成了该功能。另外当系统运行后,为了不挂起终端,我们必须将程序放在后台执行...

    Linux网络编程.pdf socket tcp udp

    1.5 Linux 的发展.................................................................................................. 11 1.5.1 Linux 的发展历史 ............................................................

    计算机应用基础知识点总结.doc

    12、系统软件分类 1、操作系统 windows 、linux、unix 等 2、编程软件 汇编语言、高级语言、机器语言、C语言、C++、java、C#等 3、数据库软件 SQL Server、Oracle、Mysql和Visual FoxPro等。 13、应用软件分类〔...

    rkhunter-1.4.2.tar.gz

    #下面是最后一部分,这个部分其实是上面输出的一个总结,通过这个总结,可以大概了解服务器目录的安全状态。 System checks summary ===================== File properties checks... Required commands check ...

    《安天365安全研究》第二期.pdf

    目录 第 1 部分拟研究技术专题 1.1《黑客攻防实战——web 漏洞挖掘...2.14Linux(CentOS)安全加固之非业务端口服务关闭 2.14.1 查找端口对应的服务进程 2.14.2 查找进程对应的服务 2.14.3 停用进程服务 2.14.4 学习小结

    《MySQL数据库入门》教学设计.docx

    最后向同学介绍几种常见的数据库产品,如:Oracle,SQL Server,DB2,MongoDB、SQL Server、MySQL以及他们各自的特点。 (4)如何安装和配置MySQL? 教师首先向学生演示如何在MySQL官网上,下载适用于Windows平台的...

Global site tag (gtag.js) - Google Analytics