$ man cat
$ echo Hello World
Hello World
$ head -50 test.txt
$ tail -50 test.txt
$ tail -f test.txt
$ less test.txt
$ ps aux | less
$ true
$ echo $?
0
$ false
$ echo $?
1
$ cat users.txt
user:student password:123
user:teacher password:321
$ grep 'student` users.txt
user:student password:123
$ cat test.txt
Hello World
$ sed 's/Hello/Hi/g' test.txt
Hi World
$ history | grep g++
155 g++ file1.txt
159 g++ file2.txt
$ export name=vasya
$ ps
PID TTY TIME CMD
35346 pts/2 00:00:00 bash
awk 'pattern {action}' test.txt
$ ping google.com
PING google.com (74.125.224.34) 56(84) bytes of data.
64 bytes from lax17s01-in-f2.1e100.net (74.125.224.34): icmp_req=1 ttl=57 time=7.82 ms
--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 8ms
rtt min/avg/max/mdev = 7.794/8.422/10.792/0.699 ms
sh скрипт
bash скрипт
#!/bin/bash
# Сценарий выведет имя пользователя
whoami
name="Вася"
echo $name # вывод значения
unset name # вывод переменной
HOME - путь к домашнему каталогу пользователя;
PATH - список каталогов, в которых оболочка ищет исполняемые файлы;
PWD - путь к рабочему каталогу;
RANDOM - формирует целое случайное число;
HOSTNAME - имя компьютера, на котором выполняется оболочка.
./some_script.sh VAL1 VAL2 # внутри сценария $1='VAL1', $2='VAL2'
files[0]=Гараж
files[1]=Котел
echo ${files[*]} # напечатает элементы массива без учета
IFS echo ${files[@]} # напечатает элементы массива с IFS в качестве разделителя
now=`data +%T`
# или
now=$(data +%T)
echo now # 14:06:24
foo=$(( ((10 + 5*3) – 7) / 2 ))
echo $foo #> 9
0 stdin ввод
1 stdout вивод
2 stderr поток ошибок
> - перенаправление потока вывода в файл (файл будет создан, или перезаписан)
>> - дописать поток вывода в конец файла;
< - перенаправляет данные из файла в поток ввода;
<<< - чтение данных из строки, вместо всего содержимого файла (работает для bash 3+)
2> - перенаправляет поток ошибок в файл (файл будет создан, или перезаписан)
2>> - дописать ошибки в конец файла.
cmd1 | cmd2 | cmd3
# Однострочная запись
if [ ... ]; then echo "true"; else echo "false"; fi;
## Вложенные условия
if [ ... ] && [ ... ]; then
...
elif [[ ... && ... ]]; then
...
else
...
fi;
case "$ext" in
(jpg|jpeg)
echo "Это изображение в формате jpeg."
;;
png)
echо "Это изображение в формате png"
;;
gif)
echo "А это ))"
*)
echo "Оу! Это вообще не изображение!"
;;
esac
while
for
*select
while условие do
тело
done
for имя in элемент1 элемент2 ... элементN do
тело
done
select ответ in элемент1 элемент2 ... элементN do
тeло
done
Имя функции () {
команды
}
Имя функции # обращение к функции
#!/bin/sh опция
–n - читать все команды, но не выполнять их;
–v - выводить все строки по мере их обработки интерпретатором;
*–x- выводить все команды и их аргументы по мере их выполнения.
set –x # включаем режим отладки
...
set +x # выключаем режим отладки