LG環景相機試玩與360度影片播放剪輯心得

時下360度影片正熱
近期有幸試玩一款LGR105.ATWNTS的環景相機
其實錄製步驟非常簡單
實測發現此款相機因是長型結構必須配置腳架錄影,因而會錄製到腳架
而播放環景影片 其實一般的Potplayer、VLC都可以支援
上傳環景影片,Youtube和Facebook都已經能支援播放
至於剪輯,如果只是簡單的去頭去尾
Moo0 Video Cutter這種綠色軟體也能做得到
相信以後編輯環景影片會更為便利。

架設WordPress網站出現PHP程式碼之解決方法

如果架設Wordpress網站在網頁端出現了PHP的語言
代表server缺少了libapache2-mod-php的模組
以Ubuntu Server安裝libapache2-mod-php7.0為例,只要輸入:

$ sudo apt install libapache2-mod-php7.0

回到頁面重整後,即可解決!

MySQL/MariaDB Backup/Restore and chmod only files or folders

網站中最有價值的就是日積月累的資料
因此資料庫的備份工作可說是非常重要

但如果資料庫很多 該怎麼處理?
不管你是MySQL還是MariaDB
其實只要短短一行就能快速把所有資料庫備份及還原

備份全部資料庫

$ mysqldump -u DBUser -p --all-databases > allDBbackup.sql;

還原全部資料庫

$ mysql -u DBUser -p < allDBbackup.sql

當然如果你是到/var/lib/mysql 去備份檔案
日後還原只需把它覆蓋回去同路徑即可

 

而伺服器掛掉了
該如何讓網站在其他伺服器上東山再起
只要事先有把原先的網站資料做備份
把整個網站的根目錄資料夾備份起來
當然不能忘記資料庫也要備份
之後還原只要把備份的網站根目錄放回去
再用上述說明的方式將資料庫還原回去
這樣原先的網站就又重新東山再起了

而曾經有個還原經驗是把所有的資料都還原回去了
但是網站還是無法正常讀取
最後發現是還原到新的伺服器上的檔案與資料夾權限都亂掉了
有時經過不同系統的資料傳遞、壓縮或解壓的過程也會有此現象
因此快速且大量更改檔案與資料夾權限的指令就很重要拉

修改目前資料夾下的所有檔案權限為644

$ find . -type f -exec chmod 644 {} \;

修改目前資料夾下的所有資料夾權限為755

$ find . -type d -exec chmod 755 {} \;

 

使用者帳號與程序管理

/etc/passwd

提到使用者帳號就必須要談到這個檔案,檔案裡的每一行都代表一個帳號,所以總共幾行就表示有多少的帳號在你的系統中,至於每一行所成列的順序與意義如下:

帳號名稱:密碼:UID:GID:使用者資訊:家目錄:Shell

 

/etc/shadow

早期Unix 系統的密碼是放在/etc/passwd,但基於檔案特性而易使密碼被竊,因此密碼資料改放至/etc/shadow裡,所以要打開這個檔案是必須要有系統管理者權限,但打開後是不是真的密碼一覽無疑呢?當然沒那麼簡單,系統會加密所有的密碼。重點來了,使用者在登入系統時,系統如何去驗證密碼的正確性呢?其實,在你登入系統時所鍵入的密碼,系統仍然會將你鍵入的密碼加密,在去/etc/shadow裡比對兩組都已被加密的密碼是否一致,因此密碼是沒有經過解密的程序。至於檔案每行成列的順序與意義如下:

帳號名稱:密碼:近期更動密碼的日期(1970/1/1):密碼不可被更動的天數:密碼需要重新變更的天數:密碼需要變更期限前的警告天數:密碼過期後的帳號寬限時間:使用者帳號的有效期限:保留欄位
<Tips>
基於系統安全,系統的最高權限root通常不會設定密碼,否則有心人士知道密碼後,即可在你的系統內恣意妄為,當然你也可以直接把root停權,其做法就是在/etc/shadow找到root此行後,直接在加密密碼前加上”!“,下次就無法用該帳號登入了,其他帳號的停權方式也是比照辦理,但編輯此檔案務必謹慎小心,只要少一個冒號都有可能發生慘劇,務必謹慎,謹慎,再謹慎!

 

adduser : 新增使用者帳號(互動式)

useradd : 新增使用者帳號(非互動式)

~# useradd [使用者帳號] -g [加入已存在的群組] -d [使用者家目錄] -m

<Tips>
1.除非加上 -m 參數,否則不會自動建立使用者目錄
2.須使用passwd指令給予密碼使帳號生效

 

userdel : 刪除使用者

~# userdel [使用者帳號]

<Tips>
加上 -r 參數會連同使用者的家目錄一併刪除

usermod : 編輯一個已存在的使用者帳號

~# usermod -l test user

將使用者帳號user改成test

~# usermod -m -d /home/test  user

將user的家目錄改成/home/test(加上 -m 參數會自動建立目錄)

passwd : 管理使用者密碼

~# passwd user -l

將user使用者帳號封鎖停權(-u 參數可解鎖)

~# passwd user -e

強制user使用者下次登入時更改密碼

 

/etc/group

群組名稱:群組密碼:GID:已加入此群組的使用者名稱

groupadd : 新增群組

~# groupadd [群組名稱] -g [自訂GID,未加則系統會自動給予]

groupdel : 刪除群組

~# groupdel [群組名稱]

使用文字界面與Linux溝通

如果我們要與Linux對話,就必須學習shell,而shell是一支程式,提供方便的文字介面使我們能與作業系統溝通。

  • 查看系統中有哪些shell可用
~$ cat /etc/shells
  • 查看目前使用的shell
~$ echo $0
  • 改變預設使用的(登入時的)shell(change shell)
~$ chsh <shell name>

常用基本指令

  • 協助資訊:whatis, man, info, help
  • 檔案與資料夾操作:cd, pwd, mkdir, rmdir, rm, cp, mv, ls
  • 檢視檔案內容:cat, less, more, head ,tail, wc
  • 開關機:shutdown, halt, sync, reboot
  • 帳號管理:adduser, deluser, sudo, su
  • 系統狀態資訊:uname, date, who, w, top, free, dmesg, ps
  • 安裝/移除套件:apt-get, aptitude

系統狀態資訊

w:顯示使用者登入的狀況

who:顯示所有登入者的資訊

whoami:顯示使用者名稱

uname:顯示作業系統核心資訊
-a:系統所有相關的資訊
-m:系統的硬體名稱
-r:核心版本

date:顯示或變更日期

top:顯示系統中使用較多資源的執行程序

ps:顯示目前作業系統中所有的執行程序
-a:顯示同一終端下的所有程式
-A:顯示所有程序
-u [使用者名稱]:顯示特定用戶資訊
-au:顯示較詳細的資訊
-aux:顯示所有包含其他使用者的程序
R :該程式目前正在運作或是可被運作
S :該程式目前正在睡眠,但可被訊號 (signal) 喚醒。
T :該程式目前正在偵測或停止
Z :該程式已經終止,但是其主程式無法正常終止子程序,造成 zombie (疆屍) 的狀態

free:顯示作業系統的記憶體使用量
-g:以GB為單位顯示記憶體使用情況
-m:以MB為單位顯示記憶體使用情況
-k:以KB為單位顯示記憶體使用情況
-s [間隔秒數]:持續觀察記憶體使用狀況

dmesg:系統開機過程的檢測紀錄檔

協助資訊

whatis:指令、手冊的簡要說明

~$ whatis [指令名稱]

man:Linux線上參考手冊(manual)介面,查詢指令用法(man為manual的簡寫,有操作說明之意)

~$ man [指令名稱]

info:線上手冊文件

~$ info [指令名稱]

help:列出系統可用指令

~$ help

which:顯示指令路徑

~$ which [指令名稱]

檔案與資料夾操作

cd:變更工作目錄

pwd:顯示工作目錄

ls:列出資料夾內容
-s:
-a:顯示隱藏檔
-l :詳細列出檔案詳細資料
-al:同時顯示隱藏檔與詳細資料

mv:移動(重新命名)檔案或資料夾

cp:複製檔案
-r:複製整個資料夾(含所有下層檔案與資料夾)

rm:刪除檔案
-i:每個檔案刪除前會再次確認
-f:刪除時不做二次確認,直接刪除
-r:刪除整個資料夾(含所有下層檔案與資料夾)

刪除所在位置的全部檔案

~$ rm *

mkdir:建立資料夾

rmdir:刪除一個空資料夾

檢視檔案內容

cat: 列出檔案內容(適用檔案小)

~$ cat [某檔案或資料夾名稱]

-n  [行數] : 指定顯示前面幾行

more: 根據畫面大小,以分頁顯示內容(不允許前後翻頁)

~$ more [某檔案或資料夾名稱]

less: 根據畫面大小,以分頁顯示內容(適用單行內容短、文件篇幅長之檔案,允許前後翻頁

~$ less [某檔案或資料夾名稱]

head:顯示檔案內容開頭幾行

~$ head [某檔案或資料夾名稱]

-n [行數]:指定顯示前面幾行

tail:從檔案尾端查看內容(預設倒數十行)

~$ tail [某檔案或資料夾名稱]

-n [行數]:指定顯示倒數幾行
-f:自動更新檔案內容(用來追蹤修改,隨時查看更改,適合查看log訊息或多人修訂時使用)

touch:建立一個無內容的新檔案或改變目錄與檔案建立的時間

~$ touch [某檔案或資料夾名稱]

-a:僅改變存取時間。
-m:僅改變修改時間。
-t:自訂時間而非目前時間。格式為 [年份][月份][日期][小時][分鐘].[秒]。
-c:不要建立檔案。
-d:用字串的方式表示時間。

wc  : 計算行數、字數與字元數

~$ wc [某檔案或資料夾名稱]

-l :僅列出行
-w:僅列出多少字(英文單字)
-m:多少字元;

gedit:文字編輯軟體(僅限於圖形介面)

 

alias 別名設置(使用者環境變數)(下次登入即消失)

~$ alias 原名='別名'

若要取消設置

~$ unalias 別名

 

若要每次登入自動載入別名的設置,可加在下列四個檔案其中之一:

1./etc/profile :系統共用的使用者設定檔,在使用者登入時被讀取

2./etc/bashrc :系統公用的bash設定檔,在bash被執行時被讀取

3.~/.profile :使用者私有的設定檔,位於每個使用者的家目錄底下

4.~/.bashrc :使用者私有的bash設定檔,位於每個使用者的家目錄底下

基本上,自己的喜好別人不見得會喜歡,所以都是編輯私有設定檔為主(若沒有可直接新增),直接在檔案裡打上指令即可。

 

Tmux(分割視窗軟體) – 須另外安裝(~$ sudo apt-get install tmux)

  • ctrl+b % – 水平分割
  • ctrl+b “ – 垂直分割
  • ctrl+b CRL不放+方向鍵 – 改變視窗大小

 

製作硬式連結

~$ ln [原始檔案案或目錄][目標檔案或目錄]

製作軟式連結

~$ ln -s [原始檔案案或目錄][目標檔案或目錄]

find : 尋找檔案

~$ find [路徑] -name [檔名]

或許你會覺得終端機裡呈現的內容很亂
因此你可以這樣做…

~$ find [路徑] -name [檔名] 1>success.log 2>error.log

此段指令一樣是尋找檔案,但符合尋找結果會導向到success.log,結果不符則導向到error.log

當然你也可以直接在終端機顯示符合尋找結果的訊息,但捨棄結果不符的訊息

~$ find [路徑] -name [檔名]  2>&-

標準I/O控制

  • 標準輸入/輸出/錯誤輸出(stdin/stdout/stderr)
  • I/O重定向
    > (用法:[指令]>[檔案]) : 將[指令]的輸出結果儲存到[檔案]裡
    < (用法:[指令]<[檔案]) : 將[檔案]的內容導向成為[指令]的”輸入”資料
    >>(用法:[指令]>>[檔案]) : 將[指令]的輸出結果附加到[檔案]裡

 

有時,我們會有需要一次用到兩個指令去達成我們的目的,需要一個符號用來連結命令的輸出與輸入,就是「|」(管線命令 pipe commands)

例如: ls | wc -l (先查看檔案,並將結果輸入給wc  -l計算行數)

 

 

啟動或重啟Apache時出現AH00558

如果Ubuntu在啟動apache或重啟apache時
出現AH00558:Could not reliably determine the server’s fully qualified domain name
可以使用下列方法其中一種:

 

1.修改/etc/apache2/apache2.conf

$ sudo vim /etc/apache2/apache2.conf

在文件最後加上

ServerName localhost

 

2.在/etc/apache2/conf-enabled資料夾裡新增servername.conf

$ sudo vim /etc/apache2/conf-enabled/servername.conf

在文件中加入

ServerName localhost

如何找出發生問題的AP

近期的工作環境發生AP亂發IP的問題
造成同網段部分電腦無法上網
如果在IP有控管的情形下
當然可以利用已知的IP直接斷開連上此AP的網路
但在沒有控管的情形下只能多些步驟來找出問題根源

透過這些無法上網的電腦查詢被分配到的IP發現都是分配到192.168.11.XXX
由於此網段特殊
因此google即可知道出問題的AP廠牌名稱
但我們知道廠牌名稱無太大意義
因為即有可能公司內同時架設同款AP
因此必須在電腦裡的命令提示字元(cmd.exe)輸入以下指令:

arp -a

即可搜尋發出192.168.11.XXX這個AP的MAC位置(通常AP預設為192.168.11.1)
記住搜尋出的AP-MAC位置

最後利用有無線網卡的電腦和一支可列出無線網路資訊的軟體(筆者是用Vistumbler)
在去互相對應MAC位置
即可找出問題AP
而筆者所用的軟體也有列出廠牌名稱
因此有了更多資料
在對應上花費的時間也越少

vim文字編輯器

vim(Vi  IMproved)

就英文來看即可知vim是vi的進階版本,具顏色顯示功能的文字編輯器。

  • 安裝方式:
~$ sudo apt-get install vim

順便一提,我們常常下安裝指令,之後都需要做安裝的確認,如果想全自動安裝,不詢問yes或no,只要加上-y即可,以安裝vim為例:

~$ sudo apt-get -y install vim

 

  • vim設定檔位置:  ~/.vimrc

 

vim常用的模式:

  1. 一般模式(Command mode/Normal mode):一進入vim就是進入此模式,只能下按鍵指令,無法輸入文字。
  2. 輸入模式(Insert mode):按下i / a /Insert 都能進入此模式,進入即可輸入文字,按下ESC又會回到一般模式。
  3. 指令模式(Command-line mode):輸入 : (冒號) ,左下角會出現一個冒號,即可鍵入指令。

 

開啟舊檔

~$ vim test.txt

進入vim,然後輸入:e test.txt (e,edit)

 

存檔與離開

  • :w 存檔(write)
  • :q  離開(quit)
  • :wq 存檔離開
  • :wqa 全部檔案儲存離開
  • :wq! 強制存檔離開

剪下、複製與貼上

  • dd – 剪下
  • yy – 複製
  • p – 貼上
  • d3d – 剪下游標後三行的文字
  • ctrl+v 區塊複製

刪除

  • d+{ – 大區塊刪除(大括號內的文字受保護,刪除括號外文字至上一段落處)
  • d+} – 大區塊刪除((大括號內的文字受保護,刪除括號外文字至下一段落處)

復原(undo)和重做(redo)

  • 一般模式輸入u / ctrl+r
  • :undo (指令模式)
  • :redo  (指令模式)

尋找

  • ?[字串] – 游標向上尋找[字串]
  • ?? – 游標繼續向上尋找[字串](也可以用N)
  • /[字串] – 游標向下尋找[字串]
  • // – 游標繼續向下尋找[字串](也可以用n)
  • # – 向上尋找游標所在的字串
  • * – 向下尋找游標所在的字串

 

 

取代(要打上:[冒號]進入指令模式)

  • : [範圍]s/[目標字串]/[替代字串]/[參數(g,c,i,e)]

※範圍

  1. 1,10 – 表示取代第1行~第10行
  2. 6,$ – 表示取代第6行~最後1行
  3. % – 檔案全部內容

※參數

  1. g – 取代範圍為整行,基本都要加上此參數
  2. c – 取代每筆資料前都先詢問
  3. e – 不顯示錯誤
  4. i – 不分大小寫

 

 

視窗操作(ctrl+w為起手式)

  • ctrl+w v – 垂直分割
  • ctrl+w s – 水平分割
  • ctrl+w 方向鍵 – 切換視窗

一般模式下其他常用指令

  • gg – 移至文字檔開頭(可以直接以good game來記憶,gg就是遊戲結束從頭開始囉!)
  • G – 移至文字檔結尾
  • H – 移至螢幕的第一列
  • M -移至螢幕中間那一列
  • L –  移至螢幕結尾那一列
  • dw – 刪除一個單字

指令模式下其他常用指令

  • :n – 移動至第n行

vim環境設定(若要每次開啟vim就自動做好環境設定,則可直接寫入~/.vimrc這個設定檔裡)

  • :set number – 顯示行號
  • :set all – 顯示目前所有設定值內容

其他按鍵功能

  • F11 – 讓Terminal在ubuntu圖形介面下呈現全螢幕模式
  • ctrl +方向鍵 – 單字跳換

 

由於我們已習慣在Word、筆記本等文書軟體上操作,因此在練習使用vim時,時常忽略自己身處在什麼模式下操作,只要熟悉模式的切換與各種模式的常用指令,加上不間斷的使用,很快就能熟記指令,之後也能直接在伺服器上隨心所欲的編輯文件。