短網址

參考網址:電腦玩物-替代 goo.gl 的 8 種短網址服務

Google 短網址即將關閉,但已經建立的 goo.gl 將永久有效

Bit.ly 這個短網址服務,它的功能非常完整,有後台統計數據,最大特色就是可以自訂中文短網址。

例:http://bit.ly/2y4ZxEE

http://bit.ly/2E7xhGM

發表於 Windows系統 | 發表迴響

UBUNTU-劉勇炫老師網站

參考網址:myip
架站工具下載 YHTools

UbuntuLinux網管手冊

發表於 Linux系統 | 發表迴響

Docker -從入門到實踐

參考網址:gitbooks
竣庭推薦,應可解決UBUNTU套件向下相容問題
卓國興老師 文件

發表於 Linux系統 | 發表迴響

scp 指令用法

參考網址:gtwang

複製檔案與目錄

scp 指令的語法跟一般的 cp 類似,只不過 scp 可以在不同的 Linux 主機之間複製檔案,其語法為:

scp [帳號@來源主機]:來源檔案 [帳號@目的主機]:目的檔案

這裡的帳號就是登入主機上的帳號(類似 ssh 指令的用法),如果省略帳號與主機,只寫一般的檔案路徑的話,就是代表本機的檔案。

例如將本地端的 /path/file1 複製到 192.168.0.1 這台主機上的 /path/file2,而登入 192.168.0.1 這台主機時,是以 myuser 這個帳號登入:

# 從本地端複製到遠端
scp /path/file1 myuser@192.168.0.1:/path/file2

也可以把遠端的檔案複製到本地端:

# 從遠端複製到本地端
scp myuser@192.168.0.1:/path/file2 /path/file1

這樣就會用 myuser 這個帳號登入 192.168.0.1,將遠端主機上的 /path/file2 複製到 /path/file1

如果本地端的使用者帳號名稱剛好跟遠端的使用者帳號一樣,也可以將使用者帳號省略,例如:

# 從本地端複製到遠端
scp /path/file1 192.168.0.1:/path/file2

反過來也是類似:

# 從遠端複製到本地端
scp 192.168.0.1:/path/file2 /path/file1

複製目錄

若要複製整個目錄以及其下的所有檔案,則加上 -r 參數:

# 複製目錄
scp -r /path/folder1 myuser@192.168.0.1:/path/folder2

保留檔案時間與權限

若要讓檔案在複製之後,還可保留原本的修改時間、存取時間與權限,可以加上 -p 參數:

# 保留檔案時間與權限
scp -p /path/file1 myuser@192.168.0.1:/path/file2

資料壓縮

若要將資料壓縮之後再傳送,減少網路頻寬的使用量,可以加上 -C 參數:

# 資料壓縮
scp -C /path/file1 myuser@192.168.0.1:/path/file2

限制傳輸速度

若要限制網路的使用頻寬,可以用 -l 指定可用的網路頻寬上限值(單位為 Kbit/s):

# 限制傳輸速度為 400 Kbit/s
scp -l 400 /path/file1 myuser@192.168.0.1:/path/file2

這樣就會限制 scp 只能使用 400 Kbit/s,也就是 400 / 8 = 50 KB/s。

自訂連接埠

一般 SSH 伺服器的連接埠號為 22,如果遇到使用非標準埠號的伺服器,可以用 -P 來指定埠號。若遠端的 SSH 伺服器使用 2222 這個連接埠,我們就可以這樣複製檔案:

# 使用 2222 連接埠
scp -P 2222 /path/file1 myuser@192.168.0.1:/path/file2

IPv4 與 IPv6

-4 與 -6 兩個參數分別可以讓 scp 使用 IPv4 與 IPv6 來傳輸資料:

# 使用 IPv4
scp -4 /path/file1 myuser@192.168.0.1:/path/file2

# 使用 IPv6
scp -6 /path/file1 myuser@192.168.0.1:/path/file2
發表於 Linux系統 | 發表迴響

UBUNTU 16.04 降級安裝samba 3.6.25版

參考網址:CSDN

UBUNTU 16.04的samba用的是4.3.11版,使用起來似乎有些問題,一直無法搞定windows端的連線
net use z: \\192.168.1.114\homes
會發生 「系統發生53錯誤 找不到網路路徑」 錯誤
參考文件:SAMBA 4 – Misc Development Topics

於是就打算用編譯的方式來安裝samba3.6.25版

移除原先的samba
apt autoremove samba

到這兒下載3.6.25版
https://download.samba.org/pub/samba/

安裝過程參考https://blog.csdn.net/cupidove/article/details/47756225
1、解壓、編譯、安裝
#tar xzvf samba-3.6.25.tar.gz
#cd samba-3.6.25/source3
#./configure
#make
#make install

沒用路徑參數,因為預設是/usr/local/samba

2、配置smb.conf,比較關鍵的一步
預設情況下,samba套裝軟體會被安裝到目錄/usr/local/samba/下,但是現在還不能啟動它。
samba的進程在啟動的時候需要一些庫檔的支援,這些庫檔就在/usr/local/samba/lib/目錄下,需要把這個目錄加入系統搜索庫檔的路徑中。
可以在/etc/ld.so.conf.d/目錄裡創建一個名為samba.conf的檔(檔案名尾碼必須為.conf,名稱隨意),這個檔的內容就是/usr/local/samba/lib/,最後執行ldconfig命令使之生效。
在 /etc/ld.so.conf.d/ 目錄下創建 samba.conf 檔(檔只要以conf結尾即可),並輸入所安裝的 samba 庫位置的絕對路徑(/usr/local/samba/lib)即可;之後執行命令 #ldconfig 重新讀取 /etc/ld.so.conf.d 目錄下的設定檔。

ldconfig命令的用途,主要是在預設搜尋目錄(/lib、/lib64和 /usr/lib)以及動態庫配置目錄 /etc/ld.so.conf內的檔,搜索出可共用的動態連結程式庫(lib*.so*),進而創建出動態裝入程式(ld.so)所需的連接和快取檔案。

注意:這一步必須要做,否則 smbd 不能啟動。
#cp ./samba-3.6.25/examples/smb.conf.default /usr/local/samba/lib

3、配置smb.conf (只列重點)
[global] 
workgroup = WORKGROUP
security = USER


[homes]
    comment = Home Directories
    valid users = %S
    read only = No
    browseable = No
    
[share]
comment = Share files
public = yes
browseable = yes
locking = no
path=/opt/samba
writable=yes
create mask = 0644
directory mask = 0755
# 載入 檔案存取記錄及資源回收筒 模組
vfs object = audit recycle
# 在將檔案移入 資源回收筒 時,要建立相對應的目錄結構
recycle: keeptree = yes
# 資源回收筒 之相對路徑。後面的 %u 則為使用者帳號。
recycle: repository = Recycle/%u
# 不進行 資源回收 的檔案類型
recycle: exclude = .tmp|.temp|.o|.obj
# 若有相同檔案名稱時,則加以編號識別
recycle: versions = yes

/usr/local/samba/bin/testparm可以測試smb.conf檔案是否設定正確
也可以知道smb.conf放在哪兒


4、增加smb用戶
比如有一個用戶名是,那麼:
/usr/local/samba/bin/smbpasswd -a kitty,就把kitty增加為smb用戶了。
/usr/local/samba/bin/pdbedit -L 可以得知目前有哪些使用者。

5、關閉防火牆
systemctl stop firewalld

6、啟動smb服務
#/usr/local/samba/sbin/smbd -D
#/usr/local/samba/sbin/nmbd -D

#netstat -tlunp | grep mbd
#netstat -tlunp | grep smbd
查看是否啟動成功

7、最後一步,需要做的就是把smb服務設為開機啟動。
#vi /etc/rc.d/rc.local
加入
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/nmbd -D 
就可以了。

8.更改$PATH
  個別的PATH
  在/root下新增.bash_profile內容為
  export PATH=/usr/local/samba/bin:$PATH
  馬上啟用
  source ./bash_profile
  
  整體的PATH
  /etc/profile

9.在/etc/samba 中建立symbolic link smb.conf
  cd /etc/samba
  ln -s  /usr/local/samba/lib/smb.conf smb.conf

 

在本機測試連線
/usr/local/samba/bin/smbclient '//192.168.1.114/homes' -U sa 


smbstatus可以知道目前samba的版本

[供參]
Windows 10 無法登入 Samba (NAS)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
在 Parameters 上按右鍵 → 新增 → DWORD (32-bit) 值(D) → AllowInsecureGuestAuth
 AllowInsecureGuestAuth 數值資料填入 1

發表於 Linux系統 | 發表迴響

Excel VBA之計時決賽處理

參考網址:ExcelHome

運動會系統中計時決賽需另加一場附加預賽,以方便成績輸入,在EXCEL中重覆的動作就交給巨集處理吧。
先用[以相對位置錄製] [錄製巨集],完成操作後再細部修改程式
需要修改的應該只有把場次名稱+"A" 這一行
ActiveCell.FormulaR1C1 = ActiveCell.Offset(1, 0).Value & "A"

Sub 巨集1()
'
' 巨集1 巨集
' 將計時決賽分成預賽與決賽
'
' 快速鍵: Ctrl+a
'
    ActiveCell.Rows("1:1").EntireRow.Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
    Selection.Copy
    ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select
    ActiveSheet.Paste
    ActiveCell.Offset(0, 1).Range("A1").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ActiveCell.Offset(1, 0).Value & "A"
    ActiveCell.Offset(0, 4).Range("A1").Select
    ActiveCell.FormulaR1C1 = "預賽"
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "決賽"
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

使用方法:在欲增加附加預賽的場次上按[ctrl+a]
就可以增加一場附加預賽

發表於 Windows系統, 程式設計 | 發表迴響

mysql-config-editor 用法

參考網址:mysql

先用以下指令,創建一個登入帳號
 

mysql_config_editor set --login-path=mysqldump --host=localhost --user=root --password


查詢帳號

mysql_config_editor print --all

 

再用以下指令備份資料庫

mysqldump -c sport10710 > sport10710.sql

 

cat ~/.mylogin.cnf

 

移除

mysql_config_editor remove --login-path=mypath

 

發表於 Linux系統 | 發表迴響

PHP4手冊

參考網址:
寫PHP程式時常會用到PHP手冊,使用比較習慣的是林義祥先生整理的PHP4手冊
http://www.php5.idv.tw/documents/mou/網站最近一直連不進去
google了一下,在這個網站http://cc2.savs.hcc.edu.tw/~chuavv/php/php-zh-tw/down.html找到了備份
用wget備份下來了
 

wget -r -l 2 http://cc2.savs.hcc.edu.tw/~chuavv/php/php-zh-tw/down.html

http://sp.idv.tw/php4

發表於 Linux系統, 程式設計 | 發表迴響

grep sed 用法

參考網址:itsmw

grep 

– r : 指定的目錄下的所有檔案和目錄

– i : 搜尋字串不分大小寫 

範例一 : 找出有 "John" 關鍵字不分大小寫的所有檔案
 

    $ grep -r -i "John" . <. 指在當前路徑下找尋>
    ./test2.txt:Long time no see, John
    ./test1.txt:Hi John

範例二 : 

grep -r --include='*.php' substr .

 

替換檔案的字串, 可以用 sed 完成, 例如:
sed -i 's/substr/mb_substr/g' filename.txt

 

資料夾內所有檔案之檔名轉碼

指令

convmv -f big5 -t utf8 –notest *

 

Linux 下要查看檔案的編碼有多種方法, 以下會用 file 指令查看檔案的編碼。例如查看 php.ini 檔案的編碼:

$ file -i php.ini
php.ini: text/plain; charset=us-ascii

 

發表於 Linux系統 | 發表迴響

強迫網頁預設編碼語系

參考網址:精讚部落格
 

瀏覽器對於網頁的語系判斷,網路上一堆文章在討論,不過我覺得不太正確,似是而非,所以我寫了這篇文章。

首先,大家都知道網頁的HEADER這行可以決定編碼方式,這個稱之為 META

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

html5
<meta charset="utf-8" />

大部分的瀏覽器如果編碼設成「自動偵測」時都能正確的分析,並以 utf-8 輸出。但世界並不會這麼平順完美,明明我這樣設定時,他就是用 big5 丟出來,或是我明明設定 META 為 big5,但是他丟出來卻是 utf-8,是不是我的瀏覽器不好,所以換了瀏覽器,也許仍不正常(或者是正常後開始罵不正常的瀏覽器爛)。

為何會如此?先來研究一下,在 APACHE 的 httpd.conf 及 php.ini 中都有指定編碼語系的方式,例如:

[httpd.conf]
AddDefaultCharset Big5

[php.ini]
default_charset = "iso-8859-1"

這個萬不得已是不應該去指定的,因為一旦指定,也許能解決一時的問題,但是未來接手管理的人,會毫無頭緒,不知道為什麼編碼怎麼設都不正確,找不出原因;或是同網站不同編碼的網頁,怎麼試都不正確。此外,如果在共用的空間中,更沒有辦法去修改 httpd.conf 或是 php.ini 的 charset,常會一個頭兩個大。

接下來我們來研究..

為什麼明明 META 就已經正確了,瀏覽器好像視而不見?

先來看看,如果在 httpd.conf 中或是php.ini 已經預設了編碼,瀏覽器取得網頁有什麼不同。這裡我們就要回到 http 這個協定一開始的定義點來看
Hypertext Transfer Protocol — HTTP/1.1 rfc 2612

瀏覽器在取得網頁內容之前,無論有無讀取過,都會進行一個 HEAD method 以檢查網頁是否有更新,以決定是否要 refresh。所以我們來看一下有定義 charset 和未定義 charset 時取回的 head 有何不同,特別注意,這個 HEAD 不是網頁裡的 < head></head>標籤中的東西,別搞錯了。

# telnet kt.example.com 80
Trying 114.33.4.124...
Connected to example.com.
Escape character is '^]'.
HEAD
 / HTTP/1.1
Host:kt.example.com
Connection: close

HTTP/1.1 200 OK
Date: Sat, 24 Apr 2010 06:44:14 GMT
Server: Apache/2.2.9 (FreeBSD) mod_ssl/2.2.9 OpenSSL/0.9.8e DAV/2 PHP/5.2.6 with Suhosin-Patch
X-Powered-By: PHP/5.2.6
Set-Cookie: PHPSESSID=v8hrfte7qvlhs8vmfeu4fgcch3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=Big5   &lt;== 注意看,多出這一行

Connection closed by foreign host.

 

由此可知,瀏覽器在 HEAD method 完畢後,就自動會切換成 Big5 的編碼,這時就算你在 <META> 中怎麼設定,瀏覽器全都視而不見啦,這和什麼 BOM 一點關係也沒有。

因為瀏覽器使用http的method,如GET、POST、HEAD…等方法去取回資料時,伺服器早就偷偷的寫說要「指定」什麼編碼來顯示,瀏覽器根本就不再理會你html中的meta指定編碼的那行。就算你怎麼設定,他就只會聽伺服器說的…

發表於 Linux系統, 程式設計 | 發表迴響