小编Mar*_*tin的帖子

使用反向搜索时返回到 bash 历史记录的末尾?

我保留了相当长的 bash 历史记录,有时当我使用 bash 反向搜索功能(Ctrl+ r)搜索某些内容时,我最终在搜索历史记录的开头,但仍然没有找到我需要的内容,然后我想回到最后的历史文件。一种选择是使用向前搜索功能(Ctrl+ s),它更接近历史记录的末尾或 execute #,但是否还有直接移动到 bash 历史记录末尾的键盘快捷键?

bash command-history

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

wpa_supplicant 下的驱动程序(-D)选项

在开始wpa_supplicant工作之前,网络接口必须可用并且必须加载设备的驱动程序。wpa_supplicant允许使用“-D”标志指定驱动程序。我在几个系统上尝试过这个,但wpa_supplicant似乎从来没有接受我指定的驱动程序。例如:

T42 ~ # lspci -v -s 02:02.0
02:02.0 Network controller: Intel Corporation PRO/Wireless 2915ABG [Calexico2] Network Connection (rev 05)
    Subsystem: Intel Corporation Device 1011
    Flags: bus master, medium devsel, latency 64, IRQ 11
    Memory at c0214000 (32-bit, non-prefetchable) [size=4K]
    Capabilities: [dc] Power Management version 2
    Kernel driver in use: ipw2200
    Kernel modules: ipw2200
T42 ~ # wpa_supplicant -D ipw2200 -i eth1 -c /root/wpafile 
Unsupported driver 'ipw2200'.
T42 ~ # 
Run Code Online (Sandbox Code Playgroud)

但是,如果我开始时wpa_supplicant没有指定像 那样的驱动程序 …

wpa-supplicant

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

理解IFS的默认值

在我的 GNU bash 版本 4.2.8 中,IFS 默认有空格、制表符和换行符的默认值:

usr@T42 ~ $ echo -n "$IFS" | hexdump -C
00000000  20 09 0a                                          | ..|
00000003
usr@T42 ~ $ 
Run Code Online (Sandbox Code Playgroud)

是否有这种默认 IFS 的原因?此外,除了内置 bash 之外,还有哪些实用程序使用 IFS read?

shell bash quoting

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

“apt-get install”什么时候要求我确认是否要继续?

有时“apt-get install”会问我"Do you want to continue [Y/n]?":

root@T43:~# apt-get install chmsee
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libchm1
The following NEW packages will be installed:
  chmsee libchm1
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 192 kB of archives.
After this operation, 848 kB of additional disk space will be used.
Do you want to continue [Y/n]? 
Run Code Online (Sandbox Code Playgroud)

我是否正确,仅当"The …

apt

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

删除 USB 闪存驱动器写保护

我有一个带有集成闪存的运动手表。该闪存用于存储训练信息。当我使用 USB 数据线将手表连接到我的电脑时,它被检测为写保护的闪存驱动器:

[354703.052138] sd 7:0:0:0: [sdc] Write Protect is on
Run Code Online (Sandbox Code Playgroud)

..而且我显然无法重新安装具有 RW 权限的分区:

root@T60:~# mount -vt vfat -o rw,remount /dev/sdc1 /media/
mount: cannot remount block device /dev/sdc1 read-write, is write-protected
root@T60:~# 
Run Code Online (Sandbox Code Playgroud)

我记得hdparm有一个选项可以更改设备的只读标志,并且当 USB 闪存驱动器被检测为 SATA 驱动器时,我尝试了一下,但这也无济于事:

root@T60:~# hdparm -r0 /dev/sdc

/dev/sdc:
 setting readonly to 0 (off)
 readonly      =  0 (off)
root@T60:~# mount -vt vfat -o rw,remount /dev/sdc1 /media/
mount: cannot remount block device /dev/sdc1 read-write, is write-protected
root@T60:~# 
Run Code Online (Sandbox Code Playgroud)

我猜手表的设计方式是一旦检测到 USB 连接,就会触发(硬件)USB 写保护开关?这种硬件写保护是 USB 标准的一部分吗?或者还有什么可以尝试的吗?

usb usb-drive

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

MBR 之后和分区起点之前的磁盘区域

如果我使用 MBR 分区方案并使用fdisk(版本 2.20.1)创建主分区或扩展分区,那么它从扇区 2048 开始。如果我没记错,那么旧版本的fdisk第一个分区在扇区 63 上启动。如果 MBR 只需要512 字节,那么为什么第一个分区不在扇区 2 上开始?那些 2047 个扇区中保存了什么?引导加载程序的某个阶段?

partition mbr

11
推荐指数
2
解决办法
6050
查看次数

Debian Wheezy 上的最小 X.org xserver 安装

我安装了没有桌面环境的Debian Wheezy,因为我想改用轻量级dwm窗口管理器。但是,作为第一步,我需要安装 xserver。我想安装运行 xserver 所需的最少组件。运行 xserver 所需的确切组件(二进制文件、库、配置文件等)是什么?显然是 xinit(启动 X 服务器会话),但还有什么?或者运行 xserver 所需的组件是否如此分散以至于实际上需要安装xserver-xorg包来处理所需的所有依赖项?

xorg debian software-installation x-server

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

当文件存储在不同目录中时创建不包含父目录的 tar 存档

我在文件系统中有以下四个文件:

/home/martin/cvs/ops/cisco/b/s1
/home/martin/cvs/ops/cisco/b/s2
/home/martin/cvs/ops/extreme/b/r3
/home/martin/cvs/ops/j/b/r5
Run Code Online (Sandbox Code Playgroud)

我需要将这些文件放入 tar 存档,但我不想添加目录。我能想到的最好的是:

tar -C ~/cvs/ops/ -czvf archive.tgz cisco/b/s1 cisco/b/s2 extreme/b/r3 j/b/r5
Run Code Online (Sandbox Code Playgroud)

这仍然不完美,因为存档中的每个文件都有两个目录深。有没有更好的办法?还是我只需要复制s1,s2,r3和r5文件到一个目录下,并创建归档tar -czvf archive.tgz s1 s2 r3 r5?

tar

11
推荐指数
3
解决办法
4102
查看次数

为什么即使块设备的物理扇区大小为 4096,fdisk 仍然喜欢 512 字节的扇区大小?

我有一个 4096 字节扇区的磁盘:

# cat /sys/class/block/sda/queue/physical_block_size
4096
#
Run Code Online (Sandbox Code Playgroud)

出于某种原因,fdisk更喜欢使用 512 字节扇区显示有关磁盘的信息:

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST500DM002-1BD14
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000d98d6

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 976773167 976771120 465.8G 83 Linux

Run Code Online (Sandbox Code Playgroud)

出于好奇,为什么fdisk更喜欢使用 512 字节的扇区大小?我正在使用fdisk版本2.33.1。

fdisk

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

tzdata 数据库究竟是如何使用的?

不同的操作系统似乎以不同的方式处理夏令时 (DST)。我真的很喜欢 Cisco IOS 方法,它非常简单,可以更改 DST 开始和结束的日期和时间。例如:

clock summer-time EDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00 60
Run Code Online (Sandbox Code Playgroud)

..在 3 月第二周的星期日 2:00 将时钟提前 60 分钟,并在 11 月第一个星期日的 2:00 将时钟向后移动 60 分钟。Linux 如何处理夏令时?我知道有一个tzdata包含时区数据文件的包,这些文件安装到/usr/share/zoneinfo/目录中。这些文件是如何以及由哪些实用程序使用的?我可以在文件中看到 UTC(2) 和时区名称(EET 和 EEST)的变化:

T60:~# strings /usr/share/zoneinfo/posix/Europe/Helsinki
TZif2
    HMT
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4
T60:~# 
Run Code Online (Sandbox Code Playgroud)

另外,M3大概是第三个月,M10是第十个月?此外,还应在某处指定偏移量。例如,在 IOS 中,可以配置一旦 DST 发生,时钟就会移动 90 或 120 分钟而不是 60 分钟。

clock

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