作為軟路由系統(tǒng)的折騰黨就要會使用 OpenWrt 的命令,比如有些小白經常把 mips、aarch64、X86 的插件胡亂瞎裝,不會區(qū)分架構,這時就要用到查看 CPU 架構的命令了,下面就是 OpenWrt 查詢維護命令,主要是硬件、系統(tǒng)、磁盤、安裝等相關常用命令。
cat /proc/cpuinfo
# 查看CPU信息
uname -m
# 查看CPU架構
cat /proc/meminfo
# 查看內存使用情況
df -h
# 查看磁盤的使用率
uname -a
# 查看內核信息
opkg print-architecture
# 可接受的架構
dmesg
# 讀取內核的日志
logread
# 讀取系統(tǒng)日志
ps -w
# 列出進程
uptime
# 顯示運行時間、CPU負載
vi etc/config/network
# 修改后臺地址或綁定網口
/etc/init.d/uhttpd restart
# Luci 重啟命令
/etc/init.d/uhttpd enable
# 開機自啟動
/etc/init.d/uhttpd start
# 啟動uhttpd
/etc/init.d/firewall restart
# 重啟防火墻
/etc/init.d/network restart
# 重啟網絡服務
reboot
# 重啟設備
opkg update
# 更新軟件包列表
opkg install ***
# 安裝軟件包
opkg remove ***
# 卸載軟件包
opkg install *.ipk
# 批量安裝軟件包
opkg [install/remove] [包名] --force-depends
# 強制安裝和卸載
opkg list |grep ***
# 查找軟件包
opkg list-installed
# 列出所有安裝的包
opkg info ***
# 查看包的信息
opkg files ***
# 查看包的文件
rm -f /var/lock/opkg.lock
# 清理opkg update緩存文件
fsisk -l
# 列出素所有分區(qū)表“-u”與“ -l”搭配使用,顯示分割數
fsisk -m
# 顯示菜單和幫助信息
fsisk -a
# 活動分區(qū)標記/引導分區(qū)
fsisk -d
# 刪除分區(qū)
fsisk -l
# 顯示分區(qū)類型
fsisk -n
# 新建分區(qū)
fsisk -p
# 顯示分區(qū)信息
fsisk -q
# 退出不保存
fsisk -t
# 設置分區(qū)號
fsisk -v
# 進行分區(qū)檢查
fsisk -w
# 保存修改
fsisk -x
# 擴展應用,高級功能
fsisk -s
# 指定分區(qū)
fsisk -v
# 版本信息
mount –t ntfs-3g /dev/sdb1 /mnt/usb
# 掛載ntfs硬盤
sleep 30 && mount -t ntfs-3g /dev/sdb1 /mnt/sdb1
# 掛載磁盤到文件夾
iwinfo wlan0 info
# 查看無線網卡的信息
wifi down
wifi up
# 重啟無線服務
iw dev wlan0 scan
# 掃描熱點
iwinfo wlan0 assoclist
iw dev wlan0 station dump
# 查看設備連接的客戶端
passwd
# 修改登錄密碼
firstboot
# 重置命令
chmod +x ***
# 腳本賦權
nslookup www.baidu.com 202.96.69.38
# DNS查詢測試
du -s /root/* | sort -nr
# 查看文件目錄大小
ifconfig eth0 down
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX //更改的MAC地址
ifconfig eth0 up
# 更改MAC地址
opkg install vsftpd openssh-sftp-server
/etc/init.d/vsftpd enable
/etc/init.d/vsftpd start
# 安裝 SFTP 文件傳輸
opkg 軟件包管理「建議收藏」opkg 工具 (一個 ipkg 變種) 是一個用來從本地軟件倉庫或互聯(lián)網軟件倉庫上下載并安裝 OpenWrt 軟件包的輕量型軟件包管理器。GNU/Linux 用戶可能會對 apt-get,aptitude,pacman,yum 等比較熟悉,也會看出其相似之處。它與 NSLU2 上同樣用于嵌入式設備的 Optware 也有相似之處。OPKG 沒有僅僅將軟件安裝到一個單獨的路徑(如:/opt),而…
大家好,又見面了,我是你們的朋友全棧君。
opkg 工具 (一個 ipkg 變種) 是一個用來從本地軟件倉庫或互聯(lián)網軟件倉庫上下載并安裝 OpenWrt 軟件包的輕量型軟件包管理器。
GNU/Linux 用戶可能會對 apt-get,aptitude,pacman,yum 等比較熟悉,也會看出其相似之處。它與 NSLU2
上同樣用于嵌入式設備的 Optware 也有相似之處。OPKG
沒有僅僅將軟件安裝到一個單獨的路徑(如:/opt),而是根文件系統(tǒng)上的一個完整的包管理器。它也包含了增加內核模塊與驅動的可能性。OPKG
有時被稱為 Entware ,但這主要是針對為嵌入式設備準備的 Entware 倉庫。
opkg 必須有一個子命令參數:
usage: opkg [options…] sub-command [arguments…]
其中的子命令可以是以下:
sub-command | description |
---|---|
update | 更新可用軟件包列表 |
upgrade | 升級軟件包 要升級一組軟件包,運行 opkg upgrade 軟件包名 1 軟件包名 2 即可。 命令 opkg list-upgradable 可以獲取一個可升級軟件包的列表。 |
install <pkgs | FQDN> | 安裝一個或多個軟件包 eg: opkg install hiawatha opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/hiawatha_7.7-2_ar71xx.ipk opkg install /tmp/hiawatha_7.7-2_ar71xx.ipk |
configure | 配置一個或者多個未安裝的包 |
remove <pkgs | globp> | 移除一個或多個軟件包 |
flag | 標記一個或多個軟件包 每次調用僅允許一個標記。 可用標記有: hold?noprune?user?ok?installed?unpacked |
sub-command | description |
---|---|
list [pkg | globp] | 列出可用軟件包 Package name – Version – Description |
list-installed | 列出已安裝軟件包 |
list-upgradable | 列出可升級的已安裝軟件包 |
list-changed-conffiles | 列出用戶修改過的配置文件 |
files | 列出屬于軟件包 的文件 僅適用于已安裝的軟件包 |
search <file | globp> | 列出包含 |
info [pkg | globp] | 顯示軟件包 的所有信息 |
status [pkg | globp] | 顯示軟件包 的狀態(tài) |
download | 下載軟件包 到當前目錄 |
opkg 唯一的配置文件是 /etc/opkg.conf ,它看起來是這樣:
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
可以配置 opkg 從本地獲取軟件包:
src/gz local file:///path/to/packagesDirectory
Barrier_breaker 使用多個倉庫,每個參考需要個唯一的標識符。邏輯上使用倉庫原始的名稱。如:
...
src/gz base file:///path/to/packages/directory/packages/base
src/gz luci file:///path/to/packages/directory/packages/luci
src/gz packages file:///path/to/packages/directory/packages/packages
src/gz oldpackages file:///path/to/packages/directory/packages/oldpackages
... etc ...
opkg 有個不為那些 apt 系工具使用者熟悉的有用特性,它可以為任一軟件包指定安裝目的位置。
默認的 opkg.conf 包含三個目的位置:
dest root /
dest ram /tmp
dest mnt /mnt
目的位置行的格式很簡單,關鍵字 dest 跟著目的位置名稱(可以隨便起),然后就是文件系統(tǒng)位置。任一如上配置好的目的位置都可以在 opkg 命令行中使用,如:
opkg install somepackage -d destination_name
dest 參數必須為 /etc/opkg.conf 中定義的目的位置名。如:-d ram 會將軟件包安裝到 /tmp/ 下。
ps 命令查看當前系統(tǒng)運行的進程信息
free 命令查看內存使用和 swap 掛載情況
ls 查看目錄和文件
cd 進入退出目錄
vi 查看編輯配置文件
安裝命令:
uci set network.lan.ipaddr=[lan ip]
使用 pppoe 設置
Shell 代碼
uci set network.wan.proto=pppoe // 設置 wan 口類型為 pppoe
uci set network.wan.username=[上網帳戶]
uci set network.wan.password=[上網密碼] // 這兩行設置 pppoe 用戶名和密碼
如果要掛在上級路由下面,就需要進行下面的設置
Shell 代碼
uci set network.wan.proto=none // 關掉 wan
uci set network.lan.gateway=[上級路由 ip] // 網關指向上級路由
uci set network.lan.dns=[上級路由 ip] //dns 指向上級路由
uci set dhcp.lan.ignore=1 // 關掉 lan 的 dhcp
最后對無線網絡進行配置
Shell 代碼
uci set wireless.@wifi-device [0].disabled=0 // 打開無線
uci set wireless.@wifi-device [0].txpower=17 // 設置功率為 17dbm 太高會燒無線模塊
uci set wireless.@wifi-device [0].channel=6 // 設置無線信道為 6
uci set wireless.@wifi-iface [0].mode=ap // 設置無線模式為 ap
uci set wireless.@wifi-iface [0].ssid=[自己設置 SSID] // 設置無線 SSID
uci set wireless.@wifi-iface [0].network=lan // 無線鏈接到 lan 上
uci set wireless.@wifi-iface [0].encryption=psk2 // 設置加密為 WPA2-PSK
uci set wireless.@wifi-iface [0].key=[密碼] // 設置無線密碼
提交應用配置
Shell 代碼
uci commit // 應用
/etc/init.d/network restart // 重啟網絡服務
安裝 luci 管理界面
Shell 代碼
opkg update // 更新軟件列表
opkg list-installed // 查看已安裝軟件
opkg install luci // 安裝 LUCI
opkg install luci-i18n-chinese // 支持中文
luci-app-firewall - 0.10.0-1
luci-i18n-english - 0.10.0-1
luci-lib-core - 0.10.0-1
luci-lib-ipkg - 0.10.0-1
luci-lib-lmo - 0.10.0-1
luci-lib-nixio - 0.10.0-1
luci-lib-sys - 0.10.0-1
luci-lib-web - 0.10.0-1
luci-mod-admin-core - 0.10.0-1
luci-mod-admin-full - 0.10.0-1
luci-proto-core - 0.10.0-1
luci-proto-ppp - 0.10.0-1
luci-sgi-cgi - 0.10.0-1
luci-theme-base - 0.10.0-1
luci-theme-openwrt - 0.10.0-1
即可完成 LUCI 的安裝。
輸入以下命令開啟支持 web 服務的 uhttpd,并設置其為自啟動:
Shell 代碼
/etc/init.d/uhttpd enable # 開機自啟動
/etc/init.d/uhttpd start # 啟動 uhttpd
Wifidog
你可以嘗試執(zhí)行以下命令安裝 Wifidog:
opkg update # Optional
opkg install wifidog
–sftp 安裝
opkg update
opkg install vsftpd openssh-sftp-server
/etc/init.d/vsftpd enable
/etc/init.d/vsftpd start
端口轉發(fā)命令:
通過修改 vi /etc/config/firewall 這個文件來實現(xiàn)開放自己需要的端口到外網。
config rule ‘httpdwan’
option src ‘wan’
option dest_port ‘8088’
option proto ‘tcp’
option target ‘ACCEPT’
option name ‘’’’httpd wan accept tcp port 8088’’’’
保存后,執(zhí)行 /etc/init.d/firewall restart 重啟防火墻。
實際上要一個應用后臺運行,在輸入命令的時候加上 “&” 符號就可以了,向下面
helloworld &
開機自啟動這好像還是挺多方法的,一個是在 /etc/init.d 目錄編寫文件,一個是在網頁上的開機運行腳本上加上上面后臺運行的命令。
在 openwrt 開發(fā)板命令行中輸入
vi /etc/init.d/mystart
里面輸入如下內容:
#!/bin/sh /etc/rc.common
START=99
STOP=15
start(){
echo start helloword
helloword &
}
stop(){
echo stop helloword
}
restart(){
echo restart helloword
}
enable(){
echo enable helloword
}
disable(){
echo disable helloword
}
命令應該很好理解,前面 START 和 STOP 是啟動和關閉的優(yōu)先級。
下面是另一種自啟動腳本的寫法,應該是差不多,注釋寫的也挺清楚了
#!/bin/sh /etc/rc.common
START=99 # 執(zhí)行的順序,按照字符串順序排序并不是數字排序
STOP=15
SERVICE=helloword
PROG=/bin/helloword
USE_PROCD=1 # 使用procd啟動
# start_service 函數必須要重新定義
start_service()
{
echo service helloword start
procd_open_instance # 創(chuàng)建一個實例, 在 procd 看來一個應用程序可以多個實例
# ubus call service list 可以查看實例
procd_set_param command $PROG # mycode執(zhí)行的命令是"/app/mycode", 若后面有參數可以直接在后面加上
procd_set_param respawn # 定義respawn參數,告知procd當mycode程序退出后嘗試進行重啟
# procd_close_instance # 關閉實例
}
編寫完文件后還應該記得改一下權限,讓腳本能夠執(zhí)行
cd /etc
chmod -R 777 init.d/mystart #設置權限,否則無法激活開機啟動,提示權限不足
使用的時候按下面輸入命令就可以,和普通服務類似
/etc/init.d/mystart enable #激活開機啟動
/etc/init.d/mystart start #運行start函數啟動程序
由于這項目是上一家公司的時候開發(fā)的了,都快一年了,源碼都在之前公司的筆記本電腦里面,自己電腦沒源碼,就簡單講講。
先要打開 openwrt 的網頁控制界面,里面找到自啟動功能,在里面的文本行中加入下面命令
helloword &
實際上使用起來,好像在網頁上配置的自啟動還好一些,用配置文件寫的但是還總出錯,當時是對 4G 上網模塊有影響,具體記不清了。當時分析出錯的原因是,用配置文件寫的命令在軟件被停止后會嘗試重新啟動,當然如果你沒遇到這些問題,兩種方法都是可以的。
網上的博客一般到這里就完了,可是我當時不想做差不多先生,我將自啟動腳本寫到我們的源碼文件中去,在安裝的時候就給自動弄好,簡單省事,下面看看寫法。
先編寫配置文件
這里再源碼目錄總編寫我們的自啟動腳本文件,以上一篇的 helloword 為例
mkdir ~/openwrt/package/hellworld/auto
cd ~/openwrt/package/hellworld/auto
這里新起了一個目錄來存放我們的配置文件,內容和上面一樣,不說了。
接下來的重點是編寫外層的 Makefile 文件,在復制那一段將我們的配置文件復制到 /etc/init.d/ 目錄中去
define Package/helloword /install
echo "Here is Package/install"
$(INSTALL_DIR) $(1)/bin $(1)/etc/init.d/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloword $(1)/bin/
$(INSTALL_BIN) ./auto/mystart $(1)/etc/init.d/
endef
注意這里的 $(INSTALL_BIN),復制的是二進制文件,權限問題我忘了,如果啟動不了,也還是按上面的方法增加運行權限吧。
上一篇:virsh命令詳解
下一篇:沒有了!