####Linux
下的文件管理
####
#
1.
文件管理命令
#
touch #
新建文件
,
修改文件时间戳
touch file1 file2... ##
建立空文件
touch file
##
把文件时间同步到当前时间
touch
-
t YYYYMMDDHHmm file ##把文件时间更改到指定时间
mkdir
(
make directory
)
mkdir dir1 dir2 ... ##
建立空目录
mkdir
-
p test
/
redhat
/
linux ##
建立多层目录
mkdir -p创建层级目录 -p是副级目录 当副级目录不存在时自动创建
rm #
删除文件或者目录
rm file file1 ... ##删除文件有提示
Rm提示删除文件 回复y删除
rm
-
f file ##强制删除文件不提示
rm
-
r dir dir1... ##
删除目录
rm
-
rf dir
gedit #
图形的文本编辑器
gedit file file1... ##
编辑
file file1
#gedit
在使用时必须有图形
#file file1
可以不存在
vim #
文本编辑器
vim file ##
进入到
vim
的浏览模式
##
浏览模式不能编辑文件
##
在浏览模式中按
<
i
>
进入插入模式
#
在
vim
中鼠标不能控制光标用上下左右移动光标
#
按
<
ESC
>
退出插入模式
#
按
:
wq
保存更改
#
:
q
当
vim
打开文件后未作任何操作可以直接退出
#
:
q
!
当
vim
打开文件后修改文件内容但不想保存可以强制退出
vim
异常退出
##
当
vim
编写文件时在未保存更改内容被强制关闭
##vim
出现异常
#[O] 只读打开文件
#(E) 继续编辑
#(R) 恢复未保存内容编辑
#(D) 删除.swp
文件进入编辑
#(Q) 退出当前文件编辑
#(A) 推出vim
程序
vim
同时打开多个文件
vim
-
o westos1 westos2 ##
上下模式打开两个文件
##
<
ctrl
>+<
w
> <
上
|
下
>
来转换控制窗口
vim
-
p westos1 westos2 ##
左右打开两个不同文件
##
:
tabn
进入到下一个窗口
##
:
tabp
进入到上一个窗口
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
#
在
less
中
<
q
>
退出
cp ##
复制文件
## cp
文件 目的地文件
## cp
文件
1
文件
2
目的地目录
## cp
-
r
目录
1
目录
2
#
复制原理
:
#
按照源文件建立新文件
(
抄作业
)
mv ##
移动文件
## mv file file1 dir
## mv dir dir1 dir
## mv file
不存在
file
重命名
#
移动原理
:
#
相同设备分区中的文件移动是重命名过程
#
不同分区的文件移动是建立删除过程
#ls
-
i
file
查看文件节点号
(
相当与文件身份证号
)
file ##
文件类型的查看
##file westos
查看
westos
的真实类型
wc ##
文件容量统计
## wc
-
l 行数
## wc
-
m 字符数
## wc
-
w 单词数
## wc
-
c 字节数
#2.Linux中文件的寻址#
1
)Linux
系统结构
#FHS (Filesystem Hierarchy Standard) Linux
层级结构标准
3
#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
仅次于
/
重要 多数系统资源都在此目录中
相对路径
:
绝对路径名称的简写
,
省略了用户当前所在的系统位置
此名称只有在管理当前所在系统目录中子文件时才能使用
系统中不以
/
开有的文件名称都为相对路径在程序操作时
会自动识别当前路径的信息并关联操作目标
绝对路径
:
文件在系统中的真实位置
,
在任何场景下都可以使用
通常以
/
开头
,
不会考虑当前系统位置
test
:
1.
在
westosa
主机中用超级用户登陆系统
2.
在桌面上打开
shell
并执行以下操作
*
建立文件
westos1 westos2 westos3
确保这些文件在
/
mnt
目录中
*
在桌面上建立文件
westos4
*
复制上述所有文件到
/
tmp
目录中的
westos
子目录里
#
3.
关于文件寻址的命令
#
pwd ##
显示当前的工作目录
cd ##
切换当前的工作目录
##"cd
~-
"
=
"cd
-
" CDIR
<-->
ODIR
## ".."
当前目录的上级目录
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 第归显示目录中的内容
#4.文件批量处理#
*
##匹配
0
~
任意字符
? ##
匹配单个字符
[[
:
alpha
:
]] ##
匹配单个字母
[[
:
lower
:
]] ##
匹配单个小写字母
[[
:
upper
:
]] ##
匹配单个大写字母
[[
:
digit
:
]] ##
匹配单个数字
[[
:
alnum
:
]] ##
匹配单个数字或字母
[[
:
punct
:
]] ##
匹配单个符号
[[
:
space
:
]] ##
匹配单个空格
字符集合表示方法
[] ##
条件是或者关系是模糊匹配
,
对象和几个对比匹配就操作
##[
1
-
10
] 1
到
10 [
!
d
-
f]
|
[
^
d
-
f]
除了
d
-
f
以外
{} ##
点名机制
,
经精确指定集合中的每一个元素
##{1..10}
1
-
10
{a..c} a
-
c
`
##
默认代表当前用户家目录
~
username ##
指定的用户家目录
"
~+
"
=
"." ##
当前目录
~-
##
当前目录之前所在目录
.. ##
当前目录的上级目录
########
# TEST #
########
1.
用命令和正则表达式按照要求建立文件
*
)
用一条命令建立
12
个文件
WESTOS_classX_linuxY(X
的数值范围为
1
-
2
,
Y
的数值范围为
1
-
6
)
*
)
这些文件都包含在
root
用户桌面的
study
目录中
*
)
用一条命令建立
8
个文件
redhat_versionX
(
x
的范围为
1
-
8
)
*
)redhat_virsionX
这些文件都包含在
/
mnt
目录中的
VERSION
中
2.
管理刚才信建立的文件要求如下
*
)
用一条命令把
redhat_versionX
中的带有奇数的文件复制到桌面的
SINGLE
中
*
)
用一条命令把
redhat_versionX
中的带偶数数的文件复制到
/
DOUBLE
中
*
)
用一条命令把
WESTOS_classX_linuxY
中
class1
的文件一动到当前用户桌面的
CLASS1
中
*
)
用一条命令把
WESTOS_classX_linuxY
中
class2
的文件一动到当前用户桌面的
CLASS2
中