档案管理与 vim 初探
3.1:档案管理
在 Linux 底下,所有的东西都以档案来呈现,不同的档案特性会有不同的结果。 读者可以常见的两种文件格式为:
一般档案:实际放置数据的档案
目录档案:重点在放置'文件名',并没有实际的数据
为何需要目录文件? 读者可以想象,如果仅有一个柜子,你将所有书籍全部丢进同一个柜子中,则未来要找资料时,会很难找寻(因为单品太多)。 若可以有多个柜子,将不同的数据分类放置于各别的柜子中,未来要找某一类别的资料,只要找到该类别的柜子,就能够快速的找到资料(单品较少),这就是目录档案的重点。
3.1.1:目录的建立与删除
前一堂课已经谈过,目录的建立主要使用 mkdir 这个指令,这个指令将建立一个'空目录'。 所谓的'空目录'意指该目录内并没有其他档案的存在。 至于删除目录则使用 rmdir 这个指令,但同理,这个指令仅能'删除空目录'而已。
前往 /dev/shm 目录
建立名为 class3 的目录
观察 / dev/shm/class3 目录的内容,并请说明内部有没有其它文件( 注:使用 ll 加上显示隐藏文件的选项)
透过 cp /etc/hosts /dev/shm/class3 将文件复制到该目录内,并观察 class3 目录的内容
使用 rmdir /dev/shm/class3 尝试删除该目录,并说明可以或不行删除该目录的原因
使用rm可以删除文件,但默认rm 仅能删除一般文件无法删除目录,除非加上某些选项才行。
承上一个例题,进入到 /dev/shm/class3 当中,并且使用 rm 删除掉所有该目录下的文件 (非隐藏文件)
回到 /dev/shm 当中,此时能否使用 rmdir 删除 class3 目录? 为什么?
观察目录本身的参数
当使用 ll dirname 时,默认会显示出'该目录下的文件名',因为目录的内容就是文件名资料。 若读者需要了解到目录本身的信息,而不是目录的内容, 可以使用 -d 的选项,如下范例:
[student@localhost ~]$ ll /etc/cron.d總計 8 -rw-r--r--. 1 root root 128 11月 9 00:47 0hourly -rw-r--r--. 1 root root 108 11月 9 01:45 raid-check# 此時,你看到的上面的資料,是 /etc/cron.d 目錄內的檔名列表,並不是 cron.d 本身的狀態![student@localhost ~]$ ll -d /etc/cron.ddrwxr-xr-x. 2 root root 39 2月 26 09:05 /etc/cron.d# 這時,才是順利的顯示 cron.d 的狀態
承上,读者可以清楚的看到有没有加上 -d 的选项结果差异相当大。
3.1.2:万用字符
在 bash 的环境中,要查询某些关键词的信息时,需要通过一些终端环境下的特殊字符的支持,此即为万用字符。 经常使用的万用字符有:
符号 | 意义 |
* | 代表' 0 个到无穷多个'任意字符 |
? | 代表'一定有一个'任意字符 |
[ ] | 同样代表'一定有一个在括号内'的字符(非任意字符)。 例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』 |
[ - ] | 若有减号在中括号内时,代表'在编码顺序内的所有字符'。 例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的! |
[^ ] | 若中括号内的第一个字符为指数符号 (^) ,那表示'反向选择',例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。 |
若读者想要了解 /etc 底下有多少档名开头为 cron 的档案时,可以使用如下的方式查询:
[student@localhost ~]$ ll /etc/cron*[student@localhost ~]$ ll -d /etc/cron*
如果加上 -d 的选项,则档名会变得比较单纯,但若没有加上 -d 的选项,则 ll 会列出「许多目录内的文件名资料」, 与默认想要了解的文件名有所差异。 因此 -d 选项就显的更为重要。
列出 /etc/ 底下含有 5 个字符文件名
列出 /etc/ 底下含有数字在内的文件名
3.1.3:档案及目录的复制与删除
前一堂课也稍微介绍过复制,复制主要使用 cp 来处理,相关的选项请自行 man cp 来查询。 默认 cp 仅复制文件,并不会复制目录,若需要复制目录,一般建议直接加上 -r ,而如果是需要完整备份,则最好加上 -a 的选项为宜。 至于为何是 -a,也请自行 man cp 喔!
另外,除了正常的一般文件与目录档案之外,系统也经常会有链接文件的情况出现,例如底下的数据:
[student@localhost ~]$ ll -d /etc/rc0.d /etc/rc.d/rc0.dlrwxrwxrwx. 1 root root 10 5月 11 2019 /etc/rc0.d -> rc.d/rc0.d drwxr-xr-x. 2 root root 6 5月 11 2019 /etc/rc.d/rc0.d
链接文件的特色是,该行开头的 10 个字符最左边为 l (link) ,一般档案为减号 (-) 而目录文件为 d (directory) 。 如上表所示,其实 /etc/rc0.d 与 /etc/rc.d/rc0.d 是相同的资料,其中 /etc/rc0.d 是链接档,而原始档为 /etc/rc.d/rc0.d。 此时读者需要注意,亦即当你进入 /etc/rc0.d 时,代表实际进入了 /etc/rc.d/rc0.d 那个目录的意思。
复制目录时
一般来说,复制目录需要加上 -r 或 -a,两者的差异如下:
# 先理解複製連結檔需要注意的事項:[student@localhost ~]$ cd /dev/shm[student@localhost shm]$ cp -r /etc/init.d .[student@localhost shm]$ lllrwxrwxrwx. 1 student student 11 3月 10 09:12 init.d -> rc.d/init.d# 由於這個 /etc/init.d 連結到的是一個目錄檔,因此,當你複製時,若結尾沒有加上 / 的話, # 就會像這個案例一樣,你只是複製連結檔本身,而不是原本實際的資料。[student@localhost shm]$ rm init.d[student@localhost shm]$ cp -r /etc/init.d/ . <==結尾一定要加上斜線 /[student@localhost shm]$ lldrwxr-xr-x. 2 student student 80 3月 10 09:13 init.d <==這樣就複製過來了。# 查看使用 -r 複製時,兩個目錄間的差異:[student@localhost shm]$ ll init.d /etc/init.d//etc/init.d/: 總計 24 -rw-r--r--. 1 root root 18440 8月 23 2019 functions -rw-r--r--. 1 root root 1161 11月 9 07:13 README init.d: 總計 24 -rw-r--r--. 1 student student 18440 3月 10 09:13 functions -rw-r--r--. 1 student student 1161 3月 10 09:13 README# 因為我們用一般帳號嘗試複製,所以權限不同還 OK。問題是,怎麼連檔案的時間也不同?# 測試 -a 複製時,嘗試複製權限的行為狀態:[student@localhost shm]$ cp -a /etc/init.d/ init.d2[student@localhost shm]$ ll init.d2-rw-r--r--. 1 student student 18440 8月 23 2019 functions -rw-r--r--. 1 student student 1161 11月 9 07:13 README# 看起來時間參數就跟原本的相同了。
读者可以发现 -a 时,连同档案的时间也都复制过来,而不是使用目前的时间来建立新的档案。 此外,如果以 root 的身份来执行上述指令时, 则连同权限 (前面的 root 变成 student) 也会跟原始文件相同! 这就是 -r 与 -a 的差异。 因此,当系统备份时,还是建议使用 -a 的。
目标档案的存在与否
当你使用 cp 进行复制时,先来查看一下 cp --help 的语法说明:
[student@localhost ~]$ cp --help用法:cp [選項]... [-T] 來源 目的地 或:cp [選項]... 來源... 目錄 或:cp [選項]... -t 目錄 來源... Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. ......
在基本的语法当中,如果来源只有一个,那么目的地就不限制是档案或目录。 如果来源有多个,那么最后的目的地就一定要是目录。 那如果加上 -t 呢,则必需要来源与目标的顺序对调... 这个作法也相当有趣,我们可以查看一下底下的范例来理解『目的地』是档案或目录时的差异。
先进入 /dev/shm ,同时观察目录下有无名为 rc1.d 的文件名
使用' cp -r /etc/rc.d/rc1.d rc1.d '将 rc1.d 复制到本目录下,然后使用 ll 与 ll rc1.d 观察该目录
重新执行上述复制的指令一次,然后使用 ll rc1.d ,观察一下有什么变化?
当复制目录,且目标为未存在的目录,则系统会建立一个同名的目录名称来存放资料。 但若目标档案已存在, 则原始目录将会被放置到目标档案内,因此目标目录是否存在,会影响到复制的结果。
删除档案
删除文件使用rm,其中需要特别注意,不要随便使用rm -rf这样的选项,因为-r为删除目录,-f为不询问直接删除,因此若后续的文件名写错时,将会有相当大的影响(一般来说,档案删除是无法救援回来的)。
进入 /dev/shm ,观察到前一个例题 /dev/shm/rc1.d 的目录存在后,请将它删除
3.1.4:特殊档名的处理方式
在 windows 底下经常会有比较特别的文件名出现,最常出现者为文件名含空白字符的情况。 由于指令操作行为下,空白键亦为特殊字符, 因此操作上需要将这些特殊字符改为一般字符后,方可进行处理。 常见的处理方式有这些情况:
空白字符文件名
一般可以使用单引号或双引号或反斜线 (\) 来处理这样的文件名。 例如建立一个名为' class one '的文件名时,可以这样做:
[student@localhost ~]$ cd /dev/shm[student@localhost shm]$ mkdir "class one"[student@localhost shm]$ lldrwxrwxr-x. 2 student student 40 3月 10 09:55 'class one'
CentOS8 很特别,在有特殊档名的状态下,会主动的在文件名左右两侧加上单引号~不过,这只是显示的状态而已, 事实上,这个文件名其实是没有单引号的喔! 不要被ll的结果误导了。
读者可以发现最右边出现了 class one 的文件名,但这个文件名要如何删除呢?
[student@localhost shm]$ rmdir class onermdir: failed to remove ‘class’: 沒有此一檔案或目錄 rmdir: failed to remove ‘one’: 沒有此一檔案或目錄 [student@localhost shm]$ rmdir class\ one# 其實,使用『 rmdir cla[tab] 』就可以讓 bash 自動幫你將檔名補齊喔!
如果仅单纯的补上档名,则 rmdir 会误判有两个名为 class 与 one 的目录要删除,因为找不到,所以回报错误。 此时你可以使用成对双引号或单引号来处理, 也可以透过反斜线将空白变成常规字符即可 (其实通过按下 [tab] 按钮也可以找到上述的方式来删除! )
加号与减号开头的文件名
读者应该知道指令下达时,在指令后的选项为开头是 +或 - 的项目,如果文件名被要求建立成 -newdir 时,该如何处理?
[student@localhost shm]$ mkdir -newdirmkdir: 不適用的選項 -- n Try 'mkdir --help' for more information.
此时会回报错误,若尝试使用单引号来处理时,同样回报错误! 使用反斜线,同样回报错误。 是否无法建立此类文件名呢? 其实读者可以通过绝对/相对路径的作法来处理,例如:
[student@localhost shm]$ mkdir /dev/shm/-newdir <==這是絕對路徑檔名[student@localhost shm]$ mkdir ./-newdir2 <==這是相對路徑檔名[student@localhost shm]$ ll -d ./*new*drwxrwxr-x. 2 student student 40 3月 10 10:28 ./-newdir drwxrwxr-x. 2 student student 40 3月 10 10:28 ./-newdir2
这样就可以建立开头为+或 - 的文件名。 删除同样得要使用这样的文件名撰写方式来处理。
使用 rm --help 查询一下,是否有关于文件名为 - 开头的处理模式?
将刚刚建立的 -newdir, -newdir2 删除
3.1.5:隐藏文件的观察与档案类型的观察
观察隐藏档案
要观察隐藏文件时,可以使用如下的方式来处理:
# 預設情境,亦即不顯示隱藏檔[student@localhost shm]$ cd[student@localhost ~]$ lldrwx------. 2 student student 6 3月 1 15:35 Desktop drwx------. 2 student student 6 3月 1 15:35 Documents drwx------. 2 student student 6 3月 1 15:35 Downloads .......# 同時顯示隱藏檔與正常檔案[student@localhost ~]$ ll -adrwx------. 15 student student 4096 3月 10 10:15 . drwxr-xr-x. 3 root root 21 3月 8 00:15 .. -rw-------. 1 student student 3415 3月 8 00:14 .bash_history -rw-r--r--. 1 student student 18 11月 9 00:21 .bash_logout -rw-r--r--. 1 student student 141 11月 9 00:21 .bash_profile .......# 特殊情境,只會顯示隱藏檔[student@localhost ~]$ ll -d .*
由于隐藏文件是文件名开头为小数点的文件名,因此可以透过 -a 来查询所有的档案,或者是透过 .* 来找隐藏文件而已。 不过得要加上 -d 的选项才行,否则会连同一堆目录内容也被抓出来,画面就太乱了。
观察档案的类型
但如果需要观察文件的类型与型态,就需要使用 file 这个指令来观察。 例如分别找出 /etc/passwd 即 /usr/bin/passwd 这两个档案的格式为何?
[student@localhost ~]$ ll /etc/passwd /usr/bin/passwd-rw-r--r--. 1 root root 2433 3月 8 00:15 /etc/passwd -rwsr-xr-x. 1 root root 34928 5月 11 2019 /usr/bin/passwd [student@localhost ~]$ file /etc/passwd /usr/bin/passwd/etc/passwd: ASCII text /usr/bin/passwd: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=4ba7de752293f0c8e4a3547285ea1952492eb9e4, stripped
读者即可知道这两个文件分别是文字文件 (ASCII text) 及执行文件 (ELF 64-bit LSB...)。
观察 /etc/rc0.d , /etc/rc.d/rc0.d , /dev/null , /dev/vda 的档案类型为何?
3.1.6:档名的移动与更名
若档案建立到错误的位置时,可以使用 mv 来处理。 同时若文件名键错,也能够使用 mv 来更名。
让 student 回到家目录
将 /etc/rpm 复制到本目录
该目录移动错误,请将本目录的 rpm 移动到 /dev/shm
文件名依旧错误,请将 /dev/shm 底下的 rpm 更名为 init.d3
3.1.7:大量建置空白档案的方式
有时候为了测试系统,管理员可能需要建立许多的文件名来测试,此时可以通过 touch 这个指令来处理。 例如到 /dev/shm 创建名为 testdir 与 testfile 两个「目录文件与常规文件」, 可以这样处理。
[student@localhost ~]$ cd /dev/shm[student@localhost shm]$ mkdir testdir[student@localhost shm]$ touch testfile[student@localhost shm]$ ll -d test*drwxrwxr-x. 2 student student 40 3月 10 11:03 testdir -rw-rw-r--. 1 student student 0 3月 10 11:03 testfile
如果需要建立较多的文件名,例如test1,test2,test3,test4时,可以通过大括号的方式来处理。 例如在 /dev/shm 底下创建上述的四个文件,可以这样处理:
[student@localhost shm]$ touch test{1,2,3,4}[student@localhost shm]$ ll -d test?-rw-rw-r--. 1 student student 0 3月 10 11:03 test1 -rw-rw-r--. 1 student student 0 3月 10 11:03 test2 -rw-rw-r--. 1 student student 0 3月 10 11:03 test3 -rw-rw-r--. 1 student student 0 3月 10 11:03 test4
如果所需要的文件名或输出信息是有用到连续数字时,假设由 1 到 10 这组数字,虽然能使用 {1,2,3,4,5,6,7,8,9,10} 来处理,然而输入太繁琐。 此时可以使用 {1..10} 来取代上述的输出。 若需要输出 01, 02 这样的字样 {01..10} 来处理。
我需要在 /dev/shm/testing 目录下建立名为 mytest_XX_YY_ZZ 的文件,其中 XX 为 jan, feb, mar, apr 四个数据, YY 为 one, two, three 三个数据,而 ZZ 为 a1, b1, c1 三个数据,如何使用一个指令就建立出上述的 36 个文件?
我需要在 /dev/shm/student/ 目录下,建立文件名为 4XXXC001 到 4XXXC050 的文件,如何使用一个指令来完成这 50 个文件的建置?
3.2:档案内容的查询
很多时候管理员只是需要知道档案内容,并没有进行编辑。 此时可以通过一些简易的指令来查询文件档案的内容。
3.2.1:连续输出文件内容
最简单的查询文件内容的方式为通过 cat, head 与 tail 等指令。 cat 为较常用的指令,但是 cat 会将档案完整的重现在屏幕上, 因此若管理员想要查询最后几行时,以 tail 指令查询会较佳。
cat:将档案内容全部列出
head:默认只列出文件最前面 10 行
tail:默认只列出档案最后面 10 行
列出 /etc/hosts 档案的内容
列出 /etc/profile 档案的内容
承上,第二次列出 /etc/profile 时加上行号输出
读者仅须列出 /etc/profile 的最前面 10 行
读者仅须列出 /etc/passwd 最后面 10 行的内容
读者仅须列出 /etc/services 最后 5 行的内容
3.2.2:可检索档案内容
上述的 cat/head/tail 需要查询资料时,得要人工眼力查询,因此,如果资料量比较大,而且需要查询信息时,可以透过 more 与 less 来处置。 more 默认会一页一页向后翻动,而 less 则可以向前、向后翻页,事实上, man page 就是呼叫 less 指令的函数处理的方式。
more 软件内常用指令:
/关键词:可以查询关键词
空白键:可以向下/向后翻页
q:结束离开不再查询文件
less 软件常用命令 :
/关键词:可以查询关键词
空白键:可以向下/向后翻页
[pageup]:可以向前/向上翻页
[pagedown]:可以向下/向后翻页
g:直接来到第一行
G:直接来到最后一行
q:结束离开不再查询文件
使用 more /etc/services 一页一页翻动资料
承上,请找出 http 这个关键词,之后直接离开不再查阅
使用 less /etc/services 查询档案内容
承上,请找出 http 这个关键词,之后直接离开不再查阅
若需要查询资料的行号时,可以通过 cat -n 配合管线命令来处理。 例如,先将 /etc/services 的输出加上行号,然后交由 less 处理,再去搜寻 http 所在行, 要执行这个指令则为:
[student@localhost ~]$ cat -n /etc/services | less
关于管线命令的使用,后续的章节会谈论更多,在此读者仅须知道在管线 (|) 之前所输出的信息,会传给管线后的指令继续读入处理的意思。 亦即讯息数据并不是来自档案,而是来自于前一个文件的输出。
3.3:vim 程序编辑器
管理员总是会需要变动系统配置文件,或者是进行纯文本文件的编辑,此时就需要 vi/vim 的支持。 因为 vi/vim 是 Linux 很多指令预设会去呼叫的编辑程序, 因此管理员'务必'要学会这个编辑器。 另外, vim 会有颜色的支持, vi 仅为文书编辑器,故我们建议读者们,应该要熟悉 vim 较佳。
3.3.1:简易的 vim 操作
vim 有数种基本的模式,亦即是:
一般指令模式 (command mode):使用『 vim filename 』进入 vim 之后,最先接触到的模式。 在这个模式底下用户可以进行复制、删除、粘贴、移动光标、复原等任务。
编辑模式 (edit mode):在上述模式底下输入 i'这个按钮,就可以进入编辑模式,终于可以开始打字编辑文件了。
延伸命令行命令模式 (extended command mode):这个模式可以进行储存、离开、强制离开、搜寻与取代等动作。
选取模式 (vitual mode):这个模式可以进行类似鼠标圈选的选取模式,主要分为三种圈选方式:圈选完毕后,可以按下 y 复制、可以按下 d 删除,然后在其他地方可以按下 p 贴上喔!
v :字符方式圈选;
[shift]+v :以整行方式圈选
[ctrl]+v :以区块方式圈选
简单的说,读者可以将数种模式使用底下的图标来思考一下相关性:

假设读者想要尝试编辑 /etc/services 这个档案,可以这样尝试处理看看:
使用' cd /dev/shm'将工作目录移动到内存当中
使用『 cp /etc/services . 』 将文件复制一份到本目录下
使用『 vim services 』开始查阅 services 的内容,并请回答:
图 3.3.1-2、vim 的编辑显示画面 最底下一行显示的『 "services" 11473L, 692241C '是什么意思?
(Ans: 代表文件名、行数、字符数)为什么在 # 之后的文字颜色与没有 # 的那行不太一样?
(Ans: vim 会依据系统的设置,给予注释与否的颜色展示)使用方向键,移动光标到第100行,并回答,你怎么知道光标已经在第100行?
回到第 5 行,按下 i '之后,你看到画面中最底下一行的左边出现什么?
按下Enter按钮以新增一行,然后方向键重回第5行,之后随便输入一串文字。 输入完毕后,直接按下 [esc] 按钮,屏幕最下方左下角会有什么变化?
要离开时,记得关键字是 quit,此时请按下『 :q ',看一下游标跑到什么地方去了?
在输入' :q'并且按下 Enter 之后,屏幕最下方出现什么信息? 怎么会这样?
按下『 :w 』储存,然后重新『 :q 』离开,这时可以离开了嘛?





承上,继续 vim services
请在第 1 行加上' Welcome to my linux server '的字样,输入完毕后请回到一般指令模式
在一般指令模式底下,跑到第 5 行,按下' dd ',看看发生什么事情?
回到第 1 行,按下『 p 』又出现什么信息?
连续按下 5 次『 p 』,然后又按一次『 5p '又出现什么?
按下『 u 』会出现什么状况?
跑到第 1 行,按下『 yy 』然后跑到第 10 行,按下『 p 』,又出现什么情况?
按下『 G 』(注意大小写),光标跑到哪里去?
按下『 gg 』(注意大小写),光标跑到哪里去?
现在不想要编辑这个文件了 (因为乱搞一通),不保存离开时,按下『 :q 』会一直出现仅告尚未存档的讯息, 你输入' :q! 』 之后,可以不储存离开了嘛?
3.3.2:常用的 vim 一般指令模式与指令列模式列表
通过上述的练习,读者应该会对 vim 有初步的认识。 vim 的功能其实不只这些,不过管理员会经常用到的大概就是上述的这些信息而已。 底下为常用的指令列表:
惯用的指令 | 说明 |
i, [esc] | i 为进入编辑模式, [esc] 为离开编辑模式 |
G | 移动到这个文件的最后一列 |
gg | 移动到这个文件的第一列 |
nG | n 为数字,移动到这个文件的第 n 列,例如 10G 为让光标去到第 10 列 |
dd | dd 为删除光标所在行,5dd 为删除 5 行,ndd 为删除 n 行 |
yy | yy 为复制光标所在行,5yy 为复制 5 行,nyy 为复制 n 行 |
p | 在光标底下贴上刚刚删除/复制的数据 |
u | 复原前一个动作 |
:w | 将目前的数据写入硬盘中 |
:q | 离开 vim |
:q! | 不保存 (强制) 离开 vim |
读者大概之要知道这几个按钮即可,其他的更进阶的功能有用到的时候再到基础学习篇查阅即可。
使用 student 的身份输入 history ,查阅这次有效的历史命令有几个,假设有 50 笔新的指令好了。
使用『 history 50 >> ~/history.log 』将指令纪录到 history.log 文件中
使用 vim ~/history.log '编辑该文件,将无效的指令移除,只剩下有需要的档案,同时在指令后说明该指令的用途。
3.4:课后练习操作
上课的课后练习,非作业:
关于 vim 创建文件,以及数据的转存情况:
先用 vim 建立一个名为 /dev/shm/mycheck.txt 的档案,里面填写你的姓名与学号,一行一个
使用 file 去检查 /etc/group /bin/groups 的档案类型,并将查询的数据转存到 /dev/shm/mycheck.txt 当中
查询出 /etc/ 底下,使用 s 开头以及 s 结尾的文件名 (不含子目录下的档案),并将找到的文件名转存一份到 /dev/shm/mycheck.txt 当中
找出最近有使用过的 rm 的指令,并将该执行的指令转存到 /dev/shm/mycheck.txt 当中
将 /etc/passwd 前 5 行与最后 5 行抓出来,并且附上行号之后,转存到 /dev/shm/mycheck.txt 当中
关于文件管理 :
尝试在 /dev/shm/unit03/files/ 目录下,新增 ksu001 ~ ksu100 这 100 个空档案
尝试在 /dev/shm/unit03/dirs/ 目录下,新增 dir01 ~ dir10 这 10 个空目录
尝试在 /dev/shm/unit03/season/ 目录下,新增 jan, feb, mar 这三个空目录
尝试在 /dev/shm/unit03/seaon/ 目录下的 jan, feb, mar 子目录内,建立 mylog_XX_YY_ZZ.txt 空档案,其中:'XX 为 1~9', 『YY 为 aa 与 bb』,『ZZ 为 start 与 end』。
尝试在 /dev/shm/unit03/spc/ 目录下,建立名为 -check.txt 的目录
作业 (不提供学生答案,仅提供教师参考答案)
作业硬盘操作帮助:
开启云端虚拟机前,请务必确认你开启的硬盘是'unit03',否则就会做错题目
若要使用图形界面,请务必使用 student 身份登入,若需要切换身份,再启用终端机处理。
若有简答题需要使用中文,请自行以第一堂课的动作自行处理输入法安装。
每部虚拟机均有独特的网卡地址,请勿使用他人硬盘上传,否则计分为 0 分。
每位同学均有自己的 IP 尾数,请先向老师询问您的 IP 尾数,才可以进行作业上传。
最终上传作业结果,请务必使用 root 身份上传。
进入操作硬盘后,先用 root 身份执行 vbird_book_setup_ip, 执行流程请参考:vbird_book_setup_ip
作业当中,某些部份可能为简答题~若为简答题时,请将答案写入 /home/student/ans.txt 当中,并写好正确题号,方便老师订正答案。 请注意,文件名写错将无法上传!
(20%)使用 vim 建立一个名为 ~/ans.txt 的文件,内容先填写你的学号与姓名,并在找出底下的任务后,写下正确答案:
请先实际找出你系统中的 /etc/passwd, /etc/pam.d /etc/rc.local, /dev/vda 这 4 个文件的'文件类型 (如一般档案、目录档案等等)'后, 将这 4 个的类型写入 ~/ans.txt 档案中。
找出 /usr/lib64 这个目录内,有个文件名长度为 5 个字符的一般档案,将该文件文件名写入 ~/ans.txt 中。
找出 /etc 底下(不含子目录),文件名含有 4 个数字 (数字不一定连接在一起) 的数据,写下 (1)该文件的'绝对路径'文件名,(2)该档案的类型
(30%)在 student 家目录下,新增一个名为 class03 的目录,并进入该目录成为工作目录。 并且完成下面的工作:
在当前的目录下,新建mytest_XX_YY_ZZ.txt,其中 XX 为' class1, class2, class3 』,而 YY 为『 week1, week2, week3 』,ZZ 则为『 one, two, three, four 』。
建立一个名为 class1/week2 的目录,将当前目录中,含有 class1_week2 的文件名通通'复制'到 class1/week2 目录下
将文件名含有 class1 档案,通通'移动'到 class1 目录下
新建一个名为 one 的目录,将当前目录中,所有文件名含有 one 的档案通通'移动'到 one 底下
建立一个名为 others 的目录,将当前文件名开头为 mytest 的档案,通通'移动'到该目录下
(30%)回到 student 家目录,并且完成底下的任务:
在 student 家目录底下,建立一个名为 -myhome 的目录,并将 student 家目录中,以 b 为开头的『隐藏文件』复制到 -myhome 目录内
切换工作目录到 -myhome 目录内,并将 /etc/sysconfig 目录复制到当前目录下 (过程中产生一些错误讯息是正常的! )
将当前目录下的 sysconfig/cbq 目录删除
列出 /etc/profile 与 /etc/services 的最后 5 行,并将这 10 行转存到当前目录下的 myetc.txt 档案中
将 myetc.txt 复制成为 myetc2.txt,并使用 vim 编辑 myetc2.txt ,第一行加入' I can use vim '的字样即可。
(20%)其他文件管理:
在 student 家目录下,创建一个 userid 的子目录,并将工作目录移动到 userid 内,在 userid 这个目录内,尝试以一个指令创建 ksuid001 ksuid002 ... 到 ksuid020 等 20 个'空白目录'
在 student 家目录下,有个名为 mytext.txt 的文件,请使用 vim 打开该文件,并将第一行复制后,粘贴 100 次,之后'强制保存'即可离开 vim 。
在 /opt 底下,有个以减号 (-) 为开头的文件名,该文件做错了,因此,请将他删除 (可能需要 root 的权限)
作业结果传输:请以 root 的身份执行 vbird_book_check_unit 指令上传操作结果。 正常执行完毕的结果应会出现【XXXXXX_aa:bb:cc:dd:ee:ff_unitNN】字样。 若需要查阅自己上传资料的时间, 请在操作系统上面使用浏览器查询: http://192.168.251.254 检查相对应的课程档案。 相关流程请参考: vbird_book_check_unit
评论专区