介绍
只要遵循GNU通用许可证,任何人和机构都可以自由地使用llinux的所有底层代码,也可以自由地修改和再发布
很多公司都会基于linux来开发自己的操作系统,也就是linux发行版
- 系统架构和组成
内核
-
设备驱动程序
-
进程管理
-
内存管理
-
文件系统
-
网络协议栈
系统库
-
C标准库
-
数学库
-
动态链接库
-
线程库
-
第三方库
Shell:命令行解释器,是用户使用linux系统的接口,接收用户的各种命令,然后传递给操作系统来执行
应用程序:我们平时使用的各种软件(浏览器,编辑器,办公软件,服务器上:NGINX,MYSQL
- linux的发行版
发行版:是linux内核与软件包,系统工具,库文件等等组成的一个完整的操作系统,它提供了一个预先配置好的linux环境,使我们能够方便的安装,配置和使用linux系统
乌班图适合个人桌面用户
- 安装和配置系统环境
三种方式
-
虚拟机软件(multipass)
-
容器安装
-
云服务器
Multipass 常用命令
1.安装虚拟机镜像实例
Multipass launch --name[实例名] -cpus[cpu核数] -m[内存大小] -d[磁盘大小]
2.查看已经安装的虚拟机实例
multipass list
3.进入虚拟机实例
multipass shell vm-name
4.启动虚拟机实例
multipass start vm-name
5.停止虚拟机实例
multipass stop vm-name
在multipass官网下载
下载完后运行命令
1.
multipass launch --name ubuntu --cpus 4 --memory 8G
2.查看当前的虚拟机列表
multipass list
3.进入虚拟机
multipass shell ubuntu
Vi编辑器
- 模式
进入到vim后,默认进入的是命令模式
i:在光标的前面插入;a在光标的后面插入;o在当前行的下一行插入内容
cat:命令查看文件的内容
ls:用来查看当前目录下的文件和文件夹
在命令模式下:
^:行首(可以跳转到行首)
$:行尾(可以跳转到行尾)
yy:复制一行内容
p:粘贴内容,到光标的下一行
dd: 删除一行内容
在前面添加数字表示可以执行的次数
ctlr+f(forward) 向前
ctrl+b(backward) 向后
ctrl+u(up) 向上翻半页
ctrl+d(down) 向下翻半页
/要查找的内容 向下查找内容
按下n可以继续查找下一个目标
在尾行模式下
:set number 可以显示每一行的行号
:set no number 关闭显示行号
:行号 跳转到对应的行号
常用命令
命令可以接受一个或者多个参数,用来指定命令的具体操作
1.ls 显示目录的内容 -l可以显示详细的参数 -a可以显示隐藏的文件 -h以人类可读的方式显示文件的大小 -t可以按照修改时间排序 -r逆序显示
2.ln(link)创建链接文件 -s表示软连接
- 链接
区分文件和目录,使用ls -l,看最左边的第一个
- -:文件
- d:目录
- l:软链接
软连接:
- 本身并不是文件,只是链接,所以很小
- 可以指向文件或者目录
硬链接:
-
本质是一个指向文件系统中另一个文件的指针,与原始文件共享相同的i节点
-
i节点是文件系统中一个非常重要的概念,在linux系统中,每个文件或者目录都有一个唯一的i节点,存储了文件的元数据信息
- 文件类型:普通文件,目录还是链接
- 权限:文件的访问权限,如读,写和执行权限
- 所有者:文件的拥有者和组信息
- 文件大小:文件的大小(字节数)
- 时间戳:文件的创建时间,最后的访问时间和最后的修改时间
- 数据块指针:指向实际存储文件数据文件的磁盘块的指针
-
源文件和硬连接实际是文件系统中同一个文件的两个不同名字
举例理解
1.使用echo 命令修改原文件的内容
echo "hello" > hello.txt
2.创建一个硬连接
ln hello.txt hardlink.txt
3查看文件的详细内容和i节点
ls -ltri
4.删除硬链接文件,源文件还是可以访问
rm hardlink.txt
- 硬链接只能指向文件
- 权限
-
分为三组
- 前三个字母表示:文件所有者的权限
- 中间三个字母表示:同组用户的权限
- 后面三个字母表示:其他用户的权限
-
字母表示的意思
- r:可读
- w:可写
- x:可执行
- -:没有相应的权限
-
Chmod 修改权限
-
u:所有者
-
g:同组
-
o:其他用户
-
添加权限:Chmod +对应的字母
-
删除权限: chmod-对应的字母
-
- 目录
在linux系统中:所有的文件和目录都是从根目录开始的
根目录的符号:/
1.显示当前所在的目录
pwd
2.切换目录
cd
3.复制文件 -rf递归复制目录,并且强制覆盖目标文件
cp 源目录 目标目录
4.移动/重命名文件
mv
5.删除文件
rm
6.创建目录,使用-p参数来创建多级目录
mkdir
7.显示目录的tree命令,可以以树状图的形式显示目录的结构
不是linux自带的命令,使用包管理器安装一下
sudo apt install tree
8.删除目录的命令,-r表示递归删除一个目录,以及下面的所有文件
rmdir
根目录下的文件:
-
Bin :存放的是系统的基本命令,和二进制的可执行文件
-
etc:存放的是系统和一些软件的配置文件(安装nginx等的配置都是在这个目录下)
-
home:用户的家目录,进入系统后的默认目录
Shell
- Shell script自动化脚本
可以用来编写一些自动化的任务,比如安装软件,系统的运维巡检等等
编写一个shell脚本文件
1.创建一个shell脚本文件
vim hello.sh
2.在第一行写,使用bash解释器
#!/bin/bash
3.要执行的命令
4.执行脚本文件
./hello.sh