小编Bar*_*run的帖子

Shell 脚本:-z 和 -n 选项与 if

我有一个 shell 脚本,其中有以下几行if [ -z "$xyz" ]if [ -n "$abc" ],但我不确定它们的目的是什么。谁能解释一下?

shell-script

113
推荐指数
3
解决办法
30万
查看次数

有没有办法在我的 wifi 接入点上列出连接的设备?

我有一个 Angstrom Linux 设备作为接入点,运行hostapd, dhcpd,工作正常。我可以获得连接到 Wi-Fi 的设备列表吗?我知道我可以获得 DHCP 租约,但我需要知道哪些设备通过wlan0. 我试过这个(iwlist有选项):

iwlist wlan0 ap
iwlist wlan0 accesspoints
iwlist wlan0 peers
Run Code Online (Sandbox Code Playgroud)

但都返回:

wlan0     Interface doesn't have a list of Peers/Access-Points
Run Code Online (Sandbox Code Playgroud)

iwconfigiwgetidiwpriv并且iwspy也出现在/sbin,但好像没有选项来显示的客户名单。

wifi angstrom

33
推荐指数
3
解决办法
7万
查看次数

安全访问远程 SSH 隧道

所以我希望能够远程访问我的 Raspberry Pi(我把它放在家里的防火墙后面)。一种选择是使用静态 IP 地址,但作为一个穷学生,我不想花钱,而且大多数免费选项都比较麻烦(需要定期维护等)。据我了解,另一种选择是设置一个远程 SSH 隧道到我的防火墙外的服务器,这会将连接转发到服务器上指定的本地主机端口(比如 9999),然后转发到我的 Raspberry Pi 上的端口 22(通过所述远程SSH 隧道)。从广义上讲,我会遵循Raspberry Pi:使用反向远程 Ssh 隧道打电话回家,但出于不同目的。

碰巧我的大学有一个学生 Linux 服务器,我有一个 shell 帐户,所以设置所有这些应该没问题。我的问题是:鉴于学生服务器是共享的,如果它们发生在我选择的任何本地主机端口(上例中的 9999)上,任何拥有 shell 帐户的用户是否能够使用到我的 Pi 的隧道?还是只允许我使用该端口?是否有可能创建这样的限制?

显然,我并不热衷于依靠默默无闻的安全性来保护连接,而是希望它只对我可用。

security ssh remote ssh-tunneling raspberry-pi

7
推荐指数
1
解决办法
786
查看次数

LVM 如何在设置后找到驱动器

我想将我所有的 14.5 TB 媒体驱动器(不是操作系统)移动到一个组合的 LVM 文件系统,因为在安排东西以适应多个较小的文件系统时经常出现问题。

我的问题是,如果设置后 6 个驱动器中的任何一个移动到不同的位置 ( /dev/sd*),那会不会有问题?我总是根据 UUID 安装它们,但我对 LVM 的了解不够了解它如何与多个驱动器配合使用。我知道我仍然可以根据 UUID 挂载文件系统,但我想确保 LVM 不会因为查找系统的各个部分而陷入困境。

我不得不问这个,因为出于某种原因,如果我在插入 USB 驱动器的情况下重新启动,它们的sd*字母会比某些媒体驱动器低,这会导致这些媒体驱动器仅为该启动而重新排列。

附注。我维护我的媒体的异地备份,所以我不必担心一个驱动器是否会破坏某些东西。之所以提到,是因为我对 LVM 的 Google 搜索总是有人试图说服这个人退出,因为一个问题会失去一切。

linux lvm

7
推荐指数
2
解决办法
9946
查看次数

如何从变量中替换子字符串?

我正在尝试从字符串变量中删除字符。它对我来说sed是这样的:

MYVAR=--23ho02123ware38384you443d34o3434ingtod38384day-%§*#sfrf
echo ${MYVAR} | sed -e 's/[a-z][a-z0-9\-]*//g'
Run Code Online (Sandbox Code Playgroud)

我得到:

 --23%§*#
Run Code Online (Sandbox Code Playgroud)

这就是我要找的。该字符串应以字母开头,并且仅包含字母、数字和破折号 (-)。有没有办法通过bash字符串替换来实现这一点?

MYVAR=${MYVAR/[a-z][a-z0-9-]*/ }
Run Code Online (Sandbox Code Playgroud)

我尝试了几种组合,但没有一个像我预期的那样工作。

bash string

7
推荐指数
1
解决办法
2万
查看次数

known_hosts 有什么区别

我对 SSH 没有深入的了解,我对/home/XXX/.ssh/known_hosts/etc/ssh/ssh_known_hosts文件之间的关系有点困惑。

有人可以解释一下吗?

ssh

6
推荐指数
1
解决办法
8275
查看次数

SysVinit LSB 标头上的变量 $remote_fs 和 $syslog 是什么?

来自:https : //wiki.debian.org/LSBInitScripts

    在 init.d 脚本中添加这样的块:

    ### 开始初始化信息
    # 提供:脚本名
    # 必需-开始:$remote_fs $syslog
    # 需要停止:$remote_fs $syslog
    # 默认开始:2 3 4 5
    # 默认停止:0 1 6
    # 简短说明:在启动时启动守护进程
    # 描述:启用守护进程提供的服务。
    ### 结束初始化信息

这些变量也出现在来自“ssh”等脚本的 SysVinit LSB 标头上。

有谁知道这些变量?

init sysvinit init.d

5
推荐指数
1
解决办法
5376
查看次数

使用英特尔编译器编译 Ubuntu“Raring”内核

当然,第一个问题是:我为什么要这样做。只是为了好玩!我正在学习有关 Linux 内核的更多信息,并且我有一台可以在 15 分钟内更换的虚拟机。

开始做生意,我不知道该怎么做,所以我去尝试编辑makefile(尝试学习)。所以我从路径中的makefile开始ubuntu-raring/Makefile,它是主要的make文件;可以在此链接下找到:

http://pastebin.com/ms2WpQi7

还有我改为每gccicc,每g++icpc,每-O2-O3。结果如下:

http://pastebin.com/cSwTYJ9C

我也按照本网站的说明进行操作:

https://help.ubuntu.com/community/Kernel/Compile

但最终,我遇到了奇怪的错误,这些错误似乎是由使用gcc/g++而不是icc/引起的icpc。例如,我在文件ubuntu-raring/include/linux/compiler-gcc.h中得到一个错误,一些宏已经定义,而这个文件不应该被包含在首位!包含它的宏在文件中ubuntu-raring/include/linux/compiler.h,看起来像:

#ifdef __GNUC__
#include <linux/compiler-gcc.h>
#endif

/* Intel compiler defines __GNUC__. So we will overwrite implementations
 * coming from above header files here
 */
#ifdef __INTEL_COMPILER
# include <linux/compiler-intel.h>
#endif
Run Code Online (Sandbox Code Playgroud)

虽然我不明白英特尔标头上方写的评论(听起来很奇怪......为什么要定义实现然后覆盖它们?从来没有在 C++ 中这样做过!),gcc手动删除标头的包含解决了问题,但其他问题出现了,我不知道它们是否相关。

所以现在我很困惑!我做错了什么?更改Makefile 中的每个gccg++是否足以使用不同的编译器?或者还有其他我忽略的事情需要改变吗?

感谢您的任何努力。

linux compiling ubuntu gcc linux-kernel

4
推荐指数
1
解决办法
1422
查看次数

CentOS 5:我的 Postgresql 服务器版本与我的 psql 客户端不同。我该怎么办?

我在 CentOS 5 x86_64 VPS 中安装了 PostgreSQL 9.1,使用以下命令:

我指定了要安装哪个 Postgresql 版本,所以我选择 9.1,因为我想将开发环境和生产环境等同起来:

wget http://yum.pgrpms.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

进而

yum install postgresql91-server
Run Code Online (Sandbox Code Playgroud)

最后

service postgresql-9.1 initdb
chkconfig postgresql-9.1 on
service postgresql-9.1 start
Run Code Online (Sandbox Code Playgroud)

完成所有这些并创建我的数据库后,我运行psql myfirstdb并收到此警告:

Welcome to psql 8.1.23 (server 9.1.11), the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

WARNING:  You are connected to a server with major version …
Run Code Online (Sandbox Code Playgroud)

centos postgresql

3
推荐指数
2
解决办法
2万
查看次数

查找存储库中的所有 Web 服务器

我需要从基于 ARM 的 Debian 设备的存储库中找到所有可用的 Web 服务器。

我运行了以下命令,但它返回的点击次数过多(包括库等):

apt-get update
apt-cache search http server
Run Code Online (Sandbox Code Playgroud)

我应该使用更好的命令吗?

debian package-management

1
推荐指数
1
解决办法
99
查看次数