Существует три уровня встроенных утилит:
Некоторые утилиты являются действительно частью оболочки как язык программирования, даже при том, что они не зарезервированные слова. Они - утилиты потока управления (.
, :
, break
, continue
, return
, trap
, exit
, exec
, eval
), связанные с параметром утилиты (set
, unset
, shift
, export
, readonly
, local
¹, typeset
¹), утилиты псевдонима (alias
², unalias
²) и times
³. Они особенные созданный-ins получают специальный режим:
foo=bar utility
имеет другое значение: это - обычное присвоение параметра (т.е. эквивалентный foo=bar; utility
), вместо того, чтобы присвоить среде на время утилиты только.Некоторые утилиты должны быть реализованы в оболочке, потому что они действуют на внутренние настройки оболочки. Это включает:
cd
, dirs
, pushd
, popd
;bg
, disown
, fg
, jobs
, wait
;builtin
, command
, hash
, read
, type
, ulimit
, umask
;fc
, history
, bind
.echo
, printf
, test
, true
, false
.Усовершенствованные оболочки, такие как удар, ksh и zsh обычно больше создавали-ins, часто для реализования нестандартных опций (обычно для взаимодействия). Руководство каждой оболочки скажет Вам, какие команды встроены, хотя некоторые оболочки (zsh, по крайней мере) поддерживают динамично-загружаемые-модули, которые могут обеспечить более созданный-ins.
¹ Неизвестный POSIX, но особенный в ksh и нескольких других оболочках.
² Обычный в POSIX, но особенный в ksh и нескольких других оболочках.
³ В ksh
, times
обертка вокруг time
ключевое слово: это - псевдоним для { { time;} 2>&1;}
. Обратите внимание, что POSIX позволяет time
чтобы быть внешней утилитой с обычным парсингом или ключевым словом, которое относится к целому конвейеру (который это находится в ksh, избейте zsh).
$ readlink /sys/class/net/wlan0/device/driver
../../../../bus/pci/drivers/ath5k
Другими словами, /sys
иерархия для устройства (/sys/class/net/$interface/device
) содержит символьную ссылку на /sys
иерархия для драйвера. Там Вы также найдете символьную ссылку на /sys
иерархия для модуля, если применимо. Это относится к большинству устройств, не просто беспроводных интерфейсов.
Возможно, существует лучший путь, но я использовал lshw -class network
(как корень), и это дает мне этот вывод:
*-network
description: Ethernet interface
product: 82566MM Gigabit Network Connection
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
logical name: eth0
version: 03
serial: 00:a0:d1:a3:87:c8
size: 1GB/s
capacity: 1GB/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=1.0.2-k2 duplex=full firmware=0.3-0 ip=192.168.2.206 latency=0 link=yes multicast=yes port=twisted pair speed=1GB/s
resources: irq:29 memory:fc300000-fc31ffff memory:fc325000-fc325fff ioport:1840(size=32)
*-network
description: Wireless interface
product: PRO/Wireless 4965 AG or AGN [Kedron] Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:06:00.0
logical name: wlan0
version: 61
serial: 00:1d:e0:69:28:07
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlagn ip=192.168.0.104 latency=0 multicast=yes wireless=IEEE 802.11abgn
resources: irq:31 memory:c8000000-c8001fff
*-network DISABLED
description: Ethernet interface
physical id: 3
logical name: vboxnet0
serial: 0a:00:27:00:00:00
capabilities: ethernet physical
configuration: broadcast=yes multicast=yes
Вы можете grep для driver
от того вывода. В моем случае я использую lsmod | grep iwlagn
, предоставление меня:
iwlagn 63559 0
iwlcore 67702 1 iwlagn
mac80211 123574 2 iwlagn,iwlcore
cfg80211 87657 3 iwlagn,iwlcore,mac80211
Не спрашивайте меня, что каждого из тех означают :)
lshw
, но драйвер был потерян во всех других конфигурация. :)
– apoorv020
22.02.2011, 11:11
lsmod
.
– apoorv020
22.02.2011, 11:13
basename $( readlink /sys/class/net/eth0/device/driver )
. – mattdm 23.02.2011, 02:09