Linux 基础介绍

Linux 是一种开源的操作系统,广泛应用于服务器、嵌入式设备和个人电脑等领域。它以其稳定性、安全性和灵活性而著称,是许多开发者和系统管理员的首选平台。

Linux 是一种操作系统

作为操作系统,Linux 负责管理计算机的硬件资源,并为应用程序提供运行环境。它支持多用户、多任务操作,能够高效地处理并发任务,满足从个人开发到企业级部署的多样化需求,版本分为内核版,发行版,发行版包括内核加生态软件。

如何获得一个linux系统

1.直接一个电脑安装多个操作系统 2.通过虚拟机模拟硬件 3.云服务器部署linux

1. Linux 的一些基础指令

linux没有盘符,/ 代表根目录

掌握 Linux 的基础指令是使用该系统的第一步。以下是一些常用的基础命令,可以帮助你快速上手:

  • ls:列出当前目录下的文件和文件夹,ls -lha 详细显示,包括隐藏。
  • cd:切换当前工作目录, cd .. cd ~ 回到家目录 cd - 回到上次所在路径。
  • pwd:显示当前所在的工作目录路径。
  • mkdir:创建新的目录 -p 创建多级文件夹。
  • touch: 创建文件
  • rm:删除文件和文件夹,-rf 删除多个。
  • cp:复制文件或目录。
  • mv:移动或重命名文件,剪切粘贴,可以改名字。
  • link :连接 硬链接,软连接。
  • wc:统计文件的行数、单词数和字节数,常用参数 -l 统计行数,-w 统计单词数,-c 统计字节数,-m统计字符数。
  • cat:查看文件全部内容,适合小文件,常用参数 -n 显示行号。
  • head -n:查看文件开头部分内容,head -n 10 表示查看前 10 行。
  • tail -n:查看文件末尾部分内容,tail -n 10 表示查看最后 10 行,常用参数 -f 实时跟踪文件新增内容。
  • less:分页查看文件内容,支持上下翻页和搜索,适合大文件,按 q 退出。
  • more:分页查看文件内容,按空格翻页,按 q 退出,功能比 less 简单。
  • 重定向覆盖写入(>):将命令输出写入文件,覆盖原有内容,例如 echo "hello" > test.txt 会把 hello 写入 test.txt 并覆盖原内容。
  • 重定向追加写入(>>):将命令输出追加到文件末尾,不覆盖原有内容,例如 echo "world" >> test.txt 会把 world 追加到 test.txt 末尾。
  • 管道(|):将前一个命令的输出作为后一个命令的输入,实现命令之间的数据传递,例如 cat test.txt | grep "hello" 会先读取 test.txt 内容,再从中筛选包含 hello 的行。
  • tar:打包或解包文件,常用参数 -czvf 打包并压缩为 .tar.gz,-xzvf 解压 .tar.gz 文件,例如 tar -czvf archive.tar.gz dir/ 会把 dir 目录打包压缩。
  • zip:压缩文件或目录为 .zip 格式,常用参数 -r 递归压缩目录,例如 zip -r archive.zip dir/ 会把 dir 目录压缩为 archive.zip。
  • unzip:解压 .zip 格式的压缩包,例如 unzip archive.zip 会把压缩包解压到当前目录。
  • gzip:单独压缩单个文件为 .gz 格式,常用参数 -d 解压,例如 gzip file.txt 会生成 file.txt.gz,gzip -d file.txt.gz 会还原为 file.txt。
  • useradd:创建新用户,常用参数 -m 自动创建用户家目录,-s 指定登录 Shell,-g 指定用户所属组,例如 useradd -m -s /bin/bash -g dev tom 会创建用户 tom 并设置家目录、Shell 和所属组。
  • userdel:删除用户,常用参数 -r 同时删除用户的家目录和邮件目录,例如 userdel -r tom 会删除用户 tom 及其家目录。
  • groupadd:创建新的用户组,例如 groupadd dev 会创建一个名为 dev 的用户组。
  • groupdel:删除用户组,例如 groupdel dev 会删除名为 dev 的用户组。

2. SSH 远程连接

SSH(Secure Shell)是一种远程连接技术,安装好相关软件包后,可以让其他设备远程连接你的云服务器,实现跨设备的命令行操作与管理。

2.1 安装 SSH 服务

在 Linux 服务器上,可以通过 apt 包管理器安装 SSH 远程服务。apt 就像应用商店,负责更新软件版本和安装软件包。

apt update              # 更新软件源,获取最新软件版本信息
apt install openssh-server   # 安装 SSH 远程服务

2.2 连接方式

SSH 连接通常有三种方式,核心都是通过「客户端」连接「服务器」:

  • 命令行连接:使用 ssh 用户名@公网ip 命令,例如 ssh root@123.45.67.89
  • 云平台 Web 终端:阿里云、腾讯云等提供的 Workbench 可视化连接窗口,直接在浏览器中操作。
  • 第三方客户端:如 Xshell 等可视化连接工具,提供图形化界面,方便日常管理。

需要注意的是,SSH 连接通常是不同设备之间进行,但也可以是同一台设备的不同系统环境(如虚拟机与宿主机之间)。

2.3 服务管理

安装好 SSH 服务后,可以通过 systemctl 或 service 命令控制 SSH 服务的运行状态。systemctl 是较新的技术,service 是传统方式,两者功能类似。

# systemctl 方式(新版技术)
systemctl status ssh      # 查看 SSH 服务状态
systemctl start ssh       # 启动 SSH 服务
systemctl stop ssh        # 停止 SSH 服务
systemctl restart ssh     # 重启 SSH 服务
service 方式(传统方式)
service ssh status        # 查看 SSH 服务状态
service ssh start         # 启动 SSH 服务
service ssh stop          # 停止 SSH 服务
service ssh restart       # 重启 SSH 服务

2.4 配置密码登录

默认情况下,SSH 可能使用密钥登录。如需改为密码登录,可以编辑 SSH 配置文件:

vim /etc/ssh/sshd_config

在配置文件中修改相关参数,将密码登录选项开启,然后重启 SSH 服务使配置生效。实际开发环境中,出于安全考虑,配置会更加复杂,通常建议使用密钥认证并限制登录来源。

3. SCP 远程传输数据

SCP(Secure Copy)是一种基于 SSH 的远程文件传输命令,用于在本地与服务器之间安全地复制文件。SCP 命令都在本地终端执行,支持双向传输。

3.1 本地文件传输到服务器

将本地文件上传到服务器,命令格式如下:

scp 文件 用户名@IP:要拷贝的位置

例如,将本地的 test.txt 上传到服务器的 /home/user/ 目录:

scp test.txt root@123.45.67.89:/home/user/

在拷贝时还可以顺便重命名文件,例如将 test.txt 上传后改名为 backup.txt

scp test.txt root@123.45.67.89:/home/user/backup.txt

3.2 服务器文件传输到本地

将服务器上的文件下载到本地,命令格式如下:

scp 用户名@IP:要拷贝的东西 拷贝到本地的位置/新的文件名

例如,将服务器上的 /home/user/data.txt 下载到本地的当前目录:

scp root@123.45.67.89:/home/user/data.txt ./

同样可以在下载时重命名文件,例如下载后改名为 local_data.txt

scp root@123.45.67.89:/home/user/data.txt ./local_data.txt

4. Linux 文件权限

Linux 系统中,每个文件和目录都有对应的权限,用来控制不同用户对文件的操作。权限由 9 个字母组成,分为三组,每组三个字母。

4.1 权限字母的含义

  • 前三个字母:表示当前用户(文件所有者)的权限。
  • 中间三个字母:表示当前用户所在组的其他用户的权限。
  • 末尾三个字母:表示系统中其他用户的权限。
  • r:可读,表示可以查看文件内容。
  • w:可写,表示可以修改文件内容。
  • x:可执行,对目录来说表示可以 cd 进入目录,对指令文件来说表示可以运行。
  • -:无权限,表示不具备该项权限。

4.2 修改权限:chmod

使用 chmod 命令可以修改文件或目录的权限,主要有两种方法:字母法和数字法。

4.2.1 字母法

字母法通过用户类别、操作符和权限字母来修改权限。

  • u:表示当前用户。
  • g:表示当前用户所在组的其他用户。
  • o:表示其他用户。
  • +:添加权限。
  • -:移除权限。
  • =:设置为指定权限。

例如:

g+w     # 给所在组用户添加写权限
g=rx    # 将所在组用户的权限设置为可读、可执行
4.2.2 数字法

数字法用数字表示权限:

  • r 对应数字 4
  • w 对应数字 2
  • x 对应数字 1

每个用户类别用权限数字之和表示,三组数字依次表示当前用户、所在组其他用户和其他用户的权限。例如:

chmod 777 文件或目录   # 所有用户都有读、写、执行权限
chmod 750 文件或目录   # 当前用户拥有全部权限,所在组用户可读可执行,其他用户无权限
chmod 000 文件或目录   # 所有用户都无任何权限

5. Vim 编辑器

Vim 是 Linux 系统中常用的文本编辑器,它有三种核心模式:普通模式、命令模式和插入模式。掌握这三种模式的切换,是高效使用 Vim 的关键。

5.1 普通模式

普通模式是 Vim 的默认模式,主要用于移动光标、复制粘贴、删除和撤销等操作。

5.1.1 移动光标
  • h:光标向左移动。
  • j:光标向下移动。
  • k:光标向上移动。
  • l:光标向右移动。
  • G:跳转到文件末尾。
  • gg:跳转到文件开头。
  • M:跳转到屏幕中间。
  • :行号:跳转到指定行,例如 :10 进入第 10 行。
5.1.2 复制粘贴
  • yy:复制当前行。
  • n yy:复制 n 行,例如 3yy 复制 3 行。
  • p:粘贴。
5.1.3 删除
  • dd:删除一行。
  • x:删除单个字符。
  • D:删除光标之后的内容。
  • d0:删除光标之前的内容。
5.1.4 撤销与重做
  • u:撤销上一步操作。
  • ctrl+r:重做,恢复被撤销的操作。

5.2 命令模式

在普通模式下按冒号(:)即可进入命令模式,用于保存、退出、设置行号等操作。

  • :q:退出 Vim。
  • :wq:保存并退出。
  • :q!:强制退出,不保存修改。
  • :set nu:显示行号。
  • :set nonu:隐藏行号。
  • / 与 ?:搜索内容,/ 向下搜索,? 向上搜索。
  • n 与 N:在搜索结果中跳转,n 跳到下一个匹配,N 跳到上一个匹配。

5.3 插入模式

在普通模式下按相应按键即可进入插入模式,开始编辑文本。

  • i:在光标前插入。
  • I:在行首插入。
  • a:在光标后插入。
  • A:在行末插入。
  • o:在下面一行插入。
  • O:在上面一行插入。
  • esc:回到普通模式。

5.4 交换文件处理

如果 Vim 非正常关闭,会产生一个交换文件(.swap 文件)。此时可以先退出 Vim,再删除对应的交换文件,即可恢复正常编辑。

6. Ollama 本地大模型

Ollama 是一个开源工具,用于在本地运行和管理大语言模型。它依赖 CUDA 平台来调用显卡进行运算,CUDA 是 NVIDIA 推出的一个平台,程序员能指挥显卡进行运算。

6.1 安装与启动

安装 Ollama 只需执行一条命令:

curl -fsSL https://ollama.com/install.sh | sh

启动服务时,可以通过环境变量指定监听地址,让其他设备也能访问:

OLLAMA_HOST=0.0.0.0:11434 ollama serve

6.2 常用指令

  • ollama list:查看已经下载了哪些模型。
  • ollama pull 模型信息:下载指定模型。
  • ollama rm 模型信息:删除模型。
  • ollama run 模型名称:运行模型,如果该模型没有下载,则自动下载。
  • ollama stop 模型名称:停止模型。
  • ollama ps:查看正在运行的模型。

6.3 WebUI 安装

如需图形化界面,可以安装插件 Ollama Client,方便在浏览器中管理模型和对话。

6.4 自定义模型(Modelfile)

Ollama 支持通过 Modelfile 自定义模型,基于已有模型调整参数,从而控制回答的随机性、长度和多样性。Modelfile 的编写格式如下:

FROM 已有模型
PARAMETER temperature 0.7
PARAMETER num_predict 512
PARAMETER num_ctx 4096
PARAMETER top_k 40
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.1

其中各采样参数的含义如下:

  • temperature(温度):控制回答的随机性或创造性。值越低(如 0.1-0.3),回答越确定、聚焦和连贯,适合代码生成或事实问答;值越高(如 0.8-1.5),回答越有创意和多样性。
  • num_predict:限制模型生成的最大 token 数量,设置为 -1 表示不限制长度。
  • num_ctx:模型在进行推理时能“记住”多少历史对话或文本,值越大,消耗的内存(VRAM/RAM)也越多。
  • top_k:从概率最高的 K 个词中进行选择。值越小(如 10),回答越保守;值越大(如 100),词汇选择越多样。
  • top_p:在概率总和达到 p 值的最小词集里选择,与 top_k 互补,p 值越高,多样性越高。
  • repeat_penalty:控制对重复词的惩罚力度。值大于 1 会惩罚重复内容,值越大惩罚越强。

编写好 Modelfile 后,使用以下命令创建并运行自定义模型:

ollama create 自定义模型名 -f Modelfile
ollama run 自定义模型名
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐