linux文件管理
2017-02-11 10:36
375 查看
Linux文件管理
一、bash shell对文件的操作
创建、复制、删除、移动、查看、编辑、压缩、查找二、Linux目录结构
bin 普通用户使用的命令 /bin/ls, /bin/date
sbin 管理员使用的命令 /sbin/service
dev 设备文件 /dev/sda,/dev/tty1,dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/random
root root用户的HOME
home 存储普通用户家目录
lost+found 孤儿文件,用于存放系统不正常关机后形成的一些无家可归的文件
proc 虚拟的文件系统,反映出来的是内核,进程信息或实时状态,只存在于内存中,大小为0,du -sh /proc
sys 伪文件系统(硬件信息,内核参数,进程在内存中的信息),是一种虚拟的基于内存的文件系统,
类似于proc目录
opt 第三方软件(flush,splunk,open office)
cgroup 资源控制目录(内存 cpu....)
usr 系统文件(应用程序目录),相当于C:\Windows
/usr/local 软件安装的目录,相当于C:\Program
/usr/bin 普通用户使用的应用程序
/usr/sbin 管理员使用的应用程序
/usr/lib 32 bit库文件Glibc
/usr/lib64 64 bit 库文件Glibc
boot 存放的系统启动相关的文件,例如kernel,grub(引导装载程序)
etc 配置文件(系统相关如网络/etc/sysconfig/network,应用相关配置文件...)
lib 库文件,存放应用程序所需要的共享库,类似于windows里的.dll文件
lib64 库文件Glibc
tmp 临时文件(主要是程序产生的临时数据)
var 存放的是一些变化文件,比如数据库,日志,邮件....
mysql: /var/lib/mysql
vsftpd: /var/ftp
mail: /var/spool/mail
cron: /var/spool/cron
log: /var/log
临时文件: /var/tmp (主要是程序产生的临时文件)
misc和net autofs服务使用的目录
srv 服务器数据目录
设备(主要指存储设备)挂载目录
media 移动设备默认的挂载点
mnt 手工挂载设备的挂载点
misc automount进程挂载
net automount进程挂载
# df -ThP 查看系统中的挂载项
# mount 查看系统中的挂载项,显示详细的挂载信息
命令存储位置:
/bin 普通用户使用的命令 /bin/ls, /bin/date RHEL7淘汰
/sbin 管理员使用的命令 RHEL7淘汰
/usr/bin 普通用户使用的应用程序
/usr/sbin 管理员使用的应用程序
库文件存储位置:
/lib 库文件Glibc RHEL7淘汰
/lib64 库文件Glibc RHEL7淘汰
/usr/lib 库文件Glibc
/usr/lib64 库文件Glibc
三、文件类型
# ll anaconda-ks.cfg //看第一个字符-rw-------. 1 root root 2460 6月 1 13:14 anaconda-ks.cfg
- 普通文件(文本文件,二进制文件,压缩文件。。。)
d 目录文件(蓝色)
b 设备文件(块设备)存储设备硬盘,U盘 /dev/sda, /dev/sda1
c 设备文件(字符设备)打印机,终端 /dev/tty1
s 套接字文件
p 管道文件
l 链接文件(淡蓝色)lrwxrwxrwx 1 root root 9 4月 22 18:17 check_spop -> check_tcp
注:
1、通过颜色判断文件的类型是不一定正确
2、Linux文件是没有扩展名这一说
四、路径 (定位文件)
/tmp/file1 和 /home/tom/file1 不是同一文件!绝对路径: 从' / '开头的路径 '/' , /home/user1
,/var/log
相对路径: 相对于当前目录开始 Desktop/file1 file1 . ..
----------------------------------
. 链接到当前目录
.. 链接到上一级目录
~ 当前用户的家目录
----------------------------------
# useradd tom
# touch /home/alice/file1
# touch ~tom/file2
# ls /home/tom
# mkdir abc
# touch ../file3
# touch file4
# touch abc/file5
# ls
# ls abc
五、文件操作
文件操作之:cd 改变目录:cd 绝对路径 cd /home/tom cd ~tom
cd 相对路径 cd Desktop/abc cd ..
cd 专用:
cd - 返回上次目录 , cd ..
cd 直接回家
2. 文件管理之:创建/复制/移动/删除
文件创建
文件 touch
# touch file1.txt //无则创建,有则修改时间
# touch file2 file3
# touch /home/file4.txt
# touch /home/file5 file6
# touch file{1..20}
# touch file{a..c}
# touch mu{a,b} //{}集合,等价touch mua mub
注:在同一个目录下面,创建一个同名的文件是可以成功的,但是文件的修改时间会发生变化
[root@localhost tmp]# ls /tmp/hao/*
// *表示所有的意思
目录创建
目录 mkdir
# mkdir dir1
# mkdir /home/dir2 /home/dir3
# mkdir /home/{dir4,dir5}
# mkdir -v /home/{dir6,dir7}
# mkdir -v /home/dir8/111/222
# mkdir -pv /home/dir8/111/222
# mkdir -pv /home/{yang/{dir1,111},zhanghao}
复制 cp
用法: cp [OPTION]... [-T] SOURCE DEST
# cd
# mkdir /home/dir{1,2}
# cp -v install.log /home/dir1
# cp -v install.log /home/dir1/test.txt //将前面的文件拷贝到后面的目录当中并重新命名
# cp -v /etc /home/dir1
# cp -rv /etc /home/dir1 //-r递归
# cp -v anaconda-ks.cfg !$
# cp -rv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub.
cfd3
conf /home/dir2 //将多个文件拷贝到同一个目录
# cp -rv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub.conf /etc/hosts.
# cp -r /etc /tmp
# cp -rf /etc /tmp
# \cp -r /etc /tmp
[root@localhost ~]# type -a cp
cp is aliased to `cp -i'
cp is /bin/cp
[root@localhost ~]# cp -rvf /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-eth0.bak}
[root@localhost ~]# cp -rvf /etc/sysconfig/network-scripts/ifcfg-eth0{,.old}
移动
mv
用法: mv [OPTION]... [-T] SOURCE DEST
# mkdir /tmp/dir3
# mv file1 /tmp/dir3 //将file1移动到/home/dir3
# mv file2 /tmp/dir3/file20 //将file2移动到/home/dir3,并改名为file20
# mv file4 file5 //将file4重命名为file5,当前位置的移动就是重命名
删除 rm rmdir
示例1:删除/home/dir1
# cd /home
# rm -rf dir1
-r 递归
-f force强制
-v 详细过程
# rmdir /tmp/dir/ 只能删除空目录
示例2:
[root@localhost ~]# rm -rf file*
[root@localhost ~]# rm -rf dir*
[root@localhost ~]# rm -rf /home/dir*
[root@localhost ~]# rm -rf *.pdf
示例3:
[root@localhost dir]# mkdir -- -a
[root@localhost dir]# ls
-a dir2 file1
[root@localhost dir]# mkdir -- -b
[root@localhost dir]# ls
-a -b dir2 file1
[root@localhost dir]# rm -- -a
rm: 无法删除"-a": 是一个目录
[root@localhost dir]# rm -rf -- -a
[root@localhost dir]# ls
-b dir2 file1
[root@localhost dir]# rm -rf ./-b/
[root@localhostdir]# ls
dir2 file1
3. 文件管理之:查看文件内容
文本文件 命令: (cat lessmore head tail grep tac rev)
cat看文件的所有的内容
less支持上下翻看,并且支持搜索,使用n或者是N上下切换搜索的内容
more只支持向下翻看
/bin/ls
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/passwd
/etc/shadow
/etc/group
/etc/grub.conf
/etc/resolv.conf
/var/log/messages
/var/log/secure
cat
-n 显示所有行
-b 显示有效行
-A 包括控制字符(换行符)
linux $
Windows ^M$
========================================================
扩展:
dos2unix 将Windows格式的文件转换成Unix格式
unix2dos 将Unix格式的文件转换成Windows格式
例如
# unix2dos file1
# dos2unix file2
========================================================
less more head tail
# head /etc/passwd 默认的看头10行
# head -2 /etc/passwd 看头两行
# tail /etc/passwd 看尾10行,默认显示的是10行
# tail -1 /etc/passwd 看尾1行
# tail /var/log/messages
# tail -30 /var/log/messages 看尾30行
# tail -f /var/log/messages //-f 动态查看文件尾部信息
# tailf /var/log/messages
另外打开一个终端,手动产生日志,使用下面的命令
# logger kldskjjdfa
切换回到动态查看日志的终端中,看一下是否成功动态产生的日志
扩展:
# tail -f /var/log/messages //-f 动态查看文件尾部信息,追踪的是文件的inode号# tail -F /tmp/file1 //动态查看文件尾部信息,追踪的是文件名
注:vim, gedit编辑文件时,inode会改变
==============================================================================
grep 针对文件内容进行过滤
# grep 'root' /etc/passwd
# grep --color 'root' /etc/passwd
# grep --color '^root' /etc/passwd
# grep --color 'bash$' /etc/passwd
# grep 'failure' /var/log/secure
随记:
Linux文件有三种时间:访问时间:atime,查看内容
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限
注:RHEL6开始relatime,atime延迟修改,必须满足其中一个条件:
1. 自上次atime修改后,已达到86400秒;
2. 发生写操作时;