Linux目录结构详解、文件基础管理(增删改查)的命令、vim/vi文本编辑器

文件类型:
连接文件:l
普通目录文件:d
普通文件: -
设备文件(块设备):b 存储设备硬盘U盘
设备文件(字符设备):c 打印机,终端
套接字文件:s
管道文件:p
链接文件:l
ps:通过颜色来判断文件类型是错误的

拓展内容:根目录下文件夹释义:
bin-> usr/bin:存放普通用户可执行的命令
sbin -> usr/bin:存放超级管理员可执行的命令
lib -> usr/lib:存放32位系统使用的目录
lib64 -> usr/lib64
dev 设备文件
proc 系统进程信息
boot 系统启动文件
home 普通的用户的家目录文件
media 可用媒体挂载点
srv 系统提供的站点的特定数据
sys 内核对象文件系统
root 超级管理员的家目录
tmp 系统文件目录,一般第三方软件存放的目录
usr 存放系统执行文件的目录,相当于Windows中的C盘中的Windows目录
etc Linux系统配置文件
var 存放系统临时文件的目录、存放系统日志的目录、系统运行时产生的文件
mnt 相当于Windows的USB
opt 下载文件的目录(相当于Windows里的download文件夹)

文件管理:
创建目录:mkdir

参数:-p:当上级目录不存在时,自动创建上级目录(递归创建)
例:mkdir -p /oldboy/yzl #此时oldboy不存在
-v:打印整个目录创建的过程
例:
mkdir -pv one/two/treee/four
mkdir: created directory ‘one/two’
mkdir: created directory ‘one/two/treee’
mkdir: created directory ‘one/two/treee/four’
-m:设置文件夹的权限
例:mkdir -m 764 oldboy

创建文件:touch
创建两个文件:touch 1.txt 2.txt
创建多个文件:touch {a…z}.txt
创建多个文件:touch {abc,bcd,fgh}.txt

查看文件夹:ls
-a:查看隐藏文件
-l:显示文件详细属性信息
-i:打印文件的索引号
-h:显示可读文件大小
-d:显示目录本身,而不是目录内容
-F:给文件添加一个标识符

查找文件:find
按文件名查找:find /etc -iname “ifcfg-eth0”(忽略大小写)
按文件大小查找:find /etc -size +3M #大于3m的文件
指定目录深度查找:find / -maxdepth 5 -a -name “ifcfg-eth0” #-a 并且,-o或者 默认就是-a
按innode号查找:(ls -liaha查看文件的innode号)find / -inum id号
文件查找:find命令
用法:find [路径] [查找类型][类型参数][指令](完整版)

find命令中的参数以及作用

-name 匹配名称
-i    忽略大小写(一般与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 …… {
    
    }\; 后面可跟用于进一步处理搜索结果的命令

需要注意的是:在使用find -exec {}… ;这条命令时,这个命令是将搜索到的结果紧随其后的命令做进一步处理,类似于管道,其中{}代表的是占位符,表示find命令搜索出的每一个文件,并且命令的结尾必须是“;”(基本语法无法改变!)

查看文件内容
cat:查看全文内容
-n:显示文件行号
head:查看文件内容(从头打印文件,默认打印前10行)
head -n:打印出前n行
head -c:打印出前n个字节的内容,-100去掉后100个字节
tail:查看文件内容(从尾部打印文件,默认打印10行)
tail -n:打印出文件最后n行的内容
tail -c:从文件底部开始输出n个字节内容
tail -f:实时打印出文件的新增内容
tree:查看文件目录层级

移动文件及改名
语法:mv 原来文件路径 新的文件路径 [root@string ~]# mv abc.txt /opt/
[root@string ~]# ls
abc {a…c}.txt dir one 系统优化.md
abc.rpm bcd.txt fgh.txt test
[root@string ~]# ls /opt/
abc.txt

#重命名
[root@string ~]# mv abc.rpm abcd.rpm
[root@string ~]# ls
abc {a…c}.txt dir one 系统优化.md
abcd.rpm bcd.txt fgh.txt test
[root@string ~]# mv /root/abcd.rpm /bin/abc.rpm (移动并改名)
[root@string ~]# ls
abc {a…c}.txt dir one 系统优化.md
abc.rpm bcd.txt fgh.txt test

删除文件:rm
语法:rm 参数 文件路径
免交互输入(不在询问):
-f 例:rm -f test.log
递归删除:-r 例rm -rf /root/test
增加删除前的提示:-i 例:/usr/bin/rm -i abc.rpm
显示详细过程:-v 例rm -rvf test

vi/vim文本编辑器
什么是vim?
vi/vim是一种文本编辑器,它是用于文本文件处理的一种工具

为何要用vim(vi)?
因为它处理文件有其优越性,有三种模式,可以针对不同情况下,对文本文件的处理操作

vi/vim编辑器的编辑流程:
一、vi 打开文件
二、创建swp文件,用于临时储存文件修改内容
三、选择输入模式进行修改内容
四、进入末行模式,使用指令进行操作
五、保存并退出

输入模式:
a:在光标处之后插入内容
A:在光标所在行行尾输入内容
i :在光标之前插入内容
I:在光标所在行行首输入(非空字符)
o:在光标所在行的下一行进行输入
O:在光标所在行上一行进行输入

保存:
①:按键盘上的esc键
②:按冒号进入末行模式
③:执行命令对文件进行操作
w 保存编写的内容(将内容写入文件)
q 退出当前编辑器

命令模式
#光标跳转到行尾
shift +A 和 shift + $
#光标跳到行首
0键
删除一行:dd
删除多行:ndd
复制一行:yy
复制多行:nyy
粘贴一行:p(当前行的下一行粘贴)或P(当前行的上一行粘贴)
粘贴多行:np(在当前行的下一行粘贴n行)nP(同理可得)
撤销:u复原上一步操作
强制:! 如:q!强制退出
跳转到文件末行:G(shift+g)
跳转到文件首行:gg
跳转到指定行:nG如:20G (跳转到文件20行)
上下左右跳转:h(左)j(下)k(上)l(右)

末行模式:
显示行号 :set nu
取消显示行号 :set nonu
内容替换 1,n :1,n s/被替换的内容/替换成的内容/g(1,n s/a/b/g 从第一行到第n行用b替换a)
1,$(文件结尾) s/被替换的内容/替换成的内容/g 全局替换=%s/被替换的内容/替换成的内容/g

批量修改
①:Ctrl + v :设置选择多行,进入视图模式
②:shift + i/a:进入编辑模式
③:编辑内容
④:按ESC键,稍等自动变

匹配内容操作
:开始行,结束行 g//操作模式(d、y)如:
匹配删除:n,x g/123/d
匹配复制:n,x g/123/y

全局查找:
/内容

复制指定行,并粘贴在指定行下
例:复制13到20行内容,粘贴在1行下面
光标移动到1行,输入: :13,20y,点击p
(指定删除同理)

猜你喜欢

转载自blog.csdn.net/givenchy_yzl/article/details/114402232