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

bash

bash

Bash
сравнение целых чисел:

[[ -eq ]] [[ = ]]  (( = ))  равно  
[[ -ne ]] [[ != ]] (( != )) не равно
[[ -gt ]] [[ > ]]  (( > ))  больше
[[ -ge ]] [[ >= ]] (( >= )) больше или равно
[[ -lt ]] [[ < ]]  (( < ))  меньше
[[ -le ]] [[ <= ]] (( <= )) меньше или равно

если использовать не числовые значения со скобками то будет сравниваться значение asci символов

[[ -z ]] - строка/аргумент пустая
[[ -n ]] - строка/аргумент не пустая


[[ command -a command ]] - то же что и && 
[[ command -o command ]] - то же что и ||


[[ -e file ]]   существует 
[[ -f file ]]   существует и является обычным файлом
[[ -d file ]]   существует и является каталогом
[[ -r file ]]   существует с разрешениями на чтение
[[ -w file ]]   существует с разрешениями на запись
[[ -x file ]]   существует с разрешениями на выполнение
[[ -s file ]]   существует и размер файла больше нуля
[[ -O file ]]   существует, и владельцем является действующий идентификатор пользователя
[[ -G file ]]   существует, и владельцем является действующий идентификатор группы
[[ -h file ]]   существует и является символической ссылкой
[[ -L file ]]   существует и является символической ссылкой
[[ -b file ]]   существует и является блочным устройством
[[ -c file ]]   существует и является character-special файлом
[[ -S file ]]   существует и является socket-файлом
[[ -N file ]]   существует и был изменен с момента последнего чтения
[[ file1 -ef file2 ]]   пренадлежат одному и тому же файлу/инoду
[[ file1 -nt file2 ]]   file1 новее file2
[[ file1 -ot file2 ]]   file1 старше file2


id++ id--   переменный постинкремент и постдекремент
++id --id   переменный преинкремент и предекремент
- +     унарный минус и плюс
! ~     логическое и побитовое отрицание
**      возведение в степень
* / %       умножение, деление, остаток
+ -     сложение, вычитание
<< >>       побитовые сдвиги влево и вправо
== !=       равенство и неравенство 
&       побитовое И
^       побитовое исключающее ИЛИ
|       побитовое ИЛИ
&&      логическое И
||      логическое ИЛИ
expr ? expr : expr              условный оператор
= *= /= %= += -= <<= >>= &= ^= |=       назначение
expr1 , expr2                   запятая
<<<                         оператор перенаправления, позволяющий использовать строку в качестве стандартного ввода для команды

$0 - возвращает путь до исполняемого скрипта 
$# - возвращает число входных параметров
$@ - возвращает массив всех входных параметров c с разделителем ($1 $2 $3 ...)
$$ - возвращает PID текущего процесса
$! - возвращает PID предыдущего процесса
$? - возвращает статус выхода последней команды
$* - возвращает все входнфе параметры без разделителя ($1$2...)
$- - возвращает возвращает стандрартные для оболочки аргументы





VIM
/nohl выключить подцветку vim 
Command Information
:e myfile   Открывает «myfile» для редактирования
:w      Сохраните файл
:sav myfile.txt Сохраняет файл как myfile.txt
:q!     Выйти без сохранения изменений
:q      Выйти 
/xyz        Искать xyz сверху вниз
?xyz        Искать xyz снизу вверх
*       Поиск текста под курсором
/\ctext     Поиск текста (без учета регистра)
/ra[av]i    Поиск raai или ravi
/abc\|xyz   Поиск abc или xyz
/\<\d\d\d\d\>   поиск числа с 4 цифрами
/^\n\{3}    поиск 3 пустых строк всподряд
:bufdo /searchstr/  поиск во всех открытых файлах глобально
bufdo %s/findme/replaceme/g поиск findme во всех открытых буферах и замена его на replaceme
:%s/x/y/g   замена всех вхождений  x на y в файле
:%s/qwerty/ytrewq/gi    замена qwerty на ytrewq без учета регистр
:%s/x/y/gc  замена всех вхождений после подтверждения
:%s/^/Begin/g   вставка в начало каждой строки Begin
:%s/$/End/g вставка в конец каждой строки End
:%s/x/y/gi  
:%s/ *$//g  удаление всех пробелов
:g/myname/d удаление всех строк содержащих myname
:v/myname/d удаление всех строк НЕ содержащих myname
:s/John/Doe/    заменить первое вхождение John на Doe в текущей строке
:s/John/Doe/g   Заменить John на Doe в текущей строке
:%s/John/Doe/g  Заменить John на Doe во всех файлах
:%s/^M//g   Поиск и удаление возврата каретки DOS (^M)
:%s/\r/\r/g аменить возврат каретки DOS обычным ключом возврата (\r)
:%s#<[^>]\+>##g     поиск и удаление тегов html
:%s/^\(.*\)\n\1$/\1/    gоиск и удаление повторяющихся строк
Ctrl+a  увеличивает число под курсором
Ctrl+x  уменьшает число под курсором

Vim Commands for Cut, Copy and Paste
y   копировать выбранный текст
p   вставить выбранный текст
dd  вырезать выбранную строку
yy  вставить выбранную строку
y$  
D   


Vim Commands to Change Case

Vu  сменить все буквы на строчные в строке
VU  сменить все буквы на Заглавные в строке
g~~ инвертировать регистр
vEU перевести выбранное слово в верхний регистр
vE~ инвертировать регистр выбранного слова
ggguG   установить весь текст в нижнем регистре
gggUG   установить весь текст в верхнем регистре
:set ignorecase     игнорировать регистр при поиске текста
:set smartcase      игнорировать регистр при поиске, но не в том случае, если используется заглавная буква
:%s/\<./\u&/g       устанавливает первую букву каждого слова в верхний регистр
:%s/\<./\l&/g       устанавливает первую букву каждого слова в нижний регистр
:%s/.*/\u&      устанавливает первую букву каждой строки в верхний регистр
:%s/.*/\l&      устанавливает первую букву каждой строки в нижний регистр

Navigation within the File

k или стрелка вверх переместить позицию курсора вверх на одну строку
j или стрелка вниз  переместить позицию курсора вниз на одну строку
e   переместить курсор в конец слова
b   переместить курсор в начало слова
O   Переместить курсор в начало строки
G   Переместить курсор в EOF
gg  переместить курсор в начало файла
L   переместить курсор в нижнюю часть экрана
:80 переместить курсор на строку номер 80
%   переместить курсор к соответствующей скобке
[[  переместить курсор к запуску функции
[{  переместить курсор в начало блока

File R/W and File Explorer

:1,10 w myfile      сохранить строки с 1 по 10 в myfile
:1,10 w >> myfile   добавить строки с 1 по 10 в myfile
:r myfile       вставить содержимое myfile в текущий файл
:23r myfile     вставить содержимое myfile в строку 23
:e .            открыть проводник
:Sex            разделить окно и открыть проводник
:Sex!           То же, что и :Sex , но разделяет окно по вертикали
:browse e       графический файловый менеджер
:ls         список буферов
:cd ..          Перейти в родительский или корневой каталог
:args           список файлов
:args *.php     Список открытых файлов с расширением .php
:grep something *.php   Возвращает список файлов .php, содержащих что-либо
gf          открыть  имя файла под курсором

Interface-Related Vim Commands (Tabs and Windows)

:tabnew     открыть новую вкладку
gt      перейти к следующей вкладке
:tabfirst   перейти к первой вкладке
:tablast    перейти к последней вкладке
:tabm n(position)   переупорядочить открытые вкладки
:tabdo %s/foo/bar/g выполнить одну и ту же команду на всех вкладках
:tab ball       помещает все открытые файлы в разные вкладки
:new myfile.txt     открыть myfile.txt в новом окне
:e filename     изменить имя файла в текущем окне
:split myfile       разделить окно и откройте myfile
ctrl-w + стрелка вверх  поместить курсор в верхнее окно
ctrl-w ctrl-w (дважды)  поместить курсор в следующее окно
ctrl-w_         развернуть текущее окно по вертикали
ctrl-w|         развернуть текущее окно по горизонтали
ctrl-w=         сделать все окна одинакового размера
100 ctrl-w+     добавить 100 строк в файл в текущем окне
:vsplit file        разделить окна по вертикали
:sview file     Разделить окна по вертикали (только для чтения)
:hide           закрыть текущее окно
:­nly            закрыть все окна, кроме текущего
:b 4            открыть вкладку №4 в текущем окне

Text Alignment and Indentation

:set autoindent     включить автоматический отступ
:%!fmt          выровнять все строки
!}fmt           выровнять все строки в текущей позиции
2!!fmt          выровнять следующие две строки
:set smartindent    включите интеллектуальный автоматический отступ
:set shiftwidth=8   определяет 8 пробелов в качестве размера отступа
ctrl-t, ctrl-d      отступ и снятие отступа в режиме вставки
>>          отступ текущей строки
<<          убрать отступ текущей строки
=%          отступ кода между скобками
1GVG=           отступ для всего файла

Autocomplete Vim Commands

Ctrl+n Ctrl+p   завершить предложенное слово (режим вставки)
Ctrl+x Ctrl+l   завершить предложенную строку
:set dictionary=en  выбрать EN в качестве активного словаря
Ctrl+x Ctrl+k       завершить с помощью активоного словаря

UNIX-Only Vim Commands
:!get   выполнить команду get, затем вернуться в Vim.
!!get   выполнить команду get, затем вставить вывод в текущий файл
:sh перейти в оболочку unix
$exit   выйти из оболочки Unix и вернуться в Vim

Miscellaneous Vim Commands

m {q-p} установить метку на выбранной позиции {q-p}
 {q-p} перейти к ранее помеченной позиции {q-p}
   перейти к предыдущей метке
:ab mail hi@designbombs.com задать почте адрес hi@designbombs.com


Глобальное определение переменных: /etc/env.d
Локальное определение переменных: ~/.bashrc или ~/.bash_profile
Сеансовые переменные: export PATH="${PATH}:/home/my_user/tmp/usr/bin"