Linux文件管理

文件管理

1. 自动文件系统挂载
2. 文件系统
3. 文件命名规则
4. 文件系统结构
5. Linux下的文件类型
6. 显示当前工作目录
7. 更改目录cd
8. 列出目录内容
9. 文件通配符
10. 预定义的字符类
11. 创建空文件和刷新时间
12. 复制文件和目录cp
13. 移动和重命名文件
14. 删除
15. 编辑文件vi 和vim

1. 自动文件系统挂载

- 自动文件系统挂载:如果开机直接进入命令界面,系统不会自动挂载的,需要手动挂载。
- systemctl start autofs	启动服务
- systemctl enable autofs 开机自启动服务

2. 文件系统

- 文件和目录被组织成一个单根倒置树结构
- 文件系统从根目录下开始,用“/”表示
- 根目录系统(rootfs):root filesystem
- 文件名称"区分大小写"
- 以 . 开头的文件为隐藏文件
- 文件有两种数据类型:
	元数据:metadata
	数据:data
- 文件系统分层结构:LSB Linux Standard Base
- FHS:(Filesystem Hierarchy Standard)
	http://www.pathname.com/fhs/

3. 文件命名规则

- 文件名最长255个字节
- 包括路径在内文件名称最长4095个字节
- 蓝色 --> 目录	绿色 --> 可执行文件	红色 --> 压缩文件
	浅蓝色 --> 链接文件	灰色 --> 其他文件
- 除了斜杠和NUL,所有字符都有效。但使用特殊字符的目录名和文件
	不推荐使用,有些字符需要用引号来引用它们。
- 标准Linux文件系统(如ext4),文件名称大小写敏感。
	例如:MAIL,Mail,mail,mAiL

4. 文件系统结构

在这里插入图片描述

- /usr:universal shared,read-only date
	bin:保证系统拥有完整功能而提供的应用程序
	sbin:
	lib:32位使用
	lib64:只存在64位系统
	include:C程序的头文件(header files)
	share:结构化独立的数据,例如doc,man等
	local:第三方应用程序的安装位置
		bin,sbin,lib,lib64,etc,share
- 二进制程序:/bin,/sbin,/usr/bin,/usr/sbin,
		/usr/local/bin,/usr/local/sbin
- 库文件:/lib,/lib64,/usr/lib,/usr/lib64,
		/usr/local/lib,/usr/local/lib64
- 配置文件:/etc,/etc/DIRECTORY,/usr/local/etc
- 帮助文件:/usr/share/man,/usr/share/doc,
		/usr/local/share/man,/usr/local/share/doc

5. Linux下的文件类型

-:普通文件
d:目录文件
b:块设备
c:字符设备
l:符号链接文件
p:管道文件pipe
s:套接字文件socket

6. 显示当前工作目录

每个shell和系统进程都有一个当前工作目录
CWD:current work directory
显示当前shell CWD的绝对路径
	pwd:printing working directory
		-P 显示真实物理路径
		-L 显示链接路径(默认)

7. 更改目录cd

cd 改变目录:
	使用绝对或相对路径:
		cd /home/centos6/
		cd home/centos6
	切换至父目录:		 cd ..
	切换至当前用户主目录: cd
	切换至以前的工作目录: cd -
选项:-P
相关的环境变量:
	PWD:当前目录路径
	OLDPWD:上一次目录路径

8. 列出目录内容

列出当前目录的内容或指定目录
用法:ls [options] [files_or_dirs]
示例:
	ls -a 包含隐藏文件
	ls -d 只显示当前文件夹
	ls -l 显示额外的信息
	ls -R 目录递归通过
	ls -ld 目录和符号链接信息
	ls -1 文件分行显示
	ls -S 按从大到小排序
	ls -t 按mtime排序
	ls -u 配合-t选项,显示并按atime从新到旧排序
	ls -U 按目录存放顺序显示
	ls -X 按文件后缀排序

9. 文件通配符

* 匹配零个或多个字符	例:ls *.cfg
? 匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+ 当前工作目录
~- 当前一个工作目录
[0-9] 匹配数字范围
[a-z] 字母
[A-Z] 字母
[wang] 匹配列表中的任何一个字符
[^wang] 匹配列表中的所有字符以外的字符
	例:ll f[wang]  是显示f开头后一个字符为wang中的任意一个字符

10. 预定义的字符类:man 7 glob

[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]:任意大写字母
[:alpha:]:任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
	例:ll [[:lower:]]因为[:lower:]表示a-z,所以必须再加一个方括号才可以。
	
练习:
1,显示/var目录下所有以l开头,以一个小写字母结尾,
	且中间出现至少一位数字的文件或目录
		ls -d /var/l*[0-9]*[[:lower:]]
2,显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
		ls -d /etc/[[:digit:]]*[^[:digit:]]
3,显示/etc/目录下以非字母开头,后面跟一个字母及其他任意长度任
	意字符的文件或目录
		ls -d /etc/[^[:alpha:]][[:alpha:]]*
4,显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,
	其他为任意字符的文件或目录
		ls -d /etc/rc[0-6]*
5,显示/etc目录下,所有以.d结尾的文件或目录
		ls -d /etc/*.d
6,显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
		ls -d /etc/[mnrp]*.conf
7,只显示/root下的隐藏文件和目录
		ls -d /root/.[^.]*
8,只显示/etc下的非隐藏目录
		ls -d /etc/[^.]*/

11. 创建空文件和刷新时间

touch命令:
	touch [OPTION]...FILE...
		-a 仅改变atime和ctime
		-m 仅改变mtime和ctime
		-t [[CC]YY]MMDDhhmm[.ss]
			指定atime和mtime的时间戳
		-c 如果文件不存在,则不予创建

12. 复制文件和目录cp

在这里插入图片描述

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC DEST

SRC是文件:
	如果目标不存在:
		新建DEST,并将SRC中内容填充至DEST中
	如果目标存在:
		如果DEST是文件:将SRC中的内容覆盖至DEST中
			基于安全,建议为cp命令使用-i选项
		如果DEST是目录:在DEST下新建与原文件同名的文件,
			并将SRC中内容填充至新文件中

cp常用选项
	-i:覆盖前提示
	-n:不覆盖,注意两者顺序
	-r,-R:递归复制目录及内部的所有内容
	-a:归档,相当于-dR --perserv=all
	-d:--no-dereference --perserv=links 不复制原文件,只复制链接名
	--perserv[=ATTR_LIST]:
		mode:权限
		ownership:属主属组
		timestamp:保留时间戳
		links:
		xattr
		context
		all
		例:cp --perserv=timestamp ~wang/f1 /app/f222
	-p:等同--perserv=mode,ownership,timestamp
	-v:--verbose
	-f:--force
	-u:--update只能复制源比目标更新文件或目标不存在的文件
	--backup=numbered:目标存在,覆盖前先备份加数字后缀
		例:cp /etc/issue f1 --backup=numbered

练习:
1,定义别名命令baketc,每天将/etc/目录下所有文件,
	备份到/testdir独立的子目录下,并要求子目录格式
	为backupYYYY-mm-dd,备份过程可见。
	cp -av /etc/ /app/backup'date +%F'
2,创建/testfir/rootdir目录,并复制/root下所有
	文件到该目录内,要求保留原有权限
	cp -a /root/ /app/rootdir

13. 移动和重命名文件

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
	常用选择:
		-i:交互式
		-f:强制
rename file filee1 file:替换文件file文件名为filee1

14. 删除

rm [OPTION]... FILR...
常用选项:
	-i:交互式
	-f:强制删除
	-r:递归
	--no--perserve-root
示例:
	rm -rf /

15. 编辑文件vi 和vim

vi 和vim 的区别:它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。

vim的这些优势主要体现在以下几个方面:
1、多级撤消
	我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。
2、易用性
	vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。
3、语法加亮
	vim可以用不同的颜色来加亮你的代码。
4、可视化操作
	就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
5、对vi的完全兼容

某些情况下,你可以把vim当成vi来使用。
	vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。
	vi使用于文本编辑,但是vim更适用于coding。 
vi有3个模式:插入模式、命令模式、低行模式。 
	插入模式:在此模式下可以输入字符,按ESC将回到命令模式。 
	命令模式:可以移动光标、删除字符等。 
	低行模式:可以保存文件、退出vi、设置vi、查找等功能
			(低行模式也可以看作是命令模式里的)。 

一、打开文件、保存、关闭文件(vi命令模式下使用)
	vi filename    //打开filename文件 
	:w    		   //保存文件 
	:w vpser.net   //保存至vpser.net文件 
	:q       	   //退出编辑器,如果文件已修改请使用下面的命令 
	:q!		       //退出编辑器,且不保存 
	:wq            //退出编辑器,且保存文件 

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,
				按ESC键可退出插入模式) 
	a	//在当前光标位置的右边添加文本 
	i	//在当前光标位置的左边添加文本 
	A	//在当前行的末尾位置添加文本 
	I	//在当前行的开始处添加文本(非空字符的行首) 
	O	//在当前行的上面新建一行 
	o	//在当前行的下面新建一行 
	R	//替换(覆盖)当前光标位置及后面的若干文本 
	J	//合并光标所在行及下一行为一行(依然在命令模式)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值