Shower Presentation Engine

Yours Truly, Famous Inc.

Консоль в массы__

Виталий Рыбка

Любимый браузер

Любимый браузер

Консоль для пользователя

Консоль для пользователя

devtools terminal

devtools terminal

План побега

  1. Менеджеры терминалов
  2. Скрипты на bash
  3. Автоматизация рутинных задач

Репозиторий

Слайды

Где это все работает

Менеджеры терминалов

  1. screen
  2. tmux
  3. screen vs tmux

Менеджеры терминалов. Screen

Установка:
			sudo apt-get install screen
			screen
		

Менеджеры терминалов. Screen

Базовые сочетания клавиш:

Менеджеры терминалов. Screen

Пример файла конфигураций (.screenrc):
			# Default is ‘on’, as you probably noticed.
			startup_message off
			# Window list at the bottom.
			hardstatus alwayslastline
			hardstatus string "%-w%{= BW}%50>%n %t%{-}%+w%<"
		
Что означают непонятные символы в этой строке hardstatus string "%-w%{= BW}%50>%n %t%{-}%+w%<" можно почитать тут.

Менеджеры терминалов. Screen

screen example

Менеджеры терминалов. Tmux

“Это тот-же screen, только на стероидах”
Установка:
			sudo apt-get install tmux
			tmux
		

Менеджеры терминалов. Tmux

Базовые сочетания клавиш:

Менеджеры терминалов. Tmux

tmux example

Менеджеры терминалов. screen vs tmux

screen
- Не умеет создавать layout для каждой вкладки
- Не умеет сохранять layout, если оборвалась связь или еще что-то там
- До версии 4.1 не умел делать разбивку по вертикали
- Когда вы создаете новый регион, то в нем отдельно нужно создавать новое окно (Ctrl+a c), выполнить переход в нужную директорию и т.д.
- Чтобы удалить регион тоже нужно помучатся Ctrl+a :remove

Менеджеры терминалов. screen vs tmux

tmux
+ Что называется “с коробки” настроен довольно качественно
+ Не нужно настраивать положение панели с вкладками и как их подсвечивать, как это было с screen
+ Умеет делить экран на так называемые регионы, как по вертикали, так и по горизонтали
+ Чтобы закрыть регион, достаточно написать exit
+ Умеет держать удаленное соединение *

* нужна дополнительная магия

keep calm and bin bash

bash

  1. Основы
  2. Ветвления
  3. Циклы

bash. Основы

  1. Переменные
  2. Передача аргументов скрипту
  3. Обработка внутри скрипта

bash. Основы. "Hello, world!"

			#!/bin/bash
			echo "Hello, world!"
		
./hw.sh # вызов

Скрипты на bash. Основы. Перменные

Перменные: Создание (перезапись) переменной:
path="~/Docs"
Чтение переменной:
$path

Скрипты на bash. Основы. Аргументы

Передача аргументов скрипту:
./script.sh arg1 arg2 arg3 … argN
Обработка внутри скрипта:
$1 - первый аргумент
$2 - второй аргумент
$0 - имя скрипта
$# - количество аргументов

Скрипты на bash. Основы. Примеры

Еще один пример, поработаем с переменными
			#!/bin/bash
			var1=$1
			var2=$2
			echo "Arguments are \$1=$var1 \$2=$var2"
		
./variables.sh var1 var2 # вызов

bash. Основы. Ветвление

  1. if
  2. if/else
  3. if/elif/else
  4. case/in/esac

Скрипты на bash. Основы. Ветвление

if
			git diff origin/master origin/%branch% > %path%
		
fast_diff.sh

Скрипты на bash. Основы. Ветвление

Условия (строки):
-z <string> # string is empty
-n <string> # string is not empty
<str1> == <str2> # strings are equal
<str1> != <str2> # strings are not equal

Скрипты на bash. Основы. Ветвление

Условия (числа/строки):
-eq, (==) # equal
-ne, (!=) # not equal
-lt, (<) # less than
-le # less than or equal
-gt, (>) # more than
-ge # more than or equal

Скрипты на bash. Основы. Ветвление

Условия (файлы):
-e <path> # path is exist
-f <path> # is file
-d <path> # is directory
-s <path> # file size more than 0
-x <path> # file is executable

Скрипты на bash. Основы. Ветвление

Условия (логические):
! # denial of boolean expression
&& # boolean “and”
|| # boolean “or”

bash. Основы. Циклы

  1. for/in
  2. while

bash. Основы. Циклы

for/in:
			for i in array
			do
			  # действие, переменная i каждый раз принимает
			  # следующее значение из array
			done
		

Полезные ссылки

Автоматизация рутинных задач

Up большого числа репозиториев

Up большого числа репозиториев

Решение: Автоматизируем

Up большого числа репозиториев. После

Полезные алиасы

Полезные алиасы

Полезные алиасы

.bashrc, .gitconfig
			alias gst='git status'
			alias gf='git fetch'
			alias ghide='git stash'
			alias gshow='git stash pop'
			alias gmom='git merge origin/master' # !!!
			alias gad='git add'
			alias grm='git rm'
			alias showaliases='cat $HOME/.bashrc | grep alias'
		

Полезные ссылки

About me

Это последний слайд

Все, кина на будет...

Fork me on GitHub