首页 > 代码库 > linux文件管理
linux文件管理
Linux的目录结构:
/ 根分区 linux文件系统的起点
/bin 普通用户的命令,普通用户能使用
/sbin 管理员使用的命令,只有管理员能使用
/home 普通用户的宿主目录
/root 管理员的宿主目录
/boot linux启动所需的文件,内核,grub,内核引导文件
/dev 设备文件,硬盘,键盘鼠标,光驱等
/usr 应用程序 /usr/src 源码包的存放路径
/etc 配置文件
/opt 安装额外软件时的存放路径
/var 日志文件,邮件等
/proc 虚拟文件系统(计算机内核的信息,CPU...),数据都在内存中
/lib 库文件,驱动
/selinux 美国国家安全属研发的安全机制
/tmp 临时文件存放目录(公共文件夹)
/media 挂载点(redhat9.0里面使用的/mnt)
/sys 系统相关文件
/srv 启动的服务需要访问的数据目录
/mnt 临时文件系统挂载点
文件的两类数据:
元数据:文件的属性
数据:文件的内容
显示当前所在目录:
[root@bogon ~]# pwd
/root
切换目录:cd命令
绝对路径:以根目录“/”作为起点,可以非常准确的表示一个目录或文件所在的位置,如果路径较长输入时会比较繁琐。
相对路径:以当前工作目录作为起点,“.”表示当前工作目录,“..”表示上一级目录,“~”表示用户的宿主目录。
[root@bogon ~]# cd - ##回到上一次的工作目录,实现两个工作目录间来回切换
/etc
[root@bogon etc]#cd -
文件通配符:
* 匹配零个或多个字符
? 匹配任何单个字符
~ 当前用户家目录
~username 用户家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配一个数字范围
[a-z] 大写和小写字母
[A-Z] 大写字母
[wxc] 匹配列表中的任何的一个字符
[^wxc] 匹配列表中的所有字符以外的字符
预定义的字符类: #man 7 glob
[:digit:] 任意数字,相当于0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:space:] 空格
[:punct:] 标点符号
列出目录的内容或指定目录:
ls命令:ls [options] [files_or_dirs]
-a 包含隐藏文件
-l 以长格式显示,ll
-R 目录递归显示
-d 目录和符合链接信息
-1 文件分行显示
-S 从大到小排序
-i 显示文件索引节点
显示当前工作目录下的所以隐藏文件和目录:
[root@bogon ~]# ls -d .* . .. .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc .viminfo
显示当前工作目录下的所以目录:
[root@bogon var]# ls -d */ adm/ crash/ empty/ gopher/ lib/ lock/ mail/ opt/ run/ tmp/ cache/ db/ games/ kerberos/ local/ log/ nis/ preserve/ spool/ yp/
显示/etc 目录下,所有.conf 结尾,且以m,n,r,p 开头的文件或目录
[root@bogon log]# ll /etc/[mnrp]*.conf -rw-r--r--. 1 root root 5171 Jun 10 2014 /etc/man_db.conf -rw-r--r--. 1 root root 936 Mar 6 2015 /etc/mke2fs.conf -rw-r--r--. 1 root root 1717 May 1 05:40 /etc/nsswitch.conf -rw-r--r--. 1 root root 82 May 1 19:24 /etc/resolv.conf -rw-r--r--. 1 root root 458 Nov 21 2015 /etc/rsyncd.conf -rw-r--r--. 1 root root 3232 Sep 8 2015 /etc/rsyslog.conf
linux文件的类型:
- 普通文件
d 目录文件
b 块设备
c 字符设备
l 符号链接文件
p 管道文件pipe
s 套接字文件socket
查看文件状态:stat
[root@bogon ~]# stat anaconda-ks.cfg File: ‘anaconda-ks.cfg’ Size: 1401 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 101877942 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:admin_home_t:s0 Access: 2017-05-01 05:41:12.625008626 +0800 ##访问时间,读取文件内容 Modify: 2017-05-01 05:41:12.630008626 +0800 ##修改时间,改变文件内容(数据) Change: 2017-05-01 05:41:12.630008626 +0800 ## 改变时间,元数据发生改变 Birth: -
touch命令:创建文件和刷新时间
touch [OPTION]... FILE...
-a 改变atime
-m 改变mtime
-t STAMP:[[CC]YY]MMDDhhmm[.ss]
-c 如果文件不存在,则不予创建
cp命令:复制
-a 归档,等同于-dr
-b 若删除或者覆盖目标文件,将对目标文件进行备份,备份文件以备份的字符串结尾
-d 复制符号链接
-f 强制复制
-h 强制cp复制符号链接。缺省值是跟随符号链接,将文件复制到符号链接指向处。
-i 交互式模式。覆盖目标文件之前先要进行询问
-l 建立硬链接,而非复制
-p 源目录或者文件的属性保留
-r 处理指定目录以及子目录
复制/root目录下所以文件到/data目录,包括隐藏文件:
[root@bogon ~]# cp -r /root/. /data/ [root@bogon ~]# ls -a /data/ . anaconda-ks.cfg .bash_logout .bashrc .tcshrc .. .bash_history .bash_profile .cshrc .viminfo
移动和重命名:mv [选项]
-i 交互式
-f 强制,如果目标文件已经存在,不会询问而直接覆盖
-b :若需覆盖文件,则覆盖前先行备份
[root@bogon ~]# ls anaconda-ks.cfg file1.txt [root@bogon ~]# mv file1.txt /data/file2.txt [root@bogon ~]# ls /data/ file2.txt ##将file1移动到/data目录下重命名file2
删除文件: rm [选项]... file...
-i: 交互式
-f: 强制删除
-r: 递归删除目录树
[root@bogon ~]# ls /data/ file2.txt testdir [root@bogon ~]# rm -rf /data/* [root@bogon ~]# ll /data/ total 0 ##删除/data目录下所以文件
显示目录树: tree
-d: 只显示目录
-L level :指定显示的层级数目
-P pattern: 只显示由指定pattern 匹配到的
显示“/”目录树,只显示一层:
[root@bogon ~]# tree -L 1 / / ├── bin -> usr/bin ├── boot ├── data ├── dev ├── etc ├── home ├── lib -> usr/lib ├── lib64 -> usr/lib64 ├── media ├── mnt ├── opt ├── proc ├── root ├── run ├── sbin -> usr/sbin ├── srv ├── sys ├── tmp ├── usr └── var
创建目录:mkdir
-p: 递归创建,且可自动创建所需的各目录;
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限;
[root@bogon ~]# mkdir -m 700 test [root@bogon ~]# ll total 4 -rw-------. 1 root root 1401 May 1 05:41 anaconda-ks.cfg drwx------. 2 root root 6 May 2 02:27 test
rmdir:删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
链接文件:ln命令
软连接与硬链接的区别:
当删除源文件后,软连接将失效,但硬链接仍旧可用。
软连接适用于文件或目录,但硬链接只可用于文件。
软连接与原文件可以位于不同的文件系统中,但硬链接必须与原文件在同一个分区内。
ln命令默认创建的是硬链接,创建软链接必须结合“-s”选项
[root@bogon ~]# ln -s /etc/httpd/conf/httpd.conf /etc [root@bogon ~]# ll /etc/httpd.conf lrwxrwxrwx. 1 root root 26 May 2 02:47 /etc/httpd.conf -> /etc/httpd/conf/httpd.conf [root@bogon ~]# ln /var/log/messages /tmp/test [root@bogon ~]# ll -h /tmp/test -rw-------. 2 root root 574K May 2 02:46 /tmp/test
file命令:用来识别文件类型,也可用来辨别一些文件的编码格式
file [options] <filename>...
-b 列出文件辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行形
-f 列出文件中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的”:” 分隔符
-i 输出mime 类型的字符串
-L 查看对应软链接对应文件的文件类型
-z 尝试去解读压缩文件的内容
--help显示命令在线帮助
查看软连接对应文件的类型:
[root@bogon ~]# file -L /etc/httpd.conf /etc/httpd.conf: ASCII text
du命令:统计目录及文件的空间占用情况
-a 统计磁盘空间占用的所以文件,而不仅仅只统计目录
-h 以K,M单位显示
-s 只统计某个参数所占用的空间,而不是统计每个子目录
[root@bogon ~]# du -sh /var/log/ 3.3M /var/log/ [root@bogon ~]# du -ah /boot/ 4.0K /boot/grub/splash.xpm.gz 4.0K /boot/grub 0 /boot/grub2/themes/system 0 /boot/grub2/themes 4.0K /boot/grub2/device.map 12K /boot/grub2/i386-pc/acpi.mod
linux文件管理