參考網址:心雨競賽管理系統http://www.sinyu.idv.tw/
用asp開發
參考網址:https://www.facebook.com/twcertcc/posts/2511722805724116
首先,可以使用以下指令確認 sudo 套件版本。
sudo -V
若是你的版本在 1.9.5 以下,最好還是趕快升級比較好(如果你管理伺服器的話,想必不會希望大家都能隨意取得 root 權限)。
前往 https://www.sudo.ws/dist/ 下載 sudo.tar.gz。
或是直接使用以下指令:
wget https://www.sudo.ws/dist/sudo.tar.gz
tar -zxvf sudo.tar.gz
cd sudo-1.9.5p2/
或許你下載的時候版本已經與我不同。
sudo su
./configure --prefix=/usr --libexecdir=/usr/lib --with-secure-path --with-all-insults --with-env-editor --docdir=/usr/share/doc/sudo-1.9.5p2 --with-passprompt="[sudo] password for %p: "
make
make install && ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0
sudo -V
Output:
Sudo version 1.9.5p2
Sudoers policy plugin version 1.9.5p2
Sudoers file grammar version 48
Sudoers I/O plugin version 1.9.5p2
Sudoers audit plugin version 1.9.5p2
至此,大功告成。
另一篇文章
LINUX 技術手札
$ sudo apt install sudo
參考網址:gtwang
Linux 使用 rsync 遠端檔案同步與備份工具教學與範例
rsync
基本用法
rsync
的基本語法結構如下:
rsync 參數 來源檔案 目的檔案
以下是最常見的幾個參數:
-v
:verbose 模式,輸出比較詳細的訊息。
-r
:遞迴(recursive)備份所有子目錄下的目錄與檔案。
-a
:封裝備份模式,相當於 -rlptgoD
,遞迴備份所有子目錄下的目錄與檔案,保留連結檔、檔案的擁有者、群組、權限以及時間戳記。
-z
:啟用壓縮。
-h
:將數字以比較容易閱讀的格式輸出。
rsync
遠端備份
rsync
也可以用於不同台機器之間的遠端備份,這樣的用法就跟 scp
指令很像,不過 rsync
會更有效率:
rsync -avzh /mypath/myfile.gz pi@192.168.1.12:/mybackup/
這樣就會將本地端的 myfile.gz
備份至 pi@192.168.1.12
的 /mybackup/
目錄中,在遇到這種遠端備份的狀況時,rsync
預設會以 ssh 的方式登入遠端的機器,所以在執行這行備份指令之後,要接著輸入pi@192.168.1.12
的密碼,接著就會開始備份資料。
正常 ssh 遠端登入服務的連接埠(port)號碼是 22
,但有些人為了保護伺服器避免受到太多的網路攻擊,會將 ssh 的連接埠改成其他的號碼,例如 12345
,不過這樣的話在使用 rsync
進行遠端備份資料時,就也要跟著指定連接埠號碼。
假設 192.168.1.12
這台伺服器的 ssh 服務連接埠號碼為 12345
,以下是透過 rsync
將資料備份資料的範例:
rsync -avzh -e 'ssh -p 12345' /mypath/myfile.gz pi@192.168.1.12:/mybackup/
這裡我們多加入一個 -e
參數,其用途是指定遠端登入所要使用的指令,預設的指令就是 ssh
,而這裡我們將指令變更為 ssh -p 12345
,也就是使用 12345
這個連接埠登入 ssh 的意思(請參考 ssh
指令的 -p
參數用法)。
若要讓 rsync
在備份檔案時,排除所有 *.txt
的文字檔檔案,可以使用 --exclude
參數:
rsync -avh --exclude '*.txt' myfolder/ backup/
我們可以使用多個 --exclude
來排除多種檔案,例如:
rsync -avh --exclude '*.txt' --exclude '*.py' myfolder/ backup/
如果只想要備份某些特定的檔案,可以將 --exclude
與 --include
配合使用,例如只備份所有 *.c
的 C 語言原始碼:
rsync -avh --include '*.c' --include '*/' --exclude '*' myfolder/ backup/
rsync
也可以依照檔案的大小來選擇備份的檔案,
--min-size
可以指定備份檔案的大小下限,例如只備份 1MB 以上的檔案:
rsync -avh --min-size=1M myfolder/ backup/
而 --max-size
可以指定備份檔案的大小上限,例如只備份 4KB 以下的檔案:
rsync -avh --max-size=4K myfolder/ backup/
--min-size
與 --max-size
也可以同時使用,例如只備份 1KB 到 2MB 之間的檔案:
rsync -avh --min-size=1K --max-size=2M myfolder/ backup/
ssh 免密碼登入
用本機pi帳號,登入遠端pi帳號
client端pi身分 生成公鑰
ssh-keygen -t rsa -P '' (注:最後是二個單引號,表示不設定密碼)
然後分發公鑰到目標機器
ssh-copy-id -i ~/.ssh/id_rsa.pub 使用者名稱@對方機器IP (注意不要忘記了引數-i)
如果對方ssh使用不同的port 則必需加入ssh-copy-id -i ~/.ssh/id_rsa.pub -p 8080 使用者名稱@對方機器IP
到此本機pi就可以免密碼登入遠端pi帳號了。ssh pi@遠端機器IP
但因讀取權限的問題,rsync是用root的身分建立crontab
所以還得將/home/pi/.ssh 的id_rsa 及 id_rsa.pub複製到/root/.ssh
所以client還是得用root取得金錀才行。也就是用本機root帳號,登入遠端pi帳號
參考網址:Tom Ordonez Create a Regex Macro in Sublime
sport.sql.php 誀個檔案中放著sql建立資料表的語法,因為有許多資料表,要找到想要的資料表常常得翻來翻去,著實麻煩。
想說如果有個類似UltraEdit的function列表就方便找尋了,於是試著做做看。
#function aa_game_date { # # 資料表格式: `game_date` # DROP TABLE IF EXISTS game_date; CREATE TABLE game_date ( game_date_id tinyint(4) NOT NULL auto_increment, #主索引鍵 game_date_str char(4) NOT NULL default '0', #比賽日期 PRIMARY KEY (game_date_id) )ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 ; # # 列出以下資料庫的數據: `game_date` # INSERT INTO game_date VALUES (1, '0105'); INSERT INTO game_date VALUES (2, '0106'); INSERT INTO game_date VALUES (3, '0107'); INSERT INTO game_date VALUES (4, '0108'); #INSERT INTO game_date VALUES (5, '0205'); #}
一開始糸嘗試用macro來做,發現macro無法記錄find 及 replace。
首先安裝symlist這個外掛,再來安裝regReplace外掛
Go to the top menu Preferences/Package Settings/RegReplace/Rules-User.
{ "format": "3.0", "replacements": { // function 變成function模式 "func_start": { "find": "^#function", "replace": "function", "greedy": true }, "func_end": { "find": "^#}", "replace": "}", "greedy": true }, "func_top": { "find": "^#####top", "replace": "<?php", "greedy": true }, "func_bottom": { "find": "^#####bottom", "replace": "?>", "greedy": true }, // unfunction 變成註解模式 "unfunc_start": { "find": "^function", "replace": "#function", "greedy": true }, "unfunc_end": { "find": "^}", "replace": "#}", "greedy": true }, "unfunc_top": { "find": "^<\\?php", "replace": "#####top", "greedy": true }, "unfunc_bottom": { "find": "^\\?>", "replace": "#####bottom", "greedy": true } } } 問號得加兩條\
Go to the top menu Preferences/Package Settings/RegReplace/Rules-User.
[ { "caption": "RegReplace: function", "command": "reg_replace", "args": {"replacements": ["func_start","func_end","func_top","func_bottom"]} }, { "caption": "RegReplace: unfunction", "command": "reg_replace", "args": {"replacements": ["unfunc_start","unfunc_end","unfunc_top","unfunc_bottom"]} } ]
建立快捷鍵
Preferences/Key Buiding/user
[ { "keys": ["ctrl+alt+f"], "command": "reg_replace", "args": {"replacements": ["func_start","func_end","func_top","func_bottom"]} }, { "keys": ["ctrl+alt+u"], "command": "reg_replace", "args": {"replacements": ["unfunc_start","unfunc_end","unfunc_top","unfunc_bottom"]} } ]
原來不用這麼麻煩,outline外掛原本就內建sql模式,把語言改成sql,它就會自動抓'CREATE TABLE' 當大綱。
https://github.com/warmdev/SublimeOutline/issues/22
用ctrl+shift+p叫出Command Palette
輸入outline可以找到
Outline :Toggle Sort 切換list排序方式
Browse Mode:Outline(Left)
Browse Mode:Outline(Right) list表放在右邊
參考網址:ItRead01
按下快捷鍵 Ctrl+Shift+P 調出命令板,在出現的文字框中輸入 Install Package(
或直接 輸入“ip”)選中 Install Package 並回車,輸入 ColorPicker再按 Enter(回
車)等待安裝完成
預設快捷鍵是ctrl+shift+c但容易衝突
Preferences->BrowsePackages進入外掛的資料夾
找到相應外掛目錄進入找到Default (Windows).sublime-keymap檔案修改其中內容即可,要修改成不易衝突的快捷鍵哦
目前設為 ctrl+alt+c
從tools也可以找到進入ColorPicker的選項
參考網址:痞客邦
SQL指令–mySQL 檢查欄位是否存在 (MySQL–check which column exists in table)
SELECT count(*) FROM information_schema.columns WHERE table_schema='<Database Name>' AND table_name = '<Table Name>' AND column_name = '<Column Name>'
results as below:
0 if the <Column Name> doesn't exist;
1 otherwise.
參考網址:symList symList – clickable function list for Sublime Text
symlist.py (Python source, 7kb)
Download „symlist.py“ and copy the file to the Preferences / Browse Packages / „User“ directory.
For better handling, add a keyboard shortcut like
{ "keys": ["ctrl+alt+s"], "command": "symlist" }
to your personal key bindings.
還有一個外掛也有這樣的功能 outline
https://packagecontrol.io/packages/Outline
參考網址:程式前沿
try{ $pdo=new PDO('mysql:host=localhost;dbname=alpha','root','password'); }catch(PDOException $e){ echo "資料庫連線失敗,原因是:".$e->getMessage(); } //從資料庫中選擇資料,並將結果賦予一個變數,testtable為資料庫表 $result=$pdo->query('select id,name,age from testtable'); //將查詢出的資料輸出 while($row=$result->fetch()){ echo "ID:".$row['id']; echo "NAME:".$row['name']; echo "AGE:".$row['age']; }