1. 程式人生 > 實用技巧 >termux的基本使用

termux的基本使用

轉載於https://www.sqlsec.com/2018/05/termux.html
來源於國光大大


Termux 高階終端安裝使用配置教程,剛寫這篇文章的時候,當時國內 Termux 相關的文章和資料相對來說還是比較少的,就花了幾天寫了這一篇文章,沒想到居然火了,受寵若驚。所以這篇文章國光就打算定期更新了,想打造成 termux 的中文文件,希望本文可以幫助到更多對 Termux 感興趣的朋友,發揮 Android 平臺更大的 DIY 空間。

版權宣告

17 年開始接觸到 Termux,就發現它有很多值得挖掘的潛力,於是抽空在 18 年的某一個法定的整整花了三天假期開才寫完第一版文章,然後文章陸陸續續更新到現在,期間有一次誤操作不小心把部落格所有的評論都刪了,否則這篇文章的評論數會更多。現在本文的截圖數量達到了150張左右了,文字數目已經數萬多了。自己花了很長時間寫出來的原創文章,抄襲白嫖黨直接Ctrl+C Ctrl+V只要幾秒鐘。原創很辛苦,抄襲的成本卻很低,維權的成本又很高,雖然國內目前的抄襲風氣很嚴重,但是我相信尊重原創,保護原創從現在做起從大家做起,tomorrow is another day! 如果大面轉載引用的話 希望標明文章出處:

Termux 高階終端安裝使用配置教程

https://www.sqlsec.com/2018/05/termux.html

學習資源

考慮到手機使用者體驗和離線觀看教程的需求,國光打包了幾種風格的 PDF版本,並且已經插入好目錄,閱讀體驗會比較友好。

黑色背景的 PDF : Termux入門指南(Vue 黑)

白色背景的 PDF : Termux入門指南(Github 白)

macOS light風格 : Termux入門指南(macOS 白)

Gothic風格 : Termux入門指南(簡約線條)

早期我的資訊保安交流群裡面陸陸續續加了很多 Temux 玩家,然而那是一個資訊保安交流群,Termux 的提問經常沒有人回答,所以後來我就把部落格所有的加群連結給去了。現在國光我單獨建立了 1 個Temux 群,加群連結藏在本文當中,是一個彩蛋,緣妙不可言,隨緣入群吧。好了話不多說,教程開始了,希望本文可以幫助到大家。

Termux 簡介

文件相關

下載地址

Google Play 下載的版本比酷安要新,而且外掛這塊安裝也很方便,有能力的朋友建議首先考慮下載Google PLay版本的,然後考慮 F-Droid版本,最後再考慮可憐兮兮的酷安版本。

Termux 是一個 Android 下一個高階的終端模擬器,開源且不需要 root,支援 apt 管理軟體包,十分方便安裝軟體包,完美支援 Python、 PHP、 Ruby、 Nodejs、 MySQL等。隨著智慧裝置的普及和效能的不斷提升,如今的手機、平板等的硬體標準已達到了初級桌面計算機的硬體標準,用心去打造 DIY 的話完全可以把手機變成一個強大的極客工具。

初始化

第一次啟動Termux的時候需要從遠端伺服器載入資料,然而可能會遇到這種問題:

Verilog
Ubable to install
Termux was unable to install the bootstrap packages.
Check your network connection and try again.

這裡的Termux官方遠端的伺服器地址是: http://termux.net/bootstrap/

目前解決方法有兩種:

  1. VPN 全域性代理 (成功率很高)
  2. 如果你是 WiFi 的話嘗試切換到運營商流量 (有一定成功率)
  3. ① Google Play ② F-Droid ③ 酷安 根據這個順序重複1、2操作

基本操作

基本操作還是要學習一下的,可以事半功倍。

縮放文字

可以使用縮放手勢來調整其字型大小。 對就是 雙指放大縮小照片那樣操作。

長按螢幕

長按螢幕會調出顯示選單項(包括複製、貼上、更多),方便我們進行復制或者貼上

More 選單的說明如下:

Bash
長按螢幕
├── COPY:    # 複製
├── PASTE:   # 貼上
├── More:    # 更多
   ├── Select URL:             # 提取螢幕所有網址
   └── Share transcipt:        # 分享命令指令碼
   └── Reset:                  # 重置
   └── Kill process:           # 殺掉當前會話程序
   └── Style:                  # 風格配色 需要自行安裝
   └── Keep screen on:         # 保持螢幕常亮
   └── Help:                   # 幫助文件

會話管理

顯示隱藏式導航欄,可以新建、切換、重新命名會話session和呼叫彈出輸入法

同時在Android的通知欄中也可以看到當前Termux執行的會話數:

常用按鍵

常用鍵是PC端常用的按鍵如: ESC鍵、Tab鍵、CTR鍵、ALT鍵,有了這些按鍵後可以提高我們日常操作的效率,所以Termux後面的版本預設都是顯示這個擴充套件功能按鍵的。 (18年的時候預設是不顯示的)

開啟和隱藏這個擴充套件功能按鍵目前有下面兩種方法:

方法一

從左向右滑動,顯示隱藏式導航欄,長按左下角的KEYBOARD

方法二

使用Termux快捷鍵:音量++Q鍵 或者 音量++K

當然這個常用按鍵在 Termux 後面的版本也支援自定義的,詳情見本文的「進階配置」-「定製常用按鍵」這一小節。

基礎知識

這些基礎知識簡單瞭解一下就可以了,Linux 用的多了 就會慢慢熟悉理解了。

快捷鍵表

Ctrl鍵是終端使用者常用的按鍵,但大多數觸控鍵盤都沒有這個按鍵,因此 Termux 使用音量減小按鈕來模擬Ctrl鍵。
例如,在觸控鍵盤上按音量減小+ L就相當於是鍵盤上按Ctrl + L的效果一樣,達到清屏的效果。

  • Ctrl + A -> 將游標移動到行首
  • Ctrl + C -> 中止當前程序
  • Ctrl + D -> 登出終端會話
  • Ctrl + E -> 將游標移動到行尾
  • Ctrl + K -> 從游標刪除到行尾
  • Ctrl + U -> 從游標刪除到行首
  • Ctrl + L -> 清除終端
  • Ctrl + Z -> 掛起(傳送SIGTSTP到)當前程序
  • Ctrl + alt + C -> 開啟新會話(僅適用於 黑客鍵盤)

音量加鍵也可以作為產生特定輸入的特殊鍵.

  • 音量加 + E -> Esc鍵
  • 音量加 + T -> Tab鍵
  • 音量加 + 1 -> F1(音量增加 + 2 → F2…以此類推)
  • 音量加 + 0 -> F10
  • 音量加 + B -> Alt + B,使用readline時返回一個單詞
  • 音量加 + F -> Alt + F,使用readline時轉發一個單詞
  • 音量加 + X -> Alt+X
  • 音量加 + W -> 向上箭頭鍵
  • 音量加 + A -> 向左箭頭鍵
  • 音量加 + S -> 向下箭頭鍵
  • 音量加 + D -> 向右箭頭鍵
  • 音量加 + L -> | (管道字元)
  • 音量加 + H -> 〜(波浪號字元)
  • 音量加 + U -> _ (下劃線字元)
  • 音量加 + P -> 上一頁
  • 音量加 + N -> 下一頁
  • 音量加 + . -> Ctrl + \(SIGQUIT)
  • 音量加 + V -> 顯示音量控制
  • 音量加 + Q -> 切換顯示的功能鍵視
  • 音量加 + K -> 切換顯示的功能鍵檢視

快捷鍵用的熟悉的話也可以極大提高操作的效率。

基本命令

Termux 除了支援 apt 命令外,還在此基礎上封裝了pkg命令,pkg 命令向下相容 apt 命令。apt命令大家應該都比較熟悉了,這裡直接簡單的介紹下pkg命令:

Bash
pkg search <query>              # 搜尋包
pkg install <package>           # 安裝包
pkg uninstall <package>         # 解除安裝包
pkg reinstall <package>         # 重新安裝包
pkg update                      # 更新源
pkg upgrade                     # 升級軟體包
pkg list-all                    # 列出可供安裝的所有包
pkg list-installed              # 列出已經安裝的包
pkg show <package>              # 顯示某個包的詳細資訊
pkg files <package>             # 顯示某個包的相關資料夾路徑

國光建議大家使用 pkg 命令,因為 pkg 命令每次安裝的時候自動執行 apt update 命令,很是方便

軟體安裝

除了通過上述的 pkg 命令安裝軟體以外,如果我們有 .deb 軟體包檔案,也可以使用 dpkg 進行安裝。

Bash
dpkg -i ./package.de         # 安裝 deb 包
dpkg --remove [package name] # 解除安裝軟體包
dpkg -l                      # 檢視已安裝的包
man dpkg                     # 檢視詳細文件

目錄結構

Bash
echo $HOME
/data/data/com.termux/files/home

echo $PREFIX
/data/data/com.termux/files/usr

echo $TMPPREFIX
/data/data/com.termux/files/usr/tmp/zsh

長期使用 Linux 的朋友可能會發現,這個HOME路徑看上去和我們電腦端的不太一樣,這是為了方便 Termux 提供的特殊的環境變數。

埠檢視

Android 10 以下版本

Andorid 10 以下的版本是可以正常使用netstat 命令的,這樣可以方便的檢視埠開放資訊

Bash
# 檢視所有埠
netstat -an

# 檢視3306埠的開放情況
netstat -an|grep 3306

Android 10 版本

Andorid 10 版本的Termux 下無法正常使用 netstat -an 命令,國光的解決方法是安裝一個 nmap,然後掃描本地埠(彎道超車):

Bash
# 安裝nmap埠掃描神器
pkg install nmap

# 掃描本地埠
nmap 127.0.0.1

使用 nmap 操作 純屬無奈之舉,但是又不是不能用(源於:羅永浩名言 :-))

進階配置

要想使用體驗好,進階配置少不了。(單押)

更換國內源

使用pkg update 更新一下的時候發現預設的官方源網速有點慢,在這個喧囂浮躁的時代,我們難以靜下心等待,這個時候就得更換成國內的Termux清華大學源了,加快軟體包下載速度。

方法一:自動替換(推薦)

可以使用如下命令自動替換官方源為 TUNA 映象源

pkg update 卡住的話多按幾次回車 不要傻乎乎的等

Bash
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list

sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list

sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list

pkg update

更換源幾秒鐘就可以執行完pkg update了,心裡頓時樂開了花。

方法二:手動修改

請使用內建或安裝在 Termux 裡的文字編輯器,例如 vi / vim / nano 等直接編輯原始檔,不要使用 RE 管理器等其他具有 ROOT 許可權的外部 APP 來修改 Termux 的檔案

編輯 $PREFIX/etc/apt/sources.list 修改為如下內容

Bash
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main

編輯 $PREFIX/etc/apt/sources.list.d/science.list 修改為如下內容

Bash
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable

編輯 $PREFIX/etc/apt/sources.list.d/game.list 修改為如下內容

Bash
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable

安裝基礎工具

更換源之後來趕緊來下載安裝一些基本工具吧,這些工具基本上是 Linux 系統自帶的,因為 Termux 為了體積不過大,預設是沒有帶這些工具的,執行下面的命令來安裝:

Bash
pkg update
pkg install vim curl wget git tree -y

終端配色方案

指令碼專案地址https://github.com/Cabbagec/termux-ohmyzsh/

該指令碼主要使用了zsh來替代bash作為預設 shell,並且支援色彩和字型樣式,同時也激活了外接儲存,可以直接訪問SD卡下的目錄。主題預設為 agnoster,顏色樣式預設為 Tango,字型預設為 Ubuntu。

執行下面這個命令確保已經安裝好了 curl 命令

Bash
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"  

如果因為不可抗力的原因,出現port 443: Connection refused網路超時的情況,那麼執行下面國光遷移到國內的地址的命令即可:

Bash
sh -c "$(curl -fsSL https://html.sqlsec.com/termux-install.sh)"  

Android6.0 以上會彈框確認是否授權訪問檔案,點選始終允許授權後 Termux 可以方便的訪問SD卡檔案。

手機 App 預設只能訪問自己的資料,如果要訪問手機的儲存,需要請求許可權,如果你剛剛不小心點了拒絕的話,那麼可以執行以下命令來重新獲取訪問許可權:

Bash
termux-setup-storage

指令碼允許後先後有如下兩個選項:

Bash
Enter a number, leave blank to not to change: 14
Enter a number, leave blank to not to change: 6

分別選擇色彩樣式字型樣式,重啟Termux app後生效配置。不滿意剛剛的效果,想要繼續更改配色方案的話,可以根據下面命令來更改對應的色彩配色方案:

設定色彩樣式

輸入chcolor命令更換色彩樣式,或者:~/.termux/colors.sh命令

設定字型

執行chfont更換字型,或者:~/.termux/fonts.sh命令

建立目錄軟連線

執行過上面的一鍵配置指令碼後,並且授予 Termux 檔案訪問許可權的話,會在家目錄生成storage目錄,並且生成若干目錄,軟連線都指向外接儲存卡的相應目錄:

建立QQ資料夾軟連線

手機上一般經常使用手機QQ來接收檔案,這裡為了方便檔案傳輸,直接在storage目錄下建立軟連結.
QQ

Bash
ln -s /data/data/com.termux/files/home/storage/shared/tencent/QQfile_recv QQ

TIM

Bash
ln -s /data/data/com.termux/files/home/storage/shared/tencent/TIMfile_recv TIM

這樣可以直接在home目錄下去訪問QQ資料夾,大大提升了工作效率。

定製常用按鍵

在 Termux v0.66 的版本之後我們可以通過 ~/.termux/termux.properties 檔案來定製我們的常用功能按鍵,預設是不存在這個檔案的,我們得自己配置建立一下這個檔案。

下面做嘗試簡單配置一下這個檔案:

Bash
# 新建並編輯配置檔案
vim ~/.termux/termux.properties

內容為:

Bash
extra-keys = [ \
 ['ESC','|','/','HOME','UP','END','PGUP','DEL'], \
 ['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN','BKSP'] \
]

如果無法建立這個檔案,那麼得首先新建一下這個目錄 mkdir ~/.termux

修改完成儲存檔案後,重啟 Termux app生效配置:

可以直接輸入特殊的字串,例如上面的例子中的|就是一個字串,此外 Termux 還有封裝了一些特殊按鍵,入上面例子中的ESC就是 Termux 自帶的按鍵,完整的特殊按鍵表如下:

按鍵說明
CTRL 特殊按鍵
ALT 特殊按鍵
FN 特殊按鍵
ESC 退出鍵
TAB 表格鍵
HOME 原位鍵
END 結尾鍵
PGUP 上翻頁鍵
PGDN 下翻頁鍵
INS 插入鍵
DEL 刪除鍵
BKSP 退格鍵
UP 方向鍵 上
LEFT 方向鍵 左
RIGHT 方向鍵 右
DOWN 方向鍵 下
ENTER 回車鍵
BACKSLASH 反斜槓 \
QUOTE 雙引號鍵
APOSTROPHE 單引號鍵
F1~F12 F1-F12按鍵

上面列出的三個特殊鍵中的每一個最多隻能在附加鍵定義中列出一次,超過次數將會報錯。

下面是國光我自用的按鍵表:

Bash
extra-keys = [ \
 ['ESC','|','/','`','UP','QUOTE','APOSTROPHE'], \
 ['TAB','CTRL','~','LEFT','DOWN','RIGHT','ENTER'] \
]

zsh 主題配色

編輯家目錄下的.zshrc配置檔案

Bash
$ vim .zshrc

第一行可以看到,預設的主題是agnoster主題:

實際上這個主題也蠻酷的,如果你還想更換其他主題的話,那麼在.oh-my-zsh/themes目錄下放著oh-my-zsh所有的主題配置檔案,只要將預設的 agnoster 更換為其他的主題檔名即可。
下面是國光認為還不錯的幾款主題

agnoster

ys

robbyrussell

主題比較多,國光這裡就不列舉了,感興趣大家可以一個個嘗試去看看。 當然如果你是個變態的話,可以嘗試random 主題,每開啟一個會話配色主題都是隨機的.

Bash
ZSH_THEME="random"

zsh 外掛推薦

zsh 之所以受歡迎除了好看的配色以為,另一個原因就是強大的外掛了。下面國光列舉一款比較實用的外掛的安裝方法,更多強大的外掛等待大家自己去探索。

autosuggestions

根據使用者的平時使用習慣,終端會自動提示接下來可能要輸入的命令,這個實際使用效率還是比較高的:

Bash
# 拷貝到 plugins 目錄下
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

~/.zshrc 中配置:

Ini
plugins=(其他的外掛 zsh-autosuggestions)

輸入zsh命令生效配置:

效果圖

可以看到國光我只敲了一個v後面的命令就自動提示補全了,這時候只要按右方向鍵,在 Termux 裡面的快捷鍵是 音量加 + D,就可以直接補全命令了。

修改啟動問候語

預設的啟動問候語如下:

這個啟動問候語在前期對於初學者有一定的幫助,但是隨著你們 Termux 的熟悉,這個預設的問候語就會顯得比較臃腫。編輯問候語檔案可以直接修改啟動顯示的問候語:

Bash
vim $PREFIX/etc/motd

修改完的效果如下:

本文版本歸國光所有 轉載註明出處哦

這樣啟動新的會話的時候看上去就會簡潔很多。什麼你也想要這個效果? 吶 下面是國光自己生成的,可以直接複製貼上:

Ini
  _____                              
 |_   _|__ _ __ _ __ ___  _   ___  __
   | |/ _ \ '__| '_ ` _ \| | | \ \/ /
   | |  __/ |  | | | | | | |_| |>  < 
   |_|\___|_|  |_| |_| |_|\__,_/_/\_\

超級管理員身份

實際上 Termux 不需要 root 許可權也可以折騰各種各樣的操作的,大家不必對 root 抱有啥幻想,本文的操作基本上沒有涉及到手機要用到 root 的地步。

手機沒有root

利用proot可以為手機沒有root的使用者來模擬一個root的環境,這裡主要是經典的 Linux 檔案系統佈局上的模擬。

Bash
pkg install proot -y

然後終端下面輸入:

Bash
termux-chroot

即可模擬root環境,該環境模仿 Termux 中的常規Linux檔案系統,但是不是真正的 root。

輸入exit可回到普通使用者的檔案系統。

手機已經root

安裝tsu,這是一個su的 Termux 版本,是一個真正的root許可權,用來在termux上替代su,操作不慎可能對手機有安全風險。因為官方封裝了,所以安裝也很簡單:

Bash
pkg install tsu -y

然後終端下面輸入:

Bash
tsu

即可切換root使用者,這個時候會彈出root授權提示,給予其root許可權,效果圖如下:

18年的老圖了 將就著看吧
在管理員身份下,輸入exit可回到普通使用者身份。不過本文沒有設計到 root 許可權的操作,一些底層的工具可能才會需要,考慮到 root 的不安全性 和 那些工具的冷門性,國光這裡就沒有繼續拓展。

開發環境

Termux 支援的開發環境很強,可以完美的執行 C、Python、Java、PHP、Ruby等開發環境,建議讀者朋友們選擇自己需要的開發環境折騰。

編輯器

寫程式碼前總得折騰一下編輯器,畢竟磨刀不誤砍柴工嘛。Termux 支援多種編輯器,完全可以滿足日常使用需求。

Emacs

據說Emacs是神的編輯器,國光我這種小菜雞還不會使用哎,但是 Termux 官方已經封裝好了 Emacs了,我們安裝起來就會簡單很多:

Bash
pkg install emacs  

nano

nano 是一個小而美的編輯器。具有如下:開啟多個檔案,每行滾動,撤消/重做,語法著色,行編號等功能

同樣安裝起來也很簡單:

Bash
pkg install nano

Vim

Vim 被稱為編輯器之神,基本上 Linux 發行版都會自帶 Vim,這個在前文基本工具已經安裝了,如果你沒有安裝的話,可以使用如下命令安裝:

Bash
pkg install vim

並且官方也已經封裝了vim-python,對Python相關的優化。

Bash
pkg install vim-python

解決漢字亂碼

如果你的Vim開啟漢字出現亂碼的話,那麼在家目錄(~)下,新建.vimrc檔案

Bash
vim .vimrc

新增內容如下:

Ini
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030

然後source下變數:

Bash
source .vimrc

效果圖

Vim 配色

Termux Vim 自帶了如下的配色:

Bash
ls /data/data/com.termux/files/usr/share/vim/vim82/colors

desert.vim    morning.vim    shine.vim    blue.vim      elflord.vim   murphy.vim     slate.vim    darkblue.vim  evening.vim   pablo.vim      industry.vim  peachpuff.vim  torte.vim    delek.vim     koehler.vim   ron.vim        zellner.vim   

配色可以自己一個個嘗試一下,還是向上面的漢字亂碼那樣,編輯家目錄下的.vimrc檔案:

Bash
vim ~/.vimrc

新增如下內容:

Ini
set nu                " 顯示行號
colorscheme desert    " 顏色主題
syntax on             " 開啟語法高亮

下面是國光隨便找的幾個顏色主題效果,感興趣的朋友可以自己一個個嘗試:

slate

murphy

peachpuff

Apache

Apache是一個開源網頁伺服器軟體,由於其跨平臺和安全性,被廣泛使用,是最流行的Web伺服器軟體之一。

安裝 Apache

Bash
pkg install apache2

啟動 Apache

Bash
apachectl start

然後瀏覽器訪問: http://127.0.0.1:8080 訪問是否成功啟動:

Termux 自帶的 Apache 的網站預設路徑為:

$PREFIX/share/apache2/default-site/htdocs/index.html

停止 Apache

Bash
apachectl stop

重啟 Apache

Bash
apachectl restart

Apache 解析 PHP

既然Apache、PHP、MySQL都成功安裝的話,那麼現在只要配置好 Apache 解析 PHP 之後就可以打造一個 Android 平臺上的 LAMPP平臺了。

安裝 php-apache

預設的 Apache 是無法解析 PHP的,我們需要安裝相應的包:

Bash
pkg install php-apache

配置 Apache

Termux 上的 Apache 預設配置檔案的路徑為:

$PREFIX/etc/apache2/httpd.conf

直接編輯配置檔案:

Bash
vim /data/data/com.termux/files/usr/etc/apache2/httpd.conf

配置檔案裡面搜尋 PHP 沒有相關的模組,所以需要我們手動新增 PHP7 的模組:

Bash
LoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so 

並在剛剛這個語句下方新增解析器,內容如下:

Properties
<FilesMatch \.php$>
  SetHandler application/x-httpd-php
</FilesMatch> 

接著繼續往下找配置檔案裡面配置預設首頁的地方,我們新增 index.php 到預設首頁的規則裡面:

Properties
<IfModule dir_module>
  DirectoryIndex index.php index.html
</IfModule>

這表示網站目錄的預設首頁是 index.php,如果沒有 index.php 系統會自動尋找 index.html做為預設首頁了。

修改完 Apache 的配置檔案後,記得使用 apachectl restart 重啟 Apache 服務,然後這個時候回發現我們重啟居然報錯了:

Verilog
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
AH00013: Pre-configuration failed

不要慌問題不大,下面來解決這個問題

解決 Apache PHP 報錯

先找到如下行

Properties
LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so

給他註釋掉為:

Properties
#LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so

然後找到如下行:

Properties
#LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so

取消註釋為:

Properties
LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so

最終的示例圖如下:

解析 PHP 測試

在 Apache 的網站根目錄下,建立一個 index.php ,測試一下 phpinfo() 函式能否正常執行:

Bash
echo '<?php phpinfo(); ?>' > $PREFIX/share/apache2/default-site/htdocs/index.php

然後瀏覽訪問: http://127.0.0.1:8080 檢視效果:

OK

C

Termux 官方封裝了 Clang,他是一個C、C++、Objective-C和Objective-C++程式語言的編譯器前端。

安裝 clang

Bash
pkg install clang

編譯測試

clang 在編譯這一塊很強大,感興趣的朋友可以去網上檢視詳細的教程,國光這裡只演示基本的 Hello World使用。寫一個Hello World的C程式,如下 hello.c:

C
#include <stdio.h>

int main(){
  printf("Hello World")
  return 0;
}

編輯完成後,使用 clang 來編譯生成 hello 的可執行檔案:

Bash
clang hello.c -o hello

效果圖

Java

Termux 原生編譯JAVA只能使用 ecj (Eclipse Compiler for Java) 和 dx 了,然後使用 Android 自帶的 dalvikvm 執行。如果想要完整體驗JAVA環境的話,另一個方法就是 Termux 裡面安裝一個完整的 Linux 系統,然後在 Linux裡面執行Java,安裝系統部分下面文章會詳細介紹,這一節國光只介紹最基本的操作。

安裝編譯工具

Bash
pkg install ecj dx -y

國光這裡只演示基本的 Hello World 使用。寫一個Hello World的 JAVA 程式,如下 HelloWorld.java:

Java
public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello Termux");
    }
}

編譯生成 class 檔案

Bash
ecj HelloWorld.java

編譯生成 dex 檔案

Bash
dx --dex --output=hello.dex HelloWorld.class

使用 dalvikvm 執行

格式規範如下:dalvikvm -cp dex檔名 類名

Bash
dalvikvm -cp hello.dex HelloWorld

效果圖

MariaDB(MySQL)

MariaDB 是 MySQL 關係資料庫管理系統的一個復刻,由社群開發,有商業支援,旨在繼續保持在GNU GPL下開源。開發這個分支的原因之一是:甲骨文公司收購了 MySQL 後,有將 MySQL 閉源的潛在風險,因此社群採用分支的方式來避開這個風險。

安裝 MariaDB

Termux 官方也封裝了MariaDB,所以安裝起來很方便:

Bash
pkg install mariadb

這裡基本上會安裝很順利,但是早期使用者可能出現安裝失敗的情況,如果安裝失敗的話,這個時候手動在配置目錄下建立my.cnf.d資料夾即可:

Bash
$ cd /data/data/com.termux/files/usr/etc/
$ mkdir my.cnf.d

初始化資料庫

早期的 Termux 安裝完 MySQL是需要初始化資料庫的,新版本在安裝時候就已經初始化了資料庫

Bash
mysql_install_db

2020年4月19日:國光今天安裝的 MySQL 發現已經存在 mysql.user 表了,無需初始化:

啟動 MySQL 服務

因為正常啟動完成後,MySQL 這個會話就一直存活,類似與 Debug 除錯一樣,此時使用Ctrl + C -> 中止當前程序也無濟於事,體驗式就一點都不優雅,所以這裡國光使用Linux自帶的nohup命令將其放到後臺啟動。

Bash
nohup mysqld &

圖片上這個17115此時就是mysqld的程序PID號,我們使用如下命令驗證一下是否正確:

Bash
ps aux|grep mysql

可以看到果然是程序的 PID 號:

至於 nohup 執行的提示

Ini
nohup: ignoring input and appending output to `nohup.out'

這個是正常現象,無傷大雅,Termux 下就這樣將就著用吧。

停止 MySQL 服務

Termux 下沒有好的辦法退出 MySQL 服務,只能強制殺掉程序了,使用如下命令格式可以輕鬆殺掉程序:

Bash
kill -9 PID

成功kill掉

當然每次檢視程序的PID號,再殺掉程序有點繁瑣了,實際上這一步可以直接這樣操作:

Bash
kill -9 `pgrep mysql`

Awesome ! 優雅!

預設的兩個使用者

使用者登入的前提是 MySQL 服務在後臺執行,如果你按照上一小節操作把 MySQL kill 掉的話,請重新啟動一下MySQL 服務

新版本的 Termux 安裝初始化資料庫的時候包含兩個高許可權使用者,一個是無法訪問的 root 使用者

提示拒絕root登入

另一個使用者就是 Termux 的使用者名稱,預設密碼為,我們來登入看看:

Bash
mysql -u $(whoami)

可以成功登入 並執行SQL語句

那麼這個無法登入的 root 使用者該怎麼辦呢 ?不要著急 繼續往下看

修改 root 密碼

老版本的 Termux 的直接使用mysql_secure_installation可以設定密碼,但是新版本的安全策略變更了 我們在設定密碼的時候回提示當前密碼不正確,所以這條路行不通了。

這裡我們只能使用 MySQL 的另一個使用者名稱,即 Termux 使用者名稱登入,然後來修改 root 的密碼,使用如下命令修改 root 密碼:

Bash
# 登入 Termux 使用者
mysql -u $(whoami)

# 修改 root 密碼的 SQL語句
use mysql;
set password for 'root'@'localhost' = password('你設定的密碼');

# 重新整理許可權 並退出
flush privileges;
quit; 

細節圖片

OK! 如何和圖片上差不的效果,那麼修改 root 密碼就成功了。

root 使用者登入

修改完密碼之後我們就可以美滋滋地使用 root 使用者來登入了:

Bash
mysql -u root -p
Enter password: xxxxx(這裡輸入你的密碼)

遠端登入 MySQL

使用 ip a 後檢視 IP 地址後,嘗試電腦端遠端訪問 Termux 的資料庫:

發現預設是無法成功連線的,這個時候我們需要到資料庫手動開啟 root 使用者的遠端訪問許可權:

這裡的 P@ssw0rd 是我的 root 密碼

Sql
grant all on *.* to root@'%' identified by 'P@ssw0rd' with grant option;
flush privileges;

執行完成後 嘗試 PC 端遠端過去看看:

Nginx

Nginx 是一個高效能的 Web 和反向代理伺服器,Nginx 用的熟悉的話,下面搭建各種網站也就輕而易舉了。

安裝 Nginx

Termux 安裝 Nginx 也很簡單,一條命令即可:

Bash
pkg install nginx

安裝完成後,國光的習慣是檢視一下版本資訊:

1.17.10 版本

測試 Nginx

測試檢查 Nginx 的配置檔案是否正常:

Bash
nginx -t

現在測試肯定是OK的,這個多用於我們修改完 Nginx 的配置檔案後的檢查。

啟動 Nginx

早期版本的 Termux 需要在termux-chroot 環境下才可以成功啟動 Nginx ,新版本的 Termux 可以直接啟動,很是方便:

Bash
nginx

Termux 在 Nginx 上預設執行的埠號是 8080, 使用pgrep命令也可以檢視 Nginx 程序相關的PID號。

然後手機本地直接訪問http://127.0.0.1:8080 檢視 Nginx 是否正常啟動:

重啟 Nginx

一般當修改完 Nginx 相關的配置檔案時,我們需要重啟 Nginx,使用如下命令即可重啟:

Bash
nginx -s reload

停止 Nginx

方法一 原生停止

Bash
nginx -s stop

或者

Bash
nginx -s quit

quit 是一個優雅的關閉方式,Nginx在退出前完成已經接受的連線請求。Stop 是快速關閉,不管有沒有正在處理的請求。

方法二 殺掉程序

只需三番鍾,裡造會幹我一樣,愛象節款遊戲 扯遠了,只需要1條命令,即可優雅的終止掉 Nginx 服務:

Bash
kill -9 `pgrep nginx`

貌似手機黨 並不好敲 這個 ` 符號 =,= ,如果實在敲不出來,那就分兩步走吧:

Bash
# 查詢 nginx 程序相關的 PID 號
pgrep nginx

# 殺掉 查詢出的 PID號程序
kill -9 PID

Nginx 解析 PHP

Termux 下的 Nginx 解析 PHP 這裡單獨拿出一級標題來敘述,成功解析的話,下面安裝 wordpress等 PHP網站就會輕鬆很多。

安裝 php-fpm

Nginx 本身不能處理 PHP,它只是個 Web 伺服器,當接收到 PHP 請求後發給 PHP 直譯器處理。Nginx 一般是把請求轉發給 fastcgi 管理程序處理,PHP-FPM 是一個PHP FastCGI管理器,所以這裡得先安裝它:

Bash
pkg install php-fpm

安裝完成順便檢查一下版本資訊吧:

配置 php-fpm

編輯 php-fpm 的配置檔案 www.conf:

Bash
vim $PREFIX/etc/php-fpm.d/www.conf

定位搜尋 listen = 找到

Ini
listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock

將其改為:

Ini
listen = 127.0.0.1:9000

???啥 你不會使用 vim 搜尋 ㄟ(▔,▔)ㄏ 那就老老實實一個個翻頁吧。

配置 Nginx

編輯 Nginx 的配置檔案 nginx.conf:

Bash
vim $PREFIX/etc/nginx/nginx.conf

下面國光貼出配置好的完整配置檔案,大家可以參考下面這些圖,只需要2大步驟:

  1. 新增 index.php 到預設首頁的規則裡面

  1. 取消 location ~ \.php$ 這些註釋,按照圖片上的 提示修改:

Termux 裡面的 Nginx 預設網站的根目為:

/data/data/com.termux/files/usr/share/nginx/html

如果想要修改預設路徑的話 只需要在配置檔案中 替換2處出現的這個路徑即可

下面貼一份完整的配置檔案:

Nginx

worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;
        location / {
            root   /data/data/com.termux/files/usr/share/nginx/html;
            index  index.html index.htm index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /data/data/com.termux/files/usr/share/nginx/html;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /data/data/com.termux/files/usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

測試 PHP 解析

Nginx 預設網站的根目錄為:

Bash
/data/data/com.termux/files/usr/share/nginx/html

在這個網站根目錄下新建 info.php 內容為:<?php phpinfo(); ?>

Bash
echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/info.php

啟動服務

先啟動 php-fpm 服務:

Bash
php-fpm

然後再啟動 Nginx 服務

Bash
nginx

如果你的 Nginx 已經啟動了的話,使用 nginx -s reload 重啟 Nginx

訪問測試

瀏覽器訪問http://127.0.0.1:8080/info.php 來看看剛剛新建的測試檔案是否解析了:

哇哦~ awesome

Nodejs

Node.js 是能夠在伺服器端執行 JavaScript 的開放原始碼、跨平臺 JavaScript 執行環境。

安裝 Nodejs

nodejs-lts 是長期支援版本,如果執行 pkg install nodejs 版本後,發現 npm 報如下錯誤:

Bah
segmentation fault

那麼這個時候可以嘗試解除安裝當前版本 pkg uninstall nodejs 然後執行下面命令安裝長期穩定版本:

Bash
pkg install nodejs-lts

安裝完成後使用如下命令檢視版本資訊:

Bash
node -V
npm -V

Hello World

新建一個 hello.js 指令碼,內容如下:

Javascript
console.log('Hello Termux');

然後嘗試執行:

Bash
$ node hello.js
Hello Termux

http-server

http-server 是一個基於 Node.js 的簡單零配置命令列 HTTP 伺服器。

Bash
# 安裝 http-server
npm install -g http-server

# 執行 http-server
http-server

嘗試電腦端瀏覽器直接訪問看看:

OK

安裝報錯

早期版本的 Termux 的 npm 安裝一些包的時候會報如下錯誤:

Verilog
Cannot read property 'length' of undefined

查了下是這邊版本的問題

新版本貌似npm正常

這是一個 BUG,官方的解決方法如下:

disable concurrency in case of libuv/libuv#1459

編輯如下檔案:

Bash
vim $PREFIX/lib/node_modules/npm/node_modules/worker-farm/lib/farm.js

我這裡修改length的是4,這個好像和CPU有關,總之這裡的 length 得指定一個數字。

新版本貌似npm正常

然後在重新安裝下npm install hexo-cli -g 成功。

PHP

PHP 是一種開源的指令碼語言,適用於網路開發。語法借鑑吸收C語言、Java 和 Perl 等流行計算機語言的特點,易於學習,PHP 是世界上最好的語言(手動狗頭)。

安裝PHP

Termux 官方封裝了 PHP,所以我們安裝起來就很方便:

Bash
pkg install php

安裝完成後檢視下版本資訊:

Bash
php --version

執行測試檔案

PHP5.4 之後 PHP內建了一個 Web 伺服器。在 Termux 下可以很方便地測試 PHP 檔案

首先在家(~)目錄下建一個www 資料夾,然後在www資料夾下新建一個index.php檔案,內容為:

Php
<?php phpinfo();?>

完整的步驟如下:

Bash
# 新建 www 資料夾
mkdir ~/www

# 建立 inedx.php 檔案
echo '<?php phpinfo();?>' > ~/www/index.php

編寫完成index.php檔案後,嘗試使用 PHP 內建的 WebServer 直接啟動:

Bash
# 進入家目錄
cd ~

# 啟動 WebServer
php -S 0.0.0.0:8888 -t www/

自己制定埠後,瀏覽器訪問http://127.0.0.1:8888效果如下:

Python

Python 是近幾年非常流行的語言,Python 相關的書籍和資料也如雨後春筍一般不斷湧現,帶來了活躍了 Python 學習氛圍。

安裝python2

Python2 版本要淘汰了,大家簡單瞭解一下就好:

Bash
pkg install python2 -y

安裝完成後,使用python2命令啟動 Python2.7 的環境

安裝python3

Termux 安裝 Python 預設版本是 Python3 的版本,與此同時也順便安裝了clang

Bash
pkg install python -y

安裝完成後,檢視下clangPython的版本:

注意版本區分

如果你同時安裝了 Python3 和 Python2 版本的話,最好向下圖中這樣驗證一下各個版本情況,做到心知肚明,國光我是先安裝 Python3 然後再安裝 Python2 的:

安裝順序不一樣 pip 這種圖片應該也就不一樣

升級pip版本

pip 保持最新是一個好習慣,升級方式很簡單:

Bash
# 升級 pip2 
python2 -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

# 升級 pip3
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

這兩條命令分別升級了pip2pip3到最新版。升級完成後你會驚訝的發現你的pip3命令不見了???然後這個時候就開始吐槽國光了(內心OS:國光 非要強迫症升級 pip 版本,這下好了吧!)

國光:不要慌 問題不大,我們可以手動檢視當前有哪些可執行的 pip 檔案,使用如下命令:

Bash
ls /data/data/com.termux/files/usr/bin|grep pip

原來我們的pip3變成了pip3.8了啊

接下來分別檢視對應 pip 可執行檔案的版本:

現在全都是最新版的 pip 了哦

iPython

iPython是一個 Python 的增強版本的互動式 shell,支援變數自動補全,自動縮排,支援shell命令等,內建了許多很有用的功能和函式。iPython 可以提高我們的學習效率!

先安裝clang,否則直接使用pip安裝ipython會失敗報錯. 沒有安裝的話使用 pkg install clang安裝

Bash
# -i 手動指定國內清華 pip 源 提高下載速度
pip install ipython -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
pip3.8 install ipython -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

執行完上述命令分別安裝好對應版本的iPython後,然後分別檢視對應版本資訊:

Bash
ipython2 -V
ipython -V

Jupyter Notebook

Jupyter Notebook(此前被稱為 iPython notebook)可以在 Web 端提供Python互動,雖然和iPython共享同一個核心,但是更強大。

Jupyter notebook 相關的依賴比較多 安裝起來較為耗時 國光就只用 Python3 版本來演示了,另外請務必要使用國內的 pip 源來安裝

下面官方建議安裝的完整的命令:

Bash
pkg update
pkg install proot
termux-chroot
apt install git clang
apt install pkg-config
apt install python python3-dev 
apt install libclang libclang-dev
apt install libzmq libzmq-dev
apt install ipython 
pip install jupyter 

如果你一步步跟著本文安裝順序操作的話,發現很多工具我們都安裝過了(國光我真的有先見之明…),那麼直接參考如下命令安裝即可:

Bash
# -i 手動指定國內中清華 pip 源 提高下載速度
# 更新是個好習慣
pkg update

# 切換模擬的 root 環境
termux-chroot

# 安裝相關依賴
pkg install libclang

# 安裝 jupyter
pip3 install jupyter -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

# 安裝完成退出 chroot
exit

# 安裝 jupyterlab
pip3 install jupyterlab -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

安裝好之後檢視一下版本資訊:

Bash
jupyter --version

所有外掛均安裝完成

Jupyter Notebook 就安裝好了,這個比較強大更詳細的教程大家可以自行去谷歌或者百度一下,國光這裡只演示基本的功能。

先啟動 notebook

Bash
jupyter notebook

然後會看到執行的日誌,我們複製出 提示的URL:

複製出的這個 URL 地址 在瀏覽器中開啟:

可以看到成功運行了,那我們按照圖片提示走個形式,輸出個 Hello World 就跑路:

OK 執行成功,那麼回到 Termux 裡面使用組合鍵 Ctrl + C -> 中止當前的 Jupyter 程序

網站搭建

網站搭建這一塊實際上原理是大同小異的,國光這裡只寫幾個網站的安裝方法,給大家提供一個思路。

DVWA

DVWA 是一個用來搞 Web 安全從業者入門使用的一個練習靶場,用來學習掌握基本的漏洞原理使用的,如果你對 Web 安全不感興趣的話可以直接跳過這一個小節。

國光建議 DVWA 練習的時候 要結合原始碼去分析漏洞 不要直接把網上攻擊流程走一步就草草了之了 不看原始碼的學習 等於啥都沒有學

環境準備

因為 DVWA 靶場是 PHP編寫的,所以你需要 提前配置好 Nginx 、PHP 以及 資料庫,關於這方面配置可以參考前面開發環境下分類的「Nginx」、「MariaDB(MySQL)」和 「Nginx 解析 PHP」章節

下載 DVWA

Bash
wget https://github.com/ethicalhack3r/DVWA/archive/master.zip

如果訪問 Github 比較慢的話,可以嘗試如下連結:

Bash
wget https://hub.fastgit.org/ethicalhack3r/DVWA/archive/master.zip

解壓到 Nginx 目錄下

Bash
# 解壓
unzip master.zip -d $PREFIX/share/nginx/html/

# 重新命名
cd $PREFIX/share/nginx/html/
mv DVWA-master dvwa

新建資料庫

Sql
mysql -uroot -p*** -e"create database dvwa;show databases;"

*** 這裡是mysql的密碼

可以看到 dvwa 資料庫已經新建成功了。

編輯 DVWA 配置檔案

Bash
# 將配置檔案 還原為 PHP 字尾
cd $PREFIX/share/nginx/html/dvwa/config
mv config.inc.php.dist config.inc.php

# 編輯配置檔案
vim mv config.inc.php.dist config.inc.php

只需要定位找到如下內容 根據你的實際情況填寫就可以了:

初次訪問測試網站

按照上述配置好 DVWA 之後,瀏覽器訪問: http://192.168.31.124:8080/dvwa/setup.php

可以看到 allow_url_include 執行 URL 遠端包含沒有開啟,我們得手動開啟一下:

實際上正常人是不會去開啟這個的,十分危險,但是 DVWA 是一個靶場,有些漏洞實際上就是利用 PHP 配置不當造成的,這樣才讓新手有攻擊下來的信心。

配置 php.ini

Termux 下預設是沒有 php.ini 檔案的,不信我們手動來查詢一下:

Bash
php --ini

Configuration File (php.ini) Path: /data/data/com.termux/files/usr/lib
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

發現 php.ini 的檔案應該存放在 /data/data/com.termux/files/usr/lib 目錄下,但是 PHP 沒有找到配置檔案,所以需要我們手動在這個目錄下新建 php.ini 配置檔案:

Bash
echo 'allow_url_include = On' > $PREFIX/lib/php.ini

注意這是一個不安全的配置 只是為了配合本地的 DVWA 靶場 做模擬黑客攻擊練習使用的

配置完成後,自己嘗試使用php --ini來定位搜尋配置檔案,會發現 PHP 已經找到了配置檔案了。

修改完配置檔案後 得重啟 php-fpm 服務:

Bash
# 殺掉 php-fpm 相關的程序
kill -9 `pgrep fpm`

# 再次啟動 php-fpm
php-fpm

再次訪問測試網站

瀏覽器訪問: http://192.168.31.124:8080/dvwa/setup.php

可以看到剛剛的配置檔案生效了,現在安全檢查全部通過

既然 安全檢查通過的話,那麼就直接頁面滾動到最下面直接點選 Create/Reset Database初始化資料庫按鈕即可,初始化成功後會自動跳轉到登入介面。

DVWA 預設的使用者有5個,使用者名稱密碼如下:

使用者名稱密碼
admin password
gordonb abc123
1337 charley
pablo letmein
smithy password

登入成功的效果圖:

Hexo

Hexo 是一個用 Nodejs 編寫的快速、簡潔且高效的部落格框架。Hexo 使用 Markdown 解析文章,在幾秒內,即可利用靚麗的主題生成靜態網頁。另外大家看到國光我的部落格就是使用 Hexo 搭建的哦。

安裝 Hexo

Hexo 是用 Nodejs 編寫的,所以安裝的話得使用 npm 命令來安裝:

Bash
npm install hexo-cli -g

安裝完成的話,順便看一下 Hexo 相關的版本資訊吧:

Bash
hexo -v

Hexo 基本部署

我們建立一個目錄,然後到這個目錄下初始化Hexo 環境

Bash
# 手動建立一個目錄
mkdir hexo  

# 進入目錄下並初始化Hexo環境
cd hexo  
hexo init  

#生成靜態檔案 啟動Hexo
hexo g
hexo s      


然後就跑起來一個最基本的 Hexo 部落格,關於 Hexo 部落格的詳細教程,建議搭建去參考Hexo官方文件,我這裡重點在於 Termux 其他的不作過多的敘述.
使用瀏覽器訪問: http://127.0.0.1:4000 即可看到 Hexo 的效果圖:

Hexo 部署到 Nginx

Hexo 是純靜態部落格,官方預設把 Hexo 搭建在 Github Pages 僅僅是把 Hexo 根目錄的 public 資料夾即 Hexo 生成的純 HTML 原始碼部署到上面而已。所以知道這樣原理 我們就可以輕而易舉地將 Hexo 部署到 Nginx 下面。

生成 HTML 純靜態原始碼

Bash
hexo g

可以看到 Hexo 的根目錄下 已經生成了 public 檔案夾了

拷貝原始碼搭到 Nginx

現在我們只需要將 public 的資料夾裡面的原始碼 全部拷貝到 Nginx 的網站根目錄下:

Bash
# 在 nginx 根目錄下新建 hexo 資料夾
mkdir $PREFIX/share/nginx/html/hexo

# 拷貝 原始碼到 nginx 下
cp -rf public/* $PREFIX/share/nginx/html/hexo

訪問效果檢視

瀏覽器訪問:http://127.0.0.1:8080/hexo/ 即可看到效果:

當然這裡網站的CSS等樣式沒有加載出來,這個原因是 Hexo 對網站目錄下部署並不友好 ,大概有如下解決方法:

  1. Nginx vhosts 配置多域名,這個伺服器上常用的操作,但是 Termux 裡面實現難度較高
  2. 將 Hexo 的原始碼 直接拷貝到 Nginx 的根目錄下,不用拷貝到 html/hexo 目錄下了,然後直接訪問 http://127.0.0.1:8080 即可看到效果

國光這裡就只是說一下這個思路,因為強迫症的我 不能忍受 Nginx 根目錄的檔案 亂七八糟 =,= 大家想嘗試的話 按照我這個思路去嘗試就可以了

KodExplorer

KodExplorer 是一款開原始檔資源管理器,搭建起來很簡單,我們也可以在 Termux 搭建,這樣就可以實現 Temux 下的檔案分享了,十分優雅方便。在我的這篇文章:https://www.sqlsec.com/2019/11/kode.html 裡面也講解了 macOS下的安裝。

下載解壓 Kod

官網的下載地址https://kodcloud.com/download/

我們拷貝下載連結後,使用 wegt 可以直接下載:

Bash
# 下載
wget http://static.kodcloud.com/update/download/kodexplorer4.40.zip

# 解壓 到 Nginx 的 kod 目錄下
unzip kodexplorer4.40.zip -d $PREFIX/share/nginx/html/kod

安裝設定 Kod

Nginx 確保已經配置可以解析 PHP,如果沒有配置好,那麼請慘叫 上文的 「開發環境」小節

手機瀏覽器訪問: http://127.0.0.1:8080/kod 即可進入設定管理密碼介面:

設定完密碼登入看看,建議大家在 Kod 裡面設定電腦版檢視,效果很贊,下面是主介面截圖:

推薦大家使用電腦版

當然在區域網的情況下,通過IP地址,區域網的其他裝置也是可以輕鬆訪問到你的檔案的,檔案共享目的達成。

WordPress

WordPress 是一個以 PHP 和 MySQL 為平臺的自由開源的部落格軟體和內容管理系統。如果你的 Termux 沒有配置好 MySQL、PHP、Nginx 的話 那麼請參考上面的 開發環境 章節來進行配置。

新建資料庫

網站需要資料庫,在安裝 WordPress 前我們先需要新建一個數據庫,以供後面的網站安裝:

Sql
mysql -uroot -p*** -e"create database wordpress;show databases;"

*** 這裡是mysql的密碼

可以看到 wordpress 資料庫已經新建成功了。

下載 WordPress

WordPress 歷屆版本: https://cn.wordpress.org/download/releases/

選擇最新的版本後,複製下載的直鏈,那麼就開始用 wget 下載並解壓吧:

Bash
#  wget 下載
wget https://cn.wordpress.org/wordpress-5.4-zh_CN.zip

# unzip 解壓 沒有安裝unzip請自行安裝
unzip wordpress-4.9.4-zh_CN.zip

# 將解壓的資料夾移動到 nginx 網站根目錄下
mv wordpress/ $PREFIX/share/nginx/html

如果WordPress官網這個下載又問題的話,可以多嘗試幾次,也可以通過如下渠道來下載

  1. WordPress Too Many Requests 出現這種報錯,多半是中國的IP又被國外遮蔽了,可以嘗試使用迅雷來下載
  2. 掛代理來下載
  3. 百度找國內的第三方非官方下載站下載(不是很推薦)

配置 Nginx 解析

如果你讀過前面的「開發環境」、「Nginx」、「Nginx 解析 PHP」三個小節的話,這裡直接啟動 php-fpm 和 Nginx 即可:

Bash
php-fpm
nginx

當然如果你的 php-fpm 和 Nginx 服務以及啟動的話 就直接跳到下一步吧

安裝 WordPress

瀏覽器訪問: http://127/.0.0.1/wordpress/進行 WordPress 的安裝,根據提示填寫好自己的 資料庫資訊即可安裝,詳細這一步大家都懂的,國光這裡直接放安裝好的效果圖吧:

WordPress的後臺

系統安裝

Termux 可以安裝其他 Linux 發行版系統,核心用到的工具是 chroot ,所以我們得確保安裝系統的時候 proot 這個包你是安裝好的,然後因為作業系統店都有官方維護的指令碼,所以安裝起來甚至比我們前面配置的開發環境還要簡單,下面來具體的介紹吧。

實用必備工具

有能力的朋友以下工具可以直接在 Google Play 商店裡面下載,國光這裡就簡單列舉搬運一下:

軟體下載地址說明
VNC Viewer 3.6.1.42089 漢化版 藍奏雲 遠端連線使用
NetHunter KeX 4.0.7-6 藍奏雲 Kali 官方 遠端連線工具
AnLinux 6.10 藍奏雲 提供比較全面的系統安裝指令碼
AndroNix 4.2 Google Play 提供比較全面的系統安裝指令碼

VNC 工具的隱藏技巧,首先我們預設使用 VNC Viewer 這個工具遠端是下圖這張效果,可以看到並沒有佔滿全屏,強迫症無法接受:

VNC Viewer

然後使用 Kali 官方的 NetHunter KeX 遠端連線,螢幕就完全被充分利用了:

NetHunter KeX

但是 NetHunter Kex 在遠端操作體驗上又不如 VNC Viewer舒服,難道魚和熊掌就無法兼得了嗎? 當然可以!!! 經過國光測試,這個時候後臺關掉 NetHunter KeX 的時候呢,再用 VNC Viewer 就可以完美的利用手機的全部螢幕空間了,豈不是美哉。

Kali NetHunter

Kali NetHunter 是基於 Kali Linux 的免費、開源的 Android 裝置移動滲透測試平臺,安全從業者必備的作業系統。

安裝 Kali NetHunter

Kali 官網提供的完整的安裝命令如下,下面國游標上註釋方便大家理解:

Bash
# 申請儲存訪問許可權
termux-setup-storage

# 安裝 wget
pkg install wget

# 下載 安裝指令碼
wget -O install-nethunter-termux https://offs.ec/2MceZWr 

# 給指令碼執行許可權
chmod +x install-nethunter-termux 

# 執行安裝指令碼
./install-nethunter-termux

裡面很多操作我們之前都做了,所以現在只需要如下幾步即可:

Bash
# 下載 安裝指令碼
wget -O install-nethunter-termux https://offs.ec/2MceZWr 

# 給指令碼執行許可權
chmod +x install-nethunter-termux 

# 執行安裝指令碼
./install-nethunter-termux

下載包大概1.2GB左右安裝過程比較慢,國光這裡建議大家掛代理下載,提供效率和成功率

如果你沒有代理怎麼辦? https://images.kali.org/nethunter/kalifs-arm64-full.tar.xz 這個就是最大的1.2GB的資料包,複製連結地址到迅雷等下載工具裡面下載下來,然後拷貝到 Termux 手機的安裝指令碼同級目錄下,或者直接更改指令碼把這個資料包的下載地址替換為區域網的地址都可以方法有很多 大家可以自行發揮。

安裝成功的效果圖如下:

基本使用命令

命令說明
nethunter 啟動 Kali NetHunter 命令列介面
nethunter kex passwd 配置 KeX 密碼 (僅在第一次使用前需要)
nethunter kex & 開始 KeX 會話服務
nethunter kex stop 停止 Kali NetHunter 桌面
nethunter <command> 在 NetHunter 環境中執行命令
nethunter -r 以 root 身份啟動 Kali NetHunterk 命令列介面
nethunter -r kex passwd 配置 root 使用者的 KeX 密碼
nethunter -r kex & 以 root 身份開始 KeX 會話服務
nethunter -r kex stop 停止 root 身份執行的 KeX 會話服務
nethunter -r kex kill 殺掉所有的 KeX 會話
nethunter -r <command> 以 root 身份在 NetHunter 環境中執行命令

nethunter 命令可以縮寫成 nh ,Kali NetHunter 預設的使用者名稱 kali 的密碼也是 kali

root 密碼沒有設定 可以輸入 sudo passwd 來修改 root 使用者的密碼

Kali 命令列的使用國光不在廢話了,下面就列幾個點,大家可以關注一下:

  1. Kali Linux 不需要換源,官方源會自動選擇最佳的伺服器節點
  2. root 使用者 無法使用 nmap 所以 nmap 的一些需要高許可權使用者的引數無法正常使用
  3. 完整安裝 kali 工具集合可以使用 apt install kali-linux-default 大小大概為2.6GB左右 國光 不建議這樣操作,需要啥工具 自己單獨安裝即可 沒有必要全部安裝
  4. Galaxy 系列手機可能會阻止 非 root 使用者使用 sudo,只需使用 su -c 代替

啟動 VNC 服務

上面命令表中的 KeX 服務,實際上就是VNC服務,預設的埠是 5901 埠,首先 Termux 下啟動 Kali 的 VNC:

Bash
nh kex &

圖片上可以得出 KeX 服務的埠是 5901,然後程序的ID 是17222,可以使用 nmap 或者 netstat 命令再檢測一下5901埠是否開啟。

VNC 工具連線

VNC 連線還需要密碼,所以這裡手動設定一下:

Bash
nh kex passwd

設定完成之後級可以在 VNC 連線工具裡面填寫相應的資訊即可連線了,記得埠號要加上:

VNC 關掉連線後,想要停止 Kex 服務即 VNC 服務,Termu 下使用如下命令即可退出服務:

Bash
nh kex stop

其他 Linux 系統

Termux 安裝 Linux 系統專案地址:https://github.com/sqlsec/termux-install-linux

這個指令碼國光我磨磨蹭蹭寫了1天才寫完,篩選下來的系統都是體驗還不錯的系統。

下載的主要映象全部託管在了 Gitee 上,下載速度很快,而且系統對應的更新源國光均替換為國內源了,安裝和解除安裝都很容易上手,使用者非預期的輸入也都考慮到了,目前完美支援 Ubuntu、Kali、Debian、CentOS、Fedora系統的安裝,具體想嘗試的話可以輸入如下命令體驗安裝:

確保 Termux 已經安裝了 proot 和 Python3 才可以順利安裝

Bash
git clone https://github.com/sqlsec/termux-install-linux
cd termux-install-linux
python termux-linux-install.py

系統安裝的更多細節圖可以參考我的這一篇文章: Android Termux 安裝 Linux 就是這麼簡單

極客行為

如果你是一個極客玩家,不折騰會死星人的話,那麼本章節比較適合你。祝你折騰愉快!

Aria2

Aria2 是一個輕量級多協議和多源命令列下載實用工具。它支援 HTTP / HTTPS, FTP, SFTP, bt 和 Metalink。最近被封殺的 PanDownload 也是使用的是 Aria2 來加速下載百度網盤裡的資源的。本文是一個 Termux 教程,所以關於 Aria2 不會很深入將下去,關於更多 Aria2 的配置教程,大家可以參考網上其他大佬的教程。

安裝aria2

Bash
pkg install aria2

安裝完成後 可以順便看一下版本資訊:

Bash
aria2c -v

啟動 rcp 服務

aria2 支援 rpc 服務,預設監聽的是6800埠。這樣我們可以使用開源的 Web 專案來連線操作 aria2

Bash
aria2c --enable-rpc --rpc-listen-all

webui-aria2

國光這裡選的是這個比較流行的 aria2 的開源專案,地址是:https://github.com/ziahamza/webui-aria2 安裝執行起來也很簡單:

Bash
git clone https://github.com/ziahamza/webui-aria2.git
cd webui-aria2
node node-server.js

需要node來執行,沒有安裝的 話使用pkg install nodejs來安裝

如果如果下載速度比較慢的話,可以嘗試使用 fastgit映象地址來下載

git clone https://hub.fastgit.org/ziahamza/webui-aria2.git

執行起來後,瀏覽器訪問:http://localhost:8888檢視效果:

SSH

有時候我們需要通過 ssh 遠端連線伺服器,這個時候有 Termux,躺在床上就可以操作電腦了,!哦哦哦!awesome ,或者我們突然很閒,想要用電腦來遠端手機,沒錯 Termux 都可以做到。

Termux ssh 連線電腦

安裝 openssh

OpenSSH 是SSH (Secure SHell) 協議的免費開源實現。SSH協議族可以用來進行遠端控制, 或在計算機之間傳送檔案。Termux 官方已經封裝好了,我們安裝起來也會很簡單:

Bash
pkg install openssh

遠端連線電腦

然後就可以直接ssh連線你的伺服器了,(前提是電腦安裝了ssh服務)

Bash
ssh [email protected]

手機連線操作電腦效果圖:

附上完整的 Linux SSH 連線命令格式:

Bash
# ssh -p 埠號 使用者名稱@主機名或者IP
ssh -p 22 user@hostname_or_ip

# ssh -i 私鑰 使用者名稱@主機名或者IP
ssh -i id_rsa user@hostname_or_ip

傳輸檔案

SSH 不僅僅可以遠端連線伺服器,同樣也可以使用SSH自帶的scp命令進行檔案傳輸:

複製檔案

Bash
# scp 本地檔案路徑 遠端主機使用者名稱@遠端主機名或IP:遠端檔案儲存的位置路徑
scp local_file remote_username@remote_ip:remote_folder

複製目錄

Bash
# scp -r 本地資料夾路徑 遠端主機使用者名稱@遠端主機名或IP:遠端資料夾儲存的位置路徑
scp -r local_folder remote_username@remote_ip:remote_folder

看完了 不打算親自嘗試一下檔案傳輸的操作嗎? :-)

電腦 ssh 連線 Termux

這個使用場景比較少,但是既然要打造中國的 Termux 文件的效果,還是一起寫上去吧,首先確保你已經安裝了 openssh 軟體包,沒有安裝的話參考上一個小結進行安裝。實現這個效果有兩大種方法:

  1. SSH 通過密碼認證連線

  2. SSH 通過公私鑰連線

    • PC 端生成公私鑰,然後將 公鑰 拷貝到 Termux 中,通過公私鑰連線。

    • Termux 端生成公私鑰,然後將 私鑰拷貝到 PC 中,通過公私鑰連線。

啟動 ssh 服務

安裝完成後,sshd服務預設沒有啟動,所以得手動啟動下:

Bash
sshd

因為手機上面低的埠有安全限制,所以這裡 openssh 預設的 sshd 預設的服務埠號為 8022

停止 ssh 服務

如果需要停止 ssh 服務,只需要 kill 殺掉程序即可:

Bash
pkill sshd

通過密碼認證連結

Termux 預設是使用密碼認證進行連線的,如果要啟用密碼連線的話要確保你的密碼足夠安全,否則你的SSH被惡意攻擊者連線或者爆破成功的話,那就美滋滋了!

Termux 下的 SSH 預設配置檔案的路徑為 $PREFIX/etc/ssh/sshd_config,我們來檢視下這個配置檔案:

Sshd_config
PrintMotd no
PasswordAuthentication yes
Subsystem sftp /data/data/com.termux/files/usr/libexec/sftp-server

國光的 Termux 0.94 的版本就這3行配置,下面來逐行解釋一下這個配置:

PrintMotd : 是否顯示登入成功的歡迎資訊 例如上次登入的時間、地點等

PasswordAuthentication: 是否啟用密碼認證

Subsystem: SFTP 服務相關的設定

設定新密碼

執行 passwd 命令可以直接修改密碼:

Bash
passwd

密碼不要忘記哦

電腦遠端連線測試

國光測試了一下 Termux 的 ssh 和常規 Linux 不太一樣,連線的時候不需要指定使用者名稱。

Bash
ssh 192.168.31.124 -p 8022

通過公私鑰連線

公私鑰連線更加安全,再也不用但你的Termux SSH被黑客爆破攻擊的情況了

PC 端生成公私鑰

首先在PC端生成祕鑰對:

Bash
ssh-keygen

預設一直回車下去:

此時會在~/.ssh目錄下生成 3 個檔案
id_rsaid_rsa.pubknown_hosts

然後需要把公鑰 id_rsa.pub 拷貝到手機的 data\data\com.termux\files\home\.ssh 資料夾中。然後

將公鑰拷貝到驗證檔案中

Termux下操作

Bash
cat id_rsa.pub > authorized_keys

OK 現在你已經設定好公私鑰了,那麼修改一下 SSH 的配置檔案,關掉密碼登入吧:

Bash
vim $PREFIX/etc/ssh/sshd_config

找到

Bash
PasswordAuthentication yes 

修改為

Bash
PasswordAuthentication no

然後記得重啟一下 SSH 服務:

Bash
pkill sshd;sshd

然後電腦端這邊直接就可以通過公私鑰連線了,無需輸入密碼也更加安全:

Bash
ssh 192.168.31.124 -p 8022

Termux 端生成公私鑰

操作完上一步之後,我想你大概已經知道了公私鑰的原理了。那麼我們現在嘗試在 Termux 端生成公私鑰這種方法試試看,理論上也是可以的。

首先在 Termux 端生成祕鑰對:

ssh-keyge

此時會在~/.ssh目錄下生成 3 個檔案
id_rsaid_rsa.pubknown_hosts

然後將公鑰拷貝到驗證檔案中

Bash
cat id_rsa.pub > authorized_keys

接著將id_rsa.pub私鑰下載下來,拷貝到PC端上,並賦予 600 的許可權:

Bash
chmod 600 id_rsa

然後通過-i 手動載入私鑰的方式也可以成功連線到 Termux:

Bash
ssh -i id_rsa [email protected] -p 8022

Bingo!

至此,Termux ssh 連線的 3 種方式都演示過了,國光個人比較建議使用 PC 端生成公私鑰 的方法,這樣可以減少 rsa 私鑰洩露的風險,也方便PC端的遠端連線與管理。

Bash
pkg install aria2

本地啟動服務

Bash
aria2c --enable-rpc --rpc-listen-all

這個rpc服務預設監聽的是6800埠,啟動後方便下面的Web介面連線操作.

webui-aria2

這是個Aria2的熱門專案,把Aria2封裝在了Web平臺,操作起來更加簡單便捷。

Bash
git clone https://github.com/ziahamza/webui-aria2.git
cd webui-aria2
node node-server.js

需要node來執行,沒有安裝的 話使用pkg install nodejs來安裝

使用效果圖 ,速度蠻快的 ,有興趣的可以研究如何利用aria2來下載百度雲檔案,等你們來探索.

you-get

一個命令列小程式,支援下載各大網站的視訊,具體支援的網站大家可以參考官方專案,國光這裡就只作簡單的介紹。

安裝 you-get

首先得先安裝相關的依賴包

Python3 如果沒有安裝的話 可以參考上文的 「開發環境」-「Python」

Bash
pkg install python3 ffmpeg -y

安裝完成後,直接使用 pip 來 安裝,這裡通過 -i 指定國內的 pip 源 速度會更快一點:

Bash
pip3 install you-get  -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

升級 you-get

Bash
pip3 install --upgrade you-get

下載 B 站視訊

預設是下載最高畫質的,但是我們也可以列出所有可以下載的畫質:

Bash
you-get -i https://www.bilibili.com/video/BV1mE411L7Rg

site:                Bilibili
title:               Python Web開發之Django美化-使用SimpleUi
streams:             # Available quality and codecs
    [ DASH ] ____________________________________
    - format:        dash-flv
      container:     mp4
      quality:       高清 1080P
      size:          12.9 MiB (13525977 bytes)
    # download-with: you-get --format=dash-flv [URL]

    - format:        dash-flv720
      container:     mp4
      quality:       高清 720P
      size:          11.3 MiB (11834935 bytes)
    # download-with: you-get --format=dash-flv720 [URL]

    - format:        dash-flv480
      container:     mp4
      quality:       清晰 480P
      size:          9.8 MiB (10274269 bytes)
   ...

下載 720P 視訊

Bash
you-get --format=dash-flv720 https://www.bilibili.com/video/BV1mE411L7Rg

下載網易雲音樂歌單

下面以我自己的歌單為例子,首先找到自己喜歡的歌單,然後點選複製連結:

連結傳送門:滲透測試程式碼審計程式設計師必備電音

直接 you-get 歌單的連結地址就可以直接批量下載地址了:

Bash
you-get 'http://music.163.com/playlist?id=489221140'

下載完成後會以歌單名作為資料夾存放下載好的音樂以及歌單的封面:

資訊保安

因為 Termux 可以很好的支援Python,所以幾乎所有用Python編寫的安全工具都是可以完美的執行使用的,所以國光這個版塊重點就列舉了國光認為實戰中比較不錯的安全工具。當然大家也可以直接參考本文的 「系統安裝」- 「Kali NetHunter」章節,直接在手機裡面安裝一個 Kali Linux 系統,國光實際體驗還是很完美的,裡面的資訊保安工具要更全面一些。

Exiftool

一個強大的元資料檢視修改工具,CTF 的MISC的比賽上也經常露面,實際上 ios 自帶的相機拍出的照片裡面是攜帶 GPS 定位的,使用 Exiftool 就可以很輕鬆的檢視到經緯度資訊。

Bash
pkg install exiftool

下面檢視一下國光我剛剛儲存地理資訊拍的照片的元資料資訊:

Bash
cd ~/storage/dcim/Camera
exiftool IMG_20200424_073210.jpg

給 GPS 位置資訊打馬,防止網友順著網線過來打人。

Metasploit

Metasploite黑客Top10工具之一,漏洞攻擊庫,安全從業者必備工具之一,也在各大黑客題材的電影中頻頻出現。

Android 7 +

目前 Termux 官方的 pkg 已經支援直接安裝 Metasploit 了,但是僅適用於 Android 7 及其以上版本。通過如下兩條命令即可安裝,下載過程大約1分鐘左右(當然國光我是掛代理的)

Bash
#  切換不穩定源
pkg install unstable-repo

#  安裝 msf
pkg install metasploit

出現如下字樣表明安裝就成功了:

Properties
Success. You can now start the database server using:

    pg_ctl -D /data/data/com.termux/files/usr/var/lib/postgresql -l logfile start
...
2020-04-21 12:54:36.233 CST [8294] LOG:  listening on IPv4 address "127.0.0.1", port 5432
...
[*] Metasploit Framework installation finished.
W: APT had planned for dpkg to do more than it reported back (0 vs 4).
   Affected packages: metasploit:aarch64

可以看到 postgresql 已經成功執行在 127.0.0.1:5432 埠了,metasploit:aarch64 安裝成功。

Android 5.x - 6.x

因為老的安卓版本不支援 unstable-repo,所以只能執行如下命令手動安裝了:

Bash
curl -LO https://github.com/termux/termux-packages/files/3995119/metasploit_5.0.65-1_all.deb.gz
gunzip metasploit_5.0.65-1_all.deb.gz
dpkg -i metasploit_5.0.65-1_all.deb
apt -f install

安裝過程耐心

安裝的過程可能會安裝其他 Ruby gem,因此能需要很長時間。在安裝完成之前,請勿關閉 Termux 會話,否則可能會出一些玄學問題導致安裝失敗,總之耐心等待即可。

國光強烈建議搭建掛代理安裝,這樣效率和成功率會高很多,大家看到這個版塊說明也是安全從業者了,所以代理對於你來說應該很簡單了吧。

Termux 安裝 MSF的時候會自動配置好 postgresql 並且更新 ruby 版本,MSF 控制檯裡面輸入db_status 可以檢視資料庫連線情況。最新的 MSF5 版本已經有 cve-2019-0708 的 exploit 了。

Netcat

nc 被譽為網路安全界的瑞士軍刀,一個簡單而有用的工具,netcat 是比較新的現代版本,並且作者是著名的Nmap程式的作者。nc 命令的詳細教程可以參考我的這篇文章: nc命令教程

目前ncat已經整合到了 nmap 裡面,安裝完nmap後就可以使用 ncat 命令了,如果你不想安裝 nmap 也可以單獨安裝 ncat 命令:

Bash
# 安裝
pkg install netcat


# 版本資訊
netcat --version
Ncat: Version 7.80 ( https://nmap.org/ncat )

Nmap

埠掃描必備工具,在最近的國產電視劇《親愛的,熱愛的》也出現過令人歎為觀止的操作:nmap -sT -A localhost!!!

安裝 Nmap

Termux源裡面封裝打包了Nmap,所以安裝起來就比較簡單:

Bash
pkg install nmap

Hashcat

Hashcat 是世界上最快的密碼破解程式,是一個支援多平臺、多演算法的開源的分散式工具。

官方:https://hashcat.net/hashcat/

Github:https://github.com/hashcat/hashcat

在我的另一篇文章裡面有更詳細的教程來介紹這款工具:Hashcat學習記錄

安裝 Hashcat

Termux unstable 源裡面也封裝好了 Hastcat,所以我們安裝依然一條命令即可:

Bash
pkg install hashcat

如果提示找不到 Hashcat 包的話,那麼手動安裝切換不穩定源即可:

Bash
#  切換不穩定源
pkg install unstable-repo

Hydra

Hydra是著名的黑客組織THC的一款開源暴力破解工具。爆破SSH和MySQL這一塊效果還是很不錯的,但是爆破Winows的3389 RDP的話 效果就很差了,國光一次線下比賽曾用過Hydra去爆破Windows RDP知道比賽結束都沒有成功爆破出來… 如果大家真的要爆破的話,推薦Windows平臺的這款爆破工具:https://github.com/shack2/SNETCracker

安裝 Hydra

Bash
pkg install hydra

成功爆破出了SSH的密碼

SQLmap

SQLmap 是一款用來檢測與利用SQL注入漏洞的免費開源工具 官方專案地址,後面 SQLmap 也支援 Python3 版本了

安裝 SQLmap

我們直接git clone原始碼,然後執行 sqlmap.py檔案:

Bash
git clone https://github.com/sqlmapproject/sqlmap.git
cd sqlmap
python sqlmap.py

sqlmap支援pip安裝了,所以建議直接 pip install sqlmap來進行安裝,然後終端下直接sqlmap就可以了,十分方便。

xray

xray 是長亭科技開發的 Web 漏洞掃描器,在圈內的反饋都是還不錯的,在我的這篇文章xray Web掃描器學習記錄已經講解了 xray 掃描器的基本使用,但是國光注意到 xray 官方專案居然也釋出了 arm64 的版本,那麼理論 Termux 應該也就可以愉快地安裝了,手機躺著挖洞也不是不可能。

官方版本釋出地址: https://github.com/chaitin/xray/releases

下面嘗試直接安裝執行看看:

Bash
# 下載並解壓
mkdir xray && cd xray
wget xxxxx.zip # xray 的下載地址
unzip xray_linux_arm64.zip

# 直接執行
./xray_linux_arm646

小結

因為 Termux 完美的支援PythonPerl等語言,所以有太多優秀的資訊保安工具值得大家去發現了,這裡我就不一一列舉了。

官方外掛

Termux 有一些額外有趣的功能,我們可以通過安裝外掛的方式來使用這些功能。網友們反饋 F-Droid 裡面的 Termux 外掛都是可以免費下載的,唯一的缺點就是可能版本低於 Google Play 的版本,大家自行抉擇。

Termux:API

Termux:API,可用於訪問手機硬體實現更多的友情的功能。官方唯一一個免費的 API,良心啊。

準備工作

安裝Termux:API

下載地址

請勿在Google Play 和 F-Droid 之間混合安裝Termux 和 外掛。

給 app 許可權

因為 Termux-api 可以直接操作手機底層,所以我們需要到手機的設定裡面給 這個 APP 的許可權全部開了,這樣下面操作的時候就不會提示許可權不允許的情況了。

安裝 Termux-api 軟體包

手機安裝完 Termux-api 的APP後,Termux 終端裡面必須安裝對應的包後才可以與手機底層硬體進行互動。

Bash
pkg install termux-api

下面只列舉一些可能會用到的,想要獲取更多關於Termux-api的話,那就去參考官方文件.

獲取裝置資訊相關

獲取電池資訊

Bash
termux-battery-status

引數無,返回資訊是JSON格式。 可以看到電池的-健康狀況-電量百分比-溫度情況等

Bash
{
  "health": "GOOD",
  "percentage": 100,
  "plugged": "UNPLUGGED",
  "status": "DISCHARGING",
  "temperature": 24.600000381469727
}

獲取相機資訊

Bash
termux-camera-info

引數無,返回資訊是JSON格式。

獲取通訊錄列表

引數無,返回資訊是JSON格式。

Bash
termux-contact-list  

檢視紅外載波頻率

Bash
termux-infrared-frequencies

獲取無線電資訊

無引數,返回格式是JSON格式

Bash
termux-telephony-cellinfo

檢視手機運營商資訊

無引數,返回格式是JSON格式

Bash
termux-telephony-deviceinfo

國光的實際測試返回值:

Json
{
  "data_enabled": "true",
  "data_activity": "dormant",
  "data_state": "disconnected",
  "device_id": null,
  "device_software_version": "00",
  "phone_count": 2,
  "phone_type": "gsm",
  "network_operator": "46001",
  "network_operator_name": "中國聯通",
  "network_country_iso": "cn",
  "network_type": "lte",
  "network_roaming": false,
  "sim_country_iso": "cn",
  "sim_operator": "46011",
  "sim_operator_name": "中國聯通",
  "sim_serial_number": null,
  "sim_subscriber_id": null,
  "sim_state": "ready"
}

獲取 tts 語音引擎資訊

Bash
termux-tts-engines

國光的實際演示:

Json
[
  {
    "name": "com.google.android.tts",
    "label": "Google 文字轉語音引擎",
    "default": false
  },
  {
    "name": "com.xiaomi.mibrain.speech",
    "label": "小愛語音引擎",
    "default": true
  }
]

獲取 USB 裝置資訊

Bash
termux-usb [-l | [-r] [-e 命令] 裝置]

選項細節

Properties
-l               列出可用裝置
-r               如果尚未授予許可權,則顯示 許可權請求對話方塊
-e command       執行指定的命令

Android Termux 下要讀取 USB 內容或者 U盤的時候,還需要安裝如下依賴包:

Bash
pkg install termux-api libusb clang -y

有些包我們上面已經安裝過了。

下面國光來實際演示一下這個 API 的使用:

檢視 次數 Android 的 USB 裝置資訊:

Bash
$ termux-usb -l
[
  "/dev/bus/usb/001/002"
]

可以看到國光我這個 512GB 的 M.2 SSD 已經顯示在列表中了 (裝作不經意間說出來的樣子,類似於朱一旦不經意間露出自己的勞力士一樣 2333)

請求訪問許可權:

Bash
termux-usb -r /dev/bus/usb/001/002

Access granted.

下面級可以嘗試寫程式碼去訪問這個 USB 裝置內容了:

usbtest.c

C
#include <stdio.h>
#include <assert.h>
#include <libusb-1.0/libusb.h>

int main(int argc, char **argv) {
    libusb_context *context;
    libusb_device_handle *handle;
    libusb_device *device;
    struct libusb_device_descriptor desc;
    unsigned char buffer[256];
    int fd;
    assert((argc > 1) && (sscanf(argv[1], "%d", &fd) == 1));
    assert(!libusb_init(&context));
    assert(!libusb_wrap_sys_device(context, (intptr_t) fd, &handle));
    device = libusb_get_device(handle);
    assert(!libusb_get_device_descriptor(device, &desc));
    printf("Vendor ID: %04x\n", desc.idVendor);
    printf("Product ID: %04x\n", desc.idProduct);
    assert(libusb_get_string_descriptor_ascii(handle, desc.iManufacturer, buffer, 256) >= 0);
    printf("Manufacturer: %s\n", buffer);
    assert(libusb_get_string_descriptor_ascii(handle, desc.iProduct, buffer, 256) >= 0);
    printf("Product: %s\n", buffer);
    assert(libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber, buffer, 256) >= 0);
    printf("Serial No: %s\n", buffer);
    libusb_exit(context);
}

程式碼內容主要是 顯示有關USB裝置的一些基本資訊,引數就是我們的裝置資訊。讓我們編譯一下:

Bash
gcc usbtest.c -lusb-1.0 -o usbtest

編譯完成後會生成可執行的檔案 usbtest ,接下來通過 這個 API 來執行這個檔案:

Bash
termux-usb -e ./usbtest /dev/bus/usb/001/002

Vendor ID: 152d
Product ID: 0576
Manufacturer: Hikvision
Product: Hikvision External Disk
Serial No: 0123456789ABCDEF

糟糕 暴露了我的 512GB 的 SSD 居然是最廉價的 海康威視,溜了溜了 逃~

獲取當前WiFi連線資訊

Bash
termux-wifi-connectioninfo
{
  "bssid": "xx:xx:00:00:00:00",
  "frequency_mhz": 5785,
  "ip": "192.168.31.124",
  "link_speed_mbps": 130,
  "mac_address": "xx:xx:00:00:00:00",
  "network_id": -1,
  "rssi": -69,
  "ssid": "<unknown ssid>",
  "ssid_hidden": true,
  "supplicant_state": "COMPLETED"
}

獲取 WiFi 掃描資訊

國光在 Android 10 上沒有成功執行過這個 API, 不過以前的一加5 是可以執行的下面的圖 是以前的老圖:

Bash
termux-wifi-scaninfo

呼叫設定裝置相關

調整螢幕亮度

termux-brightness [亮度]

亮度的值在 0 ~ 255 之間,國光這裡測試了 255 並達不到手機的最大亮度

拍攝照片

Bash
termux-camera-photo [-c camera-id] output-file

camera-id: 相機的 id,預設是 0, 相機 id 可以通過隔壁的命令來獲取

下面的命令表示 使用 相機id 為 0 即後置的相機來拍攝(id 1 為前置相機),儲存的檔案在當前路徑下 名字叫 guoguang.jpg

Bash
termux-camera-photo -c 0 guoguang.jpg

國光看了下後置拍攝出來的照片,有點看不下去。前置相機效果還不錯,可能是因為現在手機是多個攝像頭的原因,Termux 的相機演算法上面沒有做到足夠好的優化。

獲取與設定剪貼簿

檢視當前剪貼簿內容

Bash
termux-clipboard-get

設定新的剪貼簿內容

Bash
termux-clipboard-set PHP是世界上最好的語言

效果演示

呼叫系統下載器

直接呼叫系統下載器,不返回任何值。而且國光我現在還沒有搞清楚下載的檔案到哪裡去了

Bash
termux-download [-d 描述] [-t 標題] 下載的目標地址

國光的演示:

Bash
termux-download -d 'Termux下載測試' -t 'QQ.apk' 'https://qd.myapp.com/myapp/qqteam/QQ_JS/qqlite_4.0.0.1025_537062065.apk'

呼叫指紋感測器

該 API 僅適用於Android 6 及其以上版本,不接受任何引數,返回 JSON 格式。

Bash
termux-fingerprint

返回內容:

Json
{
  "errors": [],
  "failed_attempts": 0,
  "auth_result": "AUTH_RESULT_SUCCESS"
}

呼叫紅外發射

Bash
termux-infrared-transmit -f 發射頻率

頻率以逗號分隔,例如 20,50,20,30 ,僅傳輸短於2秒的碼型。

呼叫手機定位

輸出格式為JSON格式

Bash
termux-location [-p 定位方式] [-r 定位請求]

細節引數:

Bash
-p provider [gps/network/passive] (預設: gps)
-r request   [once/last/updates] (預設: once)

實際演示:

Bash
termux-location -p network

返回內容(關鍵地方已經打馬賽克處理了 防止網友順著網線打過來):

Json
{
  "latitude": xx.xxxxxxx,
  "longitude": xx.xxxxxxx,
  "altitude": 0.0,
  "accuracy": xx.0,
  "vertical_accuracy": 0.0,
  "bearing": 0.0,
  "speed": 0.0,
  "elapsedMs": 7,
  "provider": "network"
}

播放媒體檔案

使用Media Player API播放指定的檔案。

Bash
termux-media-player [命令] [引數]

詳細引數:

Bash
info        # 顯示當前播放資訊
play        # 恢復播放
play <file> # 播放指定檔案
pause       # 暫停播放
stop        # 停止退出播放

國光的實際演示:

Bash
# 播放 hacker.mp4 視訊
$ termux-media-player play hacker.mp4
Now Playing: hacker.mp4

# 檢視當前播放資訊
$ termux-media-player info
Status: Playing
Track: hacker.mp4
Current Position: 01:28 / 15:13

# 退出播放
$ termux-media-player stop
Stopped playback
Track cleared

呼叫麥克風

termux-microphone-record [引數]

引數細節

Properties
-d           使用預設設定錄製
-f <file>    錄製到特定檔案
-l <limit>   使用指定的時間錄製(以秒為單位,無限制為0)
-e <encoder> 使用指定的編碼器錄製(aac, amr_wb,amr_nb)
-b <bitrate> 使用指定的位元率錄製(以kbps為單位)
-r <rate>    使用指定的取樣率錄製(以Hz為單位)
-c <count>   使用指定的通道錄製(1, 2,...)- 
-i           獲取有關當前錄音的資訊
-q           退出錄音

國光的實際演示:

Bash
$ termux-microphone-record -d
Recording started: /storage/emulated/0/TermuxAudioRecording_2020-04-20_19-50-51.m4a
Max Duration: 15:00

$ termux-microphone-record -i
{
  "isRecording": true,
  "outputFile": "\/storage\/emulated\/0\/TermuxAudioRecording_2020-04-20_19-50-51.m4a"
}

$ termux-microphone-record -q
Recording finished: /storage/emulated/0/TermuxAudioRecording_2020-04-20_19-50-51.m4a

顯示系統通知

顯示系統通知,通知內容使用 -c 或者 --content 讀取,或者從 stdin 讀取

Bash
termux-notification [選項]

選項細節

Properties
--action action          按下通知時要執行的動作
--alert-once             不會在編輯通知時發出警報
--button1 text           文字將顯示在第一個通知按鈕上
--button1-action action  動作將在第一個通知按鈕上執行
--button2 text           在第二個通知按鈕上顯示的文字
--button2-action action  在第二個通知按鈕上執行的動作
--button3 text           在第三通知按鈕上顯示的文字
--button3-action action  在第三個通知按鈕上執行的動作通知按鈕
-c/--content content     內容顯示在通知中 將優先於stdin
--group group            通知組(與同一組的通知一起顯示)
-h/--help                顯示此幫助
--help-actions           顯示action的幫助
-i/--id id               通知id(將覆蓋以前的任何通知具有相同ID的影象)
--image-path path        路徑將在通知中顯示的影象的絕對路徑
--led-color rrggbb       閃爍的led顏色為RRGGBB(預設值:無)
--led-off milliseconds   毫秒數使指示燈在閃爍時熄滅(預設值:800)
--led-on milliseconds    毫秒指示燈在閃爍時點亮的毫秒數(預設值:800)
--on-delete action       清除通知時要執行的操作
--ongoing                鎖定通知
--priority prio          通知優先順序(高/低/最大/最小/預設)
--sound                  通知時播放聲音
-t/--title title         要顯示的通知標題
--vibrate pattern        振動力度 逗號分隔,如500,1000,200
--type type              要使用的通知樣式(default/media)

媒體通知引數

當你要使用 --type media 的時候詳細引數:

Properties
 --media-next             在媒體 下一個按鈕 上執行的操作
 --media-pause            在媒體 暫停按鈕 上執行的操作
 --media-play             在媒體 播放按鈕 上執行的操作
 --media-previous         在媒體 上一個按鈕 上執行的操作

國光的演示:

Bash
termux-notification -t '國光的Termu通知測試' -c 'Hello Termux' --type default

撥打電話

Bash
termux-telephony-call [號碼]

撥打電話給10001中國電信,檢視下話費有沒有欠費~?

Bash
termux-telephony-call 10001

臨時視窗通知

Bash
termux-toast [選項] [通知]

選項引數

Properties
-h  顯示幫助資訊
-b  設定背景色(預設:gray)
-c  設定文字顏色(預設:white)
-g  設定吐司的位置:[top, middle, or bottom](預設:middle)

顏色可以是標準名稱 比如說:red 也可以是十六進位制值如#FF0000,無效的顏色將恢復為預設值。

國光的實際演示:

Bash
termux-toast -b white -c black Hello Termux

開關閃光燈

Bash
termux-torch [on | off]

呼叫 tts 語音引擎

使用系統文字語音轉換(TTS)引擎朗讀文字。

Bsah
termux-tts-speak [-e 引擎] [-l 語言] [-n 區域] [-v 變體] [-p 音調] [-r 速率] [-s ] [要說的話]

選項細節

Bash
 -e engine    # 要使用的 tts 語音引擎 (詳見 termux-tts-engines 這個命令)
 -l language  # 要說的語言類別
 -n region    # 語言的地區
 -v variant   # 語言的變體
 -p pitch     # 語音的語調,1 是預設的正常值
 -r rate      # 語音的語速,1 是預設的正常值
 -s stream    # 要使用的音訊流 (預設是 NOTIFICATION) 還可以選擇ALARM, MUSIC, NOTIFICATION, RING, SYSTEM, VOICE_CALL之一

國光的實際測試:

Bash
termux-tts-speak -e "com.xiaomi.mibrain.speech" '大家轉載文章注意標明文章出處啊'

哦豁,是不是被語音引擎的朗讀嚇一跳,這樣可以就可以用 Termux 去呼叫小愛語音引擎來說一些騷話了。

震動手機

Bash
termux-vibrate [選項]

選項細節:

Bash
-d duration  #  以毫秒為單位的振動持續時間(預設值:1000)
-f           # 在靜默模式下也會強制振動

更換手機桌布

termux-wallpaper [選項]

選項細節:

Bash
-f <file>  # 將 file 檔案設為桌布
-u <url>   # 從 URL 中獲取桌布
-l         # 為鎖屏設定桌布 (Android N 及其以上)

國光的測試:

Bash
termux-wallpaper  -u 'https://cn.bing.com/th?id=OHR.BluebellWood_ZH-CN8128422960_1920x1080.jpg'
Wallpaper set successfully!

哦豁,那樣自動換桌布的操作 豈不是就很簡單了!這個國光下面單獨開章節來講解。

開啟關閉 WiFi

Bash
termux-wifi-enable [true | false]

互動對話方塊部件

這個功能有點強大,可以與使用者進行互動。輸出格式是 JSON

Bash
termux-dialog  [選項]

基本用法:

-l, list   列出所有小部件及其選項
-t, title  標題設定輸入對話方塊的標題(可選)

選項說明具體看下面國光的實際演示:

confirm

Properties
confirm - 顯示確認對話方塊
    [-i 提示] 文字提示 (可選)
    [-t 標題] 設定對話方塊標題 (可選)

國光的演示:

Bash
termux-dialog confirm -i 'Hello Termux' -t 'confirm測試'

返回內容:

Json
{
  "code": 0,
  "text": "yes"
}

checkbox

Properties
checkbox - 使用複選框選擇多個值
    [-v ",,,"] 多個值用逗號隔開 (必選)
    [-t 標題] 設定對話方塊的標題 (可選)

國光的演示:

Bash
termux-dialog checkbox -v 'Overwatch,GTA5,LOL' -t '平時喜歡玩啥遊戲'

返回內容:

Json
{
  "code": -1,
  "text": "[Overwatch]",
  "values": [
    {
      "index": 0,
      "text": "Overwatch"
    }
  ]
}

counter

Properties
counter - 選擇指定範圍內的數字
    [-r 最小值,最大值,開始值] 3個值用逗號隔開 (可選l)
    [-t 標題] 設定對話方塊的標題 (可選)

國光的演示:

哎呀 國光的身高暴露了

返回內容:

Json
{
  "code": -1,
  "text": "181"
}

date

Properties
date - 選擇一個日期e
    [-d "dd-MM-yyyy k:m:s"] 用於日期小部件輸出的SimpleDateFormat模式(可選)
    [-t 標題] 設定對話方塊的標題 (可選)

國光的演示:

Bash
termux-dialog date -d 'yyyy-MM-dd' -t '你的出生日期是?'

返回內容:

Json
{
  "code": -1,
  "text": "2020-04-20"
}

radio

Properties
radio - 從單選按鈕中選擇一個值
    [-v ",,,"] 多個值用逗號隔開 (必選)
    [-t 標題] 設定對話方塊的標題 (可選)

國光的演示:

Bash
termux-dialog radio -v '小哥哥,小姐姐' -t '你的性別是?'

返回內容:

Json
{
  "code": -1,
  "text": "小哥哥",
  "index": 0
}

sheet

Properties
sheet - 從底部工作表中選擇一個值
    [-v ",,,"] 多個值用逗號隔開 (必選)
    [-t 標題] 設定對話方塊的標題 (可選)

國光的演示:

Bash
termux-dialog sheet -v '菜雞,國光'

返回內容:

Json
{
  "code": 0,
  "text": "國光",
  "index": 1
}

spinner

Properties
spinner - 從下拉微調器中選擇一個值
    [-v ",,,"] 多個值用逗號隔開 (必選)
    [-t 標題] 設定對話方塊的標題 (可選)

國光的演示:

Bash
termux-dialog spinner -v '國光,光光' -t '你最喜歡的博主是?'

返回內容:

Json
{
  "code": -1,
  "text": "國光",
  "index": 0
}

text

Properties
text - 輸入文字(如果未指定小部件,則為預設值)
    [-i 提示] 文字提示(可選)
    [-m] 多行輸入(可選)*
    [-n] 輸入數字 (可選)*
    [-p] 輸入密碼(可選)
    [-t 標題] 設定對話方塊的標題 (可選)
       *不能將[-m]與[-n]一起使用

國光的演示:

Bash
termux-dialog text -i '密碼:' -t '請輸入核彈爆炸密碼'

返回內容:

Json
{
  "code": -1,
  "text": "666666",
  "index": 0
}

time

Properties
time - 選擇一個時間值
     [-t 標題] 設定對話方塊的標題 (可選)

國光的演示:

Bash
termux-dialog time -t '你每天多少點睡覺?'

返回內容:

Json
{
  "code": -1,
  "text": "19:30",
  "index": 0
}

Termux:Boot

用於將自定義命令開機自啟使用,不要每次重啟完重複敲命令了。(當然你的手機效能很強,從來需要重啟)

安裝 Termux:Boot

請勿在Google Play 和 F-Droid 之間混合安裝Termux 和 外掛。

這是一個收費的應用,一貧如洗的國光是買不起的,但是還得寫一下這個,萬一真的有壕買了這個APP呢

使用方法

安裝完成啟動這個應用程式後,建立~/.termux/boot/目錄,將需要開機自啟的指令碼放在這個目錄下面,如果有多個檔案的話,將他們按照排序順序執行,如果要確保裝置進入睡眠狀態,建議指令碼前面先執行termux-wake-lock 命令。

下面是一個開機自啟 sshd 服務的的指令碼,檔案的完整路徑為: ~/.termux/boot/start-sshd 內容如下:

Bash
#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
sshd

Termux:Float

可以將 Termux 懸浮窗形式顯示,看上去比較酷炫。

請勿在Google Play 和 F-Droid 之間混合安裝Termux 和 外掛。

這是依然是一個收費的應用,儘管它看上去很酷炫,但是家境貧寒的國光還是買不起,下面就晒一個效果圖吧:

邊學習 邊操作練習

Termux:Styling

Termux 官方提供了終端的一些美化方案

可以將 Termux 懸浮窗形式顯示,看上去比較酷炫。

請勿在Google Play 和 F-Droid 之間混合安裝Termux 和 外掛。

這是還是一個收費的應用,雖然我們前面的一鍵安裝指令碼已經可以達到這個美化效果了,但是如果你想嘗試一下官方的可以試試看。

Termux:Widget

提供了 Andorid 的 Termux 小部件。

請勿在Google Play 和 F-Droid 之間混合安裝Termux 和 外掛。

依然是收費外掛,比較冷門,使用場景很少,不推薦大家入手這個,所以用法這裡國光就不列出了。(這個偷懶的理由很好 2333)

無聊專區

一些無聊有趣的知識,如果你是一個正經講究人,可以跳過這個版塊以節約你的閱讀時間。

cmatrix

《黑客帝國》的程式碼雨視覺特效。

Bash
pkg install cmatrix
cmatrix

cowsay

cowsay 命令是一個有趣的命令,它會用 ASCII 字元描繪牛,羊和許多其他動物,還可以附帶上個自定義文字,很巧的是 Termux 也封裝了這個工具。

Bash
pkg intall cowsay
cowsay -f 動物 內容

內建如下動物:

Bash
$ cowsay -l list

Cow files in /data/data/com.termux/files/usr/share/cows:
beavis.zen bong bud-frogs bunny cheese cower daemon default dragon
dragon-and-cow elephant elephant-in-snake eyes flaming-sheep ghostbusters
head-in hellokitty kiss kitty koala kosh luke-koala meow milk moofasa moose
mutilated ren sheep skeleton stegosaurus stimpy three-eyes turkey turtle
tux vader vader-koala www

國光的簡單示例:

Bash
cowsay -f eyes '法外狂徒張三'

figlet

FIGlet 是建立一個簡單的命令列實用程式,用於建立 ASCII logo。

Bash
pkg install figlet
figlet -f 字型 '文字內容'

內建如下樣式:

Bash
ls $PREFIX/share/figlet

646-ca.flc   646-jp.flc   8859-7.flc      circle.tlf    mini.flf       smbraille.tlf
646-ca2.flc  646-kr.flc   8859-8.flc      digital.flf   mnemonic.flf   smmono12.tlf
646-cn.flc   646-no.flc   8859-9.flc      emboss.tlf    mono12.tlf     smmono9.tlf
646-cu.flc   646-no2.flc  ascii12.tlf     emboss2.tlf   mono9.tlf      smscript.flf
646-de.flc   646-pt.flc   ascii9.tlf      frango.flc    moscow.flc     smshadow.flf
646-dk.flc   646-pt2.flc  banner.flf      future.tlf    pagga.tlf      smslant.flf
646-es.flc   646-se.flc   big.flf         hz.flc        script.flf     standard.flf
646-es2.flc  646-se2.flc  bigascii12.tlf  ilhebrew.flc  shadow.flf     term.flf
646-fr.flc   646-yu.flc   bigascii9.tlf   ivrit.flf     slant.flf      upper.flc
646-gb.flc   8859-2.flc   bigmono12.tlf   jis0201.flc   small.flf      ushebrew.flc
646-hu.flc   8859-3.flc   bigmono9.tlf    koi8r.flc     smascii12.tlf  uskata.flc
646-irv.flc  8859-4.flc   block.flf       lean.flf      smascii9.tlf   utf8.flc
646-it.flc   8859-5.flc   bubble.flf      letter.tlf    smblock.tlf    wideterm.tlf

國光的演示:

Bash
figlet -f future 'www.sqlsec.com'

hollywood

在 Linux 終端中偽造好萊塢黑客螢幕,假裝自己是一名黑客。

Bash
pkg install hollywood
hollywood

國光差點就信了

neofetch

Neofetch 是一個簡單但有用的命令列系統資訊工具。它會收集有關係統軟硬體的資訊,並在終端中顯示結果。

Bash
pkg install neofetch
neofetch

nyancat

彩虹貓(英語:Nyan Cat)是在2011年4月上傳在Youtube 的視訊,並且迅速爆紅於網路,並在2011年YouTube瀏覽量最高的視訊中排名第五,B站這個小貓也很多,主要是BGM比較魔性,感興趣的朋友可以自己去搜索看看。

Bash
pkg install nyancat
nyancat

喵喵喵喵

使用 Ctrl + C 快捷鍵退出魔性迴圈

screenfetch

Screenfetch 是一個適用於 Linux 的小工具,用於顯示系統資訊及ASCII化的Linux發行版圖示。

pkg install screenfetch
screenfetch

顯示其他 Linux 發行版的 logo:

Bash
screenfetch -A 發行版

現在內建的發行版 logo 有:

Properties
ALDOS, Alpine Linux, Amazon Linux, Antergos, Arch Linux (Old and Current
    Logos), ArcoLinux, Artix Linux, blackPanther OS, BLAG, BunsenLabs, CentOS,
    Chakra, Chapeau, Chrome OS, Chromium OS, CrunchBang, CRUX, Debian, Deepin,
    DesaOS,Devuan, Dragora, elementary OS, EuroLinux, Evolve OS, Sulin, Exherbo,
    Fedora, Frugalware, Fuduntu, Funtoo, Fux, Gentoo, gNewSense, Guix System,
    Hyperbola GNU/Linux-libre, januslinux, Jiyuu Linux, Kali Linux, KaOS, KDE neon,
    Kogaion, Korora, LinuxDeepin, Linux Mint, LMDE, Logos, Mageia,
    Mandriva/Mandrake, Manjaro, Mer, Netrunner, NixOS, OBRevenge, openSUSE, OS
    Elbrus, Oracle Linux, Parabola GNU/Linux-libre, Pardus, Parrot Security,
    PCLinuxOS, PeppermintOS, Proxmox VE, PureOS, Qubes OS, Raspbian, Red Hat
    Enterprise Linux, ROSA, Sabayon, SailfishOS, Scientific Linux, Siduction,
    Slackware, Solus, Source Mage GNU/Linux, SparkyLinux, SteamOS, SUSE Linux
    Enterprise, SwagArch, TinyCore, Trisquel, Ubuntu, Viperr, Void and Zorin OS and
    EndeavourOS

內建的作業系統 logo 有:

Bash
Dragonfly/Free/Open/Net BSD, Haiku, Mac OS X, Windows

sl

某程式設計牛人也經常犯把 ls 敲成 sl 的錯誤,所以他自己編了一個程式娛樂一下,這個程式的作用很簡單,就是當你輸入 sl 的時候終端會出現一個火車呼嘯而過~~

Bash
pkg install sl
sl

toilet

toilet 能用字母拼寫出更大字母的工具,具體拼出什麼字由命令後面的引數決定,不僅如此,它還能打印出各種風格的效果,比如彩色,金屬光澤等。

Bash
pkg install toilet
toilet -f 字型 -F 顏色引數 '文字資訊'

內建如下字型:

Bash
$ ls $PREFIX/share/figlet

ascii12.tlf     bigmono12.tlf  emboss2.tlf  mono9.tlf      smblock.tlf    wideterm.tlf
ascii9.tlf      bigmono9.tlf   future.tlf   pagga.tlf      smbraille.tlf
bigascii12.tlf  circle.tlf     letter.tlf   smascii12.tlf  smmono12.tlf
bigascii9.tlf   emboss.tlf     mono12.tlf   smascii9.tlf   smmono9.tlf

內建如下顏色效果:

Bash
$ toilet --filter list

Available filters:
"crop": crop unused blanks
"gay": add a rainbow colour effect
"metal": add a metallic colour effect
"flip": flip horizontally
"flop": flip vertically
"180": rotate 180 degrees
"left": rotate 90 degrees counterclockwise
"right": rotate 90 degrees clockwise
"border": surround text with a border

國光的簡單演示:

Bash
toilet -f mono12 -F gay 'Bilibili'

終端二維碼

Linux 命令列下的二維碼,主要核心是這個網址:http://qrenco.de/

Bash
echo "https://www.sqlsec.com" |curl -F-=\<- qrenco.de

如果你不嫌無聊的話還可以掃描這個二維碼,然後就又開啟我的這篇文章了。

文章總結

相對來說 國外的Termux DIY的氛圍比國內好很多,Youtube上的視訊都有很高的播放量。當然國內也有這麼一批執著於Termux的玩家,當初寫完這篇文章的時候,相對來說還比較小眾的,寫這篇文章只想讓更多的人認識到 Termux 的生產力,使用 Termux 來做一些很 cool 的事情。 期待有更多Termux的優秀文章出現~

另外如果你喜歡這篇文章的話 不防點一下網站最下方不起眼的廣告表示支援!Thanks♪(・ω・)ノ

發現一個尷尬的問題,看我這篇文章大人大多數是極客玩家,你們的瀏覽器自帶去廣告外掛,儘管我的文章中的廣告位置已經很不起眼了,但是你們可能連點的機會都沒有…

部落格我也寫了快 4 年了,文章廣告到現在的收益只有 8 美元,有圖有真相:

本文可能實際上也沒有啥技術含量,但是寫起來還是比較浪費時間的,在這個喧囂浮躁的時代,個人部落格越來越沒有人看了,寫部落格感覺一直是用愛發電的狀態。如果你恰巧財力雄厚,感覺本文對你有所幫助的話,可以考慮打賞一下本文,用以維持高昂的伺服器運營費用(域名費用、伺服器費用、CDN費用等),對部落格用CDN了,否則訪客不會有這麼快速友好的體驗。