Linux初步介绍
Linux是一种开源的类Unix操作系统内核,广泛应用于服务器、桌面、嵌入式设备等各种计算平台。它由Linus Torvalds于1991年首次开发,因其稳定性、安全性和灵活性,被全球开发者和企业广泛采用。
特点:
开放性(开源),多用户,多任务,良好的用户界面,优异的性能与稳定性,一切皆文件
- 多用户多任务
- 单用户:一个用户,在登录计算机(操作系统),只能允许同时登录一个用户
- 单任务:一个任务,允许用户同时进行的操作任务数量
- 多用户:多个用户,在登录计算机(操作系统),允许同时登录多个用户进行操作
- 多任务:多个任务,允许用户同时进行多个操作任务
Windows属于:单用户,多任务
Linux属于:多用户,多任务
- 一切皆文件
-
在Windows是文件的,在Linux下同样是文件
-
在Windows不是文件的,在Linux下也是以文件的形式存储的
-
怎样进行Windows和Linux的切换呢?
-
- 双系统(Dual Boot)
- 安装Windows和Linux在同一台电脑的不同分区。
- 在开机启动时选择进哪个系统。
- 优点:可以充分利用硬件资源,系统运行速度快。
- 缺点:每次切换需要重启,设置相对复杂。
- 双系统(Dual Boot)
- 虚拟机(Virtual Machine)
- 使用虚拟机软件(如VirtualBox、VMware)在一个系统内运行另一个系统。
- 例如:在Windows中运行Linux虚拟机,或在Linux中运行Windows虚拟机。
- 优点:无需重启,可同时使用两个系统。
- 缺点:需要较强的硬件资源(CPU、内存)。
注意:
这一切的讲解,都在虚拟机(VM)中进行
终端
终端是一个界面工具,用于与操作系统进行交互。可以理解为“命令行窗口”或“控制台”。
- 作用:在终端中输入命令,让操作系统执行对应操作
- 打开方式:
- 鼠标右键-打开终端
- CTRL+ALT+T
- 在当前终端窗口再打开一个终端:CTRL+SHIFT+T
- 切换终端:ALT+数字
+终端的放大与缩小:
- 放大:CTRL+SHIFT+‘+’
- 缩小:CTRL+‘-’
shell
Shell(壳层)是一种命令行界面(CLI),用来与操作系统内核交互。它既可以作为用户与系统沟通的界面,也可以用来写脚本自动化任务。Shell在类Unix系统(如Linux、macOS)中非常普遍,但在Windows中也有类似的工具(如PowerShell)。
作用
- 执行命令:用户可以输入各种系统命令,如文件操作(ls、cp、rm)、程序运行等。
- 脚本编写:可以写脚本实现自动化,比如备份、批量文件处理、系统监控等。
- 管道和重定向:支持将多个命令连接(管道),以及输出重定向到文件或其他命令,更加灵活。
常见类型
-
Bash(Bourne Again Shell):最常见的Linux默认Shell,功能丰富、扩展性强。
- 功能丰富
- 支持脚本、变量、数组、函数等
- 默认在Linux大多数发行版中使用
-
dash(Debian Almquist shell)
- 一个轻量级的Shell
- 主要用作脚本的执行环境(如在Ubuntu中 /bin/sh 默认指向dash)
- 速度快,占用资源少,但功能比bash简单
- 不支持某些bash特有的特性
-
sh(Bourne Shell):早期的标准Shell,功能有限,但广泛支持。
-
zsh:功能强大,用户界面友好,很多开发者喜欢用它。
-
csh/tcsh:在早期Unix系统常见,语法与C语言类似。
-
PowerShell:Windows的现代Shell,功能强大,支持对象管道和复杂任务。
特性 | Bash | dash |
---|---|---|
目标 | 交互式和脚本 | 主要为脚本设计,快速、轻量 |
兼容性 | 完全兼容sh | 兼容sh部分,但不支持bash特性 |
使用场景 | Linux默认Shell | 脚本环境,控制系统启动脚本等 |
基本结构
例:一个简单的bash脚本
#!/bin/bash
echo "开始备份..."
cp -r ~/资料 ~/备份
echo "备份完成"
- #!/bin/bash 表示脚本使用bash解释器
- echo命令用于输出内容
这里可能有一个疑问,那就是什么是脚本呢?
脚本(Script)是由一系列命令组成的文本文件,用来自动化执行任务。它类似于程序,但通常较为简洁,主要用于自动化重复性操作、配置环境、批量处理等。
-
特点
- 文本文件:用普通文本编辑器编写
- 包含命令:可以是Shell命令、程序调用或系统操作指令
- 自动执行:通过解释器(如bash)运行,一次性完成复杂任务
- 便于重复使用:可以多次调用,节省时间和减少出错
-
常见类型
- Shell脚本:用Shell命令写的脚本(.sh文件)
- Python脚本:用Python语言写的程序(.py文件)
- Batch脚本:Windows中的批处理文件(.bat)
指令
一个完整的指令的标准格式:Linux通用的格式
- 第一部分是指令名称
- 中括号不在实际指令当中,-后面是指令选项,如 ls -a
- parameter1 parameter2……为参数,如ls/dev
- 不同部分之间用空格区分,不论几个空格 shell都视为一个空格
- 回车键是 运行指令,如果指令太长,可以使用反斜杠在按回车键到下一行进行填充。在这期间这个命令是不执行的。
路径和文件名补齐
- 路径和文件名补齐:Tab键
- 查看历史记录:history
路径
绝对路径 (Absolute Path)
- 从根目录 / 开始,完整描述文件或目录的路径。
- 不依赖当前工作目录。
/home/user/Documents/file.txt
表示从根目录开始,依次进入 home,user,Documents 文件夹,到 file.txt 文件。
相对路径
- 相对于当前工作目录(当前所在的目录)来描述路径。
- 不以 / 开头。
Documents/file.txt
如果当前目录是 /home/user/,那么这个相对路径指向 /home/user/Documents/file.txt。
其他相关符号
- . 表示当前目录
- … 表示上一级目录
例:
- ./file.txt:当前目录下的 file.txt
- …/file.txt:上一级目录中的 file.txt