diff --git "a/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26005\357\274\232\346\226\207\344\273\266\357\274\214\345\217\212\346\226\207\344\273\266\347\256\241\347\220\206.md" "b/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26005\357\274\232\346\226\207\344\273\266\357\274\214\345\217\212\346\226\207\344\273\266\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..5c21f910ee6b4990eae48f09300b5f3b8358ec7f --- /dev/null +++ "b/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26005\357\274\232\346\226\207\344\273\266\357\274\214\345\217\212\346\226\207\344\273\266\347\256\241\347\220\206.md" @@ -0,0 +1,136 @@ +## 笔记05:文件,及文件管理 + +#### 一,文件 + +1. 查看(ls) + + - 查看所有文件夹:ls -R ~ + - 看文件A下的内存:ls /A + - 看隐藏文件:ls -a + - 显示递归下的所有文件 + +2. 创建临时文件: + + ```bash + #!/bin/bash + + temp_file=(mktemp) + echo "This is a temp file.">temp_file + + echo "Temporary file created: temp_file" + cattemp_file + + ``` + +#### 二,文件管理 + +1. 创建文件(目录) + - 文件:touch 文件名 + - 目录:mkdir 文件名 +2. 复制文件(目录) + - 文件:cp 源 目 + - 目录:cp -r 源 目 + - 注释:加个v可查看进度条 +3. 删除文件(目录) + - 文件:这里面有个通配符*要注意 + - 删通配文件:rm *.txt + - 删隐藏文件:rm .aa.* + - 目录:这里面也可以加v看进度条 + - 删空目录:rmdir 目录名 + - 删目录:rm -r 目录名 + - 递归强制删除:rm -rf 目录名 +4. 重命名文件(目录) + - 语法:mv 原名 新名 + +#### 三,作业: + +1. 假设您刚刚登录到一个Linux系统,并位于您的家目录(`~`)下。您需要完成以下一系列复杂的操作来组织和清理您的文件和目录。请按照顺序执行,并给出相应的命令。 + +- **创建测试文件**:在家目录下创建三个文本文件,分别命名为`.hidden.txt`(隐藏文件)、`visible1.txt`和`visible2.txt`。 + + ```bash + touch .hidden.txt visible1.txt visible2.txt + ``` + +- **列出文件和目录**:列出家目录(`~`)下的所有文件和目录,包括隐藏文件,并查看其详细权限和属性。 + + ```bash + ls -la + ``` + +- **创建工作区**:创建一个新的目录`work_area`,并在其中创建三个子目录:`project_a`、`project_b`和`docs`。 + + ```bash + ww1@iZf8ziiilmu251nazoj5bnZ:~$ mkdir work_area + ww1@iZf8ziiilmu251nazoj5bnZ:~$ cd work_area/ + ww1@iZf8ziiilmu251nazoj5bnZ:~/work_area$ mkdir project_a project_b docs + ww1@iZf8ziiilmu251nazoj5bnZ:~/work_area$ ls + docs project_a project_b + ``` + + + +- **移动文本文件**:将家目录下的所有`.txt`文件移动到`work_area/docs`目录中,并确保这些文件在移动后仍然是隐藏的(如果它们是隐藏的)。 + + ```bash + mv *.txt work_area/docs/ + ``` + +- **创建新文件**:在`work_area/project_a`目录下创建一个新的文本文件`notes.txt`,并添加一些内容(例如:`echo "Initial notes for project A" > work_area/project_a/notes.txt`)。 + + ```c# + ww1@iZf8ziiilmu251nazoj5bnZ:~/work_area/project_a$ touch notes.txt + + cd notes.txt + + echo "Initial notes for project A" > notes.txt(这是路径) + + cat notes.txt //查看 + ``` + +- **复制目录**:递归地复制`work_area/project_a`目录到`work_area/project_b`,并命名为`project_a_backup`。 + + ```bash + 复制:cp -r ../project_a ./ + + 命名:ww1@iZf8ziiilmu251nazoj5bnZ:~/work_area/project_b$ mv project_a project_a_backup + ``` + +- **列出文件并按大小排序**:列出`work_area/docs`目录下的所有文件,并按文件大小降序排列。 + + ```bash + ls -lh + ``` + +- **删除所有文件**:删除`work_area/docs`目录下所有文件。 + + ```bash + rm -rv *.txt + ``` + +- **删除目录**:假设您不再需要`work_area/project_b`目录及其所有内容,请递归地强制删除它。 + + ```bash + rm -rf * + ``` + +- **清理空目录**:清理`work_area`目录,删除其中所有的空目录(注意:不要删除非空的目录)。 + + ```bash + rmdir * + ``` + +- **创建别名**:回到您的家目录,并创建一个别名`llh`,该别名能够列出当前目录下文件和目录的长格式列表,并以人类可读的格式显示文件大小(类似于`ls -lh`命令)。 + + ```bash + 操作步骤: + cd 家目录 + ls -al //查看隐藏文件 + vim .bashrc //进入该文件 + 按i进入把普通模式转为编辑模式 + 找到alias,把前面注释删掉 + 并加上:alias 11h = 'ls -lh' + 保存后,重启终端即可 + ``` + + ![image-20240523201311545.png](https://img2.imgtp.com/2024/05/23/WyEY4Lso.png) \ No newline at end of file diff --git "a/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26006\357\274\232cp\345\244\215\345\210\266\345\222\214mv\347\232\204\350\241\245\345\205\205\350\257\264\346\230\216.md" "b/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26006\357\274\232cp\345\244\215\345\210\266\345\222\214mv\347\232\204\350\241\245\345\205\205\350\257\264\346\230\216.md" new file mode 100644 index 0000000000000000000000000000000000000000..15980169b31dd40a7ca9af9c7180ef5525152787 --- /dev/null +++ "b/53\346\235\216\346\255\246\346\226\207/\347\254\224\350\256\26006\357\274\232cp\345\244\215\345\210\266\345\222\214mv\347\232\204\350\241\245\345\205\205\350\257\264\346\230\216.md" @@ -0,0 +1,177 @@ + + +# 笔记06:文件: + +## 一,cp,mv补充: + +1. cp复制文件 + + - ```bash + 1.-p:保留文件属性:原封不动的复制 + # 将c1.txt复制成c3.txt,并保留c1.txt的文件属性 + $ cp -p c1.txt c3.txt + + 2.-u:仅当源文件较新时复制 + # 使用 `-u` 选项可以仅当源文件比目标文件新时才进行复制。update + cp -u 1班成绩.txt 1班成绩.txt.bak # 更新才复制 + + 3.-bs:指定备份文件尾标 + # 如果/tmp目录已经有a.txt 就会将原来的a.txt备份成a.txt_bak + cp -b -S _bak a.txt /tmp + #注意: + _bak:自己事先准备起名好的新尾标 + -b的含义:目标存在不覆盖 + -s的含义:复制后的别名 + ``` + +2. mv移动文件 + + ```bash + 1.源文件 - 目标文件 :mv a.txt b.txt + # 目标已经存在:源文件替换了目标文件 + # 目标不存在:直接将源文件改名为目标文件 + + 2. 源文件 -目标目录、:mv a.txt dir1 + # 目标存在:将源文件移到目标目录里 + # 目标不存在:将源文件改为目标名 + ``` + + + +## 二,作业: + +相关和目录可自行创建后再操作 + +### 练习题 1:复制文件 + +假设你有两个目录:`/home/user/docs` 和 `/home/user/backup`。 + +```bash +pwd //先查看工作目录 + +mkdir docs backup +``` + +1. 将`/home/user/docs`目录下的`file1.txt`复制到`/home/user/backup`目录下。 + + ```bash + touch file.txt //先创建文件 + cp file.txt ../backup + ``` + +2. 复制`/home/user/docs`目录下的所有`.txt`文件到`/home/user/backup`目录下。 + + ```bash + cp *.txt ../backup/ + ``` + +### 练习题 2:复制文件夹及其内容 + +1. 假设`/home/user/photos`是一个包含多个图片文件夹的目录,请复制整个`/home/user/photos`目录及其所有内容到`/home/user/archive`目录下。 + + ```bash + mkdir photos + mkdir archive + l1@iZf8ziiilmu251nazoj5bnZ:~$ cp -r photos archive/ + l1@iZf8ziiilmu251nazoj5bnZ:~/archive$ ls -la + ``` + + + +### 练习题 3:移动文件 + +1. 将`/home/user/docs`目录下的`file2.docx`移动到`/home/user/papers`目录下。 + + ```bash + touch file2.docx + mkdir papers + mv file2.docx ../papers/ + ``` + +2. 如果`/home/user/papers`目录下已经有一个名为`file2.docx`的文件,请确保移动操作会询问你是否要覆盖它。 + + ```bash + touch file2.docx + mv -i file2.docx ../papers/ //加i + mv: overwrite '../papers/file2.docx'? y //询问是否覆盖 + + ``` + +### 练习题 4:重命名文件 + +1. 将`/home/user/docs`目录下的`oldname.pdf`重命名为`newname.pdf`。 + + ```bash + touch oldname.pdf + mv oldname.pdf newname.pdf + ``` + +### 练习题 5:结合使用 + +1. 复制`/home/user/docs`目录下的`report.md`到`/home/user/temp`,然后将复制过去的文件重命名为`temp_report.md`。 + + ```bash + mkdir temp + cp ../docs/report.md ./temp_report.md + 找到文件 ./是目标路径 重命名 + ``` + +2. 将`/home/user/docs`目录下所有以`.doc`结尾的文件移动到`/home/user/processed`,并且如果这些文件在目标目录中已经存在,则不覆盖它们。 + + ```bash + mkdir processed + l1@iZf8ziiilmu251nazoj5bnZ:~/docs$ mv -i *.doc ../processed + mv: overwrite '../processed/a.doc'? n + ``` + + + +### 练习题 6:使用通配符 + +1. 复制`/home/user/docs`目录下所有以`.jpg`或`.png`结尾的图片文件到`/home/user/images`目录。 + + ```bash + touch ss.jpg mm.png + l1@iZf8ziiilmu251nazoj5bnZ:~/docs$ cp *.jpg ../images/ + l1@iZf8ziiilmu251nazoj5bnZ:~/docs$ cp *.png ../images/ + ``` + +### 练习题 7:详细输出 + +1. 使用`cp`命令复制文件时,显示详细的复制信息。 + + ```bash + l1@iZf8ziiilmu251nazoj5bnZ:~/images$ cp -v *.jpg ../temp/ + 'ss.jpg' -> '../temp/ss.jpg' + ``` + +2. 使用`mv`命令移动文件时,显示详细的移动信息。 + + ```bash + l1@iZf8ziiilmu251nazoj5bnZ:~/images$ cp -v *.png ../temp/ + 'mm.png' -> '../temp/mm.png' + ``` + +### 练习题 8:更新文件 + +1. 如果`/home/user/backup`目录中已经有一个与`/home/user/docs`目录下的`file1.txt`同名的文件,并且`/home/user/docs/file1.txt`的内容是更新的,请使用`cp`命令将更新的文件复制到备份目录,并覆盖旧文件(假设你知道旧文件可以被安全地覆盖)。 + + ```bash + //这是查看文件backup的更新时间(ls -lh:可查看时间) + l1@iZf8ziiilmu251nazoj5bnZ:~/backup$ ls -lh + total 0 + -rw-r--r-- 1 l1 l1 0 May 24 10:43 file.txt + + + //这是查看文件docs的更新时间(ls -lh:可查看时间) + l1@iZf8ziiilmu251nazoj5bnZ:~/docs$ ls -lh + total 0 + -rw-r--r-- 1 l1 l1 0 May 24 11:52 file.txt + + 注意:`docs/file1.txt`的内容是更新的 + + //-u是检测时间,更新时才会被复制 + cp -u file.txt ../backup/file.txt + ``` + + \ No newline at end of file diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 7ecb642315b1305938427e7c7924cb8aa64f86f2..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# Linux基础 - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index cda094fa37a081f0932af0bd52dc12718d684b00..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Linux基础 - -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)