Bootstrap

Linux 下的文件管理

1.文件管理命令

touch:新建文件,修改文件时间戳

touch file1 file2...建立空文件(建立多个文件)
在这里插入图片描述

touch westos 把文件时间同步到当前时间
在这里插入图片描述

touch -t [cc]YYMMDDHHmm file把文件时间更改到指定时间
touch --help 查看帮助,如何更改时间
-t STAMP use [[CC]YY]MMDDhhmm[.ss] instead of current time
修改时间戳
在这里插入图片描述

mkdir : make directory

mkdir dir1 dir2 ... 建立空目录
在这里插入图片描述

mkdir -p test/redhat/linux建立多层当上层目录不存在时自动建立
在这里插入图片描述

rm:删除文件或目录

rm file file1 ... 删除文件有提示
rm -f file 强制删除文件不提示
在这里插入图片描述
rm -r dir dir1... ##删除目录 rm -rf dir ##删除目录不提示

gedit:图形的文本编辑器

gedit file file1… ##编辑file file1
1gedit 在使用时必须有图形
2file file1可以不存在
在这里插入图片描述

vim :文本编辑器

vim file进入到vim的浏览模式

	浏览模式不能编辑文件
	1.在浏览模式中按<i>进入插入模式
	2.在vim中鼠标不能控制光标用上下左右移动光标
	3.按<ESC>退出插入模式
	3.按:wq保存更改

实验素材

[root@lee Desktop]# vim file
[root@lee Desktop]# vim lzy
[root@lee Desktop]# cat file 
file
[root@lee Desktop]# cat lzy
lzy
[root@lee Desktop]# 

vim -o file lzy编辑多个文件
浏览模式下<ctrl +w> 同时按,放开后按上下键切换文件编辑
wq退出保存,

在这里插入图片描述
vim -p file lzy 编辑多个文件
浏览模式:tabp 切换到上一个文件
tabn 下一个文件

在这里插入图片描述

vim异常退出
当vim编写文件时在未保存更改内容被强制关闭————> vim 出现异常

[O]只读打开文件
(E)继续编辑
(R)恢复未保存内容编辑
(D)删除.swp文件进入编辑
(Q)退出
(A)退出,比Q程度强

文件在编辑时,会生成相应的.swp文件,显示隐藏文件,就可以看到.swp文件待文件编辑好后,会消失,异常退出后swp文件没有消失
在这里插入图片描述编辑完未保存异常退出
在这里插入图片描述按D删除在这里插入图片描述
(Q)uit, (A)bort: t的区别

westos文件编辑时异常退出

vim -p westos lzy
q:只退出westos文件的编辑
在这里插入图片描述
A:退出vim

cat:显示文件的全部内容

cat file 显示文件内容
cat -b file显示文件内容并显示行号,不显示空行的行号
cat -n file##显示文件内容并显示行号
在这里插入图片描述

head:查看文件前多少行

head westos默认显示文件前10行
head -n westosn 代表数字 显示文件的前n行
在这里插入图片描述

tail:查看文件的后多少行

tail westos默认显示文件后10行
tail -n westos##n 代表数字 显示文件的后n行
在这里插入图片描述

less: 分页浏览

less westos进入到less模式查看westos
less模式中 <上><下>逐行查看文件内容
<pgup><pgdn>逐页查看文件内容
/关键字搜索关键字 n 向下匹配 N 向上匹配
<v>有less模式进入到vim 编辑完成:wq退出返回less
<数字>向下移动多少行
<g>迅速移动到文件的首行
<G>迅速移动到文件的尾行
在less中<q>退出

cp:复制文件

cp 文件 目的地文件生成一个新的文件:目的地文件,与原文件内容一致
cp 文件1 文件2 目的地目录复制多个文件到目的地目录,复制多个文件,目的地一定是目录
cp -r 目录1 目录2-r 复制目录

复制原理
按照源文件建立新文件(抄作业)
在这里插入图片描述

mv:移动文件

mv file file1 dir把文件移动到目的地目录
mv dir dir1 dir移动目录到目的地目录
mv file 不存在file重命名

移动原理:
1相同设备分区中的文件移动是重命名过程
2不同分区的文件移动是建立删除过程
ls -i file查看文件节点号(相当与文件身份证号)

在这里插入图片描述

mv copy 移动文件的区别
1.copy 生成新的文件,复制原文件内容
2.mv 没有生成新的文件。但在移动的时候,如果只是同分区设备,则只重命名,但数据不发生改变,不同分区移动: 重命名,数据也发生改变

file 文件类型的查看

文件的名字不能决定文件的类型,文件的类型是由文件的内容决定的

file westos	查看westos的真实类型

尽管文件的后缀是.mp3 但查看类型不是 ,

[westos@westos_student4 Desktop]$ file westos.mp3
westos.mp3: empty  内容为空

ASCII text

[westos@westos_student4 Desktop]$ vim westos.mp3
[westos@westos_student4 Desktop]$ cat westos.mp3
lzy
[westos@westos_student4 Desktop]$ file westos.mp3
westos.mp3: ASCII text

ASCII text executable 脚本

[westos@westos_student4 Desktop]$ vim westos.mp3
[westos@westos_student4 Desktop]$ cat westos.mp3    ##内容
#!/bin/bash
[westos@westos_student4 Desktop]$ file westos.mp3 
westos.mp3: Bourne-Again shell script, ASCII text executable

wc 文件容量的统计

wc -l行数
wc -m字符数
wc -w单词数
wc -c字节数

一个汉字占3个字节
不换行

[westos@westos_student4 Desktop]$ echo -ne westos    不换行
westos[westos@westos_student4 Desktop]$ 

vim 编辑时默认有一个空格

[westos@westos_student4 Desktop]$ vim westos
[westos@westos_student4 Desktop]$ cat westos ##默认有一个换行符(占一个字节)
您
[westos@westos_student4 Desktop]$ wc -l
^C
[westos@westos_student4 Desktop]$ wc -l westos 行数
1 westos
[westos@westos_student4 Desktop]$ wc -c westos  字节数 (一个汉字是3个字节)
4 westos
[westos@westos_student4 Desktop]$ wc -w westos  字数
1 westos
[westos@westos_student4 Desktop]$ wc -m westos  字符数  (1+1)
2 westos

2.Linux中文件的寻址

1)Linux系统结构

FHS (Filesystem Hierarchy Standard) Linux层级结构标准
LINUX中一切都是文件

/ #Linux顶级目录 rm -fr /* 此命令卡万不要在服务器上运行系统二级目录
/bin系统常规命令
/sbin系统管理命令
/dev设备文件
/home普通用户家目录集合,此目录中的子目录为普通用户家目录
/root超级用户家目录
/lib6464位函数库
/lib系统函数库
/proc进程信息,系统识别的硬件信息
/run当前运行的硬件和系统模块
/srv系统数据(常量)
/var系统数据(变化)
/tmp系统临时文件存放目录
/mnt临时设备挂载点
/mediacdrom临时挂载点
/etc系统大多数程序的配置目录
/opt第三方软件安装位置
/boot系统启动分区,系统启动时读取的文件都在此目录中
/sys关于内核设定目录
/usrunix system resource 仅次于/ 重要 多数系统资源都在此目录中

相对路径

绝对路径名称的简写,圣略了用户当前所在的系统位置
此名称只有在管理当前所在系统目录中子文件时才能使用
系统中不以/开有的文件名称都为相对路径在程序操作时
会自动识别当前路径的信息并关联操作目标

绝对路径

文件在系统中的真实位置,在任何场景下都可以使用
通常以/开头,不会考虑当前系统位置
/home/westos/file 绝对路径
cd /home/westos cat file 相对路径

[westos@westos_student4 ~]$ pwd
/home/westos
[westos@westos_student4 ~]$ vim file
[westos@westos_student4 ~]$ cat file
file
[westos@westos_student4 ~]$ cd Desktop
[westos@westos_student4 Desktop]$ cat /home/westos/file
file

3.关于文件寻址的命令

pwd ##显示当前的工作目录

cd ##切换当前的工作目录

"cd ~-" = "cd -" 当前目录和当前目录之前的目录之间的切换

ls ##显示文件信息

ls显示当前目录中文件的名称
ls file显示指定文件名称
ls dir显示指定目录中内容的名称
ls -d dir显示目录本身的名称
ls -l file显示文件属性
ls -l dir显示目录中内容的属性
ls -ld dir显示目录本身属性
ls -a dir显示目录中所有文件名称包括隐藏文件
ls -s显示文件大小
ls -R dir第归显示目录中的内容
[root@lee j]# touch .westos
[root@lee j]# ls
[root@lee j]# ls -a    ##显示目录中所有文件名称包括隐藏文件
.  ..  .westos
[root@lee j]# 

4.文件批量处理

*匹配0~任意字符
?匹配单个字符
[[:alpha:]]匹配单个字母
[[:lower:]]匹配单个小写字母
[[:upper:]]匹配单个大写字母
[[:digit:]]匹配单个数字
[[:alnum:]]匹配单个数字或字母
[[:punct:]]匹配单个符号
[[:space:]]匹配单个空格

m[[:alpha:][:space:]]p一个字符:是字母或空格
m?p一个字符
m[[:digit:]][[:digit:]]p 俩个字符
m??p 两个字符
mp{1,3} mp[13]1和3
mp[^1] mp[![:alpha:]]

[westos@westos_student4 westosdir]$ ls
mp1  mpA  mpe
[westos@westos_student4 westosdir]$ rm -fr mp[^1]  删除不是mp1的文件
[westos@westos_student4 westosdir]$ ls
mp1

touch mp{1..3}{a..c} 建立9个文件,1a 1b …

test
找出/etc下以.conf 为后缀,且有数字的文件,复制到/mnt

[root@westos_student4 mnt]# cp /etc/*[[:digit:]]*.conf /mnt  

[root@westos_student4 mnt]# ls
krb5.conf  mke2fs.conf  pbm2ppa.conf  pnm2ppa.conf
[root@westos_student4 mnt]# 

字符集合表示方法


[]		##条件是或者关系是模糊匹配,对象和几个对比匹配就操作
		##[1-10] 110  [!d-f]|[^d-f] 除了d-f以外

{}		##点名机制,经精确指定集合中的每一个元素
		##{1..10} 1-10  {a..c} a-c

文件批量处理{} [] 的区别
[root@lee j]# touch westos1 westos2 westos4
[root@lee j]# ls
westos1 westos2 westos4

[root@lee j]# cp westos[1-4] /home/westos    ###模糊匹配不报错
[root@lee j]# cp westos{1-4} /home/westos    ##点名机制,cp命令对目标进行操作未成功报错
cp: cannot stat 'westos{1-4}': No such file or directory
~		##默认代表当前用户家目录
~username	##指定的用户家目录
"~+" = "."	##当前目录
~-		##当前目录之前所在目录
..		##当前目录的上级目录
[root@lee Desktop]# cd ~    切换到用户root的家目录
[root@lee ~]# pwd
/root
[root@lee ~]# cd ~westos     切换到指定用户westos的家目录
[root@lee westos]# pwd
/home/westos
[root@lee westos]# cd ~-    切换到当前目录之前所在目录
[root@lee ~]# pwd
/root
[root@lee ~]# cd -    当前和当前目录之前所在目录之前所在目录之间的切换=~-
/home/westos
[root@lee westos]# cd ..    切换到当前目录的上级目录
[root@lee home]# pwd
/home

test

1.用命令和正则表达式按照要求建立文件
*) 用一条命令建立12个文件WESTOS_classX_linuxY(x的数值范围为1-2,Y的范围为1-6)
*)这些文件都包含在root用户桌面的study目录中
*) 用一条命令建立8个文件redhat_versionX(x的范围为1-8)
*) redhat_versionX这些文件都包含在/mnt目录中的VERSION中
2.管理刚才建立的文件要求如下
*)  用一条命令把redhat_versionX中的带有奇数的文件复制到桌面的SINGLE中
*)  用一条命令把redhat_versionX中的带有偶数的文件复制到/DOUBLE中
*)  用一条命令把WESTOS_classX_linuxY中的class1中的文件移动到当前用户桌面的CLASS1中
*)  用一条命令把WESTOS_classX_linuxY中的class2中的文件移动到当前用户桌面的CLASS2中

westos用户登录 当前用户: westos

[westos@lzy Desktop]$ su - root
Password: 
[root@lzy ~]#  mkdir /DOUBLE /mnt/VERSION /home/westos/Desktop/CLASS{1..2} /home/westos/Desktop/SINGLE
[root@lzy ~]#  mkdir /root/Desktop/study
[root@lzy ~]#  touch /root/Desktop/study/WESTOS_class{1..2}_linux{1..6}
[root@lzy ~]# touch /mnt/VERSION/redhat_version{1..8}
[root@lzy ~]# cp /mnt/VERSION/redhat_version{1,3,5,7} /home/westos/Desktop/SINGLE/
[root@lzy ~]# cp /mnt/VERSION/redhat_version{2,4,6,8} /DOUBLE
[root@lzy ~]# mv /root/Desktop/study/WESTOS_class1* /home/we
we/     westos/ 
[root@lzy ~]# mv /root/Desktop/study/WESTOS_class1* /home/westos/Desktop/CLASS1
[root@lzy ~]# mv /root/Desktop/study/WESTOS_class2* /home/westos/Desktop/CLASS2
[root@lzy ~]# ls /home/westos/Desktop/CLASS1
WESTOS_class1_linux1  WESTOS_class1_linux3  WESTOS_class1_linux5
WESTOS_class1_linux2  WESTOS_class1_linux4  WESTOS_class1_linux6
[root@lzy ~]# ls /home/westos/Desktop/CLASS2
WESTOS_class2_linux1  WESTOS_class2_linux3  WESTOS_class2_linux5
WESTOS_class2_linux2  WESTOS_class2_linux4  WESTOS_class2_linux6
[root@lzy ~]# ls /home/westos/Desktop/SINGLE/
redhat_version1  redhat_version3  redhat_version5  redhat_version7
[root@lzy ~]# ls  /DOUBLE
redhat_version2  redhat_version4  redhat_version6  redhat_version8
[root@lzy ~]# 
;