Linux 是一种免费、开源的类Unix操作系统内核。它最初由芬兰的Linus Torvalds在1991年创建,并迅速发展成为一个庞大且活跃的开源社区项目。Linux内核是操作系统的核心部分,但通常与 GNU 工具和其他软件一起使用,形成完整的(GNU/Linux)操作系统,通常被称为 Linux发行版(如 Ubuntu、Red Hat、CentOS)
GNU
GNU 计划,译为革奴计划,它的目标是创建一套完全自由的操作系统,称为 GNU,其内容软件完全以 GPL 方式发布。其中 GPL 全称为 GNU 通用公共许可协议,包含了以下内容:
1、以任何目的运行此程序的自由;2、再复制的自由;3、改进此程序,并公开发布改进的自由。
发行版
Linux 发行版是 Linux 内核及各种应用软件的集成版本。
基于的包管理工具 | 商业发行版 | 社区发行版 |
---|---|---|
RPM | Red Hat | Fedora / CentOS |
DPKG | Ubuntu | Debian |
Bash
是一种Unix和Linux操作系统中常用的命令行解释器和脚本语言。它是许多Linux发行版和Unix系统默认的命令行shell,使用户能够以文本方式与系统进行交互,用于与操作系统进行交互、管理文件、执行命令和编写脚本。
命令行shell是一种计算机程序,它允许用户通过文本界面与计算机操作系统进行交互,以执行各种命令和操作。用户可以在命令行shell中输入文本命令,然后系统会解释和执行这些命令。这种方式通常与图形用户界面 GUI相对。
Bash支持许多功能,包括:
- 执行命令和程序:Bash允许用户执行各种命令和程序,可以通过命令行或脚本文件来执行。
- 变量和环境设置:Bash支持变量,用户可以定义和使用环境变量,这些变量可用于存储数据和配置。
- 文件操作:用户可以使用Bash执行文件和目录的操作,如创建、复制、移动、删除文件等。
- 管道和重定向:Bash允许将命令的输出连接到其他命令的输入,还支持文件重定向,使用户能够将命令的输出保存到文件或从文件中读取输入。
- 条件语句和循环:Bash支持条件语句(如if语句)和循环结构(如for循环和while循环),以实现更复杂的控制流程。
- 脚本编写:用户可以编写Bash脚本,这是一系列命令和操作的集合,用于执行自动化任务、自定义系统配置和处理数据等。
而在 Windows 系统上,PowerShell 是一个更现代、功能更强大的命令行工具,特别适用于系统管理和自动化任务。尽管命令行程序cmd 仍然存在并且仍然可以使用,但PowerShell已成为Windows系统管理和开发的首选工具。
WSL
WSL(Windows Subsystem for Linux)允许用户直接在 Windows 上运行Linux 环境(包括大多数命令行工具、实用程序和应用程序),无需修改,无需单独的虚拟机或双重启动。与完整虚拟机相比,WSL 需要的资源(CPU、内存和存储)更少。
WSL是 Windows10/11 自带的一个功能,默认是关闭的,旨在为希望同时使用 Windows 和 Linux 的用户提供无缝且高效的体验。能够在 Bash shell 中运行Linux,并选择您的发行版(Ubuntu、Debian、OpenSUSE、Kali、Alpine 等)。
- 开启 Hype-V:ctrl+r - control - 程序 - 开启Windows功能 - 勾选Hype-V
- 启动 msl:以管理员打开powershell输入下列命令
1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- 启用虚拟化
1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 更新wsl版本;或手动下载最新版本的 Linux 内核更新包,运行(双击运行 - 系统将提示您提供提升的权限,选择“是”以安装)
1
wsl --update
- 将 WSL 2 设置为默认版本
1
wsl --set-default-version 2
- 安装Linux发行版,创建账号用户密码,Installation successful
1
wsl --install -d Ubuntu
- 至此,已成功安装并设置了一个与 Windows 操作系统完全集成的 Linux 发行版!下次,您可以以管理员身份打开 PowerShell 或 cmd 命令控制台,输入 wsl 命令即可打开安装好的Linux发行版(如Ubuntu)了。
注意:在wsl中,本地磁盘都位于 /mnt 目录。比如 c 盘位于 /mnt/c 。要进入 d 盘,执行命令 cd /mnt/d - PowerShell 进出 wsl:
1
2
3
4PS C:\Windows\system32> wsl
root@caifeng7138:/mnt/c/Windows/system32# exit
logout
PS C:\Windows\system32>
Linux 命令
Linux 操作系统拥有丰富的命令行工具。可以使用--help
获取指令的基本用法与选项介绍;在终端中使用man
命令查看每个命令的手册页以获取更多信息,例如 man ls
;doc
:/usr/share/doc 存放着软件的一整套说明文件。
1 | # **管理员:** 允许一般用户使用 root 可执行的命令,不过只有在 /etc/sudoers 配置文件中添加的用户才能使用该指令。 |
二、磁盘
Linux 中每个硬件都被当做一个文件,包括磁盘。磁盘以磁盘接口类型进行命名,常见磁盘的文件名如下:
- IDE 磁盘: /dev/hd[a-d]
- SATA/SCSI/SAS 磁盘: /dev/sd[a-p]
其中文件名后面的序号的确定与系统检测到磁盘的顺序有关,而与磁盘所插入的插槽位置无关。
三、分区
磁盘分区表主要有两种格式,一种是限制较多的 MBR 分区表,一种是较新且限制较少的 GPT 分区表。
四、文件系统
Linux 文件系统是一种层次化的组织结构,用于存储和管理文件。这个文件系统通常由一个根目录和一系列子目录、文件以及链接组成。
Linux 系统是以文件目录系统为根基的,一切东西都是文件,包括硬件、进程、命令、系统设置等等。
- 树状结构: Linux文件系统采用树状结构,以根目录(/)作为顶层目录。树状结构允许文件和目录以层次结构进行组织,方便用户和应用程序定位和访问文件。(Windows 中的目录斜杠与之相反,是右斜杠 \)
- 根目录(/): 根目录是文件系统的最顶层目录,包含整个文件系统的目录和文件。所有的文件和目录都位于根目录下或其子目录中。
- 目录(文件夹): 目录是用于组织和存储文件的容器。它类似于Windows中的文件夹。目录中可以包含文件和其他子目录。
- 文件: 文件是数据的容器。在Linux中,一切都是文件,包括文本文件、二进制文件、设备文件等。
- 路径: 路径是指定文件或目录位置的方式。绝对路径从根目录开始,而相对路径从当前工作目录开始。例如,
/home/user/documents
是一个绝对路径,表示文档目录在用户主目录下。
十、进程管理
Vim
Vim(Vi Improved)是一款强大的文本编辑器,广泛用于Linux和Unix系统。它是Vi编辑器的改进版本,提供了许多额外的功能和改进。
启动和退出
打开文件:进入正常模式
1 | vim filename |
退出Vim:
- 进入命令模式(按
Esc
键),然后输入:q
,按Enter
;按u
来撤销上一步操作。 - 如果有未保存的更改,使用
:q!
来强制退出,或者:wq
保存并退出。
模式驱动
- 普通模式:在这个模式下,键盘输入被解释为命令。你可以使用这些命令来移动光标、删除文本、复制粘贴等。
- 插入模式:在这个模式下,你可以输入文本。按下 “i” 进入插入模式,按 “Esc” 退出插入模式并返回到普通模式。
- 可视模式:这模式下,你可以选择文本块以进行复制、剪切或其他操作。按下 “v” 进入可视模式,然后使用移动命令来选择文本。
- 命令行模式:在这个模式下,你可以输入各种命令,例如保存文件、退出 Vim、搜索等。按下 “:” 进入命令行模式。
- 选择模式*与可视模式有些类似,但是在选择后直接进入插入模式。按下 “v” 进入可视模式,然后按 “Shift” 和 “v” 进入选择模式。
移动光标
移动光标:
h
:左移 -j
:下移 -k
:上移 -l
:右移移动到行首或行尾:
0
:移动到行首 -$
:移动到行尾
搜索和替换
搜索: 在命令模式下,按
/
,然后输入要搜索的文本,按Enter
。替换: 在命令模式下,输入
:%s/old/new/g
来将所有匹配的old
替换为new
。