Полезные команды 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 комментария
Как узнать MAC адрес компьютера? | Жизнь ИТшника
Основные команды Windows | Жизнь ИТшника