0%

开发工具|Linux学习手册

image-20210904095248687

Linux简介

1.Linux发行版

img

Linux发行版 = Liunx核心 +应用软件

2.Liunx内核架构

img

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)

Linux开机启动脚本 - 转1

同步数据命令:sync(常常用于强制关机前)

关机命令:shutdown

重启命令:reboot

2.基本目录结构

基本知识:

  • Liunx一切皆文件
  • 根目录/,所有文件都挂载在这个节点下
  • ls 查看当前目录下所有文件

Liunx目录结构:

img

比较常用的如下:

  • /etc : 该目录可用来存放所有系统管理需要的配置文件和子目录
  • /home:用户主目录(在liunx,每个用户都有一个自己的目录)
  • /opt : 主机额外安装软件存放的位置
  • /root : 系统管理员用户主目录
  • /usr:用户的应用程序和文件都放在这个目录,类似于Windows的program files目录
  • /tmp :存放临时文件,用完即丢的文件如安装包
  • /var : 存放不断扩充的东西,习惯于放那些经常被修改的目录

Liunx目录管理

1.文件管理基本命令

img

比较常用的如下:

  • ls: 列出目录
  • cd:切换目录
  • pwd:显示目前的目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录
  • cp:复制文件或目录
  • rm:移除文件或目录
  • mv:移动文件与目录,或修改文件与目录的名称
  • touch:创建文件

2.ls命令

这里写图片描述

3.mkdir命令

img

4.rm命令

img

Linux文件管理

1.文件属性

文件属性字符串:
img

文件权限字符串:

363003_1227493859FdXT

文件类型:

linux文件类型和权限- xd_xumaomao - 博客园

常用的如下:

  • -:普通文件
  • d:目录文件
  • l:连接文件(相当于Windows的快捷方式)

文件权限:

img

在文件属性中每组权限按rwx这样的顺序显示,而-表示没有该权限

2.chgrp&chown命令

更改文件属组(文件所属用户组)

1
charg -R 属组名 文件名

更改文件属主(文件所有者)

1
chown -R 属主名 文件名

同时修改文件的属组和属主

1
chown -R 属主名:属组名 文件名

3.chmod命令

chmod可以设置文件访问权限,有两种设置方法:数字(常用)和符号

Linux文件的基本权限有9个,分别是owner/group/others 三种身份分别的rwx权限(9个权限三个三个为一组)

img

1
2
3
4
5
#使用格式
chmod 权限数字组 文件名

#开放所有权限给所有人
chmod 777 root

4.文件内容查看

夺命雷公狗---linux NO:11 linux的文本文件查看命令- 夺命雷公狗- 博客园

  • nl:显示文件中的时候标注行号
  • less与more类似,有分页的功能,但是可以往前翻页(空格下翻页,pageDown,pageUp代表翻动页面)
  • 在less查看模式下:q命令退出,/命令向下查询字符串,?向下查询字符串,n继续搜寻下一个,N向上寻找

Linux链接

1.链接类型

Linux的链接分为两种:

linux之软连接硬链接- osc_3uvms8cw的个人空间- OSCHINA - 中文开源技术交流社区

  • 软链接:类似与windows下的快捷方式,删除了源文件,快捷方式也访问不了
  • 硬链接:允许一个文件有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删

2.创建链接

1
2
3
4
5
# 为f1文件创建一个硬链接f2
ln f1 f2

# 为f1文件创建一个软链接(符号链接)f3
ln -s f1 f3

3.链接相关测试

文件内容修改:

原文件的内容,其硬链接的内容,其软连接访问的内容都是保持一致的,修改其中之一其他两项访问的内容也会相应变化

文件删除:

删除原文件后,硬链接依旧可以访问,而软链接无法打开(快捷方式失效)

Vim编辑器

1.Vim简介

  • Vim是一种文本编辑器,有代码补全,编译及错误跳转等方便编程的功能
  • Vim可以通过参加实现IDE一样的功能
  • Vim基本使用:查看内容,编辑内容,保存内容

2.Vim三模式

Linux 之Vim 命令使用(详细总结) - 知乎

  • 命令模式只能查看文本,可以通过键盘输入切换到输入模式和底部命令行模式
  • 输入模式可以编辑文件
  • 末行模式即命令行模式可以执行退出,保存文件等操作

3.命令模式

  • 数字+空格 :横向移动光标,向右移动n个字
  • 数字+回车:纵向移动光标,向下移动n行
  • /word:向光标下寻找名为word的字符串
  • ?word:向光标下寻找名为word的字符串
  • n/N:进行下翻页和下翻页(n表示重复上一个搜寻动作,N则是反向于上一个搜寻动作)
  • u:重复上一个操作

4.输入模式

输入模式常用按键:

image-20220227172148042

5.命令行模式

常用命令:

image-20220227172248760

:ZZ:不存储直接离开(ctrl + z)

:set nu:设置行号,打开文本每一行都显示行号

注意如果输入的命令不存在会返回127错误,而且会回到vim界面

Linux账号管理

账号管理实质是对/etc/passwd文件的更新

1.添加用户

1
useradd -选项 用户名

useradd 相关选项:

op

常用-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
2
3
4
5
# 用户组组的id自增1
groupadd 组名

# 指定id创建用户组
groupadd -g 233 组名

2.删除用户组

1
2
# 删除用户组
groupdel 组名

3.修改用户组

1
2
3
4
5
# 基本样式
groupmod 选项 修改内容 组名

# 案例
groupmod -g 666 -n newname 组名

4.切换用户组

1
2
# 登录的当前用户切换到root组
newgrp root

5.用户管理相关文件

/etc/passwd文件:

具体格式

1
用户名:口令(不可见一般显示为x):用户标识号:组标识号:注释性描述:主目录:登录Shell

详解Linux中/etc/passwd文件详解Linux中/etc/passwd文件

该文件的每一行都代表一个用户,可以查看用户主目录位置,并查看属于哪一个组

/etc/shadow文件:

用户密码加密后存放在/etc/shadow文件,与passwd文件一一对应

具体格式

1
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

img

/etc/group文件:

具体格式

1
组名:口令:组ID:组内用户列表

img

磁盘管理

1.df命令

列出文件系统整体的磁盘使用量

1
2
3
4
5
# 普通查看
df

# 内存转换为M
df -h

img

2.du命令

检查磁盘空间使用量

1
2
3
4
5
# 查看当前目录内存占用
du

# 检查根目录每个目录所占用的容量
du -sm /*

img

3.mount&umount命令

可类比于U盘的使用

mount:挂载设备

umount:卸载设备

进程管理

1.进程介绍

  • 在Liunx中,每个程序都是有自己的一个进程,每一个进程都有一个id号
  • 每一个进程都有一个父进程
  • 进程有两种存在方式:前台运行(程序),后台运行(服务)

2.进程与线程

  • 进程就是应用程序的启动实例,而线程从属于进程,是程序的实际执行者
  • 一个进程至少包含一个主线程,也可以有更多的子线程
  • 对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元

img

3.任务执行方式

img

  • 串行是指多个任务时,各个任务按顺序执行,完成一个之后才能进行下一个
  • 并行指的是多个任务可以同时执行,异步是多个任务并行的前提条件
  • 并发是指两个或多个事件在同一时间间隔内发生,常用于多线程编程中

4.同步异步阻塞

同步与异步关注的是消息通信机制

img

  • 由调用方盲目主动问询的方式是同步调用
  • 由被调用方主动通知调用方任务已完成的方式是异步调用
  • 同步异步是对系统内核而言(是否主动通知应用层)

阻塞和非阻塞关注的是程序在等待调用结果时的状态:

img

  • 被挂起无法执行其他操作的则是阻塞型
  • 被立即「抽离」去完成其他「任务」的则是非阻塞型的
  • 阻塞和非阻塞对应用层而言(应用是否去做其他事情)

5.ps命令

ps查看当前系统中正在执行的各种进程

Linux学习之路(三) —— Linux高级系统管理命令

常用案例:

查看mysql的所有进程

1
ps -aux|grep mysql
  • ps -aux :查看所有进程信息
  • | :Linux管道符,过滤上一条命令输出的信息
  • grep :查找文件中符合条件的字符串

查看父进程

1
ps -ef|grep mysql

显示进程树

1
2
# -p显示父id,-u显示用户组
pstree -pu

6.kill命令

强制结束该进程,类似与windows结束任务

1
kill -9 进程id

hell
kill -9 进程id