Загружаем скрипт через javascript

Понедельник, 02.08.2016 Javascript

Допустим есть у нас некая страница (например админка Bitrix), которая не поддерживает jquery и хотм мы упростить себе жизнь ииз консоли например заполнить значениями какие то поля форм, а разбираться в кривом bitrix JS API нет ни малейшего желания, тогда есть выход

зовем консоль,

и подключаем javascript из консоли

var s=document.createElement(’script’);
s.type=’text/javascript’;
s.src=’//code.jquery.com/jquery-1.12.0.min.js’;
var s0=document.getElementsByTagName(’script’)[0];
s0.parentNode.insertBefore(s,s0);

а потом выпоняем наш JS jquery код

например
$(’option[value=”2516″]’).attr(”selected”,”selected”)

или

$(’option[value=”"]’).removeAttr(”selected”)

и вот оно счастье.

Комманды Linux

Среда, 02.03.2016 *nix

Ниже представлены различные команды системной оболочки Unix подобных операционных систем.

Имейте в виду, это просто сборник, не относящийся к какому-то конкретному дистрибутиву, то есть многие из этих команд, специфичны для какой-то определенной системы и могут отсутствовать в других дистрибутивах Linux.

Большинство из приведенных ниже команд, являются достаточно повседневными, то есть часто используются в процессе
администрирования Unix
систем ( различных дистрибутивов Linux ).

Корректные: выключение, перезагрузка, выход из системы

# init 0
Выключить систему
# logout
Завершить текущую сессию
# reboot
Перезагрузка
# shutdown -h now
Еще один вариант корректного выключения
# shutdown -h 22:15 &
Запланировать выключение системы на 22 часа 15 минут
# shutdown -c
Отменить запланированное выключения системы
# shutdown -r now
Еще один вариант перезагрузки
# telinit 0
Тоже способ выключения системы



]]>

Вверх


]]>

Получение различной информации о системе

# arch
Вывести на экран архитектуру компьютера
# uname -m
Так-же выводит архитектуру компьютера
# cal 2010
Печатает календарь на 2010 год. Без аргументов выводит календарь на текущий месяц
# cat /proc/cpuinfo
Вывести подробную информацию о процессоре
# cat /proc/interrupts
Вывести информацию о прерываниях
# cat /proc/meminfo
Выводит статистику использования памяти
# cat /proc/swaps
Вывести информацию о swap файле(ах) ( файл подкачки )
# cat /proc/version
Вывести информацию о версии текущего ядра
# cat /proc/net/dev
Вывести информацию и статистику по сетевым устройствам
# cat /proc/mounts
Показать смонтированные файловые системы
# clock -w
Записать текущую системную дату в BIOS
# date
Вывести текущую системную дату и время
# date 041217002007.00
Установить дату и время в значение МесяцДеньЧасМинутаГод.Секунда
# dmidecode -q
Вывести в читабельном виде информацию по аппаратному оборудованию системы (SMBIOS / DMI)
# hdparm -i /dev/hda
Вывести характеристики жесткого диска
# hdparm -tT /dev/sda
Измерять скорость чтения данных с жесткого диска
# lspci -tv
Вывести список устройств на шине PCI
# lsusb -tv
Вывести список устройств на USB шине
# uname -r
Вывести версию используемого ядра



]]>

Вверх


]]>

Дисковое пространство

# df -h
Вывод информации о свободном и занятом дисковом пространстве на смонтированных разделах, в формате, удобном для чтения
# dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n
Выводит объем используемого дискового пространства, занятого файлами deb-пакета, с сортировкой по размеру (
ubuntu
,
debian
т.п.)
# du -sh dir
Выводит объем дискового пространства, занимаемый директорией
dir
# du -sk * | sort -rn
Выводит листинг файлов и директорий с размером, сортируя его по размеру
# ls -lSr | more
Выводит листинг файлов и директорий, сортируя по возрастанию размера и перенаправляет его в программу
more
для постраничного просмотра
# rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n
Выводит объем дискового пространства, занимаемого файлами rpm-пакета, с сортировкой по размеру (
fedora
,
redhat
и т.п. )



]]>

Вверх


]]>

Работа с файлами и папками

# pwd
Вывести текущую директорию
# cd /home
Перейти в директорию
/home
# cd ..
Перейти в родительский каталог, то есть подняться на уровень выше
# cd ../..
Подняться в дереве каталогов на два уровня
# cd
Перейти в домашний каталог
# cd ~user
Перейти в домашний каталог пользователя
user
# cd -
Перейти в предыдущую директорию, из которой был сделан переход в текущую директорию
# cp -a test_1 test_2
Копировать директорию
test_1
в директорию
test_2
# cp file_1 file_2
Копировать файл file_1 в файл file_2
# cp -a /tmp/test .
Rопировать директорию
test
и все ее содержимое в текущую директорию
# cp test/* .
Копировать все файлы содержащиеся в директории
test
в текущую директорию
# iconv -l
Выводит список доступных для использования кодировок
# iconv -c -f windows-1251 -t utf-8 inputFile > outputFile
Конвертировать файл из кодировки windows-1251 в кодировку utf-8
# ln -s /path/to/filedir ./link
Создать в текущей директории
символическую
ссылку
link
на директорию или файл
filedir
# ln /path/to/filedir ./link
Создать в текущей директории
жесткую
ссылку
link
на директорию или файл
filedir
# ls
Вывести листинг содержимого текущей директории
# ls -F
Листинг текущей директории с добавлением к именам символов, обозначающих тип объекта
# ls -l
Листинг текущей директории с подробностями по каждому объекту ( права доступа, владелец, группа, дата, размер )
# ls -a
Кроме обычных объектов, вывести в листинге, скрытые файлы и директории, текущего каталога
# ls /tmp | pr -T5 -W$COLUMNS
Листинг директории
/tmp
в 5 колонок
# ls *[0-9]*
Вывести в листинг файлов и директорий текущего каталога, содержащие в имени цифровые символы
# lstree
Листинг иерархии директорий и файлов, начиная с корневого каталога
(/)
# mkdir dir
Создать в текущем каталоге, директорию с именем
dir
# mkdir dir_1 dir_2
Создать в текущем каталоге две директории, с именами
dir_1
и
dir_2
# mkdir -p /path/to/dir
Создать иерархию директорий. Кроме самой директории
dir
будут созданы все промежуточные директории
# mv filedir new_filedir
Переместить ( переименовать ) файл или директорию из
filedir
в
new_filedir
# rm -rf /dir
Рекурсивно удалить директорию
dir
и всё её содержимое, без запроса подтверждения на удаление
# rm -f file
Удалить файл
file
, без запроса подтверждения
# rm -rf /dir_1 /dir_2
Удалить директории
/dir_1
и
/dir_2
вместе с содержимым, без запроса подтверждения
# rmdir /dir
Удалить директорию
/dir
# tree
Вывести иерархию директорий и файлов, начиная с корневой
(/)
# touch -t 0712250000 file1
Изменить дату и время создания файла, если указанный файл не существует, создать его с указанными датой и временем (YYMMDDhhmm)



]]>

Вверх


]]>

Поиск нужного файла

# find / -user vasya
Найти все директории и файлы принадлежащие пользователю
vasya
. Поиск будет производиться, начиная с корневой директории
(/)
# find / -name filedir
Найти директории и файлы с именем
filedir
. Поиск будет производиться, начиная с корневой директории
(/)
# find /usr/bin -type f -atime +20
Найти все файлы в директории
/usr/bin
, время последнего обращения к которым более 20 дней
# find /usr/bin -type f -mtime -10
Найти все файлы в директории
/usr/bin
, которые были созданы или модифицированы в течении последних 10 дней
# find / -xdev -name \*.rpm
Искать директории и файлы, имена которых оканчиваются на ”
.rpm
“, но игнорируя съёмные накопители, cdrom, usb и т.п.
# find . -maxdepth 1 -name *.jpg -print -exec convert
Найти в текущей директории все файлы с расширением jpg и выполнить для каждого команду convert ( Imagemagick )
# find /path/to/dir -name \*.c
Найти все директории и файлы, имена которых оканчиваются на ”

“. Поиск будет производиться, начиная с директории
/path/to/dir
# find / -name *.rpm -exec chmod 755 ‘{}’ \;
Начиная с корня, найти все фалы и директории, имена которых оканчиваются на ”
.rpm
“, и для каждого изменить права доступа
# whereis ls
Вывод полных путей к бинарным файлам, файлом исходных кодов и руководств, имеющих отношение к файлу
ls
# locate \*.ps
Поиск всех файлов, содержащих в имени ”
.ps
” по специальной базе данных, предварительно сформированной командой
updatedb
# which ls
Вывести полный путь до файла
ls



]]>

Вверх


]]>

Монтирование файловых систем

# mount /dev/hda1 /mnt/disk
Монтировать устройство
/dev/hda1
в папку с именем
/mnt/disk
. точка монтирования, папка /mnt/disk, должна существовать
# fuser -km /mnt/hda1
Размонтировать устройство
hda1
если оно заблокировано каким либо процессом
# mount -o loop file.iso /mnt/cdrom
Смонтировать фаил или образ ISO в директорию
/mnt/cdrom
# mount /dev/hdb /mnt/cdrecorder
Монтировать cdrw или dvdrom
# mount -t vfat /dev/hda5 /mnt/hda5
Смонтировать раздел с файловой системой FAT32
# mount /dev/cdrom /mnt/cdrom
Монтировать cdrom или dvdrom
# mount /dev/fd0 /mnt/floppy
Монтировать floppy disk ( дисковод мягких дисков )
# mount /dev/hdc /mnt/cdrecorder
Монтировать cdrw или dvdrom
# mount /dev/sda1 /mnt/usbdisk
Монтировать USB устройство
# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share
Монтировать сетевую файловую систему Windows (SMB/CIFS)
# umount -n /mnt/hda2
Размонтировать без записи в файл
/etc/mtab
, используется в ситуациях, когда файл находится в режиме только чтение или жесткий диск переполнен
# umount /dev/hda2
Размонтировать диск
hda2
, предварительно неоходимо выйти из точки монтирования
/mnt/hda2



]]>

Вверх


]]>

Пользователи и группы

# useradd -c “User Vasya” -g admin -d /home/vasya -s /bin/bash vasya
Создать пользователя vasya, домашним каталогом будет создана директория
/home/vasya
, в качестве системной оболочки будет назначен
/bin/bash
, пользователь будет включен в группу admin, кроме того для учетной записи будет создан комментарий “User Vasya”
# useradd vasya
Создать пользователя vasya
# usermod -c “User FTP” -g system -d /ftp/ftpuser -s /bin/nologin ftpuser
Изменение пользователя
# userdel -r vasya
Удалить пользователя с именем vasya и его домашнюю директорию
# groupadd [ group_name ]
Создать группу с именем
group_name
# chage -E 2005-12-31 vasya
Установить дату окончания действия учётной записи пользователя vasya
# groupdel [ group_name ]
Удалить группу
group_name
# groupmod -n test new_test
Переименовать группу
test
в
new_test
# newgrp - [group]
Изменяет основную группу текущего пользователя. При указании “-”, ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, основная группа будет назначена из файла
/etc/passwd
# grpck
Проверка корректности системных файлов учётных записей. Проверяется файл/etc/group
# pwck
Проверка корректности системных файлов учётных записей. Проверяются файлы
/etc/passwd
и
/etc/shadow
# passwd
Изменить пароль текущего пользователя
# passwd vasya
Изменить пароль пользователя vasya ( может выполнять только root )



]]>

Вверх


]]>

Атрибуты файлов

# chattr +a file
Разрешает только добавление данных в файл
# chattr +d file
Игнорировать данный файл при создании резервной копии с помощью программы
dump
# chattr +c file
Разрешить ядру автоматически сжимать/разжимать содержимое файла
# chattr +i file1
Защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него
# chattr +S file1
Определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync
# chattr +u file1
При удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости
# chattr +s file1
Позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению
# lsattr
Листинг файлов с атрибутами



]]>

Вверх


]]>

Работа с правами доступа файлов и директорий

# chown vasya /file
Назначить пользователя
vasya
владельцем файла
file
# chown -R vasya directory
Рекурсивно обойти директорию
directory
и назначить пользователя
vasya
владельцем всех вложенных файлов и директорий
# chown vasya:group /file
Назначить владельца и группу для файла
/file
# chmod ugo+rwx /directory
Установить полные права доступа
rwx ( Read Write eXecute )
для всех
ugo ( User Group Other )
на директорию
/directory
. То-же самое можно сделать, используя числовой представление
chmod 777 directory
# chmod go-rwx /directory
Удалить все права на директорию
/directory
для
группы
и
остальных
# chgrp new_group file
Изменить группу-владельца для
file
на
new_group
# chmod o+t /home/public
Установить так называемый
STIKY
-бит на директорию
/home/public
. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/public
Удалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_file
Установить SUID-бит на файл
/bin/binary_file
. Это позволяет любому пользователю системы, запускать данный файл с правами
владельца файла
# chmod u-s /bin/binary_file
Удалить SUID-бит с файла
/bin/binary_file
# chmod g+s /home/public
Установить SGID-бит на директории /home/public
# chmod g-s /home/public
Удалить SGID-бит с директории /home/public
# find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lh
Листинг текущего каталога с правами доступа



]]>

Вверх


]]>

Архивация и сжатие файлов

# gzip -9 file1
Поместить файл
file1
в архив
gzip
с максимальной степенью сжатия
# rar a file1.rar file1 file2 dir1
Создать rar архив
file1.rar
, заархивировав файлы:
file1
,
file2
и директорию:
dir1
# rar a file1.rar test_file
Упаковать в rar архив
file1.rar
файл
test_file
# rar x file.rar
Разархивировать rar архив
file.rar
# bzip2 file1
Сжимает файл
file1
# bunzip2 file1.bz2
Разжимает файл
file1.bz2
# gzip file1
Сжимает файл
file1
# gunzip file1.gz
Разжимает файл
file1.gz
# tar -cvf archive.tar file1 file2 dir1
Создать tar архив
archive.tar
, упаковав в него файлы
file1
,
file2
и директорию
dir1
# tar -cvf archive.tar file
Упаковать в
tar
-архив
archive.tar
, файл
file
# tar -tf archive.tar
Вывести содержимое
tar
архива
# tar -xvf archive.tar
Распаковать
tar
архив
# tar -xvf archive.tar -C /tmp
Распаковать архив в
/tmp
# tar -cvfz archive.tar.gz dir1
Создать
tar
архив и сжать его с помощью программы
gzip
# tar -xvfz archive.tar.gz
Разжать
tar
архив и распаковать его
# tar -cvfj archive.tar.bz2 dir1
Создать архив и сжать его с помощью
bzip2
( ключ
-j
работает не во всех
*nix
системах )
# tar -xvfj archive.tar.bz2
Разжать архив и распаковать его ( ключ
-j
работает не во всех
*nix
системах )
# zip file1.zip file1
Создать сжатый zip-архив
# zip -r file1.zip file1 file2 dir1
Запаковать в архив несколько файлов и/или директорий
# unzip file1.zip
Разжать и распаковать zip-архив
# unrar x file1.rar
Распаковать rar-архив



]]>

Вверх


]]>

Работа с RPM пакетами ( Fedora, Red Hat и им подобные дистрибутивы )

# rpm -e [ package ]
Удалить пакет
package
# rpm -qa | grep httpd
Вывести список установленных в системе пакетов и отобрать, содержащие в своем имени
httpd
# rpm -qa
Вывести список всех установленных в системе пакетов
# rpm -qi [ package ]
Вывести информацию о пакете
package
# rpm -ivh [package.rpm]
Установить пакет с выводом сообщений и прогресс-бара
# rpm -U [package.rpm]
Обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен
# rpm -ivh –nodeeps [package.rpm]
Установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей
# rpm -F [package.rpm]
Обновить пакет только если он установлен
# rpm -q [package] –whatprovides
Список предоставляемой функциональности
# rpm -q [package] –changelog
Вывести историю ревизий пакета
# rpm -q [package] –scripts
Отобразит скрипты, запускаемые при установке/удалении пакета
# rpm -qf /etc/httpd/conf/httpd.conf
Проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла
# rpm -qg “System Environment/Daemons”
Отобразить пакеты входящие в группу пакетов ( fedora, redhat )
# rpm -qc [package]
Вывести список конфигурационных файлов, входящих в пакет
# rpm -ql [package]
Вывести список файлов, входящих в пакет
# rpm -q [package] –whatrequires
Вывести список пакетов, необходимых для установки конкретного пакета по зависимостям
# rpm -qp [package.rpm] -l
Отображает список файлов, входящих в пакет, но ещё не установленных в систему
# rpm -Va
Проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!
# rpm -ivh /usr/src/redhat/RPMS/`arch`/[package.rpm]
Установить пакет, собранный из исходных кодов
# rpm -Vp [package.rpm]
Проверить пакет, который ещё не установлен в систему
# rpm2cpio [package.rpm] | cpio –extract –make-directories *bin*
Извлечь из пакета файлы содержащие в своём имени
bin
# rpm –import /media/cdrom/RPM-GPG-KEY
Импортировать публичный ключ цифровой подписи
# rpm –checksig [package.rpm]
Проверит подпись пакета
# rpm -qa gpg-pubkey
Проверить целостность установленного содержимого пакета
# rpm -V [package]
Проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменения пакета
# rpmbuild –rebuild [package.src.rpm]
Собрать пакет из исходных кодов



]]>

Вверх


]]>

Средство управления пакетами - YUM ( Fedora, RedHat и т.д. )

# yum list
Вывести листинг пакетов, установленных в системе
# yum clean headers
Удалить все заголовки файлов, которые система использует для разрешения зависимостей
# yum clean [package]
Очистить rpm-кэш, удалив закачанные пакеты
# yum search [package]
Найти пакет в репозитории
# yum clean all
Очистить rpm-кэш, удалив закачанные пакеты и заголовки
# yum -y install [ package ]
Скачать и установить пакет
# yum update [package]
обновить пакет
# yum -y update
Обновить все пакеты, установленные в систему
# yum localinstall [ package.rpm ]
Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории
# yum remove [package]
Удалить пакет



]]>

Вверх


]]>

Средства управления DEB пакетами ( Debian, Ubuntu и т.д. )

# dpkg -l
Список пакетов, установленных в системе
# dpkg -r [package]
Удалить пакет из системы
# dpkg -i [package.deb]
Установить / обновить пакет
# dpkg -l | grep httpd
Вывести список установленных в системе пакетов, отобрав, содержащие в своем названии
httpd
# dpkg -s [package]
Вывести информацию о конкретном пакете
# dpkg –contents [package.deb]
Вывести список файлов, входящих в пакет, который ешё не установлен в систему
# dpkg -L [package]
Вывести список файлов, входящих в пакет, установленный в систему
# dpkg -S /bin/ping
В какой пакет входит указанный файл.



]]>

Вверх


]]>

Система управления пакетами Pacman ( Arch, Frugalware and alike )

# pacman -S name
Установить пакет
name
со всеми зависимостями
# pacman -R name
Удалить пакет и все его файлы



]]>

Вверх


]]>

Средство управление пакетами - APT ( Debian, Ubuntu и т.д. )

# apt-cache search [ package ]
Вывести список пакетов, чье имя совпадает со строкой
package
# apt-get check
Проверить зависимости
# apt-cdrom install [ package ]
Установить / обновить пакет с cdrom’а
# apt-get install [ package ]
Установить / обновить пакет
# apt-get upgrade
Обновить установленные в систему пакеты
# apt-get remove [ package ]
Удалить установленный пакет из системы, сохранив файлы конфигурации
# apt-get update
Обновить списки пакетов репозитария
# apt-get clean
Удалить загруженные архивные файлы пакетов



]]>

Вверх


]]>

Анализ файловой системы

# badblocks -v /dev/hda1
Проверить раздел
hda1
на наличие
bad
-блоков
# fsck /dev/hda1
Проверить и при необходимости попробовать восстановить целостность
linux
-файловой системы раздела
hda1
# fsck.ext2 /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы ext2 раздела
hda1
# fsck.msdos /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы
fat
раздела
hda1
# fsck.vfat /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы
fat
раздела
hda1
# fsck.ext3 /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы
ext3
раздела
hda1
# dosfsck /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы
fat
, раздела
hda1
# e2fsck /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы
ext2
раздела
hda1
# e2fsck -j /dev/hda1
Проверить и при необходимости попробовать восстановить целостность файловой системы
ext3
раздела
hda1
, журнал файловой системы расположен там же



]]>

Вверх


]]>

Просмотр содержимого файлов

# cat file1
Вывести все содержимое файла начиная с первой строки
# head -2 file1
Отобразить две первые строки файла
# tac file1
Отобразить содержимое файла начиная с последней строки
# tail -f /var/log/messages
В реальном времени выводить все, что добавляется в файл
# tail -2 file1
Вывести две последние строки файла
# more file1
Отобразить содержимое файла постранично
# less file1
Аналогична команде
more
но позволяет перемещаться по содержимому вперед и назад



]]>

Вверх


]]>

Манипуляции с текстом

# cat -n file1
Вывести содержимое файла, нумеруя выводимые строки
# cat example.txt | awk ‘NR%2==1′
Вывести только не четные строки файла
# echo a b c | awk ‘{print $1,$3}’
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
# echo a b c | awk ‘{print $1}’
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
# comm -3 file1 file2
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
# comm -1 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу
file1
# comm -2 file1 file2
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу
file2
# grep [0-9] /var/log/messages
Отобрать и вывести строки содержащие цифровые символы из файла
/var/log/messages
# grep ^Aug /var/log/messages
Отобрать и вывести строки, начинающиеся с сочетания символов
“Aug”
, из файла
/var/log/messages
# grep Aug /var/log/messages
Отобрать и вывести строки, содержащие сочетание символов
“Aug”
из файла
/var/log/messages
# grep Aug -R /var/log/*
Отобрать и вывести строки, содержащие сочетание символов
“Aug”
, из всех файлов, расположенных в директории
/var/log
и ниже
# paste -d ‘+’ file1 file2
Объединить содержимое
file1
и
file2
в виде таблицы с разделителем “+”
# paste file1 file2
Объединить содержимое
file1
и
file2
в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
# sdiff file1 file2
Сравнить содержимое двух файлов
# sed ’s/string1/string2/g’ example.txt
Заменить
string1
на
string2
в файле
example.txt
и вывести содержимое
# sed ‘/ *#/d; /^$/d’ example.txt
Удалить пустые строки и комментарии из файла
example.txt
# sed ‘/^$/d’ example.txt
Удалить пустые строки и комментарии из файла
example.txt
# sed -e ‘1d’ exampe.txt
Удалить первую строку из файла
example.txt
# sed -n ‘/string1/p’
Отобразить только строки содержащие
string1
# sed -e ’s/string//g’ example.txt
Удалить строку
string1
из текста файла
example.txt
не изменяя всего остального
# sed -e ’s/ *$//’ example.txt
Удалить пустые символы в конце каждой строки файла
example.txt
# sed -n ‘5p;5q’ example.txt
Вывести пятую строку
# sed -n ‘2,5p’ example.txt
Вывести строки со второй по пятую
# sed -e ’s/00*/0/g’ example.txt
Заменить последовательность из любого количества нулей одним нулём
# sort file1 file2
Вывести отсортированное содержимое двух файлов
# sort file1 file2 | uniq
Вывести отсортированное содержимое двух файлов исключая повторные значения
# sort file1 file2 | uniq -u
Вывести уникальные значения из отсортированного содержимого двух файлов
# sort file1 file2 | uniq -d
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
# echo ‘word’ | tr ‘[:lower:]’ ‘[:upper:]’
Перевести символы нижнего регистра в верхний



]]>

Вверх


]]>

Конвертирование соодержимого текстовых файлов

# dos2unix filedos.txt fileunix.txt
Конвертировать содержимое текстового файла из
MSDOS
кодировки в
UNIX
кодировку (разница в символах возврата коретки)
# unix2dos fileunix.txt filedos.txt
Конвертировать содержимое текстового файла из
UNIX
кодировки в
MSDOS
кодировку (разница в символах возврата коретки)
# recode ..HTML < page.txt > page.html
Конвертировать содержимое тестового файла
page.txt
в
html
-файл
page.html
# recode -l | more
Вывести список доступных форматов



]]>

Вверх


]]>

Файловая система SWAP ( файл подкачки )

# mkswap /dev/hda3
Создание swap-пространство на разделе
hda3
# swapon /dev/hda3
Включить swap-пространство, расположенное на разделе
hda3
# swapon /dev/hda2 /dev/hdb3
Активировать swap-пространства, расположенные на разделах
hda2
и
hdb3



]]>

Вверх


]]>

Форматирование файловой системы

# fdformat -n /dev/fd0
Форматирование флоппи-диска без проверки
# mkfs /dev/hda1
Создать файловую систему
linux
на разделе
hda1
# mke2fs -j /dev/hda1
Создать журналируемую файловую систему
ext3
на разделе
hda1
# mke2fs /dev/hda1
Создание файловой системы
ext2
на разделе
hda1
# mkfs -t vfat 32 -F /dev/hda1
Создать файловую систему
FAT32
на разделе
hda1



]]>

Вверх


]]>

Резервное копирование ( Backup )

# find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2
Поиск всех файлов, заканчивающихся на
“.log”
в директории
/var/log
, и упаковка их в
bzip
-архив
# find /home/user -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents
Поиск в директории
/home/user
файлов, имена которых оканчиваются на
“.txt”
, и копирование их в другую директорию
# rsync -rogpav –delete /home /tmp
Синхронизировать директории
/tmp
и
/home
# rsync -az -e ssh –delete ip_addr:/home/public /home/local
Синхронизировать локальную и удаленную директории через
ssh
туннель используя сжатие
# rsync -rogpav -e ssh –delete /home ip_address:/tmp
Синхронизация через
SSH
туннель
# rsync -az -e ssh –delete /home/local ip_addr:/home/public
Синхронизировать удалённую директорию с локальной используя
ssh
туннель со сжатием
# dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’
Создать “слепок” локального диска в файл на удалённом сервере используя
ssh
туннель
# dd if=/dev/hda of=/dev/fd0 bs=512 count=1
Создание копии
MBR ( Master Boot Record )
с
/dev/hda
на флоппи-диск
# dd if=/dev/sda of=/tmp/backup
Создание резервной копии содержимого жесткого диска в файл
backup
# dd if=/dev/fd0 of=/dev/hda bs=512 count=1
Восстановить
MBR
с флоппи-диска на
/dev/hda
# dump -0aj -f /tmp/home0.bak /home
Создать полную резервную копию директории
/home
в файл
/tmp/home0.bak
# dump -1aj -f /tmp/home0.bak /home
Создать инкрементную резервную копию директории
/home
в файл
/tmp/home0.bak
# restore -if /tmp/home0.bak
Восстановить данные из резервной копии
/tmp/home0.bak
# tar -Puf backup.tar /home/user
Создать инкрементную резервную копию директории
/home/user
в файл
backup.tar
сохраняя права доступа
# ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’
Упаковка в архив и копирование содержимого
/tmp/local
в директорию
/home/share/
удалённого сервера, используя
ssh
туннель
# ( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’
Упаковка в архив и копирование содержимого
/home
в директорию
/home/backup-home
удалённого сервера, используя
ssh
туннель
# tar cf - . | (cd /tmp/backup ; tar xf - )
Упаковка в архив и копирование одной директории в другую с сохранением прав доступа и ссылок



]]>

Вверх


]]>

CDROM

# cd-paranoia -B
Перенести аудио-треки с компакт-диска в wav-файлы.
# cd-paranoia –
Перенести три аудио-трека с компакт-диска в wav-файлы.
# cdrecord -v dev=/dev/cdrom cd.iso
Записать ISO-образ на компакт-диск.
# gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -
Записать сжатый ISO-образ на компакт-диск.
# mkisofs /dev/cdrom > cd.iso
Создать ISO-образ компакт-диска.
# mkisofs -J -allow-leading-dots -R -V
Создать ISO-образ из содержимого директории.
# mkisofs /dev/cdrom | gzip > cd_iso.gz
Создать сжатый ISO-образ компакт-диска.
# mount -o loop cd.iso /mnt/iso
Смонтировать ISO-образ компакт-диска в файловую систему.
# cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force
Очистить перезаписываемый компакт-диск.
# cdrecord –scanbus
Сканировать системную шину для поиска идентификаторов SCSI каналов.
# dd if=/dev/hdc | md5sum
Вычислить контрольную сумму
MD5
для устройства, например, компакт-диска.



]]>

Вверх


]]>

Сети (LAN / WiFi)

# dhclient eth0
Включить
DHCP
на сетевом интерфейсе
eth0
# ethtool eth0
Вывод статистики по сетевому интерфейсу
eth0
# hostname
Вывести имя компьютера
# host www.example.com
Преобразовать домен
www.example.org
в
ip
-адрес и наоборот
# ifconfig eth0
Вывести настройки сетевой карты
eth0
# ifconfig eth0 promisc
Переключить интерфейс
eth0
в promiscuous-режим для сбора ( сниффинг ) сетевых пакетов
# ifup eth0
Включить сетевой интерфейс
eth0
# ifdown eth0
Отключить сетевой интерфейс
eth0
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
Назначить IP адрес и маску сетевому интерфейсу
eth0
# ip link show
Вывести статус связи всех сетевых интерфейсов
# iwconfig eth1
Вывести конфигурацию беспроводного сетевого интерфейса
eth1
# iwlist scan
Сканирование и поиск беспроводных сетей и точек доступа
# mii-tool eth0
Вывести состояние связи сетевого интерфейса
eth0
# nslookup www.example.com
Ресольвить ( преобразовать/разрешить ) доменное имя
www.example.org
в ip-адрес и наоборот
# route -n
Песать локальной таблицы маршрутизации
# route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
Добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1
# route add -net 0/0 gw IP_Gateway
Назначить ip-адрес шлюза по умолчанию
( default gateway )
# route del 0/0 gw IP_gateway
Удалить ip-адрес шлюза по умолчанию
( default gateway )
# netstat -tup
Выводит листинг всех установленных соединений по протоколам
TCP
и
UDP
без разрешения имён в ip-адреса а так-же
PID
‘ы и имена процессов, обслуживающих данные соединения
# netstat -tupl
Вывод списка соединений по протоколам
TCP
и
UDP
без разрешения имён в ip-адреса а так-же и
PID
‘ы и имена процессов, ожидающих соединений на сетевых портах
# netstat -rn
Вывести таблицу маршрутизации, аналог команды
route -n
# echo “1″ > /proc/sys/net/ipv4/ip_forward
Разрешить форвардинг ( пересылку ) пакетов
# tcpdump tcp port 80
Отлавливать и выводить весь трафик на TCP-порт 80 (обычно - HTTP)
# whois www.example.com
Вывести информацию о доменном имени из базы данных
whois



]]>

Вверх


]]>

Microsoft Windows networks (samba)

# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share
Монтировать smb-ресурс, расшаренный на windows-машине, в папку локальной файловой системы
# nbtscan ip_addr
Преобразовать имя
netbios
. Программа nbtscan не во всех системах присутствует по-умолчанию, nmblookup включен в пакет samba
# nmblookup -A ip_addr
Преобразовать имя
netbios
. Программа nbtscan не во всех системах присутствует по-умолчанию, nmblookup включен в пакет samba
# smbclient -L ip_addr/hostname
Вывести список ресурсов, выделенных в общий доступ на windows-машине
# smbget -Rr smb://ip_addr/share
Аналог программы wget для SMB протокола



]]>

Вверх


]]>

Фаервол IPTABLES, штатный, для большинства дистрибутивов Linux

# iptables -t filter -L
Вывести список всец цепочек правил
# iptables -t nat -L
Вывести все цепочки из
NAT
таблицы
# iptables -t nat -F
Очистить все цепочки правил в таблице
NAT
# iptables -t filter -X
Очистить все пользовательские цепочки правил в таблице
filter
# iptables -t filter -F
Очистить все цепочки правил в таблице
filter
# iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT
Разрешить входящие соединения с
telnet
# iptables -t filter -A OUTPUT -p tcp –dport http -j DROP
Запретить исходящие
HTTP
соединения
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
# iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22
Пересылка пакетов, адресованных одному хосту, на другой хост
# iptables -t filter -A INPUT -j LOG –log-prefix
Включить логгирование пакетов, проходящих через цепочку
INPUT
, и добавлением к сообщению префикса
“DROP INPUT”
# iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT
Разрешить форвардинг
POP3
соединений



]]>

Вверх


]]>

Мониторинг и отладка системы

# free -m
Вывод статистики по оперативной памяти
# kill -9 proc_id
Убить процесс с PID
proc_id
, без соблюдения целостности данных, то есть насмерть
# kill -1 proc_id
Перечитать файл конфигурации процессом с PID
proc_id
# last reboot
Вывод истории ребутов системы
# lsof /home/user1
Вывести список открытых файлов из директории
/home/user1
# lsof -p proc_id
Вывести список файлов, открытых процессом с PID
proc_id
# lsmod
Список загруженных модулей ядра
# ps -e -o pid,args –forest
Вывести список PID’ов и процессов в виде дерева
# ps -eafw
Отобразить работающие в системе процессы, используемые ими ресурсы и другую полезную информацию ( единожды )
# pstree
Вывести дерево процессов
# smartctl -i /dev/hda
Проверить доступность
SMART
на жёстком диске
/dev/hda
# smartctl -A /dev/hda
Проверка состояния жёсткого диска
/dev/hda
через
SMART
# strace -c ls >/dev/null
Вывести список системных вызовов, созданных и полученных процессом ls
# strace -f -e open ls >/dev/null
Вывести список вызовов системных бибилотек
# tail /var/log/messages
Вывести десять последних записей из системного журнала
# tail /var/log/dmesg
Вывести десять последних записей из журнала загрузки ядра
# top
Вывести список работающих в системе процессов с различной полезной информацией в режиме реального времени с автоматическим обновлением данных
# watch -n1 ‘cat /proc/interrupts’
Выводить прерывания в режиме реального времени



]]>

TOP


]]>

Другие полезные команды

# alias hh=’history’
Создать псевдоним
hh
для команды
history
# apropos …keyword
Вывод комманд, так или иначе относящихся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
# chsh
Изменить системную оболочку пользователя
# gpg -c file1
Шифрует файл file1 с помощью GNU Privacy Guard
# gpg file1.gpg
Дешифрует файл file1 с помощью GNU Privacy Guard
# ldd /usr/bin/ssh
Список библиотек, используемых программой
ssh
# man ping
Ввывод страниц руководства по работе с программой, в данном случае,
ping
# mkbootdisk –device /dev/fd0 `uname -r`
Создаёт загрузочный флоппи-диск
# wget -r www.example.com
Рекурсивно загружает содержимое сайта
www.example.com
# wget -c www.example.com/file.iso
Загрузить файл
www.example.com/file.iso
с возможностью остановки и докачки
# echo ‘wget -c www.example.com/files.iso’ | at 09:00
Включить закачку в определенное время
# whatis …keyword
Вывести описание действий указанной программы
# who -a
Вывести список залогиненных пользователей, время последней загрузки системы и прочую полезную информацию



]]>

Вверх


]]>



]]>

оригинал документа


]]>

Перерасчет Пропан литры в кубометры

Понедельник, 02.09.2015 Строительство

Кислород (1 баллон – 6 м3)
1 баллон кислорода – 40 л (0,04 м3) под давлением 15 МПа (150 кгс/см2) – 6 м3;
1 м3 кислорода весит 1,43 кг
Масса баллона без газа 67 кг + 1,43 х 6 = 76кг
Размер баллона: высота – 1390 мм, наружный диаметр – 219 мм, толщина стенки – 7 мм
За 1 час сжигается 50 литров кислорода.
(справочник инженера–сантехника Я.И.Беркман, М.Л.Косой, Будівельник 1987г. Стр. 247,248)

Ацетилен (1 баллон – 4,5 м3)
1 баллон ацетилена – 40л под давлением 1,9 МПа (19 кгс/см2) – 4,5 м3 (5,2кг)
1 м3 ацетилена весит 1,16 кг
На сгорание 1 м3 ацетилена расходуется 2,14 кг кислорода.
(справочник инженера–сантехника Я.И.Беркман, М.Л.Косой, Будівельник 1987г. Стр. 247)
Из 1кг карбида 0,260 м3 ацетилена.
Для получения 1 м3 ацетилена надо от 3,9 кг карбида.

Пропан-бутан (1 баллон – 9,5 м3)
1 баллон пропан-бутана – 40 л (21кг) под давлением 1,6-1,7 МПа (16-17 кгс/см2) – 9,5 м3

Пропан (С3Н8) = 12 х 3 + 1 х 8 = 44 а.е.м (атомная единица массы)

Бутан (С4Н10) = 12 х 4 + 1 х 10 = 58 а.е.м (атомная единица массы)

Смесь пропан-бутан состоит из 60% пропана и 40% бутана.
М (смеси) = М(С3Н8) х 0,6 + М(С4Н10) = 44 х 0,6 + 58 х 0,4 = 26,4 + 23,2 = 49,6 а.е.м.
М(смеси) = 49,6 г/моль
М(1 моль) = 49,6 г
V (1 моль) = 22,4 л

При весе 21 кг = 21000г : 49,6 г/моль = 423,4 моль

1 моль —— 22.4 л
423,4 моль ——— Х

Х = 423,4 х 22,4 = 9484 л = 9,5 м3

А так же см. «Ценообразование в стр-ве» №10–2003, стр.46, №4–2005, стр 12, №5–2003, стр.114

взято с форума Обсуждение КП «ІВК» и ПК АВК-3

Отличия между системами хранения данных MyISAM и InnoDB простым языком.

Понедельник, 10.13.2014 MySQL

Отличия между системами хранения данных MyISAM и InnoDB простым языком.



В данной таблице я попробовал показать разницу между MyISAM и InnoDB на простых примерах:

Описание MyISAM InnoDB
Транзакционный движек?

Транзакция (Transaction) – блок операторов SQL , который в случае ошибки в одном запросе, возвращается к предыдущему состоянию (Rollback), и только в случае выполнения всех запросов подтверждается (Commit)

Нет Да
Поддержка внешних ключей

Внешние ключи – это способ связать записи в двух таблицах по определенным полям так, что при обновлении поля в родительской автоматически происходит определенное изменение поля в дочерней (дочернюю и родительскую выбираешь при создании ключа; точнее, создаешь ключ в дочерней, который ссылается на родительскую).

Нет Да
Блокировка.

Блокировка на уровне строк, т.е. если процессу нужно обновить строку в таблице, то он блокирует только эту строку, позволяя другим обновлять другие строки параллельно

Блокировка на уровне таблиц Блокировка на уровне строк
Одновременные запросы к разным частям таблицы. Медленнее Быстрее
При смешанной нагрузке в таблице (select/update/delete/insert) Медленнее Быстрее
Операция Insert Быстрее Медленнее, ибо есть оверхед на транзакцию, но это цена надежности
Если преобладают операции чтения (SELECT) Работает быстрее Работает медленнее
Deadlock

Deadlock — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами.

Не возникают Возможны.
Поддержка полнотекстового поиска Да Нет
Запрос Count(*) Быстрее Медленнее
Поддержка mysqlhotcopy

Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или scp для быстрого получения резервной копии базы данных.

Да Нет
Файловое хранение таблиц Каждой таблице отдельный файл Данные при настройках по умолчанию хранятся в больших совместно используемых файлах
Бинарное копировании таблиц?

Табличные файлы можно перемещать между компьютерами разных архитектур и разными операционными системами без всякого преобразования.

Да Нет
Размер таблиц в БД Меньше Больше
Поведение в случае сбоя Крашится вся таблица По логам можно все восстановить
В случае хранения «логов» и подобного Лучше Хуже

Выводы:

  • Использовать MyISAM лучше в таблицах, которых преобладает один вид доступа: чтение (новостной сайт) или запись (например, логирование) ;
  • Использование InnoDB имеет смысл во всех остальных случаях и случаях повышенных требований по сохранности данных.

Что можно еще добавить? Что не понятно?

Предполагается наличие идентификатора, строки или числа

Четверг, 04.10.2014 Javascript

Случаи возникновения ошибки в IE: “Предполагается наличие идентификатора, строки или числа” (Expected identifier, string…)

Случаи возникновения ошибки в IE: "Предполагается наличие идентификатора, строки или числа" (Expected identifier, string...)
Разбираемся отчего может возникать ошибка только в Internet Explorer:  ”Предполагается наличие идентификатора, строки или числа” (Expected identifier, string or number).

Рассмотрим код в котором возникает ошибка. Причём ошибка только в браузере IE (у меня IE8), в остальных браузерах с этим нормально.

Неправильно:

        ...
delete : function() {   // delete в кавычках, чтобы работало в IE!
        if(confirm('Совсем-совсем удалить эту запись?')) {
...
        delEvent(calEvent); // удаляем из БД при редактировании
        $dialogContent.dialog("close");  
        }
},
cancel : function() {
$dialogContent.dialog(”close”);
},
        // <– здесь не должно быть запятой
}
	        }).show();
      

Это первый случай ошибки, который много где уже описан. Когда заканчивается перечисление переменных, то после последнего элемента не нужно ставить запятую. Internet Explorer считает это ошибкой и вообще не будет выполнять весь код, не откроет сайт (календарь FullCalendar в моём случае).

Но даже удалив запятую, ошибка не исчезнет. Именно этот случай у меня и возник (запятую ткнул для общности решения проблемы). При просмотре текста ошибки:


Error: Предполагается наличие идентификатора, строки или числа ( Expected identifier, string or number” )

Оказывается в браузере Internet Explorer слово
delete
- зарезервированное слово и просто так вводить переменную delete нельзя. Решение проблемы: заключить в одинарные кавычки, вот так - ‘delete’.

Правильный код, который будет работать в IE:

...
'delete' : function() {   // delete в кавычках, чтобы работало в IE!
               if(confirm('Совсем-совсем удалить эту запись?')) {
...
                  delEvent(calEvent); // удаляем из БД при редактировании
                  $dialogContent.dialog("close");
                  }
},
cancel : function() {
$dialogContent.dialog("close");
}
}
       }).show();

Вот что сказал stackoverflow по поводу - 
Possible cases for Javascript error: “Expected identifier, string or number”

stackoverflow.com - это очень толковый и крупный ресурс, лично я решил с его помощью около 70-80% всех своих косяков, хотя сначала не верил в его силу; только придётся перевести проблему и сформулировать на английском.

———————-

Using the word class as a key in a Javascript dictionary can also trigger the dreaded “Expected identifier, string or number” error because class is a reserved keyword in Internet Explorer.

BAD

{ class : 'overlay'} // ERROR: Expected identifier, string or number

GOOD

{'class': 'overlay'}

When using a reserved keyword as a key in a Javascript dictionary, enclose the key in quotes.

Hope this hint saves you a day of debugging hell.

————————

А
здесь
можно видеть список зарезервированных слов, чтобы уже не натыкаться (как видим save и close сюда не входят, поэтому их можем не брать в кавычки).

 


Список зарезервированных переменных для JavaScript, избегайте называть переменные зарезервированными словами!

abstract   else   instanceof   super  
boolean   enum   int   switch  
break   export   interface   synchronized  
byte   extends   let   this  
case   false   long   throw  
catch   final   native   throws  
char   finally   new   transient  
class   float   null   true  
const   for   package   try  
continue   function   private   typeof  
debugger   goto   protected   var  
default   if   public   void  
delete   implements   return   volatile  
do   import   short   while  
double   in   static   with  

 

Туда

Пятница, 03.21.2014 Музыка

Закатилася моя звезда сомнений нет
Я сиду при свете фонарей и в окна свет
Эхом слабым где то носятся остатки дней
На губах моих саднят следы чужих ночей

Туда, где умирает мечта зовешь с собой
Туда, где затихает тоска найдешь покой

Время замирает, потом рвет вперед
Застывают в небе облака, искрится лед
Я дыханием своим топлю твою боль
Только тает эта злая боль вместе с тобой

Туда, где умирает мечта зовешь с собой
Туда, где затихает тоска найдешь покой

В белый мрамор обратилась ты вся и только взгляд
Ты прощаешься со мной и я наверно рад
Ты закрываешь последнюю дверь, Но только верь
Что я найду тебя когда устану от потерь

Туда, где умирает мечта зовешь с собой
Туда, где затихает тоска найдешь покой

Вложенные запросы для 1 таблицы mySQL

Понедельник, 06.03.2013 MySQL

Вот такакя полезная конструкция для работы с MySQL

Заполняем поле base_id у родительских товаров, выбирая его из дочернего товара ( в данном случае base_id берется из дочки в порядке сортировки дочерних строк )

UPDATE jos_vm_product as a LEFT JOIN

(SELECT
p.product_id as p_id,
pp.product_id as pp_id,
pp.base_id
FROM
jos_vm_product as p
LEFT JOIN jos_vm_product as pp ON pp.product_parent_id = p.product_id
WHERE p.product_parent_id = 0
AND p.product_publish = ‘Y’
) as b

ON a.product_id=b.p_id

SET a.base_id=b.base_id

WHERE a.product_parent_id = 0
AND a.product_publish = ‘Y’

Поиск позиции в EXCEL

Понедельник, 05.13.2013 excel

поиск позиции в EXCEL

Необходимо определить регион поставки по артикулу товара, набранному в ячейку C16.

Задача решается при помощи двух функций:

=ИНДЕКС(A1:G13;ПОИСКПОЗ(C16;D1:D13;0);2)

Функция ПОИСКПОЗ ищет в столбце D1:D13 значение артикула из ячейки C16. Последний аргумент функции 0 - означает поиск точного (а не приблизительного) соответствия. Функция выдает порядковый номер найденного значения в диапазоне, т.е. фактически номер строки, где найден требуемыый артикул.

Функция ИНДЕКС выбирает из диапазона A1:G13 значение, находящееся на пересечении заданной строки (номер строки с артикулом выдает функция ПОИСКПОЗ) и столбца (нам нужен регион, т.е. второй столбец).

Ройзман.

Среда, 11.28.2012 Стихи, Политика

Для понимания личности Е. Ройзмана можно послушать (не обязательно смотреть) одну из его лекций.

metallica

Вторник, 01.31.2012 Без рубрики

http://www.youtube.com/watch?v=3oFgF5We1f4&feature=watch_response

 


11