在linux系统里,不像windows那些一些都封装成图形界面了,linux中,一切皆文件,一切皆命令,所有的操作都离不开命令和文件,在这里,总结一些和文件和目录相关的知识。
最常见的文件和目录的操作就是增(新建),删(删除),改(修改名字,内容),查(查看内容,查看目录结构)了,除此之外还会涉及到文件和目录的权限,文件目录的压缩解压,文件的搜索,
新建 touch mkdir
一般新建文件命令是touch
,新建目录的命令是mkdir
,但是还有其他一些方式也可以达到这个效果。
新建单个文件
touch test.txt
echo > test1.txt #echo空到一个文件也可以创建一个新文件
批量新建多个文件
touch 1.txt 2.txt 3.txt
mkdir 1.txt 2.txt 3.txt
#命令行用for循环去批量新建test-1.txt -test-10.txt
for i in {1..10};do touch test-$i.txt;done
同理文件可以换成目录
for i in {1..10};do mkdir test1-$i;done
当新建的目录是多层的时候就需要用mkdir -p 参数去创建
mkdir -p /tmp/a/b/c
删除文件目录 rm rm -rf
rm 这个命令是一个非常危险的命令,rm -rf
是不带提示的强制删除,所以在日常操作时,一定要再三确认,所以可以用rm
就不要用rm -rf
,rm 命令是支持正则匹配的
rm -rf test.txt
mv test1.txt /dev/null #/dev/null/ >>就把他当做linux环境下的类型windows系统的回收站把
rm -rf ./*.txt
rm -rf ./1*.txt
修改文件内容或者目录名字
文件
修改文件内容的需要用到linux体系里的文档编辑器,这里是列举两个常用的,
vi vim
,yum仓库还有很多其他优秀的编辑器 vi
不需要安装,一般系统都默认自带,vim 有些迷你,精简版没有安装需要自行安装
yum whatprovides vim
找到包名手动安装
yum -y install vim-enhanced-7.4.629-7.el7.x86_64
这里着重讲一下vim,这个会用,一般vi也会用
vim
有四个模式
一般模式,默认使用vim就是进入这个这个模式,可以对文件内容的复制删除粘贴等
牢记一点,只有一般模式才可以和其他模式之间切换,其他模式之前不能相互切换
这里列举一些一般模式下常用的操作按键:
dd | 删除当前光标处1行 |
---|---|
10dd | 删除光标处起往下10行 |
yy | 复制光标处一行 |
8yy | 复制8行 |
p | 在光标处下放一行粘贴DD或者YY的内容 |
u | 撤销文档改动,按一次撤销一次操作,一直按可以回到最初未改动的状态 |
gg | 光标移动到文件内容第一行 |
G | 光标移动到文件内容的最后一行 |
编辑模式:用于对文件内容的编辑,即键盘输入那些
一般按i 进入编辑模式即可
i,I | 进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。 |
---|---|
a,A | 进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。 |
o,O | 进入插入模式。o为在下一行插入。O为在上一行插入。 |
r,R | 进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。 |
【ESC按键】 | 退出编辑模式,进入一般模式 |
命令模式: 文件保存、退出、查找与替换、显示行号、paste模式等等
一般模式下按/或者: 进去命令模式
列举命令模式一些常用的操作
列举命令模式一些常用的操作 | |
---|---|
w | 仅保存修改的文件,不退出vim界面 |
wq | 保存并退出vim界面 ,修改完用这个 |
wq! | 强制保存退出 |
q | 直接退出vim界面,如果有修改文件内容,切记先保存, |
q! | 强制退出 |
/str | 在内容里搜索str关键字,n键匹配光标处向下一个 |
?str | 在内容里搜索str关键字,n键匹配光标处向上一个 |
:n,ms/str1/str2/g | 匹配n-m行之间,把str1替换成str2,不加g就只是替换匹配到的第一行 |
:1,$s/str1/str2/g | 匹配所有行,执行关键字的替换 |
:set nu | 在每行行首显示行号 |
:set nonu | 取消行号 |
视图模式:
在一般模式下,直接按小v,进入可视化模式,使用方向键↑ ↓ ←
→选择要复制的内容,然后按y键,移动光标,停在需要粘贴的位置,按p键进行粘贴操作
一般用作加注释和去注释
目录
涉及到目录的修改,就只有一个名字和权限,权限放到后面说
mv test test1
#即可实现目录改名操作
查看文件内容
查看文件内容是操作linux系统很常用的一个操作,不管是看配置文件,系统信息,看日志,该程序配置文件等,这里列举一些常用的查看一个文件内容的方式
vim cat tail more
vim test.txt
,看完q退出即可
cat test.txt |grep "str"
# 最常规的查看文件内容的命令
head -100 test,txt
查看文件的前100行
tail -10 test,txt
查看文件的后10行
tail -100f test.txt
展示文件内容最后100行,并在当前命令行动态展示文件内容,多用于查看日志
more test.txt
像看小说那样看文本内容,空格键向下翻阅
文件和目录的搜索
这里介绍一个find命令
可以搜索系统里你想要查看的文件目录,提供非常丰富的条件限制
基础命令格式
find +【搜索的范围,即目录,如/opt/ 】+ 参数(可以是文件的正则名字,文件的类型,文件的大小,文件的日期,文件的所有者等等)
按文件名字 name
find /etc -name *.conf #搜索/etc/ 下 以.conf结尾的文件
find /etc -name test.* #搜索/etc/ 下 以test开头的文件
按文件类型来查询 type
常见的类型 文件:f 目录:d 链接:l 套接字:s
find /tmp/ -type f #查找/tmp/ 下 类型为文件的所有内容
按文件的大小查找 size
#查找/tmp/ 下大于20M的所有文件内容
find /tmp/ -size +2M
#查找/tmp/ 下小于100k的所有文件内容
find /tmp/ -size -100k
按文件的更新时间查询 ctime cmin
ctime
单位为天 cmin
单位是分钟
一般用来排查某时间段内被修改过的时候,或者结合exec 来删除旧的过期文件(如删除日志
ctime +10 #距现在10天以上,表示10天前
ctime -10 #距现在10天以下,表示10天内
#查找10天以前的内容
find /nginx/log/ -ctime +10
#和exec 结合使用,
find
目录 参数 -exec
要执行的命令 {} \;
#删除10天以前的日志文件
find /opt/nginx/log/ -type f -ctime +10 -exec rm -rf {} \;
#给/tmp/下的sh脚本文件添加执行权限x
find /tmp/ -name *.sh -type f -exec chmod +x {} \;
下面是不太常用的搜索条件
按文件所有者来查询
find /home/ -user test
按文件所属组查询
find /home/ -group test
按文件权限去操作
搜索权限为404的文件
find /tmp/ -perm 404
文件和目录权限的修改
chown
用于修改文件的所属者或者所属组 (修改文件是属于谁的,属于哪个组的)
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。
所有者(u) :一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用
ls ‐ahl
命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 。
文件所在组(g) :当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组用
ls ‐ahl
命令可以看到文件的所有组也可以使用 chgrp 组名 文件名来修改文件所在的组。
其它组(o):除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。 我们再来看看如何修改文件/目录的权限。
#把/tmp/test.txt文件的所有者改为root,所属组改为jay
chown root:jay /tmp/test.txt
#用 . 间隔也可以
chown root.jay /tmp/test.txt
#单独修改属者或者属组
chown root: /tmp/test.txt
chown :jay /tmp/test.txt
一般会搭配 -R去递归使用
#把/tmp/test/ 所有文件目录所有者和属组改为root:root
chown -R root:root /tmp/test/
chmod
用于修改文件所属者,组的权限(修改所有者,组具体拥有哪些权限,读写执行等)
上面的chown是规定了文件目录属于谁,现在chmod来规定你具体拥有文件的哪些权限
ll 可以查看文件目录的权限 (ls -l
u=所有者的权限,g=搜有组的权限,o=其他组的权限,如果不加表示三者同时
chmod +x /tmp/tets.txt #三者都加x权限
chmod u+x /tmp/tets.txt #只有所有者才加x权限
文件内容的操作
当你以后经常需要用脚本去处理一些和文件内容相关的内容时,sed 和ask是非常方便快捷的编辑工具
sed & awk
跳转
更多推荐
linux文件及目录操作汇总
发布评论