linux学习笔记之linux文件管理
#文件系统及Shell的基本概念
#文件及目录操作命令
#VI的使用
#软件包的管理
一、文件系统及Shell的基本概念
1.文件系统的含义
文件系统是用来管理和组织保存在磁盘驱动器上数据的系统软件
2.Linux的文件系统
Linux系统采用虚拟文件系统技术(VFS)、结构采用倒立树型、VFS使Linux支持以下文件系统:
EXT2: 二次扩展
EXT3: 三次扩展
SWAP: 交换文件系统
FAT、FAT32
NTFS (默认不支持,需要特定的模块)
VFAT: 虚拟FAT
SYSV: Unix的文件系统
HPFS: OS/2的文件系统
ISO9660: 光盘文件系统
NFS: 网络文件系统
3.Linux中的文件分类
(1)普通文件
文本文件:采用ASCII编码方式,可编辑,可修改
二进制:不可查看,不可修改
(2)目录文件
存放的内容是目录中的文件名和子目录名
(3)设备文件(/dev)
用于用户访问物理设备所用,分为块设备和字符设备文件
(4)链接文件
软链接文件:目标文件和链接文件可以跨越索引点,相当于文件的快捷方式
删除原文件,则符号链接文件失去意义
删除符号链接文件,不影响原文件
硬链接文件:链接同一索引点中的文件,相当文件的副本
两个文件指向同一存储区,内容、长度相同
删除一个文件不影响,其它文件
(5)管道文件
FIFO缓存队列
4.Shell的主要功能
~命令行解释
交互模式
后台运行
~命令的多种执行顺序
~命令替换 (` `)
~I/O重定向(>,>>,<,<<)
~管道(|)
~通配符(*,?,[],[!])
~系统环境维护
~Shell编程
~历史记录(history)
~自动补齐(TAB)
5.Shell的命令解释过程
二、文件操作命令
1.pwd
功能:显示当前目录
实例:
?# pwd
2.cd
功能:改变当前目录
实例:
?# cd /usr/sbin (进入/usr/sbin)
# cd ../u1 (进入父目录下面的u1目录)
# cd ..(返回父目录)
# cd (进入用户主目录)
# cd ~ (进入用户主目录)
3.mkdir
功能:建立目录
格式:mkdir [参数] <目录名>
参数:-m 属性值:指定目录的属性 (r、w、x或4、2、1)
-p :循环建立目录
实例:
# mkdir d1 (在当前目录下建立d1子目录)
# mkdir /d1/d2 /d1/d3 /d1/d4(同时在/d1目录中建立d2,d3,d4子目录)
# mkdir –p /d1/d2 (在/d1目录中建立d2子目录,先建d1)
4.rmdir
功能:删除空目录
格式:rmdir [参数] <目录名>
参数:-p:循环删除
实例:
# rmdir a1 (删除当前目录下的a1子目录)
# rmdir /etc/a2 (删除/etc下a2子目录)
# rmdir -p /a1/a2
5.ls
功能:显示目录中的文件及子目录的名称
格式:ls [参数] [文件名]
参数:-a: 显示所有文件(包括隐含文件,以“.”开头的文件为隐含文件)
-l: 以长格式显示文件名及目录名(显示文件的详细信息)
-F: 显示文件名,同时显示类型
-R: 显示目录中所有文件及子目录中的文件结构
-t: 按照修改时间排序显示
-s: 显示文件的大小,以block为单位
-S: 按照文件大小排序显示
-m: 分列显示文件名
实例:
# ls
# ls /bin/
# ls grub.conf 查找当目录下是否存在grub.conf
# ls -l
# ls --help 显示ls的详细的帮助信息
# ls -a
6.cp
功能:复制文件
格式:cp [参数] <源路径> <目标路径>
参数:-f:文件在目标路径中存在时,则直接覆盖
-i:文件在目标路径中存在时, 提示是否覆盖
-r:复制指定中所有内容和结构
-b:生成覆盖文件的备份
-a:保持文件原有属性
实例:
# cp /etc/* /a1/ 把/etc下的所有文件复制到a1目录中
# cp /bin/ls /dir1 /bin/ls文件到/目录取名为dir1
# cp -f /sbin/* /exe/ 直接将/sbin下的所有文件到/exe目录中
# cp -r /soft /abc/
7.rm
功能:删除文件
格式:rm [参数] <文件名>
参数:-f: 不提示确认删除
-i: 提示确认删除
-r: 递归删除
实例:
# rm /m1/f1 删除/m1目录下的f1
# rm –f /m1/* 删除m1目录下的所有文件
#rm -rf /m1 强制删除一个目录
8.mv
功能:移动文件、重命名文件
格式:mv [参数] <源路径> <目标路径>
参数:-i: 如果存在文件重名则提示是否覆盖
-b: 建立覆盖文件的备份
-f: 如果存在文件重名则直接覆盖
实例:
# mv /m1/f1 /m2/ 移动/m1目录下f1文件到/m2目录下
# mv f1 f2 将当前目录下的f1文件改名f2
# mv -f /d1/* /d2/ 移动/d1中的所有文件到/d2目录中
9.file
功能:检测文件类型
格式:file [参数] <文件名>
参数: -z:检测压缩包文件
-L:跟随符号链接
实例:
# file /etc/lilo.conf
# file -z 1.gz
10.显示文本文件内容
(1) cat
格式:cat [参数] <文件名>
参数:-n 显示行号
-b 显示行号,但空白行不显示行号
实例:
#cat /etc/inittab
#cat -n /d1/f1 /d1/f2 >txt1
(2)more
格式:more [参数] <文件名>
实例:
# ls|more 将ls的显示结果输入到more中
# more /etc/rc.d/rc 显示/etc/rc.d/rc文件的内容
说明:可以用回车键向下换行,空格键向下换页 按Q键退出more
(3)less
实例:
# ls|less 将ls的显示结果输入到less中
# less /var/named/localhost.zore
说明:Page up /Page Down键上下滚动、Q键退出
(4)head、tail
实例:
# head -20 /a1 显示a1中前20行
# tail -20 /a1 显示中a1后20行
(5)cut
功能:显示文件中指定数目的字符、字节或字段
格式:#cut 参数 数字 文件
参数:-c 以字符为单位
-b 以字节为单位
-f 以字段为单位
-d 指定分隔符
实例:
#cut -c 3 /etc/passwd
#cut -f 1-6 -d :/etc/passwd
#cut -b -8 /etc/passwd
11.搜索文件
(1) find
格式:find 查找路径 查找条件
条件: -name “文件名”:查找指定名称文件
-lname “文件名”:查找指定文件所有的接文件
-user 用户名:查找指定用户拥有的文件
-group 组名:查找指定组拥有的文件
-links n:查找拥有n个链接的文件
-mtime n:查找在N天前被修改过的文件
-atime n:查找在N天前被访问过的文件
-type d/f/b/l/p:查找指定类型的文件
-s n[bcwkMG]:查找指定大小的文件
-empty:查找为空的文件
-perm mode:查找指定属性的文件
-exec command {}\; 查找指定的文件并执行指定的命令
-newer 文件名 查找比指定文件新的文件
实例:
# find / -name “named*”
# find / -user root
#find ./ -type d -exec chmod 755 {} \;
#find . –empty
#find . -perm 644
#find . -newer oldfile ! -newer newfile
(2) whereis
功能:查找二进制可执行、手册及源文件
实例:
# whereis umount
(3) locate
功能:在资料库中查找指定的文件
格式:#locate [参数] 文件名
参数:
-u /-U 建立资料库,-u 会由根目录开始,-U 则可以指定开始位置
-e <目录1…> 排除指定目录在寻找范围之外
-l <0/1> 设置安全级别,1启用安全模式,0关闭安全模式
-f <文件类型> 在资料库中排除特定类型文件排除在外
-n 至多显示n个输出
-r 使用正规运算式做寻找的条件
-o 指定资料库存的名称。
-d 指定资料库的路径
实例:
#locate -u
#locate chdrv
#locate -n 100 a.out
(4) which
功能:查找指定命令文件
格式:#which 文件名
实例:
#which mount
12.grep
功能:在文本文件中查找匹配的字符串
格式:#grep [参数] “字符串” 文件
参数: -? 同时显示匹配行上下的?行
-b 在匹配行前面打印该行所在的块号
-c 只打印匹配的行数,不显示匹配的内容
-f File 从文件中提取模板,空文件中包含0个模板,所以什么都不匹配
-h 当搜索多个文件时,不显示匹配文件名前缀
-I 忽略大小写差别
-q 取消显示,只返回退出状态。0则表示找到了匹配的行
-l 打印匹配模板的文件清单
-L 打印不匹配模板的文件清单
-n 在匹配的行前面打印行号
-s 不显示关于不存在或者无法读取文件的错误信息
-v 反检索,只显示不匹配的行
-w 如果被\<和\>引用,就把表达式做为一个单词搜索
