Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 教程 > Linux系统管理 > 正文

Linux运维系统工程师系列---07

时间:2014-05-31 01:35 来源:未知 作者:www.51ou.com 阅读:

文件管理

   

链接:

两种:

    硬链接:

软链接:符号链接(类似windows里的快捷方式)

硬链接:

[root@server254 ~]# mkdir hlink

[root@server254 ~]# ll -d hlink/

drwxr-xr-x. 2 root root 4096 Oct 16 15:04 hlink/

上面的2就是表示硬链接数是2。

[root@server254 ~]# mkdir hlink

[root@server254 ~]# ll -d hlink/

drwxr-xr-x. 2 root root 4096 Oct 16 15:04 hlink/

[root@server254 ~]# /root/hlink/^C

[root@server254 ~]# cd hlink/

[root@server254 hlink]# ls -a

.  ..

2 :   /root/hlink

/root/hlink/.

[root@server254 hlink]# mkdir lk

[root@server254 hlink]# ll -d /root/hlink/

drwxr-xr-x. 3 root root 4096 Oct 16 15:07 /root/hlink/

3:/root/hlink

/root/hlink/.

/root/hlink/lk/..

[root@server254 hlink]# cd lk/

[root@server254 lk]# ls -a

.  ..

[root@server254 lk]# pwd

/root/hlink/lk

 

——人为创建硬链接:

ln命令:

[root@server254 hlink]# touch hl

[root@server254 hlink]# ll hl

-rw-r--r--. 1 root root 0 Oct 16 15:15 hl

[root@server254 hlink]# ln hl /test/hard

[root@server254 hlink]# ll hl

-rw-r--r--. 2 root root 0 Oct 16 15:15 hl

[root@server254 test]# ls -li hard

1197063 -rw-r--r--. 2 root root 0 Oct 16 15:15 hard

[root@server254 test]# ls -li /root/hlink/

hl  lk/

[root@server254 test]# ls -li /root/hlink/hl

1197063 -rw-r--r--. 2 root root 0 Oct 16 15:15 /root/hlink/hl

          i —— inode  i节点,里面存文件的一些属性等等。i节点相同表示同一个文件

 

软链接:  symbolic link(符号链接)

  ln -s 源 目的

[root@server254 ~]# ln -s /root/hlink/ /test/sl

[root@server254 ~]# ll -d /test/sl

lrwxrwxrwx. 1 root root 12 Oct 16 15:23 /test/sl -> /root/hlink/

[root@server254 ~]# echo hello > /root/hlink/hello.txt

[root@server254 ~]# cd /test

test/  test1/

[root@server254 ~]# cd /test/sl

[root@server254 sl]# ll

total 8

-rw-r--r--. 1 root root    6 Oct 16 15:24 hello.txt

-rw-r--r--. 2 root root    0 Oct 16 15:15 hl

drwxr-xr-x. 3 root root 4096 Oct 16 15:12 lk

[root@server254 sl]# pwd

/test/sl

[root@server254 sl]# cd /root/hlink/

[root@server254 hlink]# pwd

/root/hlink

[root@server254 hlink]# ll

total 8

-rw-r--r--. 1 root root    6 Oct 16 15:24 hello.txt

-rw-r--r--. 2 root root    0 Oct 16 15:15 hl

drwxr-xr-x. 3 root root 4096 Oct 16 15:12 lk

[root@server254 hlink]# ll -d /test/sl

lrwxrwxrwx. 1 root root 12 Oct 16 15:23 /test/sl -> /root/hlink/

[root@server254 hlink]# ll -d /root/hlink

drwxr-xr-x. 3 root root 4096 Oct 16 15:27 /root/hlink

符号链接文件的大小不是文件实际大小,而是它所指向的路径的长度。/root/hlink/=12

 

软硬链接的区别:

1、软链接和源文件的权限不一样;硬链接与源文件的权限一致。

2、软链接可以跨分区;硬链接不可以跨分区。

3、软链接可以对目录做链接;硬链接不可以对目录做链接。

 

 

               文件的搜索

   

which 可执行命令

 

——能够显示shell命令的绝对路径

[root@server254 ~]# which passwd

/usr/bin/passwd

[root@server254 ~]# which vim

/usr/bin/vim

[root@server254 ~]# which vi

/bin/vi

——仅能在PATH变量中指定的路径中搜索可执行的命令

PATH:命令的搜索路径

[root@server254 ~]# echo $PATH

/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin

 

[root@server254 sgid]# which ugid_vi

/usr/bin/which: no ugid_vi in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin)

 

——添加路径到PATH:

[root@server254 sgid]# PATH=$PATH:/sgid

[root@server254 sgid]# echo $PATH

/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/sgid

[root@server254 sgid]# which ugid_vi

/sgid/ugid_vi

 

locate:

——通过文件名检索,检索到的东西都会存在数据库里

——局限性:有的文件系统、文件、目录不搜索

比如/tmp不搜索

 

[root@server254 ~]# locate vim

 

[root@server254 ~]# locate myvi明明有,但是没搜到,why?

是因为没有更新数据库

更新数据库的命令是:updatedb

[root@server254 sgid]# locate ugid_file

/sgid/ugid_file

[root@server254 sgid]# touch abcdefg   新建的文件,想要搜索到,需要先更新库

[root@server254 sgid]# locate abcdefg

[root@server254 sgid]# updatedb    

[root@server254 sgid]# locate abcdefg

/sgid/abcdefg

 

数据库数据文件存放位置:

  /var/lib/mlocate/mlocate.db

 

数据库的配置文件:

[root@server254 mlocate]# cat /etc/updatedb.conf

PRUNE_BIND_MOUNTS = "yes"

PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs vmhgfs"

PRUNENAMES = ".git .hg .svn"

PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"

 

由于配置文件设置,不能搜索/tmp路径下的文件

[root@server254 tmp]# cd suid/

[root@server254 suid]# ll

total 708

-rwsr-xr-x. 1 xh root 720792 Oct 16 10:09 myvi

-rw-rw-r--. 1 xh xh        9 Oct 16 10:11 xh.file

[root@server254 suid]# locate myvi

[root@server254 suid]# pwd

/tmp/suid

 

whereis:不常用,查找一个命令的二进制文件、源代码及有没有man手册

[root@server254 suid]# whereis ls

ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

[root@server254 suid]# whereis pwd

pwd: /bin/pwd /usr/share/man/man1p/pwd.1p.gz /usr/share/man/man1/pwd.1.gz

 

find:很强大

全局搜索文件的,工作方式就是沿着文件层次结构遍历,找到符合条件的可以执行相应的操作。

1、基本语法格式:

find 路径 搜索选项 参数 执行的动作

 

2、基本例子:

[root@server254 test]# find /etc -name passwd

/etc/pam.d/passwd

/etc/passwd

看下查询效率

[root@server254 test]# mkdir -p /find/a/b/c/d/e/f/g/h/i/j/k/l/m/n

[root@server254 test]# touch /find/a/b/c/d/e/f/g/h/i/j/k/l/m/n/google.txt

[root@server254 test]# find /find -name google.txt

/find/a/b/c/d/e/f/g/h/i/j/k/l/m/n/google.txt

3、按条件搜索

1)-name:文件名搜索

[root@server254 ~]# find /etc/ -name ntp.conf

/etc/ntp.conf

   通配符:*

搜索/etc下,所有以.conf结尾的文件

[root@server254 ~]# find /etc/ -name *.conf

  -iname:文件名搜索,忽略大小写

[root@server254 find]# find . -iname passwd

./PASSWD

./passwd

2)-type:按照文件类型查找

b:块设备

c:字符设备

d:目录文件

l:软链接文件

s:套接字文件

p:管道文件

-:普通文件

查找/var目录下的软链接文件

[root@server254 ~]# find /var/ -type l

/var/lib/gdm/.pulse/e532a814bb540a5d385d60a300000019-runtime

/var/mail

[root@server254 ~]# ll `find /var/ -type l`

lrwxrwxrwx. 1 gdm  gdm  23 Oct  9 16:36 /var/lib/gdm/.pulse/e532a814bb540a5d385d60a300000019-runtime -> /tmp/pulse-o9Qfwuf6KGhj

lrwxrwxrwx. 1 root root 10 Oct  9 16:14 /var/mail -> spool/mail

[root@server254 ~]# find /tmp -type d

注意:搜索条件是可以同时使用多个的

 

例子:查找/find目录下,文件名为pass,文件类型是软链接的文件

[root@server254 ~]# cd /find/

[root@server254 find]# ln -s passwd pass

[root@server254 find]# find /find -name pass -type l

/find/pass

3)按照时间查找

什么时候会用到呢?增量备份。

-atime n:     表示n*24小时,也就是说以小时为单位的

-ctime n:

-mtime n:

 +n:大于

  -n:小于

   n:n到n+1之间

 

-mtime 3:图

 

[root@server254 ~]# mkdir /test

[root@server254 ~]# cp /etc/passwd /test/

[root@server254 ~]# cp /etc/passwd /test/passwd1

[root@server254 ~]# cp /etc/passwd /test/passwd2

[root@server254 ~]# cp /etc/passwd /test/passwd3

[root@server254 ~]# date

Thu Oct 17 11:23:02 CST 2013

[root@server254 ~]# echo "hello 17" > /test/passwd

[root@server254 ~]# date -s "2013-10-18 11:24:00"

Fri Oct 18 11:24:00 CST 2013

[root@server254 ~]# echo "hello 18" > /test/passwd1

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Linux运维系统工程师系列---07》技术文章,《Linux运维系统工程师系列---07》详细使用和说明,有时《Linux运维系统工程师系列---07》可能不完善、敬请谅解!如果《Linux运维系统工程师系列---07》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片