hadoop的安装-----伪分布式

1.hadoop的伪分布安装
1.1 设置ip地址
执行命令 service network restart
验证: ifconfig
1.2 关闭防火墙
执行命令 service iptables stop
验证: service iptables status
1.3 关闭防火墙的自动运行
执行命令 chkconfig iptables off
验证: chkconfig --list | grep iptables
1.4 设置主机名
执行命令 (1)hostname chaoren
(2)vi /etc/sysconfig/network
1.5 ip与hostname绑定
执行命令 vi /etc/hosts
验证: ping chaoren
1.6 设置ssh免密码登陆
执行命令 (1)ssh-keygen -t rsa
(2)cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
验证: ssh chaoren
1.7 安装jdk
执行命令 (1)cd /usr/local
(2)chmod u+x jdk-6u24-linux-i586.bin
(3)./jdk-6u24-linux-i586.bin
(4)mv jdk-1.6.0_24  jdk
(5)vi /etc/profile 增加内容如下:
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
(6)source /etc/profile
验证: java -version
1.8 安装hadoop
执行命令 (1)tar -zxvf hadoop-1.1.2.tar.gz
(2)mv hadoop-1.1.2 hadoop
(3)vi /etc/profile 增加内容如下:
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
(4)source /etc/profile
(5)修改conf目录下的配置文件hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml
(6)hadoop namenode -format
(7)start-all.sh
验证: (1)执行命令jps 如果看到5个新的java进程,分别是NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTracker
(2)在浏览器查看,http://chaoren:50070  http://chaoren:50030  
1.9 启动时没有NameNode的可能原因:
(1)没有格式化
(2)环境变量设置错误

(3)ip与hostname绑定失败

----------------------------------------------------自己总结---------------------------------------------------

1、ssh免密码登陆:

ssh两台机器相互免密码登陆
A机器  B机器
A机器用户hadoop远程登陆 IP为 192.168.208.128
B机器用户hadoop远程登陆 IP为 192.168.208.129


A机器执行ssh-keygen -t rsa ,一直回车,然后执行cp id_rsa.pub private
B机器执行ssh-keygen -t rsa ,一直回车,然后执行cp id_rsa.pub private2
通过远程传输命令copy文件:
A机器执行 scp ~/.ssh/private  hadoop@192.168.208.129:~/.ssh
B机器执行 scp ~/.ssh/private2  hadoop@192.168.208.128:~/.ssh
在A机器上执行cp private2 authorized_keys
在B机器上执行cp private authorized_keys
在A机器上执行rm -rf ~/.ssh/private  rm -rf ~/.ssh/private2
在B机器上执行rm -rf ~/.ssh/private  rm -rf ~/.ssh/private2
注意:.ssh和authorized_keys都只能本用户有w权限,g和o都不能有w权限,不然ssh免密码登陆就失败了,因为g和o有w权限的话,不安全,数字签名也不支持

02、

统一格式:
 ssh user@host;(如果本地用户名与远程用户名一致,登录时可以省略用户名,ssh host)
1、密码登陆时:用户登陆请求----》远程机器发送公钥给用户---》用户输入密码,用远程机器的公钥加密发回
----》远程机器的公钥用私钥解密后,验证密码,正确同意登陆
2、免密码登陆时:用户登陆请求----》远程机器发送一连串字符串给用户---》用户用自己的私钥加密字符串发送回来---》
远程机器用预先存好的用户公钥进行解密,解密成功即统一用户登陆

2、cat命令:(concatenate连锁  [kən'kætɪneɪt][kɑn'kætə,net]

可以用cat复制文件  比如cat  file1  >> file2  ,其中file1是存在的文件,file2是不存在的文件,要新生成的文件

3、scp(Security copy)命令:
远程copy文件:scp id_rsa.pub hadoop@192.168.208.130:~/.ssh/authorized_keys

(这样是直接拷贝成authorized_keys文件了)。

scp id_rsa.pub hadoop@192.168.208.130:~/.ssh

(这样是把id_rsa.pub文件拷贝到文件夹.ssh下)

统一格式:

scp -r /file  user@host:/file 

(如果本地用户名与远程用户名一致,登录时可以省略用户名,scp -r /file  host:/file )


4、tar命令:(Tape ARchive磁带档案卷

tar -zxvf hadoop-1.1.2.tar.gz

参数含义:-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?(-z, --gzip, --gunzip, --ungzip   filter the archive through gzip)

                      -x :解开一个压缩文件的参数指令!(-x, --extract, --get       extract files from an archive)

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

                             (-v, --verbose              verbosely list files processed            

                                       --warning=KEYWORD      warning control)

                     -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
   『 tar -zcvPf tfile sfile』才对喔!

  (-f, --file=ARCHIVE         use archive file or device ARCHIVE
                                   --force-local          archive file is local even if it has a colon)

5、管道命令:

查看一个命令显示,或过滤某些显示信息,可以用管道技术:

tar --help | more   

ps -ef | grep jps

ls | grep profile,这里pro*是查不出东西的,直接pro,就可以匹配pro开头的信息文件

6、环境变量登陆时自动生效:

第一种,直接在/etc/profile增加内容:

export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

第二种,在/etc/profile.d下增加,以.sh结尾的文件,在该文件下加入:

export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

比如:直接在/etc/profile.d,下执行touch evn.sh 然后把代码写进去就可以了哦

总结:profile 为所有用户设置系统范围的环境变量和启动的顺序。当用户登录时读取该文件

-----------------------------------------------------网上资料--------------------------------------------------

ssh 免密码登录:地址:http://chenlb.iteye.com/blog/211809

ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。

有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。

1.在A机下生成公钥/私钥对。

[chenlb@A ~]$ ssh-keygen -t rsa -P  ''


-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/chenlb下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。

2.把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。

[chenlb@A ~]$ scp .ssh/id_rsa.pub chenlb@192.168.1.181:/home/chenlb/id_rsa.pub 
chenlb@192.168.1.181 ' s password:
id_rsa.pub                                    100%  223     0.2KB/s   00:00


由于还没有免密码登录的,所以要输入密码。

3.B机把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。

[chenlb@B ~]$ cat id_rsa.pub >> .ssh/authorized_keys
[chenlb@B ~]$ chmod 600 .ssh/authorized_keys


authorized_keys的权限要是600

4.A机登录B机。

[chenlb@A ~]$ ssh 192.168.1.181
The authenticity of host  ' 192.168.1.181 (192.168.1.181) ' can ' t be established.
RSA key fingerprint  is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
Are you sure you want to  continue connecting (yes/no)? yes
Warning: Permanently added  ' 192.168.1.181 ' (RSA) to the list of known hosts.
Last login: Thu Jul  3 09:53:18 2008  from chenlb
[chenlb@B ~]$


第一次登录是时要你输入yes。

现在A机可以无密码登录B机了。

小结:登录的机子可有私钥,被登录的机子要有登录机子的公钥。这个公钥/私钥对一般在私钥宿主机产生。上面是用rsa算法的公钥/私钥对,当然也可以用dsa(对应的文件是id_dsa,id_dsa.pub)

想让A,B机无密码互登录,那B机以上面同样的方式配置即可。
参考:SSH-KeyGen 的用法 http://blog.163.com/chen98_2006@126/blog/static/158584272007101862513886/






ssh-keygen的使用方法

地址:http://blog.csdn.net/kongqz/article/details/6338690

分类: linux   49711人阅读  评论(3)  收藏  举报

一、概述

1、就是为了让两个linux机器之间使用ssh不需要用户名和密码。采用了数字签名RSA或者DSA来完成这个操作

2、模型分析

假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

要达到的目的:
A机器ssh登录B机器无需输入密码;
加密方式选 rsa|dsa均可以,默认dsa

 

二、具体操作流程

 

单向登陆的操作过程(能满足上边的目的):
1、登录A机器 
2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60 )

 

双向登陆的操作过程:

1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下:
2、两个节点都执行操作:#ssh-keygen -t rsa 
  然后全部回车,采用默认值.

3、这样生成了一对密钥,存放在用户目录的~/.ssh下。
将公钥考到对方机器的用户目录下 ,并将其复制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys )。



4、设置文件和目录权限:

设置authorized_keys权限
$ chmod 600 authorized_keys 
设置.ssh目录权限
$ chmod 700 -R .ssh

 

5、要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

我从20.60去访问20.59的时候会提示如下错误:

[java]  view plain copy
  1. The authenticity of host '192.168.20.59 (192.168.20.59)' can't be established.  
  2. RSA key fingerprint is 6a:37:c0:e1:09:a4:29:8d:68:d0:ca:21:20:94:be:18.  
  3. Are you sure you want to continue connecting (yes/no)? yes  
  4. Warning: Permanently added '192.168.20.59' (RSA) to the list of known hosts.  
  5. root@192.168.20.59's password:   
  6. Permission denied, please try again.  
  7. root@192.168.20.59's password:   
  8. Permission denied, please try again.  
  9. root@192.168.20.59's password:   
  10. Permission denied (publickey,gssapi-with-mic,password).  

 

三、总结注意事项

1、文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。我开始图省事就这么干了

2、生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys

3、linux之间的访问直接 ssh 机器ip

4、某个机器生成自己的RSA或者DSA的数字签名,将公钥给目标机器,然后目标机器接收后设定相关权限(公钥和authorized_keys权限),这个目标机就能被生成数字签名的机器无密码访问了






地址:http://news.cnblogs.com/n/126110/
投递人 itwriter  发布于 2011-12-21 18:48  评论(1)  有1294人阅读    原文链接   [收藏]    «  »

  SSH 是每一台 Linux 电脑的标准配置。

  随着 Linux 设备从电脑逐渐扩展到手机、外设和家用电器,SSH 的使用范围也越来越广。不仅程序员离不开它,很多普通用户也每天使用。

  SSH 具备多种功能,可以用于很多场合。有些事情,没有它就是办不成。本文是我的学习笔记,总结和解释了 SSH 的常见用法,希望对大家有用。

  虽然本文内容只涉及初级应用,较为简单,但是需要读者具备最基本的"Shell 知识"和了解"公钥加密"的概念。如果你对它们不熟悉,我推荐先阅读《UNIX / Linux 初学者教程》《数字签名是什么?》

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

  SSH 原理与运用

  作者:阮一峰

  一、什么是 SSH?

  简单说,SSH 是一种网络协议,用于计算机之间的加密登录。

  如果一个用户从本地计算机,使用 SSH 协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

  最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者 Tatu Ylonen 设计了 SSH 协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为 Linux 系统的标准配置。

  需要指出的是,SSH 只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是 OpenSSH,它是自由软件,应用非常广泛。

  此外,本文只讨论 SSH 在 Linux Shell 中的用法。如果要在 Windows 系统中使用 SSH,会用到另一种软件 PuTTY,这需要另文介绍。

  二、最基本的用法

  SSH 主要用于远程登录。假定你要以用户名 user,登录远程主机 host,只要一条简单命令就可以了。

$ ssh user@host

  如果本地用户名与远程用户名一致,登录时可以省略用户名。

$ ssh host

  SSH 的默认端口是 22,也就是说,你的登录请求会送进远程主机的 22 端口。使用p参数,可以修改这个端口。

$ ssh -p 2222 user@host

  上面这条命令表示,ssh 直接连接远程主机的 2222 端口。

  三、中间人攻击

  SSH 之所以能够保证安全,原因在于它采用了公钥加密。

  整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

  这个过程本身是安全的,但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像 https 协议,SSH 协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。

  可以设想,如果攻击者插在用户与远程主机之间(比如在公共的 wifi 区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么 SSH 的安全机制就荡然无存了。

  这种风险就是著名的"中间人攻击"(Man-in-the-middle attack)。

  SSH 协议是如何应对的呢?

  四、口令登录

  如果你是第一次登录对方主机,系统会出现下面的提示:

$ ssh user@host

The authenticity of host 'host (12.18.429.21)' can't be established.

RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.

Are you sure you want to continue connecting (yes/no)?

  这段话的意思是,无法确认 host 主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?

  所谓"公钥指纹",是指公钥长度较长(这里采用 RSA 算法,长达 1024 位),很难比对,所以对其进行 MD5 计算,将它变成一个 128 位的指纹。上例中是 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再进行比较,就容易多了。

  很自然的一个问题就是,用户怎么知道远程主机的公钥指纹应该是多少?回答是没有好办法,远程主机必须在自己的网站上贴出公钥指纹,以便用户自行核对。

  假定经过风险衡量以后,用户决定接受这个远程主机的公钥。

Are you sure you want to continue connecting (yes/no)? yes

  系统会出现一句提示,表示 host 主机已经得到认可。

Warning: Permanently added 'host,12.18.429.21' (RSA) to the list of known hosts.

  然后,会要求输入密码。

Password: (enter password)

  如果密码正确,就可以登录了。

  当远程主机的公钥被接受以后,它就会被保存在文件$HOME/.ssh/known_hosts 之中。下次再连接这台主机,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。

  每个 SSH 用户都有自己的 known_hosts 文件,此外系统也有一个这样的文件,通常是/etc/ssh/ssh_known_hosts,保存一些对所有用户都可信赖的远程主机的公钥。

  五、公钥登录

  使用密码登录,每次都必须输入密码,非常麻烦。好在 SSH 还提供了公钥登录,可以省去输入密码的步骤。

  所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录 shell,不再要求密码。

  这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用 ssh-keygen 生成一个:

$ ssh-keygen

  运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。

  运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub 和 id_rsa。前者是你的公钥,后者是你的私钥。

  这时再输入下面的命令,将公钥传送到远程主机 host 上面:

$ ssh-copy-id user@host

  好了,从此你再登录,就不需要输入密码了。

  六、authorized_keys 文件

  远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys 文件中。公钥就是一段字符串,只要把它追加在 authorized_keys 文件的末尾就行了。

  这里不使用上面的 ssh-copy-id 命令,改用下面的命令,解释公钥的保存过程:

$ ssh user@host 'mkdir .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

  这条命令由多个语句组成,依次分解开来看:(1)"$ ssh user@host",表示登录远程主机;(2)单引号中的 mkdir .ssh && cat >> .ssh/authorized_keys,表示登录后在远程 shell 上执行的命令:(3)"$ mkdir .ssh"的作用是,如果用户主目录中的 .ssh 目录不存在,就创建一个;(4)'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub 的作用是,将本地的公钥文件~/.ssh/id_rsa.pub,重定向追加到远程文件 authorized_keys 的末尾。

  写入 authorized_keys 文件后,公钥登录的设置就完成了。

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

  关于 shell 远程登录的部分就写到这里,下一次接着介绍《远程操作和端口转发》。






linux命令行中通过ssh复制文件(scp)到远程服务器
地址:http://www.2cto.com/os/201201/116246.html
2012-01-07 16:21:45      我来说两句      
收藏     我要投稿
经常需要从一台服务器复制一些文件到另一台服务器,
 
则需要用到远程复制 命令:scp
 
如:
 
从已登录的服务器1 (192.168.1.1)复制目录/usr/a 到服务器2 (192.168.1.2)的/usr目录 下,
 
命令如下:
 
scp -r /usr/a root@192.168.1.2:/usr/
 
回车之后等待片刻,提示输入服务器2的密码 ,
 
输入正确密码之后,
 

开始复制目录a下的所有文件到服务器2中。
 
 
 
如果只是复制 一个文件 ,
 
则去掉-r参数 ,如:
 
scp /usr/a/index. html root@192.168.1.2:/usr/a/
 
 
 
你会发现使用命令操作,是一种非常方便、快捷的方式。
 






 

linux下cat命令详解

地址:http://www.cnblogs.com/perfy/archive/2012/07/23/2605550.html

简略版:

cat主要有三大功能:
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename  
   只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
 
test.txt文件扔进垃圾箱,赋空值test.txt
cat /dev/null > /etc/test.txt  
 
 
 

详细点的:

转:http://blog.sina.com.cn/s/blog_52f6ead0010127xm.html

cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。

比如:

de>[root@localhost ~]# cat /etc/fstabde>

为了便于新手弟兄灵活掌握这个工具,我们多说一点常用的参数;


1.0 cat 语法结构;

de>cat [选项] [文件]...de>
选项
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与 -vT 等价
-T, --show-tabs 将跳 字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开


1.1 cat 查看文件内容实例;

de>[root@localhost ~]# cat /etc/profile     注:查看/etc/目录下的profile文件内容;
[root@localhost ~]# cat -b /etc/fstab    注:查看/etc/目录下的profile内容,并且对非空白行进行编号,行号从1开始;
[root@localhost ~]# cat -n /etc/profile     注:对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示;
[root@localhost ~]# cat   -E /etc/profile      注:查看/etc/下的profile内容,并且在每行的结尾处附加$符号;de>

cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号;

de>[root@localhost ~]# cat -n /etc/profile
[root@localhost ~]# nl   /etc/profilede>

cat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;

de>[root@localhost ~]# cat /etc/fstab /etc/profilede>

cat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;

de>[root@localhost ~]# cat /etc/fstab /etc/profile | morede>


1.2 cat 的创建、连接文件功能实例;


cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;

de>[root@localhost ~]# cat >   linuxsir.org.txt   << EOF   注:创建linuxsir.org.txt文件;
> 我来测试 cat 创建文件,并且为文件输入内容;        注:这是为linuxsir.org.txt文件输入内容;
> 北南南北 测试;                    注:这是为linuxsir.org.txt文件输入内容;
> EOF    注:退出编辑状态;

[root@localhost ~]# cat linuxsir.org.txt   注:我们查看一下linuxsir.org.txt文件的内容;

我来测试 cat 创建文件,并且为文件输入内容;
北南南北 测试;de>

cat 还有向已存在的文件追加内容的功能;

de>[root@localhost ~]# cat   linuxsir.txt 注:查看已存在的文件linuxsir.txt 内容;
I am BeiNanNanBei From LinuxSir.Org .     注:内容行
我正在为cat命令写文档


[root@localhost ~]# cat >> linuxsir.txt << EOF    注:我们向linuxsir.txt文件追加内容;
> 我来测试cat向文档追加内容的功能;        注:这是追回的内容
> OK?
> OK~
> 北南 呈上
> EOF    注:以EOF退出;


[root@localhost ~]# cat linuxsir.txt   注:查看文件内容,看是否追回成功。
I am BeiNanNanBei From LinuxSir.Org .
我正在为cat命令写文档

我来测试cat向文档追加内容的功能;  
OK?
OK~
北南 呈上de>




cat 连接多个文件的内容并且输出到一个新文件中;

假设我们有sir01.txt、sir02.tx和sir03.txt ,并且内容如下;

de>[root@localhost ~]# cat sir01.txt  
123456
i am testing

[root@localhost ~]# cat sir02.txt
56789
BeiNan Tested

[root@localhost ~]# cat sir03.txt
09876
linuxsir.org testingde>

我想通过cat 把sir01.txt、sir02.txt及sir03.txt 三个文件连接在一起(也就是说把这三个文件的内容都接在一起)并输出到一个新的文件sir04.txt 中。

注意:其原理是把三个文件的内容连接起来,然后创建sir04.txt文件,并且把几个文件的内容同时写入sir04.txt中。特别值得一提的是,如果您输入到一个已经存在的sir04.txt 文件,会把sir04.txt内容清空。

de>[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt

[root@localhost ~]# more sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testingde>

cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中

de>[root@localhost ~]# cat sir00.txt
linuxsir.org forever

[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt >> sir00.txt

[root@localhost ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testingde>

警告:我们要知道>意思是创建,>>是追加。千万不要弄混了。造成失误可不是闹着玩的;







 

tar命令的详细解释

地址:http://blog.csdn.net/eroswang/article/details/5555415

分类: linux/unix服务器   45339人阅读  评论(4)  收藏  举报
tar命令

[root@linux ~]# 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 -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!













Linux /etc目录详解
地址:http://www.2cto.com/os/201306/221645.html
2013-06-21 15:08:07      我来说两句       作者:Junn
收藏     我要投稿
Linux /etc目录详解
 
/etc目录 
  包含很多文件.许多网络配置文件也在/etc 中. 
 
/etc/rc   or/etc/rc.d   or/etc/rc*.d   
  启动、或改变运行级时运行的scripts或scripts的目录. 
 
/etc/passwd   
  用户 数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息. 
 
/etc/fdprm   
  软盘参数表.说明不同的软盘格式.用setfdprm 设置. 
 
/etc/fstab   
  启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表.Linux下,也包括用swapon -a启用的swap区的信息. 
 
/etc/group   
  类似/etc/passwd ,但说明的不是用户而是组. 
 
/etc/inittab   
  init 的配置文件. 
 
/etc/issue   
  getty在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定. 
 
/etc/magic   
  file 的配置文件.包含不同文件格式的说明,file 基于它猜测文件类型. 
 
/etc/motd   
  Message Of TheDay,成功登录后自动输出.内容由系统管理员确定.经常用于通告信息,如计划关机时间的警告. 
 
/etc/mtab   
  当前安装的文件系统列表.由scripts初始化,并由mount 命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df命令. 
 
/etc/shadow   
  在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow中,而后者只对root可读.这使破译口令更困难. 
 
/etc/login.defs   
  login 命令的配置文件. 
 
/etc/printcap   
  类似/etc/termcap ,但针对打印机.语法不同. 
 
/etc/profile , /etc/csh.login ,/etc/csh.cshrc   
  登录或启动时Bourne或Cshells执行的文件.这允许系统管理员为所有用户建立全局缺省环境. 
 
/etc/securetty   
  确认安全终端,即哪个终端允许root登录.一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权. 
 
/etc/shells   
  列出可信任的shell.chsh 命令允许用户在本文件指定范围内改变登录shell.提供一台机器FTP服务的服务进程ftpd检查用户shell是否列在 /etc/shells 文件中,如果不是将不允许该用户登录. 
 
/etc/termcap 
  终端性能数据库.说明不同的终端用什么"转义序列"控制.写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap中查找要做的工作的正确序列.这样,多数的程序可以在多数终端上运行.
 
附:Linux系统 /etc/目录 文件介绍
 
1. aliases 包含了linux邮件服务所有的分发列表 
2. crontab 设置cron环境变量和运行自动任务的时间 
3. csh.cshrc csh (c shell) 用户设置系统范围的缺省值 
4. csh.login 
5. csh.logout 
6. daily 
7. defaultdomain 
8. exports 
9. fbtab 
10.fstab 标识常见存储设备和它们在linux系统下挂载的位置 
11.ftpusers 
12.group 确定系统中定义组名和组 
13.host.conf 设置TCP/IP网络上搜索域名查看文件的位置 
14.hosts 包含了从你的这计算机上可以到达的ip地址和主机名 
15.inetd.conf 
16.localtime 
17.login.conf 
18.make.conf 
19.monthly 
20.motd 
21.netstart----新版已改名为/etc/rc.network 
22.passwd 为系统上所有合法用户存储帐户信息 
23.printcap 包含了为你计算机配置打印机定义 
24.profile 为所有用户设置系统范围的环境变量和启动的顺序。当用户登录时读取该文件
25.rc 
26.rc.conf----代替原来的/etc/sysconfig 标识dns域名服务器主机的位置,使用TCP/IP协议的时候需要通过DNS服务将因特网上的主机名装换为 ip地址 
27.rc.conf.local----代替原来的/etc/rc.local 
28.rc.i386 
29.rc.local----新版改名为/etc/rc.conf.local 
30.rc.network----代替原来的/etc/netstart 
31.resolv.conf 
32.services 定义了TCP/IP服务和他们的端口分配 
33.shells 列出了系统可用的shell 命令行编辑器(bash。sh和csh等)还有它们的位置
34.sysconfig----新版已改名为/etc/rc.conf 
35.syslog.conf 
36.termcap 
37.ttys 
38.weekly 
39./etc/hosts.allow /etc/hosts.deny 
hosts.allow---列出允许使用本地计算机上某些TCP/IP服务的主机
hosts,deny---列出不允许使用本地计算机某些TCP/IP服务的主机 (默认情况下是不存在的) 
40./etc/networks /etc/netmasks
41.etc/issue 从本地终端或以控制台文件模式登录到fedora或rhel系统时,显示该文件包含的行 
42. /etc/named.boot如果你运行自己家的dns服务器,该文件包含了dns的设置 
 
1. aliases 
这个档案主要是告诉 sendmail 要将信转寄给哪些使用者, 或是交由哪个程式处理. 
如. root: user1,name2,user3 
usenet: "|/usr/local/bin/mail-post.pl" 
 
如上范例, sendmail 会将原先寄给的 root 的信分送给 user1 和 name2 和 user3, 而把寄给 usenet 的信交由 mail-post.pl 处理. 
 
在你修改完之後, 要记得执行 "newaliases" 来更新 /etc/aliases.db 
关於 aliases 之详细说明, 请 man aliases 查询. 
 
2. crontab 
这是给 root 用的 crontab file, 你也可以杀掉这个档案以 "crontab -e" 来替代. 
格式如下... 
 
#分 小时 天 月 礼拜几 用谁的身份 命令 
*/5 * * * * root /usr/libexec/atrun 
 
minute: 分钟/小时, 范围自 0 至 59 
hour: 小时/天, 范围自 0 至 23 
mday: 天/月, 范围自 0 至 31 
month: 月/年, 范围自 0 至 12 
wday: 天/周, 范围自 0 至 7 (0, 7 表示星期天) 
who: 表是以谁的身份执行这个 command 
(这只对 /etc/crontab 有用, crontab -e 无此栏位) 
command: 命令或是 shell script 
 
*/N: 表示每 N 一算, 像小时而言, */3 指的是 0,3,6,9,12 
 
请 man 5 crontab 去看详细说明. 
 
3. csh.cshrc 
 
# 系统内定给 csh shell 用的 .cshrc 档 
 
## 确定 HOME 目录 
setenv HOME $HOME 
set home=$HOME 
cd $HOME 
 
## 档案权限设定 
umask 022 
 
## 就是 Aliases 嘛 
alias pftp '/usr/local/bin/pftp' 
alias free 'pstat -s|grep -v not' 
alias talk ytalk 
alias ruptime '/usr/bin/ruptime|grep -v down' 
alias ftp ncftp 
alias rwho '/usr/bin/rwho -a|grep -v LOGIN' 
alias more less 
alias zmore zless 
alias m less 
alias pss 'ps auxw|sort -k 2|grep $USER' 
alias psm 'ps auxw|sort -k 1,2|more' 
alias psl psm 
alias psv 'ps auxw|grep -v $USER|sort -k 2|more' 
alias d '/usr/local/bin/colorls -G -alFgk /!* | more' 
alias dir '/usr/local/bin/colorls -G -alFgk /!*' 
alias rd rmdir 
alias md mkdir 
alias cls clear 
alias cd.. 'cd ..' 
alias del '/bin/rm -i' 
alias xdel '/bin/rm -rf' 
alias mv 'mv -i' 
alias dir/w '/bin/ls -aFgk' 
alias dw '/bin/ls -aFgk' 
#alias x '(startx &)>&/dev/console;sleep 300;lo' 
#alias lpr 'lpr -m' 
alias cp 'cp -i' 
alias rm 'rm -i' 
alias lo 'clear;exit' 
alias bye 'clear;exit' 
#alias vi cvi 
alias unlo 'unset autologout;unsetenv autologout' 
alias q joe 
alias .. 'cd ..' 
alias ... 'cd ../..' 
#alias ku 'ku -W' 
alias tin rtin 
#alias s 'exec screen' 
 
## 环境设定 
set path = (/sbin /usr/sbin /bin /usr/bin /usr/local/sbin /usr/local/bin) 
set path = ($path /etc /usr/etc /usr/local/etc) 
set path = ($path /usr/X11R6/bin /usr/games) 
set path = ($path ~ ~/bin .) 
set mail = (10 /var/mail/$USER) 
set recexact 
set autolist 
set matchbeep = ambiguous 
set autoexpand 
set autocorrect 
set ignoreeof 
set noclobber 
set notify 
set correct = all 
if ( ! $?WINDOW ) then 
# set prompt = "%B%m [%/] [%?] -%n- " 
set prompt = "%B%m [%/] -%n- " 
else 
set prompt = "%B%m [%/] -%n- [W$WINDOW] " 
endif 
set prompt2 = "(%t %m)%~ #%% " 
set prompt3 = "%SDo you mean [%R] (y/n/e) ? " 
set history = 500 
set savehist = 500 
set time=100 
#set watch=(1 any any) 
set symlinks = ignore 
set listlinks 
set listjobs 
set rmstar 
set showdots 
#set tperiod = 30 
# set autologout = (60 2) 
#setenv MANPATH /usr/man:/usr/local/man:/usr/man
/preformat:/usr/X11/man:/usr/openwin/man 
setenv EDITOR /usr/local/bin/joe 
setenv VISUAL /usr/local/bin/joe 
setenv EXINIT 'set ai' 
setenv LESS "-EsPm-LESS-" 
setenv LESSCHARDEF "8bcccbcc18b95.." 
setenv PAGER "less -Em" 
#setenv PAGER more 
setenv LC_CTYPE lt_LN.ISO_8859-1 
setenv LANG C 
setenv BLOCKSIZE 1k 
setenv MACHINE_ARCH i386 
setenv MACHINE i386 
setenv ORGANIZATION "交大资工 ADONIS" 
 
## X 相关设定 
setenv XWINHOME '/usr/X11R6' 
setenv X11HOME '/usr/X11R6' 
setenv OPENWINHOME '/usr/X11R6' 
setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB 
setenv XNLSPATH /usr/X11R6/lib/X11/nls 
#setenv LD_LIBRARY_PATH /usr/lib:/usr/X11R6/lib:/usr/local/lib 
stty erase '^?' 
 
if ( $?TERM ) then 
if ($TERM == "xterm" || $TERM == "xterms") then 
stty erase '^H' 
endif 
endif 
 
## 杂七杂八设定 
#set term = vt100 
#set TERM = vt100 
#setenv term vt100 
#setenv TERM vt100 
#stty extb 
stty 38400 
stty crt 
stty -tabs 
stty -istrip 
stty pass8 
unlo 
#bindkey "[HOME]" beginning-of-line 
#bindkey "[ESC]" keyboard-quit 
limit coredumpsize 0 
 
# 给 FSP Client 用 
setenv FSP_PORT 21 
setenv FSP_HOST nctuccca.edu.tw 
setenv FSP_DIR / 
setenv FSP_TRACE 
setenv FSP_DELAY 3000 
 
# Aii.. 就是 fsp aliases :) 
alias fcat '(set noglob; exec fcatcmd /!*)' 
alias fcd 'setenv FSP_DIR `(set noglob; exec fcdcmd /!*)`;fpwd' 
alias fdu /(set noglob/; exec fducmd /!) 
alias fget '(set noglob; exec fgetcmd /!*)' 
alias fgrab '(set noglob; exec fgrabcmd /!*)' 
alias fls '(set noglob; exec flscmd -F /!*)' 
alias fll '(set noglob; exec flscmd -l /!*)' 
alias fdir '(set noglob; exec flscmd -l /!*)' 
alias fmore /(set noglob/; exec fcatcmd /!/* /| more/) 
alias fpro '(set noglob; exec fprocmd /!*)' 
alias fpwd 'echo "$FSP_HOST ($FSP_PORT): $FSP_DIR"' 
alias frm '(set noglob; exec frmcmd /!*)' 
alias frmdir '(set noglob; exec frmdircmd /!*)' 
alias fhost 'setenv FSP_HOST /!*;setenv FSP_DIR /' 
 
4. csh.login 
 
# 系统内定的 .login 档. 
 
#stty extb 
stty 38400 
#stty crt 
#stty -tabs 
stty -istrip 
stty pass8 
 
# Mesg y if not console 
mesg y 
if ( `tty | cut -c 6-` == console ) then 
mesg n 
endif 
 
msgs -fp 
 
5. csh.logout 
 
# 系统内定的 .logout 
clear 
 
6. daily 
 
cron 会 依照 /etc/crontab 去做每日例行的工作. 注意一下有些 commands 对你的硬盘造成很大的负荷, 像是最後一行 的 "sh /etc/security", 他会从你的根目录开始查询. 你可以加些每天你想要执行的commands, 像 是 "quotacheck -a", "bin/rm/-f /tmp*junk*. 
 
7. defaultdomain 
 
这个档案记载你的 domainname, 你有跑 yp (nis) 时才有用. 当然闲闲填一填也没差啦. 
 
8. exports 
 
这个档案定义哪些目录可经由 NFS 给别人使用. 
例如 /cdrom -ro host1,host2 
/home -maproot=root host3 
 
Notice: 若你没加 "-ro" 表示可以写入, 所以你应当小心点. 
 
做完修正後, "kill -1 $mountd_pid", 然後用 "showmount -e" 去看看 NFS 是否做的正确. 如果有错, 用 "tail /var/log/messages" 来看错误讯息. 
 
你应该要将 /etc/rc.conf 中的 nfs_client_enable, nfs_server_enable 设为 YES. 
 
详细说明请 man 5 exports. 
 
9. fbtab 
 
/dev/ttyv0 0600 /dev/console 
/dev/ttyv1 0600 /dev/console 
/dev/ttyv2 0600 /dev/console 
/dev/ttyv3 0600 /dev/console 
#/dev/ttyv0 0600 /dev/pcaudio:/dev/pcaudioctl 
 
10. fstab 
 
这个档案定义当你开机时, 你想 mount 哪些 partition. 
例如. 
 
/dev/sd0a / ufs rw 1 1 
/dev/sd0e /dos msdos ro,-gmsdos,-m750 1 1 
/dev/sd0g /usr/local ufs rw,userquota 1 1 
/dev/sd0h /home ufs rw,userquota,groupquota 1 1 
/dev/sd0b none swap sw 0 0 
proc /proc procfs rw 0 0 
kern /kern kernfs rw 0 0 
 
详情请 man fstab. 
 
如果你的 /usr 没有跟 / 放在一起,要特别注意,/usr 不可以放在使用 LKM 载入的 filesystem 後面。例如,你的 MSDOSFS 是利用 LKM 载入的(也就是说,你没有把 MSDOSFS 编译在 kernel 中),你的 /dos 
一定要放在 /usr 後面,不然开机会失败,例如: 
 
modload:exec(/usr/bin/ld):NO such file or directiory 
msdos:vfsload(msdos):Operation not permitted 
Filessystem mount failed,startup aborted 
Enter pathname of shell or RETURN for sh 
 
11. ftpusers 
 
这个档注明的 users 将无法 ftp 这台机器. 只要写 username 即可. 算是禁止 ftp 进来的黑名单吧. 
 
12.group 
 
这个档案主要记载著 group 名称, group id 以及隶属於该 group 的使用者. 
 
要记得在 FreeBSD 中, 只有属於 wheel group 的使用者才能 su 成 root. 
 
在升级时特别注意 /usr/src/etc/group 中是否有新增系统 group, 如 network 这个 group 就是最近新增的 group. 
 
其他详细请用 man group. 
 
13. host.conf 
 
这个档案决定 DNS-name-lookup 的先後顺序. 你最好先 "hosts", 其次 "bind", 最後用 "nis". 
 
hosts: 自 /etc/hosts 查询. 
bind: 自 nameserver (参考 /etc/resolv.conf 设定) 查询. 
nis: 自 nis server 查询. 
 
14. hosts 
 
这个档案记载了你所需要的 ip 和 hostname, 最少要包括 localhost 和你自己的 hostname, 通常是提供优先於 nameserver 的查询, 或是没有 nameserver 时的查询. 
 
格式如下: 
IP-addr full-hostname alias 
如. 123.456.789.123 heaven.net.com heaven 
 
请 man hosts 去看详细说明. 
 
15.inetd.conf 
Internet 超级服务器, 相关程序: /usr/sbin/inetd
这个档案定义由 inetd 所提供的服务, 应该要和 /etc/services 保持一致性. 
当你修改这个档案的时候, 记得要 kill -1 $inetd_pid 去知会 inetd 要重新更新资料. 
你可以安装 tcp-wrapper (tcpd) 以增加安全性. 
 
16.localtime 
 
这个档记载你所在的时区资料, 你可以从 /usr/share/zoneinfo 中选一个适合的来用. 
 
就台湾而言, 你应该用 /usr/share/zoneinfo/Asia/Taipei, 正常来说, 在 install 时会自动将此档案 copy 到 /etc/localtime. 
 
17.login.conf 
 
此档案可控制系统资源与帐号各方面的限制,亦可设定内定之环境变数。 
 
"man login.conf" for detail. 
 
18.make.conf 
 
当你用 make 时, 这个定义档将被参考. 
 
如果不是以 BSD 格式撰写的 Makefiles, 你应该安装 gmake (GNU) 
 
19.monthly 
 
每月例行的 jobs. 
 
20.motd 
 
Message Of Today, 顾名思义, 就是当你 login 时所出现的画面. 
 
假如你要有自己的 motd, 你必须把 /etc/rc.local 前面几行在开机时会更改 motd 的命令拿掉, 否则你每次开机 motd 会被乱改. 
 
21.netstart----新版已改名为/etc/rc.network 
 
目前此档已由 /etc/rc.network 取代 目前此档只作为 root 在 single user mode 要手动启动网路服务 
时使用。 这个档案不要做更动, 应该去修改 /etc/rc.conf 
 
22.passwd 
 
/etc/passwd /etc/master.passwd /etc/spwd.db /etc/pwd.db 都是 由 vipw 所产生的. 关於怎样去建一个帐号, 请参考 HOW-TO-adduser. 
 
你可以 man passwd, vipw, chpass, chfn 查询详细说明. 
 
23.printcap 
 
这 个档案定义印表机的设定, 在修改後, 试著用 lpr 去列印一些东西, 假如你觉得很慢, 试著用 lptcontrol -p 去改变 /dev /lpt0 到 poll 模式, 当然, 你可以将 lptcontrol -p 加到 /etc/rc.local 里以使每次开机都有效. 
 
man lptcontrol 查询详细说明. 
 
24.profile 
 
这是 /bin/sh 的 default 设定. 
 
25.rc 
 
当 系统开机时, kernel 会先去载入 /sbin/init, 然後 /sbin/init 会去执行 /etc/rc, 所以 /etc/rc 相 对於 DOS 而言就好像 AUTOEXEC.BAT. 这个档案不要去更改, 假如你不希望每次开机时 /tmp 会被清乾净, 那你可以将 跟 /tmp 相关的几行给砍掉. (个人偏好) 
 
26.rc.conf----代替原来的/etc/sysconfig 
 
这主要用来做系统开机时的环境设定. /etc/rc, /etc/rc.i386, /etc/rc.conf.local, /etc/rc.network, /etc/[bla bla] 都会参考这个档案. 所以这个档案可以说非常重要. 
 
大多都有注解, 以下列举一些你该注意的地方... 
1) hostname : 你的完整 hostname (FQDN: 像是 freebsd.csie.nctu.edu.tw) 
2) network_interfaces : 网路卡的 device name, 像是 "ed0 lnc0". 
3) ifconfig_xxx : 定义网路卡及其 ip address. 
像是 ifconfig_ed0="inet 140.113.145.1 netmask 0xffffff00" 
ifconfig_ed1="inet 140.113.190.1 netmask 0xffffff00" 
方法如下... 
ifconfig_$device-name="inet $IP netmask $netmask", 
netmask 0xffffff00 就是 255.255.255.0 表 Class C 网路. 
4) defaultrouter: 内定的 router IP.(比如: 140.113.122.254) 
5) routdflags : 通常 NO. 但是假如你想要跑 routed, 则用 "-s" 或 "-q". 
详细说明请 man routed. 
6) rwhod : YES 执行 rwho daemon. rwho 跟 ruptime 须此 daemon. 
7) sendmail_flags : 执行 sendmail daemon, 通常设为 "-db -q30m" 
8) nfs_* : 执行 nfs client 或 server 
9) check_quotas : enable 档案系统 quotas 
10) accountint : enable command accounting, "lastcomm" 须要. 
11) firewall_enable : enable firewall 的功能 
firewall_type : 指定 firewall 的形态 
 
你应该设定完後再重新开机以测试是否每个改变都合乎你的要求. 
 
27.rc.conf.local----代替原来的/etc/rc.local 
 
在这个档案加入你个人的设定, 你可以将开机时想要执行的动作放在这里. 像 gopherd, lptcontrol, swap-on-file 等. 
 
28.rc.i386 
 
这个档案不要更动. 
 
29.rc.local----新版改名为/etc/rc.conf.local 
 
新版已由/etc/rc.conf.local所取代。 
 
30.rc.network----代替原来的/etc/netstart 
 
有关网路方面各项设定请由 /etc/rc.conf 设定,原则上此档不需更动 
 
31.resolv.conf 
 
这定义 DNS 查询 nameserver 的先後顺序. 
 
1. domain : 将你的 domainname 放这儿. 
2. nameserver : 将你的 nameservers 放这儿, 最前面的会被当成主要的nameserver. 
3. search : 将 domainnames 放这儿, 当你没有输入完整的 hostname 时, 他会将 domainnames 附加上去. 例如: search csie.NCTU.edu.tw NCTU.edu.tw edu.tw tw 
 
详情请 man resolver. 
 
32.services 
 
定义 service 名字以及 port. 不需要更动。 
 
33.shells 
 
所有的 shell 都应该放在这个档案里, 像是 /bin/sh, /bin/tcsh, /home/bbs/bin/bbsrf 等等. 
 
假如说有某个使用者的 shell 没有列在这个档案中, 有些程式如 ftpd 会拒绝该使用者 ftp, 如 adduser 将会拒绝执行. 
 
man shells 查询详细说明. 
 
34.sysconfig----新版已改名为/etc/rc.conf 
 
参考 rc.conf。 
 
35.syslog.conf 
 
这个档案指出系统的 log 应该储存在哪儿. 
 
36.termcap 
 
这个应该 link 到 /usr/share/misc/termcap. 
 
37.ttys 
 
定义 tty 的形式及某些 tty 允不允许 root login. 假如某些 ttys 後面加有 "secure", 表示 root 可以 login. 你应当多加些, 如 /dev/tty[pqrs][0-9a-v] 
 
详情请 man ttys。 
 
38.weekly 
 
每周例行的工作。 
 
39./etc/hosts.allow /etc/hosts.deny (Linux下,或使用了tcpd, 参考inetd.conf)
 
/etc/hosts.allow 设置允许使用inetd服务的机器,如: All:202.118即允许所有来自
202.118.x.x的请求
/etc/hosts.deny 设置不允许使用inetd的机器
 
这两个文件的设定顺序请参考在线文档:
man tcpd
man hosts.allow
man hosts.deny
 
Internet 网络服务访问控制文件,
 
对于安全性要求较高的服务器建议采用xinetd替代inetd,
xinetd debian自带,其他的可以用源代码进行编译安装
 
40./etc/networks /etc/netmasks
 
列出路由所需要的网络地址,相关命令/usr/sbin/route,当然也可以不使用这两个
文件,在维护路由表时可直接使用IP地址及网络屏蔽位。
 
Example:
/etc/networks
dlrin 202.199.128.0
/etc/netmasks
202.199.128.0 255.255.240.0
加入静态路由表项:
 
+---------------+ DDN
| Cisco 2511 +<-------------->DLMU 202.118.64.0/255.255.255.0
| +<-------------->DLNA 210.47.192.0/255.255.240.0
+-------+-------+
| 202.118.66.254
| 202.118.66.16
+-------+-------+ +-------------+ +-----------+
| Switch/HUB +-------+网络中心 +-----+ LAN Router+
+-------+-------+ +-------------+ +------+----+
| |
|
| 202.118.68.0/255.255.252.0
| +--------------+
+--------------+ 202.118.66.81+ (测试机器)
| +--------------+
|
|
| 202.118.66.1(Default Router)
+-------+-------+
路由器 +
+-------+-------+
|202.112.30.65/255.255.255.252
| DDN
 | PPP
|
|202.112.30.66/255.255.255.252
Cernet/Internet
 
(1) 202.118.66.81(Helius) <-> 202.118.66.18 (peony)
202.118.066.081
255.255.255.0 And
-------------------
202.118.066.0 网络地址 在同一个ip网络段
 
IP Address <-> MAC(Media Access Address)
202.118.66.18 08:00:20:96:01:6A
 202.118.66.81 00:80:C8:4C:6A:D0
 202.118.66.1 00:60:5C:F3:FF:75
 
 202.118.66.81 -> 202.118.66.18
以太网的数据包:
 
08:00:20:96:01:6A + 00:80:C8:4C:6A:D0 + ip数据
 
(2) 202.118.66.81 -> 202.112.0.36
不在同一个ip段, 通过间接传送(通过路由器).
[hbwork@linden hbwork]$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
202.118.66.0 0.0.0.0 255.255.255.0 U 1500 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
0.0.0.0 202.118.66.1 0.0.0.0 UG 1500 0 0 eth0
 ^^^^^^^
Default Router
 
(3) 加入静态路由
相关命令:/usr/sbin/route或 /sbin/route
linux下需要加入自己网络的路由表项
/sbin/route add -net 202.118.66.0 netmask 255.255.255.0 eth0
/sbin/route add -net 202.199.128.0 netmask 255.255.240.0 gw 202.118.66.254
Or:
/sbin/route add -net dlrin gw 202.118.66.254
Or:
/sbin/route add -net dlrin gw dlrin-gw
/sbin/route add default gw 202.118.66.1
 
41.etc/issue  系统进站提示信息(主控台用)
 /etc/issue.net telnet时显示信息( strings in.telnetd |egrep issue)
/etc/motd 用户进入系统后的提示信息
 
42. /etc/named.boot
DNS(BIND 4.9.x) 启动文件
示例文件:(Caching Only Server)
directory /etc/namedb
 
primary 0.0.127.in-addr.arpa named.local
cache . root.cache
 
其中root.cache 文件可通过dig得到:
 
dig @ns.internic.net . ns > /etc/namedb/root.cache
 
named.local文件内容如下:
 
@ IN SOA localhost. root.localhost. (
1999020301
10800
3600
86400
86400 )
 
IN NS localhost.
 
1 IN PTR localhost.
/etc/named.conf
DNS(BIND 8.1.x) 启动文件
(在Redhat 5.2下可用/usr/doc/bind-8.1.2/named-bootconf.pl将bind 4.9.x
的named.boot文件转换为bind8的named.conf文件格式, 执行过程如下:
/usr/doc/bind-8.1.2/named-bootconf.pl /etc/named.boot > /etc/named.conf)



http://blog.csdn.net/eroswang/article/details/5555415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值