当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪Linux下创建与删除软、硬链接的方法详解      本文主要内容: linux中软、硬链接的创建方法。 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。 文件属性保存在索引结点里,在访问文.........
    ▪Linux安装后的一些基本优化      1,关闭不需要的服务 利于减少内存和CPU时间的占用,提高安全性。   在linux机器上通常有四项服务是必须保留的   iptables linux下强大的防火墙。 network linux机器的网络,如果不上网可以.........
    ▪使用UnixBench测试Linux的性能      本节内容: UnixBench的安装与使用方法 UnixBench是一款不错的Linux下的VPS性能测试软件。 下载与安装UnixBench软件:   代码示例: [root@xxx ~]# wget http://soft.vpser.net/test/unixbench/unixbench-4.1.0-wht.tar.gz .........

[1]Linux下创建与删除软、硬链接的方法详解
    来源: 互联网  发布时间: 2013-12-24

本文主要内容:
linux中软、硬链接的创建方法。

在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。
文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。

链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。

Linux中包括两种链接:
硬链接(Hard Link) 和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。
符号连接相当于Windows下的快捷方式。

一、硬链接
硬链是一个指针,指向文件索引节点,系统并不为它重新分配inode。
可以用:ln命令来建立硬链接。
语法:
ln [options] existingfile newfile(sexistingfile 待建立链接文件的文件,newfile是新创建的链接文件)
ln [options] existingfile-list directory

-f 建立时,将同档案名删除.
-i 删除前进行询问.

ln -s abc cde 建立abc 的软连接
ln abc cde 建立abc的硬连接,

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

例子:
 

代码示例:
[root@ test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
[root@ test]# ln file2 file2hand
[root@ test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@ test]#

注意:
在创建链接前,file1 显示的链接数目为1,创建链接后file1和file1hard的链接数目都变为2;
file1和file1hard在inode号是一样的file1和file1hard显示的文件大小也是一样。
可见进行了ln命令的操作结果:
file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。
可以删除其中任何一个,如rm file2 ,每次只会删除一个指针,链接数同时减一,当链接数减为0时,内核才会把文件内容从磁盘上删除。

还可以在不同目录,但同一文件系统中建立文件的硬链接。
设file1、file2在目录/home/root/dir1中,

以下命令在/home/root中建立file2的硬链接。
 

代码示例:
ln file2 /home/root/file2hard

以下程序将dir1目录中所有文件,在目录dir2中建立硬链接
 

代码示例:
#mkdir dir2
#ln /home/root/dir1/* /home/root/dir2

如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,
只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。

尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:
(1)不可以在不同文件系统的文件间建立链接
(2)只有超级用户才可以为目录创建硬链接。

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

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

代码示例:

[root@ test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand

[root@ test]# ln -s file1 file1soft
[root@ test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand

从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的。

区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;

在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;
链接数目是不一样的,软链接的链接数目不会增加;

文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实际上就是“file1”的大小。

总之,建立软链接就是建立了一个新文件。
当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
在不同系统之间建立软链接、对目录建立链接,这里就不举例了,读者可以自己去尝试,我也是在不断实践中学习的。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了~~,
而硬链接就没有这个缺陷,你想怎么移就怎么移(呵呵);
还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。

补充:可以通过symlink来查看链接文件,可以用 man symlink来学习。

三、删除链接
有创建就有删除。
 

代码示例:
rm -rf symbolic_name
 

注意:不是rm -rf symbolic_name/

例子:
 

代码示例:
[root@ test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft -> file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@ test]# rm -rf file1soft
[root@ test]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[root@ test]#

linux 软连接和硬链接的区别:
4点不同 :
(1)软连接可以 跨文件系统 ,硬连接不可以 。
实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc .
ln -s aa.txt /root/bb 连接成功 。
ln aa.txt /root/bb 失败 。

(2)关于 I节点的问题 。
硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加,只要结点的连接数不是 0,文件就一直存在 ,不管你删除的是源文件还是 连接的文件 。
只要有一个存在 ,文件就存在 (其实也不分什么 源文件连接文件的 ,因为他们指向都是同一个 I节点)。

当你修改源文件或者连接文件任何一个的时候 ,其他的 文件都会做同步的修改 。
软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。

所以 删除连接文件对源文件无影响,但是删除源文件,连接文件就会找不到要指向的文件 。
软链接有自己的inode,并在磁盘上有一小片空间存放路径名.

(3)软连接可以对一个不存在的文件名进行连接 。
(4)软连接可以对目录进行连接。

备注:
I节点 :
它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).
i节点 含有关于文件的大部分的重要信 息,包括文件数据块在磁盘上的地址.
每一个I节点有它自己的标志号,我们称为文件顺序号.
I节点包含的信息
1.文件类型
2.文件属主关系
3.文件的访问权限
4.文件的时间截.


    
[2]Linux安装后的一些基本优化
    来源: 互联网  发布时间: 2013-12-24

1,关闭不需要的服务
利于减少内存和CPU时间的占用,提高安全性。
 
在linux机器上通常有四项服务是必须保留的
 

iptables
linux下强大的防火墙。

network
linux机器的网络,如果不上网可以关闭。

sshd
openssh server,如果机器不是本地操作,而是托管到IDC机房,那么访问机器时需要通过这个sshd服务进行。

syslog
linux系统的日志系统,必须要有,否则机器出现问题时会找不到原因。

除了这四项必需的服务之外,其他的服务可以根据系统的用途而定,比如:数据库服务器,就需要启用mysqld(或oracle)、web服务器,就需要启用apache或nginx。
 
2,关闭不需要的tty
编辑/etc/inittab
找到如下一段:
 

代码示例:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

这段命令使init为你打开了6个控制台,分别可以用alt+f1到alt+f6进行访问
此6个控制台默认都驻留在内存中,事实上没有必要使用这么多的
用ps auxf这个命令可以看到,是六个进程
 

root      3004  0.0  0.0  1892  412 tty1     Ss+  Jun29   0:00 /sbin/mingetty tty1
root      3037  0.0  0.0  2492  412 tty2     Ss+  Jun29   0:00 /sbin/mingetty tty2
root      3038  0.0  0.0  2308  412 tty3     Ss+  Jun29   0:00 /sbin/mingetty tty3
root      3051  0.0  0.0  1812  412 tty4     Ss+  Jun29   0:00 /sbin/mingetty tty4
root      3056  0.0  0.0  2116  412 tty5     Ss+  Jun29   0:00 /sbin/mingetty tty5
root      3117  0.0  0.0  2396  412 tty6     Ss+  Jun29   0:00 /sbin/mingetty tty6

如何关闭这些进程?
通常我们保留前2个控制台就可以了,
把后面4个用#注释掉就可以了

然后无需重启机器,只需要执行 init q 这个命令即可
init q
q作为参数的含义:重新执行/etc/inittab中的命令

3,关闭ipv6?
 ipv6在系统安装完成后它会作为模块常驻核心,没有必要。
首先,编辑网络配置文件:
   vi /etc/sysconfig/network
 

代码示例:
修改
NETWORKING_IPV6=yes
为:
NETWORKING_IPV6=no

然后,关闭其模块:vi /etc/modprobe.conf
在文件中添加以下两行
 

代码示例:
alias net-pf-10 off
alias ipv6 off

修改完成后,重启机器使之生效。

4,关闭atime?

一个linux文件默认有3个时间:
 atime:对此文件的访问时间
 ctime:此文件inode发生变化的时间
 mtime:此文件的修改时间

如果有多个小文件时通常没有必要记录文件的访问时间,这样可以减少磁盘的io,比如web服务器的页面上有多个小图片。
 
如何进行设置呢?
修改文件系统的配置文件:vi /etc/fstab
 在包含大量小文件的分区中使用noatime,nodiratime两项
例如:
/dev/md5   /data/pics1  ext3 noatime,nodiratime 0 0
这样文件被访问时就不会再产生写磁盘的io

5,必须让服务器运行在level 3上
做法:
vi /etc/inittab
id:3:initdefault:
让服务器运行X是没有必要的

6,优化sshd
 

X11Forwarding no //不进行x图形的转发
UseDNS no   //不对IP地址做反向的解析
 

7,优化shell
修改命令history记录
# vi /etc/profile
 

代码示例:
找到 HISTSIZE=1000 改为 HISTSIZE=100
然后 source /etc/profile

    
[3]使用UnixBench测试Linux的性能
    来源: 互联网  发布时间: 2013-12-24

本节内容:
UnixBench的安装与使用方法

UnixBench是一款不错的Linux下的VPS性能测试软件。

下载与安装UnixBench软件:
 

代码示例:

[root@xxx ~]# wget http://soft.vpser.net/test/unixbench/unixbench-4.1.0-wht.tar.gz
[root@xxx ~]# tar xzf unixbench-4.1.0-wht.tar.gz
[root@xxx ~]# ls
unixbench-4.1.0-wht-2  unixbench-4.1.0-wht.tar.gz

[root@xxx ~]# cd unixbench-4.1.0-wht-2/
[root@xxx unixbench-4.1.0-wht-2]# make

[root@xxx unixbench-4.1.0-wht-2]# ./Run

运行后显示的内容:
 

代码示例:

BYTE UNIX Benchmarks (Version 4.1-wht.2)
System -- Linux xxx.lnmp.org 2.6.18-92.1.13.el5.028stab059.6 #1 SMP Fri Nov 14 16:01:01 MSK 2008 i686 i686 i386 GNU/Linux
simfs                  5120000   1581972   3538028  31% /

Start Benchmark Run: Wed Feb  4 05:11:25 PST 2009
05:11:25 up 20 days, 21:26,  1 user,  load average: 0.00, 0.00, 0.00

End Benchmark Run: Wed Feb  4 05:21:40 PST 2009
05:21:40 up 20 days, 21:37,  1 user,  load average: 15.46, 6.32, 2.72
INDEX VALUES
TEST                                        BASELINE     RESULT      INDEX

Dhrystone 2 using register variables        376783.7 23797779.3      631.6
Double-Precision Whetstone                      83.1     1407.7      169.4
Execl Throughput                               188.3    10095.2      536.1
File Copy 1024 bufsize 2000 maxblocks         2672.0   204163.0      764.1
File Copy 256 bufsize 500 maxblocks           1077.0    74664.0      693.3
File Read 4096 bufsize 8000 maxblocks        15382.0  1629641.0     1059.4
Pipe Throughput                             111814.6  3058960.1      273.6
Pipe-based Context Switching                 15448.6   887966.3      574.8
Process Creation                               569.3    26803.0      470.8
Shell Scripts (8 concurrent)                    44.8     2503.6      558.8
System Call Overhead                        114433.5  2409758.4      210.6

FINAL SCORE  475.4
[root@xxx unixbench-4.1.0-wht-2]#


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3