Linux-文件管理

文件系统分层结构标准

http://www.pathname.com/fhs

http://www.pathname.com/fhs/pub/fhs-2.3.pdf

包括

boot bin sbin etc lib64 tmp usr mnt media dev var home net misc srv proc sys root opt selinux

 

FHS

 

ldd /bin/ls         查看ls命令需要的依赖库,一般在/lib64下

 

/misc目录,CentOS 6自动有,cd /misc然后cd cd/可自动挂载光盘,不用登管理员帐户

/proc         目录里的东西根本不在硬盘中,而是在内存中,所以ll查看文件大小为0

是个虚拟目录,映射到内存

echo ‘- – -‘ > /sys/class/scsi_host/host2/scan 不重启电脑的情况下识别新硬盘

 

ext4文件系统大小写敏感,U盘的FAT32等文件系统大小写不敏感

.开头的是隐藏文件

文件有两类数据:

元数据:metadata(ll看到的信息)

数据:data

 

各种文件的类型, vim /etc/DIR_COLORS可定制颜色

-:普通文件                    白色

d: 目录文件                     深蓝色

b: 块设备                         黄色

c: 字符设备                     黄色

l: 符号链接文件              浅蓝色

p: 管道文件pipe             深黄色

s: 套接字文件socket      紫色

可执行文件                    绿色

压缩包                            红色

 

某些文件名带空格、横杠等字符,要删的话带上路径

如rm /root/-a

 

b块设备,如/dev/sda

c字符设备,如/dev/zero

dd if=/dev/zero of=/data/bigfile bs=1M count=1024

 

ll -d /bin/ /usr/bin

ll -d /lib64 /usr/lib64

 

pwd -P      若进入链接目录时显示真实路径

 

带根/的是绝对路径,不带根/的是相对路径

 

basename        文件本身的名称,不带目录

dirname            目录名,不带文件名

 

cd ~                     进入当前用户的家目录

cd                 进入当前用户的家目录

cd ~qjy      进某个人的家目录

cd –               进入上一次目录路径,内在机制:echo $OLDPWD,OLDPWD变量存储了上一个目录

echo $PWD  或pwd,查看当前目录

 

环境变量     PS1,PATH,PWD,OLDPWD,HISTSIZE,SHELL

 

ls

ls -ld             等于ll -d,显示文件夹本身的信息

 

目录后边有没有/有区别么?大部分时候没区别,除了目录是软连接的情况。

例如:ll /bin和ll /bin/,不加/显示的是软链接本身,加/显示的是/bin/下的文件。

ll_bin

ll_bin2

 

ls -a 包含隐藏文件

ls -l 显示额外的信息

ls -R 目录递归通过

ls -ld 目录和符号链接信息

ls -1 文件分行显示

ls -S 按从大到小排序

ls -t 按mtime排序

ls -u 配合-t选项,显示并按atime从新到旧排序

ls -U 按目录存放顺序显示

ls -X 按文件后缀排序

 

ll –time=atime /data/A    访问时间

ll –time=ctime /data/A     元数据发生变化的时间

ll –time=mtime /data/A   修改时间(默认)

 

stat /data/A  可以看到3个时间

 

元数据存放在文件系统中,不是具体文件

有时可以不让更新读时间atime,减少硬盘负担

 

文件通配符

 

*匹配零个或多个字符

?匹配任何单个字符

~ 当前用户家目录

~mage 用户mage家目录

~+ 当前工作目录

~-前一个工作目录

[0-9]匹配数字范围

[a-z]:字母

[A-Z]:字母

[qjy]匹配列表中的任何的一个字符

[^qjy]匹配列表中的所有字符以外的字符

 

预定义的字符类:man 7 glob

[:digit:]:任意数字,相当于0-9

[:lower:]:任意小写字母

[:upper:]: 任意大写字母

[:alpha:]: 任意大小写字母

[:alnum:]:任意数字或字母

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:标点符号

[:print:]:可打印字符

[:cntrl:]:控制(非打印)字符

[:graph:]:图形字符

[:xdigit:]:十六进制字符

 

通配符只通配文件名称,不管内容

[root@centos7 data]#touch f{A..Z}

[root@centos7 data]#touch f{a..z}

[root@centos7 data]#ls f[A-D]

fA  fb  fB  fc  fC  fd  fD

[root@centos7 data]#ls f[[:upper:]]

fA  fC  fE  fG  fI  fK  fM  fO  fQ  fS  fU  fW  fY

fB  fD  fF  fH  fJ  fL  fN  fP  fR  fT  fV  fX  fZ

 

man 7 glob

 

touch     创建空文件或刷新时间

touch [OPTION]… FILE…

-a仅改变atime和ctime

-m 仅改变mtime和ctime

-t [[CC]YY]MMDDhhmm[.ss]

指定atime和mtime的时间戳

-c如果文件不存在,则不予创建

 

cp

cp -a      可以作为备份手段,把数据的所有信息都复制

cp -av    备份同时显示过程,使用-v要小心,文件太大的话终端容易死

cp -u      更新,只复制源比目标更新文件或不存在文件

cp –backup=numbered 可定义到别名里

 

[root@centos7 data]#ls

file1.conf  file2.conf  file3.conf  file4.conf  file5.conf

[root@centos7 data]#rename “conf” “conf.bak” file*

[root@centos7 data]#ls

file1.conf.bak  file3.conf.bak  file5.conf.bak

file2.conf.bak  file4.conf.bak

 

rm

rm -rf /被禁,但rm -rf /*或者 rm -rf /data /*能执行!

强烈建议把rm改名或者定义成别名mv

alias rm=’mv -t /data/’

有别人正在使用某文件时释放不了空间,用lsof | grep deleted可查看被删除但未释放空间的文件,方法一是kill掉进程,但不建议,因为有些进程不能kill,方法二是> file先清空,释放空间,再rm删掉。

> bigfile

rm -f bigfile

 

目录操作

tree

tree /boot

tree -L 1 /boot     只显示当前目录下的第一层

tree -d /boot       只显示文件夹

tree -P                 可跟正则表达式

 

mkdir     创建空目录

mkdir -p       /data/dir1/dir2/dir3/dir4 能创建比较深的空目录

mkdir -v /data/dir1/dir2/dir3/dir4 显示详细信息

 

rmdir [-p]     删除空文件夹

 

 

备份小技巧

cp /etc/hosts{,.bak}

 

索引节点

inode

inode table   节点表

inode在每个分区中唯一

直接指针有12个,每个block是4K,最多直接指向48K的数据

间接指针            4M

二重间接指针    4G

三重间接指针    4T

 

df -i        df的inode形式

 

shred -zvu -n 6 /data/hosts      擦除文件,-z最后以0覆盖,-v显示过程,-u删除文件,-n 6覆写6次(默认3次)

 

硬链接

创建硬链接会增加额外的记录项以引用文件

对应于同一文件系统上一个物理文件

每个目录引用相同的inode号

创建时链接数递增

 

删除文件时:

rm命令递减计数的链接

文件要存在,至少有一个链接数

当链接数为零时,该文件被删除

不能跨越驱动器或分区

 

语法:

ln filename [linkname]

任何文件夹最少有2个链接数,本身和. ,如果还有子文件夹的话,子文件夹的.. 也是他的名字,就有3个以上的链接数

 

软连接(符号链接)

一个符号链接指向另一个文件

ls -l的显示链接的名称和引用的文件

一个符号链接的内容是它引用文件的名称

可以对目录进行

可以跨分区

指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;

 

语法:

ln -s filename [linkname]

软连接的文件大小是源文件的文件名大小

软连接ln -s f1 f1_link,如果f1和f1_link在不同目录,要用相对目录的话是相对于f1_link的目录,不是相对于f1的目录

readlink /etc/grub2.cfg可直接读到源文件的路径

 

 

软,硬链接区别:

本质

硬链接:同一个文件多个名字

软链接:一个文件对应快捷方式,不同文件

 

1、链接数

2、跨分区

3、用于目录

4、原始和链接文件关系

5、删除

 

确定文件内容

file file1

检查文件的类型,然后确定适当的打开命令或应用程序使用

文件的头部,又称魔数magic number

hexdump -C file -n 100     显示一个文件的前100个字节

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93844

(0)
qjyqjy
上一篇 2018-03-30 20:52
下一篇 2018-03-31 09:32

相关推荐

  • 文本三剑客之一 “sed” 命令的一些用法。

    分为基本用法跟高级用法。

    Linux笔记 2018-04-22
  • linux如何使用命令帮助

    Linux如何使用命令帮助 whatis:显示命令的简短描述 whatis命令在用 catman -w命令创建的数据库中查找command参数指定的命令、 系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息。whatis命令等同于使用man -f命令。linux系统刚安装后不可立即使用使用 makewh…

    Linux笔记 2018-05-07
  • 磁盘管理(二)

    RAID

    2018-04-26
  • 第三周作业

    1 列出当前系统上所有已经登陆的用户的用户名,注意:同一个用户名登陆多次,则只显示一次。
    2 取出最后登陆到当前系统的用户的相关信息。
    3 取出当前系统上被用户当作其默认shell的最多的那个shell.
    4 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5 取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6 列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字装换为大写后保存至/tmp/etc.conf文件中。
    7 显示/var目录下一级子目录或文件的总个数。
    8 取出/etc/group文件中第三个字符段数值最小的10个组的名字。
    9 将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10. 请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)创建组distro, 其GID为2016
    (2)创建用户mandriva, 其ID号为1005,基本组为distro
    (3)创建用户mageia, 其ID号为1100,家目录为/home/linux
    (4)给用户mageia添加密码,密码为mageedu
    (5)删除mandriva, 但保留其家目录
    (6)创建用户slackware, 其ID号为2002, 基本组为distro, 附加组为peguin
    (7)修改slackware的默认shell为/bin/tcsh
    (8)为用户slackware的新增附加组admins

    2018-06-05
  • TCP/IP

    TCP/IP不是一个协议,而是一个协议族的统称。里面包括IP协议、IMCP协议、TCP协议。 TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:…

    Linux笔记 2018-05-05
  • 第一周作业之:Linux系统常用命令使用格式介绍

    基于ContOS7下演示ifconfg、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date这些命令的常见使用方式

    Linux笔记 2017-12-03