開發(fā)環(huán)境搭建
分享一下在windows筆記本上進(jìn)行Linux開發(fā)的一些準(zhǔn)備工作
Linux環(huán)境
做Linux開發(fā)必然需要在本機(jī)上搭建Linux環(huán)境抄课,這里不考慮直接安裝Linux物理機(jī); 主要是考慮運行的流暢度,所以選擇了
VirtualBox + Debian
??使用VirtualBox
安裝debian
虛擬機(jī), 在安裝時不安裝桌面和xfce
, 僅安裝命令行版本即可, 使用ssh訪問
Linux網(wǎng)絡(luò)
如果使用虛擬機(jī)的話, 必然要考慮網(wǎng)絡(luò)的問題, 包括主機(jī)訪問虛擬機(jī)扫皱,虛擬機(jī)訪問外網(wǎng), 所以采用雙網(wǎng)卡的方式
雙網(wǎng)絡(luò): virtualbox
采用雙網(wǎng)卡的方式Host only
+Bridged
兩個網(wǎng)卡.
主機(jī)模式網(wǎng)卡: 用于和物理機(jī)通信在debian
可以設(shè)置為192.168.56.xx
網(wǎng)段的靜態(tài)地址, 物理機(jī)可以固定使用該網(wǎng)址訪問虛擬機(jī).
橋接模式網(wǎng)卡: 用于訪問外網(wǎng), 使用dhcp
模式獲取地址
網(wǎng)絡(luò)地址實例
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:8f:31:49 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe8f:3149/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:90:e6:b6 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.102/24 brd 192.168.1.255 scope global dynamic enp0s8
valid_lft 7170sec preferred_lft 7170sec
inet6 fe80::a00:27ff:fe90:e6b6/64 scope link
valid_lft forever preferred_lft forever
網(wǎng)絡(luò)文件配置:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp0s8
iface enp0s8 inet dhcp
auto enp0s3
iface enp0s3 inet static
address 192.168.56.101
netmask 255.255.255.0
# gateway 192.168.56.1
enp0s3就是僅主機(jī)模式的網(wǎng)卡, enp0s8則是橋接模式的網(wǎng)卡
debian網(wǎng)絡(luò)配置文件地址: /etc/network/interfaces
Linux啟動
virualbox
是可以采用后臺啟動的方式的, 就是說完全不用打開virtualbox
的窗口, 為了方便 我使用了一個ps1
腳本
& 'E:\Program Files\Oracle\VirtualBox\VBoxManage.exe' startvm debian -type headless
sleep 20
ssh admin@192.168.56.101
& 'E:\Program Files\Oracle\VirtualBox\VBoxManage.exe' controlvm debian poweroff
本人并不精通ps1
腳本, 這個腳本寫的也比較隨意. E:\Program Files\Oracle\VirtualBox\
就是virtualbox
的安裝地址
??這個腳本的功能就是:
- 1, 后臺啟動debian;
- 2, ssh鏈接debian ssh
- 3 斷開后關(guān)閉debian.
這個腳本本人放在桌面上, 另外本人安裝了fluent Terminal
軟件, 可以直接在桌面右鍵打開, 然后直接運行該腳本就可以直接連接到虛擬機(jī)上了
SSH工具
免費SSH工具: Xshell治拿、MobaXterm摩泪、putty、finalshell等
付費SSH工具: secureCRT劫谅、XShell商業(yè)版本等
命令行工具+SSH: fluent Terminal见坑、terminus嚷掠、cmder等
共享文件夾
virtualbox
提供了共享文件夾的選項, 不過虛擬機(jī)上額外需要安裝VirtualBox的增強(qiáng)文件, 這個請自行搜索吧
??注意, 安裝增強(qiáng)功能之前記得執(zhí)行安裝"apt install build-essential;apt install linux-headers-`uname -r`" 否則即使成功安裝了增強(qiáng)功能, 可能也沒辦法掛載!
??此外我添加了開啟啟動腳本, 每次啟動自行加載共享文件夾
localhost:~$ systemctl status rc-local
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enab Drop-In: /usr/lib/systemd/system/rc-local.service.d
└─debian.conf
Active: active (exited) since Sat 2019-09-28 16:01:43 CST; 8min ago
Docs: man:systemd-rc-local-generator(8)
Process: 408 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
這是rc.local
服務(wù), debian
是默認(rèn)關(guān)閉的并且也沒有/etc/rc.local文件
不過
#!/bin/sh
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
mount -t vboxsf winsf /home/ad/winsf
exit 0
我們可以自己添加一個/etc/rc.local
腳本, 添加可執(zhí)行權(quán)限, 然后systemctl start rc-local
即可, 這樣開機(jī)就可以自行運行該腳本掛載共享文件夾
額外一些工具推薦
包管理工具
scoop
??我主要用于安裝git
,gcc
,make
,lua
等, 我僅用來管理開發(fā)相關(guān)軟件, 非常好用
集成IDE
因為不管什么都需要加載虛擬機(jī)然后運行也很麻煩, 于是我使用了
CLion
??對于一些程序, 我也會直接在windows上直接編譯直接運行, 且可以學(xué)習(xí)一下cmake
編輯器
??編輯代碼和markdown我都是使用的sublime
, typora
可以用來編輯markdown, 但是文件過大就會卡頓
git工具
sourcetree: 免費, 頁面也還可以
gitkraken: 免費, 頁面也還可以; 不過使用的是electron, 程序比較大
此外: smartgit、tortoisegit