Перейти к содержанию

Bash & Vim Cheat Sheet

Bash

Сравнение чисел

Оператор Альтернатива Описание
-eq = (( = )) равно
-ne != (( != )) не равно
-gt > (( > )) больше
-ge >= (( >= )) больше или равно
-lt < (( < )) меньше
-le <= (( <= )) меньше или равно

!!! warning "ASCII-сравнение" Если использовать нечисловые значения в [[ ]], сравнение происходит по ASCII-кодам.


Проверка строк

  • [[ -z STRING ]] — строка пустая
  • [[ -n STRING ]] — строка не пустая

Логические операторы

  • [[ cmd -a cmd ]] — логическое И (&&)
  • [[ cmd -o cmd ]] — логическое ИЛИ (||)

Проверка файлов

Оператор Описание
-e file существует
-f file обычный файл
-d file каталог
-r file чтение
-w file запись
-x file выполнение
-s file размер > 0
-O file владелец — текущий пользователь
-G file владелец — текущая группа
-h file, -L file символическая ссылка
-b file блочное устройство
-c file символьное устройство
-S file socket
-N file изменён с последнего чтения
file1 -ef file2 один inode
file1 -nt file2 file1 новее
file1 -ot file2 file1 старше

Арифметика и логика

Оператор Назначение
id++, id-- постинкремент / постдекремент
++id, --id преинкремент / предекремент
!, ~ логическое / побитовое отрицание
** степень
* / % умножение / деление / остаток
+ - сложение / вычитание
<< >> побитовый сдвиг
&&, || логическое И / ИЛИ
expr ? a : b тернарный оператор
= += -= присваивание
<<< here-string

Специальные переменные Bash

Переменная Описание
$0 путь к скрипту
$# количество аргументов
$@ массив аргументов
$* аргументы без разделителя
$$ PID текущего процесса
$! PID фонового процесса
$? код выхода
$- флаги shell

Vim

Основные команды

VimL
1
2
3
:e file "открыть файл
:w      "сохранить
/nohl   "убрать подсветку поиска

Поиск и замена

VimL
1
2
3
4
5
6
:%s/x/y/g      " заменить все x на y
:%s/x/y/gc     " с подтверждением
:%s/^/Begin/   " вставка в начало строки
:%s/$/End/     " вставка в конец строки
:g/text/d      " удалить строки с text
:v/text/d      " удалить строки без text

Навигация

Команда Действие
h j k l перемещение
e, b конец / начало слова
gg, G начало / конец файла
:80 перейти к строке 80
% к парной скобке
[[ начало функции

Буферы, окна, вкладки

  • :tabnew — новая вкладка
  • gt — следующая вкладка
  • :split, :vsplit — разделить окно
  • ctrl-w w — следующее окно
  • ctrl-w = — выровнять окна

Выравнивание и отступы

  • >>, << — добавить / убрать отступ
  • =% — отформатировать блок
  • gg=G — форматировать весь файл
  • :set autoindent
  • :set smartindent

Автодополнение

  • Ctrl+n, Ctrl+p — дополнение слова
  • Ctrl+x Ctrl+l — дополнение строки
  • Ctrl+x Ctrl+k — по словарю

UNIX-команды внутри Vim

VimL
1
2
3
4
:!cmd   "выполнить команду
!!cmd   "вставить вывод
:sh     "перейти в shell
exit    "вернуться в Vim

Переменные окружения

  • Глобальные: /etc/env.d
  • Пользовательские: ~/.bashrc, ~/.bash_profile
  • Сеансовые:
    Bash
    export PATH="$PATH:/home/my_user/tmp/usr/bin"