####Linux 下的文件管理 ####
# 1. 文件管理命令 #
touch # 新建文件 , 修改文件时间戳
touch file1 file2... ## 建立空文件
touch file ##把文件时间同步到当前时间
touch - t YYYYMMDDHHmm file ## 把文件时间更改到指定时间
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
#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 中