文章目录
1. Linux 操作系统
操作系统分类:
- 桌面
- 给大众使用的
- Windows MacOS Linux
- 服务器
- Linux
- Windows Server 2008 2010 2018(windows开发的权限比较多,安全性比linux差)
- Mac OS Server
- 手机
- (基于Linux)Android 、iOS
- 嵌入式
- 手机、游戏机,汽车、MP3、MP4、智能家具、人工智能软件
Linux版本
- 内核版本:操作系统心脏,处理跟各种硬件打交道的工作。
- 硬件管理,内存管理,文件系统,线程管理…
- 稳定版本 开发版本
- 发行版本
- 内核版本+各种应用软件(办公 媒体播放 浏览器 数据库 … )
- debian的Ubuntu(包管理工具:apt) Redhat 的 CentOS(包管理工具:rpm 或 yum) …
- CentOS比ubuntu更加轻量化,性能更好,企业用的更多
1.1 GUN/Linux(广义Linux)
1. 2 Linux VS Windows
最大的区别在于:目录
linux可以支持多用户多任务,而windows只支持单用户多任务,
多用户可以方便多人远程连接linux虚拟机
挂载
指定区域和某个文件相关联,此时访问该文件就是访问该区域(linux下无盘符概念)
视频资料:安装centos
系统分区与引导分区与swap分区
系统分区为系统镜像源文件存放位置
引导分区为系统启动时进入的分区,一般挂载在boot文件下
swap分区可以充当内存,在内存资源告急的时候可以将暂时用不上的程序存在在swap分区【和windows里面的虚拟内存类似】
举例划分结构:
也就是说虽然是树形结构,但是不是所有文件都在根分区的硬盘空间内,而是可以放在其他分区,例如引导分区挂载在/boot目录下
文件系统
xfs:支持8ZB大小,擅长处理大文件
ext4:支持1ZB大小
2. Linux 系统目录
Windows下有盘符
Linux没有盘符的概念,只有一个根目录,是通过挂载方式
├── bin -> usr/bin # 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。bin是链接
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
├── lib -> usr/lib # 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似c盘/windows/system32里的.dll文件,存放了根文件系统程序运行所需的共享文件
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录,例如编译工具链,但是一般不会解压在该文件,而是通过软链接到opt
├── proc # 进程及内核信息存放目录,虚拟文件系统目录,是系统内存的映射
├── root # 超级用户(系统管理员)的主目录
├── run # 系统运行时产生临时文件,存放目录,重启会清空
├── sbin -> usr/sbin # 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统硬件信息,用来挂载虚拟的sys文件系统,比如设备信息
├── tmp # 临时文件目录
├── usr # Unix Software Resource 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
| ├──/usr/x11r6 #存放x window的目录
| ├──/usr/bin #众多的应用程序 ,绝大部分用户使用指令都在这里(与开机无关),注意bin下面的与开机有关
| ├──/usr/sbin #超级用户的一些管理程序 ,非系统正常运作所需要的系统命令
| ├──/usr/doc #linux文档
| ├──/usr/include #linux下开发和编译应用程序所需要的头文件
| ├──/usr/lib #常用的动态链接库和软件包的配置文件
| ├──/usr/man #帮助文档
| ├──/usr/src #源代码,linux内核的源代码就放在/usr/src/linux里
| ├──/usr/local/bin #本地增加的命令
| ├──/usr/local/lib #本地增加的库
└── var # 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)比如缓存(cache)
可以做改动的目录一般有:
- home
- opt
- tmp
- var
3. Linux下的文件类型
在Linux中,使用命令查看文件,首字母会标记该文件的文件类型,一般有以下几种类型:
– : 普通文件
d: 目录文件
b:块文件
c:字符文件
l:符号链接文件【软连接文件】
p:管道文件pipe
s:套字节文件socket
文件颜色显示不同,代表了不同的文件格式。(以下为默认格式,可以自定义)
蓝色 -> 文件夹。
绿色 -> 可执行文件
红色 -> 压缩文件
浅蓝色 -> 链接文件
灰色 ->其他文件
4. 常用指令及补充
什么是可执行文件
- windows下的是exe(批处理命令或者说批处理脚本),一般用来启动某个应用程序的
- linux下的shell脚本(或者类型的脚本),一般用来启动某个应用程序或者服务程序
解释型语言与编译型语言:
-
编译型语言要求使用编译器一次性将所有源代码编译为一个可执行程序,一次编译可重复执行。代表语言有C、C++、Golang、汇编等。
-
解释型语言是使用解释器一边执行一边转换,用到些源代码就转换哪些,不会生成可执行程序。代表语言有JavaScript、Python、PHP、Shell等
5. vim
y $ 表示复制光标后这行的所有内容
y ^ 表示复制光标后这行的所有内容
和正则类似
shift + h 跳转到头部
大写的G和大写的L都可以到尾部
set nu设置行号
set nonu不设置行号
在vim查看模式下:\xxx表示检索
按下n跳转到下一个
替换该行第一个匹配的::s/被替换词/替换词
替换该行所有匹配的::s/被替换词/替换词/g
Vim打开文件
Vi 使用的选项 | 说 明 |
---|---|
vim filename | 打开或新建一个文件,并将光标置于第一行的首部 |
vim -r filename | 恢复上次 vim 打开时崩溃的文件 |
vim -R filename | 把指定的文件以只读方式放入 Vim 编辑器中 |
vim + filename | 打开文件,并将光标置于最后一行的首部 |
vi +n filename | 打开文件,并将光标置于第 n 行的首部 |
vi +/pattern filename | 打幵文件,并将光标置于第一个与 pattern 匹配的位置 |
vi -c command filename | 在对文件进行编辑前,先执行指定的命令 |
Vim 进行编辑
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O(大写) | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令 |
Vim查找文本
快捷键 | 功能描述 |
---|---|
/abc | 从光标所在位置向前查找字符串 abc |
/^abc | 查找以 abc 为行首的行 |
/abc$ | 查找以 abc 为行尾的行 |
?abc | 从光标所在为主向后查找字符串 abc |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定 |
Vim替换文本
快捷键 | 功能描述 |
---|---|
r | 替换光标所在位置的字符 |
R | 从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按“Esc”可以结束 |
: s/a1/a2/g | 将当前光标所在行中的所有 a1 用 a2 替换 |
:n1,n2s/a1/a2/g | 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换 |
:g/a1/a2/g | 将文件中所有的 a1 都用 a2 替换 |
Vim删除文本
快捷键 | 功能描述 |
---|---|
x | 删除光标所在位置的字符 |
dd | 删除光标所在行 |
ndd | 删除当前行(包括此行)后 n 行文本 |
dG | 删除光标所在行一直到文件末尾的所有内容 |
D | 删除光标位置到行尾的内容 |
:a1,a2d | 函数从 a1 行到 a2 行的文本内容 |
Vim复制和粘贴文本
快捷键 | 功能描述 |
---|---|
p | 将剪贴板中的内容粘贴到光标后 |
P(大写) | 将剪贴板中的内容粘贴到光标前 |
y | 复制已选中的文本到剪贴板 |
yy | 将光标所在行复制到剪贴板,此命令前可以加数字 n,可复制多行 |
yw | 将光标位置的单词复制到剪贴板 |
Vim 保存退出文本
命令 | 功能描述 |
---|---|
:wq | 保存并退出 Vim 编辑器 |
:wq! | 保存并强制退出 Vim 编辑器 |
:q | 不保存就退出 Vim 编辑器 |
:q! | 不保存,且强制退出 Vim 编辑器 |
:w | 保存但是不退出 Vim 编辑器 |
:w! | 强制保存文本 |
:w filename | 另存到 filename 文件 |
x! | 保存文本,并退出 Vim 编辑器,更通用的一个 vim 命令 |
ZZ | 直接退出 Vim 编辑器 |
Vim移动光标到行
快捷键 | 功能描述 |
---|---|
gg | 光标移动到文件开头 |
G | 光标移动至文件末尾 |
nG | 光标移动到第 n 行,n 为数字 |
:n | 编辑模式下使用的快捷键,可以将光标快速定义到指定行的行首 |
6. source指令
- 立即加载执行脚本文件里面的指令
7. 终端启动脚本文件
-
终端程序启动脚本文件:~/.bashrc,在执行终端的时候都会执行该脚本,完成环境变量的配置工作
-
在~目录下执行ls -a才能看到隐藏文件
8. 查看文件属于哪个分区
进入
输入disk
linux只有一个磁盘,会有4个分区
- sd表示磁盘
- a表示第一个磁盘
- 1表示第一个分区
mounted表示挂载,该分区挂载在root(根目录)下
9. Linux命令提示符
例如:ls -l /
列出根目录下文件的信息
使用help可以查看指令的格式,方括号是非必须选项,尖括号是必须选项
10. 设置环境变量
- 临时设置:
export PATH=$PATH:/home/book
$PATH表示原来的变量,在其后面追加
- 永久设置之方法:对所有用户都有效
修改/etc/environment,比如:sudo gedit /etc/environment ,然后在末尾添加下行最后的部分:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/book"
- 永久设置之方法:只对当前用户有效
修改~/.bashrc,在行尾添加或修改:
export PATH=$PATH:/home/book