You can use git aliases, e.g.
git config --global alias.add-commit '!git add -A && git commit'
and use it with
git add-commit -m 'My commit message'
DevOps blog и не только
The tr command in UNIX is a command line utility for translating or deleting characters. It supports a range of transformations including uppercase to lowercase, squeezing repeating characters, deleting specific characters and basic find and replace. It can be used with UNIX pipes to support more complex translation. tr stands for translate.
Syntax :
$ tr [OPTION] SET1 [SET2]
Options
-c : complements the set of characters in string.i.e., operations apply to characters not in the given set
-d : delete characters in the first set from the output.
-s : replaces repeated characters listed in the set1 with single occurrence
-t : truncates set1
Sample Commands
1. How to convert lower case to upper case
To convert from lower case to upper case the predefined sets in tr can be used.
$cat greekfile
Output:
WELCOME TO GeeksforGeeks
$cat greekfile | tr “[a-z]” “[A-Z]”
Output:
WELCOME TO GEEKSFORGEEKS
or
$cat geekfile | tr “[:lower:]” “[:upper:]”
Output:
WELCOME TO GEEKSFORGEEKS
2. How to translate white-space to tabs
The following command will translate all the white-space to tabs
$ echo "Welcome To GeeksforGeeks" | tr [:space:] '\t'
Output:
Welcome To GeeksforGeeks
3. How to translate braces into parenthesis
You can also translate from and to a file. In this example we will translate braces in a file with parenthesis.
$cat greekfile
Output:
{WELCOME TO} GeeksforGeeks
$ tr '{}' '()' newfile.txt
Output:
(WELCOME TO) GeeksforGeeks
The above command will read each character from “geekfile.txt”, translate if it is a brace, and write the output in “newfile.txt”.
4. How to use squeeze repetition of characters using -s
To squeeze repeat occurrences of characters specified in a set use the -s option. This removes repeated instances of a character.
OR we can say that,you can convert multiple continuous spaces with a single space
$ echo "Welcome To GeeksforGeeks" | tr -s [:space:] ' '
Output:
Welcome To GeeksforGeeks
5. How to delete specified characters using -d option
To delete specific characters use the -d option.This option deletes characters in the first set specified.
$ echo "Welcome To GeeksforGeeks" | tr -d 'w'
Output:
elcome To GeeksforGeeks
6. To remove all the digits from the string, use
$ echo "my ID is 73535" | tr -d [:digit:]
Output:
my ID is
7. How to complement the sets using -c option
You can complement the SET1 using -c option. For example, to remove all characters except digits, you can use the following.
$ echo "my ID is 73535" | tr -cd [:digit:]
Output:
73535
Вы можете начать экран, набрав слово “screen” в командной строке и новый сеанс экран будет запущен, который выглядит так же, как в командной строке
screen
Это хорошая практика, чтобы начать занятия экрана с описательными именами, так что вы можете легко вспомнить, какой процесс выполняется в сеансе. Чтобы создать новый сеанс с именем сеанса выполните следующую команду
screen -S name
и заменить ‘name‘ с понятным названием для вашей сессии.
Для того, чтобы отключиться от текущего сеанса экрана вы можете нажать клавишу ‘Ctrl-A‘ и ‘ D‘ на клавиатуре. Все сеансы экрана будут по- прежнему активны, и вы можете повторно подсоединиться к ним в любое время позже.
Если вы оторваны от сеанса или ваше соединение прерывается по какой-то причине, вы можете легко повторно подсоединиться, выполнив следующую команду:
screen -r
Если у вас есть несколько сеансов экрана вы можете перечислить их с ‘ls‘
screen -ls There are screens on: 7880.session (Detached) 7934.session2 (Detached) 7907.session1 (Detached) 3 Sockets in /var/run/screen/S-root.
В нашем примере, у нас есть три активных сеансов экрана. Итак, если вы хотите восстановить сеанс “session2”, вы можете выполнить
screen -r 7934
или вы можете использовать имя экрана
screen -r -S session2
Есть несколько способов, чтобы завершить сеанс экрана. Вы можете сделать это, нажав ‘Ctrl‘ + ‘ D‘ на клавиатуре или с помощью команды командной строки ‘exit‘.
Для того чтобы увидеть все полезные свойства экрана команды вы можете проверить man page screen.
man screen NAME screen - screen manager with VT100/ANSI terminal emulation SYNOPSIS screen [ -options ] [ cmd [ args ] ] screen -r [[pid.]tty[.host]] screen -r sessionowner/[[pid.]tty[.host]]
Tip Run vimtutor in a terminal to learn the first Vim commands.
:h matchpairs
in vim for more info)Tip Prefix a cursor movement command with a number to repeat it. For example, 4jmoves down 4 lines.
Tip Instead of b or B one can also use ( or { respectively.
Tip Registers are being stored in ~/.viminfo, and will be loaded again on next restart of vim.Tip Special registers:
0 — last yank
" — unnamed register, last delete or yank
% — current file name
# — alternate file name
* — clipboard contents (X11 primary)
+ — clipboard contents (X11 clipboard)
/ — last search pattern
: — last command-line
. — last inserted text
- — last small (less than a line) delete
= — expression register
_ — black hole register
Tip To jump to a mark you can either use a backtick (`) or an apostrophe ('). Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.
e.g. :vim[grep] /foo/ **/*
command
on all tabs (e.g. :tabdo q
— closes all opened tabs)Tip The commands for folding (e.g. za) operate on one level. To operate on all levels, use uppercase letters (e.g. zA).Tip To view the differences of files, one can directly start Vim in diff mode by running vimdiff in a terminal. One can even set this as git difftool.
version: "3.2" services: confluence-db: image: postgres:11-alpine container_name: confluence-db environment: - POSTGRES_PASSWORD=confluence - POSTGRES_USER=confluence - POSTGRES_DB=confluence volumes: - ./pgdata:/var/lib/postgresql/data networks: - confluence-db-network confluence-server: image: atlassian/confluence container_name: confluence-server environment: # Memory / Heap Size - JVM_MINIMUM_MEMORY=1024M - JVM_MAXIMUM_MEMORY=2048M - JVM_RESERVED_CODE_CACHE_SIZE=512M # Reverse Proxy Settings - ATL_PROXY_NAME=confluence.example.com - ATL_PROXY_PORT=443 - ATL_TOMCAT_SCHEME=https - ATL_TOMCAT_SECURE=true # Database - ATL_JDBC_URL=jdbc:postgresql://confluence-db:5432/confluence - ATL_JDBC_USER=confluence - ATL_JDBC_PASSWORD=confluence - ATL_DB_TYPE=postgresql # Data Center configuration - ATL_CLUSTER_TYPE=multicast - ATL_CLUSTER_NAME=confluence-cluster - ATL_CLUSTER_ADDRESS=230.0.0.1 - ATL_CLUSTER_TTL=32 # Home Directories - CONFLUENCE_HOME=/opt/confluence-home - ATL_PRODUCT_HOME_SHARED=/opt/confluence-home-shared volumes: - type: bind source: /opt/confluence/confluence-home target: /opt/confluence-home - type: bind source: /opt/confluence/confluence-home-shared target: /opt/confluence-home-shared command: sh -c "/opt/atlassian/confluence/bin/start-confluence.sh -fg" labels: - traefik.enable=true - traefik.docker.network=proxy - traefik.http.routers.confluence.rule=Host(`confluence.example.com`) - traefik.http.routers.confluence.entrypoints=websecure - traefik.http.routers.confluence.tls=true - traefik.http.routers.confluence.tls.certresolver=letsencrypt - traefik.http.services.confluence.loadbalancer.server.port=8090 depends_on: - confluence-db networks: - confluence-db-network - proxy networks: confluence-db-network: name: confluence-db-network proxy: external: true
openssh-server: image: linuxserver/openssh-server container_name: openssh-server environment: - PUID=1000 - PGID=1000 - TZ=Asia/Novosibirsk - PUBLIC_KEY_FILE=/pubkeys - SUDO_ACCESS=false - PASSWORD_ACCESS=false - USER_NAME=alpine - DOCKER_MODS=linuxserver/mods:openssh-server-ssh-tunnel volumes: - ./pubkeys:/pubkeys ports: - 60022:2222
Расшифровка вывода команды top, например:
top - 10:12:16 up 1 day, 57 min, 3 users, load average: 0.48, 0.94, 1.19 Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie Cpu(s): 1.1%us, 0.7%sy, 0.0%ni, 97.9%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 16466952k total, 6696972k used, 9769980k free, 39484k buffers Swap: 33554428k total, 45812k used, 33508616k free, 4965696k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1621 apache 20 0 488m 22m 6088 S 2.0 0.1 1:01.41 httpd 3534 apache 20 0 486m 22m 4916 S 1.7 0.1 1:02.16 httpd 1542 postgres 20 0 156m 612 352 S 0.3 0.0 0:06.92 postmaster
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie
Данная строка показывает общее количество процессов, сколько из них запущено, сколько находится в спящем режиме, сколько процессов остановлено, а также количество зомби процессов — процессы, которые закончили свое выполнение, имеется ошибка в работе процессов.
Cpu(s): 1.1%us, 0.7%sy, 0.0%ni, 97.9%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st
Данная строка рассказывает нам о состоянии процессора, на что затрачено 100% процессорного времени.
Mem: 16466952k total, 6696972k used, 9769980k free, 39484k buffers
Эта строка в блок посвященный оперативной памяти. Информация о памяти: total — всего памяти; free — доступно незамедлительно; used — используется в данный момент; buff/cache — сумма буферов и кэша (фактически это можно считать доступной свободной памятью, так как чаще всего эта величина содержит в себе счётчик памяти, требуемой для информации, которая уже записана на диск или скоро будет записана.
Swap: 33554428k total, 45812k used, 33508616k free, 4965696k cached
Информация о свап-памяти: всего, свободно, использовано, доступно.
Также информацию о доступной ОЗУ покажет free.
Загрузка системы
top - 10:12:16 up 1 day, 57 min, 3 users, load average: 0.48, 0.94, 1.19
Состояния процессов
Tasks: 225 total, 1 running, 224 sleeping, 0 stopped, 0 zombie
Состояния процессора (ЦП).
Cpu(s): 1.1%us, 0.7%sy, 0.0%ni, 97.9%id, 0.2%wa, 0.0%hi, 0.2%si, 0.0%st
Состояние оперативной памяти (ОЗУ). Top показывает, что на компьютере установлено 16GB ОЗУ.
Mem: 16466952k total, 6696972k used, 9769980k free, 39484k buffers
top показывает объем занятой памяти вместе с кэш. htop выдает объём реально занятой памяти без кэша. Для проверки достоверности данных можно использовать утилиту free, которая покажет сколько занято памяти с кэш и без.
Использование Swap- раздела:
Swap: 33554428k total, 45812k used, 33508616k free, 4965696k cached
Некоторые из нижеописанных команд начинаются с двоеточия: нажав его, появится подсказка, в которой будет указана полная команда. Команды без двоеточий — это скорее горячие клавиши, которые можно использовать в режиме по умолчанию (в нём запускается Vim). Команды, написанные ЗАГЛАВНЫМИ БУКВАМИ — это отдельные клавиши: например, ESC — это клавиша Esc на вашей клавиатуре.
Все команды чувствительны к регистру и должны выполняться вне режима insert.
Выход без сохранения изменений:
:q!
Как запомнить: quit dammit! (закройся, чёрт возьми!)
Выход с сохранением изменений:
:wq
Как запомнить: write to disk and quit
Для перемещения по открытому файлу используйте стрелки.
Перемещение на строку 285:
:285
Поиск слова «import»:
/import
Вставка текста там, где стоит курсор:
i
Как запомнить: insert
Вставка текста в конце текущей строки:
A
Как запомнить: Append
Выход из режима редактирования (возврат в стандартный режим):
ESC
Переход в визуальный режим:
v
Как запомнить: visual
Для выделения текста используйте стрелки.
Выход из визуального режима:
ESC
Копирование выделенного текста в буфер:
y
Как запомнить: yank
Удаление выделенного текста:
d
Как запомнить: delete
Копирование текущей строки в буфер:
yy
Как запомнить: yank yank
Копирование трёх строк, включая текущую, в буфер:
3yy
Удаление текущей строки и помещение её в буфер:
dd
Как запомнить: delete delete
Удаление 5 строк, включая текущую:
5dd
Вставка из буфера перед текущей строкой:
P
Примечание: заглавная P
Вставка из буфера после текущей строки:
p
Отмена последнего изменения:
u
Как запомнить: uh-oh 🙂
Восстановление последнего отменённого изменения:
CTRL + R
Вывод изменений:
:undolist
Отмена двух последних изменений:
2u
Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.
Открытие файла index.html вместо текущего:
:edit index.html
Сохранение текущего файла:
:w
Как запомнить: write to disk
Сохранение файла с изменённым именем, например, changes.txt:
:w changes.txt
Поиск и замена всех вхождений строки в файле:
:%s/typo/corrected/g
Поиск и замена с запросом подтверждения замены:
:%s/typo/corrected/gc
Как запомнить: confirm
Включение подсветки синтаксиса:
:syntax on
Включение автоматических отступов:
:set autoindent
Увеличение отступов нескольких строк при выделении их в визуальном режиме:
>
Открытие server.py в новой вкладке:
:tabe server.py
Как запомнить: tab edit
Переход на вкладку справа:
:tabn
Как запомнить: tab next
Переход на предыдущую вкладку слева:
:tabp
Как запомнить: tab previous
Для закрытия вкладки переключитесь на неё и используйте команду :q
или :wq
.
Открытие templates/base.html в режиме вертикального разделения экрана:
:vs templates/base.html
Как запомнить: vertical split
Открытие shared.js в режиме горизонтального разделения экрана:
:sp shared.js
Как запомнить: the ’default’ horizontal split
Перемещение между «частями» экрана:
CTRL + W + ARROW KEYS
Для закрытия экрана переключитесь на него и используйте команду :q
или :wq
.
Всем кто хочет научиться, рекомендую канал ADV-IT на Youtube:
https://www.youtube.com/channel/UC-sAMvDe7gTmBbub-rWljZg
Денису Астахову огромное спасибо за данные уроки!