2.1、Linux发行版的系统目录名称命名规则以及用途。

在Linux系统中,目录被组织成一个:单根倒置树结构,文件系统从根目录开始,用/来表示。文件名称区分大小写(大小写敏感还需要看具体的文件系统格式),以.开头的为隐藏文件,路径用/来进行分割(windows中使用\来分割),文件有两个种类:元数据与数据本身.在操作linux系统时,通常会遵循以下的分层结构规则:

LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)

文件管理与VIM_第1张图片

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序 ,给root账户使用。

/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

/lib64:专用于x86_64系统上的辅助共享库文件存放位置

/etc:配置文件目录

/home/USERNAME:普通用户家目录

/root:管理员的家目录

/media:便携式移动设备挂载点

/mnt:临时文件系统挂载点

/dev:设备文件及特殊文件存储位置

b: block device,随机访问

c: character device,线性访问

/opt:第三方应用程序的安装位置

/srv:系统上运行的服务用到的数据

/tmp:临时文件存储位置

/usr: universal shared, read-only data

bin: 保证系统拥有完整功能而提供的应用程序

sbin: 给root账户使用。

lib:32位使用

lib64:只存在64位系统

include: C程序的头文件(header files)

share:结构化独立的数据,例如doc, man等

local:第三方应用程序的安装位置

bin, sbin, lib, lib64, etc, share

/var: variable data files

cache: 应用程序缓存数据目录

lib: 应用程序状态信息数据

local:专用于为/usr/local下的应用程序存储可变数据

lock: 锁文件

log: 日志目录及文件

opt: 专用于为/opt下的应用程序存储可变数据

run: 运行中的进程相关数据,通常用于存储进程pid文件

spool: 应用程序数据池

tmp: 保存系统两次重启之间产生的临时数据

/proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置



2.2、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息?

一个文件包括“元数据”与“数据本身”。

meta data(元数据),属性等,包括时间,所有者,权限,大小等。

data(数据本身)。

  • atime,access time 访问时间,读取文件内容,则该时间便会更新。比如对这个文件使用less命令或者more命令。(ls、stat这样的命令不会修改文件访问时间)
  • mtime,modify time 修改时间, 文件内容发生改变(数据data),同时它也是默认时间(就是ll看到的时间)。例如使用vim等工具更改了文件内容并保存后,文件修改时间则发生了变化。
  • ctime,change time 改变时间, 元数据发生改变,meta data,也包括data。比如使用chmod命令更改文件属性,或者执行其他命令时隐式的附带更改了文件的属性若文件大小等。

ll命令,可以简单的查看元数据,包括时间,所有者,权限,大小等。

clip_image002

stat 命令,可以详细的查看元数据,包括时间,所有者,权限,大小等,也包括3个time时间(atime,mtime,ctime)

文件管理与VIM_第2张图片

linux的touch命令用来修改文件时间戳,或者新建一个不存在的文件。

touch file,如果当前目录内无该文件,则以当前时间创建空文件;如果当前目录内有该文件,则以当前时间修改文件时间戳(访问时间和修改时间);

touch -t YearMonthDateHourMinute file,指定时间修改文件时间戳,时间方式如201402232200。 [[CC]YY]MMDDhhmm[.SS]

这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时间.由于系统的限制,早于1970年1月1日的时间是错误的。

touch -a file,只修改访问时间(access timestamp)

touch -m file,只修改修改时间(modify timestamp)

find . -name "*" -print0 | xargs -0 -I '{}' touch -r '{}' -d '-3 month' '{}',对查找的所有文件,修改时间戳,减 3 个月。

用touch 修改atime或者mtime:

文件管理与VIM_第3张图片

读取文件,会改变atime。例如more 文件。

修改文件内容,会改变mtime。例如vim 文件。

更改文件属性,会改变ctime。例如chmod 文件。


2.3、总结软连接和硬连接区别,并用实例操作说明。

软链接,ln -s filename ​​[linkname],软链接的大小就是指向的文件的路径,类似于windows中的快捷方式。软链接可以跨设备跨分区。可以针对文件夹创建。

文件管理与VIM_第4张图片

硬链接,ln filename [linkname ],在一个分区里面针对同一文件的多个名字,不能跨设备/分区,且不支持文件夹(否则会产生循环现象)。

文件管理与VIM_第5张图片

软链接和硬链接的区别:

 

硬链接

软链接

命令实现

ln filename ​​[linkname]

ln -s filename ​​[linkname]

本质

同一个文件,多个名字

不同文件,inode不同

跨分区/设备

×

对目录创建

×

相互关系

平等关系,大不了连接数-1

有依赖关系,删了原始文件,软链接会失效

inode number

相同

不同

链接数

会变化,增长/减少

不变

原始文件路径

原始文件路径,相对的是当前工作目录。

原始文件路径,相对的是软链接的路径,而不是相对于当前工作目录

文件类型

和源文件一致

l开头的软链接


2.4、Linux上的文件管理类命令都有哪些,其常用的使用方法及示例。

正文

复制:cp

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

cp SRC DEST

clip_image007

查看属性:ls

用法:ls [options] [files_or_dirs]

clip_image008

查看文件状态:stat

文件管理与VIM_第6张图片

创建空文件和刷新时间

格式:touch [OPTION]... FILE...

clip_image010

移动和重命名文件

mv [OPTION]... [-T] SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY SOURCE...

文件管理与VIM_第7张图片

tree 显示目录树

mkdir 创建目录

rmdir 删除空目录

rm -r 递归删除目录树


2.5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符

cp /etc/profile /tmp/

vim /tmp/profile

先查找

/^[[:blank:]]\+ //^表示行首,[:blank:]表示水平空白,+表示到末

文件管理与VIM_第8张图片

再替换,全局替换

格式:s/要查找的内容/替换为的内容/修饰符

要查找的内容:可使用模式

替换为的内容:不能使用模式。

修饰符:

i 忽略大小写

g 全局替换,默认情况下,每一行只替换第一次出现

gc 全局替换,每次替换前询问

因此,这里替换用如下语句后,回车。

:%s/^[[:blank:]]\+//g

文件管理与VIM_第9张图片


2.6、在vim中设置tab缩进为4个字符

永久设置:

echo "set tabstop=4" >> /etc/vimrc

文件管理与VIM_第10张图片