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 : e file "открыть файл
: w "сохранить
/nohl "убрать подсветку поиска
Поиск и замена
VimL : %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 :! cmd "выполнить команду
!! cmd "вставить вывод
: sh "перейти в shell
exit "вернуться в Vim
Переменные окружения
Глобальные: /etc/env.d
Пользовательские: ~/.bashrc, ~/.bash_profile
Сеансовые:
Bash export PATH = " $PATH :/home/my_user/tmp/usr/bin"