Полезные команды shell ОС Solaris

03.03.2010

Полезные команды shell ОС Solaris

Очень часто нам необходимо помнить множество  команд shell, но память ведь не резиновая и многие из них забываются. Вот небольшой список основных и полезных команд shell  для операционной системы Solaris который можно использовать как шпаргалку, если что-то забылось.

Отладка

cat -v -t -e [file] Показать неотображаемые символы
dumpadm -d swap Сконфигурировать swap устройство как dump устройство
ld -l Проверка наличия библиотеки
truss -f -p Использование нескольких окон. Это может использоваться при отслеживании setuid/setgid программ
truss executable Отслеживание команды (полезно при отладке)

Работа с диском

/bin/mount -F hsfs -o ro /dev/sr0 /cdrom Монтирование ISO 9660 CDROM
/usr/bin/iostat -E Отображение статистики дисков
du -ad /var | sort -nr Отчет об использовании /var сортированный в обратном порядке
du -k . Отчет об использовании диска в килобайтах
du -sk * | sort -nr | head Показать 10 самых больших файлов/каталогов
du -sk *|sort -k1,1n Отчет об использованном пространстве в текущем каталоге
du -sk . Отчет об общем использовании диска в килобайтах
fdformat -d -U Форматирование дискеты
newfs -Nv /dev/rdsk/c0t0d0s1 Просмотр доступных суперблоков
prtvtoc /dev/rdsk/c0t0d0s2 Информация о геометрии и разделах диска
prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s — /dev/rdsk/c0t1d0s2 Копировать таблицу разделов с одного диска на другой
quot -af Сколько дискового пространства используется пользователем
volrmmount -i floppy Монтирование дисковода или другого устройства просто по его имени

Параметры ядра

ndd /dev/ip ip_forwarding Показать переменную ip_forwarding в ядре
ndd /dev/ip ip_forwarding 1 Установить переменную ip_forwarding в ядре
ndd /dev/ip \? Показать все IP переменные в ядре

Управление файлами

dos2unix | -ascii Конвертировать файлы формата DOS в формат Unix
fold -w 180 Удалить строки с больше чем 180 символов
split [-linecount] [file] Разбить файл на части
[vi] : %s/existing/new/g Поиск и замена текста в vi
[vi] :set list Показать неотображаемые символы в vi
[vi] :set nu Пронумеровать строки в vi
[vi] :set ts=[num] Установить значение табуляции в vi

Файловая система

/sbin/uadmin x x Синхронизация файловых систем и быстрая перезагрузка
awk ‘ END {print NR}’ file_name Вывести количество строк в файле
cat /dev/null > filename Нулевой вывод в файл без прерывания пайпа
dd if=/dev/rdsk/… of=/dev/rdsk/… bs=4096 Сделать зеркало загрузочного диска
df -k | grep dg| awk ‘{print $6}’ |xargs -n 1 umount Отмонтировать все файловые системы в группе дисков dg
fsck -F ufs -o b=97472 /dev/rdsk/c0t0d0s0 Проверить и восстановить файловую систему UFS на c0t0d0s0 используя альтернативные суперблоки
fsck -F ufs -y /dev/rdsk/c0t0d0s0 Восстановить файловую систему UFS на c0t0d0s0 без подтверждения
fsck -F ufs /dev/rdsk/c0t0d0s0 Проверить файловую систему UFS на c0t0d0s0
gzip -d -c tarball.tgz | (cd /[dir];tar xf — ) & Распаковка архива в указанное место
gzip -dc file1.tar.gz | tar xf — Распаковка архива
ln [-fhns] Создать жесткую или мягкую ссылку
ls -al | awk ‘$3 == «oracle» || $3 == «root» {print $9}’ Вывод всех файлов, владельцем которых является
ls -l | sort +4n Список файлов по размеру
ls -la | awk ‘{ print $5,» «,$9 }’ | sort -rn Размер файлов в текущем каталоге
ls -lR | awk ‘{total +=$5};END {print «Total size: » total/1024/1024 «MB» }’ Рекурсивный подсчет размера каталогов в Мб
mkisofs -l -L -r -o [image-name].iso [directory] Создать образ ISO из каталога
mount -F ufs -o rw,remount / Перемонтировать корневой раздел в rw
mount -o remount,logging /spare Перемонтировать ro в rw aи включить журналирование ufs
mount -f pcfs /dev/dsk/c0d0p1 /export/dos Примонтировать раздел DOS
mv [filename]{,.new_suffix} Переименовать файл
pax -rw . /newdir Альтернативный метод копирования каталогов
prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s — /dev/rdsk/c0t1d0s2 Клонировать таблицу разделов
tar cf — . | (cd /newdir ; tar xf -) Рекурсивное копирование файлов и разрешенй
tar cvf filename.tar Создать архив
tar xvf filename.tar Распаковать архив
X=$(wc -l < filename); echo $X Подсчет количества строк в файле (ksh)
zcat < xvf tar |> Распаковка patch_file
zcat [cpio file] | cpio -itmv Показать содержимое cpio

Передача файлов

find . -depth | cpio -pdmv /path/tobe/copied/to Быстрая альтернатива cp -pr
find . -follow | cpio -pdumL /path/tobe/copied/to Копирование с символическими ссылками
get filename.suffix |»tar xf -« Недокументированная возможность FTP
ssh cd /some/directory \&\& tar cf — | ssh cd /some/direstory \&\& tar xvf — Переместить файлы без фактического обращения к ним
put «| tar cf — .» filename.tar Недокументированная возможность FTP
sendport Команда FTP, служащая для передачи большого количества файлов в пределах одной сессии

Общие

/bin/printf ‘%d\n’ ‘0x’ Преобразование шестнадцатеричного числа в десятичное
/usr/bin/catman -w Создать индекс базы данных страниц руководства man
FQ_FILENAME=; echo ${FQ_FILENAME%/*}
mailx -H -u Список заголовков писем конкретного пользователя
ps -ef | grep -i $@
set filec Установить автодополнение имен файлов для csh
uuencode [filename] [filename] | mailx -s «Subject» [user to mail] Послать файл в аттаче
xauth -f /home/${LOGNAME} extract — ${DISPLAY} | xauth merge —

Аппаратное обеспечение

cfgadm Проверить конфигурирумые аппаратные устройства
m64config -depth 8|24 Установить глубину цвета M64
m64config -prconf Вывести конфигурацию адаптера M64
m64config -res ‘video_mode’ Изменить разрешение графического адаптера M64
prtpicl -v | grep sync-speed Обзор скорости синхронизации SCSI

Ядро

/usr/sbin/modinfo Информация о модулях ядра
/usr/sbin/modload Загрузить модуль ядра
/usr/sbin/modunload -i Выгрузить модуль ядра
/usr/sbin/sysdef Детальный вывод настройки ядра
nm -x /dev/ksyms | grep OBJ | more Настраиваемые параметры ядра

Память

pagesize -a Доступный размер страницы для Solaris 9
prtconf | grep Mem Вывод размера памяти на локальной машине

Информация о сети

arp -a Вывод arp таблицы
arp -d myhost Удалить запись определенного хоста из таблицы
lsof -iTCP@10.20.2.9  Отобразить открытые файлы для определенного хоста
ndd /dev/arp arp_cache_report Напечатать arp таблицу выводя mac и IP адреса
netstat -a | grep EST | wc -l Показать число активных подключений к данной машине
netstat -a | more Показать состояние сокетов на этой машине
netstat -i Показать состояние TCP/IP интерфейсов
netstat -k hme0 Недокументированная опция netstat
netstat -np Аналог команды arp -a, без разрешения имен
netstat -r Таблица маршрутов
netstat -rn Таблица маршрутов, без разрешениия имен
snoop -S -ta [machine] Прослушивание сетевых пакетов, включая размер и время
traceroute Маршрут к данному адресу

Настройка сети

/sbin/ifconfig hme0:1 inet 10.210.xx.xxx netmask 255.255.0.0 broadcast 10.210.xxx.xxx Виртуальный интерфейс
/sbin/ifconfig hme0:1 up Поднять виртуальный интерфейс
/usr/sbin/ndd -set /dev/hme adv_100fdx_cap 1
ifconfig eth0 10.1.1.1 netmask 255.255.255.255 Добавить интерфейс
ifconfig eth0 mtu 1500 Сменить MTU на интерфейсе
ndd -set /dev/ip ip_addrs_per_if 1-8192 Задать больше, чем 256 виртуальных IP адресов
ndd -set /dev/tcp tcp_recv_hiwat 65535 Увеличить TCP буфер приема на Sol2.5.1 с 100BaseTx
ndd -set /dev/tcp tcp_xmit_hiwat 65535 Увеличить TCP буфер передачи на Sol2.5.1 с 100BaseTx

Процессы

/usr/proc/bin/ptree Вывести дерево родителя/детей для процесса
/usr/proc/bin/pwdx Вывести рабочий каталог процесса
/usr/ucb/ps -aux | more Отобразить использование CPU % для каждого процесса
/usr/ucb/ps -auxww | grep Получить полный список процессов (очень длинный)
fuser -uc /var Процессы, запущенные из /var
ipcs Отчет о межпроцессных взаимодействиях
kill -HUP `ps -ef | grep [p]roccess | awk ‘{print $2}’` Послать всем связанным процессам сигнал HUP за один раз
lsof -i TCP:25 Соотнести порт с приложением
pfiles Показать файлы, открытые процессом
pkill -n Убить процесс с определенным именем
prstat -a Альтернатива команде top
ps -edf -o pcpu,pid,user,args Форматированый вывод ‘ps’
ps -ef | grep -i | awk ‘{ print $2 }’ Создать список PID содержащих
ps -ef | grep | grep -v grep | cut -c 10-15 | xargs kill -9 Найти и убить процесс
ps -ef | more Показать все запущенные процессы
ps -ef|grep -v «0:00″|more Получить список любого процесса с процессорным временем больше чем 0:00
ps -eo pid,args Список процессов в простом формате
ps -fu oracle|grep pmon Посмотреть, какие инстансы Oracle запущены
top -b 1 Отобразить наиболее прожорливый процесс и выйти

Управление ресурсами

/usr/bin/ldd [filename] Список динамических зависимостей выполняемого файла
/usr/proc/bin/pmap pid Отчет о карте адресного пространства процесса

Маршрутизация

route add net 128.50.0.0 128.50.1.6 1 Добавить маршрут
route change 128.50.0.0 128.50.1.5 Сменить маршрут
route delete net 128.50.0.0 128.50.1.6 Удалить маршрут
route flush Очистить таблицу маршрутов. Удаляются все записи
route get [hostname] Определить интерфейс, используемый для доступа к удаленному хосту
route monitor Мониторинг таблицы маршрутов

Поиск

egrep «patterna|patternb» Поиск нескольких шаблонов в одном файле
find -name «» -exec rm -rf {} \; Рекурсивный поиск файлов по имени и их удаление
find . -type f -print | xargs grep -i [PATTERN] Рекурсивный grep в файле
find . ! -mtime — | /usr/bin/xargs rm -rf Найти и удалить файлы старше
find . -exec egrep -li «str» {} \; Поиск строк в файлах, начинающихся с cwd
find . -mtime -1 -type f Поиск недавно измененных файлов
find . -type f -exec grep «» {} \; -print Искать файлы, содержащие в пределах дерева каталогов
find ./ \! -type f -exec ls -l {} \;|grep -v ‘^[l|p|s|-]’|grep -v ‘total’ | wc -l Посчитать число подкаталогов в каталоге
find / -fstype nfs -prune -o fstype autofs -prune -o -name filename -print Поиск вне файловых систем nfs
find / -mtime <# of days> Найти файлы, модифицированные # дней назад
find / -perm -2 -a ! -type l Найти файлы, доступные на запись ‘others’
find / -type f |xargs ls -s | sort -rn |more Список файлов, занимающих много дискового пространства
find / -user Найти все файлы, принадлежащие
find / | grep [file mask] Быстрый способ найти файл
find /proc/*/fd -links 0 -type f -size +2000 -ls Поиск больших файлов, которые были удалены или перемещены, но остались открыты каким-либо процессом
grep /var/sadm/install/contents| awk ‘{ print $1 ‘ ‘ $10 }’ Найти какому пакету принадлежит файл
ls -lR | grep Быстрая альтернатива find

Безопасность

crypt abc && rm abc.cr Дешифрация файла с помощью crypt
crypt abc.cr && rm abc Шифрация файла с помощью crypt
echo ‘Please go away’ > /etc/nologin Прекратить вход пользователей в систему
find / -perm -0777 -type d -ls Найти все каталоги на запись
find / -type f -perm -2000 -print Найти все SGID файлы
find / -type f -perm -4000 -print Найти все SUID файлы
trap ‘exit 0’ 1 2 3 9 15 Перехват специального сигнала и выход
vi -x [filename] Зашифровать файл с помощью vi

Установки терминала

stty erase ^? Для удаления символа использовать клавишу delete
stty erase ^H Для удаления символа использовать клавишу backspace
stty sane Перезапустить терминал после просмотра бинарного файла
tput rmacs Перезагрузить стандартный набор символов

Snoop —  сниффер, аналог TCPDUMP

snoop -d pcelx0 Просматривать все пакеты на устройстве
snoop -i /tmp/mylog -o /tmp/newlog host1 Все пакеты с host1 записывать в лог
snoop -i /tmp/mylog -v -p101 Показать отладочную информацию по пакету 101 из лога
snoop -i /tmp/mylog host1 host2 Просмотреть лог на предмет пакетов между hosts1 и host2
snoop -o /tmp/mylog pcelx0 Сохранить все пакеты с устройства в лог
snoop -s 120 Отобразить первые 120 байт заголовка пакета
snoop -v arp Захват широковещательных пакетов arp в вашей сети
snoop port [port-number] Монитроинг конкретного порта

Файлы swap

mkfile -nv 10m /export/disk1/myswap Создает пустой 10-и мегабайтный свап-файл в /export/disk1
mkfile -v 10m /export/disk1/myswap Создает файл подкачки на 10 мегабайтов в /export/disk1

Пространство swap

swap -a /export/disk1/swapfile Добавить своп-файл
swap -d /dev/dsk/c0t0d0s4 Удалить свап-устройство
swap -l Вывести список текущих свап-устройств
swap -s Вывод доступного пространства

Конфигурация системы

/usr/sbin/eeprom auto-boot? false Изменить переменную autoboot? таким образом, чтобы система загружалась только после подтверждения
/usr/sbin/eeprom diag-switch? true Провести диагностику во время следующей загрузки
/usr/sbin/eeprom local-mac-address?=true Настройка многопортовой сетевой карты
/usr/sbin/grpck Проверить синтаксис /etc/group
/usr/sbin/pwck Проверить синтаксис /etc/passwd
/usr/sbin/sys-unconfig Очистить сетевую конфигурацию
/usr/sbin/useradd Добавить пользователя
drvconfig ; disks Добавить в систему диск горячей замены

Системная информация и мониторинг

/bin/echo «0t${stamp}>Y\n<> Перевод времени UNIX в удобоваримую форму
/usr/platform/`/bin/uname -i`/sbin/prtdiag -v Диагностика системы
/usr/sbin/eeprom Просмотр параметров eeprom
/usr/sbin/prtconf -vp Детальный просмотр системной конфигурации
coreadm -e log Команда конфигурирования подсистемы работы с core-файлами, в результате использования которой подсистема будет настроена таким образом, что при генерации глобального core-файла будет произведён вызов syslog().
grep «\-root» /var/adm/sulog | grep -v \+ | tail -25 Перечислить все попытки переключения на аккаунт root
isainfo -bv Быстрая проверка режима 32 или 64 bit
last Показать, кто и откуда входил в систему
logger -i
prtconf -pv | grep banner-name |awk -F\’ ‘ { print $2 } ‘ | head -1 Показать модель сервера
prtpicl -v | grep wwn Команда поиска постоянно выделенной памяти (?)
psradm -f [processor id] Отключить процессор (?)
psrinfo | wc -l Показать число процессоров
sar -u Отчет о загрузке CPU
sar [ -aA ] [ -o filename ] t [ n ] Обобщенный отчет об активности системы
telnet 13 | grep ‘:’ Получить время удаленной машины
uname -a Отобразить системную информацию
uname -X Отобразить системную информацию
vmstat 10 Отчет о основных системных параметрах в течении 10 секунд
who -b Причина последней перезагрузки
ypcat hosts | sort -n -t. +0 -1 +1 -2 +2 -3 +3 -4 Взять вывод команд «ypcat hosts» или «cat /etc/inet/hosts» и сортировать по IP

2 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *