linux_ 文件管理以及文本管理基础
文件管理:
file: 显示文件类型
stat: 查看文件的详细状态
touch: 创建空文件
-a: 只改变访问时间
-m: 只改变修改文件
-t: 指定时间戳 [[CC]YY]MMDDhhmm[.ss]
-c: 文件不存在时,不创建新文件
使用文件编辑器创建文件
nano
vi
vim
删除文件:
rm:
-r: 递归删除
-f: 不提示直接删除
-i: 交互式删除,提示
复制文件:(cp,install)
cp: copy ,复制一个文件到一个文件,复制多个文件到一个目录
cp source_file destination_file
-r: 递归复制,用于复制目录及目录下的文件
-f: 强行复制,覆盖,不提示
-i: 交互式
-p: 保留源文件的权限,属主,时间戳
-a: 归档,常用于备份
-L: 如果源文件是链接文件,则复制链接的源文件
-P: 复制的是链接文件,而不是链接的源文件
mv: move 移动文件
mv source_file destination_file
install -d directory ... : 创建目录
文件名的查找:
whereis [-bmsu] filename
-b: 只查找二进制文件
-m: 只在说明文件路径 manual 查找
-s: 只查找 source 源文件
-u: 查找不在上述三个选项当中的其他特殊文件
使用locate查找文件:
非实时,模糊匹配,查找是根据全系统文件数据库进行的
updatedb : 手动执行生成文件数据库
locate因为使用数据库进行查找,速度较快
使用find 查找文件:
实时,精确,支持众多找找表准,遍历指定目录中的所有文件进行查找,速度慢
find [PATH] [option] [action]
查找路径: 默认为当前目录
查找标准: 默认为指定路径下的所有文件
处理动作: 默认为显示打印
查找文件时可以使用组合条件进行查找:
-a : and :find /tmp -name test.txt -a -type f
-o : or :find /tmp -name test.txt -o -name test1.txt
-not : 非 :find /tmp -not -name test.txt
匹配标准:
-name : find /path -name file_name :对文件名进行精确匹配
支持文件通配符:
*:
?:
[]:
-iname file_name :匹配查找时忽略大小写
-regexp pattern :基于正则表达式进行文件名匹配
-user : find /path -user username :根据属主查找
-group : 根据属组查找
-uid UID :
-gid GID :
-nouser : 查找没有属主的文件
-nogroup :
-type : find /path -type TYPE :查找文件类型为 type 的文件
f :普通文件
d
c
b
l
p
s
-size : 根据文件的大小来查找,默认单位是字节"Byte"
[+|-] 10[k|M|G]
+ : 表示查找大于指定大小的文件
- : 表示查找小于指定大小的文件
不带符号表示等于指定大小的文件
-mtime : 修改时间
-ctime : 改变时间
-atime : 访问时间
find / -mtime 0 : 查找当前时间到24小时之内的文件
+4: 查找大于等于5天前的文件
-4: 查找小于等于4天内的文件
4 : 查找4~5天之间的文件
-mmin : 使用分钟为单位进行查找
-cmin :
-amin :
-perm mode : 查找等于mode的文件
-perm /mode : 查找包含任一 mode 的文件
-perm -mode : 查找包含指定mode的文件,大于mode
使用find 查找文件可以同时对文件进行操作:
默认操作为:print :显示
-ls :类似ls -l的形式显示每一个文件的详细信息
-ok COMMAND {} \; : 每一个操作需要用户确认,交互
-exec COMMAND {} \; : 操作不需要用户确认
-ok,-exec为关键字
{} : 引用找到的文件
文本管理:
查看文本:
cat:
-n: 显示行号
-E: 显示行尾符
tac: cat逆序
more: 向后翻
less:
/字符串 向下查询字符串
?字符串 向上查询字符串,less可用
space 向下翻页
b 向上翻页
head:
head -n 20 filename 查看文件头部20行
head -n -100 filename 不显示最后100行
tail:
tail -n 20 filename 查看文件尾部20行
tail -n +100 filename 不显示头部100行
-f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容
文本处理:
cut:
-d: 指定分隔符,默认为空格
-f: 指定要显示的字段
-f1,3 :显示第1,第2两个字段
-f1-3 :显示第1至第3 三个字段
文本排序:
sort: 默认asc排序
-n: 按照数值排序
-r: desc
-t: 指定分隔符
-k: 以哪个字段为排序标准
-u: 去除重复项目,只显示一次
-f: 忽略大小写
[root@oracletest ~]# sort -t: -k3 -nr /etc/passwd
uniq:
-c: 显示文件中行重复的次数
-d: 只显示重复的行
文本统计:
wc: word count
-l: 只显示行数
-w: 只显示单词数
-c: 只显示字节数
-m: 只显示字符数
-L: 最长的一行包含多少字符
字符处理:
tr: 用于转换或删除字符
tr [OPTION]... SET1 [SET2]
[root@oracletest ~]# echo "aaaahsdf"|tr 'a-z' 'A-Z'
AAAAHSDF
-d: 删除字符
[root@oracletest ~]# echo "aaaahsdf"|tr 'a' -d
----hsdf
文件链接:
ln [option] source_file destination_file
-b或--backup:删除,覆盖目标文件之前的备份;
-d或-F或--directory:建立目录的硬连接;
-f或--force:强行建立文件或目录的连接,不论文件或目录是否存在;
-i或--interactive:覆盖既有文件之前先询问用户;
-n或--no-dereference:把符号连接的目的目录视为一般文件;
-s或--symbolic:对源文件建立符号连接,而非硬连接;
硬链接:
1.只能对文件创建,不能对目录创建硬链接
2.不能跨文件系统(分区)
3.创建硬链接会增加文件被链接的次数
符号链接:
1.可应用于目录
2.可以跨文件系统
3.不会增加被链接文件的链接次数
4.其大小为指定的路径所包含的字符个数