Первый диск /dev/sda
является8:0
(основным :второстепенным ), но старший номер 8 также содержит следующие 15 дисков(Documentation/devices.txt
в исходном коде ядра):
8 block SCSI disk devices (0-15)
0 = /dev/sda First SCSI disk whole disk
16 = /dev/sdb Second SCSI disk whole disk
32 = /dev/sdc Third SCSI disk whole disk
...
240 = /dev/sdp Sixteenth SCSI disk whole disk
Partitions are handled in the same way as for IDE
disks (see major number 3) except that the limit on
partitions is 15.
Остальные для остальных ваших дисков (старшие номера 66 -71 и 128 -134 аналогичны, и схема разбиения у всех одинаковая):
65 block SCSI disk devices (16-31)
0 = /dev/sdq 17th SCSI disk whole disk
16 = /dev/sdr 18th SCSI disk whole disk
...
135 block SCSI disk devices (240-255)
0 = /dev/sdig 241st SCSI disk whole disk
...
240 = /dev/sdiv 256th SCSI disk whole disk
Что ж, у вас, вероятно, не так много дисков, и система генерирует только те узлы, которые необходимы для устройств, которые у вас есть на самом деле, так что вы не видите ничего, кроме sda
и его разделов в /dev
.
Что касается vcsa
и друзей, то они связаны с виртуальными консолями:
7 char Virtual console capture devices
0 = /dev/vcs Current vc text contents
1 = /dev/vcs1 tty1 text contents
...
128 = /dev/vcsa Current vc text/attribute contents
129 = /dev/vcsa1 tty1 text/attribute contents
...
Также обратите внимание, что /dev/vcs*
являются символьными, а не блочными устройствами. Первая буква в выводе ls
указывает, какой именно.
*test*
не является допустимым шаблоном регулярного выражения. *
— это оператор повторения, и ему нужно что-то повторять. Очень вероятно, что вы хотите .*test.*
, хотя это не обязательно с регулярным выражением, так как оно не привязано по умолчанию. Вы можете просто поискатьtest
Однако вы не можете сопоставлять шаблоны регулярных выражений с оператором =
, вам нужно =~
.
precmd () {
local x=test
if [[ $x =~ test ]]; then
echo 'hello'
fi
}