linux

Здесь я хочу привести краткий список команд linux, чтобы потом самому же использовать эту страницу как шпаргалку.

Файловые команды

ls – список файлов и каталогов
cd dir – сменить директорию на dir, без указания dir - сменить на домашний каталог
(вернуться назад cd ..)
mkdir dir – создать каталог dir
rm (-r -f -rf) file – удалить file (r - каталок, f - удалить форсировано)
cp (-r) file1 file2 – скопировать file1 в file2 (r - скопировать каталог в каталог, создав, если нужно)
mv file1 file2 – переименовать или переместить file1 в file2, если file2 существующий каталог - переместить file1 в каталог file2
ln -s file link – создать символическую ссылку link к файлу file
tail (-f) file – вывести последние 10 строк файла (f - выводить по мере роста)
df -h – посмотреть свободное и занятое место на всех смонтированных дисках
du -sh dir – посмотреть размер директории или файла. du -sh * –всех директорий и файлов, du -sh –текущей директории

Архивация

zip -r -9 "название zip-архива" "имя файла или папки" -x "не включать в архив по маске" -x "еще не включать в архив" создать zip архив, для сжатия текущей папки, использовать каталог "./", (9 - степень сжатия от 1 до 9, -r - флаг рекурсивного обхода)
Пример команды для архивации битрикса на обычном хостинге:
zip -r -9 YYYY_MM_DD_work_randSecret.zip "./" -x "bitrix/backup/*" -x ".hg/*" -x "cgi-bin/*" -x "bitrix/managed_cache/*" -x "bitrix/cache/*"
unzip (-l) "имя архива.zip" - распаковать архив здесь (l - вывести содержимое архива)
tar cf file.tar files – создать tar-архив с именем file.tar содержащий files
tar xf file.tar – распаковать file.tar
tar czf file.tar.gz files – создать архив tar с сжатием Gzip
tar xzf file.tar.gz – распаковать tar с Gzip

Сеть

wget file – скачать file
rsync -zavP login@site.ru:/var/www/site/ /var/www/dev.site – скопировать полностью содержимое папки с одного сервера на другой. Можно использовать в обе стороны. В примере с удаленного сервера на наш

Разное

ps aux | grep php – посмотреть работающие процессы php (например проконтролировать работу скрипта запущенную кроном)

Клавиатурные сочетания

Ctrl+C – завершить текущую команду
Ctrl+D – разлогиниться, тоже самое, что и exit
Ctrl+W – удалить одно слово в текущей строке
Ctrl+U – удалить строку

MySQL

mysqldump -u username (-h hostname) (-p) dbname > db.sql - сделать бекап базы (h - указываем хост, по умолчанию localhost, p спросит пароль)
mysql --default-character-set=utf8 -u username (-h hostname) (-p) dbname < db.sql залить бекап базы (h - указываем хост, по умолчанию localhost, p спросит пароль)

cron

crontab -e Открыть crontab файл на редактирование
crontab -l Отобразить содержимое существующего crontab файла.
crontab -r Удалить crontab файл.
crontab -v Отобразить дату изменения crontab файла.

Пример строки crontab файла:


*/10    *       *       *       *       wget -q -O - -t 1 http://site.ru/cron.php?key=secretkey > /dev/null 2>&1

Первые пять полей отвечают за периодичность запуска, далее идет команда, которая будет выполнятся. Порядок указания периода такой:
минуты — число от 0 до 59
часы — число от 0 до 23
день месяца — число от 1 до 31
номер месяца в году — число от 1 до 12
день недели — число от 0 до 7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс)

Каждое значение можно задать:
1,3,5 - через запятую
3-9 - интервалом (т.е. запускать каждый час с 3 до 9)
* - означает все значения, т.е. каждый час
*/3 каждые 3 часа

В примере каждые 10 минут будет запускаться скрипт http://site.ru/cron.php с параметром key=secretkey

Текстовый редактор vi

Когда мне впервые пришлось иметь дело с редактором vi я был немало озадачен, я не понимал что происходит и как им пользоваться. Приведу краткую инструкцию:
для вставки текста нажмите i, затем вводите текст
для удаления символов нажмите ESC, а затем наберите x
для выхода из vi без сохранения изменений нажмите ESC, а затем наберите :q!
для сохранения и выхода нажмите ESC, а затем наберите :wq

Комментарии:

Сергей

27.01.2016 15:09:31

(вернуться назад cd ..) - более корректно будет "перейти на каталог выше"
вернуться назад будет cd -
:-)

Сергей

27.01.2016 15:12:15


:-( не работают переносы?

ну и туда же:
(r - скопировать каталог в каталог, создав, если нужно) - неверно. -r есть флаг рекурсивного копирования, а не "создания, если нужно"

"создав, если нужно" применимо к команде mkdir - для этого есть флаг -p

Максим

28.01.2016 07:49:23

Сергей, спасибо за полезные замечания!

> не работают переносы?
При предпросмотре (на js) не работают:(, руки до этого так и не дошли пока:)

Оставить комментарий:

Представьтесь пожалуйста:
Электронная почта:
Электронный адрес не публикуются
Текст сообщения:
Для подсветки кода, оборачивайте ваш код в теги <code></code>
Введите 5 цифр с картинки:

Рекомендую:

Поддержать проект:

бесполезная кнопка, которую еще никто не нажал:)
Нажали! Кнопку нажали уже 7 человек!!! Спасибо, очень мотивирует!