笔记
查看linux内核版本
- 1.uname -a
- 2.cat /proc/version
- 3.cat /etc/os-release
linux应用领域 服务器,嵌入式和智能设备,办公桌面,软件开发。
Linux组成: 内核,shell,文件系统,应用程序
进程管理: 进程是正在执行的一个程序或命令 进程有自己的地址空间,占用一定的系统资源一个CPU核同一时间只能运行一个进程 进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
- 查看启动进程 ps -ef | grep nginx
- 查看某个进程 top -p 1929 NI是指优先级
- 关闭指定的进程 kill 1929
- 查看全部进程 top
进程调度 进程的状态有就绪态,运行态,阻塞态。 细化分为:
- R(TASK_RUNNING),可执行状态
- S (TASK_INTERRUPTIBLE),可中断的睡眠状态
- D(TASK_UNINTERRUPTIBLE),不可中断的睡眠状态
- T(TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态,通常由调试引起。
- Z(TASK_DEAD 一EXIT_ZOMBIE),退出状态,进程成为僵尸进程
- X(TASK_DEAD 一EXIT_DEAD),退出状态,进程即将被销毁
调度指把后备队列中的哪些作业调入内存,为它们创建进程、分配必要的资源,再将新创建的进程排在就绪队列上,准备执行。在批处理系统中,大多配有作业调度,但在分时和实时系统中,却往往不配置作业调度。作业调度的运行频率较低,通常为几分钟一次。
进程调用在内核空间进行。
Linux文件系统: 文件系统包含:普通文件,目录,设备,套接字。 虚拟文件系统(VFS): 对应用层提供一个标准的文件操作接口; 对文件系统提供一个标准的文件接入接口
-
查看文件系统磁盘空间利用率:df -T
-
打印包含文件系统类型在内的磁盘分区的信息:mount
-
进入usr文件夹:cd /usr
-
查看文件夹下内容:ls
-
创建文件夹:mkdir demo
-
移动demo文件夹到/home:mv demo / home
-
删除demo文件夹:rm -r demo
-
创建空文件:touch file.txt
-
复制文件:cp file.txt file_bak .txt
文件读取: 先从用户缓冲区查看是否有命中过的,没有的话发起一次请求,在内核缓冲区查看是否命中的,没有的话从磁盘读取文件到内核缓冲区,再拷贝到用户缓冲区,然后进行写操作,写到socket缓冲区,再通过DMA从socket缓冲区读取数据到用户。
用户权限:
-
普通用户账户:在系统中进行普通作业
-
超级用户账户:在系统中对普通用户和整个系统进行管理
-
标准组:可以容纳多个用户
-
私有组:只有用户自己
-
查看当前用户登录信息:w
-
查看当前用户所属的组:groups
-
查看用户的uid信息:id xxxx(例如root)
文件权限: 文件权限关于用户有三个概念: 所有者:文件的所有者 所在组:文件的所有者所在的组 其他人:除文件所有者及所在组外的其他人 每个用户对于文件都有不同权限,包括读(R)、写(w)、执行(×)
查看当前文件夹权限:ls -ld
| d | rwx | r-x | r-x |
|---|---|---|---|
| 文件类型 | 所有者权限 | 组权限 | 其他人权限 |
创建新用户:
- sudo useradd ceshi #创建一个用户
- sudo passwd ceshi #设置用户密码
赋予新用户权限
- sudo chown -R ceshi:ceshi ./demo # demo文件夹权限给ceshi用户
- su ceshi#切换ceshi用户登录
- cd demo #进入demo文件夹
- touch index.js #创建index . js文件成功
软件包:通常指的是一个应用程序,它可以是一个GUI应用程序、命令行工具或〈其他软件程序需要的)软件库 软件包管理: 底层工具:主要用来处理安装和删除软件包文件等任务,DPKG,RPM 上层工具:主要用于数据的搜索任务和依赖解析任务,APT,YUM,DNF
主流操作系统软件包管理工具和前端工具:
| 操作系统 | 格式 | 软件包管理系统 | 前端工具 |
|---|---|---|---|
| Debian | .deb | dpkg | apt,apt-get |
| Ubuntu | .deb | dpkg | apt,apt-get |
| CentOs | .rpm | rpm | yum |
| Fedora | .rpm | rpm | dnf |
| opensuSE | .rpm | rpm | zypper |
感想:
之前学过操作系统的知识对进程较为了解,同时也使用xshell7和xftp在centos7下部署vue+spring boot项目,安装nginx使用的就是yum指令,安装mysql使用.rpm文件,之前不知道这些命令是什么,通过该课程知道这些命令是用来干嘛的了。