Linux分为用户空间和内核空间
学习Linux的价值
Linux是现代化应用程序交付的首选平台 熟悉Linux基础指令,有助于熟悉运维前端常用服务(Nginx,Node.js)
Linux基本组成
- 内核
- Shell(!)
- 文件系统
- 应用程序
内核是硬件与软件之间的中间层,管理资源
Linux系统结构
进程(一个进程内部分为用户进程,内核进程)
- 查看启动的nginx进程 ps -ef| grep nginx
- 查看进程具体信息 top -p
- close a process: kill
- 全部进程实时管理图:top
进程调度
(为何进程数可以超过CPU数?) CPU调度(拉起、关闭)进程
状态表:
- R 可执行状态(就绪,等待)
- S 可中断的睡眠状态(e.g. nginx等候用户指令)
- D 不可中断的睡眠状态(e.g. 进程等候某次io的完成)
- T 暂停状态或跟踪状态
- Z 退出状态,僵尸进程
- X 退出状态,开始销毁
频繁在用户态和内核态切换,调用不同的资源
文件系统
Linux中一切皆是文件,这样做的好处就是启动指令的时候比较统一,read和write就可以读写文件,读写socket和pipe等
- /bin dev root......
- #返回文件类型 df -T或者mount
- #查看文件夹下内容 ls
- #创建文件夹 mkdir
- #move to : mv demo /home
- #delete: re -r
- #create blank file: touch <file.txt>
- #copy file 从A复制B: cp <file.txt> <file_bak.txt>
用户权限
- #查看当前登录号用户信息 w
- #查看当前用户所属的组 groups
- #查看用户uid信息 id
- 文件权限:所有者,所在组,其他人。每个用户权限不同:读写执行(RWX)
- drwxr-xr-x(d为类型,每后面三个为不同用户的权限)
软件包
- 软件包通常指的是一个应用程序。
- 软件包管理系统
- 底层工具
- 上层工具
- 熟悉Debian apt常用命令
- 配置Debian软件源
个人心得
终于弄懂了掘金这个发布文章是markdown格式的,那为啥随手记这么难用哈哈哈。Linux说到底也是个操作系统,比windows和macOS简洁稳定,在开发场景中经常用到。了解了Linux的基本组成、结构、以及一些简单操作之后,最终还是要应用到实战中去。个人觉得这些内容可以在课程中多讲一点,不然有点枯燥、有点空中楼阁。纸上得来终觉浅,绝知此事要躬行呀。