当前位置: 首页 > news >正文

Linux下的软件包管理器vim编辑器详解与配置

文章目录

  • 1.软件包管理器
    • 1.1 什么是软件包
    • 1.2 Linux软件生态
    • 1.3apt/yum 的具体操作
      • 1.3.1 查看软件包
      • 1.3.2 软件安装与删除
      • 1.3.3 注意事项
    • 1.4 安装源
      • Centos 安装源路径:
      • Ubuntu 安装源路径:
      • 源的替换
  • 2. 编辑器Vim
    • 2.1IDE
    • 2.2 vim使用和概念
    • 2.3 vim的基本操作
      • 2.3.1 进入vim
      • 2.3.2 [正常模式]切换至[插入模式]
      • 2.3.3[插入模式]切换至[正常模式]
      • 2.3.4 a、o、I的区别
      • 2.3.5 [正常模式]切换至[末行模式]
      • 2.3.6 文件的保存与退出
    • 2.4vim正常模式命令集
      • shift+g=G(进入文本末端)&&gg(进入到文本开始)
      • shift+4=$(定位当前行结尾)&shift+6=^(定位当前行开头)
      • H J K L(左 下 上 右移动)
      • w(按照单词向右移动)&b(按照单词向左移动)
      • yy(复制)+p(粘贴到当前行的下一行)+dd(剪切)
      • u(撤销操作)+ ctrl+r(对u的撤销进行撤销)
      • shift+`=~(大小写转换)
      • n+r(替换光标所在的n个字符)+R(进入替换模式,进行批量化内容替换)
      • n+x(删除光标所在n个字符,连续按下x 连续删除)&n+X(删除顺序为左)
      • 批量化注释和去注释
        • 批量化注释
        • 批量化去注释
        • 批量删除与插入
      • 批量化替换
    • 2.5 权限与vim
    • 2.6 vim的意外退出
    • 2.7 底行模式下命令集
      • 保存 退出
      • /key+n(匹配搜索)
      • !+命令(不退出vim 直接对代码进行编译和运行)
      • 替换关键词
      • 显示/隐藏行号
      • vs分屏操作
    • 2.8 vim一些小知识
  • 3. vim的简单配置(了解)
    • 3.1 配置流程
    • 3.2 配置原理
    • 3.3 vim常见配置项
    • 3.4vim的一键配置
  • 4.利用vim配置sudo权限(补充)
  • 求三连!

1.软件包管理器

在Linux下安装软件的常见方式:

  1. 源代码安装
  2. rpm包安装 (rpm是是Linux 系统中一种标准化的软件包格式,它将预编译的软件、依赖信息、元数据等打包成一个独立的.rpm文件,用于简化软件的安装、卸载、升级和管理流程。)
  3. 包管理器安装 — 最佳实践

1.1 什么是软件包

  • 在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序.
  • 但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装.
  • 软件包和软件包管理器,就好比 “App” 和 “应用商店” 这样的关系.
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器.主要应用在Fedora, RedHat, Centos等发行版上.
  • Ubuntu:主要使用apt(Advanced Package Tool)作为其包管理器。apt同样提供了自动解决依赖关系、下载和安装软件包的功能。

1.2 Linux软件生态

如何评估一款操作系统的好坏?
一个系统必须被更多的人使用,根据需求不同,比如企业用centos 学生用Ubuntu 从形成使用圈子,然后吸引更多更多的人使用。
先要吸引更多人使用就必须让圈子更完善,建立社区论坛,写资料和做系统适配的软件。
请添加图片描述
为什么会有人特定社区提供软件,还发布?还提供云服务器让你下载?
系统开发者们为了开发的系统更多人用,开发者们很乐意自己开发应用程序,社区的一些人和企业工程师们有时候发现了系统的一些应用不足 自己也写了应用然后开源。
那为什么写了软件 又愿意在各个Linux社区上写安装包
因为开源者写出软件,希望自己的软件各个人能用到!!
从而系统成全软件,软件又成全了系统!
请添加图片描述
包管理器内涵配置文件 ,配置了包服务器的公网IP

因为一些已知原因 我们国内的一些国外的软件包是无法访问的 所以就有一些组织把这些软件包通过镜像(就是拷贝)的方式配置到国内的服务器 虽然我们所用的是国外的操作系统 但是有些厂商 比如腾讯 阿里 的云服务器在配置系统的时候就会把国外的链接替换成国内的链接 下载安装走的是国内的配置文件 加快配置速度 这种方式就叫 软件源配资
在这里插入图片描述
软件包依赖的问题
请添加图片描述
软件依赖于库 比如C++语言程序就依赖于C++语言库 C++语言库又依赖于C语言库 而这些依赖关系就是 依赖列表 而我们的aptyum内部存在配置文件 软件的包 包括各种库都会在云服务器上自动调用自动安装所需要的。

1.3apt/yum 的具体操作

1.3.1 查看软件包

centos下通过 yum list 命令可以罗列出当前一共有哪些软件包.由于包的数目可能非常之多,这里我们需要使用 grep 命令只筛选出我们关注的包.
s

Ubuntu下 我们可以apt list或者apt search xxx命令进行查询
apt search 是 Debian/Ubuntu 系列 Linux 发行版中用于搜索软件包的命令,通过它可以在软件源仓库中查找包含指定关键词的软件包信息(包括包名、描述等)
请添加图片描述

1.3.2 软件安装与删除

我们可以利用apt/yum remove 指令删除软件
请添加图片描述
通过apt/yum intsall 指令安装软件
请添加图片描述
软件的分类
我们所用的软件有经过长期检验的基础软 这类软件是 Linux 系统运行和开发的核心工具,经过长期迭代验证,稳定性和兼容性极强,通常是系统默认预装或推荐优先安装的。通常通过系统默认软件源获取,无需额外添加第三方源
拓展软件(以 sl 为例),这类软件非系统运行必需,更多是为了满足特定需求(如趣味工具、小众功能)或提升使用体验,通常需要通过官方拓展源或第三方源获取。
请添加图片描述

1.3.3 注意事项

关于 yum/apt 的所有操作必须保证主机(虚拟机)网络畅通!!!
可以通过 ping 指令验证
请添加图片描述

1.4 安装源

Centos 安装源路径:

  1. $ ll /etc/yum.repos.d/
    -rw-r--r-- 1 root root 676 Oct 8 20:47 CentOS-Base.repo # 标准源
    -rw-r--r-- 1 root root 230 Aug 27 10:31 epel.repo # 扩展源
  2. 安装扩展源 $ sudo yum install -y epel-release

Ubuntu 安装源路径:

  1. $ cat /etc/apt/sources.list # 标准源
  2. $ ll /etc/apt/sources.list.d/ # 扩展源
  3. ubuntu 安装扩展源,就结合未来具体场景

更新安装源,现场说明原理即可。云服务器不用考虑,因为软件源都是国内的了。

源的替换

这张图片展示了与Linux系统中yum包管理器操作相关的几个步骤和命令,可分点解读如下:
在这里插入图片描述

  1. 操作步骤
  • 备份:推测是在执行后续操作前对系统或软件源配置进行备份,以防止意外情况发生。
  • 下载:可能是指下载所需的软件包或相关资源。
  • 更新缓存:通过yum clean all清理旧的缓存数据,再用yum makecache生成新的软件包缓存,确保yum能获取到最新的软件包信息。
  1. 关键命令
  • yum clean all:清理yum的所有缓存,包括元数据、软件包缓存等。
  • yum makecache:重新生成yum的软件包缓存,使yum能快速检索软件包。
  • yum -y install epel-release:安装epel-release扩展软件源,该源提供了许多官方源中没有的软件包,-y参数表示自动确认安装。

2. 编辑器Vim

2.1IDE

DE(集成开发环境)是整合了代码编辑、编译、调试、版本控制等功能的开发工具,能大幅提升开发效率。
如:Qt Creator
核心特点:
主打 Qt 图形界面开发,同时支持纯 C/C++ 开发,集成gcc/g++编译器和gdb调试器,符合文档中的编译调试需求。
支持跨平台开发,在 Linux 上编写的代码可直接编译为 Windows/macOS 版本,适合需要跨平台的项目。
适用场景:Linux 下 Qt 图形化项目开发,或需要跨平台的 C/C++ 项目。

IDE 的核心优势在于 “集成”—— 将文档中分散的 “编辑(vim)- 编译(gcc)- 调试(gdb)- 版本控制(git)” 等独立工具整合到同一界面,减少工具切换成本,提升开发效率。

但是 Linux下的开发工具是独立的!我们所讲的vim\vi就是编辑器!
请添加图片描述

2.2 vim使用和概念

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vimvi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows

vim有三种最为基本的模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
  • 插入模式(Insert mode)
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 末行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
    在命令模式下,shift+;=: 即可进入该模式。要查看你的所有模式:打开 vim,底行模式直接输入:help vim-modes

请添加图片描述
除了以上三种最基本的模式,我们还一般使用的模式是视图模式(visual block)替换模式

接下来 我们通过实操 来让大家深度了解 vim 的基本操作。

2.3 vim的基本操作

2.3.1 进入vim

前置条件:我们先在/home/ubuntu路径下创建目录lesson.vim 然后进入该目录创建文件test.c 输入vim test.c即可进入vim编辑器
在这里插入图片描述
进入后的页面:请添加图片描述
不过有一点要特别注意,就是你进入 vim 之后,是处于 [正常模式],你要切换到 [插入模式] 才能够输入文字。

2.3.2 [正常模式]切换至[插入模式]

这三个操作刚开始(编辑器里面为空时候)都可以进入

  • 输入a
  • 输入i
  • 输入o
    当输入a、i、o任意一个 即可进入插入模式此时底下有一个INSERT
    请添加图片描述
    此时我输入一串C语言代码:
    请添加图片描述

2.3.3[插入模式]切换至[正常模式]

可以按esc(左上角的按键)切换至正常模式 此时我们先将光标移到第一行第一个字符 按下esc
请添加图片描述
此时我们进入了正常模式同时光标在第一行第一个

2.3.4 a、o、I的区别

在 Vim 命令模式下,aio 都是进入插入模式的快捷键,但它们的插入位置不同,具体区别如下:

  • i(insert):在当前光标所在位置前插入文本(光标不动,新内容从光标前开始)。
  • a(append):在当前光标所在位置后插入文本(光标不动,新内容从光标后开始)。
  • o(open):在当前光标所在行的下方新建一行,并在新行开头插入文本(光标自动移到新行)。

简单说:i 是“光标前插入”,a 是“光标后插入”,o 是“下一行插入”。
当然这里面有一些细节问题:


在第一行的时候 输入a 此时在原光标所在字符#后插入文本:
请添加图片描述
在这里插入图片描述
此时光标在si后 此时esc后按a是在s后面进行插入
输入esc
在这里插入图片描述输入a:
请添加图片描述
此时在s后面插入:
请添加图片描述


esc返回正常模式输入i
输入esc光标回退:
请添加图片描述
输入i,光标不变:
请添加图片描述
相当于此时是在原来的第三个a前插入字符
请添加图片描述


此时按esc后按o
请添加图片描述
发现直接换行。

2.3.5 [正常模式]切换至[末行模式]

输入shift + ;,其实就是输入:
请添加图片描述

2.3.6 文件的保存与退出

  • :w(保存当前文件)
  • :wq(输入「wq」,存盘并退出vim)
  • :q! (输入q!,不存盘强制退出vim)

我们最常用的就是wq,保存并退出
在这里插入图片描述
正常模式下有个快捷键 可以快速保存并退出 shift+z+z(shift+连按两下z)

2.4vim正常模式命令集

shift+g=G(进入文本末端)&&gg(进入到文本开始)

此时光标在左上角
在这里插入图片描述
当按下shift+g时候光标移动到最末尾
在这里插入图片描述
当连续点两下g光标又到了文本开头
请添加图片描述
当输入5+G 光标进入第五行
请添加图片描述

shift+4=$(定位当前行结尾)&shift+6=^(定位当前行开头)

刚开始我们的光标是在第一行开头的
请添加图片描述
当按下shift+4$时候 光标移动到末尾
请添加图片描述
当我再按下shift+6^时候 光标移动到开头
请添加图片描述

H J K L(左 下 上 右移动)

正常情况下 我们的⬆️⬇️↔️这几个按键也能正常移动 为什么要设置HJKL这四个按键呢?
第一点当然是因为快 其次就是早期的键盘没有⬆️⬇️↔️键 如图
请添加图片描述
这个上下左右就不演示了。

w(按照单词向右移动)&b(按照单词向左移动)

按下w会按照单词为单位向右移动,按下b 按单词为单位向左跳
当然前面可以加n 按下2 w会右跳两个词。

yy(复制)+p(粘贴到当前行的下一行)+dd(剪切)

这里yy表式复制光标所在行,当yy后按下p就会粘贴到当前行的下一行
在这里插入图片描述
当然这里的yyp都可以结合n进行操作

这里5yy表式复制包含当前行开始的共计5行,当按下p:请添加图片描述
注意:
当然你先按1又按0 相当于按了10 你之前按的数字不会重置。

当按下 5p 会在当前行下方连续粘贴 5 次复制的内容:
请添加图片描述
当然有复制就有剪切 我们将页面还原回原样 按下dd 剪切当前行(删除加复制)当然也可以和n合用
操作前:
请添加图片描述

按下5dd从当前行开始的5行进行剪切
请添加图片描述
按下p粘贴剪切内容至光标下行
请添加图片描述

u(撤销操作)+ ctrl+r(对u的撤销进行撤销)

u撤销上步操作,按下ctrl+r撤销对u的撤销。

只要你未推出vim 随时可以撤销!

shift+`=~(大小写转换)

当按下时会快速大小写转换(当然也可以搭配n使用)
在这里插入图片描述

n+r(替换光标所在的n个字符)+R(进入替换模式,进行批量化内容替换)

比如按下5r 然后输入g 光标后5个字符全部替换为g
请添加图片描述
当按下R我们会进入替换模式 进行批量化替换
请添加图片描述
此时输入的每一个字符都会在光标处替换 假设在第一行输入一个hello
请添加图片描述
按下ESC返回命令模式

n+x(删除光标所在n个字符,连续按下x 连续删除)&n+X(删除顺序为左)

「x」:每按一次,删除光标所在位置的一个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符

这个就不演示了

批量化注释和去注释

批量化注释
  1. 首先按下ctrl+v进入视图模式 按esc回退命令模式
    在这里插入图片描述
  2. hjklj选取区域
    请添加图片描述
  3. 按下shift+i=I 之间从视图模式进入插入模式请添加图片描述
  4. 输入//
    在这里插入图片描述
  5. 按下esc进入命令模式随后完成注释
  6. 在这里插入图片描述
批量化去注释
  1. ctrl+v进入视图模式
    请添加图片描述
  2. 通过hjkl选取区域
    在这里插入图片描述
  3. 按下d去除注释
    在这里插入图片描述

批量删除与插入

用同样的方式也可做到批量化删除,批量化删除内容和批量化插入请添加图片描述
通用也可以
请添加图片描述

批量化替换

输入ctrl+v进入视图模式 然后选中要替换的内容
请添加图片描述
按下r输入要替换的内容
请添加图片描述

2.5 权限与vim

当你失去读权限 打开vim后你将看不到任何内容
请添加图片描述
请添加图片描述


当失去写权限 你将无法进入编辑模式 但是可以通过w!强制进入编辑模式 通过w!强制对编辑内容进行保存并退出
请添加图片描述

哪怕和我上图一样侥幸进入编辑模式也无法保存,但是可以通过wq!强制保存退出
在这里插入图片描述
失去执行权限,则是无法编译

2.6 vim的意外退出

当vim意外退出(如断网闪退)为了防止文件内容丢失 文件会自动生成一个隐藏的.swp的临时文件
在这里插入图片描述
此时进入test.c文件会出现以下选项
请添加图片描述

这是Vim编辑器的一个提示界面,含义如下:

  • “Swap file “.test.c.swp” already exists!”:表示名为 .test.c.swp 的交换文件已经存在。交换文件是Vim在编辑文件时自动创建的,用于在意外情况(如程序崩溃、断电)下恢复未保存的内容。
  • 后面的选项是让用户选择如何处理这个交换文件:
    • [O]pen Read-Only:以只读方式打开文件,无法进行修改。
    • (E)dit anyway:不管交换文件,直接编辑原文件,可能会丢失之前未保存的更改。
    • (R)ecover:从交换文件中恢复之前未保存的内容,继续编辑。
    • (Q)uit:退出Vim。
    • (A)bort:放弃当前操作,回到之前的状态。
      如果想以后进入该文件不再出现该页面 直接删除.swp文件即可
      请添加图片描述

2.7 底行模式下命令集

保存 退出

  • 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如:
  • :w(保存当前文件)
  • :wq(输入「wq」,存盘并退出vim)
  • :q! (输入q!,不存盘强制退出vim)

/key+n(匹配搜索)

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
请添加图片描述

!+命令(不退出vim 直接对代码进行编译和运行)

请添加图片描述
在这里插入图片描述
当按下回车键 再次回到vim。

替换关键词

按照%s/被替换词/替换词/g则可以替换
请添加图片描述
替换成功
请添加图片描述

显示/隐藏行号

输入set nu显示行号
在这里插入图片描述

请添加图片描述
输入set nonu隐藏行号
请添加图片描述

vs分屏操作

我们一般情况下编写代码 不光有源文件 也有头文件 那么如何分屏进行操作呢
通过vs + 文件名(文件存在直接打开 不存在直接创建)
请添加图片描述
请添加图片描述
在命令模式下按下ctrl+ww切换屏幕 此时光标在右屏
请添加图片描述
在左屏幕输出hello 再保存退出 此时多了个test.h文件请添加图片描述

2.8 vim一些小知识

当vim退出时,光标在第几行,那么再次打开,光标还在原来的位置。

vim 文件 + 数字打开时候光标直接定位到数字行数
在这里插入图片描述

3. vim的简单配置(了解)

vim配置本质很复杂,但是这不是重点 很多配置选项大模型一搜就出来了,所以我简单写写vim配置原理

3.1 配置流程

首先 进入非root账户进行vim配置 我们要在当前用户家目录下创建.vimrc文件!
请添加图片描述

进入vimrc写下set nu保存退出
请添加图片描述
此时进入lesson.vim目录打开我们的test.c文件 发现自动带有行号
请添加图片描述

3.2 配置原理

vim命令本质就是在/user/bin/vim下的一条指令 和ls cat没区别,当我在普通用户打开vim时候,vim就会在当前用户家目录下查找配置文件.vimrc会把其里面的配置项 作为vim启动时原始配置文件!

vim配置只会在当前账号下有效

3.3 vim常见配置项

" ===================== 基础编辑配置 =====================
set number          " 显示行号
set relativenumber  " 显示相对行号(方便跳转,如 5j 跳5行)
set cursorline      " 高亮当前行
set cursorcolumn    " 高亮当前列(可选,增强对齐)
set scrolloff=5     " 滚动时上下保留5行空白,避免光标顶边
set wrap            " 自动换行(长代码不溢出)
set linebreak       " 按单词换行,不拆分单词" ===================== 缩进配置(编程必备) =====================
set tabstop=4       " Tab 键对应4个空格
set shiftwidth=4    " 自动缩进/退格时的宽度(与 tabstop 一致)
set expandtab       " 将 Tab 键转换为空格(避免不同编辑器缩进混乱)
set autoindent      " 新行自动继承上一行缩进
set smartindent     " 智能缩进(如 if/for 后自动缩进)" ===================== 搜索与显示优化 =====================
set hlsearch        " 高亮搜索结果
set incsearch       " 实时搜索(输入字符时即时匹配)
set ignorecase      " 搜索忽略大小写(大写字母时自动区分)
set smartcase       " 若搜索包含大写,自动区分大小写
set mouse=a         " 支持鼠标操作(终端中也能用)
set encoding=utf-8  " 编码格式(避免中文乱码)
set termencoding=utf-8" ===================== 快捷键自定义 =====================
inoremap jj <Esc>   " 插入模式下按 jj 快速退出到普通模式(比按 Esc 方便)
nnoremap <C-s> :w<CR>  " 普通模式下 Ctrl+s 保存(类似编辑器习惯)
nnoremap <C-q> :q<CR>  " 普通模式下 Ctrl+q 退出
nnoremap <C-h> <C-w>h  " Ctrl+h/j/k/l 切换分屏(替代 <C-w>h)
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l" ===================== 其他优化 =====================
set nobackup        " 禁用备份文件(避免生成 .xxx~ 文件)
set nowritebackup
set undofile        " 启用持久化撤销(关闭文件后重新打开仍可撤销)
set undodir=~/.vim/undo//  " 撤销文件存放目录
set laststatus=2    " 始终显示状态栏(显示文件名、行号等信息)
set wildmenu        " 命令行补全优化(可视化选择)

3.4vim的一键配置

在普通账户下家目录下输入以下命令直接一键配置 会要求你输入root密码
cenos下:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

删除:

bash ~/.VimForCpp/uninstall.sh

ubuntu下:

curl -sLf https://raw.githubusercontent.com/jaywcjlove/vim-web/master/install | bash -s -- install

删除:

curl -sLf https://raw.githubusercontent.com/jaywcjlove/vim-web/master/install | bash -s -- uninstall

4.利用vim配置sudo权限(补充)

进入root账号 vim打开/etc/sudoers文件 在该位置加入以下内容保存退出即可
在这里插入图片描述

此时,你添加的用户就有了sudo权限。

求三连!

http://www.dtcms.com/a/587520.html

相关文章:

  • 做影视网站该怎么发展心雨在线高端网站建设专业
  • 怎么做qq分享网站网站建设中出现的问问题
  • Camsys 时间戳信息简介
  • 免费视频素材网站推荐用什么程序做网站
  • 邢台网站建设哪家好网页设计主页面
  • LangChain v1.0 完整了解指南
  • 网站代码用什么打开哪个通讯公司网络好
  • 盘锦建设小学网站美食网站策划书
  • 网站页面设计制作qq是哪个公司创办的
  • 网站建设课程性质东莞市视频直播网站开发
  • 宁波住房和城乡建设部网站做设计的网站商家入驻
  • 做企业免费网站ps怎么艺术字字体设计网站
  • 大兴做网站公司南京省住房和城乡建设厅网站
  • 卡西欧 4764 LCF10 调时间
  • 医药电子商务网站建设佛山营销网站建设费用
  • 如何让百度快照找到自己的网站网站页面风格分类
  • 成都建设网站分享什么网站没人做
  • 深圳网站建设需要多少钱oa系统怎么用
  • 免费制作封面的网站带有客户案例的网站
  • 建网站需要什么设计专业seo优化需要做什么
  • 黔南网站建设多少钱长沙seo公司网站优化
  • 廊坊网站建设解决方案无锡网站建设哪家做
  • gate网站合约怎么做空网站开发与维护岗位说明书
  • 怎么自己建网站赚钱彬县网站
  • 广州 网站制网站做广告的好处
  • 设计网站推荐百度贴吧东莞证券官网
  • 网站前台的功能模块关于加强企业门户网站建设通知
  • 深圳哪里网站建设好网站改名字 收录
  • wordpress游览量网络优化工程师需要具备哪些能力
  • 国外做二手服装网站有哪些问题网站开发违法