для получения информации о CPU
cat /proc/cpuinfo
для использования диска
df -h
для плат PCI и шин
lspci
можно найти lshw
полезный
если Вам нужны USB-устройства
lsusb
Можно работать mount
без любых аргументов для получения списка текущего монтирования. /etc/mtab
файл должен иметь подобные данные, но как Вы сказал, что для этого возможно быть несовместимым тому, что на самом деле смонтировано если /etc
файловая система испорчена, не перезаписываемый, или другая программа смешала с нею. Можно получить определенную информацию о proc, монтируется путем выяснения mount
перечислять всех монтируется типа proc
как это:
mount -l -t proc
Править: Похоже, что можно использовать stat
сравнить устройство /proc
папка к устройству /
для сообщения, по крайней мере, если ЧТО-ТО смонтировано там кроме корневой файловой системы:
[[ $(stat -c %d%D /proc) != $(stat -c %d%D /) ]] && echo "Something is mounted at /proc"
Тест для существования /proc/mounts
. Выполнение mount
бесполезно потому что если /proc
не смонтирован, это возвратит потенциально устаревшие данные из /etc
.
В теории могло бы быть что-то еще в /proc
. Но это крайне маловероятно на практике: если /proc/mounts
существует и /proc
не proc
файловая система, Вы ничему не можете доверять о своей среде так или иначе. Если Вы действительно волнуетесь, можно проверить, что тип файловой системы proc
: df -PT /proc | awk 'NR==2 && $2=="proc" {print 1}'
(требует утилит Linux df
, нет никакой соответствующей опции в Busybox). С другой стороны, в теории, могла быть proc файловая система, смонтированная в другом месте; нет никакого простого способа найти это с командами оболочки (df
чтения /proc/mounts
перечислить файловые системы). На практике просто проверьте на /proc/mounts
.
Полагаю, есть более короткий путь:
svcs network/shell | awk '/online/ {system("bash -c \"compare_ser "$1"\"")}'
Уважаемые даунвотеры, можете ли вы объяснить свое решение? Вы поняли, что такое Linux на самом деле? Сценарий выше - это рабочий фрагмент, и, возможно, существует миллион способов сделать то же самое. Поэтому я прошу объяснений.
-121--197908- Кроме исправления PS1
можно убедить приложения не выдавать эти непечатаемые символы путем экспорта подходящего значения в переменную среды TERM
. Возможно, каноническая функция export TERM = dumb
в начале сеанса script
(или TERM = dumb script < args >
при вызове). Предполагая, что вы создаете PS1
с помощью tput
, последнее также может работать на это.
Существует инструмент под названием mountpoint
, доступный во многих установках linux.
Код выхода равен 0, если первым аргументом является точка монтирования.
mount | grep proc
по просто той причине. – Caleb 06.07.2011, 14:51[[ -n $(mount -l -t proc) ]]
– Caleb 06.07.2011, 15:06