### Linux经典笔记知识点总结
#### 一、Linux平台上的开发工具与技术栈
- **Vi**: 文本编辑器,用于代码编写与文件编辑。
- **GCC**: GNU编译器集合,用于C/C++等语言的编译。
- **GDB**: GNU调试器,用于程序调试。
- **Make**: 自动化构建工具,简化编译过程。
- **JDK**: Java开发工具包,用于Java应用程序的开发。
- **Tomcat**: Java Web服务器,支持Servlet和JSP。
- **MySQL**: 关系型数据库管理系统。
- **Linux基本操作**: 包括文件系统管理、进程控制等。
#### 二、技能提升与学习资源
- **C语言功底**: 加深C语言基础,掌握指针、内存管理等核心概念。
- **Java语言**: 提升Java编程能力,了解面向对象设计原则。
- **Unix环境高级编程**: 学习Unix环境下高级编程技巧,如网络编程、进程间通信等。
- **Linux应用系统开发**: 掌握基于Linux的应用开发,如Web服务、系统工具等。
- **Linux嵌入式开发**: 理解嵌入式系统架构,进行嵌入式软件开发。
**推荐阅读书籍**:
- **《鸟哥的Linux私房菜》**: 介绍Linux系统管理、网络配置等内容。
- **《Linux编程从入门到精通》**: 涵盖Linux编程基础知识与实践案例。
- **《Linux内核完全解析》**: 深入分析Linux内核的工作原理。
- **《Linux命令、编辑器和Shell编程》**: 讲解常用Linux命令、文本编辑器以及Shell脚本编写。
- **《Linux与Unix Shell编程指南》**: 引导读者掌握Shell脚本编程。
- **《TCP/IP详解:卷1:协议/卷2:实现/卷3:TCP事务协议HTTP/NNTP和UNIX域协议》**: 详细阐述TCP/IP协议栈及其实现细节。
#### 三、Linux特点与局限性
- **免费开源**: 使用成本低,社区支持广泛。
- **多线程/多用户支持**: 可以高效处理多任务并发。
- **安全性**: 内置安全机制,适合部署关键应用。
- **内存和文件管理**: 优秀的内存管理机制和文件系统性能。
- **操作难度**: 对于初学者来说,命令行界面可能不太友好。
#### 四、Linux历史与发展
- **起源**: Linus Torvalds基于Minix操作系统开发出Linux内核。
- **发展**: Unix系统、Bell实验室、C语言设计者Ken Thompson的影响。
- **企业参与**: NEC、IBM、Sun Microsystems、HP等公司分别开发了自己的Unix版本。
- **社区贡献**: BSD、Red Hat、SUSE、红旗等组织推动了Linux的发展。
- **管理员角色**: “root”管理员具有最高权限,负责系统维护与管理。
#### 五、Linux命令详解
- **基本命令**:
- `shutdown`: 关闭或重启系统。
- `su`: 切换用户身份。
- `pwd`: 显示当前工作目录。
- `cd`: 改变当前工作目录。
- `ls`: 列出目录内容。
- `touch`: 创建空文件。
- `cp`: 复制文件或目录。
- `mv`: 移动文件或修改文件名。
- `rm`: 删除文件或目录。
- `ln`: 创建硬链接或符号链接。
- `more`/`less`: 分页查看文件内容。
- `grep`: 在文件中搜索特定模式。
- `find`: 查找文件或目录。
- `man`: 显示命令手册页面。
- `|`: 管道命令,用于连接多个命令。
- `>`/`>>`: 输出重定向,将命令结果保存到文件中。
- **示例**:
- `find / -name "man"`: 从根目录开始查找名为“man”的文件或目录。
- `find /home -amin -10`: 查找过去10分钟内被存取的文件或目录。
- `find /home -amin +10`: 查找10分钟前被修改的文件或目录。
#### 六、权限管理
- **权限类型**:
- `r`: 读权限,允许查看文件内容。
- `w`: 写权限,允许修改文件内容。
- `x`: 执行权限,允许运行文件作为程序。
- **权限位**:
- `-rw-r--r--`:
- 第一位 `-` 表示这是一个普通文件。
- `rw-` 文件所有者有读写权限。
- `r--` 同组用户有读权限。
- `r--` 其他用户有读权限。
- `-rwxrw-r--`:
- 文件所有者有读写执行权限。
- 同组用户有读写权限。
- 其他用户有读权限。
以上内容覆盖了从Linux基础知识到高级应用的多个方面,旨在帮助读者全面理解和掌握Linux操作系统的核心知识和技术。