Linux简介
1.Linux发行版
Linux发行版 = Liunx核心 +应用软件
2.Liunx内核架构
Liunx内核有5个子系统:
- Process Scheduler,进程管理、进程调度。负责管理 CPU 资源,以便让各个进程可以以尽量公平的方式访问 CPU。
- Memory Manager,内存管理。负责管理 Memory(内存)资源,以便让各个进程可以安全的共享机器的内存资源。
- VFS(Virtual File System),虚拟文件系统。Linux 内核将不同功能的外部设备抽象为可以通过统一的文件操作接口(open、close、read、write 等)来访问。这就是 Linux系统“一切皆是文件”的体现
- 设备驱动,负责管理第三方设备接入/终端
- Network,网络子系统。负责管理系统的网络设备,并实现多种多样的网络标准
Linux基本操作
1.开机关机
开启会启动许多程序,在windows叫做“服务“(service),在Linux叫做“守护进程”(daemon)
同步数据命令:sync(常常用于强制关机前)
关机命令:shutdown
重启命令:reboot
2.基本目录结构
基本知识:
- Liunx一切皆文件
- 根目录/,所有文件都挂载在这个节点下
- ls 查看当前目录下所有文件
Liunx目录结构:
比较常用的如下:
- /etc : 该目录可用来存放所有系统管理需要的配置文件和子目录
- /home:用户主目录(在liunx,每个用户都有一个自己的目录)
- /opt : 主机额外安装软件存放的位置
- /root : 系统管理员用户主目录
- /usr:用户的应用程序和文件都放在这个目录,类似于Windows的program files目录
- /tmp :存放临时文件,用完即丢的文件如安装包
- /var : 存放不断扩充的东西,习惯于放那些经常被修改的目录
Liunx目录管理
1.文件管理基本命令
比较常用的如下:
- ls: 列出目录
- cd:切换目录
- pwd:显示目前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- cp:复制文件或目录
- rm:移除文件或目录
- mv:移动文件与目录,或修改文件与目录的名称
- touch:创建文件
2.ls命令
3.mkdir命令
4.rm命令
Linux文件管理
1.文件属性
文件属性字符串:
文件权限字符串:
文件类型:
常用的如下:
-
:普通文件d
:目录文件l
:连接文件(相当于Windows的快捷方式)
文件权限:
在文件属性中每组权限按rwx
这样的顺序显示,而-
表示没有该权限
2.chgrp&chown命令
更改文件属组(文件所属用户组)
1 | charg -R 属组名 文件名 |
更改文件属主(文件所有者)
1 | chown -R 属主名 文件名 |
同时修改文件的属组和属主
1 | chown -R 属主名:属组名 文件名 |
3.chmod命令
chmod可以设置文件访问权限,有两种设置方法:数字(常用)和符号
Linux文件的基本权限有9个,分别是owner/group/others 三种身份分别的rwx权限(9个权限三个三个为一组)
1 | 使用格式 |
4.文件内容查看
- nl:显示文件中的时候标注行号
- less与more类似,有分页的功能,但是可以往前翻页(空格下翻页,pageDown,pageUp代表翻动页面)
- 在less查看模式下:q命令退出,
/
命令向下查询字符串,?
向下查询字符串,n
继续搜寻下一个,N
向上寻找
Linux链接
1.链接类型
Linux的链接分为两种:
- 软链接:类似与windows下的快捷方式,删除了源文件,快捷方式也访问不了
- 硬链接:允许一个文件有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删
2.创建链接
1 | 为f1文件创建一个硬链接f2 |
3.链接相关测试
文件内容修改:
原文件的内容,其硬链接的内容,其软连接访问的内容都是保持一致的,修改其中之一其他两项访问的内容也会相应变化
文件删除:
删除原文件后,硬链接依旧可以访问,而软链接无法打开(快捷方式失效)
Vim编辑器
1.Vim简介
- Vim是一种文本编辑器,有代码补全,编译及错误跳转等方便编程的功能
- Vim可以通过参加实现IDE一样的功能
- Vim基本使用:查看内容,编辑内容,保存内容
2.Vim三模式
- 命令模式只能查看文本,可以通过键盘输入切换到输入模式和底部命令行模式
- 输入模式可以编辑文件
- 末行模式即命令行模式可以执行退出,保存文件等操作
3.命令模式
数字+空格
:横向移动光标,向右移动n个字数字+回车
:纵向移动光标,向下移动n行/word
:向光标下寻找名为word的字符串?word
:向光标下寻找名为word的字符串n/N
:进行下翻页和下翻页(n表示重复上一个搜寻动作,N则是反向于上一个搜寻动作)u
:重复上一个操作
4.输入模式
输入模式常用按键:
5.命令行模式
常用命令:
:ZZ
:不存储直接离开(ctrl + z)
:set nu
:设置行号,打开文本每一行都显示行号
注意如果输入的命令不存在会返回127错误,而且会回到vim界面
Linux账号管理
账号管理实质是对/etc/passwd
文件的更新
1.添加用户
1 | useradd -选项 用户名 |
useradd 相关选项:
常用-m
自动为用户在home下创建目录
可以在/etc/passwd文件夹下查看用户相关的配置信息
1 | cat /etc/passwd |
2.删除用户
1 | userdel -选项 用户名 |
常用-r
选项自动删除用户在home下的用户目录
3.修改用户
1 | usermod -选项 修改内容 用户名 |
4.切换用户
1 | su + 用户名 |
切换到root用户:sudo su
修改主机名:
1 | hostname 修改的名称 |
5.用户口令管理命令
创建/修改用户的密码
1 | passwd 选项 用户名 |
Linux用户组管理
组的增加,删除和修改实际上就是对/etc/group
文件的更新
1.创建用户组
1 | 用户组组的id自增1 |
2.删除用户组
1 | 删除用户组 |
3.修改用户组
1 | 基本样式 |
4.切换用户组
1 | 登录的当前用户切换到root组 |
5.用户管理相关文件
/etc/passwd
文件:
具体格式
1 | 用户名:口令(不可见一般显示为x):用户标识号:组标识号:注释性描述:主目录:登录Shell |
该文件的每一行都代表一个用户,可以查看用户主目录位置,并查看属于哪一个组
/etc/shadow
文件:
用户密码加密后存放在/etc/shadow文件,与passwd文件一一对应
具体格式
1 | 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 |
/etc/group
文件:
具体格式
1 | 组名:口令:组ID:组内用户列表 |
磁盘管理
1.df命令
列出文件系统整体的磁盘使用量
1 | 普通查看 |
2.du命令
检查磁盘空间使用量
1 | 查看当前目录内存占用 |
3.mount&umount命令
可类比于U盘的使用
mount:挂载设备
umount:卸载设备
进程管理
1.进程介绍
- 在Liunx中,每个程序都是有自己的一个进程,每一个进程都有一个id号
- 每一个进程都有一个父进程
- 进程有两种存在方式:前台运行(程序),后台运行(服务)
2.进程与线程
- 进程就是应用程序的启动实例,而线程从属于进程,是程序的实际执行者
- 一个进程至少包含一个主线程,也可以有更多的子线程
- 对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元
3.任务执行方式
- 串行是指多个任务时,各个任务按顺序执行,完成一个之后才能进行下一个
- 并行指的是多个任务可以同时执行,异步是多个任务并行的前提条件
- 并发是指两个或多个事件在同一时间间隔内发生,常用于多线程编程中
4.同步异步阻塞
同步与异步关注的是消息通信机制:
- 由调用方盲目主动问询的方式是同步调用
- 由被调用方主动通知调用方任务已完成的方式是异步调用
- 同步异步是对系统内核而言(是否主动通知应用层)
阻塞和非阻塞关注的是程序在等待调用结果时的状态:
- 被挂起无法执行其他操作的则是阻塞型
- 被立即「抽离」去完成其他「任务」的则是非阻塞型的
- 阻塞和非阻塞对应用层而言(应用是否去做其他事情)
5.ps命令
ps
查看当前系统中正在执行的各种进程
常用案例:
查看mysql的所有进程
1 | ps -aux|grep mysql |
ps -aux
:查看所有进程信息|
:Linux管道符,过滤上一条命令输出的信息grep
:查找文件中符合条件的字符串
查看父进程
1 | ps -ef|grep mysql |
显示进程树
1 | -p显示父id,-u显示用户组 |
6.kill命令
强制结束该进程,类似与windows结束任务
1 | kill -9 进程id |
hell
kill -9 进程id