標籤

BAT (38) shell (34) Virtual Machine (33) Xubuntu (29) acfs (25) PHP (24) CentOS (21) Virtul Box (20) 編輯器 (17) 資料庫 (15) lubuntu (13) windows (13) CPP (12) ubuntu (12) chrome (11) laravel (10) Docker (9) Python (9) 5A88 (7) VMware (6) 資料結構 (6) Javascript (5) Node (5) Proxmox VE (5) 公告系統 (5) 程式積木 (5) Android Studio (4) ANN (3) OB2D2016x64 (3) Xoops (3) clonezilla (3) samba (3) 公文 (3) 其他 (3) 硬體 (3) API (2) Android (2) AppInvent2 (2) Html (2) Hyper-V (2) Nas (2) botnet (2) mbot (2) swift (2) wordpress (2) 樣板 (2) 防火牆 (2) AD的應用 (1) Ansible (1) Arduino (1) CSS (1) GitLab (1) HA Proxy (1) LegoEV3 (1) PowerShell (1) Scratch (1) VM (1) XenServer (1) kotlin (1) linuxmint (1) lxc (1)

2020年4月27日 星期一

Xubuntu 16.04 的 sources.list 用shell來更新或新增台灣下載伺服器

1.備分sources.list
$sudo cp /etc/apt/sources.list /etc/apt/sources.list.bk

2.到Official Archive Mirrors for Ubuntu 查詢台灣下載伺服器
(1)進入網站後,按下[Ctrl+F]->輸入[Taiwan]->按下[Enter],即可搜尋。
(2)選擇一個連結,進去後,選擇ubuntu的版本,如下圖所示。

(3)可得到更新的下載伺服器
其內容為:
deb http://free.nchc.org.tw/ubuntu/ xenial main
deb-src http://free.nchc.org.tw/ubuntu/ xenial main

(4)現在依序將內容整理如下:
deb http://free.nchc.org.tw/ubuntu/ xenial main
deb-src http://free.nchc.org.tw/ubuntu/ xenial main
deb http://ftp.ubuntu-tw.net/ubuntu/ xenial main
deb-src http://ftp.ubuntu-tw.net/ubuntu/ xenial main
deb http://ftp.tku.edu.tw/ubuntu/ xenial main
deb-src http://ftp.tku.edu.tw/ubuntu/ xenial main
deb http://ftp.yzu.edu.tw/ubuntu/ xenial main
deb-src http://ftp.yzu.edu.tw/ubuntu/ xenial main
deb http://mirror.nwlab.tk/ubuntu/ xenial main
deb-src http://mirror.nwlab.tk/ubuntu/ xenial main
deb http://ftp.ntou.edu.tw/ubuntu/ xenial main
deb-src http://ftp.ntou.edu.tw/ubuntu/ xenial main
deb http://ubuntu.cs.nctu.edu.tw/ubuntu/ xenial main
deb-src http://ubuntu.cs.nctu.edu.tw/ubuntu/ xenial main
deb http://ubuntu.stu.edu.tw/ubuntu/ xenial main
deb-src http://ubuntu.stu.edu.tw/ubuntu/ xenial main
deb http://mirror01.idc.hinet.net/ubuntu/ xenial main
deb-src http://mirror01.idc.hinet.net/ubuntu/ xenial main

(5)將其寫成shell
檔名:SourcesListUpdate.sh
內容為:
#!/bin/bash
cp /etc/apt/sources.list /etc/apt/sources.list.bk
echo "                                                                           " >> /etc/apt/sources.list
echo "deb http://free.nchc.org.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://free.nchc.org.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://ftp.ubuntu-tw.net/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://ftp.ubuntu-tw.net/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://ftp.tku.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://ftp.tku.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://ftp.yzu.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://ftp.yzu.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://mirror.nwlab.tk/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://mirror.nwlab.tk/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://ftp.ntou.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://ftp.ntou.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://ubuntu.cs.nctu.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://ubuntu.cs.nctu.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://ubuntu.stu.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://ubuntu.stu.edu.tw/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb http://mirror01.idc.hinet.net/ubuntu/ xenial main" >> /etc/apt/sources.list
echo "deb-src http://mirror01.idc.hinet.net/ubuntu/ xenial main" >> /etc/apt/sources.list
apt-get update -y

資料來源:
1.Official Archive Mirrors for Ubuntu

2020年4月26日 星期日

校務系統cloudschool API相關資料及實作與程式碼的關聯

一、實作
1.建立API
(1)進入彰化縣CloudSchool,系統管理->模組管理->API及憑證設定
(2)新增學校伺服器API
    可以得到用戶端ID用戶端密碼
2.Rest API 測試工具
3.測試方式,以 學期資料 api 為例 https://api.chc.edu.tw/semester-data
與程式碼的關聯

   圖中的Access Token Request Endpoint為 https://api.chc.edu.tw/oauth?authorize
               Client ID 為 用戶端ID
               Client Secret 為 用戶端密碼
與程式碼的關聯
// API URL

$api_url = 'https://api.chc.edu.tw';
// 設定擷取的URL網址

curl_setopt($ch, CURLOPT_URL, $api_url."/oauth?authorize");
//設定CURLOPT_POST為TRUE或1,表示要用POST傳遞
curl_setopt($ch, CURLOPT_POST, TRUE);
//將curl_exec()獲得的訊息以文件流的形式返回,而不是直接輸出
////將結果回傳成字串
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//CURLOPT_POSTFIELDS後面則是要傳接的POST資料
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'client_credentials'
));

   圖中按下1,2就會出現-> 3.按下 HEADERS
與程式碼的關聯
//curl_exec($ch)為執行
$data = curl_exec($ch);
//json_decode($data) 將json轉成object,測試語法var_dump(json_decode($data)); 
//json_decode($data,true) 將json轉成array,測試語法var_dump(json_decode($data,true));


$data = json_decode($data);
//取 access token

$access_token = $data->access_token;
  圖中按下1.,即可取的資料,如下圖
與程式碼的關聯
//執行API
$authorization = "Authorization: Bearer ".$access_token;
// 設定擷取的URL網址
curl_setopt($ch, CURLOPT_URL, $api_url.$api_name);
//設定自定義http標頭set custom HTTP headers
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization )); // **Inject Token into Header**
//自定義字串的請求 custom string for request
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
//將curl_exec()獲得的訊息以文件流的形式返回,而不是直接輸出
//將結果回傳成字串
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//是否抓取轉址
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   
與程式碼的關聯˙\
//curl_exec($ch)為執行
$result = curl_exec($ch);
//json_decode($data) 將json轉成object,測試語法var_dump(json_decode($data)); 
//json_decode($data,true) 將json轉成array,測試語法var_dump(json_decode($data,true));
$data = json_decode($result);

// 關閉 CURL 連線
curl_close($ch); 



OAuthApiTest.php

<?php
/**
  同步遠端學校學期資料
**/

// 更改為學校的 API ID
$client_id = 'XXXXXXXXXXXXXXXXXXXXX';
// 更改為學校的 API 密碼
$client_secret = 'XXXXXXXXXXXXXXXXX';

// =================================================

// API NAME
$api_name = '/semester-data';
// API URL
$api_url = 'https://api.chc.edu.tw';
// 建立 CURL 連線
$ch = curl_init();

// 取 access token
// 設定擷取的URL網址
curl_setopt($ch, CURLOPT_URL, $api_url."/oauth?authorize");

//設定CURLOPT_POST為TRUE或1,表示要用POST傳遞
curl_setopt($ch, CURLOPT_POST, TRUE);
// the variable
//將curl_exec()獲得的訊息以文件流的形式返回,而不是直接輸出
////將結果回傳成字串
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//CURLOPT_POSTFIELDS後面則是要傳接的POST資料
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'client_credentials'
));
//curl_exec($ch)為執行
$data = curl_exec($ch);
//json_decode($data) 將json轉成object,測試語法var_dump(json_decode($data)); 
//json_decode($data,true) 將json轉成array,測試語法var_dump(json_decode($data,true));
$data = json_decode($data);
//取 access token
$access_token = $data->access_token;

//執行API
$authorization = "Authorization: Bearer ".$access_token;
// 設定擷取的URL網址
curl_setopt($ch, CURLOPT_URL, $api_url.$api_name);
//設定自定義http標頭set custom HTTP headers
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization )); // **Inject Token into Header**
//自定義字串的請求 custom string for request
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
//將curl_exec()獲得的訊息以文件流的形式返回,而不是直接輸出
//將結果回傳成字串
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//是否抓取轉址
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
//curl_exec($ch)為執行
$result = curl_exec($ch);
//json_decode($data) 將json轉成object,測試語法var_dump(json_decode($data)); 
//json_decode($data,true) 將json轉成array,測試語法var_dump(json_decode($data,true));
$data = json_decode($result);

// 關閉 CURL 連線
curl_close($ch); 

print_r($data);

?>
資料來源:
1.臺中市政府教育局校端 API 應用手冊 (1.0.0)
2.OAuth2 API
3.OAuth2 API
4.臺中市雲端校務系統與Windows AD帳號整合(7)
5.雲端校務系統與OPENLDAP帳號整合(3)
6.將 Cloud School 學期資料同步至校內伺服器資料庫
7.如何實作 Cloudschool OAUth2 認證?
8.[程式][PHP] 如何使用PHP CURL,基礎教學
9.[php]json_decode 將json轉成陣列或object
10.[PHP]curl抓取網頁

2020年4月21日 星期二

利用shell安裝Visual Studio Code與編輯Node.js套件與設定

一、指令安裝
1.下載 Visual Studio Code 指令
$sudo wget https://go.microsoft.com/fwlink/?LinkID=760868

2.更名為code.deb 指令
$sudo mv index.html\?LinkID\=760868 code.deb

3.安裝 Visual Studio Code 指令
$sudo apt install ./code.deb
 或是
$sudo dpkg -i code.deb
$sudo apt-get install -f # Install dependencies

缺點:https://go.microsoft.com/fwlink/?LinkID=760868 目前是官方網站的網址。當官網網址變更後,就無法使用了

二、官方網站的指令下載
1.需先安裝 curl
$sudo apt-get install curl

2.官方網站的指令
$curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
$sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
$sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
$sudo apt-get install apt-transport-https
$sudo apt-get update
$sudo apt-get install code

三、Shell 安裝
1.檔名:VSCodeInstall.sh
內容:
#!/bin/bash
wget https://go.microsoft.com/fwlink/?LinkID=760868
mv index.html\?LinkID\=760868 code.deb
apt install ./code.deb

或是
內容:
#!/bin/bash
apt-get update
apt-get install curl
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/
sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
apt-get install apt-transport-https
apt-get update
apt-get install code

四、使用VSCodeInstall.sh
1.建立VSCodeInstall.sh
$sudo pico VSCodeInstall.sh
將上述複製貼上

2.變更VSCodeInstall.sh權限
$sudo chmod 755 VSCodeInstall.sh 

3.執行
$sudo sh VSCodeInstall.sh

五、變更 Visual Studio Code設定檔settings.json
(1)指令變更
$sudo pico ~/.config/Code/User/settings.json
其內容為:
{
    "editor.fontSize": 20, // 字體大小
    "editor.tabSize": 2, // 一個tab的空白間隔
    "files.autoSave": "afterDelay", // 自動儲存檔案
    "editor.formatOnPaste": true, // 貼上程式碼時會自動幫你排版
    "files.insertFinalNewline": true, // 儲存檔案時在其結尾插入最後一個新行
    //Always include all words from the current document.
    "javascript.suggest.alwaysAllWords": true,
    //Complete functions with their parameter signature.
    "javascript.suggest.useCodeSnippetsOnMethodSuggest": true
}

(2)Shell 變更
檔名:VSCodeUserSetting.sh
內容:
#!/bin/bash
echo '{' >~/.config/Code/User/settings.json
echo '    "editor.fontSize": 20,' >>~/.config/Code/User/settings.json
echo '    "editor.tabSize": 2,' >>~/.config/Code/User/settings.json
echo '    "files.autoSave": "afterDelay",' >>~/.config/Code/User/settings.json
echo '    "editor.formatOnPaste": true,' >>~/.config/Code/User/settings.json
echo '    "files.insertFinalNewline": true,' >>~/.config/Code/User/settings.json
echo '    "javascript.suggest.alwaysAllWords": true,' >>~/.config/Code/User/settings.json
echo '    "javascript.suggest.useCodeSnippetsOnMethodSuggest": true' >>~/.config/Code/User/settings.json
echo '}' >>~/.config/Code/User/settings.json

六、安裝擴充套件 extension
說明:
1.點選
2.輸入擴充套件名稱
3.點選安裝

建議的套件如下:
Visual Studio Code intelliCode
AI 輔助的開發
JavaScript (ES6) code snippets
JS 的 Snippets。也同時支援 TypeScript、React、Vue
Prettier - Code formatter
紅極一時的 JS 格式化工具,統一 JS 程式碼風格
EditConfig
團隊自定義編輯環境格式的插件
ESLint
編輯器會自動幫你檢查 coding style,需搭配 .eslintrc 檔
Git Lens
版控紀錄,一目了然誰在什麼時間點修改檔案
Path intellisense
輸入 / 編輯器會自動查詢該目錄底下建議路徑
Preview on Web Server
前端開發時預覽的好幫手
vscode-icons
幫你 VS Code 檔案與資料夾 icon 美化
vscode-icons設定:按下"Ctrl+Shift+p" -> 框框內打上"icon" -> 點選第一個 啟用

資料來源:
1.Day1 - Node.js 開發環境準備
2.Day 02: 開發環境與開發工具
3.Front to Back, Node.js 系列 前端到後端,使用你的 JavaScript!
4.[Node.js打造API] 安裝 Visual Studio Code 與擴充套件設定
5.小克的 Visual Studio Code 必裝擴充套件(Extensions)私藏推薦
6.javascript - javascript的VSCode智能感知自動完成


在 Windows 10 x64 1909版,使用BAT快速安裝公文系統與人事服務網(自然人憑證)版

相關內容移往 https://skjhcreator.blogspot.com/2021/02/windows-10-x64-1909bat.html