千家信息网

(二)Linux系统目录,文件管理及文本编辑工具vim

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,1. Linux系统目录版本命名规则:内核版本由三部分组成:主版本号、次版本号、末版本号开发版本:第二位数字是奇数稳定版本:第二位数字是偶数文件与目录命名规则:文件名最长255字节,包括路径在内最长4
千家信息网最后更新 2025年02月05日(二)Linux系统目录,文件管理及文本编辑工具vim

1. Linux系统目录

版本命名规则:
内核版本由三部分组成:主版本号、次版本号、末版本号开发版本:第二位数字是奇数稳定版本:第二位数字是偶数
文件与目录命名规则:

文件名最长255字节,包括路径在内最长4095字节,且大小写敏感。

文件名:字母、数字、下划线、圆点普通文件 - (黑色)目录文件 d (蓝色)链接文件 l  (亮蓝色)特殊文件 cd (黄色)配置文件 .conf日志文件 .log系统日志文件 .syslog系统配置文件 .cfg系统文件  .i386脚本文件  .sh
文件系统
文件和目录组织成一个单根倒置树结构

我们也可以用tree命令查看树状结构

/boot这个目录下包含系统启动文件(boot loader),例如Grub,Lilo或者Kernel,以及initrd,system.map等配置文件。这个目录下包含内核、固件以及系统相关文件。/sbin包含系统操作和运作所必需的二进制文件以及管理工具,主要就是可执行文件。类似WINDOWS下的EXE文件。/bin包含单用户模式下的二进制文件以及工具程序,比如cat,ls,cp这些命令。/lib包含/sbin和/bin目录下二进制文件运行所需要的库文件。/dev内含必需的系统文件和驱动器。/etc内含系统配置文件,其下的目录,比如 /etc/hosts, /etc/resolv.conf, nsswitch.conf, 以及系统缺省设置,网络配置文件等等。以及一些系统和应用程序的配置文件。/home每一个用户的在这个目录下,都会单独有一个以其用户名命令的目录,在这里保存着用户的个人设置文件,尤其是以 profile结尾的文件。但是也有例外,root用户的数据就不在这个目录中,而是单独在根路径下,保存在单独的/root文件夹下。/media一个给所有可移动设备比如光驱、USB外接盘、软盘提供的常规挂载点。/mnt临时文件系统挂载点。比如,你并不想长期挂载某个驱动器,而是只是临时挂载一会U盘烤个MP3之类的,那么应该挂载在这个位置下。/opt在Linux系统中,这个目录用到的并不多,opt是 可选系统程序包(Optional Software Packages)的简称。这个目录在UNIX系统,如Sun Solaris用途要广泛的多。/usr用户数据目录,包含了属于用户的实用程序和应用程序。这里有很多重要的,但并非关键的文件系统挂载这个路径下面。在这里,你会重新找到一个 bin、sbin 和 lib目录,其中包含非关键用户和系统二进制文件以及相关的库和共享目录,以及一些库文件。/usr/sbin包含系统中非必备和并不是特别重要的系统二进制文件以及网络应用工具。/usr/bin包含用户的非必备和并不是特别重要的二进制文件。/usr/lib保存着/usr/sbin以及/usr/bin中二进制文件所需要的库文件。/usr/share"平台无关"的共享数据目录。/usr/local是/usr下的二级目录,这里主要保存着包含系统二进制文件以及运行库在内的本地系统数据。/var这个路径下通常保存着包括系统日志、打印机后台文件(spool files)、定时任务(crontab)、邮件、运行进程、进程锁文件等。这个目录尤其需要注意进行日常的检查和维护,因为这个目录下文件的大小可能会增长很快,以致于很快占满硬盘,然后导致系统便会出现各种奇奇怪怪的问题。/tmp顾名思义,这是一个临时文件夹,专门用来保存临时文件,每次系统重启之后,这个目录下的"临时"文件便会被清空。同样,/var/tmp 也同样保存着临时文件。两者唯一的不同是,后者 /var/tmp目录保存的文件会受到系统保护,系统重启之后这个目录下的文件也不会被清空。/proc这个目录是驻留在系统内存中的虚拟(psuedo,伪)文件系统,其中保存的都是文本格式的系统内核和进程信息。

2. 文件元数据信息及查看

文件系统中的数据分两类1) 数据(data):普通文件内的数据2) 元数据(metadata):用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者、以及文件数据块的分布信息,具体时间查看等等查看文件的元数据可以用**stat**命令:

File 文件名称Size 文件大小Blocks 占用的磁盘块数IO Block IO块大小regular file 这里是显示文件的类型,这是一个普通文件Device 所在设备Inode  Inode节点号Links  被链接的次数Access (1) 访问权限Uid   uid号和属主Gid   gid号和属组Access (2) 文件最近一次的访问时间Modify  文件的修改时间Chang  文件的改变时间如若想改变时间戳信息,可以使用**touch**命令

**touch**命令可用来更新访问和修改时间,也可以用来创建新文件(请灵活熟练使用help或man帮助)想修改自己想要的时间戳信息可以使用**touch -t 命令**以下是一个实例:先使用touch创建一个空文件f1.txt,并且用**stat**命令查看元数据

我们使用**touch -t**命令修改成自己想要的时间,并使用**stat**查看

我们发现时间已经改变了,并且change(文件修改时间)也变成了我们修改文件的时间```

3. 软链接,硬链接

在搞清楚软连接硬连接之前,我们得先知道一个概念:索引节点(inode -- index node)inode表中包含了文件系统所有文件列表一个inode包含有关文件的原信息,简明扼要的说,人是通过文件名来引用文件,而目录则是目录下的文件名与文件inode号之间的映射

如上图所示,inode表结构也是树结构,类似search tree我们可以使用**ll -i**来看文件的inode说到文件,我们可以使用一个叫做**cp**的命令来对文件或文件夹进行复制,可以使用help或man帮助来查看cp的所有使用方法但是使用cp命令是把文件重新复制了一遍,并用一个新的inode去指向它,我们可以使用软硬链接的方式不去复制物理文件

硬链接

创建硬链接会增加额外的记录项以引用文件,对应同一文件系统上的一个物理文件,inode号一致,创建时链接数递增如若删除,链接数递减,当链接数为零时,文件被删除我们可以使用命令**ln**来创建硬链接

我们发现当没有创建硬链接时,链接数只有1,当创建了硬链接,两个inode号相同,并且链接数增加到了2

符号(软)链接

一个符号链接指向另一个文件,符号链接的内容是它应用文件的名称,可以对目录进行且可以跨分区,而且我们可以显而易见的知道,如若原文件被删除,则链接失效我们可以使用**ln -s**来创建软连接

我们清楚地看见当f1.txt被删除了,链接则失效,但是链接只是指向路径,所以如果f1.txt再回来,链接依旧有用

4. Linux文件管理类命令

linux文件管理类命令很多, 大概常用的有如下:ls: 列出目录cd:切换目录pwd:显示目前的目录mkdir:创建一个新的目录rmdir:删除一个空的目录cp : 复制文件或目录rm : 移除文件或目录mv: 移动文件与目录,或修改文件与目录的名称

5. Vim的一些小练习

如果用习惯了vi想改成vim,可以使用alias vi=vim命令,想永久更改可以看我上一篇。

1) 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符******使用vim进入/tmp/profile,输入 :1s/ //g即可命令解释:1代表第一行,s代表substitute替换,之后代表把空格转换成什么都没有,既是删除空格,g代表整行有满足条件的就替换2) 在vim中设置tab缩进为4个字符*想改变vim中的格式设置,可以进入.vimrc里更改**set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab这种方法需要重启vim或者你可以在使用vim进入文件之后,输入:set ts=4:set expandtab:%retab!
0