diff --git "a/\345\255\231\347\245\245/\347\273\203\344\271\240/.keep" "b/\345\255\231\347\245\245/\344\275\234\344\270\232/.keep" similarity index 100% rename from "\345\255\231\347\245\245/\347\273\203\344\271\240/.keep" rename to "\345\255\231\347\245\245/\344\275\234\344\270\232/.keep" diff --git "a/\345\255\231\347\245\245/\344\275\234\344\270\232/20240525.md" "b/\345\255\231\347\245\245/\344\275\234\344\270\232/20240525.md" new file mode 100644 index 0000000000000000000000000000000000000000..dcc5eee0575793ad0a8a8cb6953179d26a86e0f4 --- /dev/null +++ "b/\345\255\231\347\245\245/\344\275\234\344\270\232/20240525.md" @@ -0,0 +1,128 @@ +1. 使用相对路径,假设当前目录是家目录(例如 `/home/username`),则操作如下: +```bash +touch exam.c +cp exam.c /tmp/shiyan.c +``` + +2. 在任何目录下回到用户主目录,可以使用: +```bash +cd ~ +``` +或者 +```bash +cd $HOME +``` + +3. 用长格式列出`/tmp/test`目录下所有的文件包括隐藏文件: +```bash +ls -la /tmp/test +``` + +4. 在`/tmp/test2`目录下创建5个文件并压缩: +```bash +cd /tmp/test2 +touch 1.txt 2.txt 3.txt 4.txt 5.txt +tar -cvf hailiang.tar 1.txt 2.txt 3.txt 4.txt 5.txt +``` + +5. 在当前目录建立文件并更名: +```bash +touch file1.txt +mv file1.txt file2.txt +``` + +6. 使用vim在当前目录建立文件并加入用户名: +```bash +vim bbbb.txt +``` +在vim编辑器中,输入用户名后保存退出(通常使用 `:wq`)。 + +7. 将家目录中特定扩展名的文件复制到`/tmp/test`目录: +```bash +cp *.txt *.doc *.bak /tmp/test/ +``` + +8. 将`file1.txt`从当前目录移动到家目录的`/docs`中: +```bash +mkdir -p ~/docs +mv file1.txt ~/docs/ +``` + +9. 复制`file2.txt`从当前目录到家目录`/backup`中: +```bash +mkdir -p ~/backup +cp file2.txt ~/backup/ +``` + +10. 将家目录`/docs`中的所有文件和子目录移动到家目录`/archive`中: +```bash +mkdir -p ~/archive +mv ~/docs/* ~/archive/ +``` + +11. 复制家目录`/photos`及其所有内容到家目录`/backup`中: +```bash +cp -r ~/photos/ ~/backup/ +``` + +12. 将文件家目录`/docs/report.doc`移动到家目录`/papers`中并重命名: +```bash +mkdir -p ~/papers +mv ~/docs/report.doc ~/papers/final_report.doc +``` + +13. 在家目录`/docs`中创建空文件并复制到`/backup`中: +```bash +touch ~/docs/notes.txt +cp ~/docs/notes.txt ~/backup/ +``` + +14. 复制家目录`/images`中所有以`.jpg`结尾的文件到家目录`/photos`中: +```bash +cp ~/images/*.jpg ~/photos/ +``` + +15. 将家目录`/docs`中的两个文件复制到家目录`/backup`中: +```bash +cp ~/docs/file1.txt ~/docs/file2.txt ~/backup/ +``` + +16. 将家目录`/docs`中的所有`.txt`文件复制到家目录`/text_files`中: +```bash +mkdir -p ~/text_files +cp ~/docs/*.txt ~/text_files/ +``` + +17. 将家目录`/docs`中的所有文件移动到家目录`/temp`中,并覆盖已存在的文件: +```bash +mkdir -p ~/temp +mv ~/docs/* ~/temp/ +``` + +18. 将家目录`/docs`中的所有文件移动到家目录`/archive`中,并显示详细信息: +```bash +mkdir -p ~/archive +mv -v ~/docs/* ~/archive/ +``` + +19. 复制家目录`/docs`中的所有子目录及其内容到家目录`/backup`中: +```bash +cp -r ~/docs/* ~/backup/ +``` + +20. 将家目录`/docs`中的所有文件和子目录移动到家目录`/backup`中,但排除以"temp_"开头的文件: +```bash +mkdir -p ~/backup +shopt -s extglob +mv ~/docs/!(temp_*) ~/backup/ +``` + +21. 将目录`/docs/report.txt`移动到家目录`/archive`中,并备份同名文件: +```bash +mkdir -p ~/archive +if [ -f ~/archive/report.txt ]; then + mv ~/archive/report.txt ~/archive/report.txt_bak +fi +mv ~/docs/report.txt ~/archive/ +``` + diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240523.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240523.md" new file mode 100644 index 0000000000000000000000000000000000000000..3eabd7a5f5de94b97ac8aee74be5cb4094f34d2b --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240523.md" @@ -0,0 +1,153 @@ +### 1.常见的文件属性: + +### 1. 权限(Permissions) + +权限决定了文件或目录的访问级别。每个文件或目录都有三组权限,分别针对文件拥有者(user)、所属组(group)和其他人(others)。权限可以通过 `ls -l` 命令查看。 + +- **读(r)**:4 +- **写(w)**:2 +- **执行(x)**:1 + +权限组合用三个八进制数字表示,例如 `755` 表示 `rwxr-xr-x`。 + +### 2. 所有权(Ownership) + +每个文件或目录都有一个所有者和一个所属组。所有权信息可以通过 `ls -l` 命令查看。 + +- **用户(User)**:文件的拥有者。 +- **组(Group)**:文件所属的组。 + +可以使用 `chown` 命令更改文件的所有权: + +```bash +chown user:group filename +``` + +### 3. 时间戳(Timestamps) + +每个文件或目录有三个时间戳,分别记录不同的时间信息,可以通过 `ls -l` 或 `stat` 命令查看。 + +- **访问时间(atime)**:最后一次读取文件内容的时间。 +- **修改时间(mtime)**:最后一次修改文件内容的时间。 +- **状态改变时间(ctime)**:最后一次改变文件元数据(如权限或所有权)的时间。 + +### 4. 文件类型(File Type) + +文件类型决定了文件的用途和行为,可以通过 `ls -l` 命令查看第一个字符来识别。 + +- **普通文件(-)**:普通数据文件。 +- **目录(d)**:包含其他文件和目录的文件。 +- **符号链接(l)**:指向另一个文件的链接。 +- **字符设备文件(c)**:用于与设备通信的文件,按字符流读取数据。 +- **块设备文件(b)**:用于与设备通信的文件,按块读取数据。 +- **套接字文件(s)**:用于网络通信的文件。 +- **命名管道(p)**:用于进程间通信的文件。 + +### 5. 文件大小(Size) + +文件大小以字节为单位,表示文件内容的实际存储空间,可以通过 `ls -l` 命令查看。 + +### 6. 链接数(Links) + +链接数表示硬链接的数量,即指向同一个文件内容的不同文件名数量。可以通过 `ls -l` 命令查看链接数。 + + + +## 11.查找文件和目录 + +### 1. `find` 命令 + +`find` 是一个功能非常强大的查找工具,可以递归地搜索目录及其子目录中的文件和目录。它支持多种搜索条件,如名称、大小、修改时间等。 + +```bash +find /path -name "filename" # 按名称查找文件 +find /path -type d -name "dirname" # 按名称查找目录 +find /path -type f -name "*.txt" # 查找所有 .txt 文件 +find /path -type f -size +1M # 查找大于 1MB 的文件 +find /path -type f -mtime -7 # 查找最近7天内修改过的文件 +find /path -type f -exec command {} \; # 查找文件并对其执行命令 +``` + +示例: + +```bash +find /home/user -name "document.txt" # 在 /home/user 目录及其子目录中查找名为 document.txt 的文件 +find /var/log -type f -name "*.log" -mtime -1 # 查找 /var/log 目录中最近一天内修改过的 .log 文件 +``` + +### 2. `locate` 命令 (第三方软件需要安装) + +`locate` 命令通过预建的数据库快速查找文件和目录。它的速度比 `find` 更快,但需要定期更新数据库(通常通过 `updatedb` 命令)。 + +#### 基本用法 + +```bash +locate filename # 查找文件名中包含 "filename" 的所有文件 +locate "*.txt" # 查找所有 .txt 文件 +``` + +### 3. `which` 命令 + +`which` 命令查找可执行文件的位置。它在用户的 `PATH` 环境变量中搜索命令。 + +#### 基本用法 + +```bash +which command # 查找命令的路径 +# 例子 +which ls # 查找 ls 命令的路径 +``` + +### 4. `whereis` 命令 + +`whereis` 命令查找可执行文件、源代码文件和手册页的位置。 + +#### 基本用法 + +```bash +whereis command # 查找命令的可执行文件、源代码文件和手册页 +#例子 +whereis ls # 查找 ls 命令的可执行文件、源代码文件和手册页 +``` + +### 5. `type` 命令 + +`type` 命令显示命令的类型,例如是否是内置命令、别名或可执行文件。 + +```bash +type ls # 显示 ls 命令的类型 +``` + +### 6. `grep` 命令 + +`grep` 命令用于在文件内容中搜索匹配的字符串。虽然它通常用于搜索文件内容,但也可以结合其他命令一起使用来查找文件。 + +```bash +grep "pattern" filename # 在文件中搜索字符串 +grep -r "pattern" /path # 递归地在目录中搜索字符串 +# 示例: +grep "error" /var/log/syslog # 在 /var/log/syslog 文件中搜索包含 "error" 的行 +grep -r "TODO" /home/user/projects # 在 /home/user/projects 目录及其子目录中搜索包含 "TODO" 的文件 + +``` + +### 7. `find` 与 `grep` 结合使用 + +通过结合 `find` 和 `grep` 命令,可以更加灵活地查找文件及其内容。 + +```bash +find /path -type f -name "*.txt" -exec grep "pattern" {} + # 查找包含特定字符串的所有 .txt 文件 +``` + +### 8. `stat` 命令 + +`stat` 命令用于显示文件或文件系统的详细信息,包括大小、权限、修改时间等。 + +#### 基本用法 + +```bash +stat filename # 显示文件的详细信息 +# 示例: +stat document.txt # 显示 document.txt 文件的详细信息 +``` + diff --git "a/\345\255\231\347\245\245/\347\254\224\350\256\260/20240525.md" "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240525.md" new file mode 100644 index 0000000000000000000000000000000000000000..dcc5eee0575793ad0a8a8cb6953179d26a86e0f4 --- /dev/null +++ "b/\345\255\231\347\245\245/\347\254\224\350\256\260/20240525.md" @@ -0,0 +1,128 @@ +1. 使用相对路径,假设当前目录是家目录(例如 `/home/username`),则操作如下: +```bash +touch exam.c +cp exam.c /tmp/shiyan.c +``` + +2. 在任何目录下回到用户主目录,可以使用: +```bash +cd ~ +``` +或者 +```bash +cd $HOME +``` + +3. 用长格式列出`/tmp/test`目录下所有的文件包括隐藏文件: +```bash +ls -la /tmp/test +``` + +4. 在`/tmp/test2`目录下创建5个文件并压缩: +```bash +cd /tmp/test2 +touch 1.txt 2.txt 3.txt 4.txt 5.txt +tar -cvf hailiang.tar 1.txt 2.txt 3.txt 4.txt 5.txt +``` + +5. 在当前目录建立文件并更名: +```bash +touch file1.txt +mv file1.txt file2.txt +``` + +6. 使用vim在当前目录建立文件并加入用户名: +```bash +vim bbbb.txt +``` +在vim编辑器中,输入用户名后保存退出(通常使用 `:wq`)。 + +7. 将家目录中特定扩展名的文件复制到`/tmp/test`目录: +```bash +cp *.txt *.doc *.bak /tmp/test/ +``` + +8. 将`file1.txt`从当前目录移动到家目录的`/docs`中: +```bash +mkdir -p ~/docs +mv file1.txt ~/docs/ +``` + +9. 复制`file2.txt`从当前目录到家目录`/backup`中: +```bash +mkdir -p ~/backup +cp file2.txt ~/backup/ +``` + +10. 将家目录`/docs`中的所有文件和子目录移动到家目录`/archive`中: +```bash +mkdir -p ~/archive +mv ~/docs/* ~/archive/ +``` + +11. 复制家目录`/photos`及其所有内容到家目录`/backup`中: +```bash +cp -r ~/photos/ ~/backup/ +``` + +12. 将文件家目录`/docs/report.doc`移动到家目录`/papers`中并重命名: +```bash +mkdir -p ~/papers +mv ~/docs/report.doc ~/papers/final_report.doc +``` + +13. 在家目录`/docs`中创建空文件并复制到`/backup`中: +```bash +touch ~/docs/notes.txt +cp ~/docs/notes.txt ~/backup/ +``` + +14. 复制家目录`/images`中所有以`.jpg`结尾的文件到家目录`/photos`中: +```bash +cp ~/images/*.jpg ~/photos/ +``` + +15. 将家目录`/docs`中的两个文件复制到家目录`/backup`中: +```bash +cp ~/docs/file1.txt ~/docs/file2.txt ~/backup/ +``` + +16. 将家目录`/docs`中的所有`.txt`文件复制到家目录`/text_files`中: +```bash +mkdir -p ~/text_files +cp ~/docs/*.txt ~/text_files/ +``` + +17. 将家目录`/docs`中的所有文件移动到家目录`/temp`中,并覆盖已存在的文件: +```bash +mkdir -p ~/temp +mv ~/docs/* ~/temp/ +``` + +18. 将家目录`/docs`中的所有文件移动到家目录`/archive`中,并显示详细信息: +```bash +mkdir -p ~/archive +mv -v ~/docs/* ~/archive/ +``` + +19. 复制家目录`/docs`中的所有子目录及其内容到家目录`/backup`中: +```bash +cp -r ~/docs/* ~/backup/ +``` + +20. 将家目录`/docs`中的所有文件和子目录移动到家目录`/backup`中,但排除以"temp_"开头的文件: +```bash +mkdir -p ~/backup +shopt -s extglob +mv ~/docs/!(temp_*) ~/backup/ +``` + +21. 将目录`/docs/report.txt`移动到家目录`/archive`中,并备份同名文件: +```bash +mkdir -p ~/archive +if [ -f ~/archive/report.txt ]; then + mv ~/archive/report.txt ~/archive/report.txt_bak +fi +mv ~/docs/report.txt ~/archive/ +``` +