在線(xiàn)運(yùn)行 Linux,強(qiáng)的離譜!
大家好,我是杰哥。
對(duì)于 Linux 初學(xué)者來(lái)說(shuō),當(dāng)接觸 Linux 操作系統(tǒng)時(shí),可通過(guò)虛擬機(jī)、云主機(jī)或企業(yè)服務(wù)器的環(huán)境學(xué)習(xí) Linux,有朋友可能會(huì)問(wèn)了,那有沒(méi)有無(wú)需安裝即可運(yùn)行的操作系統(tǒng)呢?
正好,我最近發(fā)現(xiàn)了一個(gè)非常不錯(cuò)的網(wǎng)站 —— DistroTest。
1、DistroTest
這個(gè)網(wǎng)站可以讓你免費(fèi)使用在線(xiàn)版的 Linux 和 Unix 操作系統(tǒng),無(wú)需在本地進(jìn)行安裝。
你只需找到自己需要的操作系統(tǒng)版本即可在線(xiàn)進(jìn)行測(cè)試,而且操作系統(tǒng)沒(méi)任何限制,可使用系統(tǒng)的所有功能,包括卸載安裝軟件、測(cè)試安裝程序、甚至刪除或格式化硬盤(pán)、刪除系統(tǒng)文件等;
我這里試用的是 Archlinux,點(diǎn)擊start按鈕即可啟動(dòng)所選的操作系統(tǒng)。
此在線(xiàn)版操作系統(tǒng)將會(huì)在新瀏覽器窗口中進(jìn)行啟動(dòng),當(dāng)彈出如下界面時(shí),會(huì)有一些提示,例如:停止系統(tǒng)、重置系統(tǒng)、root 用戶(hù)密碼和普通用戶(hù)密碼。點(diǎn)擊Open VNC-Viewer(allow POP-UPs!)按鈕即可進(jìn)入到系統(tǒng)登錄界面。
這里可以通過(guò)內(nèi)建的 noVNC viewer 訪問(wèn),但需要在瀏覽器中啟用 / 允許 DistroTest 網(wǎng)站的彈出窗口,否則將無(wú)法看到彈出的 noVNC 窗口。
如果你不想啟用 DistroTest 頁(yè)面的彈出窗口,可在本地系統(tǒng)安裝任意 VNC 客戶(hù)端,VNC 登錄信息同樣也是可以在同一頁(yè)面中找到的。
這樣最終就進(jìn)入到Arch Linux在線(xiàn)版的操作系統(tǒng)了。
若每次關(guān)機(jī)后,系統(tǒng)將會(huì)恢復(fù)到默認(rèn)配置,當(dāng)試用結(jié)束后,回到 DistroTest 頁(yè)面將會(huì)停止試用的操作系統(tǒng)。
DistroTest 地址:https://distrotest.net/
據(jù) 2021.12.29 官方統(tǒng)計(jì)數(shù)據(jù)顯示,DistroTest 提供了 373 種操作系統(tǒng)的 762 個(gè)版本。
講真,這么多年我所接觸的 Linux,但在這個(gè)網(wǎng)站里所列出的有一些從未聽(tīng)說(shuō)過(guò)的發(fā)行版,甚至都不知道 Linux 操作系統(tǒng)原來(lái)有如此之多的版本。
除此之外,也包括部分非 Linux 的操作系統(tǒng),比如:FreeBSD、FreeDOS、Gparted(磁盤(pán)分區(qū)工具)簡(jiǎn)直是刷新了我對(duì) Linux 的認(rèn)知。
2、OnWorks
OnWorks 是一個(gè)免費(fèi)的托管運(yùn)行 Linux Mint 在線(xiàn)服務(wù)器,需要在 Chrome 瀏覽器中安裝 Linux Mint 在線(xiàn)服務(wù)器插件,是可以基于多種操作系統(tǒng),例如:CentOS、Fedora、Ubuntu 和 Debian 等等,是一個(gè)多操作系統(tǒng)平臺(tái),可以從任何地方運(yùn)行和測(cè)試任何類(lèi)型的操作系統(tǒng)。簡(jiǎn)單、功能齊全、輕便且易使用。
OnWorks 地址:https://www.onworks.net/
插件下載地址:
https://chrome.google.com/webstore/detail/linux-mint-online-server/ohcdfkmeiinmedcnjfdpdmffmohlomjd
3、Webminal
Webminal 是一款免費(fèi)的 GNU/Linux 在線(xiàn)終端和編程 IDE,為用戶(hù)提供了一個(gè)獨(dú)特的免費(fèi)在線(xiàn)學(xué)習(xí)平臺(tái),可以在其中了解 Linux、練習(xí) Linux 以及與其他 Linux 用戶(hù)進(jìn)行互動(dòng)。
使用 Webminal,可以練習(xí) Linux 命令、編寫(xiě) Bash 腳本、創(chuàng)建和訪問(wèn) MySQL 表、學(xué)習(xí) Python、C、Ruby、Java、Rust 編程以及使用虛擬平臺(tái)執(zhí)行基本的 root 用戶(hù)任務(wù)。借助“Webminal Play”功能,還可以觀看視頻(而不是閱讀文檔)并進(jìn)行練習(xí)。
Webminal 的功能:
- 在線(xiàn) Linux/bash 終端,無(wú)需安裝;
- 練習(xí) Linux 命令,包括文件系統(tǒng)、文件管理、在 bash/awk/sed 和 MySQL 中編寫(xiě)腳本;
- 可獲得 100MB 存儲(chǔ)空間;
- 最多可創(chuàng)建 1000 個(gè)文件;
- 可以創(chuàng)建的最大文件大小為 1MB;
- 可以與社區(qū)成員共享文件并讓他們使用你的腳本/程序驗(yàn)證/調(diào)試問(wèn)題等;
- 一個(gè)進(jìn)程可以打開(kāi)的最大文件數(shù)為 15;
- 最多可同時(shí)運(yùn)行 10 個(gè)進(jìn)程;
- 不能登錄多次,除非退出;
- 創(chuàng)建屬于自己的群組并在群組成員之間共享文件;
除此之外,Webminal 官方也明確指出了 MySQL 的特性,如下:
MySQL 的特性:
- 最多可創(chuàng)建 4 個(gè)表;
- 數(shù)據(jù)庫(kù)大小應(yīng)該小于 200KB;
- 每小時(shí)最多可執(zhí)行 200 個(gè)查詢(xún);
- 每小時(shí)最多可執(zhí)行 100 個(gè)更新查詢(xún);
- 只能有一個(gè) MySQL 連接;
- 不允許訪問(wèn)其他用戶(hù)的數(shù)據(jù)庫(kù);
Webminal 地址:https://www.webminal.org/terminal/#
4、Tutorials Point Coding Ground
Tutorials Point Coding Ground 這個(gè)在線(xiàn)工具是開(kāi)發(fā)工程師們編碼、編輯、運(yùn)行和共享的一個(gè)編碼基礎(chǔ)平臺(tái),它支持多語(yǔ)言、代碼高亮、新建文件 / 項(xiàng)目、下載文件 / 項(xiàng)目、自定義設(shè)置(例如:主題顏色)、錯(cuò)誤提示等功能。
主要包括:
- 數(shù)據(jù)科學(xué)技術(shù):Python 3、R、Matplotlib、NumPy、Matlab、SciPy 等;
- 編程語(yǔ)言:C、C++、C#、Java、PHP、Perl、Ruby、Scala、Swift、VB.net 等;
- Web 開(kāi)發(fā)技術(shù):CSS、HTML、Javascript、Jquery、Typescript、VueJS 等;
- 文件編輯器:Latex、Markdown、Tex 等;
- 在線(xiàn)編譯器和解釋器:AWK、Bash Shell、GO、Node.JS 等;
當(dāng)然了,也少不了我們?cè)诰€(xiàn)運(yùn)行 Bash Shell 的環(huán)境,我通過(guò)它寫(xiě)了個(gè)乘法口訣的腳本程序。
代碼如下:
- #!/bin/bash
- # Filename:My multiplication.sh
- # Date:2021/12/30
- # 公眾號(hào):杰哥的IT之旅
- # Name:JackTian
- # WeChat:Hc220088
- # Description:The multiplication formula program is in bash shell
- sum=0
- for ((a=1;a<=9;a++))
- do
- for ((b=1;b<=$a;b++))
- do
- sum=$[$a*$b]
- echo -ne “$a*$b=$sum\”
- done
- echo
- done
輸出結(jié)果:
- “1*1=1”
- “2*1=2”“2*2=4”
- “3*1=3”“3*2=6”“3*3=9”
- “4*1=4”“4*2=8”“4*3=12”“4*4=16”
- “5*1=5”“5*2=10”“5*3=15”“5*4=20”“5*5=25”
- “6*1=6”“6*2=12”“6*3=18”“6*4=24”“6*5=30”“6*6=36”
- “7*1=7”“7*2=14”“7*3=21”“7*4=28”“7*5=35”“7*6=42”“7*7=49”
- “8*1=8”“8*2=16”“8*3=24”“8*4=32”“8*5=40”“8*6=48”“8*7=56”“8*8=64”
- “9*1=9”“9*2=18”“9*3=27”“9*4=36”“9*5=45”“9*6=54”“9*7=63”“9*8=72”“9*9=81”
Tutorials Point Coding Ground 地址:
https://www.tutorialspoint.com/execute_bash_online.php
5、jsuix
JS/UIX 終端在 Web 瀏覽器上運(yùn)行其實(shí)是與 UNIX 的操作系統(tǒng)非常相似,完全基于 JavaScript 編寫(xiě),它包括虛擬機(jī)、Shell、虛擬文件系統(tǒng)、進(jìn)程管理、是帶有屏幕和鍵盤(pán)映射的終端。
點(diǎn)擊open terminal即可打開(kāi)終端。
該 JS/UIX 終端的鍵盤(pán)是接受 US-ASCII 字符集,如果你希望使用屏幕鍵盤(pán)來(lái)進(jìn)行輸入命令,可以點(diǎn)擊終端左下角的顯示鍵盤(pán)按鈕來(lái)進(jìn)行操作。
備用鍵盤(pán)映射(可能取決于系統(tǒng)和瀏覽器):
- CTRL + SHIFT + [KEYPAD]<4> 為左
- CTRL + SHIFT + [KEYPAD]<6> 向右
- CTRL + SHIFT + [KEYPAD]<8> 向上
- CTRL + SHIFT + [KEYPAD]<2> 向下
- CTRL + SHIFT + [KEYPAD]<0> 用于退格
JS/UIX 終端是不需要任何插件來(lái)打開(kāi)終端的,如果你要在 JS/UIX 終端上練習(xí)命令,可以通過(guò)guest 訪客身份登錄,無(wú)需輸入密碼,回車(chē)即可進(jìn)行使用。
JS/UIX 地址:https://www.masswerk.at/jsuix/index.html
6、jslinux
jslinux 是基于 JavaScript 語(yǔ)言編寫(xiě)的 Linux 模擬器包,可以在 Web 瀏覽器中運(yùn)行 Linux。
提供多種系統(tǒng)選擇,你也可以在上面編譯運(yùn)行代碼,不過(guò)整體感覺(jué)不是很流暢。
JSLinux 地址:https://bellard.org/jslinux/
7、Copy.sh
Copy.sh 是一個(gè)高效的在線(xiàn) Linux 終端,能夠仿真其他操作系統(tǒng),包括:Arch Linux、FreeDOS、FreeBSD、OpenBSD、Windows 2000、Windows 98 等;
首次加載仿真器時(shí),可以選擇所需的操作系統(tǒng),并根據(jù)自己的要求進(jìn)行定制,同時(shí)還支持多種發(fā)行版,想體驗(yàn)不同操作系統(tǒng)的可以試試。
Copy.sh:https://copy.sh/v86/
8、jor1k
jor1k 是一個(gè)用運(yùn)行 Linux 的 JavaScript 編寫(xiě)的 OpenRISC 1000 模擬器,幾乎可以在任何現(xiàn)代 Web 瀏覽器中運(yùn)行。
jor1k 地址:http://s-macke.github.io/jor1k/
9、linuxcontainers
linuxcontainers 是 LXD、LXC、LXCFS 和 distrobuilder 背后的項(xiàng)目,目的是為 Linux 容器技術(shù)的開(kāi)發(fā)提供一個(gè)發(fā)行版的環(huán)境并提供運(yùn)行完整 Linux 系統(tǒng)的容器和虛擬機(jī),可以運(yùn)行一臺(tái)演示服務(wù)器來(lái)充當(dāng)運(yùn)行 Linux 終端的 Shell 環(huán)境。
雖然 VM 提供了一個(gè)完整的環(huán)境,系統(tǒng)容器所提供的環(huán)境與 VM 的環(huán)境盡可能接近,但沒(méi)有運(yùn)行單獨(dú)的內(nèi)核和模擬所有硬件所帶來(lái)的消耗。
演示服務(wù)器環(huán)境有以下限制:
- 限時(shí) 30 分鐘
- 每個(gè) IP 限制 4 個(gè)會(huì)話(huà)
- 2 個(gè)共享 CPU 內(nèi)核
- 512MB 專(zhuān)用內(nèi)存
- 5GB 專(zhuān)用磁盤(pán)空間
- 連接受限的僅 IPv6 網(wǎng)絡(luò)連接
LXD 是下一代系統(tǒng)容器和虛擬機(jī)管理器,它主要是圍繞在容器或虛擬機(jī)內(nèi)運(yùn)行的完整 Linux 系統(tǒng)提供統(tǒng)一的用戶(hù)體驗(yàn)。
LXD 是基于映像的,并為大量 Linux 發(fā)行版提供映像。為各種用例提供了靈活性和可擴(kuò)展性,支持不同的存儲(chǔ)后端和網(wǎng)絡(luò)類(lèi)型,并且可以選擇安裝在從單個(gè)筆記本電腦或云實(shí)例到完整服務(wù)器機(jī)架的硬件上。
使用 LXD 時(shí),可以使用簡(jiǎn)單的命令行工具、直接通過(guò) REST API 或使用第三方工具集成來(lái)管理您的實(shí)例(容器和 VM)。LXD 也為本地和遠(yuǎn)程訪問(wèn)實(shí)現(xiàn)了一個(gè) REST API。
linuxcontainers 地址:
https://linuxcontainers.org/lxd/try-it/
10、CodeAnywhere
Codeanywhere 是一個(gè)即服務(wù)為最終用戶(hù)提供跨平臺(tái)的 Cloud IDE,可以在幾秒鐘內(nèi)部署開(kāi)發(fā)環(huán)境來(lái)節(jié)省時(shí)間,能夠?qū)?xiàng)目進(jìn)行編碼、學(xué)習(xí)、構(gòu)建和協(xié)作。要運(yùn)行免費(fèi)的 Linux 虛擬機(jī),首先需要在網(wǎng)站上注冊(cè),然后訂閱他們的免費(fèi)計(jì)劃。
注冊(cè)后,繼續(xù)創(chuàng)建新連接,并使用您選擇的操作系統(tǒng)設(shè)置容器。完成所有這些步驟后,您將擁有一個(gè)可靠且免費(fèi)的 Linux 控制臺(tái)。
CodeAnywhere 地址:https://codeanywhere.com/
11、cocalc
cocalc 是一個(gè)不會(huì)弄亂你自己電腦的在線(xiàn) Linux 終端,提供了完整的、協(xié)作的、實(shí)時(shí)同步的 Linux 命令行終端。
cocalc 的好處:
- 不需要安裝和維護(hù)任何軟件;
- 支持多人實(shí)時(shí)協(xié)作使用同一個(gè)終端;
- 可編輯和運(yùn)行 shell 腳本文件;
- 使用終端可以與旁邊的聊天功能與他人討論相關(guān)命令;
- 自動(dòng)備份可確保您的文件安全;
- 可以在本地桌面和在線(xiàn)終端之間進(jìn)行復(fù)制和粘貼;
cocalc 的特征:
- 學(xué)習(xí) Bash 腳本;
- 了解如何使用 Linux 命令行;
- 運(yùn)行用 Python、R、PHP、Ruby、Go、Perl、Nodejs 等編寫(xiě)的腳本;
- 編譯用 C/C++、Java、Rust、Assembly、Fortan、Julia、Zig、Haskell 等編寫(xiě)的程序;
- 處理和存儲(chǔ)數(shù)據(jù)文件;
- 使用圖形 X11 應(yīng)用程序;
cocalc 地址:https://cocalc.com/features/terminal
12、linuxzoo
linuxzoo 是使用具有 root 訪問(wèn)權(quán)限的遠(yuǎn)程私有 Linux 機(jī)器訪問(wèn)安全的學(xué)習(xí) Linux。
linuxzoo 地址:https://linuxzoo.net/
13、jdoodle
jdoodle 是一個(gè)在線(xiàn)編譯器和編輯器,支持 76 多種語(yǔ)言,具有多個(gè)版本和 2 個(gè)數(shù)據(jù)庫(kù)。
同樣也有專(zhuān)門(mén)用來(lái)練習(xí) Shell 編程的在線(xiàn)環(huán)境。
jdoodle Bash shell 地址:
https://www.jdoodle.com/test-bash-shell-script-online/
14、paiza.io
paiza.IO 是一個(gè)在線(xiàn)編輯器和編譯器,可以在其中立即編寫(xiě)和運(yùn)行代碼。
支持多種語(yǔ)言,可以用于學(xué)習(xí)編程、抓取網(wǎng)站、編寫(xiě)批處理等;
同樣也有專(zhuān)門(mén)用來(lái)練習(xí) Shell 編程的在線(xiàn)環(huán)境。
paiza 地址:
https://paiza.io/projects/s0poMEX88nNR_Pd7IByIFQ?language=bash
15、Shellcheck
Shellcheck 是一個(gè)靜態(tài) Bash 語(yǔ)法檢查工具,它可以在多種場(chǎng)景下使用,包括在線(xiàn)使用、命令行檢查、編輯器配置。
當(dāng)你在 Linux / Unix 平臺(tái)下編寫(xiě) Bash Shell 編譯大量代碼的時(shí)候,常常會(huì)花費(fèi)大量的時(shí)間,然而這時(shí)你可以通過(guò) Shellcheck 提前知道你所寫(xiě)腳本的語(yǔ)法問(wèn)題,同樣也會(huì)給出你相關(guān)糾錯(cuò)提示。
除了在線(xiàn)使用之外,還可以通過(guò)命令行進(jìn)行檢查,支持基于 Debian、Arch Linux、EPEL、Fedora、FreeBSD、MacOS、OpenSUSE、Windows 等多個(gè)操作系統(tǒng)上進(jìn)行安裝檢查;
對(duì)于 Shellcheck 命令行的安裝方式,可以參考 Shellcheck 的 GitHub 庫(kù)。
腳本案例:
- #!/bin/bash
- DIRPATH='/tmp/jstack'
- CURRENT_TIME=$(date +'%F'-'%H:%M:%S')
- if [ ! -d "$DIRPATH" ];then
- mkdir "$DIRPATH"
- else
- rm -rf "$DIRPATH"/*
- fi
- cd "$DIRPATH"
- while true
- do
- sleep 3600
- # 這里需要將inceptor改后自己的java進(jìn)程名稱(chēng)
- pid=$(ps -ef | grep 'inceptor' | grep -v grep | awk '{print $2}')
- jstack $pid >> "jstack_${CURRENT_TIME}"
- dir_count=$(ls | wc -l)
- if [ "$dir_count" -gt 10 ];then
- rm -f $(ls -tr | head -1)
- fi
- done
Shellcheck 檢查輸出結(jié)果:
- $ shellcheck myscript
- Line 10:
- rm -rf "$DIRPATH"/*
- ^-- SC2115 (warning): Use "${var:?}" to ensure this never expands to /* .
- Line 13:
- cd "$DIRPATH"
- ^-- SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
- Did you mean: (apply this, apply all SC2164)
- cd "$DIRPATH" || exit
- Line 19:
- pid=$(ps -ef | grep 'inceptor' | grep -v grep | awk '{print $2}')
- ^-- SC2009 (info): Consider using pgrep instead of grepping ps output.
- Line 20:
- jstack $pid >> "jstack_${CURRENT_TIME}"
- ^-- SC2086 (info): Double quote to prevent globbing and word splitting.
- Did you mean: (apply this, apply all SC2086)
- jstack "$pid" >> "jstack_${CURRENT_TIME}"
- Line 21:
- dir_count=$(ls | wc -l)
- ^-- SC2012 (info): Use find instead of ls to better handle non-alphanumeric filenames.
- Line 23:
- rm -f $(ls -tr | head -1)
- ^-- SC2046 (warning): Quote this to prevent word splitting.
- ^-- SC2012 (info): Use find instead of ls to better handle non-alphanumeric filenames.
- $
Shellcheck 在線(xiàn)使用地址:
https://www.shellcheck.net/#
Shellcheck GitHub 地址:
https://github.com/koalaman/shellcheck
最后
以上就是我所列出的一些可以幫助您通過(guò) Web 瀏覽器在線(xiàn)運(yùn)行 Linux 的網(wǎng)站以及一些在線(xiàn)編譯器,雖然說(shuō)大大減少了我們通過(guò) VMware Workstation 安裝虛擬機(jī)的時(shí)間,各有利弊,但是上述有些網(wǎng)站是無(wú)需注冊(cè)的,可直接通過(guò) root 用戶(hù)在線(xiàn)運(yùn)行,可用的 Linux 命令也很多。
相反,有些網(wǎng)站是需要注冊(cè)的,但是受權(quán)限限制,可能無(wú)法使用 root 用戶(hù),可執(zhí)行的 Linux 命令也相對(duì)會(huì)少很多。但總體體驗(yàn)一番,有些在線(xiàn)運(yùn)行還是非常順暢的,跟 VMware Workstation 以及實(shí)際場(chǎng)景的服務(wù)器環(huán)境還是有存在很大差別的。
介紹了這么多,您會(huì)選擇以上哪一個(gè)?誰(shuí)能想到居然還可以通過(guò) Web 瀏覽器上運(yùn)行 Linux 系統(tǒng)?誰(shuí)又能想到通過(guò) Web 瀏覽器實(shí)現(xiàn)在線(xiàn)運(yùn)行 Linux 操作系統(tǒng)環(huán)境如此的簡(jiǎn)單?
盡管如此,強(qiáng)烈建議在瀏覽器上打開(kāi)任何網(wǎng)站之前檢查系統(tǒng)上是否存在任何其他惡意軟件或病毒。一個(gè)有存在問(wèn)題或有病毒的瀏覽器可能會(huì)破壞你學(xué)習(xí) Linux 系統(tǒng)的流暢體驗(yàn)。
最后的最后,除上述介紹的在線(xiàn)運(yùn)行 Linux 以及在線(xiàn)編譯器之外,你平時(shí)還在用哪些?