# 多雲系統基礎概論與實作-多雲系統基礎技術養成
[MS-DOS命令列表](https://zh.wikipedia.org/zh-hk/MS-DOS%E5%91%BD%E4%BB%A4%E5%88%97%E8%A1%A8)
# 落地雲手冊

在我們的電腦裡面透過瀏覽機(必須使用gg chrom)就可以做雲端連線登入到銘傳大學遠端教室網站、他透過這個網址 (https://j509.oc99.org/#/)...裝一台機器叫Apache Guacamole 、裡面有一個RDP的一個服務...讓我們做遠端連線..連到教室的落地雲主機、所以每位同學連線登入進來是對應教室的一台主機,個人的一台實體電腦.
# 檔案及目錄管理指令
**MD(MKDIR)建立目錄**
```
格式: MD [D:] [路徑] 目錄名稱
範例: C:\>MD TEMP 建立一個名為TEMP目錄
-m :設定檔案的權限喔!直接設定,不需要看預設權限 (umask) 的臉色~
-p :幫助你直接將所需要的目錄(包含上層目錄)遞迴( dì huí)建立起來!
```
**CD(CHDIR) 切換目錄或顯示目前的目錄名稱**
```b!
格式: CD [D:] [路徑] 目錄名稱
範例: C:\>CD \ET3\TEMP 轉移工作目錄至根目錄下的ET3目錄下的TEMP目錄
* cd ~ 表示回到自己的家目錄
* cd 沒有加上任何路徑,也還是代表回到自己家目錄的意思喔!
* cd .. 表示去到目前的上層目錄
* cd - 表示回到剛剛的那個目錄
* cd /var/spool/mail 這個就是絕對路徑的寫法!直接指定要去的完整路徑名稱!
* cd ../postfix 這個是相對路徑的寫法,我們由/var/spool/mail 去到/var/spool/postfix 就這樣寫!
```
**DIR 查看目錄及檔案清單**
```
格式: dir [D:] [路徑] 目錄名稱
範例: C:\>dir 查看目前目錄下有那些檔案及目錄
```
**pwd 顯示目前的目錄**
```
RD(RMDIR) 刪除子目錄
格式: RD [D:] [路徑] 目錄名稱
範例: C:\>RD \ET3\TEMP 刪除根目錄下的ET3目錄下的TEMP子目錄,但TEMP 子目錄下必須無其他檔案。
-p :連同『上層』『空的』目錄也一起刪除
```
**PATH 設定、顯示DOS搜尋執行檔的路徑**
```
格式: PATH [D:] 路徑 [[;[D:] 路徑]]
範例: C:\>PATH C:\; C:\DOS; C:\ET3 設定執行檔的搜尋路徑為C:\、C:\DOS與C:\ET3
```
**TREE 列出目錄之樹狀結構**
```
格式: TREE
範例: C:\>TREE 顯示C根目錄下的的目錄之樹狀結構。
```
**TYPE 顯示檔案內容**
```
格式: TYPE [D:][路徑] 檔名
範例: C:\>TYPE 1.TXT 將1.TXT的檔案內容顯示在螢幕上。
```
# **其他重要命令,還有**
HELP 提供 Windows 2000 指令的說明資訊。
◍ CLS 清除螢幕。
◍ COPY 將檔案複製到其它位置。
◍ DEL 刪除檔案。
◍ ECHO 顯示訊息,啟動或關閉 echo 功能。
◍ EXIT 結束 CMD.EXE 程式 (指令直譯器)。
◍ MOVE 移動檔案,或重新命名一個檔案或子目錄。
........
**dxdiag(DirectX Diagnostics):** **是Windows的DirectX診斷工具**,最早作為DirectX6.0的一部分,在1998年8月發佈。Dxdiag可以顯示計算機上DirectX相關的文件,檢查正在運行的文件、輸入設備、以及視頻驅動程序版本。還可以用來診斷和測試 DirectPlay、 DirectSound、 DirectMusic、 DirectDraw 和 Direct3D 的功能。
**看硬體規格,系統資訊,重要的系統管理命令**

**PATH 設定,顯示DOS尋找執行儅的路徑-》環境變數**
> **echo %USERNAME%** 顯示目前的使用者是誰
> **echo %PATH%** 看windows 系統的環境路徑
> **set PATH=%PATH%;C:\Users\rbean\doc** 設定環境變數

> 設定環境變數以後你的檔案放在目錄下的任何應用程式儅就可以在其他目錄可以打開不用換到這上一個目錄才能開也就是環境變數的優點
> 檢查: **echo %PATH%**
* **如果環境變數設定錯:解決**
> 用 set PATH 覆蓋掉

# **使用SSH遠端連線**
## 結構
我們從網路上這台電腦透過遠端連線的方式練到另外一台電腦-->我們用SSH,因為SSH在資料傳輸前他會先做一個加密的動作、(非對程式加密)加密完再傳送而且他可以解密這個人接受訊息、可以避免被駭客卻聽
**登入要有張號跟密碼**
* 格式: SSH 帳號@IP位址
* 範例: ssh rbean@120.96.143.3
## **錯誤,不能登入**

## 透過SSH 使用SCP傳輸檔案
1. **在Windows使用SCP 檔案到另一台Windows電腦**
```
傳輸本機Windows的檔案到其他Windows電腦上
格式:SCP 本地端檔名 帳號@目地端主機IP:/檔案名稱
範例:
cd c:\Users\rbean\Desktop
scp ./a.txt rbean@120.96.143.169:/a.txt
```
```
從別台Windows電腦(稱遠端主機)拷貝傳輸檔案到本機電
腦系統上
格式:SCP 帳號@遠端主機IP:/檔案名稱 /本機電腦檔名
範例:
scp rbean@120.96.143.169:/a.txt ./b.txt
```
2. **在Windows下使用SCP 檔案到Linux電腦**
```
從Windows電腦SCP檔案到Linux電腦的raw目錄下
範例:
cd c:\Users\rbean\Desktop
scp ./a.txt rbean@192.168.66.128:/home/rbean/raw/
scp –p 22 myweb.zip
bigred@192.168.80.150:/home/raw/
```

```
從遠端Linux電腦下載檔案到Windows本機電腦的
datasets目錄下
範例:scp
rbean@192.168.66.1:/home/rbean/raw/6134.csv
/datasets
```
3. **在Linux下使用SCP 檔案到Windows電腦**
```
Linux本機電腦SCP文件到Windows電腦
範例:
scp /home/bigred/myfile
120.96.143.169:C:/Users/rbean/Desktop
```
4. **在Linux系統也可用SCP檔案到另一台Linux電腦**
```
從Linux 系統scp檔案到另一台Linux系統下
範例:
scp /home/tobala/myweb.zip
bigred@192.168.203.131:/home/bigred/myweb.zip
```
- [ ] **ls** 在LINUX系統看檔案目錄
- [ ] **dir** 在WINDOWS系統看檔案目錄
如果有很多檔案要拷貝建議壓縮檔在拷貝 或是 目錄對目錄


--------------
# **認識虛擬化技術**
## 雲端基礎的核心技術

**目前虛擬機器有兩種:**
裸機架構有很多雲端上他是買這種專門的機器建立(建制)虛擬機
Type 1 Hypervlsor 叫裸機架構架構 他功能是專門來支援虛擬化他的技術通常大多是遠端上購買的因爲他又提供客戶大量的去求。
都是雲端上在使用:Google,Amazon,微軟
Type 2 Hypervlsor 叫寄居架構 : 一半企業,直接拿個人電腦來做
本身有四個等級,他是保護還
電腦系統最核心的技術
一般使用者都用Ring3的命令
- 第一代硬體輔助虛擬化> Intel VT-x (AMD-V)
- 第二代硬體輔助虛擬化> MMU (Memory Management Unit), 或稱SLAT (Second Level Address Translation)
- 第三代硬體輔助虛擬化> Intel VT-d ,SR-IOV ,AMD-Vi IOMMU
**補充** 各家廠牌電腦進bios需要按不同的按鍵, #在開機畫面按
ASUS : F2
Acer : F2
HP:F2
聯想: F2
MSI:Delete鍵
技嘉:F2
SONY: F10
## NOTE
1. mv "移動前的位置" "移動後的位置"
2. 按鍵盤上的"Tab"可以把字自動補齊
3. 按鍵盤上的"Ctrl + A"可以跳到最前面
echo $ ? 0 是成功
> sudo chgrp "要更改的檔案群組" "要更改的檔案名稱"
> sudo chown "要更改的檔案擁有者" "要更改的檔案名稱"
**建帳號的時候有兩件事**
1. 第一要先給她一個家目錄(-h /home/帳號),如果沒給-h,系統會自己幫你建在當下的家目錄。
2. 第二是因為以後要跟電腦做溝通,一定要透過終端機,所以我們就可以指定貝殼程式(-s /bin/bash),
-D的用意是在創帳號的時候先不用輸入密碼
$ sudo deluser --remove-home ybean ##刪除使用者
:::success
- 虛擬器的vmx檔案 是虛擬器的設定檔,用來定義虛擬機的規格
- 可調整虛擬器的核心數(CPU)、記憶體(RAM)等等
- 虛擬磁碟機(如果公司跟雲端商承租機器的話,可以上載資料)
- 網卡的位置
:::
**線上免費畫圖**
https://app.diagrams.net/
。。。。。。
**檢查網路**
$ ping 自己的IP
$ ping 對方的IP
$ ping Default Gateway
$ ping www.hinet.net
$ ping 8.8.8.8
# Linux 基礎指令
:::danger
ls : 列出指定目錄下的內容 (包含目錄和檔案)
ls -al : 呈上 (包含隱藏檔以及詳細的目錄、檔案資訊)
pwd : 顯示使用者的當前工作目錄 (絕對路徑)
mkdir : 建立目錄
touch : 建立空檔案
echo : 在螢幕上列印出指定的字串
hostname : 登入的主機名稱
hostname -I : 顯示主機的IP位置
tree : 以樹狀結構列印出目錄結構
rm : 刪除檔案或目錄
cowsay : 生成 ASCII 圖片的程
:::

在 根目錄 沒有權限
$ sudo apt-get upgrade
$ sudo apt-get upgrade
$ sudo apt install net-tools nano unzip cowsay figlet lolcat tree
$ alias reboot='sudo reboot'
$ unalias reboot
$ ls -al
```bash!
-rw------- 1 bigred bigred 133 Oct 6 05:39 .bash_history
-rw-r--r-- 1 bigred bigred 220 Jan 6 2022 .bash_logout
-rw-r--r-- 1 bigred bigred 3771 Jan 6 2022 .bashrc
drwxrwxr-x 5 bigred bigred 4096 Oct 11 05:29 bigboss
drwx------ 2 bigred bigred 4096 Oct 6 03:33 .cache
drwxrwxr-x 4 bigred bigred 4096 Oct 11 03:06 Data
drwxrwxr-x 5 bigred bigred 4096 Oct 11 05:32 menu
-rw-r--r-- 1 bigred bigred 807 Jan 6 2022 .profile
drwx------ 2 bigred bigred 4096 Oct 6 03:32 .ssh
-rw-r--r-- 1 bigred bigred 0 Oct 6 03:38 .sudo_as_admin_successfu
```
$ nano .bashrc
```bash!
....
alias cls='clear'
alias ping='ping -c 4'
alias dir='ls -al'
alias reboot='sudo reboot'
alias bye='sudo poweroff'
alias myip='hostname -I |figlet'
.....
```
$ sudo reboot
$ free -mh 人類看得懂的單位來顯示(h)
編輯圖形
$ echo -e ' (\(\ \n (-.-) \n o_(")(")'
$ touch two.txt
$ nano two.txt
$ cat two.txt
```bash!
(\(\
(-.-)
o_(")(")
```
$ nano myart.sh
```
#!/bin/bash
cat two.txt
```
$ nano myart.sh
```bash!
#!/bin/bash
echo " (\(\ "
echo " (-.-) "
echo ' o_(")(") '
```
$ chmod +x myart.sh
$ ./myart.sh
https://zh.wikipedia.org/zh-tw/Cowsay

安裝套件
$ sudo apt install lolcat
$ sudo apt install cowsay
$ cowsay -f milk "Welcome to Ubuntu Server!"
$ cowsay -f dragon "Welcome to Ubuntu Linux" |lolcat
$ figlet kerneltalks | cowsay -n | lolcat
編輯 Ubuntu Linux 登入畫面圖形檔
$ nano .profile

找圖片的關鍵字:text art
# Linux 的 scp (secure copy)
遠端加密複製檔案與目錄**
在不同 Linux 主機之間使用 scp 指令複製檔案時,遠端的 Linux 主機必須要開啟 SSH 遠端登入服務,否則無法使用 scp 指令複製檔案。
`scp [帳號@來源主機]:來源檔案 [帳號@目的主機]:目的檔案`
> 從linux系統複製文件到windows系統:scp /oracle/a.txt administrator@192.168.1.98:/d:/
>
> 在linux環境下,將windows下的文件複製到linux系統中:scp administrator@192.168.1.98:/d:/test/config.ips /oracle
>
> 請注意:因為windows系統本身不支持ssh協議,所以,要想上面的命令成功執行,必須在windows客戶端安裝ssh for windows的客戶端軟體,比如winsshd,使windows系統支持ssh協議才行。

在Desktop路徑下
要將Linux裡的檔案複製到Windows電腦
scp bigred@192.168.150.15:/home/bigred/檔名/(不打字就是複製原檔名,不然就打想要改的檔案名稱)
rm 檔名.*(點星星代表刪除所有檔名為該檔名的檔案)
Linux互相複製
scp ./檔名 rbean@192.168.150.15:/home/rbean/

# Linux 帳號與群組管理
http://www2.lssh.tp.edu.tw/~hlf/class-1/linux/file_permission.htm
## 使用者家目錄
$ env
```b!
::
PATH=/home/bigred/bin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/hadoop-2.7.1/bin:/opt/hadoop-2.7.1/sbin:/opt/pig-0.15.0/bin:/opt/apache-hive-1.2.1-bin/bin:/opt/hbase-1.0.1.1/bin:/opt/zookeeper-3.4.6/bin
::
LANG=zh_TW.UTF-8
HADOOP_OPTS=-Djava.library.path=/opt/hadoop-2.7.1/lib/native
SHLVL=1
HOME=/home/bigred
::
```
$ echo $USER $HOME $SHELL
`bigred /home/bigred /bin/bash`
$ pwd
`/home/bigred/wk`
:::success
**note**
看終端機
$ tty
看貝殼程式
$ env
看家目錄
$ echo ~
多少人連接
$ who
幾個終端機
$ ls -al /dev
-al 看詳細的資料
dev : device
$ ls -al /dev/pts*
什麼是 .PTMX 文件?
這就像一個虛擬控制台與其他應用程序通信的商店......您打開它並由此創建一個訂單 => 您收到一個引用新創建的串行控制台的文件描述符。 ptmx 只是虛擬串行控制台的提供者 - 而不是實際的串行控制台。

:::
## 建立使用者帳號
建立使用者帳號
$ sudo useradd -m -s /bin/bash rbean
新帳號密碼沒設, 是無法登入
$ sudo passwd rbean
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
檢查使用者帳號
$ ls /home
$ cat /etc/passwd
$ sudo cat /etc/shadow
刪除帳號
$ sudo userdel -r gbean
> -r : 移除 Home 目錄
**useradd 實際動作**
* 在 /etc/passwd 裡面建立一行與帳號相關的資料,包括建立 UID/GID/家目錄等
* 在 /etc/shadow 裡面將此帳號的密碼相關參數填入,但是尚未有密碼;
* 在 /etc/group 裡面加入一個與帳號名稱一模一樣的群組名稱;
* 在 /home 底下建立一個與帳號同名的目錄作為使用者家目錄,且權限為 700
檢視 rbean 的家目錄
$ ls -al /home
```b!
總計 16
drwxr-xr-x 4 root root 4096 11月 3 14:18 .
drwxr-xr-x 24 root root 4096 10月 23 17:35 ..
drwxr-xr-x 29 bigred bigred 4096 11月 3 13:22 bigred
drwxr-xr-x 2 rbean rbean 4096 11月 3 14:18 rbean
```
檢視系統帳號檔
$ grep rbean /etc/passwd
`rbean:x:1001:1001::/home/rbean:/bin/bash`
**在rbean:**
$ echo $USER
$ nano /etc/profile


```
who
who -l -H (list , H 是標題顯示出來)
who -m -H
who -q
```

## 管理帳號
顯示目前登入帳號已加入的群組
$ groups
`bigred adm cdrom sudo dip plugdev lpadmin sambashare libvirtd lxd docker`
## 群組管理
建立群組
$ sudo groupadd gama
刪除群組
$ sudo groupdel gama
修改 sudo 授權檔
$ sudo nano /etc/sudoers (沒有權限,風險度很高)
$ sudo visudo (常用)
## 授權管理帳號
建立 xman01 帳號
$ sudo useradd -m -s /bin/bash xman01
$ sudo passwd xman01
輸入新的 UNIX 密碼:
再次輸入新的 UNIX 密碼:
passwd:密碼已成功地變更
建立 myring 群組
$ sudo groupadd myring
切換使用者
$ su xman01
密碼:
xman01@CVBG:/home/bigred/wk$ cd
xman01@CVBG:~$ sudo passwd root
```b!
[sudo] password for xman01:
xman01 is not in the sudoers file. This incident will be reported.
```
xman01@CVBG:~$ exit
exit
修改 sudo 授權檔
$ sudo nano /etc/sudoers
::
%myring ALL=/usr/bin/passwd [a-zA-Z0-9_-]*, !/usr/bin/passwd root
將 xman01 加入 myring 群組
$ sudo usermod -a -G myring xman01
$ su xman01
密碼:
xman01@CVBG:/home/bigred/wk$ sudo passwd gbean
```
[sudo] password for gbean:
輸入新的 UNIX 密碼:
再次輸入新的 UNIX 密碼:
passwd:密碼已成功地變更
```
xman01@CVBG:/home/bigred/wk$ sudo passwd root
`Sorry, user xman01 is not allowed to execute '/usr/bin/passwd root' as root on localhost.`
`groups`

把xman01使用者從myring移除
```
sudo gpasswd -d xman01 myring
sudo userdel -r gbean
```

###### tags: `VMware + Linux`