########## LINUX下的文件管理 ####################开始开始,今天绝对在状态##########
学习目标:
1 文件建立及删除
2 文件编辑
3 文件查看
4 文件复制及移动
5 文件统计
6 Linux系统结构及二级目录信息
7 文件寻址
8 寻址相关命令
9 文件批处理技术
一、 文件建立及删除
Linux特性:Everything is file ##都是文件!
在Linux中对系统管理归根到底就是 对文件进行管理 ##增删改查
Linux下对文件的建立:
touch :通常在系统中用于建立文件或者修改时间戳 ## watch -n 1 stat filename
stat filename 查看时间戳 access time | modify time | change time
(打开文件变动) (修改内容变动) (改属性或内容变动)
linux目录的建立:
mkdir -p (有层级时)dir1/dir2/dir3 #dir1不存在时,dir2/dir3无法建立,加-p(parents)即可
linux下文件的删除:
rm -f file1 file2 #-f强制删除,不询问
rm -fr dir1 dir2 #-r表示递归删除,不加时目录下有内容不可删除
二、 文件编辑
1 gedit file #直接编辑文件,类似txt记事本
2 vim #伴随运维生涯的文本编辑器,划重点!在后面详细介绍功能。
#vim和emacs是全球两大文本编辑器
基本用法:vim file
vim工作模式: 命令行模式 插入模式 退出模式
按i进入插入模式 按esc推出插入模式 按 :wq保存退出
3 vim命令模式下调整工作参数
命令行模式下:
:set 参数信息 #例如:set nu 显示行号;:set nonu 取消显示行号
针对用户的设定: vim ~/.vimrc 在最下一行设置参数 eg. set nu ;set ts=2 (tab长度为2) ;set ai (自动缩进) 等等 ##root用户的设定在其他用户登陆下不可使用,其他用户相同
全局变量的设定: vim /etc/vimrc 配置选项同上 ##只有root用户可以设定,其他用户无权设定。
4 vim中字符的搜索
/关键字 表示高亮显示关键字 :noh 撤销高亮
n向下匹配 N向上匹配
5 vim中的字符管理
复制: y(n)l y(n)w y(n)y #复制n个字符、单词、行,n=1时不用写,例:y3y表示删除3行,yy表示删一行。
删除: dl dw dd #n的设置同上,不在这里标识
剪切: cl cw cc #n同上,但要注意,剪切会进入插入模式,剪切后按esc推出后可进行粘贴(p)
6 vim的可视化模式
命令行模式下按 ctrl+v可进入可视化模式,键盘上下左右移动选择区域,也可h(左)j(下)k(上)l(右)
ctrl+v选中所在列,按大写i,加入字符,按esc退出。 #esc后可以看出完整的显示,否则只看见输入的那一行有添加。
7 vim中字符的替换
:%s/字符1/字符2/g # %s代表全文所有行替换全文的字符1为字符2,可以是数字,字母,符号
:1,5s/:/@/g #替换1-5行的:为@
:/cao/,/yuan/s/:/@/g #替换cao到yuan之间的:为@
8 vim的分屏功能:
ctrl+w s :上下分屏
ctrl+w v :左右分屏
ctrl+w c :关闭光标所在屏幕
ctrl+w 上下左右 :光标移动到制定屏幕
:sp file :同时编辑当前文件和file2 #(ctrl+w同时按下后松开,在接后面的)
ctrl+shift+n 打开一个新shell;ctrl+shift+t 同时显示两个shell
##Tips:以上的都:q退出。
9 vim下光标的移动
gg移动到文件的第一行
G 移动到文件最后
:数字 或者 nG 将光标移动到制定的行
10 bim编写(插入)模式的进入
i 光标所在位置插入 I 光标所在行行首插入
o 光标所在行下一行插入 O 光标坐在行上一行插入
a 所在字符下一字符插入 A 所在行行尾插入
s 所在字符删除并插入 S 所在行删除并插入
11 vim退出模式
:q 退出,文件内容未改变时用
:wq 退出保存
:q! 改变文件不想保存时用,强制退出不保存
:wq! 强制退出保存,对只读文件使用
12 vim的异常退出
vim编写文件时,会打开一个.swp的文件,在vim还没保存编写内容时强制关闭导致,那部分未被保存的.swp文件会一直存在,再次编辑打开这个文件时会出现如下 %图片%
按照提示: Open Read-only #只读打开
Edit anyway #继续编辑
Recover #数据恢复 ##数据已经恢复,但.swp文件还在,下次打开时需按d删除
Delete it #删除.swp文件
Quit #退出
Abort #恢复后退出 #rhel8 不太稳定,其功能和Q基本相同
三、 文件的查看
1 cat: cat file #显示文件所有内容
cat -b file #显示内容并显示行号,但不统计空行
cat -n file #显示内容与行号,统计空行
###行号不会被保存在文件中
2 less: 浏览较长文件时用less分页浏览 less fielname
上下 逐行移动
PgupPgdn 逐页移动
/关键字 高亮显示,n、N向下/上匹配
v 进入vim模式 :wq突出
q 退出
3 head&tail
head:显示前几行 head fiel默认显示前10行;head -n 3 file 显示前3行
tail:同head; tail -f file 监控文件后10行变化 ,通常用于监控系统日至
四、 文件复制及移动 cp mv
文件复制:cp 源文件 目的地文件 #目的地存在时会询问
cp -r 源目录 目的地目录 #-r 递归复制目录到目录中
cp 源文件/目录 1&2 目的地目录 #复制多个文件目录到一个目录中,目的地目录必须存在。
#####复制时按照模板新建的过程
文件移动:mv 源文件/目录 目的地文件/目录
#### mv后文件还是同一个文件 名字变了,是一个重命名的过程(同一磁盘)地址相同 【 mv westos(以存在) linux(不存在) 】 则会将westos更名为linux,mv 目录也是一个重命名过程,不需要加参数 #不同磁盘之间的移动是一个删除新建的过程
五、 文件统计
file :可以查看文件的真实类型,文件的名称及后缀不能代表文件类型。
wc :用于统计文件字数、字符数、行数
wc -l file:文件的行数 wc -w file 文件字数 wc -m file 文件字符数 wc -m file 文件字节数
##一个中文字符等于三个字节,一个英文字符等于一字节,且每一行尾都有换行符 (linux、unix、mac下为\n,windows为\n\r)
六、linux系统中的跟文件系统的层级结构
FHS : Filesystem Hierarchy Standard 文件系统层级结构标准 为倒树型
/ 根目录,系统中的顶级目录
/bin&/sbin /bin (binaries) 所有用户可执行的命令程序文件
/sbin 系统管理命令程序,只有Root可执行,如 useradd
/boot 开机/系统启动过程中加载的文件的存放目录,删除后开机异常
/dev 系统设备文件存放路径:字符设备(键鼠)、线性设备、块设备(U盘、硬盘)、随即设备
/etc 配置文件存放地址 /etc/vimrc
/hoom&/root /home 普通用户家目录集和,不是系统目录; /root 超级用户家目录,root登录系统后魔人进入的系统目录
/lib&/lib64 /lib系统启动程序的函数库,和根下应用程序(/bin /sbin等)调用的函数库,相当于外挂
/media&/mnt /media 临时设备挂载点 (cdrom只读光盘、usb) /mnt 系统磁盘的临时挂载点,挂载某些额外设备
/opt 第三方软件默认系统安装位置
/proc&/sys 进程和内核相关参数信息
/srv&/bar /srv 当前主机系统服务提供的数据 ; /var 经常变化的系统数据
重要的目录:
cache 缓存 log 系统日志 lib 程序固定数据信息 spool 程序队列数据,用户邮件等 tmp 系统关机后仍需保存的临时文件
/tmp 系统临时文件存放目录 #要对所有用户可写 X
/run 当前运行进程相关数据 #常被调用
/user 全局共享只读资源,除/目录以外系统最重要的目录
七、 Linux系统中文件的寻址
文件的地址
相对路径: ./desktop
? 相对与当前系统所在目录的一个文件名称的简写
? 此名称省略了系统当前所在目录的名称
? 此名称不以“/”开头
? 此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值
绝对路径: /home/kiosk/desktop
? 绝对路径是文件在系统的真实位置
? 此命令是以“/”开头的
? 此命令在命执行时系统不会考虑现在所在位置的信息
注意:
? 当操作对象是 对象1 空格 对象2 时
? 这两个对象之间没有任何关系
八、 Linux中寻址相关命令
pwd 显示当前路径
cd 目录名 进入到指定目录中
cd - 切换到之前所在在目录
cd .. 进入当前目录的上级目录 ##.表示当前目录
文件信息查看 ls 【-ladsS】 file/dir 【】内为可选参数
-l 文件属性
-d 目录本身
-a 所有文件包含隐藏的
-S 查看并按照大小排序
-s 查看文件大小
九、 Linux中文件批处理
1 系统中的通配符
? 匹配单个字符 eg. rm -fr file*
[[:alpha:]] 单个字母
[[:lower:]] 单个小写字母
[[:upper:]] 单个大写字母
[[:digit]] 单个数字
[[:punct:]] 单个符号
[[:space:]] 单个空格
[[:alnum:]] 单个数字或字母
[[:punct:][:upper:]] 单个符号或单个大写字母
2 字符集合:精确匹配 {} ##可用与建立或删除
{} 用于精确匹配的内容
{1..3} 3个,1到3 eg. rm -fr file{1..3} ##删除文件file1、file2、file3
{1,2,5} 3个 eg. rm -fr file{1,2,5} ##删除文件file1、file2、file5
3 模糊匹配 [ ] ##模糊匹配不可用于建立,且无法反选
[1-9] 1位,1-9中的一个
[!3-5] 1位,不是3-5的数字
[^3-5] 1位,不是3-5的数字
[a-z] 1位,a-z的任意字母
4 “~” 应用汇总
~ 当前用户家目录 #cd ~
~username 指定用户家目录 #cd ~student 进入student家目录
~+ 当前目录 #与 . 相同 eg. cp /etc/passwd .或~+
~- 进入当前目录之前所在目录 ##与cd搭配使用时 cd - 无~,但在其他操作时必须为~-
######################这就是第二天所学,感觉漏了好多,下午有点点瞌睡######################