作为软路由系统的折腾党就要会使用 OpenWrt 的命令,比如有些小白经常把 mips、aarch64、X86 的插件胡乱瞎装,不会区分架构,这时就要用到查看 CPU 架构的命令了,下面就是 OpenWrt 查询维护命令,主要是硬件、系统、磁盘、安装等相关常用命令。
cat /proc/cpuinfo
# 查看CPU信息
uname -m
# 查看CPU架构
cat /proc/meminfo
# 查看内存使用情况
df -h
# 查看磁盘的使用率
uname -a
# 查看内核信息
opkg print-architecture
# 可接受的架构
dmesg
# 读取内核的日志
logread
# 读取系统日志
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
# 列出素所有分区表“-u”与“ -l”搭配使用,显示分割数
fsisk -m
# 显示菜单和帮助信息
fsisk -a
# 活动分区标记/引导分区
fsisk -d
# 删除分区
fsisk -l
# 显示分区类型
fsisk -n
# 新建分区
fsisk -p
# 显示分区信息
fsisk -q
# 退出不保存
fsisk -t
# 设置分区号
fsisk -v
# 进行分区检查
fsisk -w
# 保存修改
fsisk -x
# 扩展应用,高级功能
fsisk -s
# 指定分区
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 变种) 是一个用来从本地软件仓库或互联网软件仓库上下载并安装 OpenWrt 软件包的轻量型软件包管理器。GNU/Linux 用户可能会对 apt-get,aptitude,pacman,yum 等比较熟悉,也会看出其相似之处。它与 NSLU2 上同样用于嵌入式设备的 Optware 也有相似之处。OPKG 没有仅仅将软件安装到一个单独的路径(如:/opt),而…
大家好,又见面了,我是你们的朋友全栈君。
opkg 工具 (一个 ipkg 变种) 是一个用来从本地软件仓库或互联网软件仓库上下载并安装 OpenWrt 软件包的轻量型软件包管理器。
GNU/Linux 用户可能会对 apt-get,aptitude,pacman,yum 等比较熟悉,也会看出其相似之处。它与 NSLU2
上同样用于嵌入式设备的 Optware 也有相似之处。OPKG
没有仅仅将软件安装到一个单独的路径(如:/opt),而是根文件系统上的一个完整的包管理器。它也包含了增加内核模块与驱动的可能性。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] | 显示软件包 的状态 |
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 跟着目的位置名称(可以随便起),然后就是文件系统位置。任一如上配置好的目的位置都可以在 opkg 命令行中使用,如:
opkg install somepackage -d destination_name
dest 参数必须为 /etc/opkg.conf 中定义的目的位置名。如:-d ram 会将软件包安装到 /tmp/ 下。
ps 命令查看当前系统运行的进程信息
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
你可以尝试执行以下命令安装 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
端口转发命令:
通过修改 vi /etc/config/firewall 这个文件来实现开放自己需要的端口到外网。
config rule ‘httpdwan’
option src ‘wan’
option dest_port ‘8088’
option proto ‘tcp’
option target ‘ACCEPT’
option name ‘’’’httpd wan accept tcp port 8088’’’’
保存后,执行 /etc/init.d/firewall restart 重启防火墙。
实际上要一个应用后台运行,在输入命令的时候加上 “&” 符号就可以了,向下面
helloworld &
开机自启动这好像还是挺多方法的,一个是在 /etc/init.d 目录编写文件,一个是在网页上的开机运行脚本上加上上面后台运行的命令。
在 openwrt 开发板命令行中输入
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 是启动和关闭的优先级。
下面是另一种自启动脚本的写法,应该是差不多,注释写的也挺清楚了
#!/bin/sh /etc/rc.common
START=99 # 执行的顺序,按照字符串顺序排序并不是数字排序
STOP=15
SERVICE=helloword
PROG=/bin/helloword
USE_PROCD=1 # 使用procd启动
# start_service 函数必须要重新定义
start_service()
{
echo service helloword start
procd_open_instance # 创建一个实例, 在 procd 看来一个应用程序可以多个实例
# ubus call service list 可以查看实例
procd_set_param command $PROG # mycode执行的命令是"/app/mycode", 若后面有参数可以直接在后面加上
procd_set_param respawn # 定义respawn参数,告知procd当mycode程序退出后尝试进行重启
# procd_close_instance # 关闭实例
}
编写完文件后还应该记得改一下权限,让脚本能够执行
cd /etc
chmod -R 777 init.d/mystart #设置权限,否则无法激活开机启动,提示权限不足
使用的时候按下面输入命令就可以,和普通服务类似
/etc/init.d/mystart enable #激活开机启动
/etc/init.d/mystart start #运行start函数启动程序
由于这项目是上一家公司的时候开发的了,都快一年了,源码都在之前公司的笔记本电脑里面,自己电脑没源码,就简单讲讲。
先要打开 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命令详解
下一篇:没有了!