標籤

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)
顯示具有 Xubuntu 標籤的文章。 顯示所有文章
顯示具有 Xubuntu 標籤的文章。 顯示所有文章

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年3月6日 星期五

xubuntu 16.04 用shell安裝 ssh 與安全性設定

1.更新
$sudo apt-get update

2.安裝 ssh 與 openssh-server
$sudo apt-get install ssh openssh-server -y

3.編輯 ssh 設定檔,取消root 的登入權限
$sudo pico /etc/ssh/sshd_config
將 PermitRootLogin prohibit-password 改成PermitRootLogin no

4.設定安全性,編輯可連線的主機群 ex 192.168.25.1
$sudo pico /etc/hosts.allow
  sshd:192.168.25.1:allow
$sudo pico /etc/hosts.deny
  sshd:all:deny

5.重啟ssh伺服器
$sudo /etc/init.d/ssh restart

6.現在要使用shell 來安裝與設定
檔名:sshInstall.sh
內容:
#!/bin/bash
apt-get update
apt-get install ssh openssh-server -y
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config
echo "sshd:192.168.25.1:allow" >> /etc/hosts.allow
echo "sshd:all:deny" >> /etc/hosts.deny
/etc/init.d/ssh restart

資料來源:
1.Ubuntu 安裝和啟用 SSH 登入
2.Ubuntu 用 SSH + 憑證登入遠端主機
3.[Shell Script] 用echo將文字以附加(apppend)方式寫入檔案

2020年1月19日 星期日

Xubuntu 16.04 用shell 安裝 node.js 與 npm 到最新穩定版

0.更新套件庫
sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update

1.安裝node.js和 npm
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm

2.更新npm的套件庫
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list

3.安裝node.js升級工具 n升級工具
sudo npm install n -g

4.升級為穩定板
sudo n stable

5.檢查node.js 與npm 版本
sudo node -v
sudo npm -v

我們將上述指令寫成 shell
檔案名稱:NodejsNpmInstall.sh
其內容如下:
#!/bin/sh
apt-get update
apt-get install -y python-software-properties software-properties-common
add-apt-repository ppa:chris-lea/node.js
apt-get update
apt-get install nodejs
apt install nodejs-legacy
apt install npm
npm config set registry https://registry.npm.taobao.org
npm config list
npm install n -g
n stable
node -v
npm -v




資料來源:
1.Ubuntu中安装最新NodeJS和NPM
2.升级Node.js的新方法:n 升级工具
3.Node入門

2019年9月14日 星期六

在 Xubuntu 18.04.3 用shell安裝 Django

1.xubuntu 套件更新
sudo apt-get update

2.安裝 python3-pip
sudo apt-get install -y python3-pip

3.安裝 python3-venv
sudo apt-get install -y python3-venv

4.建立目錄 mydjango,並進入目錄內
mkdir ~/mydjango
cd ~/mydjango

5.命名虛擬環境my_venv
python3 -m venv my_venv

6.啟動虛擬環境my_venv
source my_venv/bin/activate

7.用pip安裝django
pip install django

8.驗證
django-admin --version

9.停用虛擬環境my_venv
deactivate

10.產生第一個網站框架
sudo apt-get install -y tree
cd ~/mydjango
source my_venv/bin/activate
django-admin startproject mblog
cd mblog
python manage.py startapp mainsite
cd ..
tree mblog

cd mblog
python manage.py runserver 192.168.32.194:8000

此時網頁資訊會出現
要按下 Ctrl +C 離開
此時需要到~/mydjango/mblog/mblog 修改 settings.py
pico ~/mydjango/mblog/mblog/settings.py
將 ALLOWED_HOSTS = []
改成 ALLOWED_HOSTS = ['192.168.32.194','localhost','127.0.0.1']
改完之後儲存,下指令 
cd ..
python manage.py runserver 192.168.32.194:8000
此時網頁資訊會出現

接下來,我們將上述步驟做成shell,希望能夠一鍵完成,直接到第10步驟的網頁
但由於權限的關係,我們第一個shell,需要下sudo並產生第二個shell。第二個shell 用一般使用者即可執行。在此篇,我們設一般使用者帳號為 webadmin,其家目錄為 /home/webadmin/
#!/bin/sh
VAR="ens33"
HOST_IP=$(ifconfig $VAR | grep "inet " | awk '{ print $2}')
apt-get update
apt-get install -y python3-pip
apt-get install -y python3-venv
apt-get install -y tree
cd  /home/webadmin/
mkdir mydjango
cd mydjango
touch djangoinstall.sh
echo "#!/bin/sh" > djangoinstall.sh
echo "cd ~/mydjango" >> djangoinstall.sh
echo "python3 -m venv my_venv" >> djangoinstall.sh
echo "source my_venv/bin/activate" >> djangoinstall.sh
echo "pip install django" >> djangoinstall.sh
echo "django-admin startproject mblog" >> djangoinstall.sh
echo "cd ~/mydjango/mblog/" >> djangoinstall.sh
echo "python manage.py startapp mainsite" >> djangoinstall.sh
echo "cd ~/mydjango/" >> djangoinstall.sh
echo "tree mblog" >> djangoinstall.sh
echo "sed -i \"s/ALLOWED_HOSTS = \[/ALLOWED_HOSTS = \['$HOST_IP','localhost','127.0.0.1'/g\" /home/webadmin/mydjango/mblog/mblog/settings.py" >> djangoinstall.sh
echo "x-www-browser 'http://$HOST_IP:8000'" >> djangoinstall.sh
echo "cd ~/mydjango/mblog/" >> djangoinstall.sh
echo "python manage.py runserver $HOST_IP:8000" >> djangoinstall.sh
chown webadmin.webadmin /home/webadmin/mydjango -R
chmod 755 /home/webadmin/mydjango -R

接下來,我們就來看實際安裝情況,影片如下:

附註:
getip.sh 其內容為
#!/bin/sh
VAR="ens33"
HOST_IP=$(ifconfig $VAR | grep "inet " | awk '{ print $2}')
echo $HOST_IP

資料來源:
1.安裝 Django
2.Python新手使用Django架站技術實作:活用Django 2.0 Web Framework建構動態網站的16堂課
3.Python網頁篇:Django- 初始環境
4.Django起步走:環境安裝與建立專案
5.Invalid http_host header
6.SHELL - shell 腳本獲取本機ip並將ip複製給變量待用

2019年9月10日 星期二

在 xubuntu 16.04 實作 用 shell 為每個站點設定不同的php 版本

自從網頁主機集中,想要留舊網頁資料,提供查詢。
但又要建立新網頁,因應安全性需做更新。
以往的作法是在學校架新主機、新LAMP、xoops 新版本。
現在則是要在原有主機上,為每個站點設定不同php版本,以因應新的xoops版本。
看到網路資料,想實作看看。

1.安裝 apache2
sudo apt-get install -y apache2

2.安裝 mysql
sudo apt install -y mysql-server mysql-client libmysqlclient-dev mysql-workbench

3.安裝 php5.6
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y php5.6-common php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-gd php5.6-curl php5.6-json php5.6-fpm php5.6-zip php5.6-mcrypt libapache2-mod-php5.6

4.安裝:php7.0
sudo apt-get install -y php7.0-common php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-gd php7.0-curl php7.0-json php7.0-fpm php7.0-zip php7.0-mcrypt libapache2-mod-php7.0

5.安裝:php7.1
sudo apt-get install -y php7.1-common php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-gd php7.1-curl php7.1-json php7.1-fpm php7.1-zip php7.1-mcrypt libapache2-mod-php7.1

6.開啟重寫轉向
sudo a2enmod rewrite
sudo a2enmod headers

7.重啟 apache2
sudo service apache2 restart

8.編輯bashrc 加入自定義命令,方便在不同php版本間切換
sudo vi .bashrc

寫入.bashrc, 其內容為
alias php56='sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2enmod php5.6 && sudo service apache2 restart'
alias php70='sudo a2dismod php5.6 && sudo a2dismod php7.1 && sudo a2enmod php7.0 && sudo service apache2 restart'
alias php71='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2enmod php7.1 && sudo service apache2 restart'

安裝完成後,重啟電腦,預設是執行5.6版本的php
但命令列下php-v 是顯示最高版本7.1
在/etc/php目錄下有對應版本號的資料夾,

編輯相應的php.ini可配置相應的php版本,
命令列下php56可切換到php5.6版本
命令列下php70可切換到php7.0版本
命令列下php71可切換到php7.1版本

9.備份/etc/apache2/site-available/000-default.conf後修改,其指令為
cd /etc/apache2/site-available/
sudo cp 000-default.conf 000-default.conf.bk
sudo pico 000-default.conf 
其內容如下:
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        <Directory "/var/www/html/php56">
         Options FollowSymLinks
         AllowOverride All
         #Require all denied
         Require all granted
         <FilesMatch \.php$>
            SetHandler "proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost"
         </FilesMatch>
        </Directory>
        <Directory "/var/www/html/php70">
         Options FollowSymLinks
         AllowOverride All
         #Require all denied
         Require all granted
         <FilesMatch \.php$>
            SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost"
         </FilesMatch>
        </Directory>
        <Directory "/var/www/html/php71">
         Options FollowSymLinks
         AllowOverride All
         #Require all denied
         Require all granted
         <FilesMatch \.php$>
            SetHandler "proxy:unix:/run/php/php7.1-fpm.sock|fcgi://localhost"
         </FilesMatch>
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

啟用Apache2 模組 proxy proxy_fcgi 
sudo a2enmod proxy proxy_fcgi

重啟 Apache2
sudo service apache2 restart

10.在/var/www/html/,新增三個資料夾,分別為 php56 php70 php71
在這三個資料夾,新增index.php,其內容為 <?php  phpinfo(); ?>
變更 這三個資料夾及其內容 的權限。其指令如下:
cd /var/www/html/
sudo mkdir php56 php70 php71
sudo touch index.php
sudo echo "<?php  phpinfo(); ?>" > index.php
sudo cp index.php /var/www/html/php56/
sudo cp index.php /var/www/html/php70/
sudo mv index.php /var/www/html/php71/
sudo chmod 755 php56 php70 php71 -R

11.打開瀏覽器,並在其網址列,打上 http://IP/php56、http://IP/php70、http://IP/php71
可以看到如下
目前伺服器位址為:192.168.32.199


或是在linux 命令列
x-www-browser 'http://192.168.32.199/php56'
x-www-browser 'http://192.168.32.199/php70'
x-www-browser 'http://192.168.32.199/php71'


現在我們將上述步驟1~步驟10寫成shell,其檔名為lampmulti.sh
其內容如下:
#!/bin/sh
apt-get install -y apache2
apt install -y mysql-server mysql-client libmysqlclient-dev mysql-workbench
add-apt-repository ppa:ondrej/php -y
apt-get update
apt-get install -y php5.6-common php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml php5.6-gd php5.6-curl php5.6-json php5.6-fpm php5.6-zip php5.6-mcrypt libapache2-mod-php5.6
apt-get install -y php7.0-common php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-gd php7.0-curl php7.0-json php7.0-fpm php7.0-zip php7.0-mcrypt libapache2-mod-php7.0
apt-get install -y php7.1-common php7.1-mbstring php7.1-mcrypt php7.1-mysql php7.1-xml php7.1-gd php7.1-curl php7.1-json php7.1-fpm php7.1-zip php7.1-mcrypt libapache2-mod-php7.1
a2enmod rewrite
a2enmod headers
service apache2 restart
echo "alias php56='sudo a2dismod php7.0 && sudo a2dismod php7.1 && sudo a2enmod php5.6 && sudo service apache2 restart'" >> .bashrc
echo "alias php70='sudo a2dismod php5.6 && sudo a2dismod php7.1 && sudo a2enmod php7.0 && sudo service apache2 restart'" >> .bashrc
echo "alias php71='sudo a2dismod php5.6 && sudo a2dismod php7.0 && sudo a2enmod php7.1 && sudo service apache2 restart'" >> .bashrc
cd /etc/apache2/sites-available/
cp 000-default.conf 000-default.conf.bk
echo "<VirtualHost *:80>" > 000-default.conf
echo "  ServerAdmin webmaster@localhost" >> 000-default.conf
echo "  DocumentRoot /var/www/html" >> 000-default.conf
echo "    <Directory \"/var/www/html/php56\">" >> 000-default.conf
echo "           Options FollowSymLinks" >> 000-default.conf
echo "           AllowOverride All" >> 000-default.conf
echo "           #Require all denied" >> 000-default.conf
echo "           Require all granted" >> 000-default.conf
echo "           <FilesMatch \.php$>" >> 000-default.conf
echo "              SetHandler \"proxy:unix:/run/php/php5.6-fpm.sock|fcgi://localhost\"" >> 000-default.conf
echo "           </FilesMatch>" >> 000-default.conf
echo "    </Directory>" >> 000-default.conf
echo "    <Directory \"/var/www/html/php70\">" >> 000-default.conf
echo "           Options FollowSymLinks" >> 000-default.conf
echo "           AllowOverride All" >> 000-default.conf
echo "           #Require all denied" >> 000-default.conf
echo "           Require all granted" >> 000-default.conf
echo "           <FilesMatch \.php$>" >> 000-default.conf
echo "              SetHandler \"proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost\"" >> 000-default.conf
echo "           </FilesMatch>" >> 000-default.conf
echo "    </Directory>" >> 000-default.conf
echo "    <Directory \"/var/www/html/php71\">" >> 000-default.conf
echo "           Options FollowSymLinks" >> 000-default.conf
echo "           AllowOverride All" >> 000-default.conf
echo "           #Require all denied" >> 000-default.conf
echo "           Require all granted" >> 000-default.conf
echo "           <FilesMatch \.php$>" >> 000-default.conf
echo "              SetHandler \"proxy:unix:/run/php/php7.1-fpm.sock|fcgi://localhost\"" >> 000-default.conf
echo "           </FilesMatch>" >> 000-default.conf
echo "           </Directory>" >> 000-default.conf
echo "           ErrorLog ${APACHE_LOG_DIR}/error.log" >> 000-default.conf
echo "           CustomLog ${APACHE_LOG_DIR}/access.log combined" >> 000-default.conf
echo "</VirtualHost>" >> 000-default.conf
a2enmod proxy proxy_fcgi
service apache2 restart
cd /var/www/html/
mkdir php56 php70 php71
touch index.php
echo "<?php  phpinfo(); ?>" > index.php
cp index.php /var/www/html/php56/
cp index.php /var/www/html/php70/
mv index.php /var/www/html/php71/
chmod 755 php56 php70 php71 -R
service apache2 restart

直接用 SSH 連接到Server,
用 sudo pico lampmulti.sh,將上面紅色字貼到lampmulti.sh
接下來,將lampmulti.sh權限改為可執行,其指令為 sudo chmod +x lampmulti.sh
執行lampmulti.sh,其指令為 sudo sh lampmulti.sh

注意事項:
1.有些時候會無法完整安裝,這時要下指令要加--fix-missing
   意即 sudo sh lampmulti --fix-missing
   才能夠針對缺項進行完整安裝

2.網頁編碼的問題,可加上
<?php
header("Content-Type:text/html; charset=utf-8");
?>
1.在 xubuntu 16.04中
需先檢查/etc/apache2/conf-available/chartset.conf
AddDefaultCharset UTF-8 前面是否加上 # ,即#AddDefaultCharset UTF-8

2.在 xubuntu 16.04中
需先檢查/etc/php/5.6/apahe2/php.ini 中的default_charset = "UTF-8" 前面要加;,即;default_charset = "UTF-8"
需先檢查/etc/php/7.0/apahe2/php.ini 中的default_charset = "UTF-8" 前面要加;,即;default_charset = "UTF-8"
需先檢查/etc/php/7.1/apahe2/php.ini 中的default_charset = "UTF-8" 前面要加;,即;default_charset = "UTF-8"

目前實驗在此伺服器中,安裝sfs3,其目錄在php56/sfs3。
登入後,會出現錯誤


3.使用adminer 作為MySQL資料庫管理工具

資料來源:
1.ubuntu php多版本共存切換,為每個站點設定不同的php版本
2.詳解Ubuntu/CentOS下Apache多站點配置
3.Shell echo命令
4.Mac/Linux/Windows通過命令調用瀏覽器打開某網頁
5.網頁(UTF-8) 於 瀏覽器 出現亂碼解法
6.強迫網頁預設編碼語系 
7.Adminer羽量級MySQL資料庫管理工具,可完全取代phpMyAdmin,且無檔案匯入大小限制

2019年9月9日 星期一

在Xubuntu16.04 用 shell 安裝 Flask

1.檢查python 3 版本
python3 -V

2.安裝 venv 環境
sudo apt install python3-venv -y

3.建立虛擬環境
cd ~
mkdir my_flask_app
cd my_flask_app
python3 -m venv venv

4.啟動venv
source venv/bin/activate

5.安裝Flask
pip install Flask

6.檢查 Flask 版本
python -m Flask --version

7.建立 hello.py
cd ~/my_flask_app/
touch hello.py
echo "from flask import Flask" > hello.py
echo "app = Flask(__name__)" >> hello.py
echo  -e "\n" >> hello.py
echo "@app.route('/')" >> hello.py
echo "def hello_world():" >> hello.py
echo "    return 'Hello World!'" >> hello.py

8.測試
export FLASK_APP=hello
flask run

那我們將上述步驟1~步驟8 寫成 shell,檔名為flaskInstall.sh,其內容為
#!/bin/sh
python3 -V
sudo apt install python3-venv -y
cd ~
mkdir my_flask_app
cd my_flask_app
python3 -m venv venv
source venv/bin/activate
pip install Flask
python -m Flask --version
cd ~/my_flask_app/
touch hello.py
echo "from flask import Flask" > hello.py
echo "app = Flask(__name__)" >> hello.py
echo  "" >> hello.py
echo "@app.route('/')" >> hello.py
echo "def hello_world():" >> hello.py
echo "    return 'Hello World!'" >> hello.py
export FLASK_APP=hello
flask run

接下來以一般帳號(有sudo 權限)登入
新增一個檔案 flaskInstall.sh,並將上面紅色文字複製貼到flaskInstall.sh
touch flaskinstall.sh
pico flaskInstall.sh
對 flaskInstall.sh 變更權限
chmod 777 flaskInstall.sh
啟動 flaskinstall.sh
source flaskinstall.sh

9.停用虛擬環境
deactivate

資料來源:
1.如何在 Ubuntu 18.04 上安装 Flask

2019年8月26日 星期一

Xubuntu 18.04.3 x64 用 shell 安裝 sublime text 3 與 python 相關套件

1.安裝sublime text 3指令如下:
(1)安裝GPG 密鑰:
$wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
(2)安裝apt-transport-https
$sudo apt-get install apt-transport-https
(3)將sublimetext 加入sources.list
$echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
(4)更新套件
$sudo apt-get update
(5)安裝sublime-text
$sudo apt-get install sublime-text
一步一步將指令輸入,可以完成sublime-text的安裝。
但是寫成shell 則無法安裝,需要做調整。

現在寫成Shell,檔名為SublimeTextInstall.sh
其內容為:
#!/bin/bash
apt-get install apt-transport-https
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | apt-key add -
echo "deb https://download.sublimetext.com/ apt/stable/" |  tee /etc/apt/sources.list.d/sublime-text.list
apt-get update
apt-get install sublime-text

下載後,指令為
$sudo chmod +x SublimeTextInstall.sh
$sudo sh SublimeTextInstall.sh
安裝過程如影片所示。



資料來源:
1.sublime text3配置<python篇>
2.第 19 天:安裝/設定 Sublime Text 編輯器
3.Ubuntu 安裝 Sublime Text 3
4.Sublime Text 3 在 Ubuntu 打中文字有解了
5.Linux Package Manager Repositories
6.Sublime Text 3 输入法(Fcitx)修复[Ubuntu(Debian)]

2019年8月24日 星期六

xubuntu 18.04.03 x32 用shell 快速完成 samba 設定

感恩永靖國小邱顯錫老師的指導!!

尋找取代語法介紹:
sed -i 's/尋找/取代/g' 絕對路徑+檔名
例如:要尋找 /etc/fstab 內的 defaults 並取代成 defaults,usrquota,grpquota
sed -i 's/defaults/defaults,usrquota,grpquota/g' /etc/fstab
另外關於絕對路徑+檔名,可以改用
cd /etc
sed -i 's/defaults/defaults,usrquota,grpquota/g' fstab

前篇
1.硬碟分割:請參考前篇步驟1

2.步驟2~步驟6:可使用shell,其內容如下:

#!/bin/bash
apt-get update
apt-get install quota -y
cd /etc
sed -i 's/defaults/defaults,usrquota,grpquota/g' fstab
mount -o remount /home
quotacheck -cmug /home
apt-get install samba -y
cd ~
echo "deb http://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list
echo "deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib" >>  /etc/apt/sources.list
wget -q http://www.webmin.com/jcameron-key.asc -O- | apt-key add -
apt-get update; apt-get install webmin -y
apt-get install usermin -y
mkdir /home/homework
chmod 777 /home/homework
cd /etc/samba/
cp smb.conf smb.conf.bk
echo "#======================= Global Settings =======================" > smb.conf
echo "[global]" >> smb.conf
echo " write raw = no" >> smb.conf
echo " passwd chat = *Enter\snew\s*\spassword:* %nn *Retype\snew\s*\spassword:* %nn *password\supdated\ssuccessfully* ." >> smb.conf
echo " writeable = yes" >> smb.conf
echo " unix password sync = yes" >> smb.conf
echo " log file = /var/log/samba/log.%m" >> smb.conf
echo " max log size = 1000" >> smb.conf
echo " allow hosts = 192.168.0.0/16,172.20.3.0/24,10.1.1.0/24" >> smb.conf
echo " passwd program = /usr/bin/passwd %u" >> smb.conf
echo " passdb backend = tdbsam" >> smb.conf
echo " encrypt passwords = yes" >> smb.conf
echo " server role = standalone server" >> smb.conf
echo " os level = 20" >> smb.conf
echo " dns proxy = no" >> smb.conf
echo " panic action = /usr/share/samba/panic-action %d" >> smb.conf
echo " load printers = no" >> smb.conf
echo " path = /home/homework" >> smb.conf
echo " obey pam restrictions = yes" >> smb.conf
echo " netbios name = SAMBA" >> smb.conf
echo " map to guest = bad user" >> smb.conf
echo " usershare allow guests = yes" >> smb.conf
echo " workgroup = WORKGROUP" >> smb.conf
echo " syslog = 0" >> smb.conf
echo " pam password change = yes" >> smb.conf
echo " read raw = no" >> smb.conf
echo " server string = %h server (Samba, Xubuntu180403)" >> smb.conf
echo " veto files = /*.exe/*.bat/" >> smb.conf
echo "#===================== Share Definitions =====================" >> smb.conf
echo "[homes]" >> smb.conf
echo "   comment = Home Directories" >> smb.conf
echo "   browseable = no" >> smb.conf
echo "   writeable = yes" >> smb.conf
echo "   veto files = /*.exe/*.bat/" >> smb.conf
echo "   create mask = 0777" >> smb.conf
echo "   directory mask = 0777" >> smb.conf
echo "   valid users = %S" >> smb.conf
echo "[Homework]" >> smb.conf
echo "   comment = 公用區" >> smb.conf
echo "   path = /home/homework" >> smb.conf
echo "   writable = yes" >> smb.conf
echo "   browseable = yes" >> smb.conf
echo "   veto files = /*.exe/*.bat/" >> smb.conf
echo "   public = yes" >> smb.conf
echo "   create mask = 0777" >> smb.conf
echo "   directory mask = 0777" >> smb.conf

注意事項:shell執行完,打開瀏覽器,輸入 https://伺服器IP:10000 ,可看到 webmin 登入畫面,可讓管理者進入,需依下列圖示,以完成samba設定。



7.在桌面建置批次檔,讓管理員webadmin可以登入使用。

雲端硬碟登入
檔名:雲端硬碟登入login.bat
內容:
net use /d * /y
cls
@echo 網路磁碟登入程序
@echo =====================================
@echo off
@echo 使用者名稱為 學務系統帳號
@echo 使用者預設密碼為 demo
@echo 修改預設密碼,請到 https://伺服器IP:20000
set /p str1=請輸入使用者名稱:
net use u: \\伺服器IP\%str1% /user:"%str1%"
net use v: \\伺服器IP\homework
exit

現在將其具體化,
伺服器IP:192.168.154.133
檔名:雲端硬碟登入login.bat
內容:
net use /d * /y
cls
@echo 網路磁碟登入程序
@echo =====================================
@echo off
@echo 使用者名稱為 學務系統帳號
@echo 使用者預設密碼為 demo
@echo 修改預設密碼,請到 https://伺服器IP:20000
set /p str1=請輸入使用者名稱:
net use u: \\192.168.154.133\%str1% /user:"%str1%"
net use v: \\192.168.154.133\homework
exit


雲端硬碟登出
檔名:雲端硬碟登出logout.bat
內容:
echo off
net use /d * /yes
exit

8.打開瀏覽器,並輸入 https://伺服器IP:20000 ,可看到 usermin 登入畫面,可讓使用者進入,修改預設密碼。

9.大量建置帳號,可如下參考
(1.0)建立群組 s101
檔名:create_group_s101.txt
其內容如下:
create:s101::701:
(1.1)匯入


(2.0)建立使用者s10101~s10140
檔名:create_s101.txt
其內容如下:
create:使用者名稱:密碼:uid:gid:真實姓名:家目錄:shell:最小:最大:警告:非使用:過期
create:s10101:70101:1501:701::/home/s101/s10101:/bin/null:::::
create:s10102:70102:1502:701::/home/s101/s10102:/bin/null:::::
create:s10103:70103:1503:701::/home/s101/s10103:/bin/null:::::
create:s10104:70104:1504:701::/home/s101/s10104:/bin/null:::::
create:s10105:70105:1505:701::/home/s101/s10105:/bin/null:::::
create:s10106:70106:1506:701::/home/s101/s10106:/bin/null:::::
create:s10107:70107:1507:701::/home/s101/s10107:/bin/null:::::
create:s10108:70108:1508:701::/home/s101/s10108:/bin/null:::::
create:s10109:70109:1509:701::/home/s101/s10109:/bin/null:::::
create:s10110:70110:1510:701::/home/s101/s10110:/bin/null:::::
create:s10111:70111:1511:701::/home/s101/s10111:/bin/null:::::
create:s10112:70112:1512:701::/home/s101/s10112:/bin/null:::::
create:s10113:70113:1513:701::/home/s101/s10113:/bin/null:::::
create:s10114:70114:1514:701::/home/s101/s10114:/bin/null:::::
create:s10115:70115:1515:701::/home/s101/s10115:/bin/null:::::
create:s10116:70116:1516:701::/home/s101/s10116:/bin/null:::::
create:s10117:70117:1517:701::/home/s101/s10117:/bin/null:::::
create:s10118:70118:1518:701::/home/s101/s10118:/bin/null:::::
create:s10119:70119:1519:701::/home/s101/s10119:/bin/null:::::
create:s10120:70120:1520:701::/home/s101/s10120:/bin/null:::::
create:s10121:70121:1521:701::/home/s101/s10121:/bin/null:::::
create:s10122:70122:1522:701::/home/s101/s10122:/bin/null:::::
create:s10123:70123:1523:701::/home/s101/s10123:/bin/null:::::
create:s10124:70124:1524:701::/home/s101/s10124:/bin/null:::::
create:s10125:70125:1525:701::/home/s101/s10125:/bin/null:::::
create:s10126:70126:1526:701::/home/s101/s10126:/bin/null:::::
create:s10127:70127:1527:701::/home/s101/s10127:/bin/null:::::
create:s10128:70128:1528:701::/home/s101/s10128:/bin/null:::::
create:s10129:70129:1529:701::/home/s101/s10129:/bin/null:::::
create:s10130:70130:1530:701::/home/s101/s10130:/bin/null:::::
create:s10131:70131:1531:701::/home/s101/s10131:/bin/null:::::
create:s10132:70132:1532:701::/home/s101/s10132:/bin/null:::::
create:s10133:70133:1533:701::/home/s101/s10133:/bin/null:::::
create:s10134:70134:1534:701::/home/s101/s10134:/bin/null:::::
create:s10135:70135:1535:701::/home/s101/s10135:/bin/null:::::
create:s10136:70136:1536:701::/home/s101/s10136:/bin/null:::::
create:s10137:70137:1537:701::/home/s101/s10137:/bin/null:::::
create:s10138:70138:1538:701::/home/s101/s10138:/bin/null:::::
create:s10139:70139:1539:701::/home/s101/s10139:/bin/null:::::
create:s10140:70140:1540:701::/home/s101/s10140:/bin/null:::::
(2.1)匯入


(3.0)刪除使用者
檔名:delete_user_s101.txt
其內容如下:
delete:使用者名稱
delete:s10101
delete:s10102
delete:s10103
delete:s10104
delete:s10105
delete:s10106
delete:s10107
delete:s10108
delete:s10109
delete:s10110
delete:s10111
delete:s10112
delete:s10113
delete:s10114
delete:s10115
delete:s10116
delete:s10117
delete:s10118
delete:s10119
delete:s10120
delete:s10121
delete:s10122
delete:s10123
delete:s10124
delete:s10125
delete:s10126
delete:s10127
delete:s10128
delete:s10129
delete:s10130
delete:s10131
delete:s10132
delete:s10133
delete:s10134
delete:s10135
delete:s10136
delete:s10137
delete:s10138
delete:s10139
delete:s10140
(3.1)匯入


10.最後在windows 7 使用的效果:

11.一鍵刪除s10101~s10140 與homework內的子目錄與檔案
檔名:DelAll.sh
其內容如下:
#!/bin/bash
for var in {10101..10140..1}
do
  cd /home/s101/s${var}
  rm *.* -rf
  echo "刪除/home/s101/s${var}內所有檔案OK"
  for i in $(ls /home/s101/s${var})
  do
    rm $i -rf
  done
  echo "刪除/home/s101/s${var}內所有目錄OK"
done
cd /home/homework/
rm *.* -rf
echo "刪除/home/homework/內所有檔案OK"
   for i in $(ls /home/homework/)
   do
     echo $i
     rm $i -rf
   done
   echo "刪除/home/homework/內所有目錄OK"

最後問題:
當shell 要寫入資料到smb.conf,要注意的地方為 %n
echo " passwd chat = *Enter\snew\s*\spassword:* %nn *Retype\snew\s*\spassword:* %nn *password\supdated\ssuccessfully* ." >> smb.conf

在smb.conf的內容為
 passwd chat = *Enter\snew\s*\spassword:* %nn *Retype\snew\s*\spassword:* %nn *password\supdated\ssuccessfully* .
需手動修改%nn 為 %n\n
已解決

12.另外的需求是...如果只要開放homework,且不需要登入密碼。
要如何做?
(1)不需要建立帳號,即步驟9不做
(2)只要修改批次檔,即修改步驟7的批次檔
現在將其具體化,
伺服器IP:192.168.154.133
檔名:雲端硬碟登入login.bat
內容:
net use /d * /y
cls
net use v: \\192.168.154.133\homework
exit


雲端硬碟登出
檔名:雲端硬碟登出logout.bat
內容:
echo off
net use /d * /yes
exit




文章來源:
1.使用XOOPS 快速架站與移機 - 彰化縣教育網路中心
2.快速架設 LAMP + XOOPS
3.acfs14.04 x32 使用 samba 當作學校檔案伺服器

2019年6月27日 星期四

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月3日 星期一

xubuntu 16.04 安裝git 並上傳程式碼到github


1.安裝git
$sudo apt-get install git

2.檢查git 版本
$git --version

3.設定帳號與電郵
$ git config --global user.name "<Your Name>"
例子:$ git config --global user.name "mark2470mark2470"

$ git config --global user.email "<your@gmail.com>"
例子:$ git config --global user.email "mark2470mark2470@gmail.com"

4.建立資料夾test01 與相關程式碼
$cd ~
$cd html
$mkdir test01
$cd ..
$composer create-project laravel/laravel --prefer-dist /home/webadmin/html/test01

5.設定時區
$cd /home/webadmin/html/test01/config/
$pico app.php
內容為
'timezone' => 'Asia/Taipei', ...
'locale' => 'zh-TW', …

'fallback_locale' => 'zh-TW',...

6.中文語系翻譯


請下載zip檔後,把 src 目錄中的 zh-TW 目錄放置在 /home/webadmin/html/test01/resources/lang 下

7.到 github 建立專案,專案名稱為test01,與本地端的專案名稱test01一致

8.到本地端專案 test01 內
$cd ~/html/test01/
$git init
$git add .
$git commit -m "新增註解"
$git remote add origin https://github.com/mark2470mark/test01.git
$git push -u origin master

資料來源:
1.ubuntu 下安裝git 並上傳程式碼至github
2.Git教學:如何 Push 上傳到 GitHub?
3.Git 與 Github 版本控制基本指令與操作入門教學

2019年4月15日 星期一

Xubuntu 16.04 如何檢查遠端電腦Port 是否開啟

1.安裝nmap
$sudo apt-get install nmap

2.掃描 遠端IP 的 80port
$sudo nmap 遠端IP  -p 80
ex: sudo nmap 192.168.32.155 -p 80

掃描 遠端IP 的 all port
$sudo nmap 遠端IP  -p 1-65535
$sudo nmap 192.168.32.1 -p 1-65535

3.掃描 遠端IP 的port
$sudo nmap -Pn 192.168.32.155
ex sudo nmap -Pn 192.168.32.155

4.

資料來源:
1.3 種檢查遠端埠號是否開啟的方法
2.[轉貼] Linux 網路檢測工具-nmap 的用法
3.十条nmap常用的扫描命令

Xubuntu 16.04 apt-get update出現An error occurred during the signature verification.

An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://dl.google.com/linux/chrome/deb stable Release: 由於無法取得它們的公鑰,以下簽章無法進行驗證: NO_PUBKEY 6494C6D6997C215E
W: 無法取得 http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg,由於無法取得它們的公鑰,以下簽章無法進行驗證: NO_PUBKEY 6494C6D6997C215E
W: 某些索引檔未能下載。其已遭略過,或改為使用舊的。
1.重新取得 repo key from Google
$wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

資料來源:
1.Ubuntu 更新錯誤 apt update error - "An error occurred during the signature verification"

2019年4月8日 星期一

在 xubuntu 16.04 apache2 php 7.2 環境下,安裝 swoole

安裝swoole 前,請更新系統與套件。其指令為
$sudo apt-get update
$sudo apt-get upgrade
更新系統與套件期間,會有一些錯誤訊息
錯誤訊息1錯誤訊息2
更新系統與套件後,就可開始swoole 安裝動作

1.安裝 aptitude php
$sudo apt-get install aptitude

2.安裝 php7.2-dev
$sudo aptitude install php7.2-dev


3.安裝 cmake gcc autoconf pcre make git
$sudo aptitude install cmake gcc autoconf pcre make git


4.下載swoole
$git clone https://github.com/swoole/swoole-src.git
此時的swoole-src 會在目前的使用者目錄下,即 /home/webadmin/

5.依序下指令
$cd swoole-src
$phpize

$./configure

$make
$sudo make install
此時會在 /home/webadmin/swoole-src/modules/ 出現 swoole.so

6.修改/etc/php/7.2/cli/php.ini 與 /etc/php/7.2/apache2/php.ini
將extension=/home/webadmin/swoole-src/modules/swoole.so 加入。
$sudo pico /etc/php/7.2/cli/php.ini

$sudo pico  /etc/php/7.2/apache2/php.ini

7.重啟 apache2
$sudo service apache2 restart

8.檢查php 模組列表
$php -m

資料來源:
1.PHP 的性能猛獸 - Swoole
2.php – swoole 安裝

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

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