標籤

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)

2019年7月10日 星期三

Ubuntu 16.04 利用shell透過Docker套件庫安裝最新版本與相關指令


1.透過Docker 套件庫安裝最新版本
  #安裝apt-transport-https
$ sudo apt-get install apt-transport-https
  #取得金鑰
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
   #將deb https://get.docker.io/ubuntu docker main 寫入 /etc/apt/sources.list.d/docker.list
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
  #套件更新
$ sudo apt-get update
  #安裝docker
$ sudo apt-get install -y lxc-docker
  #啟動 docker
$ sudo service docker start

將上述的指令寫成 shell 檔
檔名:DockerInstall.sh
其內容如下:
#!/bin/bash
apt-get install apt-transport-https

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

apt-get update

apt-get install -y lxc-docker

service docker start

下載後,需打上指令如下:
$sudo chmod +x DockerInstall.sh

$sudo sh DockerInstall.sh

安裝過程如下圖:


更新docker
$sudo apt-get update -y lxc-docker

現在我們將docker 的三類:映像檔(Image)、容器(Container)、倉庫(Repositry)與其指令之相互關係,整理成圖表。

取得映像檔(image)
指令: docker pull
ex: 到公有倉庫(Repository)取得ubuntu 18.04 映像檔
sudo docker pull ubuntu:18.04

建立一個容器(container),讓其中執行 bash
$ sudo docker run -t -i ubuntu:18.04 /bin/bash
-i:以交互模式運行容器,通常與-t同時使用;
-t:為容器重新分配一個偽輸入終端,通常與-i同時使用;

顯示本機已有的映像檔(image)
docker images
ex:
$ sudo docker images

執行web 程式
在docker容器中執行Python Flask 程式來執行一個web程式。
  #取得training/webapp 的映像檔(image) 
$sudo pull training/webapp

建立一個容器(container),讓其中執行python app.py
$sudo docker run -d -P training/webapp python app.py
-d:讓容器在後台運行。
-P:將容器內部使用的網絡埠(port)映射(mapping)到主機上。

檢查 WEB程式容器(container)
指令:docker ps
#檢查所有正在運行的容器(container)
ex:$ sudo docker ps
網絡埠(port) 訊息
Docker 的容器(container)開啟網絡埠(port)號:5000 (預設 Python Flask 網絡埠)映射到主機網絡埠號:32768 上。
主機IP為 192.168.32.134
打開瀏覽器 打上 http://192.168.32.134:32768
若要更改容器(container)的網絡埠(port)號,則要使用 -p
ex: $sudo docker run -d -p 5000:5000 training/webapp python app.py

若只是單純檢查容器(container)的網絡埠(port),可以下指令 docker port +容器IP
那容器ID 的取得,可從 docker ps 取得 
所以我們可以檢查 27bea7994a3d
$sudo docker port 27bea7994a3d
比較指令 docker ps 與 docker port 的差別

檢查log(程式日誌)
指令:docker logs -f
-f :輸出容器(container)內部的標準輸出
ex:
$sudo docker logs -f ae433e5debba

檢查 Docker容器(container)的配置和狀態信息
指令為 docker inspect + 容器名稱(name)
ex: $ sudo docker inspect silly_noyce

處理docker 啟動(停止、重啟、刪除) 容器(container)
docker start (stop、restart、rm) + 容器(container)的名稱(name)
ex: sudo docker start  (stop、restart、rm) silly_noyce
注意事項:刪除之前,需先停止容器(container)。即指令下法為
$sudo docker stop silly_noyce
$sudo docker rm silly_noyce

建立映像檔
(1) 修改現有映像檔
     #下載映像檔 training/sinatra
     $sudo docker pull training/sinatra
    #建立一個容器(container),讓其中執行 bash
     $sudo docker run -t -i  training/sinatra /bin/bash
   此時容器(container) 的ID為12bf15cd160c,即上圖綠色圈處。
   在容器中安裝套件gem(加入json)
    root@12bf15cd160c:/# gem install json
   退出
   root@12bf15cd160c:/# exit
    提交"更新後的副本"指令:docker commit
    $sudo docker commit -m "Added json gem" -a "Docker AddJsonGem" 12bf15cd160c ouruser/sinatra:v2
     -m 指定提交映像檔的說明信息
     -a 可以指定更新的使用者信息
    查看所有映像檔 :docker images
    $sudo docker images
    可以直接使用ouruser/sinatra:v2
    $sudo docker run -t -i  ouruser/sinatra:v2 /bin/bash

(2)利用 Dockerfile 建立映像檔
     建立映像檔指令:docker build ,用docker build前,需先建立Dockerfile。
     流程:Dockerfile ----> docker build
     A.建立目錄與檔案
     #建立目錄sinatra
     $ mkdir sinatra
     #進入目錄sinatra
     $ cd sinatra
     #建立檔案Dockerfile
     $ touch Dockerfile
     #編輯 Dockerfile
     $sudo pico Dockerfile

     B.Dockerfile 內容為
     # FROM 告訴 docker 以 ubuntu:14.04 為 image
      FROM ubuntu:14.04
     # MAINTAINER 維護者 與 Email
      MAINTAINER Docker Newbee <newbee@docker.com>
     #RUN 在docker build 時執行 apt-get 更新、install 與 gem install
      RUN apt-get -qq update
      RUN apt-get -qqy install ruby ruby-dev
      RUN gem install sinatra

      C.建立映像檔
      指令:docker build
      $sudo docker build -t="ouruser/sinatra:v2"
      但是出現錯誤訊息:
      Cannot connect to the Docker daemon. Is the docker daemon running on this host?



資料來源:
1.Docker —— 從入門到實踐
2.Docker run 命令

2019年7月3日 星期三

python 3.7 讀取CSV檔案,將一行一行資料內容,轉成串列

CSV檔案名稱:PythonCSVTest.csv
CSV檔案位置:C:\Users\m\Desktop\
CSV檔案內容:
test01,test02,test03,test04,test05,test06,test07,test08,test09,test10
test11,test12,test13,test14,test15,test16,test17,test18,test19,test20
test21,test22,test23,test24,test25,test26,test27,test28,test29,test30
test31,test32,test33,test34,test35,test36,test37,test38,test39,test40
test41,test42,test43,test44,test45,test46,test47,test48,test49,test50

程式名稱:PythonCSVTest.py
程式位置:C:\Users\m\Desktop\
程式內容:
fp = open('PythonCSVTest.csv',"r")
lines = fp.readlines()
fp.close()
list_lines = []
for i in range(len(lines)):
     lines[i] = lines[i].strip('\n')
     temp = lines[i][:]
     temp = temp.replace(","," ")
     temp = temp.split()
     for j in range(len(temp)):
        list_lines.append(temp[j])
print(list_lines)

執行結果:
資料來源:
1.Python replace()方法
2.Python 逐行讀取檔案內容的 4 個方法
3.python按行读取文件,如何去掉换行符"\n"

2019年6月27日 星期四

ESP8266 教學,使用ip 抓取html網頁資料



資料來源:
1.ESP8266教學3-2:讀取網頁內容
2.NodeMcu Devkit 0.9/1.0 開發版差異

xubuntu 16.04 安裝pycharm與建立pycharm啟動捷徑

1下載
   https://www.jetbrains.com/pycharm/download/#section=linux
   到上述網址下載。
 
2.下載完,解壓縮
    $tar zxvf  pycharm-professional-2019.1.3.tar.gz
    更名並移動到 /opt/
    $mv pycharm-2019.1.3 pycharm
    $sudo mv pycharm /opt/
    安裝
    $cd /opt/pycharm/bin/
    $sudo ./pycharm.sh
    接下來,依照畫面指示進行即可。

3.建立桌面捷徑
   $sudo touch /usr/share/applications/pycharm.desktop
   $sudo pico /usr/share/applications/pycharm.desktop
   將下面的文字複製到 /usr/share/applications/pycharm.desktop
   [Desktop Entry]
   Version=1.0
   Type=Application
   Name=Pycharm
   Icon=/opt/pycharm/bin/pycharm.png
   Exec="/opt/pycharm/bin/pycharm.sh" %f
   Comment=The Drive to Develop
   Categories=Development;IDE;
   Terminal=false
   StartupWMClass=jetbrains-pycharm

4.變更權限
   $sudo chmod +x /usr/share/applications/pycharm.desktop

資料來源
1.PyCharm中桌面快捷键启动问题
2.Ubuntu 16.04 安装 PyCharm

2019年6月23日 星期日

用sublim text 3、stino 讓 Arduino 程式編輯可以擁有程式碼自動補全、程式碼出現提示列表、拼寫檢查與語法高亮

        使用官方的Arduino IDE,總覺得很辛苦。程式碼無法自動補全、程式碼無法出現提示列表、拼寫檢查與語法高亮等缺失,讓人覺得很無奈。因此網路上找資料,並且跟著實作。發現真的可以達到程式碼自動補全、程式碼出現提示列表、拼寫檢查與語法高亮。真的很興奮,特地寫下來,提醒自己。
1.下載與安裝安裝sublime
     到http://www.sublimetext.com/ 下載
   點選上圖的2,一直按NEXT->NEXT->INSTALL,直到finsh。




2.變更字體大小:
   (1)Preferences->Settings
   (2)將預設的設定複製到隔壁去,如下圖1. 所示。紅色圈選處為字體大小。
     如下圖,紅色圈選處,將數字改為您要的,即可。
     儲存設定:為File -> Save All

3.下載與安裝 stino
  點選箭頭處所指
  解壓縮到 ->確定- >解壓後的資料夾Stino-Stino-Dev 內有個資料夾Stino-Stino-Dev
 
    Tools -> Install package control
    按下[確定]
 
    解壓後的資料夾Stino-Stino-Dev 內有個資料夾Stino-Stino-Dev,對準資料夾,按下滑鼠右鍵將其剪下。
    
 Preferences -> Browse Package -> 將上圖剪下的資料夾貼上此處。

重啟sublime後,即可看到

4.設定 stino
    若是如下圖顯示,即可關閉。若是沒有,請加入
    "arduino": "http://downloads.arduino.cc/packages/package_index.json",
    "arduino_lib": "http://downloads.arduino.cc/libraries/library_index.json"

5.加入arduino 的官方ide:
     確認後,按下[Enter]即可。

6.安裝avr平台:
    Arduino ->Install platform  -> arduino ->Arduino AVR Boards ->1.6.23(選擇最新版)

7.開始編寫程式
   Arduino ->Open sketch ->new sketch…

    輸入[檔名]後,按下[Enter]即可。
    按下[Enter]後,即出現下方畫面:

   打上 pin,出現提示視窗

資料來源:

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

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