我正在尝试按照此线程中的说明将字符直接发送到网络堆栈。
即使该过程在 CygWin (Windows) 下运行正常,相同的行在 Ubuntu v14.04 上也会失败:
luis@Zarzamoro:~$ sudo echo -e "\xff">/dev/udp/255.255.255.255/4000
-bash: connect: Permission denied
-bash: /dev/udp/255.255.255.255/4000: Permission denied
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu for PC 上测试:
luis@Lamborghini:~$ bash --version
GNU bash, versión 4.3.11(1)-release (i686-pc-linux-gnu)
Run Code Online (Sandbox Code Playgroud)
和适用于 RaspBerry Pi 2 的 Ubuntu:
luis@Zarzamoro:~$ bash --version
GNU bash, version 4.3.11(1)-release (arm-unknown-linux-gnueabihf)
Run Code Online (Sandbox Code Playgroud)
通过将字符直接发送到 NIC而不是使用 netcat 或 socat 来执行此操作对于某些具有相当现代 Bash 版本但不允许(或难以实现)安装的路由器或嵌入式设备(如 NAS)很有用额外的工具。
为什么会发生这种情况,我该如何解决?
也测试过:
luis@Zarzamoro:~$ sudo bash -c 'echo -e "\xff" >/dev/udp/255.255.255.255/4000'
bash: connect: Permission denied
bash: /dev/udp/255.255.255.255/4000: Permission denied
Run Code Online (Sandbox Code Playgroud)
和: …
我想知道我安装的 Linux 发行版的内核是否会读取某些 ExFAT 格式的 SD 卡(或 Pendrive、USB 硬盘等)。
我知道,自 2013 年左右以来,大多数内核都包含此功能,但我认为会有一些标志会报告它,而且,只要我使用过不同的发行版,在我看来,检查是否存在更容易标志比下载和安装完整的 Linux 发行版并插入 SD 卡。
此外,有时无法正确读取 ExFAT SD 卡,了解问题是否来自内核会很有用。
是否有任何标志或简单/快速的命令行方法可以了解我的内核是否支持ExFAT 文件系统?
这个问题来自 Software Recomendations StackExchange 站点。一开始我认为这是合适的地方,但有些人建议这个 Unix 论坛更适合。
当操作系统有多个可用的无线网络(并且已知,这是:在其“首选”列表中)时,它应该对它们之间的漫游进行智能管理,通常连接到最好的一个(通过几个因素来衡量,例如覆盖范围或速度)。
但是,当使用某些 Linux 发行版(例如用于安全审计的发行版)时,我发现这种管理并不那么智能:有时网络会停止运行(表现不完全正常)并且操作系统仍保留在该无线网络上。
因此,我正在考虑自己编写一个脚本,以强制 Linux 在连接速度减慢或直接失败时选择另一个无线网络(也许可以通过 ping 路由器/接入点来检查)。
对于我所读到的有关命令行无线管理的内容,“连接到”的事情似乎有点尴尬:发出多个命令、编辑文件......等。
有谁知道在 Linux 下运行的一个好的“切换到网络”命令行工具?请记住,我不需要连接到新网络:我只想连接到已经连接的网络,因此操作系统应该知道密码、加密数据等。
可能的命令行示例:
switchtowifi --essid MyWiFiNetwork
switchtowifi --essid MyWiFiNetwork --bssid 11:22:33:44:55:66
switchtowifi --channel 5
Run Code Online (Sandbox Code Playgroud)
第一个示例切换到任何已存储的名为 的 WiFi 网络MyWiFiNetwork。
第二个示例切换到已存储的 WiFi 网络,MyWiFiNetwork其 BSSID 为11:22:33:44:55:66。
第三个示例切换到频道 5 上任何已存储的 WiFi 网络。
pgrep这是我的FreeBSD脚本的行为:
luis@Balanceador:~/Temporal$ cat test.sh
#!/usr/bin/env bash
pgrep -fl "test.sh"
luis@Balanceador:~/Temporal$ ./test.sh
luis@Balanceador:~/Temporal$
Run Code Online (Sandbox Code Playgroud)
无输出。这是:脚本本身未被检测为正在运行。就像 的命令行行为一样pgrep。这对我来说很好。
这是Linux (Ubuntu) 的情况:
luis@Terminus:~/Temporal$ cat test.sh
#!/usr/bin/env bash
pgrep -fl "test.sh"
luis@Terminus:~/Temporal$ ./test.sh
4514 bash
luis@Terminus:~/Temporal$
Run Code Online (Sandbox Code Playgroud)
可以看出,test.sh脚本本身似乎被检测为正在运行的进程。
我正在开发一个 shell (Bash)脚本,如果检测到它的另一个实例(同名),它必须能够停止并等待,并且必须在 Linux 和 FreeBSD 上工作,所以我想为此同质化 pgrep 命令。
有什么办法可以让他们两个表现得一样吗?
任何类似grep或ps接受的衍生品的答案。
测试:
来自手册页的-x(确切的)开关,但不适用于脚本上的参数(或者我不明白如何使其工作)。在这种情况下,参数对于检测并不重要(它们可以是任何参数);我只需要检测主“.sh”脚本。
进一步说明:
pgrep工具。按照此Bash 教程,我已成功使用此方法获取发出简单命令的网页代码:
$ exec 3<>/dev/tcp/www.google.com/80
$ echo -e "GET / HTTP/1.1\n\n" >&3
$ cat <&3
Run Code Online (Sandbox Code Playgroud)
确实,我得到了基本的 Google html 站点代码:
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.es/?gfe_rd=cr&ei=HsiuVafkLpGt8weX7o-YAg
Content-Length: 258
Date: Tue, 21 Jul 2015 22:30:54 GMT
Server: GFE/2.0
Alternate-Protocol: 80:quic,p=0
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.es/?gfe_rd=cr&ei=HsiuVafkLpGt8weX7o-YAg">here</A>.
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
这个技巧对我很有用。比如我已经成功用它来发送Magic Packets(Wake on LAN)(类似的例子)。
哪些 shell 允许通过使用简单的命令和重定向程序将数据直接发送到网络?
当然,除了 Bash。
此信息用于了解这些系统是否具有此功能:
我即将为名为Compat Wireless 的无线驱动程序安装补丁,以解决我的Ubuntu Linux v12.04和Kali Linux v1.0.9上的 WiFi 通道(它锁定不存在的 -1 通道)的问题。
但首先我想知道这个补丁是否已经安装(为什么要安装我有的东西?)。
我已经做了一些研究,但我找不到一种方法来知道我的补丁是否已经存在,也找不到列出已安装补丁的通用方法。我什至不知道是否有可能从正在运行的 Linux 获取此类信息。
有什么想法吗?
我已经成功安装了一些以太网卡(这里有完整的故事),根据文档,必须手动启动:
# modprobe e1000bp
Run Code Online (Sandbox Code Playgroud)
我希望在启动时执行此驱动程序启动。
实现这一目标的正确方法是什么?
我想将命令添加到/etc/rc.local,但对于 PPTP 或 OpenVPN 连接,还有另一种方法应该更干净,所以我想知道是否可以将相同的方法告知驱动程序启动。
我已经安装了 pfSense(基于FreeBSD)以进行测试和学习。
我想做的第一件事是安装一些未检测到的网卡(Silicom PXG6BPi)驱动程序,但它需要使用命令编译其源代码make,所以我发出:
[2.2.6-RELEASE][admin@pfSense.localdomain]/root: pkg search make
R-cran-pkgmaker-0.22 Package development utilities
automake-1.15_1 GNU Standards-compliant Makefile generator
automake-wrapper-20131203 Wrapper script for GNU automake
bmake-20151022 Portable version of NetBSD 'make' utility
ciso-maker-1.02 Tool to compress ISO images to CSO format
cmake-3.4.1 Cross-platform Makefile generator
cmake-fedora-2.3.4 Set of cmake modules for fedora developers
cmake-gui-3.4.1 Qt-based GUI for CMake
cmake-modules-3.4.1 Modules and Templates for CMake
cmake-modules-webos-1.0.b CMake modules needed to build WebOS components
colormake-0.9_1 Wrapper to color …Run Code Online (Sandbox Code Playgroud)