LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

如何优雅的在Windows中使用Linux系统中搭建Shell环境

2022年11月25日 158点热度

虚拟机安装Arch Linux 背景

关于图形界面与命令行界面各有优势,在编译项目的场景下,更倾向于运行命令脚本自动化构建,但是在Windows系统中搭建Shell环境及其复杂,往往功能不全,很容易出现各种小问题。在Windows中也有很多模拟Linux环境的应用,最常见的有Cygwin,MSYS2,WSL等,我使用过其中的几个,使用体验不佳,普遍存在很多问题,而且极易造成系统混乱。那么问题来了,如何优雅的在Windows中使用Linux系统,我觉得最佳方案应该是部署Linux云服务器,这种方法成本比较高;那么另一种方案就是虚拟机了,但是虚拟机性能不高,为此,我选择了可以最小化安装的Arch Linux。

安装 软硬件准备

在虚拟机中新建一个客户机,硬件配置自行选择,网络适配器选择NAT模式,参见虚拟机VMware Workstation Pro v16.0.0使用教程,下载最新的Arch Live ISO,注意一定要选择最新的镜像,老版本镜像可能存在公钥过时问题。

安装步骤

相比于在真实主机中安装Linux系统,在虚拟机中安装要简单很多,不需要考虑网络连接、硬件驱动、兼容性等很多问题。

从镜像中启动系统,对于BIOS固件linux 电子书,Live ISO 使用syslinux作为引导程序;对于UEFI固件,Live ISO 使用GRUB作为引导程序,安装时不必过多在意这些。不同版本的镜像以及固件方式不同,引导界面显示内容不同,通常会有以下几下:

Arch Linux install medium (x86_64, UEFI)
Arch Linux install medium (x86_64, UEFI) with speech
EFI Shell
Reboot Into Firmware Interface

通常选择第一项即可,第二项提供了一个语音功能的无障碍安装模式,后面是一些进入固件的选项。

会以 root 用户进入 Live 系统:

英语区与中文区通常不需要更改默认键盘布局(US),确认固件类型:

ls /sys/firmware/efi/efivars

上述命令有输出内容则为UEFI启动,若文件夹不存在则为BIOS启动,虚拟机创建客户机时如果没有更改固件类型默认为BIOS模式。

检查网络连接:

ip link
ping archlinux.org

使用vmware安装linux_使用虚拟机安装linux_linux 虚拟软件

因为创建客户机时网络适配器选择的是NAT模式,此处网络连接应该会自动配置完成,即运行 ip link 输出中有IPv4地址,ping 命令测试可以连通。

接下来,对硬盘分区,使用 fdisk 或者 lsblk 列出可用硬盘:

fdisk -l

在虚拟机中上述命令输出结果通常为 /dev/sda使用虚拟机安装linux,Live ISO 中提供了fdisk、gdisk、parted等分区工具,使用 fdisk 命令分区:

fdisk /dev/sda

根据命令提示完成分区操作,推荐分区如下:

BIOS with MBR

挂载点分区分区类型建议大小

[SWAP]

/dev/swap_partition

Linux swap

512MiB

/mnt

/dev/root_partition

Linux

磁盘剩余空间

UEFI with GPT:

挂载点分区分区类型建议大小

/mnt/boot

/dev/efi_system_partition

EFI system partition

512MiB

[SWAP]

/dev/swap_partition

Linux swap

512MiB

/mnt

/dev/root_partition

Linux x86-64 root (/)

磁盘剩余空间

创建好分区之后,格式化分区:

mkfs.ext4 /dev/root_partition             # 根分区文件类型为ext4
mkswap /dev/swap_partition                # 交换分区
mkfs.fat -F 32 /dev/efi_system_partition  # EFI分区类型为FAT32

挂在分区:

mount /dev/root_partition /mnt            # 挂载根分区
mkdir /mnt/boot                           # 创建EFI分区挂载点
mount /dev/efi_system_partition /mnt/boot # 挂载EFI分区
swapon /dev/swap_partition                # 激活交换分区

linux 虚拟软件_使用vmware安装linux_使用虚拟机安装linux

接下来将系统安装到刚刚分区的硬盘中,使用 pacstrap 脚本将 Live ISO 中的文件复制到硬盘中:

pacstrap -K /mnt base linux vim

虚拟机中只需要最小化安装 base 和 linux 组件,不需要安装 linux-firmware,将 vim 安装进去便于编辑文件。

创建 fstab 文件:

genfstab -U /mnt >> /mnt/etc/fstab

进入新系统:

arch-chroot /mnt

设置时区,此处设置为国内时区:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

语言建议默认选择英文。创建 hostname 与 hosts 文件:

/etc/hostname
myhostname
/etc/hosts
127.0.0.1        localhost
::1              localhost
127.0.1.1        myhostname

linux 虚拟软件_使用vmware安装linux_使用虚拟机安装linux

更改镜像,国内使用 Arch 官方镜像速度很慢,改为国内镜像,编辑 /etc/pacman.d/mirrorlist 文件(建议更改系统文件时先备份再更改):

Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch

设置 root 密码,创建远程登陆用户(ssh禁止使用 root 用户远程登陆):

passwd                 # 连续输入两次密码
groupadd group1        # 创建用户组 group1
useradd -m -g group1 -s /bin/bash test # 创建用户 test,加入 group1 组 
passwd test            # 为用户 test 创建密码

编辑 /etc/sudoers 文件,对创建的 test 用户赋予执行 sudo 的权限。

安装相关软件:

pacman -S dhcpcd         # DHCP 客户端
pacman -S openssh        # 远程登陆服务端
pacman -S open-vm-tools  # 开源实现的 VMTools

安装 CPU microcode:

pacman -S amd-ucode    # AMD CPU
pacman -S intel-ucode  # Intel CPU

安装启动引导程序,启动引导程序有很多使用虚拟机安装linux,常见的有GRUB(支持 BIOS 与 UEFI)、rEFInd(支持 UEFI),选择 GRUB 作为启动引导程序:

BIOS 启动模式:

linux 虚拟软件_使用vmware安装linux_使用虚拟机安装linux

pacman -S grub 
grub-install --target=i386-pc /dev/sda 
grub-mkconfig -o /boot/grub/grub.cfg  # 生成 grub.cfg 文件

UEFI 启动模式:

pacman -S grub efibootmgr  # 需要安装 efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB 
grub-mkconfig -o /boot/grub/grub.cfg  # 生成 grub.cfg 文件

完成上述步骤后,重启系统:

exit          # 退出 arch-chroot
shutdown now  # 关机

关机后需要移除 ISO 镜像才能重新启动,进入系统后执行如下操作:

systemctl enable systemd-networkd systemd-resolved dhcpcd sshd  # 设置网络相关软件自启动
systemctl start systemd-networkd systemd-resolved dhcpcd sshd   # 启动网络相关软件
ip link             # 查看网卡
ip link set up eth1 # 激活网卡,eth1 为上述命令输出的网卡名
dhcpcd              # 运行 DHCP

经过上述操作,虚拟机应该可以正常连接到网络,如果不行,就重启一下虚拟机。然后查看虚拟机 IP 地址,从 Window 中用 ssh 协议登陆到虚拟机,这样在就可以实现复制粘贴功能,推荐一款开源的跨平台终端 Tabby,主机与虚拟机的文件传输,可以使用 Tabby 终端附带的 SFTP 协议或者虚拟机的共享文件夹功能。

在配置完 C 运行环境之后linux格式化命令,系统占用仅仅2.3G,相比于其他发行版本,真的精简很多,适合在虚拟机中运行,减少不必要的性能开销。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux分区 linux服务器 linux系统 shell 虚拟机
最后更新:2022年11月25日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
Linux内核源码/内存/文件系统/进程管理/设备 TeXLive和MiKTeX两大主要发行版的镜像配置方法 安全增强式Linux(SELinuxLinux)内核修改和用户空间工具 Ubuntu系统下安装字体和切换默认字体的方法系统 896MB如何转换为物理空间(Linux地址映射的分析) 比较流行的Linux系统图形界面环境-Linux社区创作挑战赛 如何查看Linux硬盘的大小、类型和硬件信息?方法 Linux内核中的虚拟服务器集合:ipvsadm命令 FreeBSD9.0正式版FreeBSD8.0支持amd-64、i386编译器 如何在Ubuntu中创建应用的快捷方式? 如何在linux上安装搜狗输入法进行解释,别忘了关注本站 用集群技术构建网络服务器的发展趋势提出了 搜狗输入法forlinux版本安装指南: Linux中常用的4种虚拟化方法以及它们相应的优缺点 如何在linux下安装搜狗输入法后怎么用的那些神秘传说? Linux虚拟服务器LVS自动化运维方法及运维系统介绍 时间戳和时区1Unix(/)接收的两个推测 安装Linux和Windows双系统的硬盘分区是什么意思? linux怎么安装输入法Linux系统可以通过以下步骤步骤安装 (Unix)Unix时间戳转换公式及Unix操作成时间公式
快速实例学习:修改某个目录下的所有文件的权限bin是什么格式的文件怎么打开bin文件打开方法?科林·沃森:Ubuntu默认是关闭root帐户的,这样做(知识点)chmod系统控制用户对文件权限的命令如何在UbuntuLinux中启用和禁用root用户登录系统?Linux系统chmod命令使用数字修改文件权限的方式有哪些?关于Ubuntu修改密码及密码复杂度策略设置的文章!Ubuntu本地提权漏洞CVE-2017-16995程序员不输入密码进入Linux系统,孩子们永远不知道下一个bugchmod系统变更文件或目录的权限变更的详细资料介绍Linux常用服务器构建-ftp和scp介绍云海天教程:Ubuntu修改密码及密码复杂度策略设置Linux内核更新包配置Ubuntu环境配置环境Android官方网站:OpenHandsetAlliance源码模式:开发源码内核linux中makefile文件 cdeveloper的第21篇原创技术文章建议横屏Makefile简介Fedora17新特色特色说明桌面环境28bata集成了GNOMELinux嵌入式系统智能手机系统的硬件设计Unix或者类Unix文件系统中的每个文件(或者目录)打开U盘什么文件都看不到小编总结了基于嵌入式Linux的智能手机系统软件的设计与实现
Linux上的防火墙和地址命令使用WinSCP 查看动态库版本查找gcc生成的最新动态库方法 基于命令修改文件的权限命令-ld U盘做系统非常简单的步骤,之后自己去研究! linux系统怎么在文件夹里搜索文件?方法总结及方法 使用Linux交叉编译工具链的交叉工具 两台linux 传文件 STM32笔记第二十五章 如何在Linux上运行.exe文件的唯一方法?-八维教育 CentOS设置IP地址实用技巧及注意事项,轻松掌握正确设置方法 :2管理大部分命令的组成 Android官方网站:OpenHandsetAlliance源码模式:开发源码内核 Python实现列表索引批量删除的5种方法,文中通过示例代码介绍 linux内核获得控制权之后开始干自己的事可以分为五步来完成 Linux系统中的批量管理进程的工具 proc的缩写与内核相关的文件-上海怡健医学 对比Linux和Windows,那macOS和Linux有什么区别? linux内核api 深入探索Linux内核API,你真的了解吗? 嵌入式Linux应用开发完全手册代码2.能写简单汇编代码 Ubuntu系统更改IP地址的简易教程,跟随以下步骤即可搞定! Linux操作系统提权漏洞的解决办法有哪些?-八维教育
标签聚合
文件目录 电脑 命令 linux脚本 命令模式 sudo linux服务器 虚拟机 软件 linux系统
书籍
课程
技术群
技术干货大合集↓
  • 2023年6月 / 4篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.