# Linux_test **Repository Path**: chaomei/linux_test ## Basic Information - **Project Name**: Linux_test - **Description**: 学习Linux的笔记 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-23 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux ## Linux操作系统 由三个重要的部分组成:内核、Shell、文件系统。 ​ 1.1 Kernel 管理硬件设备、内存分配、进程调度、交互空间、精灵程序、文件系统、系统 程序等。 ​ 1.2 Shell Shell是用户和Kernel之间的桥梁,它是一个命令解释器,当用户在Linux终端发 出一个指令,指令传递给Shell,其根据 指令名找到对应的应用程序去执行,应 用程序内部会调用内核对外提供的接口(方法),最终通过内核完成功能 > 注意:普通用户提示符为$,root用户提示符为# > > ''$ user' > > '# root' ## 目录结构 ![image-20251223091759473](C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20251223091759473.png) Ubuntu目录具体描述: ```linux /:Linux文件系统根目录 /bin:存放基本命令和可执行文件,如 ls, cp , mv 等 /boot:包含启动 Linux 所需的文件,包括内核镜像和引导加载程序配置 /dev:设备文件存放于此,表示硬件设备,如硬盘、打印机等 /etc:系统配置文件的位置,如网络设置、服务配置等 /home:普通用户的主目录,每个用户都有一个自己的子目录,如 /home/user /lib:共享库文件存放位置,供各种程序调用 /media 和 /mnt:用于挂载外部存储设备,如 USB 驱动器、CD-ROM 等 /opt:第三方软件包通常安装在此目录下 /proc 和 /sys:虚拟文件系统,提供关于进程和系统状态的信息 /root:超级用户(root 用户)的主目录 /sbin:存放系统管理员使用的命令和脚本,如 ifconfig,shutdown 等 /tmp:临时文件存放处,重启后可能会被清空 /usr:用户程序及相关文件的存放位置,如应用程序、文档、源代码等 /var:变量数据存放地,如日志文件、邮件队列、数据库等 ``` > 注意:不同的Linux系统或者不同版本的系统,文件系统目录结构可能会有小区别 ## 路径 **绝对路径(Absolute Path):** 1. 从根目录 / 开始,指向文件系统中的特定文件或目录 2. 每个绝对路径都以斜杠 / 开头,表示这是从文件系统的最顶层开始的路径 例: /home/briup/myDir/file.txt 是一个绝对路径,它明确地指出了 文件 f ile.txt 位于 /home/briup/myDir/ 目录下 **相对路径(Relative Path):** 1. 不以斜杠/开头 2. 不从根目录开始,其相对于当前工作目录的位 例:如果当前工作目录是 /home/briup ,那么 myDir/file.txt 就是一 个相对路径,它指向的是 /home/briup/myDir/file.txt 文件 **特殊路径:** `.` : 当前工作目录下(一般会省略) `..` : 上一级目录 `/` : 根目录 `~` : 当前用户的家目录 > 注意事项: > > - 一个路径可以表示唯一的一个目录或文件 > - 凡是路径信息以 . 或 .. 开头的均为相对路径 > - 路径中的第一个位置出现的/,代表根目录,例如 /home/briup/hello.txt > - / 可以作为多级路径的分割符使用,例如 5 基础命令 test/a/b/hello.txt ## 命令构成 命令 [-选项] [参数] > command [-options] [arguments] - command : 命令主体 - [-options] : 命令选项(可选),借助它可以显示更加丰富的数据 - [arguments] : 命令参数(可选),命令操作的对象,文件、目录、用户和进程 等,都可以作为参数使用 - > 注意事项: > > - 大小写敏感 > - 命令、选项和参数中间,要用空格隔开 > - 单行命令一般不超过256个字符 ## 配置文件 1. `/etc/passwd` **用途:**此文件包含了系统中所有用户的基本信息 **内容:**字段由冒号分隔,包括用户名、用户 ID(UID)、组 ID(GID)、用户描述、家目录路径和默认 shell 2. `/etc/shadow` **用途:**存储用户的密码哈希值以及与密码策略有关的信息,如密码过期时间等 **格式:**每行对应一个用户,以冒号分隔,包含用户名称、密码哈希、上次更改 密码的时间戳、最小和最大密码年龄、警告期限等信息 **访问控制:**只有 root 用户对该文件有读取权限,以保护敏感数据 3. `/etc/group` **用途:**定义了系统中的用户组信息,列出了每个组的成员 **格式:**每行表示一个组,字段由冒号分隔,依次为组名、密码占位符、GID 和 组成员列表(多个成员用逗号分隔) 4. `/etc/gshadow` **用途:**该文件用于存放组密码,但组密码通常为空或不存在。 **注意:**管理员才有访问权限! ## 基础命令 1. echo:相当于打印输出(system.out.println) 2. clear :清屏 3. pwd:显示当前工作目录的完整路径 4. ls:列出目录中的文件和子目录内容 image-20251223095140189 image-20251223093537347 ``` 文件类型共7种,分别为:- 普通文件 d 目录文件 l 符号链接文件 b 块设备文件 c 字符设备文件 类似于windows快捷方式 如:/dev/sda 磁盘 如:/dev/video0 摄像头 b、c两种类型区别为:当文件进行IO操作时,操作单位不同(c以字符、b 以磁盘块为单位) p 管道文件 用于不同进程间数据交互 mkfifo s.pipe s 套接字文件 一般用于网络通信 ``` 5. cd:切换目录 6. touch:新建文件 7. mkdir:新建目录 > 注意:创建子目录时,要保证父目录存在! 8. passwd:用于修改用户密码 > 密码要求(建议): > > - 长度必须为六到八个字符 > - 应至少包含两个字母字符和一个数字或特殊字符 > - 必须与登录ID不同 > - 必须与之前的密码至少相差三个字符 > - 如果想强制修改密码,可以使用root用户给用户设置密码即可 9. sudo:临时(当前命令)将自己的操作权限提升为 root 权限 10. su:切换到另一个用户账户 11. chmod:更改文件或目录权限的命令 image-20251223095430723 案例: image-20251223095527137 image-20251223095453142 案例: image-20251223095542581 ## 文件操作 1. cp: 拷贝文件 ``` # 若目标文件不存在,新建然后覆盖 cp [-i] 源文件 目标文件 # -i 表示提醒 # 将文件s复制到指定目录中,注意目标目录必须存在 cp [-i] 源文件(s) 目标目录 ``` 拷贝目录 ``` # 复制源目录到目标目录中 cp -r 源目录 目标目录(存在) # 拷贝源目录内容到目标目录 cp -r 源目录 目标目录(不存在) # 将多个源(文件、目录)复制到目标目录,目标目录必须存在 cp -r 源文件(s) 源目录(s) 目标目录 ``` 2. mv: 移动或重命名 ```linux # 删除已经存在的目标文件,重命名源文件 mv [-i] 源文件 目标文件(存在) # 重命名源文件 mv 源文件 目标文件(不存在) # 将源文件移动到指定目录,目标目录必须存在 mv 源文件(s) 目标目录 # 将源目录整体移动到目标目录内,目标目录必须存在 mv 源目录(s) 目标目录 ``` 3. rm: rm命令用于删除文件或非空目录,rmdir用于删除空白目录 ``` # 删除多个文件,-i为提示 rm [-i] filename(s) # rmdir只能用于删除空白目录 rmdir empty_dir(s) # 删除非空目录: -r表示删除目录 -f表示强制删除 rm -r -f dir_name(s) rm -rf dir_name(s) 注意:命令行删除文件或目录,不经过回收站,要慎重! ``` 4. man: 使用man命令可以查看Linux提供的帮助手册。 ## 归档压缩 1. **归档:**归档(Archiving)是指将多个文件和目录打包成一个单独的文件的过程。归档的主要目的是为了简化文件传输、备份或存储管理。归档可以包含原始文件结构和属性,并且通常会结合压缩以减少文件大小。 image-20251223110716082 常用: - 把指定文件和目录进行归档 `tar -cvf my.tar a.txt b.txt dir01` - 解档文件到指定目录中 `tar -xvf my.tar -C dir02` 2. **压缩**:压缩用于减少文件大小以节省存储空间或加快文件传输速 度。gzip 是最常用的压缩工具之一,它使用 Lempel-Ziv 编码(LZ77)算法进 行快速压缩。 - 将归档好的文件进行压缩 `gzip my.tar` - 与tar结合使用,归档后直接压缩 `rm my.tar.gz` `tar -zcvf my.tar.gz a.txt b.txt dir01` 3. **解压:** - 对gz文件进行解压,解压到当前目录 `gunzip my.tar.gz` - 对 tar.gz 文件进行解压并解除归档 `tar -zxvf my.tar.gz -C dir03` ## 元字符 元字符(Metacharacters)是指那些具有特殊含义的字符,它们用于 shell 解释 器来执行特定操作,而不是作为普通文本处理。 1. **通配符** image-20251223111603834 image-20251223111620713 image-20251223111708074 2. **分隔符** `;` 用于分隔在同一行上顺序执行的多个命令。当你在命令行中使用分号时,它 告诉shell按照从左到右的顺序依次执行每个命令,无论前一个命令是否成功。 3. **重定向**:重定向(Redirection)是一种强大的功能,它允许你改变命令的 输入、输出以及错误信息的流向。 > 文件描述符(File Descriptor,简称FD)是计算机科学中的一个术语,用于表 示指向文件或其他输入、输出资源的引用。在Linux和Unix系统中,文件描述符 是一个非负整数,它为每个打开的文件或I/O流提供了一个唯一的标识符。 > > Linux或Unix操作系统启动时,会默认准备好几个文件描述符: > > 0 (stdin): 标准输入设备,默认通常是键盘 > > 1 (stdout): 标准输出设备,默认通常是终端屏幕 > > 2 (stderr): 标准错误输出设备,默认也是终端屏幕 - `>`:也可以写成 `1>`,覆盖写入文件, 它可以将命令的标准输出,重定向到一个文件中,如果文件已存在,内容会被覆盖。 - `>>`:追加写入文件,追加内容到文件末尾尾,不会覆盖已有内容。 - `<`:以可以写成`0<` 重定向0号标准输入设备(默认为键盘)为指定文件。 - `2>`:将标准错误重定向到一个文件。 4. **管道符** `|` ,可以把第一个命令的结果,交给第二个命令作为参数进行操作 案例1:把当前日历通过打印机进行打印 `cal | lp` > 注意: > > - lp命令需要安装成功,且打印机连接、配置好,该命令才能执行成功 > - wc 命令用于统计,-l 统计行,-w 统计单词个数,-c 统计字符个数。 ## 查看内容 **cat:**单独使用,作用是从标准输入设备上获取内容,输出到标准输出设备! **more:**more和cat类似,也是查看内容的命令,但more命令可以一点点显示内容,而 非一次全显示出来。 **head:**查看文件的开头部分,非常适合快速检查大文件的内容或监控日志文件的最新更新。`head [-n] filename` - 不加-n选项,默认情况显示文件的前10行 - 加-n选项,显示指定行(head -3 /etc/passwd) **tail:**tail 命令和 head 命令类似,其查看文件的结尾部分。 ## vi编译器 vi 编辑器是 Unix 和 Linux 系统中非常经典且广泛使用的**文本编辑工具**。它是 一个功能强大、高度可配置的编辑器,特别适合用于**编写代码和配置文件**。**提供了丰 富的命令和快捷键** ### 三种模式 **命令模式(command Mode)** - 这是启动 vi 后默认进入的模式 - 在此模式下,**键盘输入会被解释为命令**,而不是插入到文件中 - 例如,按 `x` 键会删除光标下的字符;按 `:` 可以进入行命令模式执行更多 命令 **插入模式(Insert Mode)** - 按 `i`、`a` 或 `o` 等键可以从命令模式切换到插入模式 - 在插入模式下,所有按键都会作为文本插入到当前光标位置或其周围 - 要退出插入模式返回命令模式,按 `Esc` 键 **行命令模式(Last Line Mode / Ex Mode)** - 通过在命令模式下按 `:` 进入 - 此模式允许你执行一些特定类型的命令,如保存文件、搜索字符串、替换 文本等 - 命令需要以回车键确认执行 **三种模式转换关系图:** image-20251223143523180 ### 命令模式 1. **切换到插入模式** image-20251223143816102 2. **删除命令** image-20251223144506329 3. **替换命令** image-20251223144626208 4. **拷贝命令** image-20251223144643789 ### 最底行模式 **存盘及退出:** image-20251223144728069 ### 补充命令 image-20251223144809394 ### 其他命令 **![image-20251223161721955](C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20251223161721955.png)**