一.文件建立&删除
Linux特性
- Linux中一切皆文件
- Linux中对系统管理,也就是对文件管理,对文件实施增删改查。
Linux下对文件的建立和删除 (文件+目录)
Linux中同windows一样,有文件和文件夹。只不过 Linux中,我们把文件夹称之为目录
1.文件的建立
touch命令(1.创建文件 2.修改文件的时间戳)
1.1 创建文件
(1)创建文件
[root@workstation Desktop]# touch file
[root@workstation Desktop]# touch file{1,2,3}
(2)修改文件的时间戳
stat命令 查询 文件的状态信息,信息内容包括atime,ctime,mtime.
atime(Access time) | 文件内容被访问的时间标识(eg.cat less命令) |
---|---|
mtime(Modify time) | 文件内容被修改的时间标识(eg.更改为只读类型文件) |
ctime(Change time) | 文件内容或者文件属性被修改的时间标识(eg.echo 不访问文件的情况下,修改文件内容) |
[root@workstation Desktop]# stat file1
[root@workstation Desktop]# stat *
watch 实时监测命令
–n 指定指令执行的间隔时间(秒)
[root@workstation Desktop]# touch file
[root@workstation Desktop]# watch -n 1 stat file
(1)访问文件
[root@workstation Desktop]# cat file
[root@workstation Desktop]# stat file
文件在未修改内容和属性,第二次被访问时,atime不再变化(因为文家的内容和属性已经被加载到内存中)
(2)修改文件内容
echo命令:用于字符串的输出 以及 显示结果定向至文件
[root@workstation Desktop]# echo 今天天气好晴朗
今天天气好晴朗
[root@workstation Desktop]# echo 处处好风光>file
(3)修改文件属性或者内容
修改文件的时间戳
[root@workstation Desktop]# touch -t 07201212 jiafile
修改时间戳,改变的是atime和mtime为设定的时间,ctime为创建文件的时间(属性)
1.2 创建目录
[root@workstation Desktop]# mkdir westosdir1 westosdir2
-p当建立递归目录时使用(父级目录不存在,创建子目录时自动建立父级目录,并且不管有几个父级都可以自动建立)
[root@workstation Desktop]# mkdir -p dir/dir1/dir2
[root@workstation Desktop]# touch dir/dir1/dir2/jiafile
2.文件的删除**
2.1 文件删除
[root@workstation Desktop]# rm file3
rm: remove regular empty file 'file3'? y
[root@workstation Desktop]# rm -f file1
-f f=force 强制删除不提示
2.2 目录删除
[root@workstation Desktop]# rm -fr dir1
-r 表示递归 删除时删除目录本身及目录内所有的内容(目录+文件等)
二.文件的查看
1.cat
查看文件全部内容
[root@workstation Desktop]# cat jiafile
显示行号,但不统计空行
[root@workstation Desktop]# cat -b jiafile
显示行号,并且统计空行
[root@workstation Desktop]# cat -n jiafile
2.less
当文件内容较长时,less分页浏览文件内容
[root@workstation Desktop]# less jiafile
(1)直接按 v 进入vim模式,在vim中按 :wq 进入less模式
(2)直接按 q 退出less模式
(3)直接按 /关键字 高亮显示关键字
3.head&tail
1.显示文件前/后多少行(默认显示十行 head–前 tail–后)
[root@workstation Desktop]# head jiafile
[root@workstation Desktop]# tail jiafile
2.指定显示行数
前3行
[root@workstation Desktop]# head -3 jiafile
[root@workstation Desktop]# tail -1 jiafile
三.文件复制&移动
1.文件复制 cp
复制是按模板新建的过程
(1)复制文件
- 当file4不存在时,直接复制
[root@workstation Desktop]# cp file1 file4
- 当file2存在时,复制会有询问(相当于内容的覆盖)
[root@workstation Desktop]# cp file1 file2
cp: overwrite 'file2'? y
(2)复制目录(目录新建需要-r)
[root@workstation Desktop]# cp -r dir1 dir3
(3)复制多个文件到一个目录
[root@workstation Desktop]# cp file1 file2 file3 dir2
(4)复制多个目录到一个目录中(目录新建需要-r)
[root@workstation Desktop]# cp -r dir2 dir3 dir1
复制多个文件或者目录到同一个目录时,目的目录一定必须存在
2.文件移动 mv
相同分区的移动是重命名过程,不同分区的移动是复制删除过程
不同分区:例如CDEF磁盘 U盘 是五个不同的硬盘
(1)相同分区,文件的移动
- 当file2不存在时,直接重命名
[root@workstation Desktop]# touch file1
[root@workstation Desktop]# mv file1 file2
查询文件索引号 证明是 移动 是 重命名 过程
[root@workstation Desktop]# touch file1
[root@workstation Desktop]# ls -i file1
8625036 file1
[root@workstation Desktop]# mv file1 file2
[root@workstation Desktop]# ls -i file2
8625036 file2
- 当file2存在时,移动同样会询问,移动后桌面有两个file2,且内容相同。
[root@workstation Desktop]# ls -i file1
8625065 file1
[root@workstation Desktop]# mv file1 file2
mv: overwrite 'file2'? y
[root@workstation Desktop]# ls -i file2
8625065 file2
(2)相同分区,目录的移动相同分区,移动过程(无需重建),不需要加参数
[root@workstation Desktop]# mkdir dir{1,2}
[root@workstation Desktop]# mv dir1 dir2
复制单个文件 | (1)目的文件不存在,执行复制新建一相同文件;(2)目的文件存在,询问是否覆盖 |
---|---|
复制单个目录 | (1)目的目录不存在,执行新建一相同目录;(2)目的文件存在,复制目录到目录中 |
复制 / 移动多个文件或者目录到目录 | 目的目录一定存在 |
移动单个文件 | (1)目的文件不存在,重命名;(2)目的文件存在,重命名,并且覆盖存在文件内容 |
移动单个目录 | (1)目的目录不存在,重命名;(2)目的目录存在,移动到目的目录内 |
复制是新建文件的过程,(相同分区)移动是文件数据不变化,文件本件,即重命名的过程。
3.文件统计
文件的名称不能代表文件的类型,不能以文件的后缀名判定文件的类型
- file 查看文件的真实类型
[root@workstation Desktop]# cat jiafile
jiajaizhenbang
[root@workstation Desktop]# file jiafile
jiafile: ASCII text
[root@workstation Desktop]# touch jiafile2
[root@workstation Desktop]# file jiafile2
jiafile2: empty
- wc
(1)统计文件的 行数 词数 字节数
[root@workstation Desktop]# cat jiafile
jiajia
[root@workstation Desktop]# wc jiafile
1 1 7 jiafile
(2)统计文件的行数
[root@workstation Desktop]# wc -l jiafile
1 jiafile
(3)统计文件的词数
[root@workstation Desktop]# wc -w jiafile
1 jiafile
(4)统计文件的字符数
[root@workstation Desktop]# wc -m jiafile
7 jiafile
(5)统计文件的字节数
[root@workstation Desktop]# wc -c jiafile
7 jiafile
示例:
英文
一个英文一个字符 一个字节
中文
一个中文一个字符 三个字节
4.文件寻址
1.文件的地址
绝对路径
- 命令以“/开头
- 绝对路径在执行时系统不用考虑目前所在的位置
- 绝对路径是文件在系统中存在的真实位置
相对路径
- 命令不以“/”开头
- 命令在执行时系统会自动在对象前面加上“pwd”所显示的值
- 省略了系统当前所在目录的名称
- 相对于当前所在的目录的简写
2.文件寻址相关的命令
(1)显示路径 pwd
[root@workstation Desktop]# pwd
(2)切换路径
cd 目录名称(绝对或相对路径) | 进入指定目录 |
---|---|
cd - | 当前目录i和当前目录前所在的目录之间的切换 |
cd ~ | 进入当前用户的家目录 |
cd … | 进入当前目录的上级目录 |
cd / | 进入根目录 |
cd . | 当前目录 |
(3)文件查看信息ls ls=list
ls dir | 查看目录中包含的内容 |
---|---|
ls -d dir/ls -dl dir | 查看目录本身信息/ 详细查看目录本身信息 |
ls -a dir | 查看目录中内容 包含以后隐藏的文件(.jia) |
ls -S dir | 目录中的文件按大小顺序有序显示 |
ls -s dir/file | 查看文件的大小 |
ls -l file/dir | 查看文件属性 / 查看目录内部文件属性 |
ls -i file | 查看文件的索引ID号 |
在这里插入图片描述
系统为每个文件分配4kb的空间,当文件大小 小于4kb时,文件占4kb空间
当没有储存内容时,大小为0kb 当内容大于4kb时,系统分配更多的空间大小
5.系统中文件批处理
(1)系统中通用配置符号
* | 1~任意个字符 |
---|---|
? | 匹配单个字符 |
[[:alpha:]] | 单个英语字母 |
[[: lower:]] | 单个小写字母 |
[[:uppepr:]] | 单个大写字母 |
[[:digit:]] | 单个数字 |
[[: alnum ;]] | 单个字母或者单个数字 |
[[:punct:]] | 单个符号 |
[[:space:]] | 单个空格 |
[[:punct:][:alpha:]] | 单个符号或者单个英语字母 |
[root@workstation Desktop]# rm -f file[[:punct:]]
[root@workstation Desktop]# rm -f file?
(2)字符集合
- 精确匹配
{ } | 用于精确匹配的内容 |
---|---|
{1,2,8} | 1 2 8 三个数 |
{1…5} | 1 2 3 4 5五个数 |
-模糊匹配
[ ] | 用于模糊匹配的内容 |
---|---|
[1-9] | 这位是1-9的任意数字 |
[a-z] | 这位是a-z的任意字母 |
[!3-5] / [^3-5] | 这位不是3-5的任意数字 |
精确匹配{ }大括号内部的内容一定被执行,精确匹配无反选
模糊匹配[ ]中括号内部的内容 符合条件的被选择操作,创建文件时,不能用[ ]
[root@workstation Desktop]# touch file{1..9}
[root@workstation Desktop]# rm -fr file[^8-9]
六.~ 应用汇总
~ | 当前用户家目录 |
---|---|
~ username | 指定用户家目录 |
~ - | 当前目录和当前目录之前的目录之间的切换(相当于-) |
~+ | 当前目录(相当于".") |
[root@workstation Desktop]# cd ~
[root@workstation ~]# cd ~student
[root@workstation dir2]# cp ~-/file1 ~+