diff --git "a/\345\276\220\347\253\213\345\237\216/20240524 \345\256\236\346\226\2751 0523 \344\275\234\344\270\232\343\200\202.md" "b/\345\276\220\347\253\213\345\237\216/20240524 \345\256\236\346\226\2751 0523 \344\275\234\344\270\232\343\200\202.md" new file mode 100644 index 0000000000000000000000000000000000000000..41f1d70a681c5039f3e7136c23d2b70403c2579c --- /dev/null +++ "b/\345\276\220\347\253\213\345\237\216/20240524 \345\256\236\346\226\2751 0523 \344\275\234\344\270\232\343\200\202.md" @@ -0,0 +1,93 @@ +假设您刚刚登录到一个Linux系统,并位于您的家目录(`~`)下。您需要完成以下一系列复杂的操作来组织和清理您的文件和目录。请按照顺序执行,并给出相应的命令。 + +1. **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + + ``` + touch .hidden.txt visible1.txt visible2.txt + ``` + + + +2. **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + + ``` + ls -a + ``` + + + +3. **创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + + ``` + mkdir -p work_area/project_a + mkdir project_b docs + ``` + + + +4. **移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + + ``` + mv *.txt ./work_area/docs + ``` + + + +5. **创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + + ``` + cdwork_area/project_a + touch notes.txt + vim notes.txt + ``` + + + +6. **复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + + ``` + cp -R project_a project_b/project_a_backup + ``` + + + +7. **列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + + ``` + ls -s + ``` + + + +8. **删除所有文件**:删除`work_area/docs`目录下所有文件。 + + ``` + rm -f * + rm -f .* + ``` + + + +9. **删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + + ``` + rm -rf work_area/project_b + ``` + + + +10. **清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + + ``` + rmdir + ``` + + + +11. **创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + + ``` + alias llh='ls -lh' + ``` + + \ No newline at end of file diff --git "a/\345\276\220\347\253\213\345\237\216/20240526 \345\256\236\346\226\2751 0524 \344\275\234\344\270\232.md" "b/\345\276\220\347\253\213\345\237\216/20240526 \345\256\236\346\226\2751 0524 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..f97f30a8008386976f430d3fd242f056abae5511 --- /dev/null +++ "b/\345\276\220\347\253\213\345\237\216/20240526 \345\256\236\346\226\2751 0524 \344\275\234\344\270\232.md" @@ -0,0 +1,184 @@ +相关和目录可自行创建后再操作 + +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c + + ``` + touch exam.c + mkidr tmp + mv exam.c /tmp/shiyan.c + ``` + + + +2. 在任何目录下回到用户主目录? + + ``` + cd ~ + ``` + + + +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? + + ``` + ls -la + ``` + + + +4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar + + ``` + touch 1.txt 2.txt 3.txt 4.txt 5.txt + zip -r hailiang.tar ./1.txt + zip -m hailiang.tar ./2.txt 3.txt 4.txt 5.txt + ``` + + + +5. 当前目录,建立文件 file1.txt 并更名为 file2.txt? + + ``` + touch file1.txt + mv file1.txt file2.txt + ``` + + + +6. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? + + ``` + vi bbbb.txt + ``` + + + +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中? + + ``` + cd tmp + mkdir test + cp -f *.txt *.doc *.bak tmp/test + ``` + + + +8. 将文件file1.txt从当前目录移动到家目录的/docs中。 + + ``` + mv file1.txt ../../docs + ``` + + + +9. 复制文件file2.txt从当前目录到家目录/backup中。 + + ``` + cp -f file2.txt ../../backup + ``` + + + +10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 + + ``` + mv docs ./archive + ``` + + + +11. 复制家目录/photos及其所有内容到家目录/backup中。 + + ``` + cp -R phones backup + ``` + + + +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 + + ``` + mv report.doc ../papers/final_report.doc + ``` + + + +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 + + ``` + cp notes.txt ../backup + ``` + + + +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 + + ``` + cp images/*.jpg photes + ``` + + + +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 + + ``` + cp *.txt ../backup + ``` + + + +16. 将家目录/docs中的所有.txt文件复制到家目录/中。 + + ``` + cp *.txt ../text_files + ``` + + + +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 + + ``` + cp -f docs/* temp + ``` + + + +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 + + ``` + cp -v docs/* archive + ``` + + + +19. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 + + ``` + cp -rf docs/* backup + ``` + + + +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 + + ``` + cd docs + mv docs/* !(temp_*) ../backup + ``` + + + +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 + + ``` + mv -b docs/report.txt archive + ``` + + + +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 + +``` +cp -n docs/*.pdf pdf_files +``` +