文件管理
概述
文件类型
普通文件(-) 存放数据,程序等信息的文件,一般为文本文件和二进制文件
目录文件(d) 文件系统中一个目录所包含的目录文件,包括文件名和子目录名
链接文件(l) 可以在不同的文件系统之间建立链接关系来实现对文件的访问
设备文件(c) 把IO设备映射为一个设备文件
管道文件(p) 主要用于在进程间传递数据
文件权限
读【r】 允许读取文件
写【w】 允许写、修改和删除某个文件
执行【x】允许执行某个文件
目录和文件
查看当前目录
pwd 参数
-P :显示出确实的路径,而非使用连结 (link) 路径
查看当前目录的文件/目录列表
ls 参数
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
创建目录
mkdir 参数 目录名
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
删除空的目录
rmdir 参数 目录名
-p :从该目录起,一次删除多级空目录
删除文件或者目录
rm 参数 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
移动文件与目录,或修改名称
mv 参数 来源档 目标档
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
复制文件或目录
cp 参数 来源档 目标档
-r:递归持续复制,用于目录的复制行为
文件属性
改变所属群组
chgrp 参数 属组名 文件名
-R:递归更改文件属组,该目录下的所有文件的属组都会更改
改变文件拥有者
chown 参数 用户名 文件名
-R:递归更改文件属组,该目录下的所有文件的属组都会更改
改变文件属性【数字设定法】
chmod 777 文件名
每种身份(owner/group/others)各自的三个权限
r【4】w【2】x【1】
文件编辑工具
简介
vi或vim是Linux最常用的文本编辑器工具,vi或vim没有图形界面编辑器那样单机鼠标的简单操作
但vi编辑器在系统管理、服务器管理中,永远是图形界面的编辑器所不能比的
安装vim命令
yum update
yum -y install vim*
流程
vim 文件:进入命令模式
按下i/a/o:进入输入模式
按下ESC:进入命令模式
按下::进入底线命令模式【:wq保存并退出】
命令模式
dd:删除整行【5dd:删除5整行】
u:撤销操作
ctrl+r:反撤销
yy:复制整行【5yy复制5行】
p:粘贴【dd或yy的】
gg:到达文本开始
G:到达文本末尾
shift+^:到达行头
shift+$到达行尾
n:显示搜索命令定位到下一个字符
N:显示搜索命令定位到上一个字符
底线命令模式
:wq 保存退出
:wq! 强制保存退出
:w 保存
:q 退出
:q! 强制退出
/字符串 长上到下搜索字符串
?字符串 从下至上搜索字符串
:set nu 显示行号
:set nonu 不显示行号
查看文件内容
显示文件内容
cat 参数 文件路径
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
倒着显示文件内容
tac 文件路径
显示行号
nl 参数 文件路径
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
一页一页的显示文件内容
more 文件路径
在 more 这个程序的运行过程中,你有几个按键可以按的:
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用
往前翻页
less 文件路径
less运行时可以输入的命令有:
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
只看头几行
head 参数 文件路径
-n :后面接数字,代表显示几行的意思
只看尾几行
tail 参数 文件路径
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
搜索命令
搜索文件内容
grep 参数 搜索的内容 文件路径
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择—仅列出没有“关键词”的行
-E :开启扩展(Extend)的正则表达式
搜索文件
按文件名:根据名称查找/目录下的.txt文件
find /opt/ -name *.txt
按拥有者:查找/opt目录下,用户名称为jkw的文件
find /opt/ -user jkw
find 路径 寻找条件 内容
-name 匹配名称
-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)
-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前)
-atime -n +n 匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前)
-ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前)
-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件
--type b/d/c/p/l/f 匹配文件类型(后面的字幕参数依次表示块设备、目录、字符设备、管道、 链接文件、文本文件)
-size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于 50KB 的文件)
-prune 忽略某个目录 -exec …… {}\; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)
打包和压缩
tar.gz
tar -zcvf opt.tar.gz w.info f.info【打包】
tar -zxvf opt.tar.gz【解包】
tar -zxvf opt.tar.gz -C /usr/local【解包到指定目录】
tar 参数 文件
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩 Gzip
-x 解包.tar文件
gz
gzip w.info【压缩】
gunzip w.info.gz【解压文件】
zip
安装uzip
yum install --assumeyes unzip
把文件解压到当前目录下
unzip test.zip
如果要把文件解压到指定的目录下,需要用到-d参数
unzip -d /temp test.zip
将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件
unzip -o test.zip -d /tmp/