前言
写作说明
写作的最大目的就是一个计算机新手的知识归纳和成果可视化,在输出的过程中完成更深入的学习。希望和其他计算机专业的大一同学共勉。
文章内容
本文并不包含具体Linux命令,因为具体知识点的罗列不如在实践中运用,相反,是提纲挈领的总览和理解。
正文
Linux是一个操作系统。目前我对其掌握程度停留在用户层,只知道“是什么”和“怎么用”,有待进组科研后进阶到管理员层和脚本与自动化层,也就是遇到问题时,知道从日志、进程、文件权限、系统调用等层面去排查,用脚本自动化配置一个服务器。
Linux命令结构是固定的,即“命令+路径”,命令有时伴随参数和选项,而路径分为绝对路径和相对路径。
作为操作系统
其陌生性在于,之前一直使用Windows操作系统,熟悉图形化界面。而使用Linux操作系统需要熟悉命令行界面,通过像编程一样的命令与操作系统内核交互。命令行界面的优势是在形式上统一请求与处理后的反馈,硬件、进程、配置等均以文件形式暴露,可以进行Git管理、脚本批量修改等操作。
其熟悉性在于,Linux的功能和别的操作系统无二致,即管理计算机硬件资源、为软件提供运行环境,所以纷繁复杂的命令可以分为以下类别:
- 文件操作
- 权限管控
- 系统观察
- 网络与远程
使用操作系统
文件操作
注意事项:在Linux中,所谓“一切皆文件”,文件是指能读、写的一切,进程信息、网络、输入设备、硬盘空间等皆是文件。
理论知识包括目录处理、文件和文件夹的处理(创建、打开、删除、移动)。
实际使用情况是使用tail,less,cat等检索,使用grep过滤,使用通配符和管道符帮助完成对日志的查看。
权限管理
理论知识包括识别和修改文件的权限、切换用户、用户组。
系统观察
注意事项:这体现计算机的一个性质:计算机的可观察性,即如何观察系统。系统是指正在被操作的电脑(我的笔记本,某一个服务器或云端的计算机)。
理论知识包括监控、日志和追踪。
- 监控:可以监控系统资源,包括CPU、内存等;可以进行进程管理,有ps,kill等命令。
- 日志:记录系统或程序运行的重要事件;
- 追踪:记录一个请求在多个服务之间的完整路径;
实际使用的意义就在于精准定位问题,为将来自动化打基础(进行自动扩容或自动重启等)。
网络与远程
网络的理论知识的本质就是检查通不通(ping),如果不通,问题又在哪一层(netstat,curl)。
远程的实际使用情况就是SSH可以连接到远程服务器,进行监控和日志操作。
结语
写完这篇心里有种异样的感觉,大学的开放精神和计算机领域的开源精神终于击破了高中那时对知识的自私心理,此处特别感谢HITSZ开源技术协会的学长的影响。