редактор vi , nano

перейти в режим вставки — A
режим команд — Esc и Shift + :
Команды:
:w — Запись
:q — Выйти
:q! — выйти без сохранения
:s/строка — поиск
:s/строка/новая строка — замена
:30 — перейти к 30-й строке
:u — Undo
Ctrl + R — Redo

Nano

Select: ALT + M + A
Select line: CTRL + 6
Copy: ALT + 6
Paste: CTRL + U

  • Alt-U or Option-U — undo
  • Alt-E or Option-E — redo

 

ssh добавление публичного ключа


// генерим публичный ключ. passphrase оставляем пустым. 
ssh-keygen
// копируем на удаленный сервер в файл authorized_keys
cat  .ssh/id_rsa.pub | ssh user@dev10.ru " cat >> ~/.ssh/authorized_keys "
// удалить старый ключ
ssh-keygen -R 192.168.1.123

linux полезные команды


// перенос с удаленного сервера на локальный (pull) recursive, verbose, compress, human readable, archive mode, progress
// В rsync слеш на конце имеет значение - будет выгружено содержимое директории.
rsync -vrzhaP man@site.ru:www/sitedir/site.ru site.local
// тоже самое scp
scp user@site.ru:www/sitedir/site.ru site.local
// скачать пропуская существующие файлы, и исключить директорию upload, cache
rsync --ignore-existing --exclude "upload" --exclude "cache"
// если нет ssh, есть ftp. Закачать с локального на удаленный (ключ -R)
lftp -e 'mirror -R local/ /home/user/remote/ ' -u user,PassWorD dev10.ru
// скачать с удаленного на локальный
lftp -e 'mirror  remote/ local/ ' -u user,PassWorD dev10.ru
//  скачать/закачать исключая некоторые директории, а также пропуская уже существующие
mirror --only-newer --exclude "upload/" --exclude "bitrix/cache/"
// монтировать фтп сервер как локальный для манипуляции с файлами
curlftpfs ftp.server.ru /mnt/ftp/ -o user=username:password

// поиск в файле 
grep 'string' path/to/file/file.txt 
// поиск в директории 
grep -r 'string' dir 
//поиск с подсчетом строк 
grep -oni 'string' file.txt | wc -l 
// копирование, перемещение 
cp -r my/dir new/dir mv old/dir new/dir 
// символическая ссылка 
ln -s /path/to/link link_name 
// быстро заменить в файле строку 
sed -i 's/string/new_string/g' file.txt 
// удалить всю строку содержащую текст 
sed -i '/some string/d' file.txt 
// bitrix поиск измененных файлов за 22-е число, исключая папки кеша 
find . -type f ! -path "*/cache/*" ! -path "*/managed_cache*" ! -path "*/upload/*" ! -path "*/html_pages/*" -ls |grep 'мая 22' > may22_bez_cache.log 
// дамп БД с сжатием 
mysqldump -u user -pupasswd my-database | gzip > one.sql.gz 
// импорт сжатой бд 
gunzip < myfile.sql.gz | mysql -u root -p 
mydb zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database 
// быстро просмотреть строки от n - m 
sed -n '500,505p;' backup.sql 
// просмотр архива 
tar -tf archive.tar.gz 
// сортировка вывода по 5 колонке 
ls -la | sort -k 5 
// вывод прогресса с помощью pv , tee 
unzip -q upload.zip | pv -l > /dev/null 
// быстро закачать файл по протоколу webdav 
curl -T backup.tar -umyname:mypass https://webdav.yandex.ru/dir | tee /dev/null 
// поделить файл на части и вывести n-й столбец. awk по сути это split. 
awk -Fuser '{print $2}' /var/log/auth.log 
// вывести имена файлов в столбик, без атрибутов
ls -1 admin_*
// распаковать конкретную папку 
unzip archive.zip /path/need/extract 
tar -xzf archive.tar.gz /path/need/extract 
// распаковать в конкретную папку (ключ -C) 
tar -xzf archive.tar.gz -С /path/to/ /path/need/extract 
// вывести 5 самых крупных директорий 
du -h some/dir/path | sort -nr | head -n 5 


// быстро создать несколько файлов
array=(header.php footer.php styles.css template_styles.css description.php);for i in ${array[@]};do touch $i;done;
// битрикс бэкап
cat *.tar.gz* >> mysite_backup.tar.gz
// рекурсивно заменить строки. ключ -l выводит совпадения списком
grep -rl oldtext . | xargs sed -i -e 's/oldtext/newtext/g'
// сжать картинки формата png
for i in some/dir/*.png; do optipng  -p "$i" ; done;
// сжать картинки формата jpg 
for i in some/dir/*.jpg; do jpegoptim -p "$i" ; done; 

// убить процессы 1 дневной давности
killall -o 1d php

проверка сервера на bash

Мониторить сервер можно так: создадим bash-скрипт, который будет проверять ответ заголовков с помощью curl. Ответ сохраню в temp файле. При ошибке отправлю письмо.

 
#!/bin/bash

tmp_file=$(mktemp)
# параметр -L делает переход по редиректам
curl -I -L 'phpjs.ru' >> tmp_file
resp=$(cat tmp_file) 
if [[ "${resp}" == "" ]]; then
	#statements
	echo 'err resp var not founded!!'
	#exit 1
fi
rm -rf tmp_file

if echo "${resp}" | grep 'HTTP/1.1 200 OK' > /dev/null  ; then
	echo 'GOOD!'
	#exit 0
else
	/usr/bin/php -r "echo(mail( 'recipient@mail.ru' , 'server not working' , 'server not working' , 'From: sender@gmail.com'));"
	/usr/sbin/sendmail -t 'recipient@mail.ru' < /home/user/mail.txt
	echo 'error!'
	#exit 1
fi

И запись в крон


0 * * * * sh /home/user/check_server.sh > /dev/null

не забываем


service crond restart

nginx + php-fpm на vps centos 7, ubuntu

Развернем сервачок на vps под centos 7 или убунту. Покупаем любой за 150 рублей. После активации поставим последнюю версию php , nginx. Об установке писать не буду, вкратце опишу конфиги. Обратите внимание на наличие свопа, без него mysql будет частенько падать с памятью 256-512 Мб. Как поставить swap есть хорошая статья https://www.digitalocean.com/community/tutorials/how-to-configure-virtual-memory-swap-file-on-a-vps. Также не помешает проверить частоту процессора командой cat /proc/cpuinfo, лучше будет от 2000Mhz, чем 500, хотя это не важно. (далее…)

Cron

Добавляем запись в крон.


crontab -e

// для centos
crontab /etc/crontab

Сама команда задается в таком формате

минута час день_месяца месяц день_недели команда



Напишу пример на ночной крон без сохранения вывода
(далее…)

создание загрузочной флешки Windows из под Linux

Создать загрузочную флешку можно разными способами. dd — самый быстрый и удобный, но использует всю флешку, т.к. копирует mbr.
Размонтируем устройство.


sudo umount /dev/sdx

dd if=/home/user/Downloads/example.img of=/dev/sdx bs=4096 conv=sync,notrunc status=progress

Способ с cp — надо монтировать образ, копировать, прописывать mbr с использованием загрузчика syslinux, lilo или grub.
Есть еще утилита winusb. Поработаем с ней.


sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install winusb

Если winusb не ставиться, проверьте, есть ли woeusb. Это почти то же самое.
Форматируем нашу флеху в файловой системе ntfs.


sudo mkfs.ntfs /dev/sdX

Запускаем прожиг


sudo winusb --install win7_amd64.iso /dev/sdX

(далее…)

Linux создание раздела, форматирование

Для создания разделов в линукс разные утилиты на выбор. Воспользуемся fdisk. Но необходимо знать, что fdisk и parted работают только с MBR, для таблицы разделов GPT используйте gdisk, gparted.

Выведем список смонтированных устройств.


sudo mount | column -t
// или
sudo ls -l /dev/sd*

Размонтируем устройство.
(далее…)

Linux восстановить файлы

Утилита extundelete довольно проста.

Размонтируем диск


sudo umount /dev/sdb1

Если том занят, смотрим какие процессы используют, затем убиваем все. В этом нам поможет утилита lsof, которая показывает все открытые процессами файлы.


sudo lsof /dev/sdb1

sudo fuser -kim /dev/sdb1

Восстановим конкретный файл
(далее…)

Настройка SSD — перенос кеша хром и мозиллы

SSD отличается от HDD тем что число циклов перезаписи на нем ограничено порядка 10 000 и более. Цифра немалая тем не менее постоянными и мелкими файлами можно окончательно его угробить.

При установке SSD на свой компьютер первым делом необходимо перенести папку кеша браузера на Ramdisk, чтобы постоянные и малые записи кеша на SSD не исчерпали ограниченное количество записей этого типа хварддрайва.

Для этого нам надо будет создать (далее…)

Windows рядом с Linux

Бывает необходимость поставить несколько разных дистрибутивов Linux на одном харддрайве. Покажу вам как разбить диск на разделы, отформатировать его, записать ОС и обновить загрузчик grub. BIOS и UEFI почти не отличаются. Просто небольшая разница в загрузочном разделе или секторе.
Заранее советую иметь флешку с linux boot usb.
Как создать раздел писал в статье LINUX СОЗДАНИЕ РАЗДЕЛА, ФОРМАТИРОВАНИЕ
Воспользуемся этой же утилитой. Не забываем форматировать.
Раздел готов, загрузочная флешка с виндой или прочей ОС есть. По идее разбить на раздел и отформатировать можно и на этапе установки.  (далее…)