2.1、Linux发行版的系统目录名称命名规则以及用途。
在Linux系统中,目录被组织成一个:单根倒置树结构,文件系统从根目录开始,用/来表示。文件名称区分大小写(大小写敏感还需要看具体的文件系统格式),以.开头的为隐藏文件,路径用/来进行分割(windows中使用\来分割),文件有两个种类:元数据与数据本身.在操作linux系统时,通常会遵循以下的分层结构规则:
LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)
/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命令,可以简单的查看元数据,包括时间,所有者,权限,大小等。
stat 命令,可以详细的查看元数据,包括时间,所有者,权限,大小等,也包括3个time时间(atime,mtime,ctime)
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:
读取文件,会改变atime。例如more 文件。
修改文件内容,会改变mtime。例如vim 文件。
更改文件属性,会改变ctime。例如chmod 文件。
2.3、总结软连接和硬连接区别,并用实例操作说明。
软链接,ln -s filename [linkname],软链接的大小就是指向的文件的路径,类似于windows中的快捷方式。软链接可以跨设备跨分区。可以针对文件夹创建。
硬链接,ln filename [linkname ],在一个分区里面针对同一文件的多个名字,不能跨设备/分区,且不支持文件夹(否则会产生循环现象)。
软链接和硬链接的区别:
|
硬链接 |
软链接 |
命令实现 |
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
查看属性:ls
用法:ls [options] [files_or_dirs]
查看文件状态:stat
创建空文件和刷新时间
格式:touch [OPTION]... FILE...
移动和重命名文件
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
tree 显示目录树
mkdir 创建目录
rmdir 删除空目录
rm -r 递归删除目录树
2.5、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符
cp /etc/profile /tmp/
vim /tmp/profile
先查找
/^[[:blank:]]\+ //^表示行首,[:blank:]表示水平空白,+表示到末
再替换,全局替换
格式:s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式。
修饰符:
i 忽略大小写
g 全局替换,默认情况下,每一行只替换第一次出现
gc 全局替换,每次替换前询问
因此,这里替换用如下语句后,回车。
:%s/^[[:blank:]]\+//g
2.6、在vim中设置tab缩进为4个字符
永久设置:
echo "set tabstop=4" >> /etc/vimrc