asciinema(https://asciinema.org/~zky524)
Install asciinema
$ sudo apt install asciinema
start Record
$ asciinema rec
asciinema(https://asciinema.org/~zky524)
Install asciinema
$ sudo apt install asciinema
start Record
$ asciinema rec
時下360度影片正熱
近期有幸試玩一款LGR105.ATWNTS的環景相機
其實錄製步驟非常簡單
實測發現此款相機因是長型結構必須配置腳架錄影,因而會錄製到腳架
而播放環景影片 其實一般的Potplayer、VLC都可以支援
上傳環景影片,Youtube和Facebook都已經能支援播放
至於剪輯,如果只是簡單的去頭去尾
Moo0 Video Cutter這種綠色軟體也能做得到
相信以後編輯環景影片會更為便利。
如果架設Wordpress網站在網頁端出現了PHP的語言
代表server缺少了libapache2-mod-php的模組
以Ubuntu Server安裝libapache2-mod-php7.0為例,只要輸入:
$ sudo apt install libapache2-mod-php7.0
回到頁面重整後,即可解決!
網站中最有價值的就是日積月累的資料
因此資料庫的備份工作可說是非常重要
但如果資料庫很多 該怎麼處理?
不管你是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對話,就必須學習shell,而shell是一支程式,提供方便的文字介面使我們能與作業系統溝通。
~$ cat /etc/shells
~$ echo $0
~$ chsh <shell name>
常用基本指令
系統狀態資訊
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)
製作硬式連結
~$ ln [原始檔案案或目錄][目標檔案或目錄]
製作軟式連結
~$ ln -s [原始檔案案或目錄][目標檔案或目錄]
find : 尋找檔案
~$ find [路徑] -name [檔名]
或許你會覺得終端機裡呈現的內容很亂
因此你可以這樣做…
~$ find [路徑] -name [檔名] 1>success.log 2>error.log
此段指令一樣是尋找檔案,但符合尋找結果會導向到success.log,結果不符則導向到error.log
當然你也可以直接在終端機顯示符合尋找結果的訊息,但捨棄結果不符的訊息
~$ find [路徑] -name [檔名] 2>&-
標準I/O控制
有時,我們會有需要一次用到兩個指令去達成我們的目的,需要一個符號用來連結命令的輸出與輸入,就是「|」(管線命令 pipe commands)
例如: ls | wc -l (先查看檔案,並將結果輸入給wc -l計算行數)
如果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亂發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(Vi IMproved)
就英文來看即可知vim是vi的進階版本,具顏色顯示功能的文字編輯器。
~$ sudo apt-get install vim
順便一提,我們常常下安裝指令,之後都需要做安裝的確認,如果想全自動安裝,不詢問yes或no,只要加上-y即可,以安裝vim為例:
~$ sudo apt-get -y install vim
vim常用的模式:
開啟舊檔
~$ vim test.txt
或
進入vim,然後輸入:e test.txt (e,edit)
存檔與離開
剪下、複製與貼上
刪除
復原(undo)和重做(redo)
尋找
取代(要打上:[冒號]進入指令模式)
※範圍
※參數
視窗操作(ctrl+w為起手式)
一般模式下其他常用指令
指令模式下其他常用指令
vim環境設定(若要每次開啟vim就自動做好環境設定,則可直接寫入~/.vimrc這個設定檔裡)
其他按鍵功能
由於我們已習慣在Word、筆記本等文書軟體上操作,因此在練習使用vim時,時常忽略自己身處在什麼模式下操作,只要熟悉模式的切換與各種模式的常用指令,加上不間斷的使用,很快就能熟記指令,之後也能直接在伺服器上隨心所欲的編輯文件。