termux的基本使用
來源於國光大大
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的時候需要從遠端伺服器載入資料,然而可能會遇到這種問題:
VerilogUbable to install
Termux was unable to install the bootstrap packages.
Check your network connection and try again.
這裡的Termux官方遠端的伺服器地址是: http://termux.net/bootstrap/
目前解決方法有兩種:
- VPN 全域性代理 (成功率很高)
- 如果你是 WiFi 的話嘗試切換到運營商流量 (有一定成功率)
- ① Google Play ② F-Droid ③ 酷安 根據這個順序重複1、2操作
基本操作
基本操作還是要學習一下的,可以事半功倍。
縮放文字
可以使用縮放手勢來調整其字型大小。 對就是 雙指放大縮小照片那樣操作。
長按螢幕
長按螢幕會調出顯示選單項(包括複製、貼上、更多),方便我們進行復制或者貼上
More
選單的說明如下:
長按螢幕
├── 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
命令:
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
進行安裝。
dpkg -i ./package.de # 安裝 deb 包
dpkg --remove [package name] # 解除安裝軟體包
dpkg -l # 檢視已安裝的包
man dpkg # 檢視詳細文件
目錄結構
Bashecho $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 映象源
Bash
pkg update
卡住的話多按幾次回車 不要傻乎乎的等
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
修改為如下內容
# 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
修改為如下內容
# 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
修改為如下內容
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable
安裝基礎工具
更換源之後來趕緊來下載安裝一些基本工具吧,這些工具基本上是 Linux 系統自帶的,因為 Termux 為了體積不過大,預設是沒有帶這些工具的,執行下面的命令來安裝:
Bashpkg update
pkg install vim curl wget git tree -y
終端配色方案
指令碼專案地址:https://github.com/Cabbagec/termux-ohmyzsh/
該指令碼主要使用了zsh
來替代bash
作為預設 shell,並且支援色彩和字型樣式,同時也激活了外接儲存,可以直接訪問SD卡下的目錄。主題預設為 agnoster,顏色樣式預設為 Tango,字型預設為 Ubuntu。
Bash執行下面這個命令確保已經安裝好了 curl 命令
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
如果因為不可抗力的原因,出現port 443: Connection refused
網路超時的情況,那麼執行下面國光遷移到國內的地址的命令即可:
sh -c "$(curl -fsSL https://html.sqlsec.com/termux-install.sh)"
Android6.0 以上會彈框確認是否授權訪問檔案,點選始終允許
授權後 Termux 可以方便的訪問SD卡檔案。
手機 App 預設只能訪問自己的資料,如果要訪問手機的儲存,需要請求許可權,如果你剛剛不小心點了拒絕的話,那麼可以執行以下命令來重新獲取訪問許可權:
Bashtermux-setup-storage
指令碼允許後先後有如下兩個選項:
BashEnter 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
ln -s /data/data/com.termux/files/home/storage/shared/tencent/QQfile_recv QQ
TIM
Bashln -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
內容為:
Bashextra-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按鍵 |
上面列出的三個特殊鍵中的每一個最多隻能在附加鍵定義中列出一次,超過次數將會報錯。
下面是國光我自用的按鍵表:
Bashextra-keys = [ \
['ESC','|','/','`','UP','QUOTE','APOSTROPHE'], \
['TAB','CTRL','~','LEFT','DOWN','RIGHT','ENTER'] \
]
zsh 主題配色
編輯家目錄下的.zshrc
配置檔案
$ vim .zshrc
第一行可以看到,預設的主題是agnoster
主題:
實際上這個主題也蠻酷的,如果你還想更換其他主題的話,那麼在.oh-my-zsh/themes
目錄下放著oh-my-zsh
所有的主題配置檔案,只要將預設的 agnoster 更換為其他的主題檔名即可。
下面是國光認為還不錯的幾款主題
主題比較多,國光這裡就不列舉了,感興趣大家可以一個個嘗試去看看。 當然如果你是個變態的話,可以嘗試random
主題,每開啟一個會話配色主題都是隨機的.
ZSH_THEME="random"
zsh 外掛推薦
zsh 之所以受歡迎除了好看的配色以為,另一個原因就是強大的外掛了。下面國光列舉一款比較實用的外掛的安裝方法,更多強大的外掛等待大家自己去探索。
autosuggestions
根據使用者的平時使用習慣,終端會自動提示接下來可能要輸入的命令,這個實際使用效率還是比較高的:
Bash# 拷貝到 plugins 目錄下
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
在 ~/.zshrc
中配置:
plugins=(其他的外掛 zsh-autosuggestions)
輸入zsh
命令生效配置:
可以看到國光我只敲了一個v
後面的命令就自動提示補全了,這時候只要按右方向鍵
,在 Termux 裡面的快捷鍵是 音量加 + D
,就可以直接補全命令了。
修改啟動問候語
預設的啟動問候語如下:
這個啟動問候語在前期對於初學者有一定的幫助,但是隨著你們 Termux 的熟悉,這個預設的問候語就會顯得比較臃腫。編輯問候語檔案可以直接修改啟動顯示的問候語: Bashvim $PREFIX/etc/motd
修改完的效果如下:
本文版本歸國光所有 轉載註明出處哦這樣啟動新的會話的時候看上去就會簡潔很多。什麼你也想要這個效果? 吶 下面是國光自己生成的,可以直接複製貼上:
Ini _____
|_ _|__ _ __ _ __ ___ _ ___ __
| |/ _ \ '__| '_ ` _ \| | | \ \/ /
| | __/ | | | | | | | |_| |> <
|_|\___|_| |_| |_| |_|\__,_/_/\_\
超級管理員身份
實際上 Termux 不需要 root 許可權也可以折騰各種各樣的操作的,大家不必對 root 抱有啥幻想,本文的操作基本上沒有涉及到手機要用到 root 的地步。
手機沒有root
利用proot
可以為手機沒有root的使用者來模擬一個root的環境,這裡主要是經典的 Linux 檔案系統佈局上的模擬。
pkg install proot -y
然後終端下面輸入:
Bashtermux-chroot
即可模擬root
環境,該環境模仿 Termux 中的常規Linux檔案系統,但是不是真正的 root。
輸入exit
可回到普通使用者的檔案系統。
手機已經root
安裝tsu
,這是一個su
的 Termux 版本,是一個真正的root許可權,用來在termux上替代su
,操作不慎可能對手機有安全風險。因為官方封裝了,所以安裝也很簡單:
pkg install tsu -y
然後終端下面輸入:
Bashtsu
即可切換root
使用者,這個時候會彈出root
授權提示,給予其root
許可權,效果圖如下:
在管理員身份下,輸入
exit
可回到普通使用者身份。不過本文沒有設計到 root 許可權的操作,一些底層的工具可能才會需要,考慮到 root 的不安全性 和 那些工具的冷門性,國光這裡就沒有繼續拓展。
開發環境
Termux 支援的開發環境很強,可以完美的執行 C、Python、Java、PHP、Ruby等開發環境,建議讀者朋友們選擇自己需要的開發環境折騰。
編輯器
寫程式碼前總得折騰一下編輯器,畢竟磨刀不誤砍柴工嘛。Termux 支援多種編輯器,完全可以滿足日常使用需求。
Emacs
據說Emacs是神的編輯器,國光我這種小菜雞還不會使用哎,但是 Termux 官方已經封裝好了 Emacs了,我們安裝起來就會簡單很多:
Bashpkg install emacs
nano
nano 是一個小而美的編輯器。具有如下:開啟多個檔案,每行滾動,撤消/重做,語法著色,行編號等功能
同樣安裝起來也很簡單:
Bashpkg install nano
Vim
Vim 被稱為編輯器之神,基本上 Linux 發行版都會自帶 Vim,這個在前文基本工具已經安裝了,如果你沒有安裝的話,可以使用如下命令安裝:
Bashpkg install vim
並且官方也已經封裝了vim-python
,對Python相關的優化。
pkg install vim-python
解決漢字亂碼
如果你的Vim開啟漢字出現亂碼的話,那麼在家目錄(~
)下,新建.vimrc
檔案
vim .vimrc
新增內容如下:
Iniset fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030
然後source
下變數:
source .vimrc
效果圖
Vim 配色
Termux Vim 自帶了如下的配色:
Bashls /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
檔案:
vim ~/.vimrc
新增如下內容:
Iniset nu " 顯示行號
colorscheme desert " 顏色主題
syntax on " 開啟語法高亮
下面是國光隨便找的幾個顏色主題效果,感興趣的朋友可以自己一個個嘗試:
slate murphy peachpuffApache
Apache是一個開源網頁伺服器軟體,由於其跨平臺和安全性,被廣泛使用,是最流行的Web伺服器軟體之一。
安裝 Apache
Bashpkg install apache2
啟動 Apache
Bashapachectl start
然後瀏覽器訪問: http://127.0.0.1:8080
訪問是否成功啟動:
Termux 自帶的 Apache 的網站預設路徑為:
$PREFIX/share/apache2/default-site/htdocs/index.html
停止 Apache
Bashapachectl stop
重啟 Apache
Bashapachectl restart
Apache 解析 PHP
既然Apache、PHP、MySQL都成功安裝的話,那麼現在只要配置好 Apache 解析 PHP 之後就可以打造一個 Android 平臺上的 LAMPP平臺了。
安裝 php-apache
預設的 Apache 是無法解析 PHP的,我們需要安裝相應的包:
Bashpkg install php-apache
配置 Apache
Termux 上的 Apache 預設配置檔案的路徑為:
$PREFIX/etc/apache2/httpd.conf
直接編輯配置檔案:
Bashvim /data/data/com.termux/files/usr/etc/apache2/httpd.conf
配置檔案裡面搜尋 PHP 沒有相關的模組,所以需要我們手動新增 PHP7 的模組:
BashLoadModule php7_module /data/data/com.termux/files/usr/libexec/apache2/libphp7.so
並在剛剛這個語句下方新增解析器,內容如下:
Properties<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
接著繼續往下找配置檔案裡面配置預設首頁的地方,我們新增 index.php
到預設首頁的規則裡面:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
這表示網站目錄的預設首頁是 index.php,如果沒有 index.php 系統會自動尋找 index.html做為預設首頁了。
修改完 Apache 的配置檔案後,記得使用 apachectl restart
重啟 Apache 服務,然後這個時候回發現我們重啟居然報錯了:
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 報錯
先找到如下行
PropertiesLoadModule 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
取消註釋為:
PropertiesLoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so
最終的示例圖如下:
解析 PHP 測試
在 Apache 的網站根目錄下,建立一個 index.php ,測試一下 phpinfo() 函式能否正常執行:
Bashecho '<?php phpinfo(); ?>' > $PREFIX/share/apache2/default-site/htdocs/index.php
然後瀏覽訪問: http://127.0.0.1:8080
檢視效果:
C
Termux 官方封裝了 Clang,他是一個C、C++、Objective-C和Objective-C++程式語言的編譯器前端。
安裝 clang
Bashpkg install clang
編譯測試
clang 在編譯這一塊很強大,感興趣的朋友可以去網上檢視詳細的教程,國光這裡只演示基本的 Hello World使用。寫一個Hello World的C程式,如下 hello.c
:
#include <stdio.h>
int main(){
printf("Hello World")
return 0;
}
編輯完成後,使用 clang 來編譯生成 hello 的可執行檔案:
Bashclang hello.c -o hello
效果圖
Java
Termux 原生編譯JAVA只能使用 ecj
(Eclipse Compiler for Java) 和 dx
了,然後使用 Android 自帶的 dalvikvm 執行。如果想要完整體驗JAVA環境的話,另一個方法就是 Termux 裡面安裝一個完整的 Linux 系統,然後在 Linux裡面執行Java,安裝系統部分下面文章會詳細介紹,這一節國光只介紹最基本的操作。
安裝編譯工具
Bashpkg install ecj dx -y
國光這裡只演示基本的 Hello World 使用。寫一個Hello World的 JAVA 程式,如下 HelloWorld.java
:
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello Termux");
}
}
編譯生成 class 檔案
Bashecj HelloWorld.java
編譯生成 dex 檔案
Bashdx --dex --output=hello.dex HelloWorld.class
使用 dalvikvm 執行
Bash格式規範如下:
dalvikvm -cp dex檔名 類名
dalvikvm -cp hello.dex HelloWorld
效果圖
MariaDB(MySQL)
MariaDB 是 MySQL 關係資料庫管理系統的一個復刻,由社群開發,有商業支援,旨在繼續保持在GNU GPL下開源。開發這個分支的原因之一是:甲骨文公司收購了 MySQL 後,有將 MySQL 閉源的潛在風險,因此社群採用分支的方式來避開這個風險。
安裝 MariaDB
Termux 官方也封裝了MariaDB,所以安裝起來很方便:
Bashpkg install mariadb
這裡基本上會安裝很順利,但是早期使用者可能出現安裝失敗的情況,如果安裝失敗的話,這個時候手動在配置目錄下建立my.cnf.d
資料夾即可:
$ cd /data/data/com.termux/files/usr/etc/
$ mkdir my.cnf.d
初始化資料庫
Bash早期的 Termux 安裝完 MySQL是需要初始化資料庫的,新版本在安裝時候就已經初始化了資料庫
mysql_install_db
2020年4月19日:國光今天安裝的 MySQL 發現已經存在 mysql.user 表了,無需初始化:
啟動 MySQL 服務
因為正常啟動完成後,MySQL 這個會話就一直存活,類似與 Debug 除錯一樣,此時使用Ctrl + C
-> 中止當前程序也無濟於事,體驗式就一點都不優雅,所以這裡國光使用Linux自帶的nohup
命令將其放到後臺啟動。
nohup mysqld &
圖片上這個17115
此時就是mysqld
的程序PID號,我們使用如下命令驗證一下是否正確:
ps aux|grep mysql
可以看到果然是程序的 PID 號:
至於 nohup 執行的提示
Ininohup: ignoring input and appending output to `nohup.out'
這個是正常現象,無傷大雅,Termux 下就這樣將就著用吧。
停止 MySQL 服務
Termux 下沒有好的辦法退出 MySQL 服務,只能強制殺掉程序了,使用如下命令格式可以輕鬆殺掉程序:
Bashkill -9 PID
成功kill掉
當然每次檢視程序的PID號,再殺掉程序有點繁瑣了,實際上這一步可以直接這樣操作:
Bashkill -9 `pgrep mysql`
Awesome ! 優雅!
預設的兩個使用者
使用者登入的前提是 MySQL 服務在後臺執行,如果你按照上一小節操作把 MySQL kill 掉的話,請重新啟動一下MySQL 服務
新版本的 Termux 安裝初始化資料庫的時候包含兩個高許可權使用者,一個是無法訪問的 root 使用者
提示拒絕root登入另一個使用者就是 Termux 的使用者名稱,預設密碼為空
,我們來登入看看:
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 使用者來登入了:
Bashmysql -u root -p
Enter password: xxxxx(這裡輸入你的密碼)
遠端登入 MySQL
使用 ip a
後檢視 IP 地址後,嘗試電腦端遠端訪問 Termux 的資料庫:
發現預設是無法成功連線的,這個時候我們需要到資料庫手動開啟 root 使用者的遠端訪問許可權:
Sql這裡的 P@ssw0rd 是我的 root 密碼
grant all on *.* to root@'%' identified by 'P@ssw0rd' with grant option;
flush privileges;
執行完成後 嘗試 PC 端遠端過去看看:
Nginx
Nginx 是一個高效能的 Web 和反向代理伺服器,Nginx 用的熟悉的話,下面搭建各種網站也就輕而易舉了。
安裝 Nginx
Termux 安裝 Nginx 也很簡單,一條命令即可:
Bashpkg install nginx
安裝完成後,國光的習慣是檢視一下版本資訊:
1.17.10 版本測試 Nginx
測試檢查 Nginx 的配置檔案是否正常:
Bashnginx -t
現在測試肯定是OK的,這個多用於我們修改完 Nginx 的配置檔案後的檢查。
啟動 Nginx
早期版本的 Termux 需要在termux-chroot
環境下才可以成功啟動 Nginx ,新版本的 Termux 可以直接啟動,很是方便:
nginx
Termux 在 Nginx 上預設執行的埠號是 8080, 使用pgrep
命令也可以檢視 Nginx 程序相關的PID號。
然後手機本地直接訪問http://127.0.0.1:8080
檢視 Nginx 是否正常啟動:
重啟 Nginx
一般當修改完 Nginx 相關的配置檔案時,我們需要重啟 Nginx,使用如下命令即可重啟:
Bashnginx -s reload
停止 Nginx
方法一 原生停止
Bashnginx -s stop
或者
Bashnginx -s quit
quit 是一個優雅的關閉方式,Nginx在退出前完成已經接受的連線請求。Stop 是快速關閉,不管有沒有正在處理的請求。
方法二 殺掉程序
只需三番鍾,裡造會幹我一樣,愛象節款遊戲 扯遠了,只需要1條命令,即可優雅的終止掉 Nginx 服務:
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管理器,所以這裡得先安裝它:
Bashpkg install php-fpm
安裝完成順便檢查一下版本資訊吧:
配置 php-fpm
編輯 php-fpm 的配置檔案 www.conf
:
vim $PREFIX/etc/php-fpm.d/www.conf
定位搜尋 listen =
找到
listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock
將其改為:
Inilisten = 127.0.0.1:9000
???啥 你不會使用 vim 搜尋 ㄟ(▔,▔)ㄏ 那就老老實實一個個翻頁吧。
配置 Nginx
編輯 Nginx 的配置檔案 nginx.conf
:
vim $PREFIX/etc/nginx/nginx.conf
下面國光貼出配置好的完整配置檔案,大家可以參考下面這些圖,只需要2大步驟:
- 新增 index.php 到預設首頁的規則裡面
- 取消
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(); ?>
echo '<?php phpinfo(); ?>' > $PREFIX/share/nginx/html/info.php
啟動服務
先啟動 php-fpm 服務:
Bashphp-fpm
然後再啟動 Nginx 服務
Bashnginx
如果你的 Nginx 已經啟動了的話,使用
nginx -s reload
重啟 Nginx
訪問測試
瀏覽器訪問http://127.0.0.1:8080/info.php
來看看剛剛新建的測試檔案是否解析了:
Nodejs
Node.js 是能夠在伺服器端執行 JavaScript 的開放原始碼、跨平臺 JavaScript 執行環境。
安裝 Nodejs
nodejs-lts
是長期支援版本,如果執行 pkg install nodejs
版本後,發現 npm 報如下錯誤:
segmentation fault
那麼這個時候可以嘗試解除安裝當前版本 pkg uninstall nodejs
然後執行下面命令安裝長期穩定版本:
pkg install nodejs-lts
安裝完成後使用如下命令檢視版本資訊:
Bashnode -V
npm -V
Hello World
新建一個 hello.js
指令碼,內容如下:
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 安裝一些包的時候會報如下錯誤:
VerilogCannot read property 'length' of undefined
查了下是這邊版本的問題
新版本貌似npm正常這是一個 BUG,官方的解決方法如下:
disable concurrency in case of libuv/libuv#1459
編輯如下檔案:
Bashvim $PREFIX/lib/node_modules/npm/node_modules/worker-farm/lib/farm.js
我這裡修改length的是4
,這個好像和CPU有關,總之這裡的 length 得指定一個數字。
然後在重新安裝下npm install hexo-cli -g
成功。
PHP
PHP 是一種開源的指令碼語言,適用於網路開發。語法借鑑吸收C語言、Java 和 Perl 等流行計算機語言的特點,易於學習,PHP 是世界上最好的語言(手動狗頭)。
安裝PHP
Termux 官方封裝了 PHP,所以我們安裝起來就很方便:
Bashpkg install php
安裝完成後檢視下版本資訊:
Bashphp --version
執行測試檔案
自
PHP5.4
之後 PHP內建了一個 Web 伺服器。在 Termux 下可以很方便地測試 PHP 檔案
首先在家(~
)目錄下建一個www
資料夾,然後在www
資料夾下新建一個index.php
檔案,內容為:
<?php phpinfo();?>
完整的步驟如下:
Bash# 新建 www 資料夾
mkdir ~/www
# 建立 inedx.php 檔案
echo '<?php phpinfo();?>' > ~/www/index.php
編寫完成index.php
檔案後,嘗試使用 PHP 內建的 WebServer 直接啟動:
# 進入家目錄
cd ~
# 啟動 WebServer
php -S 0.0.0.0:8888 -t www/
自己制定埠後,瀏覽器訪問http://127.0.0.1:8888
效果如下:
Python
Python 是近幾年非常流行的語言,Python 相關的書籍和資料也如雨後春筍一般不斷湧現,帶來了活躍了 Python 學習氛圍。
安裝python2
Python2 版本要淘汰了,大家簡單瞭解一下就好:
Bashpkg install python2 -y
安裝完成後,使用python2
命令啟動 Python2.7 的環境
安裝python3
Termux 安裝 Python 預設版本是 Python3 的版本,與此同時也順便安裝了clang
pkg install python -y
安裝完成後,檢視下clang
和Python
的版本:
注意版本區分
如果你同時安裝了 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
這兩條命令分別升級了pip2
和pip3
到最新版。升級完成後你會驚訝的發現你的pip3
命令不見了???然後這個時候就開始吐槽國光了(內心OS:國光 非要強迫症升級 pip 版本,這下好了吧!)
國光:不要慌 問題不大,我們可以手動檢視當前有哪些可執行的 pip 檔案,使用如下命令:
Bashls /data/data/com.termux/files/usr/bin|grep pip
原來我們的pip3變成了pip3.8了啊
接下來分別檢視對應 pip 可執行檔案的版本:
現在全都是最新版的 pip 了哦
iPython
iPython是一個 Python 的增強版本的互動式 shell,支援變數自動補全,自動縮排,支援shell命令等,內建了許多很有用的功能和函式。iPython 可以提高我們的學習效率!
Bash先安裝
clang
,否則直接使用pip
安裝ipython
會失敗報錯. 沒有安裝的話使用pkg install clang
安裝
# -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
後,然後分別檢視對應版本資訊:
ipython2 -V
ipython -V
Jupyter Notebook
Jupyter Notebook(此前被稱為 iPython notebook)可以在 Web 端提供Python互動,雖然和iPython共享同一個核心,但是更強大。
Jupyter notebook 相關的依賴比較多 安裝起來較為耗時 國光就只用 Python3 版本來演示了,另外請務必要使用國內的 pip 源來安裝
下面官方建議安裝的完整的命令:
Bashpkg 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
安裝好之後檢視一下版本資訊:
Bashjupyter --version
所有外掛均安裝完成
Jupyter Notebook 就安裝好了,這個比較強大更詳細的教程大家可以自行去谷歌或者百度一下,國光這裡只演示基本的功能。
先啟動 notebook
Bashjupyter 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
Bashwget https://github.com/ethicalhack3r/DVWA/archive/master.zip
如果訪問 Github 比較慢的話,可以嘗試如下連結:
Bashwget 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
新建資料庫
Sqlmysql -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 檔案的,不信我們手動來查詢一下:
Bashphp --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 配置檔案:
Bashecho 'allow_url_include = On' > $PREFIX/lib/php.ini
注意這是一個不安全的配置 只是為了配合本地的 DVWA 靶場 做模擬黑客攻擊練習使用的
配置完成後,自己嘗試使用php --ini
來定位搜尋配置檔案,會發現 PHP 已經找到了配置檔案了。
修改完配置檔案後 得重啟 php-fpm
服務:
# 殺掉 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 命令來安裝:
Bashnpm install hexo-cli -g
安裝完成的話,順便看一下 Hexo 相關的版本資訊吧:
Bashhexo -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 純靜態原始碼
Bashhexo 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 對網站目錄下部署並不友好 ,大概有如下解決方法:
- Nginx vhosts 配置多域名,這個伺服器上常用的操作,但是 Termux 裡面實現難度較高
- 將 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 前我們先需要新建一個數據庫,以供後面的網站安裝:
Sqlmysql -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官網這個下載又問題的話,可以多嘗試幾次,也可以通過如下渠道來下載
- WordPress Too Many Requests 出現這種報錯,多半是中國的IP又被國外遮蔽了,可以嘗試使用迅雷來下載
- 掛代理來下載
- 百度找國內的第三方非官方下載站下載(不是很推薦)
配置 Nginx 解析
如果你讀過前面的「開發環境」、「Nginx」、「Nginx 解析 PHP」三個小節的話,這裡直接啟動 php-fpm 和 Nginx 即可:
Bashphp-fpm
nginx
當然如果你的 php-fpm 和 Nginx 服務以及啟動的話 就直接跳到下一步吧
安裝 WordPress
瀏覽器訪問: http://127/.0.0.1/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 命令列的使用國光不在廢話了,下面就列幾個點,大家可以關注一下:
- Kali Linux 不需要換源,官方源會自動選擇最佳的伺服器節點
- root 使用者 無法使用 nmap 所以 nmap 的一些需要高許可權使用者的引數無法正常使用
- 完整安裝 kali 工具集合可以使用 apt install kali-linux-default 大小大概為2.6GB左右 國光 不建議這樣操作,需要啥工具 自己單獨安裝即可 沒有必要全部安裝
- Galaxy 系列手機可能會阻止 非 root 使用者使用 sudo,只需使用 su -c 代替
啟動 VNC 服務
上面命令表中的 KeX 服務,實際上就是VNC服務,預設的埠是 5901 埠,首先 Termux 下啟動 Kali 的 VNC:
Bashnh kex &
圖片上可以得出 KeX 服務的埠是 5901,然後程序的ID 是17222,可以使用 nmap 或者 netstat 命令再檢測一下5901埠是否開啟。
VNC 工具連線
VNC 連線還需要密碼,所以這裡手動設定一下:
Bashnh kex passwd
設定完成之後級可以在 VNC 連線工具裡面填寫相應的資訊即可連線了,記得埠號要加上:
VNC 關掉連線後,想要停止 Kex 服務即 VNC 服務,Termu 下使用如下命令即可退出服務:
Bashnh kex stop
其他 Linux 系統
Termux 安裝 Linux 系統專案地址:https://github.com/sqlsec/termux-install-linux
這個指令碼國光我磨磨蹭蹭寫了1天才寫完,篩選下來的系統都是體驗還不錯的系統。
下載的主要映象全部託管在了 Gitee 上,下載速度很快,而且系統對應的更新源國光均替換為國內源了,安裝和解除安裝都很容易上手,使用者非預期的輸入也都考慮到了,目前完美支援 Ubuntu、Kali、Debian、CentOS、Fedora系統的安裝,具體想嘗試的話可以輸入如下命令體驗安裝:
Bash確保 Termux 已經安裝了 proot 和 Python3 才可以順利安裝
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
Bashpkg install aria2
安裝完成後 可以順便看一下版本資訊:
Basharia2c -v
啟動 rcp 服務
aria2 支援 rpc 服務,預設監聽的是6800
埠。這樣我們可以使用開源的 Web 專案來連線操作 aria2
aria2c --enable-rpc --rpc-listen-all
webui-aria2
國光這裡選的是這個比較流行的 aria2 的開源專案,地址是:https://github.com/ziahamza/webui-aria2 安裝執行起來也很簡單:
Bashgit clone https://github.com/ziahamza/webui-aria2.git
cd webui-aria2
node node-server.js
需要node來執行,沒有安裝的 話使用
pkg install nodejs
來安裝如果如果下載速度比較慢的話,可以嘗試使用 fastgit映象地址來下載
執行起來後,瀏覽器訪問:http://localhost:8888
檢視效果:
SSH
有時候我們需要通過 ssh 遠端連線伺服器,這個時候有 Termux,躺在床上就可以操作電腦了,哇!哦哦哦!awesome ,或者我們突然很閒,想要用電腦來遠端手機,沒錯 Termux 都可以做到。
Termux ssh 連線電腦
安裝 openssh
OpenSSH 是SSH (Secure SHell) 協議的免費開源實現。SSH協議族可以用來進行遠端控制, 或在計算機之間傳送檔案。Termux 官方已經封裝好了,我們安裝起來也會很簡單:
Bashpkg install openssh
遠端連線電腦
然後就可以直接ssh連線你的伺服器了,(前提是電腦安裝了ssh服務)
Bashssh [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 軟體包,沒有安裝的話參考上一個小結進行安裝。實現這個效果有兩大種方法:
-
SSH 通過密碼認證連線
-
SSH 通過公私鑰連線
-
PC 端生成公私鑰,然後將 公鑰 拷貝到 Termux 中,通過公私鑰連線。
-
Termux 端生成公私鑰,然後將 私鑰拷貝到 PC 中,通過公私鑰連線。
-
啟動 ssh 服務
安裝完成後,sshd
服務預設沒有啟動,所以得手動啟動下:
sshd
因為手機上面低的埠有安全限制,所以這裡 openssh 預設的 sshd 預設的服務埠號為 8022
停止 ssh 服務
如果需要停止 ssh 服務,只需要 kill 殺掉程序即可:
Bashpkill sshd
通過密碼認證連結
Termux 預設是使用密碼認證進行連線的,如果要啟用密碼連線的話要確保你的密碼足夠安全,否則你的SSH被惡意攻擊者連線或者爆破成功的話,那就美滋滋了!
Termux 下的 SSH 預設配置檔案的路徑為 $PREFIX/etc/ssh/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
命令可以直接修改密碼:
passwd
密碼不要忘記哦
電腦遠端連線測試
國光測試了一下 Termux 的 ssh 和常規 Linux 不太一樣,連線的時候不需要指定使用者名稱。
Bashssh 192.168.31.124 -p 8022
通過公私鑰連線
公私鑰連線更加安全,再也不用但你的Termux SSH被黑客爆破攻擊的情況了
PC 端生成公私鑰
首先在PC端生成祕鑰對:
Bashssh-keygen
預設一直回車下去:
此時會在~/.ssh
目錄下生成 3 個檔案id_rsa
, id_rsa.pub
,known_hosts
然後需要把公鑰 id_rsa.pub
拷貝到手機的 data\data\com.termux\files\home\.ssh 資料夾中。然後
將公鑰拷貝到驗證檔案中
在Termux
下操作
cat id_rsa.pub > authorized_keys
OK 現在你已經設定好公私鑰了,那麼修改一下 SSH 的配置檔案,關掉密碼登入吧:
Bashvim $PREFIX/etc/ssh/sshd_config
找到
BashPasswordAuthentication yes
修改為
BashPasswordAuthentication no
然後記得重啟一下 SSH 服務:
Bashpkill sshd;sshd
然後電腦端這邊直接就可以通過公私鑰連線了,無需輸入密碼也更加安全:
Bashssh 192.168.31.124 -p 8022
Termux 端生成公私鑰
操作完上一步之後,我想你大概已經知道了公私鑰的原理了。那麼我們現在嘗試在 Termux 端生成公私鑰這種方法試試看,理論上也是可以的。
首先在 Termux 端生成祕鑰對:
ssh-keyge
此時會在~/.ssh
目錄下生成 3 個檔案id_rsa
, id_rsa.pub
,known_hosts
然後將公鑰拷貝到驗證檔案中
Bashcat id_rsa.pub > authorized_keys
接著將id_rsa.pub
私鑰下載下來,拷貝到PC端上,並賦予 600
的許可權:
chmod 600 id_rsa
然後通過-i
手動載入私鑰的方式也可以成功連線到 Termux:
ssh -i id_rsa [email protected] -p 8022
Bingo!
至此,Termux ssh 連線的 3 種方式都演示過了,國光個人比較建議使用 PC 端生成公私鑰
的方法,這樣可以減少 rsa 私鑰洩露的風險,也方便PC端的遠端連線與管理。
pkg install aria2
本地啟動服務
Basharia2c --enable-rpc --rpc-listen-all
這個rpc
服務預設監聽的是6800
埠,啟動後方便下面的Web介面連線操作.
webui-aria2
這是個Aria2的熱門專案,把Aria2封裝在了Web平臺,操作起來更加簡單便捷。
Bashgit clone https://github.com/ziahamza/webui-aria2.git
cd webui-aria2
node node-server.js
需要node來執行,沒有安裝的 話使用
pkg install nodejs
來安裝
使用效果圖 ,速度蠻快的 ,有興趣的可以研究如何利用aria2
來下載百度雲檔案,等你們來探索.
you-get
一個命令列小程式,支援下載各大網站的視訊,具體支援的網站大家可以參考官方專案,國光這裡就只作簡單的介紹。
安裝 you-get
首先得先安裝相關的依賴包
BashPython3 如果沒有安裝的話 可以參考上文的 「開發環境」-「Python」
pkg install python3 ffmpeg -y
安裝完成後,直接使用 pip 來 安裝,這裡通過 -i
指定國內的 pip 源 速度會更快一點:
pip3 install you-get -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
升級 you-get
Bashpip3 install --upgrade you-get
下載 B 站視訊
預設是下載最高畫質的,但是我們也可以列出所有可以下載的畫質:
Bashyou-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 視訊
Bashyou-get --format=dash-flv720 https://www.bilibili.com/video/BV1mE411L7Rg
下載網易雲音樂歌單
下面以我自己的歌單為例子,首先找到自己喜歡的歌單,然後點選複製連結:
連結傳送門:滲透測試程式碼審計程式設計師必備電音
直接 you-get 歌單的連結地址就可以直接批量下載地址了:
Bashyou-get 'http://music.163.com/playlist?id=489221140'
下載完成後會以歌單名作為資料夾存放下載好的音樂以及歌單的封面:
資訊保安
因為 Termux 可以很好的支援Python
,所以幾乎所有用Python
編寫的安全工具都是可以完美的執行使用的,所以國光這個版塊重點就列舉了國光認為實戰中比較不錯的安全工具。當然大家也可以直接參考本文的 「系統安裝」- 「Kali NetHunter」章節,直接在手機裡面安裝一個 Kali Linux 系統,國光實際體驗還是很完美的,裡面的資訊保安工具要更全面一些。
Exiftool
一個強大的元資料檢視修改工具,CTF 的MISC的比賽上也經常露面,實際上 ios 自帶的相機拍出的照片裡面是攜帶 GPS 定位的,使用 Exiftool 就可以很輕鬆的檢視到經緯度資訊。
Bashpkg install exiftool
下面檢視一下國光我剛剛儲存地理資訊拍的照片的元資料資訊:
Bashcd ~/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
出現如下字樣表明安裝就成功了:
PropertiesSuccess. 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,所以只能執行如下命令手動安裝了:
Bashcurl -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 命令:
# 安裝
pkg install netcat
# 版本資訊
netcat --version
Ncat: Version 7.80 ( https://nmap.org/ncat )
Nmap
埠掃描必備工具,在最近的國產電視劇《親愛的,熱愛的》也出現過令人歎為觀止的操作:nmap -sT -A localhost
!!!
安裝 Nmap
Termux源裡面封裝打包了Nmap,所以安裝起來就比較簡單:
Bashpkg install nmap
Hashcat
Hashcat 是世界上最快的密碼破解程式,是一個支援多平臺、多演算法的開源的分散式工具。
官方:https://hashcat.net/hashcat/
Github:https://github.com/hashcat/hashcat
在我的另一篇文章裡面有更詳細的教程來介紹這款工具:Hashcat學習記錄
安裝 Hashcat
Termux unstable 源裡面也封裝好了 Hastcat,所以我們安裝依然一條命令即可:
Bashpkg 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
Bashpkg install hydra
成功爆破出了SSH的密碼
SQLmap
SQLmap 是一款用來檢測與利用SQL注入漏洞的免費開源工具 官方專案地址,後面 SQLmap 也支援 Python3 版本了
安裝 SQLmap
我們直接git clone
原始碼,然後執行 sqlmap.py
檔案:
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 完美的支援Python
和Perl
等語言,所以有太多優秀的資訊保安工具值得大家去發現了,這裡我就不一一列舉了。
官方外掛
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 終端裡面必須安裝對應的包後才可以與手機底層硬體進行互動。
Bashpkg install termux-api
下面只列舉一些可能會用到的,想要獲取更多關於Termux-api
的話,那就去參考官方文件.
獲取裝置資訊相關
獲取電池資訊
Bashtermux-battery-status
引數無,返回資訊是JSON格式。 可以看到電池的-健康狀況-電量百分比-溫度情況等
Bash{
"health": "GOOD",
"percentage": 100,
"plugged": "UNPLUGGED",
"status": "DISCHARGING",
"temperature": 24.600000381469727
}
獲取相機資訊
Bashtermux-camera-info
引數無,返回資訊是JSON格式。
獲取通訊錄列表
引數無,返回資訊是JSON格式。
Bashtermux-contact-list
檢視紅外載波頻率
Bashtermux-infrared-frequencies
獲取無線電資訊
無引數,返回格式是JSON格式
Bashtermux-telephony-cellinfo
檢視手機運營商資訊
無引數,返回格式是JSON格式
Bashtermux-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 語音引擎資訊
Bashtermux-tts-engines
國光的實際演示:
Json[
{
"name": "com.google.android.tts",
"label": "Google 文字轉語音引擎",
"default": false
},
{
"name": "com.xiaomi.mibrain.speech",
"label": "小愛語音引擎",
"default": true
}
]
獲取 USB 裝置資訊
Bashtermux-usb [-l | [-r] [-e 命令] 裝置]
選項細節
Properties-l 列出可用裝置
-r 如果尚未授予許可權,則顯示 許可權請求對話方塊
-e command 執行指定的命令
Android Termux 下要讀取 USB 內容或者 U盤的時候,還需要安裝如下依賴包:
Bashpkg install termux-api libusb clang -y
有些包我們上面已經安裝過了。
下面國光來實際演示一下這個 API 的使用:
檢視 次數 Android 的 USB 裝置資訊:
Bash$ termux-usb -l
[
"/dev/bus/usb/001/002"
]
可以看到國光我這個 512GB 的 M.2 SSD 已經顯示在列表中了 (裝作不經意間說出來的樣子,類似於朱一旦不經意間露出自己的勞力士一樣 2333)
請求訪問許可權:
Bashtermux-usb -r /dev/bus/usb/001/002
Access granted.
下面級可以嘗試寫程式碼去訪問這個 USB 裝置內容了:
usbtest.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裝置的一些基本資訊,引數就是我們的裝置資訊。讓我們編譯一下:
Bashgcc usbtest.c -lusb-1.0 -o usbtest
編譯完成後會生成可執行的檔案 usbtest
,接下來通過 這個 API 來執行這個檔案:
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連線資訊
Bashtermux-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 是可以執行的下面的圖 是以前的老圖:
Bashtermux-wifi-scaninfo
呼叫設定裝置相關
調整螢幕亮度
termux-brightness [亮度]
亮度的值在 0 ~ 255 之間,國光這裡測試了 255 並達不到手機的最大亮度
拍攝照片
Bashtermux-camera-photo [-c camera-id] output-file
camera-id
: 相機的 id,預設是 0, 相機 id 可以通過隔壁的命令來獲取
下面的命令表示 使用 相機id 為 0 即後置的相機來拍攝(id 1 為前置相機),儲存的檔案在當前路徑下 名字叫 guoguang.jpg
Bashtermux-camera-photo -c 0 guoguang.jpg
國光看了下後置拍攝出來的照片,有點看不下去。前置相機效果還不錯,可能是因為現在手機是多個攝像頭的原因,Termux 的相機演算法上面沒有做到足夠好的優化。
獲取與設定剪貼簿
檢視當前剪貼簿內容
Bashtermux-clipboard-get
設定新的剪貼簿內容
Bashtermux-clipboard-set PHP是世界上最好的語言
效果演示
呼叫系統下載器
直接呼叫系統下載器,不返回任何值。而且國光我現在還沒有搞清楚下載的檔案到哪裡去了
Bashtermux-download [-d 描述] [-t 標題] 下載的目標地址
國光的演示:
Bashtermux-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 格式。
Bashtermux-fingerprint
返回內容:
Json{
"errors": [],
"failed_attempts": 0,
"auth_result": "AUTH_RESULT_SUCCESS"
}
呼叫紅外發射
Bashtermux-infrared-transmit -f 發射頻率
頻率以逗號分隔,例如 20,50,20,30
,僅傳輸短於2秒的碼型。
呼叫手機定位
輸出格式為JSON格式
Bashtermux-location [-p 定位方式] [-r 定位請求]
細節引數:
Bash-p provider [gps/network/passive] (預設: gps)
-r request [once/last/updates] (預設: once)
實際演示:
Bashtermux-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播放指定的檔案。
Bashtermux-media-player [命令] [引數]
詳細引數:
Bashinfo # 顯示當前播放資訊
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
讀取
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
的時候詳細引數:
--media-next 在媒體 下一個按鈕 上執行的操作
--media-pause 在媒體 暫停按鈕 上執行的操作
--media-play 在媒體 播放按鈕 上執行的操作
--media-previous 在媒體 上一個按鈕 上執行的操作
國光的演示:
Bashtermux-notification -t '國光的Termu通知測試' -c 'Hello Termux' --type default
撥打電話
Bashtermux-telephony-call [號碼]
撥打電話給10001
中國電信,檢視下話費有沒有欠費~?
termux-telephony-call 10001
臨時視窗通知
Bashtermux-toast [選項] [通知]
選項引數
Properties-h 顯示幫助資訊
-b 設定背景色(預設:gray)
-c 設定文字顏色(預設:white)
-g 設定吐司的位置:[top, middle, or bottom](預設:middle)
顏色可以是標準名稱 比如說:red 也可以是十六進位制值如#FF0000
,無效的顏色將恢復為預設值。
國光的實際演示:
Bashtermux-toast -b white -c black Hello Termux
開關閃光燈
Bashtermux-torch [on | off]
呼叫 tts 語音引擎
使用系統文字語音轉換(TTS)引擎朗讀文字。
Bsahtermux-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之一
國光的實際測試:
Bashtermux-tts-speak -e "com.xiaomi.mibrain.speech" '大家轉載文章注意標明文章出處啊'
哦豁,是不是被語音引擎的朗讀嚇一跳,這樣可以就可以用 Termux 去呼叫小愛語音引擎來說一些騷話了。
震動手機
Bashtermux-vibrate [選項]
選項細節:
Bash-d duration # 以毫秒為單位的振動持續時間(預設值:1000)
-f # 在靜默模式下也會強制振動
更換手機桌布
termux-wallpaper [選項]
選項細節:
Bash-f <file> # 將 file 檔案設為桌布
-u <url> # 從 URL 中獲取桌布
-l # 為鎖屏設定桌布 (Android N 及其以上)
國光的測試:
Bashtermux-wallpaper -u 'https://cn.bing.com/th?id=OHR.BluebellWood_ZH-CN8128422960_1920x1080.jpg'
Wallpaper set successfully!
哦豁,那樣自動換桌布的操作 豈不是就很簡單了!這個國光下面單獨開章節來講解。
開啟關閉 WiFi
Bashtermux-wifi-enable [true | false]
互動對話方塊部件
這個功能有點強大,可以與使用者進行互動。輸出格式是 JSON
Bashtermux-dialog [選項]
基本用法:
-l, list 列出所有小部件及其選項
-t, title 標題設定輸入對話方塊的標題(可選)
選項說明具體看下面國光的實際演示:
confirm
Propertiesconfirm - 顯示確認對話方塊
[-i 提示] 文字提示 (可選)
[-t 標題] 設定對話方塊標題 (可選)
國光的演示:
Bashtermux-dialog confirm -i 'Hello Termux' -t 'confirm測試'
返回內容:
Json{
"code": 0,
"text": "yes"
}
checkbox
Propertiescheckbox - 使用複選框選擇多個值
[-v ",,,"] 多個值用逗號隔開 (必選)
[-t 標題] 設定對話方塊的標題 (可選)
國光的演示:
Bashtermux-dialog checkbox -v 'Overwatch,GTA5,LOL' -t '平時喜歡玩啥遊戲'
返回內容:
Json{
"code": -1,
"text": "[Overwatch]",
"values": [
{
"index": 0,
"text": "Overwatch"
}
]
}
counter
Propertiescounter - 選擇指定範圍內的數字
[-r 最小值,最大值,開始值] 3個值用逗號隔開 (可選l)
[-t 標題] 設定對話方塊的標題 (可選)
國光的演示:
哎呀 國光的身高暴露了返回內容:
Json{
"code": -1,
"text": "181"
}
date
Propertiesdate - 選擇一個日期e
[-d "dd-MM-yyyy k:m:s"] 用於日期小部件輸出的SimpleDateFormat模式(可選)
[-t 標題] 設定對話方塊的標題 (可選)
國光的演示:
Bashtermux-dialog date -d 'yyyy-MM-dd' -t '你的出生日期是?'
返回內容:
Json{
"code": -1,
"text": "2020-04-20"
}
radio
Propertiesradio - 從單選按鈕中選擇一個值
[-v ",,,"] 多個值用逗號隔開 (必選)
[-t 標題] 設定對話方塊的標題 (可選)
國光的演示:
Bashtermux-dialog radio -v '小哥哥,小姐姐' -t '你的性別是?'
返回內容:
Json{
"code": -1,
"text": "小哥哥",
"index": 0
}
sheet
Propertiessheet - 從底部工作表中選擇一個值
[-v ",,,"] 多個值用逗號隔開 (必選)
[-t 標題] 設定對話方塊的標題 (可選)
國光的演示:
Bashtermux-dialog sheet -v '菜雞,國光'
返回內容:
Json{
"code": 0,
"text": "國光",
"index": 1
}
spinner
Propertiesspinner - 從下拉微調器中選擇一個值
[-v ",,,"] 多個值用逗號隔開 (必選)
[-t 標題] 設定對話方塊的標題 (可選)
國光的演示:
Bashtermux-dialog spinner -v '國光,光光' -t '你最喜歡的博主是?'
返回內容:
Json{
"code": -1,
"text": "國光",
"index": 0
}
text
Propertiestext - 輸入文字(如果未指定小部件,則為預設值)
[-i 提示] 文字提示(可選)
[-m] 多行輸入(可選)*
[-n] 輸入數字 (可選)*
[-p] 輸入密碼(可選)
[-t 標題] 設定對話方塊的標題 (可選)
*不能將[-m]與[-n]一起使用
國光的演示:
Bashtermux-dialog text -i '密碼:' -t '請輸入核彈爆炸密碼'
返回內容:
Json{
"code": -1,
"text": "666666",
"index": 0
}
time
Propertiestime - 選擇一個時間值
[-t 標題] 設定對話方塊的標題 (可選)
國光的演示:
Bashtermux-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
內容如下:
#!/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
《黑客帝國》的程式碼雨視覺特效。
Bashpkg install cmatrix
cmatrix
cowsay
cowsay 命令是一個有趣的命令,它會用 ASCII 字元描繪牛,羊和許多其他動物,還可以附帶上個自定義文字,很巧的是 Termux 也封裝了這個工具。
Bashpkg 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
國光的簡單示例:
Bashcowsay -f eyes '法外狂徒張三'
figlet
FIGlet 是建立一個簡單的命令列實用程式,用於建立 ASCII logo。
Bashpkg install figlet
figlet -f 字型 '文字內容'
內建如下樣式:
Bashls $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
國光的演示:
Bashfiglet -f future 'www.sqlsec.com'
hollywood
在 Linux 終端中偽造好萊塢黑客螢幕,假裝自己是一名黑客。
Bashpkg install hollywood
hollywood
國光差點就信了
neofetch
Neofetch 是一個簡單但有用的命令列系統資訊工具。它會收集有關係統軟硬體的資訊,並在終端中顯示結果。
Bashpkg install neofetch
neofetch
nyancat
彩虹貓(英語:Nyan Cat)是在2011年4月上傳在Youtube 的視訊,並且迅速爆紅於網路,並在2011年YouTube瀏覽量最高的視訊中排名第五,B站這個小貓也很多,主要是BGM比較魔性,感興趣的朋友可以自己去搜索看看。
Bashpkg install nyancat
nyancat
喵喵喵喵
使用 Ctrl + C
快捷鍵退出魔性迴圈
screenfetch
Screenfetch 是一個適用於 Linux 的小工具,用於顯示系統資訊及ASCII化的Linux發行版圖示。
pkg install screenfetch
screenfetch
顯示其他 Linux 發行版的 logo:
Bashscreenfetch -A 發行版
現在內建的發行版 logo 有:
PropertiesALDOS, 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 有:
BashDragonfly/Free/Open/Net BSD, Haiku, Mac OS X, Windows
sl
某程式設計牛人也經常犯把 ls 敲成 sl 的錯誤,所以他自己編了一個程式娛樂一下,這個程式的作用很簡單,就是當你輸入 sl 的時候終端會出現一個火車呼嘯而過~~
Bashpkg install sl
sl
toilet
toilet 能用字母拼寫出更大字母的工具,具體拼出什麼字由命令後面的引數決定,不僅如此,它還能打印出各種風格的效果,比如彩色,金屬光澤等。
Bashpkg 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
國光的簡單演示:
Bashtoilet -f mono12 -F gay 'Bilibili'
終端二維碼
Linux 命令列下的二維碼,主要核心是這個網址:http://qrenco.de/
echo "https://www.sqlsec.com" |curl -F-=\<- qrenco.de
如果你不嫌無聊的話還可以掃描這個二維碼,然後就又開啟我的這篇文章了。
文章總結
相對來說 國外的Termux DIY的氛圍比國內好很多,Youtube上的視訊都有很高的播放量。當然國內也有這麼一批執著於Termux
的玩家,當初寫完這篇文章的時候,相對來說還比較小眾的,寫這篇文章只想讓更多的人認識到 Termux
的生產力,使用 Termux
來做一些很 cool 的事情。 期待有更多Termux
的優秀文章出現~
另外如果你喜歡這篇文章的話 不防點一下網站最下方不起眼的廣告表示支援!Thanks♪(・ω・)ノ
發現一個尷尬的問題,看我這篇文章大人大多數是極客玩家,你們的瀏覽器自帶去廣告外掛,儘管我的文章中的廣告位置已經很不起眼了,但是你們可能連點的機會都沒有…
部落格我也寫了快 4 年了,文章廣告到現在的收益只有 8 美元,有圖有真相:
本文可能實際上也沒有啥技術含量,但是寫起來還是比較浪費時間的,在這個喧囂浮躁的時代,個人部落格越來越沒有人看了,寫部落格感覺一直是用愛發電的狀態。如果你恰巧財力雄厚,感覺本文對你有所幫助的話,可以考慮打賞一下本文,用以維持高昂的伺服器運營費用(域名費用、伺服器費用、CDN費用等),對部落格用CDN了,否則訪客不會有這麼快速友好的體驗。