小编fpm*_*phy的帖子

视觉与编辑器——有什么区别?

我通常将环境变量VISUALEDITOR环境变量都设置为相同的东西,但有什么区别呢?为什么我要以不同的方式设置它们?当开发应用程序,我为什么要选择看VISUAL之前EDITOR,反之亦然?

vi environment-variables ex

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

为什么不带引号的带空格的参数扩展在双括号“[[”内起作用,而在单括号“[”内不起作用?

我对使用单括号或双括号感到困惑。看看这段代码:

dir="/home/mazimi/VirtualBox VMs"

if [[ -d ${dir} ]]; then
    echo "yep"
fi
Run Code Online (Sandbox Code Playgroud)

尽管字符串包含空格,但它工作得很好。但是当我将其更改为单括号时:

dir="/home/mazimi/VirtualBox VMs"

if [ -d ${dir} ]; then
    echo "yep"
fi
Run Code Online (Sandbox Code Playgroud)

它说:

./script.sh: line 5: [: /home/mazimi/VirtualBox: binary operator expected
Run Code Online (Sandbox Code Playgroud)

当我将其更改为:

dir="/home/mazimi/VirtualBox VMs"

if [ -d "${dir}" ]; then
    echo "yep"
fi
Run Code Online (Sandbox Code Playgroud)

它工作正常。有人可以解释发生了什么吗?什么时候应该在变量周围分配双引号,"${var}"以防止空格引起的问题?

bash ksh quoting test

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

如何找出我使用哪个接口连接到互联网?

我有eth0wlan0根据ifconfig,我可以ping google.com

我如何才能找出(对于普通用户,而不是root)哪个接口处于活动状态,例如 ping(或其他什么,ping 不是强制性的)使用的接口是什么?

我使用的是 Ubuntu 11.04 或 Fedora 14

linux routing

75
推荐指数
8
解决办法
12万
查看次数

创建无线接入点并与 nmcli 共享互联网连接

如何使用命令行工具创建 Wi-Fi 热点并nmcli与无线接入点共享/桥接以太网互联网连接?此外,如何在启动时自动启动?

这可能nmcli吗?

wifi boot internet bridge access-point

33
推荐指数
4
解决办法
5万
查看次数

有没有办法从命令行展平 .pdf 图像?

在 GIMP 中,我可以导入一个 PDF,然后使用 GUI 将它展平(如果它是由多层组成的),方法Flatten Image是在Image下拉菜单中进行选择。然后,我可以使用新文件名导出 PDF。

我想自动化这个。有没有办法通过终端做到这一点?

bash pdf image-manipulation gimp

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

我应该如何配置 grub 以从 USB 硬盘驱动器启动 linux 内核?

我在外部机箱中有一个笔记本电脑硬盘驱动器,用作大型笔式驱动器。另外,我在其上安装了 Linux,因此我可以使用我选择的发行版启动任何机器(例如,用于数据恢复或修复 b0rked 系统或仅使用借来的笔记本电脑而不破坏预装的 Windows)。

问题是,根据硬件配置,USB 硬盘驱动器可能在不同路径下可见。对于 grub 配置,我只是使用(hda0,0)它,因为它与启动 grub 的设备相关。我在/etc/fstab. 我还在rootwait内核参数中指定,以便它在尝试挂载设备之前等待 USB 子系统稳定下来。

我应该将什么传递给内核root=?目前,从 pendrive 启动一次,检查调试消息以查看/dev/sdX内核已将哪些设备分配给 USB 驱动器,然后重新启动并编辑 grub 配置。除了Boot from USB hard drive在 BIOS 中启用并将其设置为比内部硬盘驱动器更高的优先级之外,我无法更改 PC 上的任何内容。

有多种 initrd 生成脚本在根设备路径中包含对 UUID 的支持,不幸的是,Gentoo 原生脚本(genkernel)不支持rootwait,我没有运气尝试使用其他脚本。

启动过程是这样的(在 Windows 中非常相似):

  1. BIOS 选择引导设备并加载其 MBR(恰好是 grub stage-1)。
  2. Grub 从它设置为的设备加载它的配置和第 2 阶段文件root,使用(hd0)它从 BIOS 加载的设备。
  3. Grub 加载并启动内核(仍然是相同的编号,所以我可以(hd0,0)再次使用)。
  4. 内核初始化所有内置设备(rootwait现在是不是很神奇)。
  5. 内核挂载它作为传递的分区root(这是一个内核参数,而不是 grub …

linux boot kernel usb grub2

22
推荐指数
2
解决办法
4362
查看次数

基本的 POSIX 实用程序是否并行化?

在常见的Linux发行版,做事业一样rmmvlsgrepwc,等在平行于它们的参数运行?

换句话说,如果我grep在 32 线程 CPU 上处理一个大文件,它会比在双核 CPU 上运行得更快吗?

utilities multithreading parallelism

19
推荐指数
3
解决办法
2503
查看次数

Unix 历史:返回码八进制?

今天让我措手不及gdb

Program exited with code 0146.
Run Code Online (Sandbox Code Playgroud)

gdb八进制打印返回码;调查我发现的原因:http : //comments.gmane.org/gmane.comp.gdb.devel/30363

但这并不是一个特别令人满意的答案。一些快速的谷歌搜索并没有揭示历史,所以我希望 SO 上的某个人可能知道背后的故事。

一个有点相关的问题,如何查看八进制的返回码?也许旧机器总是打印返回码?

$ printf %o\\n $?
Run Code Online (Sandbox Code Playgroud)

很别扭 :)

history gdb

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

再次使提取的 tar 文件变小

我将一个文件夹打包并压缩为 .tar.gz 存档。打开包装后,它几乎是原来的两倍大。

du -sh /path/to/old/folder       = 263M
du -sh /path/to/extracted/folder = 420M
Run Code Online (Sandbox Code Playgroud)

我搜索了很多,发现 tar 实际上是通过添加元数据或用它做其他奇怪的事情来导致这个问题的。

我对文件夹内的 2 个文件以及一个 md5sum 进行了比较。绝对没有差异,校验和是完全相同的值。然而,一个文件是原始文件的两倍大。

root@server:~# du -sh /path/to/old/folder/subfolder/file.mcapm /path/to/extracted/folder/subfolder/file.mcapm
1.1M    /path/to/old/folder/subfolder/file.mcapm
2.4M    /path/to/extracted/folder/subfolder/file.mcapm
root@server:~# diff /path/to/old/folder/subfolder/file.mcapm /path/to/extracted/folder/subfolder/file.mcapm
root@server:~# 
root@server:~# md5sum /path/to/old/folder/subfolder/file.mcapm
root@server:~# f11787a7dd9dcaa510bb63eeaad3f2ad
root@server:~# md5sum /path/to/extracted/folder/subfolder/file.mcapm
root@server:~# f11787a7dd9dcaa510bb63eeaad3f2ad
Run Code Online (Sandbox Code Playgroud)

我不是在寻找不同的方法,而是寻找一种将这些文件的大小再次减小到原始大小的方法。

我怎样才能做到这一点?

filesystems tar compression gzip sparse-files

10
推荐指数
2
解决办法
1410
查看次数

在另一个文件后逐行追加行

附加一个文件,

011C0201.WAV
011C0202.WAV
011C0203.WAV
011C0204.WAV
011C0205.WAV
Run Code Online (Sandbox Code Playgroud)

在另一个文件之后,

52 601
39 608
56 1016
39 416
65 335
Run Code Online (Sandbox Code Playgroud)

结果如下,也除以tab

011C0201.WAV    52_601_011C0201
011C0202.WAV    39_608_011C0202
011C0203.WAV    56_1016_011C0203
011C0204.WAV    39_416_011C0204
011C0205.WAV    65_335_011C0205
Run Code Online (Sandbox Code Playgroud)

这是我所做的

awk '
NR==FNR { start=$1; end=$2; next}
{ print $0 start end }
' WSJ_310P_PC_16k.epd WSJ_310P_PC_16k.spt > tmp
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我究竟做错了什么?

shell awk

6
推荐指数
2
解决办法
837
查看次数

iptables 返回未知选项“--dport”错误

我试图将端口 80 重定向到 8080,以对 kali linux rasberry pi 进行 MITM ssl strip 攻击,但出现错误:unknown option "--dport"尝试运行命令时:

iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Run Code Online (Sandbox Code Playgroud)

有人遇到过这种情况么?或者知道我该如何解决这个问题?我已经在互联网上搜索了好几天了,但找不到任何东西。

iptables kali-linux

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

将长命令拆分为多行

我得到了一个 shell 脚本,在里面我得到了如下命令

#!/bin/sh
sh ../jboss/bin/standalone.sh --server-config=standalone-full.xml -Djboss.node.name=node1 -b 0.0.0.0 -bmanagement 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

如何将线断成多条线以便更好地理解和管理

#!/bin/sh
sh ../jboss/bin/standalone.sh 
  --server-config=standalone-full.xml
  -Djboss.node.name=node1
  -b 0.0.0.0
  -bmanagement 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

尝试在每行末尾使用反斜杠,但不起作用。

shell-script

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

date命令中的(+)加号代表什么?

例如,以下命令$ date "+%D"输出 MM/DD/YY。the+做什么或指什么?它不在手册页中。

linux bash

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