From 1d91a634b5e0e63e3d417ce09e6dd2df1baf7a35 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 27 May 2024 08:53:00 +0800 Subject: [PATCH 1/3] a --- ...35\345\257\271\350\267\257\345\276\204.md" | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 "\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" diff --git "a/\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" "b/\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" new file mode 100644 index 0000000..0a688c0 --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" @@ -0,0 +1,198 @@ +### 教学课:理解和使用绝对路径与相对路径 + +#### 目标 +- 了解什么是绝对路径和相对路径 +- 学习在命令行中如何使用绝对路径和相对路径 +- 掌握不同场景下如何选择使用绝对路径或相对路径 + +### 一、概念讲解 + +#### 1. 绝对路径 +**定义**:从根目录 `/` 开始的完整路径,用于唯一确定文件或目录的位置。 + +**特点**: + +- 以 `/` 开头 +- 与当前工作目录无关 + +**示例**: +- `/home/user/documents/file.txt` +- `/usr/local/bin` + +#### 2. 相对路径 +**定义**:相对于当前工作目录的路径,用于在当前目录的基础上指向文件或目录。 + +**特点**: + +- 不以 `/` 开头 +- 依赖于当前工作目录 + +**特殊符号**: + +- `.` 表示当前目录 ./ +- `..` 表示上一级目录../ + +**示例**: +- `documents/file.txt` (假设当前目录是 `/home/user`) +- `../user/file.txt` (假设当前目录是 `/home/user/documents`) + +### 二、实际操作示例 + +#### 1. 绝对路径操作示例 + +**示例 1**:列出 `/var/log` 目录中的所有文件。 +```bash +ls /var/log +``` + +**示例 2**:复制 `/etc/passwd` 文件到 `/home/user/backup` 目录。 +```bash +cp /etc/passwd /home/user/backup/ +``` + +#### 2. 相对路径操作示例 + +**示例 1**:假设你在 `/home/user/projects` 目录下,列出当前目录中的所有文件和目录。 +```bash +ls ../ +``` + +**示例 2**:假设你在 `/home/user/projects/scripts` 目录下,显示 `../data` 目录中的所有文件和目录。 +```bash +ls ../data +``` + +### 三、练习题目 + +#### 绝对路径和相对路径题目 + +**题目 1**:在 `/home/user` 目录下创建一个名为 `newdir` 的目录。 + +- **绝对路径**: + ```bash + mkdir /home/user/newdir + ``` + +- **相对路径**(假设当前目录是 `/home/user`): + ```bash + mkdir newdir + ``` + +**题目 2**:将 `/usr/share/doc` 目录中的所有内容复制到 `/home/user/doc_backup` 目录中。 + +- **绝对路径**: + ```bash + cp -r /usr/share/doc /home/user/doc_backup + ``` + +- **相对路径**(假设当前目录是 `/home/user`): + ```bash + cp -r /usr/share/doc doc_backup + ``` + +**题目 3**:查找 `/etc` 目录下包含 `network` 关键字的所有文件。 + +- **绝对路径**: + + ```bash + grep -r "network" /etc + ``` + +- **相对路径**(假设当前目录是 `/etc`): + ```bash + grep -r "network" . + ``` + +**题目 4**:假设你在 `/home/user` 目录下,将 `projects/report.txt` 文件复制到 `backup/` 目录中。 + +- **绝对路径**: + ```bash + cp /home/user/projects/report.txt /home/user/backup/ + ``` + +- **相对路径**: + ```bash + cp projects/report.txt backup/ + ``` + +**题目 5**:假设你在 `/home/user/projects` 目录下,移动 `../data/data.csv` 到当前目录。 + +- **绝对路径**: + ```bash + mv /home/user/data/data.csv /home/user/projects/ + ``` + +- **相对路径**: + ```bash + mv ../data/data.csv . + ``` + +**题目 6**:假设你在 `/home/user/projects` 目录下,查找 `../logs` 目录中包含 `error` 关键字的所有文件。 + +- **绝对路径**: + ```bash + grep -r "error" /home/user/logs + ``` + +- **相对路径**: + ```bash + grep -r "error" ../logs + ``` + +### 四、总结 + +- **绝对路径**始终从根目录开始,适合在需要唯一标识文件或目录位置时使用。 +- **相对路径**从当前工作目录出发,适合在命令行交互和项目内部文件操作时使用。 +- 了解两者的使用场景,有助于在实际工作中灵活运用,提高工作效率。 + +通过练习这些题目,学生将能够在实际操作中熟练使用绝对路径和相对路径,并能根据具体需求选择合适的路径类型。 + + + + + + + + + + + + + + + +有两几个: + +1. 闽大实训8班:小黄 +2. 闽大实训7班:大黄 +3. 北大计算机1班:小白 +4. 清华计算机2班:小黑 + +小黄: + +1. /地球/亚洲/中国/福建/龙岩/新罗/曹溪/闽大/小黄 + + cd 望云楼/实训7/ + +2. /地球/亚洲/中国/福建/龙岩/新罗/曹溪/闽大/望云楼/实训7/大黄 + +3. /地球/亚洲/中国/北京/朝阳区/北京大学/小白 + + ../../海淀区 + +4. /地球/亚洲/中国/北京/海淀区/清华大学/计算机大楼/2班/小黑 + + + +将上次作业 + +1.写成绝对路径 + +2.在家目录操作:相对路径 + + + + + + + -- Gitee From 1b87ceeced45af117a9185a10e5a98561ab8d10a Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 27 May 2024 09:09:42 +0800 Subject: [PATCH 2/3] a --- ...34\347\250\213\350\277\236\346\216\245.md" | 26 +++ .../20240516Linux\347\273\223\346\236\204.md" | 19 ++ .../20240523\345\244\215\345\210\266.md" | 2 + ...70\345\257\271\350\267\257\345\276\204.md" | 7 + .../20240518\344\275\234\344\270\232.md" | 63 ++++++ .../20240520\344\275\234\344\270\232.md" | 80 +++++++ .../20240523\344\275\234\344\270\232.md" | 146 +++++++++++++ .../20240523\347\273\203\344\271\240.md" | 177 ++++++++++++++++ ...35\345\257\271\350\267\257\345\276\204.md" | 198 ------------------ 9 files changed, 520 insertions(+), 198 deletions(-) create mode 100644 "\350\214\203\347\220\263\346\226\271/20240515Linux\351\205\215\347\275\256\345\256\242\346\210\267\347\253\257\350\277\234\347\250\213\350\277\236\346\216\245.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/20240516Linux\347\273\223\346\236\204.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/20240523\345\244\215\345\210\266.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/20240525\347\273\235\345\257\271\347\233\270\345\257\271\350\267\257\345\276\204.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240518\344\275\234\344\270\232.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240520\344\275\234\344\270\232.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\347\273\203\344\271\240.md" delete mode 100644 "\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" diff --git "a/\350\214\203\347\220\263\346\226\271/20240515Linux\351\205\215\347\275\256\345\256\242\346\210\267\347\253\257\350\277\234\347\250\213\350\277\236\346\216\245.md" "b/\350\214\203\347\220\263\346\226\271/20240515Linux\351\205\215\347\275\256\345\256\242\346\210\267\347\253\257\350\277\234\347\250\213\350\277\236\346\216\245.md" new file mode 100644 index 0000000..b5bdeaf --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/20240515Linux\351\205\215\347\275\256\345\256\242\346\210\267\347\253\257\350\277\234\347\250\213\350\277\236\346\216\245.md" @@ -0,0 +1,26 @@ +## 初识Linux +### Linux发展史 +- 依赖着五个重要支柱 + + Unix操作系统 + + MINIX操作系统 + + GNU计划 + + POSIX标准 + + Internet网络。 +1. 20世纪80年代,美国人AndrewS.Tanenbaum编写MINIX +2. 1991年,Linus Torvalds 写出 Linux0.01。 +### Linux与Windows区别 +- 开源性:Linux 可以查看修改代码,Windows是闭源 +- 应用程序:Windows拥有大量的商业软件和游戏,Linux适合开发和运行开源软件。 +- 安全性:Linux无需频繁地更新和修补漏洞,windows 需要。 +- 硬件支持:Windows在主流硬件上支持,Linux需根据不同的硬件配置进行调整和优化。 +- 命令行界面:Linux通过命令进行操作和管理,Windows是图形化的界面。 +- 操作:Linux将所有的设备、文件、进程等都当做文件来处理,具有了很高的灵活性和可扩展性, +Windows是一种单用户多任务操作系统,界面化操作,出色的多媒体功能,可以完成DOS操作系统所有命令的功能,而且更加容易和方便。 +### 安装debain 系统后,两种账号登陆 +- root 超级管理员,他具有最高的权限 +- 普通用户 dabian2ban 权限很低(切换为root) +## 小练习 +1. 自行让你的debian 可用ifconfig 命令,这个指令 可以用来查看ip +- 安装ifconfig命令 ++ sudo apt-get install net-tools +2.学习vim 的常用指令。 diff --git "a/\350\214\203\347\220\263\346\226\271/20240516Linux\347\273\223\346\236\204.md" "b/\350\214\203\347\220\263\346\226\271/20240516Linux\347\273\223\346\236\204.md" new file mode 100644 index 0000000..1d1b0ff --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/20240516Linux\347\273\223\346\236\204.md" @@ -0,0 +1,19 @@ +## 文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录 +- 目录名或文件名都是区分大小写的 + /bin/ 存放系统命令,普通用户和 root 都可以执行。 + /boot/ 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等 + /dev/ 设备文件保存位置 + /etc/ 配置文件保存位置。系统内所有采用默认安装方式的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等 + /home/ 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。 + /lib/ 系统调用的函数库保存位置 + /media/ 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 + /mnt/ 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区 + /misc/ 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。 + /opt/ 第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。 + /root/ root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下 + /sbin/ 保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看 + /srv/ 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据 + /tmp/ 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空 + /lost+found/ 当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost+found 就是根分区的备份恢复目录,/boot/lost+found 就是 /boot 分区的备份恢复目录 + /proc/ 虚拟文件系统。目录中的数据并不保存在硬盘上,保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/net 是保存网络协议信息的 + /sys/ 虚拟文件系统。目录中的数据都保存在内存中,主要保存与内核相关的信息 diff --git "a/\350\214\203\347\220\263\346\226\271/20240523\345\244\215\345\210\266.md" "b/\350\214\203\347\220\263\346\226\271/20240523\345\244\215\345\210\266.md" new file mode 100644 index 0000000..c65341c --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/20240523\345\244\215\345\210\266.md" @@ -0,0 +1,2 @@ +## cp + diff --git "a/\350\214\203\347\220\263\346\226\271/20240525\347\273\235\345\257\271\347\233\270\345\257\271\350\267\257\345\276\204.md" "b/\350\214\203\347\220\263\346\226\271/20240525\347\273\235\345\257\271\347\233\270\345\257\271\350\267\257\345\276\204.md" new file mode 100644 index 0000000..29df9cb --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/20240525\347\273\235\345\257\271\347\233\270\345\257\271\350\267\257\345\276\204.md" @@ -0,0 +1,7 @@ +## 绝对路径 +- /home /用户/目录 +- ~/用户/目录 +## 相对路径 +- ./ 代表当前目录 +- ../ 返回上一级 +## 练习:用绝对路径和相对路径写23号的练习与作业。 \ No newline at end of file diff --git "a/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240518\344\275\234\344\270\232.md" "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240518\344\275\234\344\270\232.md" new file mode 100644 index 0000000..c778c85 --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240518\344\275\234\344\270\232.md" @@ -0,0 +1,63 @@ +## 新建一个用户dabian2ban,密码设置666 + root@hecs-338035:~# sudo useradd debain2ban + root@hecs-338035:~# chsh -s/bin/bash debain2ban + root@hecs-338035:~# sudo passwd debain2ban 666 +## 切换到新用户 + root@hecs-338035:~# su - debain2ban + su: warning: cannot change directory to /home/debain2ban: No such file or directory + debain2ban@hecs-338035:/root$ +## 使用命令,在自己的家目录,以以下层次依次建立文件夹 + 1. 国家 + 1. 省份 + 1. 市 + 1. 县(区) + 1. 镇(街道) + 1. 村(小区) + 1. 姓名 + 2. mkdir -p //-p的选项当相关目录不存在时,就创建,若已经存在就跳过创建而不报错 +4. 在姓名文件夹,建立一个自己的学号姓名文件 + debain2ban@hecs-338035:~/国家/省份/市/县/镇/村/姓名$ rm .小明.txt.swp + debain2ban@hecs-338035:~/国家/省份/市/县/镇/村/姓名$ vim 小明.txt +5. 将国家这个文件夹打包 + debain2ban@hecs-338035:~$ tar -cvf china.tar 国家 + 国家/ + 国家/省份/ + 国家/省份/市/ + 国家/省份/市/县/ + 国家/省份/市/县/镇/ + 国家/省份/市/县/镇/村/ + 国家/省份/市/县/镇/村/姓名/ + 国家/省份/市/县/镇/村/姓名/小明.txt +6. 解包 + debain2ban@hecs-338035:~$ tar -xvf china.tar + 国家/ + 国家/省份/ + 国家/省份/市/ + 国家/省份/市/县/ + 国家/省份/市/县/镇/ + 国家/省份/市/县/镇/村/ + 国家/省份/市/县/镇/村/姓名/ + 国家/省份/市/县/镇/村/姓名/小明.txt +7. 压缩 + debain2ban@hecs-338035:~$ gzip 国家 -r + debain2ban@hecs-338035:~/国家/省份/市/县/镇/村/姓名$ ls + 小明.txt.gz +8. 解压 + debain2ban@hecs-338035:~$ gzip -d 国家 -r + debain2ban@hecs-338035:~/国家/省份/市/县/镇/村/姓名$ ls + 小明.txt +9. 压缩包下载到本地电脑 +- 压缩包 + debain2ban@hecs-338035:~$ tar -czvf chian.tar.gz 国家 + 国家/ + 国家/省份/ + 国家/省份/市/ + 国家/省份/市/县/ + 国家/省份/市/县/镇/ + 国家/省份/市/县/镇/村/ + 国家/省份/市/县/镇/村/姓名/ + 国家/省份/市/县/镇/村/姓名/小明.txt +- 下载 + + + diff --git "a/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240520\344\275\234\344\270\232.md" "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240520\344\275\234\344\270\232.md" new file mode 100644 index 0000000..4d14213 --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240520\344\275\234\344\270\232.md" @@ -0,0 +1,80 @@ +### 综合练习题:大学生生活场景中的文件夹和文件管理 + +假设你是一名大学生,现在面临着整理学习资料和课程作业的任务。请按照以下要求完成相关的文件夹和文件管理操作: + +1. 在你的个人文档目录下创建一个名为`学习资料`的文件夹,并进入该文件夹。 +### 个人目录就是/home + +2. 在`学习资料`文件夹中创建一个名为`计算机科学`的文件夹。 + root@hecs-338035:/home# mkdir -p 学习资料/计算机科学 + root@hecs-338035:/home# ls + 学习资料 + +3. 在`计算机科学`文件夹中创建两个子文件夹,分别命名为`课程资料`和`编程项目`。 + root@hecs-338035:/home/学习资料/计算机科学# mkdir 课程资料 && mkdir 编程项目 + root@hecs-338035:/home/学习资料/计算机科学# ls + 编程项目 课程资料 +4. 将你最近的一门计算机科学课程的课件文件(假设文件名为`CS101_第一讲.pdf`)放入`课程资料`文件夹。 + root@hecs-338035:/home/学习资料/计算机科学# cd 课程资料 + root@hecs-338035:/home/学习资料/计算机科学/课程资料# touch CS101_第一讲.pdf + root@hecs-338035:/home/学习资料/计算机科学/课程资料# ls + CS101_第一讲.pdf +5. 在`编程项目`文件夹中创建一个名为`Java项目`的文件夹。 + root@hecs-338035:/home/学习资料/计算机科学/编程项目# mkdir Java + root@hecs-338035:/home/学习资料/计算机科学/编程项目# ls + Java + +6. 在`Java项目`文件夹中创建两个空文件,分别命名为`主程序.java`和`工具类.java`。 + root@hecs-338035:/home/学习资料/计算机科学/编程项目/Java# touch 主程序.java && touch 工具类.java + root@hecs-338035:/home/学习资料/计算机科学/编程项目/Java# ls + 主程序.java 工具类.java + +7. 复制`主程序.java`并命名为`备份_主程序.java`。 + root@hecs-338035:/home/学习资料/计算机科学/编程项目/Java# cp 主程序.java 备份_主程序.java + root@hecs-338035:/home/学习资料/计算机科学/编程项目/Java# ls + 主程序.java 备份_主程序.java 工具类.java + +8. 创建一个名为`Python项目`的文件夹,并将`工具类.java`移动到`Python项目`文件夹中。 + root@hecs-338035:/home/学习资料/计算机科学# mkdir Python项目 + root@hecs-338035:/home/学习资料/计算机科学# ls + Python项目 编程项目 课程资料 + + root@hecs-338035:/home/学习资料/计算机科学/编程项目/Java# mv 工具类.java 编程项目 + + root@hecs-338035:/home/学习资料/计算机科学/编程项目/Java# mv 工具类.java ../../Python项目/ + + root@hecs-338035:/home/学习资料/计算机科学/Python项目# ls + 工具类.java + +9. 列出`计算机科学`文件夹中所有文件和文件夹的内容。 + root@hecs-338035:/home/学习资料/计算机科学# ls -R +.: +Python项目 编程项目 课程资料 + +./Python项目: +工具类.java + +./编程项目: +Java + +./编程项目/Java: +主程序.java 备份_主程序.java + +./课程资料: +CS101_第一讲.pdf + +10. 删除`编程项目`文件夹及其包含的所有内容。 + root@hecs-338035:/home/学习资料/计算机科学# rm -rf 编程项目/ + + root@hecs-338035:/home/学习资料/计算机科学# ls + Python项目 课程资料 + +11. 重命名`Python项目`为`数据分析项目`。 + root@hecs-338035:/home/学习资料/计算机科学# mv Python项目 数据分析项目 + + root@hecs-338035:/home/学习资料/计算机科学# ls + 数据分析项目 课程资料 +12. 最后,列出当前所在目录的路径。 + root@hecs-338035:/home/学习资料/计算机科学# pwd + /home/学习资料/计算机科学 + root@hecs-338035:/home/学习资料/计算机科学# \ No newline at end of file diff --git "a/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" new file mode 100644 index 0000000..a860f74 --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" @@ -0,0 +1,146 @@ +## 相关和目录可自行创建后再操作 + +1. 在家目录下建立文件exam.c,将文件exam.c拷贝到/tmp这个目录下,并改名为 shiyan.c + + debain2ban@hecs-338035:~$ touch exam.c + debain2ban@hecs-338035:~$ mkdir tmp + debain2ban@hecs-338035:~$ cp exam.c tmp/shiyan.c + debain2ban@hecs-338035:~$ ls + exam.c tmp + debain2ban@hecs-338035:~$ cd tmp + debain2ban@hecs-338035:~/tmp$ ls + shiyan.c + debain2ban@hecs-338035:~/tmp$ + +2. 在任何目录下回到用户主目录? + cd - 或者 cd 或者 cd ~。 +3. 用长格式列出/tmp/test目录下所有的文件包括隐藏文件? + ls -la tmp/test +## 4. /tmp/test2目录下,创建5个文件分别是 1.txt 2.txt 3.txt 4.txt 5.txt,压缩这5个文件,压缩包的名字是hailiang.tar + debain2ban@hecs-338035:~/tmp/test2$ touch 1.txt 2.txt 3.txt 4.txt 5.txt + debain2ban@hecs-338035:~/tmp/test2$ ls + 1.txt 2.txt 3.txt 4.txt 5.txt + debain2ban@hecs-338035:~/tmp/test2$ tar -cvf hailiang.tar 1.txt 2.txt 3.txt 4.txt 5.txt + 1.txt + 2.txt + 3.txt + 4.txt + 5.txt + debain2ban@hecs-338035:~/tmp/test2$ ls + 1.txt 2.txt 3.txt 4.txt 5.txt hailiang.tar + +5. 当前目录,建立文件 file1.txt 并更名为 file2.txt? + debain2ban@hecs-338035:~/tmp/test2$ mkdir file1.txt && mv file1.txt file2.txt + debain2ban@hecs-338035:~/tmp/test2$ ls + 1.txt 2.txt 3.txt 4.txt 5.txt file2.txt hailiang.tar + +6. 当前目录,用vim建立文件bbbb.txt 并将用户名的加入其中保存退出? + debain2ban@hecs-338035:~/tmp/test2$ vim bbbb.txt + debain2ban@hecs-338035:~/tmp/test2$ cat bbbb.txt + 123 + +7. 将家目录中扩展名为txt、doc和bak的文件全部复制到/tmp/test目录中? + debain2ban@hecs-338035:~/tmp$ mkdir test + debain2ban@hecs-338035:~$ cp *.txt *.doc *.bak tmp/test + debain2ban@hecs-338035:~$ cd tmp/test + debain2ban@hecs-338035:~/tmp/test$ ls + 1.bak 1.doc 1.txt 2.bak 2.doc 2.txt + +8. 将文件file1.txt从当前目录移动到家目录的/docs中。 + debain2ban@hecs-338035:~/tmp$ tree + . + ├── shiyan.c + ├── test + │   ├── 1.bak + │   ├── 1.doc + │   ├── 1.txt + │   ├── 2.bak + │   ├── 2.doc + │   └── 2.txt + └── test2 + ├── 1.txt + ├── 2.txt + ├── 3.txt + ├── 4.txt + ├── 5.txt + ├── bbbb.txt + ├── file2.txt + └── hailiang.tar + + 3 directories, 14 files + + debain2ban@hecs-338035:~/tmp/test2$ touch file1.txt + debain2ban@hecs-338035:~$ mkdir docs + debain2ban@hecs-338035:~$ ls + 1.bak 1.doc 1.txt 2.bak 2.doc 2.txt docs exam.c tmp + debain2ban@hecs-338035:~/tmp/test2$ mv file1.txt ../../docs + debain2ban@hecs-338035:~$ cd docs + debain2ban@hecs-338035:~/docs$ ls + file1.txt + +9. 复制文件file2.txt从当前目录到家目录/backup中。 + debain2ban@hecs-338035:~$ mkdir backup + debain2ban@hecs-338035:~/tmp/test2$ mv file2.txt ../../backup + debain2ban@hecs-338035:~$ cd backup + debain2ban@hecs-338035:~/backup$ ls + file2.txt + +#### 10. 将家目录/docs中的所有文件和子目录移动到家目录/archive中。 + +#### 11. 复制家目录/photos及其所有内容到家目录/backup中。 + +12. 将文件家目录/docs/report.doc移动到家目录/papers中,并将其重命名为final_report.doc。 +13. 在家目录/docs中创建一个名为notes.txt的空文件,并将其复制到目录家目录/backup中。 + debain2ban@hecs-338035:~/docs$ touch notes.txt && cp notes.txt ../backup + debain2ban@hecs-338035:~/docs$ cd ../backup + debain2ban@hecs-338035:~/backup$ ls + file2.txt notes.txt + +14. 复制家目录/images中所有以.jpg结尾的文件到家目录/photos中。 +15. 将文件家目录/docs/file1.txt和家目录/docs/file2.txt复制到家目录/backup中。 +debain2ban@hecs-338035:~/docs$ cp file1.txt file2.txt ../backup +cp: cannot overwrite directory '../backup/file2.txt' with non-directory +// backup文件下已经存在 file2.txt +debain2ban@hecs-338035:~/docs$ cd ../backup +debain2ban@hecs-338035:~/backup$ ls +file1.txt file2.txt notes.txt +// 删除之后复制或者-f 强制复制。 +16. 将家目录/docs中的所有.txt文件复制到家目录/text_files中。 +debain2ban@hecs-338035:~$ mkdir text_files +debain2ban@hecs-338035:~$ cd docs +debain2ban@hecs-338035:~/docs$ ls +file1.txt file2.txt notes.txt +debain2ban@hecs-338035:~/docs$ mv *.txt ../text_files +debain2ban@hecs-338035:~/docs$ cd ../text_files/ +debain2ban@hecs-338035:~/text_files$ ls +file1.txt file2.txt notes.txt + + +17. 将家目录/docs中的所有文件移动到家目录/temp中,并且如果文件已存在,则覆盖它们。 +// * + debain2ban@hecs-338035:~/docs$ touch 1.txt 2.png && mkdir ppt + debain2ban@hecs-338035:~/docs$ ls + 1.txt 2.png ppt + debain2ban@hecs-338035:~/docs$ mv * ../temp + debain2ban@hecs-338035:~/docs$ cd + debain2ban@hecs-338035:~$ cd temp + debain2ban@hecs-338035:~/temp$ ls + 1.txt 2.png ppt + +18. 将家目录/docs中的所有文件移动到家目录/archive中,并且在移动时显示详细的移动信息。 + debain2ban@hecs-338035:~/docs$ mv -v * ../archive + renamed '1.txt' -> '../archive/1.txt' + renamed '2.png' -> '../archive/2.png' + renamed 'ppt' -> '../archive/ppt' + debain2ban@hecs-338035:~/docs$ cd ../archive/ + debain2ban@hecs-338035:~/archive$ ls + 1.txt 2.png ppt + +19. 复制家目录/docs中的所有子目录及其内容到家目录/backup中。 +20. 将家目录/docs中的所有文件和子目录移动到家目录/backup中,但排除文件名以"temp_"开头的文件。 +debain2ban@hecs-338035:~/docs$ touch temp_ +debain2ban@hecs-338035:~/docs$ ls +1.txt 2.png ppt temp_ + +21. 将目录/docs/report.txt移动到家目录/archive中,但如果目标目录中已存在同名文件,则不直接覆盖,先备份同名文件为report.txt_bak。 +22. 将家目录/docs中所有以.pdf结尾的文件复制到家目录/pdf_files中,并且如果目标目录中已存在同名文件,则忽略它们。 \ No newline at end of file diff --git "a/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\347\273\203\344\271\240.md" "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\347\273\203\344\271\240.md" new file mode 100644 index 0000000..c4ba64c --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\347\273\203\344\271\240.md" @@ -0,0 +1,177 @@ +### 练习题 1:复制文件 + +假设你有两个目录:`/home/user/docs` 和 `/home/user/backup`。 + +1. 将`/home/user/docs`目录下的`file1.txt`复制到`/home/user/backup`目录下。 +2. 复制`/home/user/docs`目录下的所有`.txt`文件到`/home/user/backup`目录下。 + +debain2ban@hecs-338035:~$ mkdir docs && mkdir backup +debain2ban@hecs-338035:~$ ls +backup docs + +debain2ban@hecs-338035:~/docs$ touch a.txt && touch .b.txt && touch fifel.txt +debain2ban@hecs-338035:~/docs$ ls -a +. .. a.txt .b.txt fifel.txt +debain2ban@hecs-338035:~/docs$ + +debain2ban@hecs-338035:~/docs$ mv *.txt ../backup +debain2ban@hecs-338035:~/docs$ mv .*.txt ../backup +debain2ban@hecs-338035:~/docs$ cd .. +debain2ban@hecs-338035:~$ cd backup +debain2ban@hecs-338035:~/backup$ ls -a +. .. a.txt .b.txt fifel.txt + + +### 练习题 2:复制文件夹及其内容 + +1. 假设`/home/user/photos`是一个包含多个图片文件夹的目录,请复制整个`/home/user/photos`目录及其所有内容到`/home/user/archive`目录下。 + +debain2ban@hecs-338035:~$ mkdir photos && mkdir archive +debain2ban@hecs-338035:~$ ls +archive backup docs photos + +debain2ban@hecs-338035:~/photos$ touch 001.png +debain2ban@hecs-338035:~/photos$ ls +001.png + +debain2ban@hecs-338035:~$ cp photos archive +cp: -r not specified; omitting directory 'photos' +debain2ban@hecs-338035:~$ cp -r photos archive +debain2ban@hecs-338035:~$ cd archive +debain2ban@hecs-338035:~/archive$ ls +photos +debain2ban@hecs-338035:~/archive$ cd photos +debain2ban@hecs-338035:~/archive/photos$ ls +001.png + +### 练习题 3:移动文件 + +1. 将`/home/user/docs`目录下的`file2.docx`移动到`/home/user/papers`目录下。 +2. 如果`/home/user/papers`目录下已经有一个名为`file2.docx`的文件,请确保移动操作会询问你是否要覆盖它。 + +debain2ban@hecs-338035:~/docs$ touch fifel2.docs +debain2ban@hecs-338035:~/docs$ ls +fifel2.docs + +debain2ban@hecs-338035:~$ mkdir papers +debain2ban@hecs-338035:~$ ls +archive backup docs papers photos + +debain2ban@hecs-338035:~$ cp docs/fifel2.docs papers +debain2ban@hecs-338035:~$ cd papers +debain2ban@hecs-338035:~/papers$ ls +fifel2.docs + +debain2ban@hecs-338035:~$ cp -i docs/fifel2.docs papers +cp: overwrite 'papers/fifel2.docs'? y +debain2ban@hecs-338035:~$ cd papers +debain2ban@hecs-338035:~/papers$ ls +fifel2.docs + + +### 练习题 4:重命名文件 + +1. 将`/home/user/docs`目录下的`oldname.pdf`重命名为`newname.pdf`。 + +debain2ban@hecs-338035:~/docs$ touch oldname.pdf +debain2ban@hecs-338035:~/docs$ ls +fifel2.docs oldname.pdf + +debain2ban@hecs-338035:~/docs$ mv oldname.pdf newname.pdf +debain2ban@hecs-338035:~/docs$ ls +fifel2.docs newname.pdf + +### 练习题 5:结合使用 + +1. 复制`/home/user/docs`目录下的`report.md`到`/home/user/temp`,然后将复制过去的文件重命名为`temp_report.md`。 +2. 将`/home/user/docs`目录下所有以`.doc`结尾的文件移动到`/home/user/processed`,并且如果这些文件在目标目录中已经存在,则不覆盖它们。 + +debain2ban@hecs-338035:~/docs$ touch report.md +debain2ban@hecs-338035:~/docs$ ls +fifel2.docs newname.pdf report.md + +debain2ban@hecs-338035:~$ mkdir temp +debain2ban@hecs-338035:~$ ls +archive backup docs papers photos temp + +debain2ban@hecs-338035:~$ mv docs/report.md temp/temp_report.md +debain2ban@hecs-338035:~$ cd temp +debain2ban@hecs-338035:~/temp$ ls +temp_report.md + +debain2ban@hecs-338035:~$ mkdir processed +debain2ban@hecs-338035:~$ ls +archive backup docs papers photos processed temp + +debain2ban@hecs-338035:~/docs$ echo "abc" >a.doc && echo "ppt" >b.doc +debain2ban@hecs-338035:~/docs$ ls +a.doc b.doc fifel2.docs newname.pdf + +debain2ban@hecs-338035:~/docs$ cat a.doc && cat b.doc +abc +ppt + +debain2ban@hecs-338035:~/processed$ echo "666" >b.doc +debain2ban@hecs-338035:~/processed$ ls +b.doc +debain2ban@hecs-338035:~/processed$ cat b.doc +666 + +// 覆盖了 +debain2ban@hecs-338035:~$ cp docs/*.doc processed/ +debain2ban@hecs-338035:~$ cd processed/ +debain2ban@hecs-338035:~/processed$ ls +a.doc b.doc +debain2ban@hecs-338035:~/processed$ cat b.doc +ppt + +debain2ban@hecs-338035:~$ cp -n docs/*.doc processed/ +debain2ban@hecs-338035:~$ cd processed/ +debain2ban@hecs-338035:~/processed$ ls +a.doc b.doc +debain2ban@hecs-338035:~/processed$ cat b.doc +666 + + +### 练习题 6:使用通配符 + +1. 复制`/home/user/docs`目录下所有以`.jpg`或`.png`结尾的图片文件到`/home/user/images`目录。 + +debain2ban@hecs-338035:~/docs$ touch a.jpg b.jpg a.png b.png +debain2ban@hecs-338035:~/docs$ ls +a.doc a.jpg a.png b.doc b.jpg b.png fifel2.docs newname.pdf +debain2ban@hecs-338035:~/docs$ cd .. +debain2ban@hecs-338035:~$ mkdir images +debain2ban@hecs-338035:~$ ls +archive backup docs images papers photos processed temp + +debain2ban@hecs-338035:~/docs$ cp *.jpg *.png ../images +debain2ban@hecs-338035:~$ cd images/ +debain2ban@hecs-338035:~/images$ ls +a.jpg a.png b.jpg b.png + + +### 练习题 7:详细输出 + +1. 使用`cp`命令复制文件时,显示详细的复制信息。 +2. 使用`mv`命令移动文件时,显示详细的移动信息。 + +debain2ban@hecs-338035:~/docs$ cp -v *.jpg *png ../images/ +'a.jpg' -> '../images/a.jpg' +'b.jpg' -> '../images/b.jpg' +'a.png' -> '../images/a.png' +'b.png' -> '../images/b.png' +debain2ban@hecs-338035:~/docs$ cd ../images/ +debain2ban@hecs-338035:~/images$ ls -v +a.jpg a.png b.jpg b.png + +debain2ban@hecs-338035:~/images$ rm -v *.jpg *png +removed 'a.jpg' +removed 'b.jpg' +removed 'a.png' +removed 'b.png' +debain2ban@hecs-338035:~/images$ ls + +### 练习题 8:更新文件 + +1. 如果`/home/user/backup`目录中已经有一个与`/home/user/docs`目录下的`file1.txt`同名的文件,并且`/home/user/docs/file1.txt`的内容是更新的,请使用`cp`命令将更新的文件复制到备份目录,并覆盖旧文件(假设你知道旧文件可以被安全地覆盖)。 \ No newline at end of file diff --git "a/\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" "b/\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" deleted file mode 100644 index 0a688c0..0000000 --- "a/\350\214\203\347\220\263\346\226\271/\347\233\270\345\257\271\350\267\257\345\276\204\345\222\214\347\273\235\345\257\271\350\267\257\345\276\204.md" +++ /dev/null @@ -1,198 +0,0 @@ -### 教学课:理解和使用绝对路径与相对路径 - -#### 目标 -- 了解什么是绝对路径和相对路径 -- 学习在命令行中如何使用绝对路径和相对路径 -- 掌握不同场景下如何选择使用绝对路径或相对路径 - -### 一、概念讲解 - -#### 1. 绝对路径 -**定义**:从根目录 `/` 开始的完整路径,用于唯一确定文件或目录的位置。 - -**特点**: - -- 以 `/` 开头 -- 与当前工作目录无关 - -**示例**: -- `/home/user/documents/file.txt` -- `/usr/local/bin` - -#### 2. 相对路径 -**定义**:相对于当前工作目录的路径,用于在当前目录的基础上指向文件或目录。 - -**特点**: - -- 不以 `/` 开头 -- 依赖于当前工作目录 - -**特殊符号**: - -- `.` 表示当前目录 ./ -- `..` 表示上一级目录../ - -**示例**: -- `documents/file.txt` (假设当前目录是 `/home/user`) -- `../user/file.txt` (假设当前目录是 `/home/user/documents`) - -### 二、实际操作示例 - -#### 1. 绝对路径操作示例 - -**示例 1**:列出 `/var/log` 目录中的所有文件。 -```bash -ls /var/log -``` - -**示例 2**:复制 `/etc/passwd` 文件到 `/home/user/backup` 目录。 -```bash -cp /etc/passwd /home/user/backup/ -``` - -#### 2. 相对路径操作示例 - -**示例 1**:假设你在 `/home/user/projects` 目录下,列出当前目录中的所有文件和目录。 -```bash -ls ../ -``` - -**示例 2**:假设你在 `/home/user/projects/scripts` 目录下,显示 `../data` 目录中的所有文件和目录。 -```bash -ls ../data -``` - -### 三、练习题目 - -#### 绝对路径和相对路径题目 - -**题目 1**:在 `/home/user` 目录下创建一个名为 `newdir` 的目录。 - -- **绝对路径**: - ```bash - mkdir /home/user/newdir - ``` - -- **相对路径**(假设当前目录是 `/home/user`): - ```bash - mkdir newdir - ``` - -**题目 2**:将 `/usr/share/doc` 目录中的所有内容复制到 `/home/user/doc_backup` 目录中。 - -- **绝对路径**: - ```bash - cp -r /usr/share/doc /home/user/doc_backup - ``` - -- **相对路径**(假设当前目录是 `/home/user`): - ```bash - cp -r /usr/share/doc doc_backup - ``` - -**题目 3**:查找 `/etc` 目录下包含 `network` 关键字的所有文件。 - -- **绝对路径**: - - ```bash - grep -r "network" /etc - ``` - -- **相对路径**(假设当前目录是 `/etc`): - ```bash - grep -r "network" . - ``` - -**题目 4**:假设你在 `/home/user` 目录下,将 `projects/report.txt` 文件复制到 `backup/` 目录中。 - -- **绝对路径**: - ```bash - cp /home/user/projects/report.txt /home/user/backup/ - ``` - -- **相对路径**: - ```bash - cp projects/report.txt backup/ - ``` - -**题目 5**:假设你在 `/home/user/projects` 目录下,移动 `../data/data.csv` 到当前目录。 - -- **绝对路径**: - ```bash - mv /home/user/data/data.csv /home/user/projects/ - ``` - -- **相对路径**: - ```bash - mv ../data/data.csv . - ``` - -**题目 6**:假设你在 `/home/user/projects` 目录下,查找 `../logs` 目录中包含 `error` 关键字的所有文件。 - -- **绝对路径**: - ```bash - grep -r "error" /home/user/logs - ``` - -- **相对路径**: - ```bash - grep -r "error" ../logs - ``` - -### 四、总结 - -- **绝对路径**始终从根目录开始,适合在需要唯一标识文件或目录位置时使用。 -- **相对路径**从当前工作目录出发,适合在命令行交互和项目内部文件操作时使用。 -- 了解两者的使用场景,有助于在实际工作中灵活运用,提高工作效率。 - -通过练习这些题目,学生将能够在实际操作中熟练使用绝对路径和相对路径,并能根据具体需求选择合适的路径类型。 - - - - - - - - - - - - - - - -有两几个: - -1. 闽大实训8班:小黄 -2. 闽大实训7班:大黄 -3. 北大计算机1班:小白 -4. 清华计算机2班:小黑 - -小黄: - -1. /地球/亚洲/中国/福建/龙岩/新罗/曹溪/闽大/小黄 - - cd 望云楼/实训7/ - -2. /地球/亚洲/中国/福建/龙岩/新罗/曹溪/闽大/望云楼/实训7/大黄 - -3. /地球/亚洲/中国/北京/朝阳区/北京大学/小白 - - ../../海淀区 - -4. /地球/亚洲/中国/北京/海淀区/清华大学/计算机大楼/2班/小黑 - - - -将上次作业 - -1.写成绝对路径 - -2.在家目录操作:相对路径 - - - - - - - -- Gitee From ffdc1f6ec17f4d812b9434e7bbd343b1b017f837 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 28 May 2024 12:44:25 +0800 Subject: [PATCH 3/3] a --- ...45\350\257\242\345\221\275\344\273\244.md" | 27 ++++ .../20240523\344\275\234\344\270\232.md" | 61 +++---- ...63\347\232\204\347\273\203\344\271\240.md" | 149 ++++++++++++++++++ 3 files changed, 207 insertions(+), 30 deletions(-) create mode 100644 "\350\214\203\347\220\263\346\226\271/20240527\346\237\245\350\257\242\345\221\275\344\273\244.md" create mode 100644 "\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240527\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" diff --git "a/\350\214\203\347\220\263\346\226\271/20240527\346\237\245\350\257\242\345\221\275\344\273\244.md" "b/\350\214\203\347\220\263\346\226\271/20240527\346\237\245\350\257\242\345\221\275\344\273\244.md" new file mode 100644 index 0000000..5355469 --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/20240527\346\237\245\350\257\242\345\221\275\344\273\244.md" @@ -0,0 +1,27 @@ +## find +- find 路径 匹配条件 +- -name "" 按文件名查找 , 支持通配符 * 和 ? +- - type f(文件) 、d(目录) 、l () 按文件类型查找 +- -size +- c (字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB) 按文件大小查找 +- -empty:查找空文件,即文件大小为0的文件。 +- mtime +-days 按时间查找, + 表示天数内,- 表示天数外。 ++ 按修改日期查询: -mtime +### 高级查询 +- find 路径 查找方式 -exec shell 命令 {} \; +- + 可以显示文件名 。 +## grep +- grep 参数 "内容" 查找目录或文件 +- 是linux 中的一个文本搜索工具, 可以用于在文件中查找特定的关键字。 +- 参数 ++ -r 若是目录, 则可以递归查询 ++ -n 显示查询内容的行号 ++ -i 忽略大小写进行查询 +## which +- which 要查询的 +- 查询可执行程序的路径。 +## whereis +- which 要查询的 +- 可查询手册 +## 把搜索的结果 保存在 ... 当中 , 可以使用 命令 重定向。 +> (如果... 已经存在, ... 会被覆盖掉) +>> (另外创建一个..., 原来的... 不会被覆盖。) diff --git "a/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" index a860f74..91a271d 100644 --- "a/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" +++ "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240523\344\275\234\344\270\232.md" @@ -47,36 +47,37 @@ 1.bak 1.doc 1.txt 2.bak 2.doc 2.txt 8. 将文件file1.txt从当前目录移动到家目录的/docs中。 - debain2ban@hecs-338035:~/tmp$ tree - . - ├── shiyan.c - ├── test - │   ├── 1.bak - │   ├── 1.doc - │   ├── 1.txt - │   ├── 2.bak - │   ├── 2.doc - │   └── 2.txt - └── test2 - ├── 1.txt - ├── 2.txt - ├── 3.txt - ├── 4.txt - ├── 5.txt - ├── bbbb.txt - ├── file2.txt - └── hailiang.tar - - 3 directories, 14 files - - debain2ban@hecs-338035:~/tmp/test2$ touch file1.txt - debain2ban@hecs-338035:~$ mkdir docs - debain2ban@hecs-338035:~$ ls - 1.bak 1.doc 1.txt 2.bak 2.doc 2.txt docs exam.c tmp - debain2ban@hecs-338035:~/tmp/test2$ mv file1.txt ../../docs - debain2ban@hecs-338035:~$ cd docs - debain2ban@hecs-338035:~/docs$ ls - file1.txt + + debain2ban@hecs-338035:~/tmp$ tree + . + ├── shiyan.c + ├── test + │   ├── 1.bak + │   ├── 1.doc + │   ├── 1.txt + │   ├── 2.bak + │   ├── 2.doc + │   └── 2.txt + └── test2 + ├── 1.txt + ├── 2.txt + ├── 3.txt + ├── 4.txt + ├── 5.txt + ├── bbbb.txt + ├── file2.txt + └── hailiang.tar + + 3 directories, 14 files + + debain2ban@hecs-338035:~/tmp/test2$ touch file1.txt + debain2ban@hecs-338035:~$ mkdir docs + debain2ban@hecs-338035:~$ ls + 1.bak 1.doc 1.txt 2.bak 2.doc 2.txt docs exam.c tmp + debain2ban@hecs-338035:~/tmp/test2$ mv file1.txt ../../docs + debain2ban@hecs-338035:~$ cd docs + debain2ban@hecs-338035:~/docs$ ls + file1.txt 9. 复制文件file2.txt从当前目录到家目录/backup中。 debain2ban@hecs-338035:~$ mkdir backup diff --git "a/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240527\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/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240527\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 0000000..937b583 --- /dev/null +++ "b/\350\214\203\347\220\263\346\226\271/\344\275\234\344\270\232/20240527\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,149 @@ +### 操作题 + +1. **查找当前目录及其子目录中所有扩展名为 `.log` 的文件**: + ```bash + find ./ -type f -name ".log" + ``` + +2. **在 `/var/logs` 目录及其子目录中查找所有包含关键字 `error` 的文件,并显示匹配的行**: + ```bash + grep -r -n "error" /var/logs + ``` + +3. **在 `/home/user/docs` 目录中查找文件名包含 `report` 的所有文件**: + ```bash + find /home/user/docs -type f -name "*report" + ``` +4. **查找 `/etc` 目录中最近7天内修改过的文件**: + ```bash + find /etc -type f -mtime -7 + ``` + +5. **显示 `/usr/bin` 目录中名为 `python` 的可执行文件的路径**: + ```bash + which python + ``` + +6. **查找系统中名为 `ls` 的命令及其手册页位置**: + ```bash + whereis ls + ``` + +7. **查找当前目录中包含关键字 `TODO` 的所有文件,并显示匹配的行和文件名**: + ```bash + find ./ -type f -exec grep -n "*TODD" {} +; + ``` + +8. **在 `/home/user/projects` 目录中查找所有包含关键字 `function` 的 `.js` 文件**: + ```bash + find /home/user/projects -type f "*.js" -exec grep "function" {} \; + ``` + +9. **查找并显示当前目录及其子目录中所有空文件**: + ```bash + find ./ -type f -size +0c + ``` + +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 -type f -name "*.conf" + debain2ban@hecs-338035:~$ find -type f -name "*.conf" + ./workspace/2.conf + ./workspace/dosc/5.conf + ./workspace/dosc/4.conf + ./workspace/3.conf + ./workspace/1.conf + + ``` + +2. 在这些 `.conf` 文件中查找包含关键字 `server` 的行: + ```bash + // 要加路径, 不然找不到。 + debain2ban@hecs-338035:~$ find ./ -type f -name "*.conf" -exec grep -r -n "server" {} \; + 1:server2 + 1:server001 + debain2ban@hecs-338035:~$ find ./ -type f -name "*.conf" -exec grep -r -n "server" {} +; + ./workspace/dosc/5.conf:1:server2 + ./workspace/3.conf:1:server001 + + ``` + +3. 将结果保存到 `server_lines.txt` 文件中: + ```bash + debain2ban@hecs-338035:~$ find ./ -type f -name "*.conf" -exec grep -r -n "server" {} + > server_lines.txt; + debain2ban@hecs-338035:~$ ls + server_lines.txt workspace + debain2ban@hecs-338035:~$ cat server_lines.txt + ./workspace/dosc/5.conf:1:server2 + ./workspace/3.conf:1:server001 + + ``` + +通过这套操作题和综合操作题,你可以全面地了解和应用Linux系统中与文件和内容查询相关的常用命令。 + // 1.conf 2.conf 1.doc 2.jpg 4.conf 空文件。3.conf (server001) 5.conf (server2) 6.conf (bug) 3.png (server3) + debain2ban@hecs-338035:~$ mkdir workspace + debain2ban@hecs-338035:~$ cd workspace/ + debain2ban@hecs-338035:~/workspace$ touch 1.conf 2.conf + + debain2ban@hecs-338035:~/workspace$ echo server001 > 3.conf + debain2ban@hecs-338035:~/workspace$ cat 3.conf + server001 + + debain2ban@hecs-338035:~/workspace$ ls + 1.conf 2.conf 3.conf + + debain2ban@hecs-338035:~/workspace/dosc$ ls + 1.doc 2.jpg 4.conf 5.conf + + debain2ban@hecs-338035:~/workspace/dosc$ cat 5.conf + server2 + + debain2ban@hecs-338035:~/workspace/dosc$ echo bug >6.conf + debain2ban@hecs-338035:~/workspace/dosc$ cat 6.conf + bug + debain2ban@hecs-338035:~/workspace/dosc$ echo server3 >3.png + debain2ban@hecs-338035:~/workspace/dosc$ cat 3.png + server3 + + debain2ban@hecs-338035:~/workspace/dosc$ ls + 1.doc 2.jpg 3.png 4.conf 5.conf 6.conf + debain2ban@hecs-338035:~/workspace/dosc$ tree ~ + /home/debain2ban + └── workspace + ├── 1.conf + ├── 2.conf + ├── 3.conf + └── dosc + ├── 1.doc + ├── 2.jpg + ├── 3.png + ├── 4.conf + ├── 5.conf + └── 6.conf + + 2 directories, 9 files + + + + + + + + -- Gitee