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
下一篇 2018-03-31

相关推荐

  • 进程和计划管理

    进程 进程是运行中的程序。每个程序启动后都会创建一个或多个程序。 常用查看进程的命令 ps 默认只查看当前用户终端中打开的进程 ps aux 显示所有进程信息,包括非终端登录以及其他终端、用户打开的进程 top 在当前终端以交互式方式显示进程排名,及时跟踪CPU、内存等系统资源的使用情况,默认三秒刷新一次。 P键:根据CPU占用情况对进程进行排序 M键:根据…

    Linux笔记 2018-05-06
  • Linux-正则表达式

    REGEXP:Regular Expression 由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能 程序支持:grep,sed,awk,vim, less,nginx,varnish等 分两类: 基本正则表达式:BRE 扩展正则表达式:ERE grep -E, egrep 正则表达式引擎: 采用不同算法…

    2018-04-08
  • linux练习题以及用户和组管理

    Linux练习题 列出当前系统上的所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可 取出最后登录到当前系统的用户的相关信息 取出当前系统上被用户当作默认shell的最多的那个shell 将/etc/passwd/中的第三个字段数值最大的后10个用户信息全部改为大写后保存至/tmp/maxusers中。 取出当前主机的IP地址,提示:对i…

    2018-05-26
  • 罗列Linux发行版的基础目录名称命名法则及功用规定

    FHS:     Filesystem Hierarchy Standard http://refspecs.linuxfoundation.org/ http://refspecs.linuxfoundation.org/fhs.shtml     /bin:所有用户可用的基本命令程序文件;     /sbin:工系统管理使用的工具程序;     /boo…

    Linux笔记 2018-05-13
  • AWK

    ### awk awk分为nawk,gawk 我们shell中常用的awk 其版本是gawk “`AWK会把file中的每一行(记录/可以指定分隔符),读入空间中并默认以空白(TAB\space\\n)等分割成几个字段,每个字段用$#表示$0表示整行本身“` awk [Option] ‘program’ file option -F:…

    Linux笔记 2018-05-20
  • 详细说明进行管理工具htop、vmstat等相关命令,并举例

    htop命令: 选项: -d #:指定延迟时间间隔 -u UserName:仅显示指定用户的进程 -s COLUME:以指定字段进行排序 htop -u root -d 10 PID:进程ID USER:用户名 PRI:优先级 NI:nice值 VIRT:Size in memory of the total program size RES:所使用的物理内…

    2018-06-15