[linux基础 | 青训营笔记]

73 阅读4分钟

笔记

查看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

drwxr-xr-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.debdpkgapt,apt-get
Ubuntu.debdpkgapt,apt-get
CentOs.rpmrpmyum
Fedora.rpmrpmdnf
opensuSE.rpmrpmzypper

感想:

之前学过操作系统的知识对进程较为了解,同时也使用xshell7和xftp在centos7下部署vue+spring boot项目,安装nginx使用的就是yum指令,安装mysql使用.rpm文件,之前不知道这些命令是什么,通过该课程知道这些命令是用来干嘛的了。