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 westos
n 代表数字 显示文件的前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 | 超级用户家目录 |
/lib64 | 64位函数库 |
/lib | 系统函数库 |
/proc | 进程信息,系统识别的硬件信息 |
/run | 当前运行的硬件和系统模块 |
/srv | 系统数据(常量) |
/var | 系统数据(变化) |
/tmp | 系统临时文件存放目录 |
/mnt | 临时设备挂载点 |
/media | cdrom临时挂载点 |
/etc | 系统大多数程序的配置目录 |
/opt | 第三方软件安装位置 |
/boot | 系统启动分区,系统启动时读取的文件都在此目录中 |
/sys | 关于内核设定目录 |
/usr | unix 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] 1到10 [!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 ~]#