从0搭建WSL下的Ubuntu(18.04)前端环境

2023-11-03

1.Windows下安装Ubuntu

直接去微软商店搜索下载Ubuntu18.04就行,你也可以使用镜像

2.安装完毕后,进入ubuntu,更换apt源为阿里云源

  1. 备份 sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  1. 编辑 sources.list
sudo vim /etc/apt/sources.list

然后将下面的阿里源替换进去

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
  1. 更新以及升级
sudo apt update
sudo apt upgrade

3.创建root权限的用户,并且设置为默认登陆用户

  1. 创建用户
adduser username # 你的用户名
New UNIX password: # 随后按照提示输入密码等信息
  1. 赋予root权限
	sudo vim /etc/sudoers

在这里插入图片描述
在文件的root ALL=(ALL:ALL) ALL 这一行下面添加(你的用户名 ALL=(ALL:ALL) ALL)

username    ALL=(ALL:ALL) ALL
  1. 设置你的用户为默认登陆用户
sudo vim /etc/wsl.conf

写入以下内容(username记得替换成你的用户名)

#Set the user when launching a distribution with WSL.
[user]
default=username

完全退出系统后再进入就会生效

4.安装一些帮助操作系统的工具。

  1. 先安装一个oh-my-zsh,用着不好看的shell怎么好好工作(摸鱼)嘛。
#安装zsh,已经有zsh的话就当更新了
sudo apt install zsh -y 
# 设置zsh为默认shell
chsh -s /bin/zsh 
# 安装oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 
#(可选)进入配置文件设置主题
vim ~/.zshrc 

具体主题安装可以参考oh-my-zsh的wiki

2.安装zsh的一些常用插件

# Zsh命令自动补全插件
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
# Zsh命令语法高亮插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
# 用来在shell中提示node版本(也有其他的提示,可自行翻阅文档)
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
# 自动跳转目录插件
sudo apt install autojump

显示node版本还需要为spaceship创建默认配置文件~/.spaceshiprc.zsh,否则可能无法正常显示

SPACESHIP_NODE_ASYNC=false # 设置读取node版本不为异步读取
  1. 配置~/.zshrc文件
# 不需要提示node版本的话可以不用我现在这个主题
ZSH_THEME="spaceship"
# 添加zsh-autosuggestions以及autojump到plugins中
plugins=(
        git
        zsh-autosuggestions
        autojump
)
# 输入v快速进入neovim
alias v=nvim
# 下面这行放在.zshrc文件的结尾
source "$ZSH_CUSTOM/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
  1. 安装oh-my-tmux,美化一下tmux的界面!
cd ~
git clone https://github.com/gpakosz/.tmux.git
ln -s -f .tmux/.tmux.conf
cp .tmux/.tmux.conf.local .

5.准备前端代码工具环境。

  1. 安装Node版本工具Volta,参考这里的方法,node环境就准备好了。
  2. 安装pnpm以及yarn用来帮助安装node包。
# yarn 可以直接用npm下载
npm install -g yarn
# pnpm 可能会遇到网络问题,没有魔法的话只能多试几次了
curl -fsSL https://get.pnpm.io/install.sh | sh -
  1. 安装neovim,vim的项目已经不再维护了,neovim还很活跃(赞美大佬)!
sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt update
sudo apt install neovim
  1. neovim的配置,参考我的vim编辑器配置,然后将其导入neovim的配置~/.config/nvim/init.vim中,这里是为了和老版本兼容,当然你也可以用init.lua
# 在init.vim中写入下面的内容引入之前vim的配置
source ~/.vimrc

好啦,前端需要的东西就这些啦,✿✿✿完结撒花✿✿✿

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从0搭建WSL下的Ubuntu(18.04)前端环境 的相关文章

  • 如何禁用vim的switch case缩进?

    我目前正在与 Vim 作斗争 我似乎无法让缩进选项达到我想要的效果 这是我的设置 我将它们放在 vimrc 的底部以确保它们优先 正如你所看到的 我有点疯狂 所以我尝试关闭几乎所有的东西 set cindent set cinkeys o
  • 如何从 vim 命令行交互运行 vim 脚本?

    有没有办法从以下位置运行这些脚本 命令行只需敲几下键 在过去的几个月里 我构建了一系列充满 vim 命令的文件 为我的项目自动生成样板代码 它让我工作得更快 但是 我知道如何运行这些脚本的唯一方法是将它们分配给 vimrc 我只能重新映射这
  • 在centos中安装sqlite3 dev和其他包

    我正在尝试使用 cpanel 在 centos 机器上安装 sqlite dev 和其他库 以便能够编译应用程序 我对 debian 比 centos 更熟悉 我知道我需要的库是 libsqlite3 dev libkrb5 dev lib
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • systemd 错误“无法启动服务:单元服务未正确加载:exec 格式错误”

    我可以执行准确的ExecStart来自 shell 的命令并且它可以工作 但是由于某种原因在此服务文件中这不起作用 有什么想法吗 error Failed to start previewapi service Unit previewap
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • Vim + tmux + WSL 在导航文档时显示方块和奇怪的字符

    我可以在 Windows Ubuntu 子系统中使用 vim 没有任何问题 然后 当在 tmux 中运行 Vim 并输入文本时 大多数字符都会显示为奇怪的方块 里面有引号而不是实际的字母 这是 vim 文本的屏幕截图 1 在 tmux 中突
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • Shift 键在我的 emacs 中不起作用

    I run emacs in gnome terminal with nw option it works well except for some key shortcuts that include the shift key For
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • 有选择地设置 iskeyword

    通常我需要搜索大型 xml 模式文件以查找光标下单词的下一个出现位置 但如果它是一个标签或结束标签 则最好不要搜索 在下面的示例中 是光标所在的位置 使用 or 与 iskeyword 不包括 gt or lt 将在之间移动
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • 从网络中的另一台计算机访问本地GAE SDK服务器

    我有开发服务器 来自 google appengine sdk 在我的 Ubuntu 计算机上运行 我可以通过导航到 localhost 8080 来访问我的网站 我想从网络中的另一台计算机 装有 Vista 操作系统 访问该站点 ifco

随机推荐

  • HashMap的数据操作演示

    import java util public class mytest public static void main String args mytest mytest new mytest Map map new HashMap fo
  • 执行docker info出现警告解决

    执行docker info出现如下警告 WARNING bridge nf call iptables is disabled WARNING bridge nf call ip6tables is disabled 解决办法 vim et
  • OpenHarmony 3.1 Beta版本关键特性解析——HAP包安装实现剖析

    以下内容来自开发者分享 不代表 OpenHarmony 项目群工作委员会观点 石磊 随着社会的不断发展 人们逐渐注重更加高效 舒适 便捷 有趣的生活和工作体验 OpenAtom OpenHarmony 以下简称 OpenHarmony 作为
  • LeetCode-410.分隔数组的最大值、动态规划、前缀和

    给定一个非负整数数组和一个整数 m 你需要将这个数组分成 m 个非空的连续子数组 设计一个算法使得这 m 个子数组各自和的最大值最小 示例 输入 nums 7 2 5 10 8 m 2 输出 18 力扣 LeetCode 第410题 前言
  • ChatGPT怎么用?几个技巧让你快速掌握使用!

    近日全球最热的话题非ChatGPT莫属了 据资料显示 ChatGPT目前月活用户已经突破1亿 相信不少人都在尝试玩ChatGPT了 但是如何利用ChatGP来快速完成各种工作 今天给大家分享几个使用技巧 想要通过ChatGPT来帮您完成工作
  • 学好数据库,看这9本书就够了

    软件开发者编写代码 最终都是要处理数据 因此数据库是必备技能 悲剧的是 学校里与此最相关的数据库原理课 对初学者的体验却非常不好 相信很多同学都有这样的痛苦经历 一上来就一通数据库历史 罗列一大堆从来没见过以后也不会见到的各种古老数据库 然
  • vector的实现及总结

    vector vector的数据安排以及操作方式与array非常类似 两者唯一的差别就是在于空间的运用灵活性 array是静态空间 一旦分配了就是固定的 无法改变其大小 需要用户重新申请更大的空间 移动数据 释放原来的空间 而vector是
  • 读取jar中Properties文件

    package com wang util import java io IOException import java io InputStream import java security AccessControlException
  • typeid 与 dynamic_cast(C++学习)

    RTTI Run Time Type Information 运行时类型信息 Run Time Type Identification 运行时类型识别 C 通过下面两个 操作符 提供RTTI功能 typeid dynamic cast 其中
  • scrapy知识点

    1 持久化存储 编码流程 1 数据解析 2 封装item类 3 将解析的数据存储到实例化好的item对象 4 提交item 5 管道接收item然后对item进行io操作 6 开启管道 注意事项 将同一份数据存储到不同的平台中 管道文件中一
  • Windows 驱动开发 之 WinDbg调试(一)

    课程链接 https www bilibili com video BV1r7411A7hq vd source 4f5979757af4551dfc8d2f504918a338 Windows 驱动开发 之 WinDbg调试 一 文章目录
  • Qt实现Rasdial宽带拨号

    最近 由于项目需求 需要通过不断拨号来实现切换ip 当然 最简单的方法就是使用Rasdial来进行拨号 一开始是采用双管道方法来做 但是会出现黑框框 然后我就想用 ShellExecuteA 函数来实现 通过采用 SW HIDE显示方式来隐
  • HttpClient工具类(包含请求头设置及请求示例)

    import java io BufferedReader import java io DataOutputStream import java io EOFException import java io IOException imp
  • iOS-75-分享Xcode使用技巧(兼容iOS10、iPhone刷机固件、Xcode各版本、内存泄漏检测)

    一 兼容iOS10 http mp weixin qq com s biz MjM5OTM0MzIwMQ mid 2652547529 idx 1 sn bdbca712415cc6cc68e4f04c855e8441 scene 2 sr
  • mybatis if test 不为空字符串或null

    转自 mybatis if test 不为空字符串或null MyBatis 是一款优秀的持久层框架 它支持定制化 SQL 存储过程以及高级映射 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis
  • 用户模块丨前端uniapp微信小程序项目

    小兔鲜儿 用户模块 在用户登录 注册成功后 展示会员信息 更新会员信息 会员中心页 我的 主要实现两部分业务 渲染当前登录会员的昵称和头像 从 Store 中获取 猜你喜欢分页加载 可封装成组合式函数实现复用逻辑 静态结构 会员中心页 替换
  • 语音信号处理:语音增强DNN频谱映射

    本文为自学总结整理知识点使用 参考课程 基于深度神经网络频谱映射的语音增强方法 引言 原理 数据集 语音数据集 TIMIT 噪声数据集 Noise 92 数据准备 无噪语音数据准备 生成含噪数据 噪声对 模型结构 参数配置文件 数据集管理
  • 单片机常用外设驱动电路

    单片机常用外设驱动电路 DS18B20 DHT11 AT24C02 L293D 带光耦隔离 I2C接口和EEPROM电路 LCD1602电路 数码管 RS485 红外开关 蜂鸣器驱动 译码器 移位寄存器 74HC595 步进电机控制 复位电
  • [Python从零到壹] 六十一.图像识别及经典案例篇之基于纹理背景和聚类算法的图像分割

    祝大家新年快乐 阖家幸福 健康快乐 欢迎大家来到 Python从零到壹 在这里我将分享约200篇Python系列文章 带大家一起去学习和玩耍 看看Python这个有趣的世界 所有文章都将结合案例 代码和作者的经验讲解 真心想把自己近十年的编
  • 从0搭建WSL下的Ubuntu(18.04)前端环境

    1 Windows下安装Ubuntu 直接去微软商店搜索下载Ubuntu18 04就行 你也可以使用镜像 2 安装完毕后 进入ubuntu 更换apt源为阿里云源 备份 sources list sudo cp etc apt source