首页 > 系统相关 >Linux基础

Linux基础

时间:2024-05-05 13:33:59浏览次数:29  
标签:文件 Ctrl xxx 基础 vim Linux 目录 光标

目录

一、Linux系统介绍

​ 1、UNIX系统由贝尔实验室研究员丹尼斯.里奇和肯.汤普逊合作开发,并顺便发明了C语言,现主要应用于各种大型服务器,如:电信、银行、各大公司的核心关键业务,苹果公司以它作为内核,推出了MacOS、iOS系统,该系统收费,质量比较高。

​ 2、Minix系统是UNIX精简版主要用于科学研究,Linux的作者林纳克纳.托瓦斯就是受了它的启发,引发了全世界的程序员一起完善了Linux系统。

​ 3、Linux指的是系统的内核,目前由GNU社区维护,但并不能直接使用,需要安装相应的驱动、应用、界面才能使用,安装了驱动、应用、界面的Linux被称为发行版Linux,常用的发行版有:ubuntu、debian、redhat、CentOS、UOS、深度、新支点、安卓。

二、Linux文件系统介绍

Linux系统管理硬盘的能力非常强,因此不需要显式分区,也就没有盘符,所有文件都被管理在根目录下 /,整个Linux系统的文件组织是一棵倒悬树,根就是最顶层目录(/),目录之间只能上下进入,不能左右。

bin目录:这个目录存放着一些基本的可执行命令,如ls、cp和rm等。一般来说,这些命令是所有用户都可以使用的。

sbin目录:存放系统管理命令的目录,这些命令一般只有管理员或root用户才能执行,普通的管理员用户需要sudo提权才能执行这些命令,而root用户可以直接执行。

boot目录:包含了启动Linux系统所需的文件,如内核映像文件和引导加载程序。

dev目录:该目录包含了设备文件,用于与硬件设备进行交互。例如,磁盘驱动器、打印机、键盘等设备都在/dev目录下表示为文件。

etc目录:存放系统级配置文件的目录。这些文件包括网络配置、用户账户、服务配置等。

lib目录: 这个目录包含了共享库文件(动态链接库文件,类似Windows下的.dll文件),供应用程序在运行时使用。

media目录:用于挂载可移动介质(如光盘、U盘)的目录。当插入可移动介质时,系统会自动将其挂载到该目录下的子目录中。

mnt目录:是一个常用的挂载点目录,用于挂载临时文件系统或其他设备,MNT是Mount的缩写,表示挂载。

opt目录:用于安装第三方软件的目录,一些独立安装的应用程序会将自己的文件放在/opt目录下。

proc目录:虚拟文件系统,存储了系统和进程的运行时信息。通过访问/proc目录下的特殊文件,可以获取有关系统和进程的详细信息。

root目录:超级用户(root)的主目录,与普通用户的主目录(/home)不同,root用户的主目录是/root,为了安全,ubuntu系统下的root用户默认关闭。

run目录:是一个临时文件系统(tmpfs),用于存储运行时数据和临时文件,它是在启动过程中由系统自动创建的,并在每次重新启动时清空。

usr目录:系统资源库,是 Unix Software Resource Library的缩写,或者更具体地说,它是用户相关和共享的数据文件和程序文件的根目录。

home目录:用于存放用户的主目录。每个用户在/home目录下有一个以用户名命名的子目录,用户可以在自己的主目录下创建和管理文件。

三、什么是路径

文件的地址,它描述了文件在文件系统中的位置信息。

1、绝对路径

​ 以根目录为起点,描述一个文件的位置,例如stdio.h头文件的绝对路径:/usr/include/stdio.h。

2、相对路径

​ 以当前位置(工作目录)为起点,描述一个文件的位置,例如我当前在/home目录下,stdio.h头文件的相对路径:../usr/include/stdio.h。

3、特殊路径

/ 根目录,也被作路径分隔符,windows系统的路径分隔符是
~ 用户主目录,/home/用户名/
.. 代表当前目录的上一级目录
. 代表当前目录 ./usr/xxx/xxx

- 上一次所在的工作目录

四、终端的使用技巧

Ctrl+Alt+T键:快速打开终端,第一次使用终端,可以把终端锁定到启动器

Shift+Ctrl+T键:新建终端标签页,像浏览器一样,打开若干个标签页,完成各样工作

Shift+Ctrl+加号键:放大终端字体

Ctrl+减号键:缩小终端字体

home键:光标跳转到行首

end键:光标跳转到行尾

Tab键:自动补全命令或参数,如果候选的有多个,则无法补出,此时按两次Tab键会列出所有候选

up/down键:可以调用命令的执行记录

! 可以把最近一次执行过的cmd开头的指令,再执行一次

F11 全屏/退出全屏

五、Linux系统命令

1、常用的命令

clear
功能:清理屏幕,Ctrl+l快捷键具有相同的功能

pwd
功能:显示当前所在的工作目录

cd <path>
功能:改变当前的工作目录

ls [参数] [路径]
功能:显示指定路径下有哪些文件,如果没有路径参数则显示当前工作目录下有哪些文件
	-l 显示文件的详细信息
		文件类型 权限 硬链接数 用户名 组名 文件大小 最后修改时间 文件名
	-a 显示隐藏的文件
		在Linux和UNIX系统下,以.开头的文件默认是隐藏的,Ctrl+h可以在界面浏览时显示或隐藏.开头的文件。
	ubuntu系统下重定义了:
		ls -a 为la 
		ls -al 为ll
		ls 为l
 
man [n] <key> 查看系统的帮助手册
	章节1 系统命令的说明文档
	章节2 系统函数的说明文档
	章节3 C语言标准库函数的说明文档
	如果要查的关键字多个章节同时存在,则需要指定章节号,否则优先显示章节号最小的内容。
	/key 在手册中查询,n查看下一个,u查看上一个,q退出手册
	
time <可执行文件> 
功能:执行一个程序,并记录该程序的执行时间
	real	0m0.015s 程序执行的总用时
	user	0m0.013s 用户态执行的时间
	sys		0m0.000s 内核态执行的时间
	real = user + sys + 用户态内存态切换消耗的时间

size <可执行文件>
功能:查看可执行文件的 text、data、bss 内存段的大小

strace <可执行文件>
功能:追踪程序的执行过程

2、文件相关的命令

touch <filename>
功能:创建新文件

rm <filename> 
功能:删除文件,删除的文件不经过回收站,而是直接从文件系统中删除,很难恢复,删除时要慎重

cp <src> <<path>/[filename]> 
功能:复制文件,可以在复制过程中给目标文件取个新名字

mv <src> <<path>/[filename]>
功能:移动文件,也可以在移动过程中给目标文件取个新名字,并且它还具有重命名的功能

cat <filename>
功能:查看文件内容,它会把文件的所有内容都输出到屏幕上,但不适合用来查看内容比较多的文件

more <filename> 
功能:用于查看文件内容比较多的文件,默认只显示文件的第一页内容
	回车键查看下一行
	空格键查看下一页
	/key 搜索 n向下搜索 N向上搜索
	q键退出
	
head [-nx] <filename>
功能:只显示文件的前10行内容,一般用于查看代码的说明信息

tail [-nx] <filename>
功能:只显示文件的后10行内容,一般用于查看代码的版权信息

3、目录相关的命令

mkdir <dirname>
功能:创建目录
	-p 可以创建多级目录

rmdir <dirname> 
功能:删除目录,但只能删除空目录,如果目录中有内容则删除失败

rm -rf <dirname>
功能:强制删除非空目录
	
cp -r <srcdir> <<path/>[dirname]> 
功能:直接使用cp复制目录默认会忽略,需要加上r参数

mv 在移动目录和重命名目录时,不需要加任何参数,直接使用即可

4、网络相关的命令

ifconfig
功能:查看网络配置信息(windows系统使用ipconfig),使用ifconfig设置网卡时,需要管理员权限
        sudo ifconfig <name> down 禁用网卡
        sudo ifconfig <name> up 启用网卡
        sudo ifconfig <name> xxx.xxx.xxx.xxx 设置网卡的ip地址
        sudo ifconfig <name> netmask xxx.xxx.xxx.xxx 设置网卡的子网掩码
        
ping xxx.xxx.xxx.xxx
功能:测试网络的是否连通
	ping 网关的ip地址 测试本机的ip地址和子网掩码配置是否正确
		如果此时与网关是连通的,且不能上网,则说网关有问题
	ping www.baidu.com 测试本机是否能上网
	ping 127.0.0.1 测试本机网卡是否正常工作
	ping 命令在Linux系统下会连续执行,Ctrl+c快捷键结束,在windows系统下默认只执行4次,加/t参数会连接执行,同样Ctrl+c结束。
	
telnet xxx.xxx.xxx.xxx 
功能:远程登录指令,可以远程登录上服务器使用它
    采用明文传输,安全性低,但速度快,一般在公司内局域网使用该命令远程登录。
    
ssh xxx.xxx.xxx.xxx
功能:安全的远程登录命令,采用密文传输,安全性高,默认采用当前系统的用户名

ssh 用户名@xxx.xxx.xxx.xxx
功能:指定用户名远程登录,第一登录会让选择是否保存密钥。
	exit 退出登录

练习:
	服务器IP:47.97.229.46
	用户名:student
	密码:zzxx

5、其它命令

chmod
功能:修改文件权限
	用法1:chmod mmm <filename>
            每个 m = 4r 2w 1x 都由组成一共有8种情况
            0 ---   1 --x   2 -w-   3 -wx 
            4 r--   5 r-x   6 rw-   7 rwx
            第一m 对应前三个字符 文件的主人的权限(属主)
            第二m 对应中间三个字符 与文件的主人同一级用户的权限(属组)
            第三m 对应末尾三个字符 其它用户的权限
	用法二:chmod +/- r、w、x <filename> 所有用户一起增加或减少某一项权限。
    注意:目录文件需要执行权限才能进入,常用的两种权限:644普通文件,755目录文件
    
ln <src> <link>
功能:创建链接文件(快捷方式)
    ln命令默认创建是硬链接文件,它链接的是文件的内容,当链接目标被删除后,链接文件依然能正常访问和使用。
    -s 创建的是软链接文件,当链接的目标被删除后,链接文件就不再访问了,软链接是依靠路径信息链接文件。
    注意:目录文件只能创建软件链接。
    任务:在~目录下为共享目录创建一个软链接,方便以后使用。
    
tar
功能:压缩、解压文件
    tar -zcvf pack.tar.gz <要压缩的文件或目录,可以是多个,用空格分开> 
    tar -zxvf pack.tar.gz 解压到当前目录
    tar -zxvf pack.tar.gz -C <path> 解压到指定目录

find 用于查找文件,可以根据查找条件,把符合条件文件查找出来。
    find <文件名> 可以在当前路径下查找某个文件是否存在
    find <path> -name <文件名> 可以在指定的路径下查找某个文件是否存在
    https://m.runoob.com/linux/linux-comm-find.html

grep <"key"> <[path/]文件名>
功能:查找文件的内容,也就是在指定的文件中查关键字
	-i 忽略大小写
	-r 递归搜索目录以及子目录中的所有文件的内容
	-w 仅匹配完整单词

六、通配符、管道、重定向

1、通配符

* 代表任意多个字符

​ 例如:

​ rm * 删除当前目录下的所有文件

​ grep -r "sprintf" /* 在当前用户的主目录以及子目录下,查找文件内容有“sprintf"的文件

​ find -name <"*key">

​ find ~ -name *txt 在当用户的主目录,查找文件名以txt结尾的文件。

? 代表一个字符

​ 例如:rm hehe.? 删除以hehe开头的,扩展名只有一个字符的文件。

2、管道

​ 把一个命令执行结果当作另一条命令的数据源,也就是把两条命令连接在一起执行

​ ls -al | grep <"key">

​ find /usr/include/ | grep "math"

3、重定向

​ 可以把命令的执行结果输出到文件中,而不显示到屏幕上。

​ ls -l > list.txt 如果list.txt文件存在则先清空文件空,如果文件不存在则创建。

​ ls -l >> list.txt 如果list.txt文件不存在则创建,如果文件存在则把内容追加到文件的末尾。

七、对终端进行配置

1、注意

​ 配置任何文件之前都要把配置文件备份一下,防止配置错误导致软件、系统无法运行。

# 对xxx配置文件进行备份
cp xxx.conf xxx_back.conf  
# 备份终端的配置文件
cp ~/.bashrc ~/.bashrc_back

2、配置终端的命令提示信息

​ 1、打开终端配置文件:gedit ~/.bashrc

​ 2、修改PS1的内容"\u@\w$",完成后Ctrl+S保存后退出

​ 3、重新加载配置文件:source ~/.bashrc 实现精简命令提示信息的效果

3、配置自定义命令

​ 1、打开终端配置文件:gedit ~/.bashrc
​ 2、在文件的末尾添加以下内容:

#创建目录并进入
mk()
{
	mkdir $1 && cd $1
}

#移动文件到回收站 需有删除过文件 路径才存在
del()
{
    mv $1 ~/.local/share/Trash/files/
}

# 返回上级目录
alias cu='cd ..'

4、删除配置项

​ 如果在~/.bashrc 文件删除的某些配置内容,保存退出配置文件。
​ 注意:此source ~/.bashrc指令无效,需要退出终端再重新打开才有效。

八、vim文本编辑器

1、vi文本编辑器介绍

​ 是一款可以在无界面的情况下编写代码的工具,所有UNIX、Linux系统自带的都有,通用性强,是在服务器上修改代码、配置文件非常好的文本编辑器。

​ 可以进行自定义、二次开发,被称为成长型的神器,vim是vi的增强版,一般Linux系统需要手动安装,ubuntu系统的安装指令是:sudo apt-get install vim

​ vim自带的使用教程:vimtutor

2、vim的基本用法

​ 1、vim <filename.c> 文件如果存在则打开,不存在就会创建
​ 2、按 i 键,可以编辑内容
​ 3、编辑完成后按 ESC 键退出编辑
​ 4、连续按两下ZZ (Shift+z),保存退出

3、vim的三大主要模式和模式切换

正常模式:是进入vim的默认模式,主要用于阅读文件,或通过快捷键修改文件

插入模式:主要用于编辑文件的内容

行底模式:主要用于对vim进行一些设置,或执行一些命令

4、模式切换方法

正常模式 切换到 插入模式i
插入模式 切换到 正常模式ESC、Ctrl+c
正常模式 切换到 行底模式:输入冒号
行底模式 切换到 正常模式ESC、Ctrl+c
​ 注意:插入模式与行底模式之间不能直接切换,必须经过正常模式中转

5、正常模式下的操作

准备工作:

cp /usr/include/stdio.h ./

vim stdio.h

在行底模式下:set nu 显示行号

光标移动:

​ h左 j下 k上 l右 光标的上下左右移动,在vim中可以使用方向键移动,但在vi中只能使用hjkl

​ page down 光标向下跳转一页

​ page up 光标向上跳转一页

​ home 光标跳转到行首

​ end 光标跳转到行尾

​ gg 光标跳转到文件的第一行

​ G/shift+g 光标跳转到文件的最后一行

G 光标跳转到第n行

up 光标向上跳转n行

down 光标向下跳转n行

​ vim file.c +n 进入vim后光标跳转到第n行

​ 注意:我们在编译代码时,如果代码出错编译器会准确报告出错代码的行号,熟练的跳转光标方便快速找到错误代码。

删除内容:

​ x 删除一个字符

x 删除n个字符

​ dw/de 删除一个单词(从当前光标开始删除到单词分隔符,_是单词的一部分)

​ dd 删除一行

​ ndd 删除n行

​ d$/D 从当前光标位置删除到行尾

​ d^ 从当前光标位置删除到行首

复制内容:

​ yw/ye 复制一个单词

​ yy/Y 复制一行

​ nyy 复制n行

​ y$ 从当前光标位置复制到行尾

​ y^ 从当前光标位置复制到行首

​ p 把复制的内容粘贴光标的后面 小写

​ P 把复制的内容粘贴光标的前面 大写

移动内容:

​ 删除的内容还存储在缓冲区,使用p/P粘贴到新位置,就达到了移动内容的效果。

替换内容:

​ r 把光标所在的字符替换成
​ cw/ce 替换一个单词(删除单词进入插入模式)
​ R 进入替换模式,按ESC、Ctrl+c退出替换模式。
​ xp 可以快速调换两字符的位置。

撤销操作:

​ u 撤销一次操作,可以连续使用多次
​ U 撤销当前行的所有操作,回到最初状态,但只能撤销一次。
​ Ctrl+r 取消撤销操作

查找内容:

​ /key 按Enter键 n向下查找,N向上查找

6、进入插入模式的多种方法

​ i 在当前光标的前面进入插入模式

​ I 光标跳转到行首进入插入模式 大写

​ a 在当前光标的后面进入插入模式

​ A 光标跳转到行尾进入插入模式

​ o 在光标下面添加一个空白行,然后进入插入械

​ O 在光标上面添加一个空白行,然后进入插入械

7、插入模式下的操作

该模式主要用于编辑内容,快捷键不多

​ Ctrl+i 相当于Tab键的功能,用于代码缩进

​ Ctrl+d 当前行代码向左移动

​ Ctrl+j 相当于回车键的功能

​ Ctrl+c 相当于ESC键的功能

​ Ctrl+h 相当于Backspace键的功能

​ Ctrl+p/n 自动补全,写代码时非常好用

​ Ctrl+s 休眠

​ Ctrl+q 醒来

​ Ctrl+z 挂起当前正在运行的程序,fg命令可以还原,是系统的快键,不是vim的。

8、行底模式下的操作

​ ! 执行系统命令

​ w 保存内容,相当于其它编辑的Ctrl+s

​ q 退出,如果内容有发生修改,用q无法退出

​ wq 保存退出

​ q! 强制退出,无法保存修改的内容

​ x 保存退出,但只保存内容,不保存密码。

​ X 加密,wq保存密码退出

​ set key= , wq保存退出,会删除掉密码

​ %s/old/new 全文替换,会在下方告诉你替换了多少次

​ >n 从光标所行开始,下面n行代码向右缩进

​ <n 从光标所行开始,下面n行代码向左缩进

​ set nu 显示行号

​ set nonu 不显示行号

9、对vim进行配置

​ 在行底模式下对vim进行的设置,只是临时有效,vim退出后就失效了,要想长期有效就要把这些设置命令写入vim的配置文件,vim的配置文件在:~/.vimrc。

" 显示行号
set number

" 设置tab键宽度
set tabstop=4

" 设置>n <n缩进时的宽度
set shiftwidth=4

" 设置代码按照C语言代码自动排列
set cindent

" 突出显示当前行
set cursorline

" 设置自动保存
set autowrite

" 设置不产生交换文件
set noswapfile

" 启用鼠标定位光标
set mouse=a

" 保存退出函数
func SaveExit()
	exec 'wq'
endfunc

" 映射正常模式Ctrl+z快捷键调用 SaveExit函数
map <C-z> : call SaveExit() <CR>
" 映射插入模式Ctrl+z快捷键调用 SaveExit函数
imap <C-z> <ESC> : call SaveExit() <CR>

" 编译运行函数
func CompileRun()
	" 保存代码
	exec 'w'
	" 判断是否是.c文件
	if &filetype=='c'
		" 编译并运行当前文件
		exec '!gcc % -lm -lpthread && ./a.out'
	" 判断是否是.cpp文件
	elseif &filetype=='cpp'
		exec '!g++ % -std=gnu++17 && ./a.out'
	endif
endfunc

" 映射正常模式Ctrl+x快捷键调用 CompileRun函数
map <C-x> : call CompileRun() <CR>
" 映射插入模式Ctrl+x快捷键调用 CompileRun函数
imap <C-x> <ESC> : call CompileRun() <CR>

" 自动填充头文件和main函数
func InsertMain()
	call setline(1,"#include <stdio.h>")
	call setline(2,"int main() {")
	call setline(3,"\t")
	call setline(4,"}")
	exec "5"	
endfunc

" 当新建的是.c文件时自动调用InsertMain函数
autocmd BufNewFile *.c : call InsertMain()

func InsertCppMain()
	call setline(1,"#include <bits/stdc++.h>")
	call setline(2,"int main() {")
	call setline(3,"\t")
	call setline(4,"}")
	exec "6"	
endfunc
autocmd BufNewFile *.cpp : call InsertCppMain()

" 自动填充头文件卫士
func InsertHeadGuard()
	call setline(1, '#ifndef '.toupper(expand('%:r')).'_H')
	call setline(2, '#define '.toupper(expand('%:r')).'_H')
	call setline(3, "")
	call setline(4, '#endif//'.toupper(expand('%:r')).'_H')
	exec "3"
endfunc

" 当新建的是.h文件时自动调用InsertHeadGuard函数
autocmd BufNewFile *.h : call InsertHeadGuard()

标签:文件,Ctrl,xxx,基础,vim,Linux,目录,光标
From: https://www.cnblogs.com/sleeeeeping/p/18173441

相关文章

  • Linux 下使用 NetLink 检测设备的热插拔
    一、简单介绍下NETLINK    netlink套接字是用以实现用户进程与内核(2.6.24之后的版本)进程通信的一种特殊的进程间通信(IPC),也是网络应用程序与内核通信的最常用的接口。二、为什么能用NETLINK检测设备热插拔    当我们的设备从主机上进行拔插时,内核会通过netlin......
  • Linux 输出重定向 2>&1 , 1>&2
    在shell程式中,最常使用的FD(filedescriptor)大概有三个,分别是:0是一个文件描述符,表示标准输入(stdin)1 是一个文件描述符,表示标准输出(stdout)2 是一个文件描述符,表示标准错误(stderr)在标准情况下,这些FD分别跟如下设备关联: stdin(0):keyboard键盘输入,并返回......
  • Linux 使用 inotify 监控文件或目录变化
    转载:https://www.cnblogs.com/PikapBai/p/14480881.html作者:PikapBai 1运行环境#操作系统:Ubuntu182inotify简介#inotify是一个Linux内核特性(监视文件系统事件),它用于监控文件系统,比如删除、读、写操作等,当发生对应事件时,则会触发inotify。当监控目录时,与该目录......
  • Nexpose v6.6.248 for Linux & Windows - 漏洞扫描
    Nexposev6.6.248forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseApr24,2024请访问原文链接:Nexposev6.6.248forLinux&Windows-漏洞扫描,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时......
  • Nessus 10.7 Auto Installer for RHEL 9/AlmaLinux 9/Rocky Linux 9 (updated Apr 202
    Nessus10.7AutoInstallerforRHEL9/AlmaLinux9/RockyLinux9(updatedApr2024)发布Nessus试用版自动化安装程序,支持macOSSonoma、RHEL9和Ubuntu22.04请访问原文链接:https://sysin.org/blog/nessus-auto-install-for-rhel-9/,查看最新版。原创作品,转载请保留出处......
  • 在Linux中,什么是冷备份和热备份?
    在数据备份领域,冷备份(ColdBackup)和热备份(HotBackup)是两种不同的备份策略,它们根据系统是否运行来区分:1.冷备份(ColdBackup)冷备份是指在系统不运行或者关闭状态下进行的数据备份。在这种情况下,没有数据被修改或访问,因此可以确保备份的数据是一致的。特点:简单:不需要特殊的软......
  • 在Linux中,如何进行日志审计?
    在Linux系统中,日志审计是确保系统安全性的重要部分,它可以帮助系统管理员监控和记录系统中发生的各种事件。以下是进行日志审计的步骤和一些常用的工具:1.启用系统审计Linux系统中的审计系统通常由auditd守护进程提供。首先,确保auditd已经安装并启动:sudoapt-getinstallauditd......
  • 在Linux中,如何恢复备份的文件?
    在Linux中恢复备份的文件通常取决于你使用的备份工具和备份的类型。以下是一些常见的备份工具和它们恢复文件的基本步骤:tar使用tar命令创建的备份通常是一个压缩的文件,可以使用以下命令来恢复:tar-xvfbackup.tar如果备份文件是使用gzip压缩的,可以使用:tar-zxvfbacku......
  • 在Linux中,如何创建文件系统的备份?
    在Linux中创建文件系统备份的方法有很多,这里介绍几种常见的方法:1.使用tar命令tar(tapearchive)是一个常用的归档工具,可以用来创建文件和目录的备份。创建备份:sudotar-czvf/path/to/backup.tar.gz/path/to/directoryc代表创建归档。z代表用gzip压缩归档。v代表在......
  • 在Linux中,什么是快照备份?
    以下是关于快照备份的一些详细解释:1.文件系统快照原理:文件系统快照通过捕获文件系统在某个时间点的状态来工作。这通常是通过复制文件系统的元数据(如inode和目录结构)和正在使用的数据块来完成的,同时保持对原始文件系统的写操作,这样写操作会在快照之后继续发生在原始文件系统的......