diff --git "a/58\345\220\264\350\211\257\347\241\274/0528 \346\237\245\350\257\242\345\221\275\344\273\244\347\233\270\345\205\263\347\232\204\347\273\203\344\271\240.md" "b/58\345\220\264\350\211\257\347\241\274/0528 \346\237\245\350\257\242\345\221\275\344\273\244\347\233\270\345\205\263\347\232\204\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..feb0cedbbd4e8302d0c935d010534c4108eae3be --- /dev/null +++ "b/58\345\220\264\350\211\257\347\241\274/0528 \346\237\245\350\257\242\345\221\275\344\273\244\347\233\270\345\205\263\347\232\204\347\273\203\344\271\240.md" @@ -0,0 +1,101 @@ +### 操作题 + +1. **查找当前目录及其子目录中所有扩展名为 `.log` 的文件**: + + ```bash + find ./*.log -type f + + ``` + +2. **在 `/var/logs` 目录及其子目录中查找所有包含关键字 `error` 的文件,并显示匹配的行**: + + ```bash + find /var/logs/* -exec grep "error" {} \; + + ``` + +3. **在 `/home/user/docs` 目录中查找文件名包含 `report` 的所有文件**: + + ```bash + find /home/user/docs -name '*.report' + + ``` + +4. **查找 `/etc` 目录中最近7天内修改过的文件**: + + ```bash + find /etc -mtime -7 -type f + + ``` + +5. **显示 `/usr/bin` 目录中名为 `python` 的可执行文件的路径**: + + ```bash + whereis /usr/bin -name 'python' + + ``` + +6. **查找系统中名为 `ls` 的命令及其手册页位置**: + + ```bash + whereis ls + + ``` + +7. **查找当前目录中包含关键字 `TODO` 的所有文件,并显示匹配的行和文件名**: + + ```bash + grep -rl "TODO" + + ``` + +8. **在 `/home/user/projects` 目录中查找所有包含关键字 `function` 的 `.js` 文件**: + + ```bash + find /home/user/projects/* -name '*.js' -exec grep 'function' {} +; + + ``` + +9. **查找并显示当前目录及其子目录中所有空文件**: + + ```bash + find . -type f -empty + + ``` + +10. **在 `/var/www` 目录中查找包含关键字 `database` 的所有文件,并只显示文件名**: + + ```bash + find /var/www/* -type f -exec grep 'database' {} +; + ``` + +### 综合操作题 + +**综合操作题:** + +假设你在一个名为 `/home/user/workspace` 的目录中工作。你需要完成以下任务: + +1. 查找该目录中所有扩展名为 `.conf` 的文件。 +2. 在这些 `.conf` 文件中查找包含关键字 `server` 的行。 +3. 将包含关键字 `server` 的文件名和匹配的行保存到一个名为 `server_lines.txt` 的文件中。 + +**预期命令步骤:** + +1. 查找所有扩展名为 `.conf` 的文件: + ```bash + find /home/user/workspace/ -type f -name "*.conf" + + ``` + +2. 在这些 `.conf` 文件中查找包含关键字 `server` 的行: + ```bash + find /home/user/workspace/ -type f -name "*.conf" -exec grep "server" {} \; + + ``` + +3. 将结果保存到 `server_lines.txt` 文件中: + ```bash + find /home/user/workspace/ -type f -name "*.conf" -exec grep "server" {} \;< server_lines.txt + ``` + +通过这套操作题和综合操作题,你可以全面地了解和应用Linux系统中与文件和内容查询相关的常用命令。 \ No newline at end of file diff --git "a/58\345\220\264\350\211\257\347\241\274/\345\256\236\346\226\2751\347\233\270\345\257\271\350\267\257\345\276\204 0527 \344\275\234\344\270\232.md" "b/58\345\220\264\350\211\257\347\241\274/\345\256\236\346\226\2751\347\233\270\345\257\271\350\267\257\345\276\204 0527 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..cf12fdd17ce93eb678e61e7646f95ad4ccf75dcf --- /dev/null +++ "b/58\345\220\264\350\211\257\347\241\274/\345\256\236\346\226\2751\347\233\270\345\257\271\350\267\257\345\276\204 0527 \344\275\234\344\270\232.md" @@ -0,0 +1,153 @@ +绝对路径:完整的描述文件位置的路径就是绝对路径,不需要知道其他的信息就可以根据绝对路径来判断出文件的位置。 +从根目录 `/` 开始的完整路径,用于唯一确定文件或目录的位置。 +是以`/`根目录开头,而且与当前的工作目录无关。 +例如:/home/shi02/docs/1.txt + +相对路径:相对于当前工作目录的路径,用于在当前目录的基础上指向文件或目录。 +是不以`/`根目录为开头,与当前的工作目录相关。 +./表示当前目录 +../表示上一级目录 +../../表示上一级目录的上一级目录 + + + +相关和目录可自行创建后再操作 + +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c + + ``` + touch exam.c + cp ../exam.c shiyan.c + ``` + +2. 在任何目录下回到用户主目录? + + ``` + cd ~ + ``` + +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? + + ``` + ls -al ./test + ``` + +4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar + + ``` + touch ./test2/{1,2,3,4,5}.txt + tar -cvzf ./test2/hailiang.tar.gz ./test2/{1..5}.txt + ``` + +5. 当前目录,建立文件 file1.txt 并更名为 file2.txt? + + ``` + touch file1.txt + mv file1.txt file2.txt + ``` + +6. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? + + ``` + vim bbbb.txt + 按下Esc键,然后输入:wq保存并退出vim编辑器 + ``` + +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中? + + ``` + cp ../*.txt *.doc *.bak ./test + ``` + +8. 将文件file1.txt从当前目录移动到家目录的/docs中。 + + ``` + mv file1.txt ../docs/ + ``` + +9. 复制文件file2.txt从当前目录到家目录/backup中。 + + ``` + cp file2.txt ../backup/ + ``` + +10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 + + ``` + mv ../docs/* ../archive/ + ``` + +11. 复制家目录/photos及其所有内容到家目录/backup中。 + + ``` + cp ../photos/* ../backup/ + ``` + +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 + + ``` + mv ../docs/report.doc ../papers/final_report.doc + ``` + +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 + + ``` + touch ../docs/notes.txt + cp ../docs/notes.txt ../backup/ + ``` + +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 + + ``` + cp -r ../images/*.jpg ../photos/ + ``` + +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 + + ``` + cp ../docs/file1.txt ../docs/file2.txt ../backup/ + ``` + +16. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 + + ``` + cp ../docs/*.txt ../text_files/ + ``` + +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 + + ``` + cp -f ../docs/* ../temp/ + ``` + +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 + + ``` + mv -v ../docs/* ../archive/ + ``` + +19. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 + + ``` + cp ../docs/ ../backup + ``` + +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 + + ``` + mv ../docs/!(temp_*) ../backup + + ``` + +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 + + ``` + mv -bs report.txt_bak ../docs/report.txt ../archive + ``` + +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 + +``` +mv -n ../docs/*.pdf ../pdf_files +``` + diff --git "a/58\345\220\264\350\211\257\347\241\274/\345\256\236\346\226\2751\347\273\235\345\257\271\350\267\257\345\276\204 0527 \344\275\234\344\270\232.md" "b/58\345\220\264\350\211\257\347\241\274/\345\256\236\346\226\2751\347\273\235\345\257\271\350\267\257\345\276\204 0527 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..67b456328698e3e914f65cd3816b69bf1451d664 --- /dev/null +++ "b/58\345\220\264\350\211\257\347\241\274/\345\256\236\346\226\2751\347\273\235\345\257\271\350\267\257\345\276\204 0527 \344\275\234\344\270\232.md" @@ -0,0 +1,152 @@ +绝对路径:完整的描述文件位置的路径就是绝对路径,不需要知道其他的信息就可以根据绝对路径来判断出文件的位置。 +从根目录 `/` 开始的完整路径,用于唯一确定文件或目录的位置。 +是以`/`根目录开头,而且与当前的工作目录无关。 +例如:/home/shi02/docs/1.txt + +相对路径:相对于当前工作目录的路径,用于在当前目录的基础上指向文件或目录。 +是不以`/`根目录为开头,与当前的工作目录相关。 +./表示当前目录 +../表示上一级目录 +../../表示上一级目录的上一级目录 + +相关和目录可自行创建后再操作 + +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c + + ``` + touch exam.c + cp exam.c /home/wlp/tmp/shiyan.c + ``` + +2. 在任何目录下回到用户主目录? + + ``` + cd ~ + ``` + +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? + + ``` + ls -al /home/wlp/tmp/test + ``` + +4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar + + ``` + cd /home/wlp/tmp/test2 + touch 1.txt 2.txt 3.txt 4.txt 5.txt + tar -cvzf hailiang.tar 1.txt 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 并将用户名的加入其中保存退出? + + ``` + vim bbbb.txt + 按下Esc键,然后输入:wq保存并退出vim编辑器 + ``` + +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中? + + ``` + cp *.txt *.doc *.bak /home/wlp/tmp/test + ``` + +8. 将文件file1.txt从当前目录移动到家目录的/docs中。 + + ``` + $ mv file1.txt /home/wlp/docs/ + ``` + +9. 复制文件file2.txt从当前目录到家目录/backup中。 + + ``` + cp file2.txt /home/wlp/backup/ + ``` + +10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 + + ``` + mv /home/wlp/docs/* /home/wlp/archive/ + ``` + +11. 复制家目录/photos及其所有内容到家目录/backup中。 + + ``` + cp -r /home/wlp/photos /home/wlp/backup/ + ``` + +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 + + ``` + mv /home/wlp/docs/report.doc /home/wlp/papers/final_report.doc + ``` + +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 + + ``` + touch /home/wlp/docs/notes.txt + cp /home/wlp/docs/notes.txt /home/wlp/backup/ + ``` + +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 + + ``` + cp /home/wlp/images/*.jpg /home/wlp/photos/ + ``` + +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 + + ``` + cp file1.txt file2.txt /home/wlp/backup/ + ``` + +16. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 + + ``` + cp *.txt /home/wlp/text_files/ + ``` + +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 + + ``` + mv -f /home/wlp/docs/* /home/wlp/temp/ + ``` + +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 + + ``` + mv -v /home/wlp/docs/* /home/wlp/archive/ + ``` + +19. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 + + ``` + cp -r /home/wlp/docs/* /home/wlp/backup/ + ``` + +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 + + ``` + mv /home/wlp/docs/!(temp_*) backup + + ``` + +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 + + ``` + mv -b report.txt_bak /home/wlp/docs/report.txt /home/wlp/archive + ``` + +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 + +``` +mv -n /home/wlp/docs/*.pdf /home/wlp/pdf_files +``` +