解决OpenWrt的ps命令不支持带参数问题

本文介绍如何解决OpenWrt路由器中busybox内置ps命令的功能限制,通过安装procps和procps-ps组件,实现完整ps命令功能,接受常用参数,提升系统监控能力。

OpenWrt路由器中使用的busybox内置的ps命令具有令人不愉快的功能,当尝试指定其他参数时,它会忽略错误而不显示任何错误,并且根本不显示任何数据。不可能教她了解经常使用的参数-busybox中唯一可用的选项是w参数,而其他参数则根本不存在。

因此,自动键入ps axu | grep progname而不是预期的结果,控制台显示:ps: invalid option -- a

实际上它隐藏在procps软件包组中。通过安装procpsprocps-ps,我们可以将完整的ps实用程序带入OpenWrt,该实用程序接受所有熟悉的参数。

操作步骤:

1、执行 make menuconfig

2、选择Utilities  ---> procps组件,按M选中,保存,退出

3、执行 make V=99 编译

4、编译完成后,组件包生成在openwrt_widora/bin/ramips/packages/packages目录下

5、把procps_3.2.8-1_ramips_24kec.ipk和procps-ps_3.2.8-1_ramips_24kec.ipk两个ipk文件拷贝到开发板上的/tmp目录下

6、执行安装命令

opkg install procps_3.2.8-1_ramips_24kec.ipk
opkg install procps-ps_3.2.8-1_ramips_24kec.ipk

但是,它不会立即起作用:procps-ps安装在/ usr / bin / ps中,而busybox版本安装在/ bin / ps中。因此,你必须将ps/ usr / bin复制到/ bin,或删除symlink / bin / ps-> / bin / busybox

7、cp /usr/bin/ps /bin

当然,像上面生成的top 、pkill 等等的ipk,如果需要也可以安装到开发板上面,这样就可以像在Ubuntu那样使用带参数的命令了

 

openwrt命令行模式命令及其工具 需要学会用ssh登录路由器用linux命令查看。 ps 命令查看当前系统运行的进程信息 free 命令查看内存使用和swap挂载情况 ls 查看目录和文件 cd 进入退出目录 vi 查看编辑配置文件 安装命令: #opkg update #opkg install nano 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 小米端口转发命令: 通过修改 /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 重启防火墙。
### OpenWRT 常用命令行指令 在 OpenWRT 系统中,命令行工具是管理和配置设备的重要手段。以下是一些常用的命令行指令,涵盖了系统管理、网络配置、文件操作等多个方面。 #### 系统管理相关命令 - **查看系统信息** 使用 `uname -a` 可以显示系统内核版本、主机名等基本信息。 使用 `cat /etc/openwrt_release` 可以查看 OpenWRT 的版本信息。 - **重启与关机** 使用 `reboot` 重启设备。 使用 `poweroff` 关闭设备。 - **查看系统日志** 使用 `logread` 可以查看系统日志内容,适用于调试和排查问题。 - **查看进程** 使用 `ps` 查看当前运行的进程列表。 使用 `top` 实时查看系统中资源占用较高的进程。 - **定时任务管理** OpenWRT 使用 `crontab` 来管理定时任务。编辑定时任务可以使用 `crontab -e`,查看当前任务列表使用 `crontab -l`。 如果需要将任务输出记录到日志文件中,可以使用如下格式: ```bash * * * * * python /path/to/your/script.py >> /path/to/logfile.log 2>&1 ``` 此方式可以将 Python 脚本的执行结果输出到指定日志文件中[^2]。 #### 网络相关命令 - **查看网络接口信息** 使用 `ifconfig` 或 `ip addr` 查看当前网络接口的 IP 地址、状态等信息。 - **测试网络连通性** 使用 `ping www.example.com` 测试网络是否通畅。 使用 `traceroute www.example.com` 查看数据包的路由路径。 - **设置静态 IP 地址** 编辑 `/etc/config/network` 文件,配置静态 IP 地址、网关和 DNS。例如: ```bash config interface 'lan' option type 'bridge' option ifname 'eth0' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' option gateway '192.168.1.254' option dns '8.8.8.8' ``` 修改后使用 `ifup lan` 重启网络接口。 - **生成自签名证书** 使用 `openssl` 命令生成自签名证书: ```bash openssl req -new -x509 -nodes -days 365 -keyout key.pem -out cert.pem ``` 该命令会生成一个有效期为 365 天的证书和对应的私钥文件[^1]。 #### 文件与权限管理命令 - **文件传输** 使用 `scp` 命令通过 SSH 协议传输文件。例如: ```bash scp -i ~/.ssh/private_key file root@192.168.1.1:/tmp ``` 该命令使用指定的私钥进行身份验证,并将文件传输到目标设备的 `/tmp` 目录下[^1]。 - **文件权限修改** 使用 `chmod` 修改文件权限。例如: ```bash chmod 755 filename ``` 表示设置文件所有者具有读、写、执行权限,其他用户具有读和执行权限。 - **查找文件** 使用 `find /path/to/search -name "filename"` 在指定路径下查找文件。 #### 软件包管理命令 - **更新软件包列表** 使用 `opkg update` 更新软件包列表。 - **安装软件包** 使用 `opkg install package_name` 安装指定的软件包。 - **卸载软件包** 使用 `opkg remove package_name` 卸载指定的软件包。 - **查看已安装的软件包** 使用 `opkg list-installed` 查看当前系统中已安装的软件包列表。 #### 线程编程与编译问题OpenWRT 中进行线程编程时,如果遇到 `undefined reference to 'pthread_create'` 或 `undefined reference to 'pthread_join'` 错误,表明程序未正确链接 `pthread` 库。由于 `pthread` 不是系统默认链接的库,因此在编译时需要添加 `-lpthread` 参数。例如: ```bash gcc thread.c -o thread -lpthread ``` 该命令将线程相关的库链接到编译后的程序中[^3]。 #### 防火墙与端口管理 - **查看防火墙规则** 使用 `iptables -L -n` 查看当前的防火墙规则。 - **开放指定端口** 使用 `iptables -I INPUT -p tcp --dport 80 -j ACCEPT` 开放 TCP 80 端口。 - **保存防火墙规则** 使用 `iptables-save > /etc/firewall.user` 保存当前的防火墙规则。 #### 其他常用工具 - **查看磁盘使用情况** 使用 `df -h` 查看文件系统的磁盘使用情况。 - **查看文件内容** 使用 `cat filename` 查看文件内容。 使用 `less filename` 分页查看大文件内容。 - **压缩与解压文件** 使用 `tar` 命令压缩和解压文件。例如: ```bash tar -czvf archive.tar.gz /path/to/folder # 压缩 tar -xzvf archive.tar.gz # 解压 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值