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

Ubuntu 22.04 LTS 入门安装配置优化、开发软件安装一条龙

Ubuntu 22.04 LTS 入门安装配置&优化、开发软件安装


例行前言
  最近在抉择手上空余的笔记本(X220 i7-2620M,Sk Hynix ddr3 8G*2 ,Samsung MINISATA 256G)拿来运行什么系统比较好,早年间我或许还会去继续使用Win10的LTSC,但是后续版本升级后后台总多了些奇奇怪怪的进程,无端占用了很多的CPU和内存,哪怕它确实简洁,去掉了所有的微软捆绑的冗余程序,但是对我这台14年的小黑来说,无端50%的CPU使用与额外30%的内存占用太伤了。(这点询问过官方,也问过专业的师傅,无解)
  徘徊了所谓的国产的UOS、Deepin、Hackintosh等诸多系统,最终还是决定回归Ubuntu的怀抱(主要是可以改成自己喜欢的样子,而不是去适应设计者的喜好)。
  事先说明,Ubuntu并不影响日常的开发工作,IDEA、VS code、WPS等都是有的,但是和Mac一致,打游戏是不现实的,很少的适配,适合极客党和折腾党。
  写这个文档也主要是先前18和20的文档不适用了,很多地方出现了完全不同的操作,部分软件的包也取消了,配置方面不能完全照着以前的copy了,所以上新,20的弃了TAT

1.安装

步入正体,第一步先是安装,当然,我是已经安装好了(为了截图又装了n遍QAQ),现在写文档就已经是在linux下进行的了

1.1 下载镜像

Ubuntu的官网一般不会被墙,但偶尔政治原因总也会抽点风.它的官网https://ubuntu.com/
  截至2022.9.22,它的官网长这样:
Ubuntu官网  正常下载它家的镜像就是点击上面的Download然后就得到了下图:
下载界面演示
  之后直接点22.04 LTS就可以直接下载镜像。

1.2 制作启动盘

安装系统的话,启动盘是必须的,这东西也就是所谓的介质。
  目前看的话,Ubuntu官方推荐的是balenaEtcher,这个工具可运行于win、mac、linux,用于直接将镜像写入U盘,官网如下:
balenaEtcher官网
  根据你的原系统环境,它会自动推荐对应的版本供下载,下载出来的界面就和官网长一样,操作也很简单,第一步选择镜像(刚刚下的),第二步选择一个你的U盘,这将会清空你的U盘,所以提前备份好文件,U盘需大于4G,且不能是SD卡;然后就直接Flash!等就可以了。
  使用rufus等其他写入工具,原理都是一样的,个人更喜欢rufus:

rufus官网
  截止发文编辑时间,rufus最新的版本是3.20,下拉直接下载便携版就可以(通过Github下载,网络寄的回头我把用得到的工具打个包上传吧)。下载后打开:
rufus操作示范
  之后想恢复正常U盘的话像下图那样操作就可以了(恭喜你学会了制作启动盘,WinPE、Linux、Mac都是一个道理的)。

u盘恢复

1.3 修改BIOS以支持从U盘启动

安装肯定是要你的主板BIOS允许从BIOS启动的,因此需要进BIOS修改,具体如何进BIOS视机型与主板而定,需自行百度“XXXX电脑如何进BIOS”

进入BIOS主要是使SATA为AHCI模式,关闭安全启动,现在的主板商搞出了一堆各式各样的BIOS界面和功能设置,故不能提供详细教程,请自行百度,见谅。

1.4 通过介质安装

修改好BIOS并使用U盘进入引导后,你的电脑就会进入一个黑底白字的选择界面,第一行是尝试进行安装,第二行是进安全模式(低分辨率),不用操作等它自己进入第一个选项就可以了。

漫长等待后(时间视U盘读写速度和主板芯片而定,一般不会超过5分钟,小阿凡友情提示你该去喝点水,远眺一下而不是继续盯着它 ~ ),进入图形化操作界面,左侧第一栏是系统语言选择,默认操作语言是英语,拉到底就有中文了,这时候旁边的试用(体验操作,进系统后桌面也可以进行安装)和安装就都能看得懂。这里上的是试用的图(主要还是为了方便截图 ~ 直接安装就可以的):
试用桌面示例
  安装并没有太多的步骤,从18到22的安装都是一致的。第一步都是例行欢迎 ~ :

安装-欢迎界面

接下来挑选键盘布局,你应该没有什么奇奇怪怪的键盘吧…有也没关系!点击探测键盘布局跟着提示走就可以了,一般用的都是US键盘

选择键盘布局

由于我是点的试用,中间截图编辑此文档是提前就连接网络了的,所以这一步之前应该还有一个连接网络,建议连接,能省不少事的。之后便是安装细节问题,由于个人并不喜欢自带的那些小游戏(连连看之类)以及本地化音乐播放器等软件,所以我选择最小安装,其他里的下载更新看个人,你感觉不急这一时就选上,这无非就是将后续系统更新的时间放到了安装这里(然而之后还是会有更新的),同时,如果你是使用独立显卡的用户,那么建议你勾上最后一个选项以避免硬件驱动异常和显示异常。

安装细节

然后就需要决定安装类型了,由于我早就安装好了,所以这里显示已经安装,只是为了截图留个过程干脆重新装了,如果你之前用的是Win那么就会有与Win共存的选项,Mac同理。共存就是所谓的双系统,还是提一嘴吧,与win构成的双系统需提前安装好Win,之后会顶替掉win的启动项,以后都是通过Ubuntu的引导(就是最开始要你选择尝试安装还是安全启动的黑底白字界面)去决定启动哪个系统,之前有试过三系统共存(安装顺序win-linux-hacintosh),有一说一,只有黑苹果的Colver四叶草引导和OC引导比较舒适,其他的多少都有点不尽人意。
  回归正题,这里因为我是选择完全独立使用一个系统,因此选择格盘安装,其他选项就是自定义分区和安装方式,这个涉及到Linux的分区格式,可以参考我之前的文章,看不懂就看后面再详写一下各系统的文件系统吧(阿巴阿巴,下次一定 ~ )

安装方式选择

选择好安装方式后就会提醒你它将对硬盘文件系统作出以下改动:

安装提醒示例

接下来是对时区的设定,一般来讲,你应该是在东八区,所以不用改动,如果不是,那么我很荣幸你能看到它,请设置到你所在的区域。

时区设定

最后一个设定,设置你的个人登陆信息,建议全英文,中文用户名不管是win还是linux都存在很大弊端

用户信息

接下来就静等安装结束即可。

在这里插入图片描述

值得一提的是,安装完成后需要重启,机器会黑屏告诉你需要拔掉介质再回车(enter),所以看到黑屏不要慌。

2. 配置

安装完成后的第一次启动,输入你刚刚设定的密码进入桌面,系统会自动检测一次更新和提示对机器进行一次初始化配置,先进行初始化配置。

2.1 初始化

首先是登陆Ubuntu的单点登陆账号,这将用于后面的更新和应用商店等操作,没有的话建议注册一个Ubuntu的单点账户进行登陆。
开机欢迎界面
  然后是设置Livepatch,这个程序的意义在于可以免重启安装更新,十分建议开启:

Livepatch界面
  Livepatch是需要Ubuntu账号进行激活的:

开启Livepatch提示

然后,嗯,失败。不用管,继续前进吧(网络问题)

开启Livepatch失败
  决定是否帮助改进:(处于隐私,俺不!)

帮助改进实例
  决定是否开启定位功能:

定位
  完成!开始使用吧~

完成初始化
  中间应该会弹出一个更新窗口,现在再来处理它,立即安装:

更新提示

一路继续就可以了:

更新跑代码示例

重启吧,而且由于后续更新问题,建议重启后再打开软件更新器再检查一次更新,避免出问题。

提示重启

2.2 配置Livepatch

更新完了嘛,就再来看刚刚开启失败的Livepatch,打开软件和更新程序看到Livepatch这一栏:
软件和更新

之所以建议前面登陆单点登陆账户就是因为它是需要和你的Ubuntu账户绑定的(22前的版本是直接登陆就可以开启),此时的你并不能直接开启其功能,它还需要你提供你的账户令牌(token):

提示输入token

token的获取需登陆这个网址https://ubuntu.com/advantage#livepatch,服务器原因会比较卡:

livepatch详情
  通过Register进入登陆界面以获取免费的Token:

登陆界面示例
  确认登陆信息:

确认登陆
之后获取到的页面下拉就可以看到你的token,每个免费账户的token只能绑定3台设备:

Token示例

这时候复制(Ctrl+C)再打开软件和更新程序,找到Livepatch进行关联,令牌就是Token,处于网络问题,失败后关掉再打开看看可能就是关联好的:

关联成功演示

每个账户最多可免费激活三台设备,不过除了我估计一般人也不会搞那么多设备在手上装着玩。

至此,初始化阶段告一段落。

2.3 开启root

因为默认下我们只是普通用户,对linux来说,系统文件是只允许root用户去修改的,所以我们开启root用户的密码,这样在root权限下,我只需要输入命令就可以了,不再需要sudo增设权限。(主要是懒得多打)开启命令为:

sudo passwd

密码需要连续输入两次以确保无误,提示不符合规定等可以无视,保证密码一致即可。请记住你设置的密码!

3 优化

对个人用户而言,linux 与 win 最大的区别就是 linux 使用命令行远比图形化操作简便,因此使用终端的操作是一定要会的。

对Ubuntu而言,在任何页面都可以使用Ctrl + Alt +T唤起终端:

终端示例

这里显示的是 用户名@主机名:路径(权限符),对linux来讲,~表示当前用户的根目录,即/usr/home/(用户名)/,权限符$表示普通用户,#表示root用户,也就是超级管理员权限。这些后面用多了也就逐渐理解了。

首先进行更新软件列表操作,处于一些原因,并不推荐去使用国内的软件源,快了点但是问题也多,更新不及时,隐藏病毒等都是可能的,当然像阿里之类的大源也是不太可能出问题的。个人更喜欢用原版源睡前丢一边慢慢更。
  在终端中输入:

sudo apt-get update

之后需要输入你的登陆密码(开机的那个),然后就会跑一大段命令(高级起来了)。更新完软件列表(检测有没有可以更新的程序)后再输入:

sudo apt-get upgrade

3.1 修改Dock

早先版本的Dock,也就是“任务栏”部分一直不合口味,因此早先版本的我都会直接卸载掉自带的Dock换成自己喜好的,但是!22自带的Dock就已经很好看了:

Dock演示

在设置里就可以直接改成这样了:

修改Dock
  嗯哼 ~ 我很满意!
  打住!,如果你对现在的结果已经很满意了,那么换个自己喜欢的壁纸就可以了,往后的操作适合折腾党。

3.2 安装Tweaks

Ubuntu最合我心意的就是他可以高度自由化的定义UI,你所看到的都可以去自定义,例如我的桌面现在长这样:

桌面示例

它所依赖的就是Tweaks,通过命令进行安装,在终端中输入:

sudo apt intall gnome-tweaks

为了方便管理和添加,还需添加:

sudo apt install gnome-shell-extension-prefs gnome-shell-extension-manager -y

然后你的程序列表里就多了下图的拓展:

拓展图表

打开第二个英文名称的程序进行管理和添加拓展

管理拓展

emmm…我事先添加了User Theme,在旁边的Browse添加,第一个就是:

添加User Theme

之后便可以在拓展中使用自定义的主题了。

3.3 更改主题

嗯,我从来没想到打脸会来得这么快,一调主题Dock就寄了,所以先去刚刚下User Theme拓展的Browse再去搜索一个Dash to Dock:

安装Dash to Dock

然后在左边Installed栏关掉Ubuntu Dock,然后恭喜,系统卡死,强制关机重启即恢复正常。
  这时再去下载GNOME主题,有一说一,下载的时候那不是一点点卡,是直接进不去,建议使用GitHub进行安装。

个人的话,比较喜欢WhiteSur的窗口设计与Fluent的图标设计,组合下来能达到这个效果:桌面示例  出于兼容性,从github上git下来的项目再适配主题是最舒心的,除了实在找不到合适的方法优化Firefox的样式,算是一块较为惋惜的瑕疵。总的来说,就是通过命令生成主题文件或将现有的主题文件分别添加到"/usr/share/"下的"themes"和"icons"里,最后再通过程序菜单里的工具文件夹的优化去修改主题,我的最终设定如下:
  主题改动算是比较深度的操作了,感兴趣的话回头可以再专门出一篇细讲(嗯,再挖个坑,会填的)。

4. 开发配置

并不清楚各位常用的开发领域都是些什么,以下仅为个人软件工程阶段所需要的开发配置(应该全了吧,。后续有了会补充 ~ )

Node.js

首先是选择你要的版本,也就是确定源,8.x版本需在终端(Ctrl+Alt+T)中输入:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

嗯,。如果你需要使用9.x版本的话,可以使用另一段指令:

curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -

以上是指定版本的安装,还有LTS版本,现在是16.17.0:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

以及最新版,当下为18.8.0:

curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -

之后再执行安装指令(加个y是静默同意安装):

sudo apt-get install -y nodejs

安装完成后可以使用node -vnpm -v核验安装并查看版本

VS Code

虽然Ubuntu的snap商店自带,但是据说功能不全,所以这边还是建议通过指令安装,首先也是添加源:

sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg

之后就可以通过包资源管理器去安装了:

sudo apt install apt-transport-https
sudo apt update
sudo apt install code

Open-JDK

开发为避免版权纠纷,一律推荐使用开源的程序。
  open-jdk版本同正常的jdk,安装命令都是sudo apt-get install openjdk-X-jdk格式,需要什么版本就把X换成对应的版本就可以了,截至发文时间,有8、11、17、18供选择。示例:

sudo apt-get install openjdk-8-jdk

最后通过java -version核验安装和确定版本。

Python

这个直接默认上最新的吧

sudo apt install python3-pip

一样可以通过命令查看版本:pip --version

MySQL

先用命令安装mysql:

sudo apt-get install mysql-server

之后需要配置才能使用,第一步,进入数据库的root账户:

sudo mysql -u root

随后便进入了mysql,第二步给root用户添加密码为root(BY后面那个,可以自定义成自己的,注意别少英文半角的引号和分号):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

其后的是启动mysql服务,现在的你应该还在mysql里,输入exit退出mysql命令工具,第三步启动mysql service:

sudo service mysql start 

(下面的我就直接搬之前写的过来改进啦)

允许MySQL 被远程连接

这一点,还是由于实际开发中你不可能一直使用自己本地的数据库,也不可能自己设置了数据库只能给自己用,所以这个还是很有必要的。

  1. 开放3306端口并关闭防火墙
    打开3306号端口:

    sudo ufw allow 3306
    

    查看端口状态(allow就是开放的。):

    sudo ufw status
    

    关闭防火墙:

    sudo ufw disable
    

    开启的防火墙的指令是这个,这里不用开 :

    sudo ufw enable
    
  2. 允许其他IP访问
    进入到 /etc/mysql/mysql.conf.d 目录:

    cd /etc/mysql/mysql.conf.d
    

一般mysql默认会安装在这个目录下。如果不是,可以使用这个命令来查找文件位置:

sudo find / -name “mysql.cnf”
  1. 修改mysqld.cnf文件:
sudo gedit mysqld.cnf

两种选择:

  • 把bind-address从127.0.0.0改为0.0.0.0
    (0.0.0.0表示的是默认路由,即当路由表中没有找到完全匹配的路由的时候所对应的路由。)
  • 把bind-address这一行前加#注释掉
  1. 允许root用户在其他IP上登录

    1. 使用root用户登录mysql数据库:
    mysql -u root -p
    
    1. 进入到mysql数据库:
    use mysql;
    
    1. 查看user表的host和user数据:
    select host, user from user; 
    

    ( 会发现root用户允许的host是localhost)
    4. 修改数据:

    update user set host='%' where user='root'; 
    

    ( 把user为root的host改为通配符%,表示允许root用户在所有IP上登录。)
    5. 刷新权限:

    flush privileges;
    
    1. 退出mysql:
      exit
    2. 在终端中重启mysql:
    sudo service mysql restart
    

额外操作

  1. 新增用户(在mysql中)

    CREATE USER 'admin'@'localhost' IDENTIFIED BY '你要设置的密码'; 
    
  2. 卸载(在终端中)

    sudo rm /var/lib/mysql/ -R
    sudo rm /etc/mysql/ -R
    sudo apt-get autoremove mysql* --purge
    

DBeaver-CE

数据库管理器,类似navicat

添加源:

sudo add-apt-repository ppa:serge-rider/dbeaver-ce

更新源:

sudo apt-get update

安装程序:

sudo apt-get install dbeaver-ce

JetBrains系列

JetBrains家的软件对Linux都是一样的安装方式,下载对应压缩包解压,通过压缩包里bin下的.sh文件运行。所以我还是选择之前的方法,创建图标文件指定路径,以后更新文件就可以了。方法如下:

统一路径型(不方便后期更新)

这种方法适合某些原因不能更新的用户,官网下载压缩包后直接在下载里解压并提取,然后重命名为idea、pycharm、webstorm(要求这几个文件夹下就直接是软件的bin文件夹等的上一级目录,不能出现多级目录。),最后把这三个文件夹放进新建的jetbrains文件夹里面,使用这个命令一键挪进/usr/local/去 (前面的地一个路径是你整理出来的文件夹的位置。)

sudo mv ~/下载/jetbrains/ /usr/local/jetbrains/

特别注意,文件夹的命名一定要正确,不然你后面在启动器中会找不到应用图标。
  接下来在启动器中创建各自的应用程序图标(只示例了IDEA、WebStorm、Pycharm的,其他程序原理相同)

  1. 通过终端进入启动器目录下:

    cd /usr/share/applications
    
  2. 创建WebStorm的图标快捷方式:

    sudo gedit webstorm.desktop
    

    输入内容:

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Name=WebStorm
    GenericName=Web IDE
    Exec=/usr/local/jetbrains/webstorm/bin/webstorm.sh %f
    Icon=/usr/local/jetbrains/webstorm/bin/webstorm.png
    Terminal=false
    Type=Application
    Categories=Development;IDE
    Comment=The Drive to Develop
    StartupWMClass=jetbrains-webstorm
    

    右上角保存后关闭文本编辑器。

  3. 创建IDEA的图标快捷方式:

    sudo gedit idea.desktop
    

    输入内容:

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Name=IntelliJ IDEA
    GenericName=Java IDE
    Comment=IntelliJ IDEA is a code-centric IDE focused on developer    productivity. The editor deeply understands your code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help you shape your code.
    Exec=/usr/local/jetbrains/idea/bin/idea.sh %f
    Icon=/usr/local/jetbrains/idea/bin/idea.png
    Terminal=false
    Type=Application
    Categories=Development;IDE
    StartupWMClass=jetbrains-idea
    

    右上角保存后关闭文本编辑器

  4. python:

    sudo gedit pycharm.desktop
    

    输入内容:

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Name=Pycharm
    GenericName=Python IDE
    Exec=/usr/local/jetbrains/pycharm/bin/pycharm.sh %f
    Icon=/usr/local/jetbrains/pycharm/bin/pycharm.png
    Terminal=false
    Type=Application
    Categories=Development;IDE
    Comment=The Drive to Develop
    StartupWMClass=jetbrains-pycharm
    

    保存后推出

这时候你的程序列表里就有你刚刚添加的图标了,直接双击图标就可以运行对应的程序,就很 nice~

但是问题也是有的,由于权限问题,后期的更新文件你都需要用sudo前缀的命令去删除和增加新文件。所以比较适合那些用了插件和手段不能正常更新的用户。

直接放在用户根目录,后期更新直接文件夹里删除旧文件换新的,不用命令去更改文件

这个方法要求你能经常顺利激活软件,学生、老师就去申请免费使用(我就是这么干的!),开源项目也能申请,尽管他这正版属实贵,十月据说还要涨价就离谱。
  类似的操作,官网下载程序压缩包后解压,然后改名丢到新建的jetbrains文件夹里,最后再把jetbrains文件夹移到用户根目录(主目录)下,这里你是有操作权限的,所以可以直接鼠标拖动或者CV。然后一样的,创建图标快捷方式:

  1. 通过终端进入启动器目录下:

    cd /usr/share/applications
    
  2. 创建WebStorm的图标快捷方式:

    sudo gedit webstorm.desktop
    

    输入内容,注意了,Exex和Icon的值要根据你的用户名来确定我的用户名是rob,所以我的输入值为:

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Name=WebStorm
    GenericName=Web IDE
    Exec=/home/rob/jetbrains/webstorm/bin/webstorm.sh %f
    Icon=/home/rob/jetbrains/webstorm/bin/webstorm.png
    Terminal=false
    Type=Application
    Categories=Development;IDE
    Comment=The Drive to Develop
    StartupWMClass=jetbrains-webstorm
    

    右上角保存后关闭文本编辑器。

  3. 创建IDEA的图标快捷方式:

    sudo gedit idea.desktop
    

    输入内容,注意了,Exex和Icon的值要根据你的用户名来确定我的用户名是rob,所以我的输入值为:

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Name=IntelliJ IDEA
    GenericName=Java IDE
    Comment=IntelliJ IDEA is a code-centric IDE focused on developer    productivity. The editor deeply understands your code and knows its way around the codebase, makes great suggestions right when you need them, and is always ready to help you shape your code.
    Exec==/home/rob/jetbrains/idea/bin/idea.sh %f
    Icon==/home/rob/jetbrains/idea/bin/idea.png
    Terminal=false
    Type=Application
    Categories=Development;IDE
    StartupWMClass=jetbrains-idea
    

    右上角保存后关闭文本编辑器

  4. python:

    sudo gedit pycharm.desktop
    

    输入内容,注意了,Exex和Icon的值要根据你的用户名来确定我的用户名是rob,所以我的输入值为:

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Name=Pycharm
    GenericName=Python IDE
    Exec==/home/rob/jetbrains/pycharm/bin/pycharm.sh %f
    Icon==/home/rob/jetbrains/pycharm/bin/pycharm.png
    Terminal=false
    Type=Application
    Categories=Development;IDE
    Comment=The Drive to Develop
    StartupWMClass=jetbrains-pycharm
    

相关文章:

Ubuntu 22.04 LTS 入门安装配置优化、开发软件安装一条龙

Ubuntu 22.04 LTS 入门安装配置&优化、开发软件安装 例行前言   最近在抉择手上空余的笔记本(X220 i7-2620M,Sk Hynix ddr3 8G*2 ,Samsung MINISATA 256G)拿来运行什么系统比较好,早年间我或许还会去继续使用Win…...

第五十章 动态规划——数位DP模型

第五十章 动态规划——数位DP模型一、什么是数位DP数位DP的识别数位DP的思路二、例题1、AcWing 1083. Windy数(数位DP)2、AcWing 1082. 数字游戏(数位DP)3、AcWing 1081. 度的数量(数位DP)一、什么是数位DP…...

02- pandas 数据库 (机器学习)

pandas 数据库重点: pandas 的主要数据结构: Series (一维数据)与 DataFrame (二维数据)。 pd.DataFrame(data np.random.randint(0,151,size (5,3)), # 生成pandas数据 index [Danial,Brandon,softpo,Ella,Cindy], # 行索引 …...

学Qt想系统的学习,看哪本书?

Qt 是一个跨平台应用开发框架(framework),它是用 C语言写的一套类库。使用 Qt 能为 桌面计算机、服务器、移动设备甚至单片机开发各种应用(application),特别是图形用户界面 (graphical user in…...

2023年网络安全比赛--跨站脚本攻击②中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.访问服务器网站目录1,根据页面信息完成条件,将获取到弹框信息作为flag提交; 2.访问服务器网站目录2,根据页面信息完成条件,将获取到弹框信息作为flag提交; 3.访问服务器网站目录3,根据页面信息完成条件,将获取到弹框信息…...

网络安全实验室4.注入关

4.注入关 1.最简单的SQL注入 url:http://lab1.xseclab.com/sqli2_3265b4852c13383560327d1c31550b60/index.php 查看源代码,登录名为admin 最简单的SQL注入,登录名写入一个常规的注入语句: admin’ or ‘1’1 密码随便填,验证…...

领域搜索算法之经典The Lin-Kernighan algorithm

领域搜索算法之经典The Lin-Kernighan algorithmThe Lin-Kernighan algorithm关于算法性能提升的约束参考文献领域搜索算法是TSP问题中的三大经典搜索算法之一,另外两种分别是回路构造算法和组合算法。 而这篇文章要介绍的The Lin-Kernighan algorithm属于领域搜索算…...

深度学习基础-机器学习基本原理

本文大部分内容参考《深度学习》书籍,从中抽取重要的知识点,并对部分概念和原理加以自己的总结,适合当作原书的补充资料阅读,也可当作快速阅览机器学习原理基础知识的参考资料。 前言 深度学习是机器学习的一个特定分支。我们要想…...

C语言操作符详解 一针见血!

目录算数操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员表达式求值11.1 隐式类型转换算数操作符💭 注意/ 除法 --得到的是商% 取模(取余)--得到的是余数如果除法操作符…...

前端面试题汇总

一:JavaScript 1、闭包是什么?利弊?如何解决弊端? 闭包是什么:JS中内层函数可以访问外层函数的变量,外层函数无法操作内存函数的变量的特性。我们把这个特性称作闭包。 闭包的好处: 隔离作用…...

以数据驱动管理场景,低代码助力转型下一站

数据驱动 数据驱动,是通过移动互联网或者其他的相关软件为手段采集海量的数据,将数据进行组织形成信息,之后对相关的信息讲行整合和提炼,在数据的基础上经过训练和拟合形成自动化的决策模型,简单来说,就是…...

2023年全国数据治理DAMA-CDGA/CDGP考试报名到弘博创新

弘博创新是DAMA中国授权的数据治理人才培养基地,贴合市场需求定制教学体系,采用行业资深名师授课,理论与实践案例相结合,快速全面提升个人/企业数据治理专业知识与实践经验,通过考试还能获得数据专业领域证书。 DAMA认…...

流程控制之循环

文章目录五、流程控制之循环5.1 步进循环语句for5.1.1 带列表的for循环语句5.1.2 不带列表的for循环语句5.1.3 类C风格的for循环语句5.2 while循环语句5.2.1 while循环读取文件5.2.2 while循环语句示例5.3 until循环语句5.4 select循环语句5.5 嵌套循环5.4 利用break和continue…...

SpringDataRedis快速入门

SpringDataRedis快速入门1.SpringDataRedis简介2.RedisTemplate快速入门3.RedisSerializer4.StringRedisTemplate1.SpringDataRedis简介 SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis Spri…...

MySQL 的执行计划 explain 详解

目录 什么是执行计划 执行计划的内容 select子句的类型 访问类型 索引的存在形式...

2023年网络安全比赛--Web综合渗透测试中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.通过URL访问http://靶机IP/1,对该页面进行渗透测试,将完成后返回的结果内容作为FLAG值提交; 2.通过URL访问http://靶机IP/2,对该页面进行渗透测试,将完成后返回的结果内容作为FLAG值提交; 3.通过URL访问http://靶机IP/3,对…...

【c++之于c的优化 - 下】

前言 一、inline 概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。 如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译…...

MySQL事务管理

文章目录MySQL事务管理事务的概念事务的版本支持事务的提交方式事务的相关演示事务的隔离级别查看与设置隔离级别读未提交(Read Uncommitted)读提交(Read Committed)可重复读(Repeatable Read)串行化&#…...

二维计算几何全家桶

参考文章&#xff1a;范神的神仙博客 前置芝士 一些高中数学 向量的叉积&#xff1a;向量的点积为 a⋅b∣a∣∣b∣cos⁡<a,b>a\cdot b|a||b|\cos<a,b>a⋅b∣a∣∣b∣cos<a,b>&#xff0c;向量的叉积为 ab∣a∣∣b∣sin⁡<a,b>a\times b|a||b|\sin<…...

基于图的下一代入侵检测系统

青藤云安全是一家主机安全独角兽公司&#xff0c;看名字就知道当前很大一块方向专注云原生应用安全&#xff0c;目前主营的是主机万相/容器蜂巢产品&#xff0c;行业领先&#xff0c;累计支持 800万 Agent。当前公司基于 NebulaGraph 结合图技术开发的下一代实时入侵检测系统已…...

若依框架---树状层级部门数据库表

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

【Mysql第十期 数据类型】

文章目录1. MySQL中的数据类型2.类型介绍2.2 可选属性2.2.2 UNSIGNED2.2.3 ZEROFILL2.3 适用场景2.4 如何选择&#xff1f;3. 浮点类型3.2 数据精度说明3.3 精度误差说明4. 定点数类型4.1 类型介绍4.2 开发中经验5. 位类型&#xff1a;BIT6. 日期与时间类型6.1 YEAR类型6.2 DAT…...

2023-2-9 刷题情况

删除子文件夹 题目描述 你是一位系统管理员&#xff0c;手里有一份文件夹列表 folder&#xff0c;你的任务是要删除该列表中的所有 子文件夹&#xff0c;并以 任意顺序 返回剩下的文件夹。 如果文件夹 folder[i] 位于另一个文件夹 folder[j] 下&#xff0c;那么 folder[i] 就…...

Homekit智能家居DIY设备-智能通断开关

智能通断器&#xff0c;也叫开关模块&#xff0c;可以非常方便地接入家中原有开关、插座、灯具、电器的线路中&#xff0c;通过手机App或者语音即可控制电路通断&#xff0c;轻松实现原有家居设备的智能化改造。 随着智能家居概念的普及&#xff0c;越来越多的人想将自己的家改…...

【java】EJB(Enterprise Java Bean)概述

EJB概述目录一、什么情况下需要企业Bean需要使用EJB的N个理由二、EJB的基本分类2.1、Enterprise Bean2.2、 Message Driven Bean(MDB)——消息驱动Bean,基于JMS三、定义客户端访问的接口3.1、 远程客户端——客户端与其调用的EJB对象不在同一个JVM进程中3.2、本地客户端——客户…...

Android 10.0 Launcher3桌面禁止左右滑动

1.1概述 在10.0的rom定制化开发中,由于Launcher3有一些功能需要定制,这样的需求也好多的,现在功能需求要求桌面固定在Launcher3的app列表页,不让左右移动,就是禁止左右移动的功能实现,所以需要禁止滑动分析页面滑动部分的功能,然后禁用 2.1Launcher3桌面禁止左右滑动的核…...

日期类的实现

文章目录1. 日期类的具体实现1.查询当前月份的天数2. 构造函数的实现(注意)3.d1d24. d1!d25. d1<d26. d1<d27. d1>d28. d1>d29. 日期天数10.日期天数11.日期-天数12. 日期-天数13. d和 d14. --d 和 d--15.日期日期 返回天数2. 函数的声明——date.h3. 函数的定义—…...

2022年这5款熟悉的软件退出了历史舞台

在过去的一年里&#xff0c;有很多新产品发布&#xff0c;当然也有很多产品与我们就此别过。这些产品曾陪伴我们的生活&#xff0c;给我们带来欢乐&#xff0c;帮助我们成长。所以本文将盘点一下在2022年和我们告别的产品。1.微软IE浏览器IE浏览器1995年8月16日正式上线&#x…...

用Nginx打包部署vue3项目及404和500解决

打包vue3 npm run build安装Nginx 这里安装步骤比较繁琐&#xff0c;现在服务器比较便宜&#xff0c;如果想用Nginx&#xff0c;可以去菜鸟教程https://www.runoob.com/linux/nginx-install-setup.html 配置安装一下找到安装路径下的 conf 文件夹 下 nginx.conf文件&#xff0…...

Java面试——多线程并发篇

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

网站资料筹备/上海网站推广优化

你是否还在大量控制台窗口中监控容器&#xff0c;还是对使用终端命令充满热情&#xff1f;而使用Docker的图形用户界面&#xff08;GUI&#xff09;工具&#xff0c;则可以更简单的对容器进行管理&#xff0c;并提高效率。而且它们都是免费的。PortainerPortainer是一款Web应用…...

wordpress隐藏菜单/推广公司品牌

一、在上一篇博客中&#xff0c;我们已经安装配置成功Maven,并且建立一个基于Maven的web项目&#xff0c;并且导入mahout依赖。 问题&#xff1a;在网上找到的两个例子ChartTwo与Collaborative Filtering中均没有用Maven建立项目&#xff0c;直接用Mahout。那我们这里为啥要用…...

做网站用什么技术好/佛山网站建设十年乐云seo

为什么80%的码农都做不了架构师&#xff1f;>>> 各个功能详解 ●地图 iOS 9的地图应用加入了公共交通导航、支持公交、火车、地铁、轮渡等交通工具&#xff0c;支持全球多个地区&#xff08;包括国内300多个城市&#xff09;。 ●Siri 更“积极”的Siri可以根据用户…...

在家帮别人做网站赚钱/外包公司是什么意思

文件系统类型 在windows中我们常见的磁盘格式有fat16、fat32和ntfs。但是windows的文件管理显得有些赘余&#xff0c;为打开一个文件需要打开n个地方&#xff0c;在一个角落里找。而且windows本身对于其他系统的文件格式就更差了&#xff0c;没有听说在windows里打开ext3或者ma…...

视频网站建设价位/企业营销型网站建设

http://zhushou.huihui.cn/ 转载于:https://www.cnblogs.com/webRobot/p/7812916.html...

做网站教程如乐/5g网络优化培训

http://learnpythonthehardway.org/book/intro.html 本节没有练习&#xff0c;介绍一些初学编程者需要注意的基本学习方法&#xff0c;要点如下&#xff1a; All programmers need to do learn a language:每个程序员学习编程必经之路 1.Go through each exercise.做每一道…...