Linux_Practic_Usage

Терминал — основной интерфейс управления компьютером

Немного истории

Терминальные картинки

Escape-последовательности

Руководство по покраскам

Языки склейки

Три основных требования к языкам склейки:

Unix Shell

Основные блоки команд:

localhost% a=4
localhost% echo $a
4
localhost%
localhost% A=2; B=3

localhost% echo $((A+B))
5
localhost% echo $((A+B-13))
-8
localhost% expr $A + $B
5
user@localhost:~> zsh

localhost% A=1
localhost% echo $A
1

localhost% zsh
localhost% echo $A

localhost% ASD=123
localhost% echo $ASD
123

localhost% exit
localhost% echo $ASD

localhost% echo A
A

localhost% export A
localhost% zsh
localhost% echo $A
1
localhost% exit
localhost% exit
user@localhost:~>
user@localhost:~> A() { echo qq; }
user@localhost:~> A
qq
user@localhost:~>
user@localhost:~> A=123.456.678
user@localhost:~> echo ${A}b # вывод форматированного текста
123.456.678b
user@localhost:~> echo $Ab # считает, что это переменная из двух букв и, очевидно, не находит её в своём словаре

localhost% A=123/456/789
localhost% echo $A
123/456/789
localhost% echo ${A}
123/456/789

localhost% echo ${A%/*} # Отрезание хвоста данных (отрезает последнее совпадение шаблону /*)
123/456
localhost% echo ${A%%/*} # Жадное отрезание хвоста (по первому совпадению)
123
localhost% echo ${A#*/} # отрезание головы (по первому совпадению)
456/789
localhost% echo ${A##*/} # Жадное отрезание головы (по последнему)
789

localhost% A=123.426.678
localhost% echo ${A/2/E} # замена первого совпадения
1E3.426.678
localhost% echo ${A//2/E} # Замена всех совпадений
1E3.4E6.678
localhost% A=Hello
localhost% echo $A
Hello

localhost% {sleep 1; echo 1; sleep 1; echo 2; sleep 1; echo QQ}  # запуск скрипта в данном* процессе
1
2
QQ
localhost% {sleep 1; echo 1; sleep 1; echo 2; sleep 1; echo QQ} & # запуск скрипта фоновым процессом — можем продолжать работу
[1] 189666
localhost% echo $A # успеваем вызывать другие команды Shell
Hello
1
localhost% echo $A
Hello
2
localhost% echo $A
Hello
QQ

[1]  + 189666 done       { sleep 1; echo 1; sleep 1; echo 2; sleep 1; echo QQ; }
localhost%
\[\textrm{if\ \textbf{команды};\ then\ \textbf{команды-True};\ else\ \textbf{команды-False};\ fi}\]
 + В качестве условия выступает код завершения последней команды условия
\[\textrm{while\ \textbf{команды};\ do\ \textbf{команды};\ done}\]
 + Цикл по последовательности: 
\[\textrm{for\ \textbf{переменная}\ in\ \textbf{слова};\ do\ \textbf{команды};\ done}\]

* Проверка условия — утилита test (или просто [ )

Вид выражения:

case <выражение> in
	<шаблон 1>) <команды> ;;
	...
	<шаблон N>) <команды> ;;
	*) <команды> ;;
esac

Полезные утилиты