Служебные символы, имеющие особое значение в шелл скриптах
Если данный символ экранирован или заключен в одинарные или двойные кавычки, он будет выступать в роли обычного символа. Кроме того он может быть использован в операциях подстановки параметров и в константных числовых выражениях.
echo "Здесь символ # не является началом комментария."
echo 'Здесь символ # тоже не является началом комментария.'
echo Здесь экранированный символ \# тоже не является началом комментария.
echo А здесь # означает комментарий.
echo ${PATH#*:} # Подстановка параметров -- символ # не является началом комментария.
echo $(( 2#101011 )) # База системы счисления -- символ # не является началом комментария.
Экранируется символ #, символом \.
Кроме вышеописанных ситуаций, символ # не интерпретируется как начало комментария в операциях поиска по шаблону.
В некоторых ситуациях, данный служебный символ необходимо экранировать, как и знак начала комментария.
case "$variable" in
abc) echo "$variable = abc" ;;
xyz) echo "$variable = xyz" ;;
esac
Например, есть файл test.sh содержащий следующий сценарий:
#!/bin/bash
. var.file # загружаем переменные из внешнего файла
echo $var # выводим значение переменной
файл var.file содержит всего одну строку, где переменной $var присваивается значение Hello world !
Запускаем сценарий test.sh
freebsd /# ./test.sh Hello world !
Так-же «точка» может быть частью имени файла. Если имя файла начинается с точки, как правило, такой файл будет скрытым для просмотра командой ls ( зависит от оболочки ).
Если речь идет о каталогах, одна точка означает текущий каталог, две точки каталог уровнем выше, то есть родительский.
Команду точка, удобно использовать при копировании или перемещении объектов файловой системы. Например так:
freebsd /# cp /path/to/dir/* . # Копировать все файлы из директории /path/to/dir/ в текущую директорию
При операциях поиска по шаблону и в регулярных выражениях, символ точка означает любой одиночный символ.
#!/bin/bash
let "result = ((a= 5 + 3, b= 7 - 1, c= 15 - 4))"
echo $a
echo $b
echo $c
echo $result
выведет следующие результаты:
freebsd /# ./test.sh 8 # результат первой операции, присвоенный переменной $a 6 # результат второй операции, присвоенный переменной $b 11 # результат третьей операции, присвоенный переменной $c 11 # результат опять-же третьей операции, поскольку она последняя в последовательности выражений, присвоенный переменной $result
echo '$' # напечатает символ $
echo \$ # так-же напечатает символ $
При использовании в арифметических операциях, означает — деление.
#!/bin/bash
result= `hostname` # результат команды hostname присваиваем переменной
echo $result
выведет
freebsd /# ./test.sh freebsd.host # результат выполнения команды hostname
Практически все команды в операционных системах unix, возвращают «0» в случае успешного завершения работы.
Возможны следующие варианты использования.
Бесконечный цикл:
while :
do
echo "test"
done
-
# то-же самое но с использованием <em>true</em>
# while true
# do
# echo "test"
# done
Символ заполнитель в условном операторе if/then.
a=1
b=2
if [ $a = $b ]
then : # Не производить никаких действий
else
echo "test" # поскольку условие возвращает false ( $a не равно $b ), будет выполнена эта строка
fi
Символ заполнитель в операциях, предполагающих наличие двух операндов.
: ${username=`whoami`} # без символа двоеточия будет выдано сообщение об ошибке
Символ заполнитель в конструкциях вложенный документ.
В операциях с подстановкой параметров.
: ${HOSTNAME?} ${USER?} ${MAIL?}
# если одна или несколько переменных не определены, будет выведено сообщение об ошибке
В операциях замены подстроки с подстановкой переменных.
В сочетании с операторами перенаправления вывода
При использовании с оператором >, обнуляет содержимое файла, если файла не существует, он создается:
: > data.file # этой командой файл <em>data.file</em> будет очищен до нуля.
Того-же можно добиться с помощью команды cat /dev/null > data.file, только в этом случае создается новый процесс.
В сочетании с оператором >> перенаправление с добавлением в конец файла и изменением времени последнего доступа.
При задании имени не существующего файла, он будет создан, аналогично вышеописанному варианту или действию команды touch.
Два предыдущих варианта неприменимы к символическим ссылкам, конвейерам и другим специальным файлам.
Кроме перечисленного, символ двоеточие
можно использовать для создания комментариев, но это не рекомендуется, поскольку при использовании символа #, интерпретатор не проверяет данную строку на предмет ошибок, при использовании двоеточия это не так:: такой комментарий, приведет к сообщению об ошибке, ( if [ $x -eq 3] ).
Так-же символ двоеточие используется в качестве разделителя полей в файле /etc/passwd и переменной окружения $PATH.
freebsd /# echo $PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
if [ $a = $b ] # истина, если $a равно $b
if [ $a != $b ] # данное условие истинно если $a НЕ РАВНО $b
Восклицательный знак является зарезервированным словом оболочки bash.
В некоторых случаях может быть использован для косвенного обращения к переменным.
При использовании из командной строки оболочки, запускает механизм работы с историей команд, из сценариев данная возможность не доступна.
freebsd /# echo * file1.sh file2.sh file3.sh arch2.tar arch3.tar
В следующем варианте выведет файлы с любым именем, но только с расширением tar
freebsd /# echo *.tar arch2.tar arch3.tar
В регулярном выражении, означает 0 или больше, любых символов.
В арифметических операциях знак * — означает умножение, а в варианте ** — возведение в степень.
При использовании в конструкциях с двойными скобками, ведет себя как тернарный оператор языка C ( и многих других языков ).
(( t = a<6?10:20 )) # Тернарный оператор
echo "If a < 6, then t = 10, else t = 20." # то-же самое, традиционный вариант
При использовании в выражениях с подстановкой параметров, проверяет установлено-ли значение переменной.
: ${HOSTNAME?} ${USER?} ${MAIL?}
# если одна или несколько переменных не определены, будет выведено сообщение об ошибке
Кроме того используется как символ шаблон. При подстановке к имени файла и в регулярных выражениях, означает одиночный символ.
a=5
b=10
echo $a # выведет 5
echo $b # выведет 10
Установка символа $ перед именем переменной, означает что будет получено значение данной переменной.
В регулярных выражениях, означает конец строки.
id=${USER}-on-${HOSTNAME}
echo "$id"
выведет
freebsd /# ./test.sh root-on-freebsd.grt
Переменная $@ тоже содержит все параметры командной строки, но строку из себя представляет каждый параметр, то есть они не интерпретируются.
var=12345
( var=54321; ) # переменная определяется в дочернем процессе
echo "var = $var"
выведет
freebsd /# ./test.sh a = 12345
Другой вариант использования конструкции с одинарными скобками, инициализация массивов.
array=(element1 element2 element3)
и выводит найденные варианты
freebsd /# ./test.sh data.1:test data.3:test
Использовать в фигурных скобках пробелы можно, либо заключив их в одинарные или двойные кавычки, либо экранировав их с помощью символа \.
echo {test1,test2}\ :{\ A," B",' C'}
выведет
freebsd /# ./test.sh test1 : A test1 : B test1 : C test2 : A test2 : B test2 : C
a="test"
{ a=1111; }
echo "a = $a"
будет выведено:
freebsd /# ./test.sh a = 1111
Конструкция заключенная в фигурные скобки, может создавать перенаправление ввода/вывода.
Перенаправление ввода/вывода из вложенного блока:
#!/bin/bash
file=/etc/fstab
{
read line1
read line2
} < $file # считываем строки из файла fstab
echo "$line1"
echo "$line2"
exit 0
в результате выполнения этого сценария, будут выведены две первые строки файла /etc/fstab
freebsd /# ./test.sh # Device Mountpoint FStype Options Dump Pass# /dev/da0s1b none swap sw 0 0
Сохранить результат работы вложенного блока в файл
#!/bin/bash
# rpm-check.sh
# Этот сценарий получает описание rpm-пакета, список файлов, и проверяет возможность установки.
# Результат работы сохраняется в отдельном файле.
SUCCESS=0
E_NOARGS=65
if [ -z "$1" ]
then
echo "Порядок использования: `basename $0` rpm-file"
exit $E_NOARGS
fi
{
echo
echo "Описание архива:"
rpm -qpi $1 # Получаем описание rpm пакета
echo
echo "Список файлов:"
rpm -qpl $1 # Получаем список файлов пакета
echo
rpm -i --test $1 # Проверяем, возможно-ли установить данный пакет
if [ "$?" -eq $SUCCESS ]
then
echo "$1 установка возможна"
else
echo "$1 -- установка не возможна"
fi
echo
} > "$1.test" # Перенаправление результатов во внешний файл.
exit 0
В отличии от конструкций с обычными одинарными скобками, выполняющимися в дочернем процессе, вложенные блоки в фигурных скобках, выполняются в рамках того-же процесса, что и сам сценарий.
Обратите внимание что символ точка с запятой, завершающий опцию —ezec, команды find, должен быть экранирован, что-бы избежать его интерпретации.
var=1
if [ $var = 1 ]
then
echo "var= $var"
else :
fi
При работе с массивами, в квадратных скобках указывается индекс элемента к которому нужно обратиться.
array=(a b c) # создаем массив
echo ${array[1]} # выводим второй элемент массива
Нумерация элементов массива начинается с 0 ( ноль ), поэтому в элементе с индексом 1, находится символ b .
При использовании в регулярных выражения, в квадратных скобках, пишутся так называемые классы символов или диапазоны.
[xyz] — соответствует любому из этих трех символов
[0-9] — соответствует любому числовому символу от 0 до 9
[a-zA-Z] — соответствует любой, прописной или строчной букве, английского алфавита
При использовании с условным оператором if, наличие квадратных скобок, как одинарных так и двойных, не обязательно.
#!/bin/bash
echo
(( a = 23 )) # присваиваем значение переменной
echo "a ( ) = $a"
(( a++ )) # пост-инкремент значения переменной $a, в стиле языка C
echo "a ( a++) = $a"
(( a-- )) # пост-декремент значения переменной $a, в стиле языка C
echo "a ( a--) = $a"
(( ++a )) # пред-инкремент значения переменной $a, в стиле языка C
echo "a ( ++a) = $a"
(( --a )) # пред-декремент значения переменной $a, в стиле языка C
echo "a ( --a) = $a"
так-же можно использовать тернарные операторы, упомянутые ранее:
Операторы перенаправления позволяют передать вывод из файла, сценария, команды или блока команд на ввод другого файла, сценария, команды. Например:
freebsd /# ./test.sh > outfile # перенаправление вывода сценария stdout в файл outfile freebsd /# command &> outfile # перенаправление выводов stdout и stderr команды в файл outfile freebsd /# command >&2 # перенаправление вывода stdout команды в поток stderr freebsd /# ./test.sh >> outfile # перенаправление вывода сценария stdout в файл, в режиме добавления в конец файла
Операция подстановки процесса, передает вывод одного процесса на ввод другого.
между символами <, > и круглой скобкой не должно быть пробела.
Кроме того символы < и > используются в операциях сравнения символов и целых чисел.
#!/bin/bash
cat <<End-of-message
-------------------------------------
line one
line two
line three
-------------------------------------
End-of-message
exit 0
на выходе получим следующее:
freebsd /# ./test.sh ------------------------------------- line one line two line three -------------------------------------
Символ-ограничитель, в нашем примере End-of-message, не должен повторяться в теле самого встроенного документа.
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
Обратите внимание, при использовании операций сравнения в одинарных квадратных скобках, символы больше и меньше, необходимо экранировать обратным слэшем
grep '\' textfile # найти все вхождения отдельного слова the, такие слова как them или other, учтены не будут
freebsd /# ps aux | grep sshd root 1274 0.0 0.2 25108 4460 ?? Is Mon03PM 0:00.01 /usr/sbin/sshd root 1349 0.0 0.2 37040 5164 ?? Ss Mon03PM 0:06.84 sshd: root@pts/0 (sshd) root 22977 0.0 0.1 8060 1396 1 RL+ 9:18PM 0:00.00 grep sshd
или еще пример, команда cat выводит содержимое файла на вход команды wc, которая посчитает количество строк и выведет результат.
freebsd /# cat test.sh | wc -l 9
В конвейеры можно объединять как команды, так и сценарии. Например, перенаправим вывод команды ls на вход сценария, преобразующего символы в верхний регистр:
#!/bin/bash
tr 'a-z' 'A-Z'
exit 0
freebsd /# ls -l | ./test.sh # делаем перенаправление TOTAL 6688 -RWXR--R-- 1 ROOT WHEEL 28 JUL 25 18:34 1.PHP -RWXR--R-- 1 ROOT WHEEL 75 APR 4 09:57 1.PL -RWXR--R-- 1 ROOT WHEEL 60 APR 4 16:47 1.SH
Все символы, вывода команды ls, будет преобразован в верхний регистр.
Stdout каждого процесса в конвейере, должен читаться в stdin другого процесса, иначе конвейер оборвется:
cat file | ls -l | sort # здесь вывод содержимого файла командой cat уйдет в никуда, в результате на выходе мы получим не то, что ожидаем
Конвейер выполняется в отдельном процессе, поэтому не может получить доступ к переменным сценария.
Если какая-то из команд конвейера завершается аварийно, весь конвейер аварийно завершает работу.
#!/bin/bash
a=1
b=2
if [ $a -eq 10 ] || [ $b -eq 2 ]
then
echo "true"
else
echo "false"
fi
этот небольшой сценарий выведет true, поскольку второе условие вернет true, то и вся проверка вернет true.
Вышеприведенное условие можно записать в следующей форме:
if [[ $a -eq 10 || $b -eq 2 ]]
ну или аналог
if [ $a -eq 10 -o $b -eq 2 ]
Оператор ||, не может использоваться в одинарных квадратных скобках.
При использовании в сценариях, в фоновом режиме можно выполнять не только команды, но и циклы, например так:
#!/bin/bash
for i in 1 2 3 4 5 6 7 8 9 10
do
echo -n "$i "
done &
echo
for i in 11 12 13 14 15 16 17 18 19 20
do
echo -n "$i "
done
echo
exit 0
Обратите внимание, команда, запущенная из сценария в фоновом режиме, может съесть вывод фоновой команды. Например, следующий сценарий:
#!/bin/bash
ls -l & # команда ls запускается в фоне
echo "Done."
выведет такой результат:
freebsd /# ./test.sh Done.
как видите, результат выполнения команды ls, отсутствует.
Что-бы исправить поведение сценария, достаточно использовать оператор wait, который приостанавливает выполнение сценария, до тех пока, пока не будут завершены все фоновые задания. Приводим сценарий к следующему виду:
#!/bin/bash
ls -l &
echo "Done."
wait
теперь мы получим ожидаемый вывод:
freebsd /# ./test.sh Done. total 6688 -rwxr--r-- 1 root wheel 28 Jul 25 18:34 1.php -rwxr--r-- 1 root wheel 75 Apr 4 09:57 1.pl -rwxr--r-- 1 root wheel 60 Apr 4 16:47 1.sh
Формат использования аналогичен оператору || ( логическое ИЛИ ).
if [ $a -eq 1 ] && [ $b -eq 2 ]
или
if [[ $a -eq 10 && $b -eq 2 ]]
или
if [ $a -eq 10 -a $b -eq 2 ]
ls -l
Для многих команд наличие дефиса перед ключами опция не обязательно, например у команды ps, тем не менее бывают ситуации когда его использование необходимо, что-бы опции интерпретировались именно как опции а не как их значения.
Перенаправление из/в stdin или stdout
Пример перемещения дерева каталогов и файлов с помощью архиватора tar:
(cd ./ss && tar cf - . ) | (cd ./test && tar xpvf -)
что делает данный сценарий
- cd ./ss — перейти в каталог, расположенный в текущем каталоге, содержимое которого будем переносить
- && — все последующие команды будут выполнены только после выполнения перехода в исходный каталог
- tar cf — . -ключ c говорит архиватору tar создать новый архив, ключ f ( file ) с последующим — задается файл архива — stdout, в архив помещается текущий каталог ( . ) со всем содержимым.
- | ( … ) — конвейер в дочерний процесс
- cd ./test — Перейти в каталог назначения
- && — как и выше
- tar xpvf — — распаковать tar архив ( ключ x ), сохранить принадлежность и права доступа к файлам ( ключ p ), выдавая подробные данные во время выполнения ( ключ v ), файл архива stdin ( ключ f с последующим — )
Еще один пример:
freebsd /# echo "hello" | cat - hello
В таком контексте — ( дефис ), скорее не отдельный оператор bash, а опция, распознаваемая Unix утилитами ( tar, cat и т.д. ), выводящими результаты в stdout.
Если предполагается имя файла, —, перенаправляет вывод в stdout или принимает ввод с stdin.
При запуске программы file без параметров, будет выдано сообщение об ошибке:
freebsd /# file Usage: file [-bcikLhnNrsvz0] [-e test] [-f namefile] [-F separator] [-m magicfiles] file...
если передать в качестве параметра — ( дефис ), file будет ожидать пользовательского ввода:
freebsd /# file - aaaaa /dev/stdin: ASCII text freebsd /# file - #!/bin/bash /dev/stdin: POSIX shell script text executable
как видите, программа file проанализировала стандартный поток ввода stdin и определила тип его содержимого.
Передача stdout по конвейеру на вход других команд, позволяет выполнять различные трюки, например, вставка строки в начало файла:
#!/bin/bash
file="./text.txt"
title="this is first line"
echo $title | cat - $file >$file.new
на выходе получаем файл text.txt.new, содержащий все предыдущие данные, плюс первую строку «this is first line».
Теперь более полный пример использования архиватора tar с символом —. Небольшой скрипт для архивирования файлов, подвергшихся изменениям в течение последних суток:
#!/bin/bash
BACKUPFILE=backup
archive=${1:-$BACKUPFILE} # если имя для архива не задано в командной строке, будет назначено имя по умолчанию <em>backup.tar.gz</em>
tar cvf - `find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"`
gzip $archive.tar
echo "done"
exit 0
Оператор перенаправления — может конфликтовать с именами файлов, начинающихся с дефиса -filename, что-бы этого избежать, в сценариях необходимо проверять имена файлов и предварять их префиксом пути, например: ./-filename или $PWD/-filename.
Кроме того не забывайте о значениях переменных, простой пример:этот сценарий ничего не выведет, поскольку итоговая команда получится echo -n, то есть значение переменной, «-n», будет интерпретировано как опция команды echo, просто подавляющая вывод символов новой строки.
При использовании — с командой cd, производит переход в предыдущий рабочий каталог.
В арифметических выражениях, означает операцию вычитания.
Не забывайте, интерпретация символа — ( дефис ), зависит от контекста, в котором вы его используете.
a=100
b="test"
echo $a # выведет 100
echo $b # выведет test
или как знак равенства в операциях сравнения.
В регулярных выражениях означает, одно или несколько совпадений предыдущего символа.
В шаблонах, удаляет из переменной большую или меньшую подстроку, совпадающую с шаблоном. Поиск ведется с конца строки.
freebsd /# echo ~ /root freebsd /# ls -l ~ # листинг домашнего каталога текущего пользователя total 47030 -rw------- 1 root wheel 120 Aug 28 23:56 .bash_history drwxr-xr-x 5 root wheel 512 Jul 16 16:54 .cpan -rw-r--r-- 1 root wheel 940 Jul 5 12:16 .cshrc drwxr-xr-x 3 root wheel 512 Jun 24 02:41 .gem
Управляющий символ
В качестве управляющего символа, управляет выводом текста или поведением терминала. Набирается на клавиатуре как сочетание Ctrl+клавиша.
Ctrl+C — Прервать выполнение процесса.
Ctrl+D — Выход из системной оболочки, аналог команды exit или EOF— конец файла, так-же выступает завершающим символом при вводе с stdin.
Ctrl+G — BEL, звуковой сигнал.
Ctrl+H — Backspace, удалить предыдущий символ.
Ctrl+J — Возврат каретки.
Ctrl+L — Аналог команды clear, очистка окна терминала.
Ctrl+M — Перевод строки.
Ctrl+U — Очистить строку ввода.
Ctrl+X — Приостановить выполнение процесса.
Поскольку bash довольно привередлив в отношении пробелов, есть строгие ограничения на использование пробельных символов в операциях присвоения значений переменным. Например:
var = 123 # не правильный вариант, переменная будет интерпретирована как команда м аргументами = и 123
var=123 # правильный вариант
let c = $a - $b # не правильный вариант
let c=$a-$b # правильный
let "c = $a - $b" # тоже допустимо
if [ $a -le 5] # не правильный вариант
if [ $a -le 5 ] # правильный
if [ "$a" -le 5 ] # тоже правильный
[[ $a -le 5 ]] # тоже правильный
Пустые строки никак не интерпретируются, их можно свободно использовать, например для визуального выделения строк или блоков сценария.
Переменная $IFS содержит разделитель полей, используемый некоторыми программами, по-молчанию, пробел.
1.3. Символ
Само название «текстовый документ» говорит о том, что его основой является собственно текст. Текст представляет собой совокупность символов. Из символов составляются слова. Слова располагаются по строкам, образуя абзацы и страницы. Все перечисленные объекты имеют свои параметры, и для них используются соответствующие технологические приемы форматирования.
При подготовке текста очень важно понимать, с каким объектом вы работаете, и какие параметры имеет этот объект. Тогда можно более продуктивно использовать приемы автоматизации подготовки документа.
Среда Word распознает отдельные элементы текста – символ, слово, строка, абзац, список. Из них символ, абзац и список являются объектами, которые имеют определенный набор параметров форматирования.
Символ – элементарная неделимая единица текста. Для ввода символов используется клавиатура.
Символы разделяются на следующие группы:
строчные буквы (а, б, в, г, д, е …)
прописные буквы (А, Б, В, Г, Д, Е …)
цифры (1, 2, 3 …)
знаки (@, «, #, №, $ …)
специальные символы
непечатаемые символы, в том числе пробел – пустой символ, используемый для отделения слов друг от друга.
Символы набираются либо простым нажатием соответствующей клавиши, либо при одновременном с ней нажатии клавиши Shift. Так, например, строчные символы и цифры, а также некоторые знаки набираются простым нажатием соответствующей клавиши клавиатуры. А для набора прописных букв и знаков, расположенных на цифровых клавишах, надо дополнительно нажать клавишуShift.
На клавишах клавиатуры обозначено по два (и даже по три) символа. Одни символы набираются при переключении раскладки клавиатуры на режим «Русский», другие – при переключении на английскую раскладку клавиатуры. Некоторые символы (например, цифры и некоторые знаки) имеют одну и ту же клавишу в обеих раскладках.
На клавиатуре располагается также отдельная группа цифровых клавиш и арифметических знаков. Эти клавиши дублируют назначение соответствующих клавиш основной клавиатуры. Чтобы использовать клавиши этой группы, надо включить режим NumLock, нажав на одноименную клавишу, расположенную в этой группе.
Специальные символы
Основная клавиатура имеет 47 клавиш, которые позволяют ввести в общей сложности 167 различных символов в русской и английской раскладках. Но, возможно, вам приходилось встречать в текстовых документах символы, которые не отображены на клавишах клавиатуры.
Например, в тексте могут встречаться слова немецкого, шведского, финского и других языков, содержащие буквы с надстрочными (или подстрочными) знаками, которые используются в национальных алфавитах – Ϋ, U, G, Ã и др. Надстрочные и подстрочные знаки, используемые у некоторых символов национальных алфавитов, называются диакритическими знаками.
Есть символы, обозначающие денежные единицы других государств – £ (английский фунт), ¥ (японская иена), € (евро), ₤ (итальянская лира) и др.
Есть экономические, юридические символы – © (авторское право), ™ (торговая марка), ® (охраняемый знак) и др.
Есть грамматические символы, которые в тексте имеют специальное назначение. Рассмотрим грамматические знаки «дефис» и «тире». Дефис– символ, связывающий две части слова или два слова, которые читаются как одно, например, «кто-то», «темно-синий», «из-за» и др. Дефис не отделяется от соседних букв пробелами. Если слово с дефисом не будет полностью помещаться на одной строке, то среда текстового процессора разобьет его по дефису на две части. И тогда при чтении дефис будет восприниматься как перенос. Годы, разделенные чертой, например, 1941-1945, также плохо будут восприниматься при чтении, если окажутся на разных строках. Чтобы исключить нежелательный перенос в словах используется специальный символ «неразрывный дефис».
Тире— это знак, разделяющий две части предложения. В отличие от дефиса тире обязательно отделяется пробелами от соседних слов. В печатных изданиях дефис обозначается короткой горизонтальной чертой, а тире – длинной. Но на компьютерной клавиатуре есть только одна клавиша, которая может использоваться и как знак «минус», и как «дефис», и как «тире». Поэтому для написания тире используется специальный символ «длинное тире».
То, что слова отделяются друг от друга пробелом, знают все. Среда текстового процессора распределяет слова по строкам. Если слово полностью не помещается на одной строке, то оно переносится на следующую строку. Однако существуют текстовые фразы, для которых нежелательно, чтобы слова располагались на разных строках. Например, плохо воспринимается текст, если буквы имени и отчества останутся на одной строке, а фамилия перейдет на следующую (А.С. Пушкин). Так же плохо будет смотреться фраза «2004 г.», если буква «г» окажется на новой строке. Чтобы избежать таких ситуаций существует специальный символ «неразрывный пробел».
Для того чтобы ввести в текст эти и другие специальные символы, которые не отображены на клавишах, используется группа Символына вкладкеВставка. Если выбрать командуДругие символы (Рис. 5), откроется окноСимвол(Рис. 6).
Рис. 5. Инструменты вставки символов
На вкладке Символыможно просмотреть все символы, допускаемые для ввода в среде Word. В раскрывающемся спискеШрифтможно выбрать конкретный тип шрифта символа. Если в списке выбрать пунктОбычный текст, то символ будет набран тем шрифтом, которым набирается текст. В центральном окне находится 1170 различных символов. Они распределены по группам, которые можно просмотреть в раскрывающемся спискеНабор, например: Основная латиница, Денежные единицы, Математические операторы, Греческие и коптские символы и т.д.
На вкладке Специальные знакиприведены некоторые символы, о которых говорилось выше: неразрывный пробел, неразрывный дефис, длинное тире, авторское право, торговая марка и другие. Справа от перечня знаков приведены сочетания клавиш, которые приводят к быстрой вставке символа. Если сочетания клавиш для некоторого символа не установлено, а он используется в тексте довольно часто, можно ввести новое сочетание клавиш для выделенного символа (Рис. 7). Для этого следует:
Рис. 6. Окно Символ
Рис. 7. Назначение сочетания клавиш для вставки символа
щелкнуть по кнопке Сочетание клавиш;
в окне Настройка клавиатурыщелкнуть в полеНовое сочетание клавиш;
нажать клавиши, которые будут клавиатурным эквивалентом вставки данного символа;
щелкнуть по кнопке Назначить.
Некоторые виды шрифтов, могут не поддерживать все 1170 знаков.
Большинство шрифтов являются символьными. Иначе говоря, представляют собой разработанные дизайнерами в едином стиле изображения символов. Шрифт подобен почерку у людей. Красивый почерк легко читается. Просмотрите наборы символов различных шрифтов, и вы увидите, что в каждом шрифте между символами существует нечто общее, их объединяющее. У всех символов есть элементы (закругления, выступы, утолщения) выполненные одинаково. Если слово написано одним шрифтом, то и читать его удобнее чем, если бы буквы были написаны разными шрифтами.
Кроме символьных шрифтов, существуют также декоративные шрифты. Они содержат наборы различных графических изображений. Эти шрифты называются дингбатсы. К ним относятся шрифты Webdings, Wingdings , Wingdings2, Wingdings3. На Рис. 8 приведены образцы декоративных символов.
Рис. 8. Декоративные шрифты
Кроме видимых символов, существуют также непечатаемые знаки. Это служебные символы, по которым среда текстового процессора отличает информационные объекты. Например, пробел – непечатаемый символ, служит для отделения слов друг от друга. В дальнейшем мы узнаем назначение многих непечатаемых символов.
Непечатаемые символы несут в себе важную информацию, необходимую для правильного форматирования документа. Поэтому при работе желательно включить режим отображения непечатаемых символов. Для этого на вкладке Главнаяв группеАбзацнайдите кнопку (Непечатаемые знаки) и нажмите ее. При включении этого режима пробелы между словами будут изображаться точками. И сразу можно увидеть, сколько пробелов стоит между словами. Хорошим стилем считается применение однократного нажатия пробела для разделения слов.
служебные символы — это… Что такое служебные символы?
- служебные символы
- service digits
Русско-английский словарь нормативно-технической терминологии. academic.ru. 2015.
- служебные сигналы или данные
- служебные телексные вызовы
Смотреть что такое «служебные символы» в других словарях:
служебные символы — — [http://www.iks media.ru/glossary/index.html?glossid=2400324] Тематики электросвязь, основные понятия EN service digits … Справочник технического переводчика
Символы районов Вологодской области — … Википедия
FAT — (англ. File Allocation Table «таблица размещения файлов») классическая архитектура файловой системы, которая из за своей простоты всё ещё широко используется для флеш накопителей. В недавнем прошлом использовалась в дискетах, на… … Википедия
Псевдографика — Псевдографика, псевдографические символы совокупность символов, включенных в набор символов компьютерного шрифта, отображающих графические примитивы (линии, прямоугольники, треугольники, кресты, различная заливка и т. п.).… … Википедия
Логика второго порядка — в математической логике формальная система, расширяющая логику первого порядка[1] возможностью квантификации общности и существования не только над атомами, но и над предикатами. Логика второго порядка несводима к логике первого порядка. В… … Википедия
Логика первого порядка — (исчисление предикатов) формальное исчисление, допускающее высказывания относительно переменных, фиксированных функций и предикатов. Расширяет логику высказываний. В свою очередь является частным случаем логики высшего порядка. Содержание 1 … Википедия
Исчисление предикатов — Логика первого порядка (исчисление предикатов) формальное исчисление, допускающее высказывания относительно переменных, фиксированных функций, и предикатов. Расширяет логику высказываний. В свою очередь является частным случаем логики высшего… … Википедия
Исчисления предикатов — Логика первого порядка (исчисление предикатов) формальное исчисление, допускающее высказывания относительно переменных, фиксированных функций, и предикатов. Расширяет логику высказываний. В свою очередь является частным случаем логики высшего… … Википедия
Логика предикатов — Логика первого порядка (исчисление предикатов) формальное исчисление, допускающее высказывания относительно переменных, фиксированных функций, и предикатов. Расширяет логику высказываний. В свою очередь является частным случаем логики высшего… … Википедия
Предикатная логика — Логика первого порядка (исчисление предикатов) формальное исчисление, допускающее высказывания относительно переменных, фиксированных функций, и предикатов. Расширяет логику высказываний. В свою очередь является частным случаем логики высшего… … Википедия
ZX81 — Тип Домашний компьютер Выпущен 1981 … Википедия
Специальные символы — Википедия
Материал из Википедии — свободной энциклопедии
Специальные символы | |
---|---|
англ. Specials | |
Диапазон | FFF0—FFFF (16 кодовых позиций) |
Плоскость | BMP |
Письменности | Общие знаки |
Основные стандарты | ISO 8859, ISO 646 |
Задействовано | 5 кодовых позиций 4 |
Зарезервировано | 9 кодовых позиций 2 несимвольных знака |
1.0.0 | 1 (+1) |
2.1 | 2 (+1) |
3.0 | 5 (+3) |
Примечания: [1][2] | |
Официальный документ Юникода (PDF) |
Специальные символы (англ. Specials) — 161-й блок стандарта «Юникод» и последний в Основной многоязычной плоскости. Занимает кодовые позиции с U+FFF0 по U+FFFF. Из содержащихся в блоке шестнадцати кодовых позиций задействованы лишь пять. Блок примечателен символом-заполнителем (�), относящимся к двум самым часто используемым символам в Юникоде, который в большинстве операционных систем (преимущественно в браузерах) отображаются, когда какой-либо символ Юникода не поддерживается самой системой пользователя или не включён в набор шрифта. В иных случаях вместо символа-заполнителя отображается белый вертикальный прямоугольник (▯).
Цвет | Буква добавлена в версии |
---|---|
2.1 | |
3.0 | |
зарезервировано | |
не символ |
Код | Символ | Название | HTML | |
---|---|---|---|---|
16-чный | 10-чный | |||
U+FFF0 | <reserved-FFF0> | ￰ | ￰ | |
U+FFF1 | <reserved-FFF1> | ￱ | ￱ | |
U+FFF2 | <reserved-FFF2> | ￲ | ￲ | |
U+FFF3 | <reserved-FFF3> | ￳ | ￳ | |
U+FFF4 | <reserved-FFF4> | ￴ | ￴ | |
U+FFF5 | <reserved-FFF5> | ￵ | ￵ | |
U+FFF6 | <reserved-FFF6> | ￶ | ￶ | |
U+FFF7 | <reserved-FFF7> | ￷ | ￷ | |
U+FFF8 | <reserved-FFF8> | ￸ | ￸ | |
U+FFF9 | interlinear annotation anchor |  |  | |
U+FFFA | interlinear annotation separator |  |  | |
U+FFFB | interlinear annotation terminator |  |  | |
U+FFFC | object replacement character |  |  | |
U+FFFD | � | replacement character | � | � |
U+FFFE | <noncharacter-FFFE> |  |  | |
U+FFFF | <noncharacter-FFFF> |  |  |
| |||
Википедия:Специальные символы — Википедия
Материал из Википедии — свободной энциклопедии
Википедия записывает статьи в кодировке Юникод, поэтому для удобства чтения исходного текста следует все символы вставлять непосредственно, без использования кодов HTML, например, α вместо α
.
Символ | HTML-мнемоника |
¿ ¡ | ¿ ¡ |
« » ‹ › | « » ‹ › |
» ‘ ’ “ ” ‚ „ | " ‘ ’ “ ” ‚ „ |
§ ¶ | § ¶ |
† ‡ | † ‡ |
• | • |
— – | — – |
… | … |
<неразрывный пробел> | |
Математические символы[править код]
√ ∫ ∂ ∑ ∏ & | √ ∫ ∂ ∑ ∏ & |
операторы: − ± × ⋅ ∗ ÷ | − ± × ⋅ ∗ ÷ |
векторное умножение: ⨯ | ⨯ |
операции умножения и прямой суммы: ⊗ ⊕ | ⊗ ⊕ |
условия: ≅ ≈ ∝ ≡ ≠ ≤ ≥ < > | ≅ ≈ ∝ ≡ ≠ ≤ ≥ < > |
множества: ∈ ∉ ∩ ∪ ⊂ ⊃ ⊆ ⊇ ∅ | ∈ ∉ ∩ ∪ ⊂ ⊃ ⊆ ⊇ ∅ |
логические: ¬ ∧ ∨ | ¬ ∧ ∨ |
кванторы: ∃ ∀ | ∃ ∀ |
двойные стрелки: ⇐ ⇒ ⇑ ⇓ ⇔ | ⇐ ⇒ ⇑ ⇓ ⇔ |
одинарные стрелки: ← → ↑ ↓ ↔ ↕ ↵ | ← → ↑ ↓ ↔ ↕ ↵ |
верхние индексы: ¹ ² ³ | ¹ ² ³ |
дроби: ¼ ½ ¾ | ¼ ½ ¾ |
градусы: ° | ° |
минуты, футы: ′ | ′ |
секунды, дюймы: ″ | ″ |
бесконечность: ∞ | ∞ |
промилле: ‰ | ‰ |
от букв: ∇ ℵ ℑ ℘ ℜ | ∇ ℵ ℑ ℘ ℜ |
∴ | ∴ |
Белые фигуры: ♔♕♖♗♘♙ | ♔ ♕ ♖ ♗ ♘ ♙ |
Чёрные фигуры: ♚♛♜♝♞♟ | ♚ ♛ ♜ ♝ ♞ ♟ |
С помощью символов «нижняя половина блока» и «верхняя половина блока» можно изобразить шахматное поле:
▄▀▄▀ | ▄▀▄▀ |
† | ֆ |
‡ | և |
™ © ® | ™ © ® |
¢ € ¥ £ ¤ | ¢ € ¥ £ ¤ |
♠ ♣ ♥ ♦ | ♠ ♣ ♥ ♦ |
⊕ ⊗ | ⊕ ⊗ |
ª º | ª º |
´ ¨ ˜ ‾ ¦ ◊ | ´ ¨ ˜ ‾ ¦ ◊ |
∠ ⊥ ƒ ⁄ ˆ | ∠ ⊥ ƒ ⁄ ˆ |
★ ☭ ♪ ☂ ☠ ☛ | ★ ☭ ♪ ☂ ☠ ☛ |
⇆ | ⇆ |
█ ░ ▒ ▓ | █ ░ ▒ ▓ |
► ◄ ▼ ▲ | ► ◄ ▼ ▲ |
▌ ▄ ■ ▀ ▐ | ▌ ▄ ■ ▀ ▐ |
 � |  � |
Α Β Γ Δ Ε Ζ α β γ δ ε ζ | Α Β Γ Δ Ε Ζ α β γ δ ε ζ |
Η Θ Ι Κ Λ Μ Ν η θ ι κ λ μ ν | Η Θ Ι Κ Λ Μ Ν η θ ι κ λ μ ν |
Ξ Ο Π Ρ Σ ξ ο π ρ σ ς | Ξ Ο Π Ρ Σ ξ ο π ρ σ ς |
Τ Υ Φ Χ Ψ Ω τ υ φ χ ψ ω | Τ Υ Φ Χ Ψ Ω τ υ φ χ ψ ω |
Комбинируемые диакритические символы[править код]
Ниже показаны диакритические модификаторы букв на примере буквы «а»:
à | ̀ |
á | ́ |
â | ̂ |
ã | ̃ |
ä | ̈ |
ả | ̉ |
a̋ | ̋ |
ǎ | ̌ |
a⃗ | ⃗ |
Фиксированные диакритические символы[править код]
Используйте диакритические символы только для иностранных слов! Для того чтобы поставить ударение в русском слове, поставьте после ударной гласной символ ́ (́
), получится, например, а́ (чтобы не иметь дело с хитрыми знаковыми последовательностями, можно просто написать {{подст:ударение}}).
À Á Â Ã Ä Å Æ Ą à á â ã ä å æ ą | À Á Â Ã Ä Å Æ Ą à á â ã ä å æ ą |
Ç Ć Ĉ Č ç ć ĉ č | Ç Ć Ĉ Č ç ć ĉ č |
È É Ê Ë Ę Ě è é ê ë ę ě | È É Ê Ë Ę Ě è é ê ë ę ě |
Ì Í Î Ï ì í î ï | Ì Í Î Ï ì í î ï |
Ð ð | Ð ð |
Ñ ñ | Ñ ñ |
Ò Ó Ô Œ Õ Ö Ø ò ó ô œ õ ö ø | Ò Ó Ô Œ Õ Ö Ø ò ó ô œ õ ö ø |
Ù Ú Û Ü ù ú û ü | Ù Ú Û Ü ù ú û ü |
Ý Ÿ ý ÿ | Ý Ÿ ý ÿ |
Þ þ | Þ þ |
ß | ß |
Эти символы используются в фонетических транскрипциях слов.
ʈ ɖ ɟ ɢ ʔ ɡ | ʈ ɖ ɟ ɢ ʔ ą |
ɱ ɳ ɲ ŋ ɴ | ɱ ɳ ɲ ŋ ɴ |
ʙ ʀ ɾ ɽ | ʙ ʀ ɾ ɽ |
ɸ β θ ð ʃ ʒ ʂ ʐ ç ʝ ɣ γ ʁ ħ ʕ ɦ | ɸ β θ ð ʃ ʒ ʂ ʐ ç ʝ ɣ γ ʁ ħ ʕ ɦ |
ʋ ɹ ɻ ɰ | ʋ ɹ ɻ ɰ |
ɨ ʉ ɯ ɪ ʏ ʊ | ɨ ʉ ɯ ɪ ʏ ʊ |
ø ɘ ɵ ɤ ə ɛ œ ɜ ɞ ʌ ɔ | ø ɘ ɵ ɤ ə ɛ œ ɜ ɞ ʌ ɔ |
æ ɐ ɶ ɑ ɒ | æ ɐ ɶ ɑ ɒ |
ʍ ɥ ʜ | ʍ ɥ ʜ |
ʦ ʧ ʨ ʣ ʤ ʥ | ʦ ʧ ʨ ʣ ʤ ʥ |
ʢ ʡ ɕ ʑ ɺ ɧ | ʢ ʡ ɕ ʑ ɺ ɧ |
ɓ ɗ ʄ ɠ ʛ | ɓ ɗ ʄ ɠ ʛ |
ɭ ʎ ʟ ɬ ɮ | ɭ ʎ ʟ ɬ ɮ |
ʘ ǀ ǃ ǂ ǁ | ʘ ǀ ǃ ǂ ǁ |
ʼ ˈ ˌ ː ˑ ˘ ‖ ‿ | ʼ ˈ ˌ ː ˑ ˘ ‖ ‿ |
Подстрочные и надстрочные индексы[править код]
Надстрочные индексы вставляются так: X<sup>2+3·4</sup>
→ X2+3·4 (либо с использованием шаблона {{sup}}: X{{sup|2+3·4}}
→ X2+3·4)
Подстрочные индексы вставляются так: X<sub>2+3·4</sub>
→ X2+3·4 (либо с использованием шаблона {{sub}}: X{{sub|2+3·4}}
→ X2+3·4)
Можно также использовать специальные надстрочные и подстрочные символы Юникода: X⁰¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ⁿ X₀₁₂₃₄₅₆₇₈₉₊₋₌₍₎
Об использовании индексов в формулах см. также статью «Википедия:Формулы».
В статье «Кириллица в Юникоде» можно найти символы кириллицы (включая устаревшие и дополнительные) и языка коми.
2.6. Рассмотрим использование специальных символов оболочки
Продолжим рассмотрение правил использования командной строки. Поскольку оболочек много, то, естественно, что какие-то конкретные правила записи команд могут отличаться для разных версий программы. Но многие оболочки интерпретируют специально выделенный набор символов одинаково. За ними закреплены особые функции. Мы уже встретились с тем, как используются «/» и «$». В командной строке могут быть использованы и другие специальные символы. Рассмотрим их назначение, систематизировав такую информацию в одном месте. При этом для некоторых символов подробные примеры использования будут приведены и в других частях пособия. До начала рассмотрения использования некоторых специальных символов отметим, что их очень много. Рассматривать будем только небольшую часть. Описание всех из них содержится в страницах справочного руководства man страницы bash.
Символ \
Сначала изучим, как используется символ «\» – обратный слеш. Он может иметь разное применение. В имени файла он используется, когда за ним располагается пробел « » или другой символ, выполняющий служебную роль, но последнюю надо отменить. Следующая группа команд демонстрирует операции с каталогом, имеющим в имени пробел. В приведенном тексте применен символ (#), используемый в сценариях для записи комментариев.
# переход в домашний каталог пользователя
cd ~
# вывод его адреса
pwd
root
# создание каталога,
# имеющего в имени символ пробел
mkdir 1-th\ directory
# копирование файла в созданный каталог
cp .profile /root/1-th\ directory
# копирование второго файла в созданный каталог
cp .bashrc ./1-th\ directory
# вывод списка файлов текущего каталога
# и всех подчиненных ему
ls –R
.:
1-th directory
./1-th directory
Кавычки
Есть три типа кавычек: двойные ( » ), одиночные ( ’ ) и обратные ( ` ) (в литературе встречаются и другие названия третьих: одиночные апострофы, слабое ударение). Они всегда используются в паре.
Внутри двойных кавычек отменяется действие всех служебных символов кроме трех: $ (доллар), ` (обратные кавычки) и \ (обратный слеш). В некоторых вариантах оболочек пара таких символов отменяется еще и действие специальных символов «!» и «|».
Одинарные кавычки действуют более «строго». Внутри них теряют назначение все специальные символы оболочки. Еще одна пара символов – обратные кавычки – применяются, когда результат выполнения одной команды нужно использовать как входные аргументы для выполнения другой команды.
Начнем с рассмотрения использования двойных кавычек. Используемая в нескольких следующих примерах команда echo выводят значения двух переменных HOME и BASH. Для двойных кавычек в первом и втором случаях вывод одинаков – двойные кавычки не отменяют действие символа $. Только в третьем случае его действие отменяется символом \, поэтому распечатывается не значение переменной, а набор символов $HOME.
echo “$HOME $BASH”
/root /bin/bash
echo “$HOME $BASH”
/root/bin /bash
echo “\$HOME $BASH”
$HOME /bin/bash
В следующих командах имена переменных заключены в одиночные кавычки. В первом и втором случаях действие символа $ отменяется, а в третьем – отменяется действие и \.
echo’$HOME $BASH’
$HOME $BASH
echo ’$HOME $BASH’
$HOME $BASH
echo ’\$HOME $BASH’
\$HOME $BASH
Теперь приведем примеры команд с использованием обратных кавычек. Как говорилось их применение оправдано, когда результат выполнения одной команды надо передать другой. Если ввести команду
cal 12
то выводится информация о 12-м месяце текущего года.
Декабрь 2009
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Команда
date “+%m %y“
даст такой результат
12 09
Такие две команды можно соединить обратными кавычками так
cal `date “+%m %y“`
Это даст результат как у команды cal с параметрами 12 09
Декабрь 2009
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Продолжим рассматривать использование других специальных символов оболочек.
Символ &
Этот символ позволяет перевести выполнение команды в фоновый режим. Последний может одновременно реализовывать несколько процессов. В режиме многозадачности они будут попеременно получать системные ресурсы и, прежде всего, процессорное время. Мы подробнее поговорим о фоновых процессах в лабораторной работе 4.
Символ ;
Этот символ используется, когда в строке надо записать более одной команды. Если не ставить этот знак, то вторая команда будет восприниматься как параметры первой. Но если соединить этим знаком обе команды, то они будут выполнены последовательно. К примеру, если записать
cd / ; ls
то будут выполнены две команды. Первая сделает активным корневой каталог файловой системы, а вторая – распечатает на экране его содержимое.
bin dev home lost+found misc net proc sbin srv tmp var boot etc lib media mnt opt root selinux sys usr
Действие следующих символов так же позволяют записать в строке более одной команды. Но последние оказывают влияние друг на друга.
Символ |
Этот случай использования специального символа оболочки мы уже рассматривали. Его применяют для связывания команд с перенаправлением результатов выполнения одной команды (стандартного вывода) на вход (стандартный ввод) следующей. Утилита ps выводит список активных процессов, а grep ищет и выводит в текстовом файле строки, содержащие фрагменты-образцы. Приведенная комбинация двух команд выводит на экран только те из активных процессов, которые начинаются с символа «[». Команда представляет интерес потому, что процессы ядра заключаются в квадратные скобки.
ps -ef | grep “\[“
Приведем еще примеры использования рассматриваемого специального символа. Команда wc подсчитывает характеристики файлов (количество символов, слов или строк). Такая комбинация команд позволяет подсчитать количество файлов текущего каталога
ls -l | wc -l
Отметим, что параметр -l команды wc выводит количество строк, а одноименный параметр первой команды выводит список файлов текущего каталога по одному в строке.
Если соединить знаком «|» утилиту printenv и команду сортировки содержимого файла sort, то получим список специальных переменных, который упорядочен по их имени
printenv | sort
Сделаем еще одно замечание о связывании команд. Для удобства просмотра на экране текстов большого размера используются команды more и less. Они позволяют выводить в постраничном режиме содержимое текстовых файлов. Связанные с другими командами символом «|», они обеспечивают постраничный вывод информации (при заполнении экрана вывод информации останавливается до нажатия определенной клавиши, например, пробел). Их отличие в том, что вторая (less) обеспечивает возврат к уже просмотренной информации, а первая – нет.
Символы && и ||
Они являются управляющими символами и применяются в случаях, когда выполнение команды зависит от результатов предыдущей.
Если две команды соединены так
КОМАНДА1 && КОМАНДА2
то вторая из них выполняется тогда, когда первая команда завершилась успешно (принято, что код ее выполнения будет равен 0).
Если вторую команду надо выполнить в случае неудачного завершения первой используют символы «||». В таком случае код выполнения первой команды отличен от нуля, Приведем примеры использования этих символа.
date || cal
Выполняется только первая команда date
Вск Апр 9 08:49:17 MSD 2006
date && cal
Выполняются обе команды date и cal
Ноя Суб 4 08:49:17 MSD 2006
Ноябрь 2006
Пн Вт Ср Чт Пт Су Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Задание 17.
Опробуйте использование символов && и || на следующих примерах. Команда
mkdir dir1
создает новый каталог. Если она завершается успешно, то код возврата будет 0, в противном случае – 1. Создайте каталог с именем dir1 и в этой же строке выведите сообщение, используя &&
mkdir dir1 && echo “Well”
Теперь соедините команду создания каталога с именами dir2 и вывод сообщения символом ||.
mkdir dir2|| echo “Well”
Теперь замените команду создания каталогов другой
grep root /etc/passwd
Она проверяет, есть ли в файле /etc/passwd (файл паролей) строка root. Задайвайте имя существующих пользователей (asplinux, bin), а затем не существующих (например, noroot, asplonux1). Соедините выполнение такой командой с выводом сообщения сначала символами &&, а затем – ||
Символы > < >>
Они используются для того, чтобы временно изменить назначение стандартных потоков: ввода, вывода и ошибок. Последние имеют следующие обозначения и цифровые эквиваленты.
stdin 0
stdout 1
stderr 2
По умолчанию каждая программа получает эти три потока. При этом ввод данных она ожидает с клавиатуры, а выводить информацию, в том числе об ошибках, будет на терминал. Символ > позволяет перенаправить стандартный вывод в файл. К примеру
date > fpr
позволяет перенаправить стандартный вывод команды date в файл fpr. Таким образом, в этом файле фиксируется текущая дата и его содержимое можно использовать в других командах. Использование символа >> позволяет добавить результат в уже созданный файл.
ls >> fpr
Последняя команда добавляет вывод команды ls в уже созданный файл fpr. Теперь в нем будет записана дата, а затем содержимое текущего каталога. Далее fpr можно просмотреть, например, используя cat, перенаправляя его на ввод команды символом <
cat < fpr
Сделаем небольшое отступление, подробнее изучив использование команды cat. Она может выполнять разные операции. Мы уже приводили вариант использования команды, когда создавали текстовые файлы – сценарии.
cat > file
Приведем еще примеры
cat
Таким образом, начинается вывод информации с клавиатуры на экран. Напомним, что комбинация <Ctrl+D> – означает окончание ввода с клавиатуры.
Следующая команда
cat file > file1
выполняет копирование файла file в file1.
Исполнив это
cat >> file1
можно добавить текст, набираемый на клавиатуре в конец файла.
И, наконец, подобным образом
cat file file1 > file2
объединяют в файле file содержимое других файлов (не обязательно других) – file1 и file2 (или file1 и file1, соответственно).
Задание 18.
Сравните содержимое каталогов двух пользователей: asplinux и root. Определите, какой из них содержит больше файлов.
Задание 19.
В файле my запишите результат выполнения команды date.
date “+%m %y” > my
Перенаправьте содержимое файла my команде cal
cal < my
Приведем пример, когда стандартный поток, куда направляются ошибки, перенаправлен в файл. При правильном выполнении команд, это файл пуст. Дадим сначала правильную команду, а затем – неправильную.
ls –R 2>> errlist1
cat errlist1
Теперь у этой же команды уберем пробел, отделяющий имя команды от параметра, и выполним две такие команды
ls–R > errlist2
cat errlist2
Результаты последней команды будут такими
-bash: ls-R: команда не найдена
Изучим использование шаблонов в именах файлов.
Символы * ? [ ]_
Они используются для замещения определенного набора символов в именах файлов. При этом фиксируются группы файлов с «похожими» именами. Символ * заменяет любой набор символов. К примеру, а* определяет все файлы, начинающиеся на букву а и имеющие в имени любое количество символов. В противоположность символ ? означает замещение только одного символа. Такой пример использования шаблона а? фиксирует все файлы из двух символов, начинающиеся на символ а. Квадратные скобки позволяют выводить список файлов, в имени которых содержится один из группы символов. Квадратные скобки часто используют с символом * или ?. Если в команде вместо имени указать [abс]??, то предполагается воздействовать на файлы, имеющие в имени три буквы, начинающиеся на а, b или с.
Для подробного рассмотрения использования шаблонов в именах файлов сделаем следующее. Создадим несколько текстовых файлов, используя команды cat и cp, а далее будем выводить на экран часть из них командой ls, используя разные шаблоны для формирования группы из имеющихся файлов. Шаблоны имен файлов являются частью средства UNIX/Linux. Они называются регулярными выражениями и используются со многим командами.
Для начала создадим файл a из другого — /root/.bashrc, выполнив следующие команды
cd ~
cat .bashrc > a
Сделать копию a в файле с именем A можно еще и так
cp a A
Получим файлы со следующими именами: a A1 B Ba b1 ad f fa fab.
Задание 20.
Проверьте результат выполнения следующих команд (параметр -C давайте для экономного вывода):
ls -C [a,B]
ls -C [aB]
ls -C [a-B]
ls -C [B-a]
ls -C *[a,A]
ls -C *[a,B]*
ls -C *a
ls -C *a*
ls -C [a-s]
ls -C [a-b]*
ls -C [a-f]
ls -C ?a
ls -C [a-b]*
ls -C fa
Специальные и служебные символы HTML
Многие символы являются служебными символами HTML и для того чтобы отобразить их на Web – странице нужно прописать специальный код. К тому же некоторые символы используются в самом коде html. Так, например, между символами < и > мы заключаем сами теги html, а параметры атрибутов указываем в двойных кавычках («). Другие же символы, такие как неразрывный пробел, вообще нельзя набрать в текстовом редакторе, а на html-странице иногда требуется его использовать, например чтобы сделать отступ между абзацами или написать абзац с «красной строки». Для этих целей и придумали вместо символов писать мнемонический код (именной код), который состоит из знака &(амперсанд), сокращения от английского названия символа и точки с запятой. Так неразрывному пробелу соответствует обозначение (код начинается с & и заканчивается (;), а сокращение nbsp расшифровывается как non-breaking space), двойным кавычкам соответствует код ", а знакам меньше < и больше > — значения < и > соответственно.
Рассмотрим небольшой пример:
<html> <head> <title>Урок 3. Специальные символы html</title> </head> <body> <p>Применим некоторые специальные символы на практике:</p> <p> </p> <p>Чтобы сравнить два числа нужно использовать знаки меньше < и больше >, например:</p> <p>5 > 3, а 2 < 4</p> <p> </p> <p>Все мы знаем, что названия различных учреждений, фирм или организаций берутся в кавычки, например:</p> <p>гостиница "Россия"</p> <p>издательство "Роспечать"</p> </body> </html>
Сохраним файл под любым именем и откроем его в браузере:
В первую очередь здесь мы использовали неразрывный пробел, чтобы сделать отступы между абзацами, а все мнемонические коды отобразились символами. Помимо мнемонического кода для отображения специальных символов используют ASCII-код (числовой код), перед которым стоят символы &#. К примеру, тем же знакам меньше < и больше > соответствуют следующие числовые-коды: < и >. Рассмотрим пример:
<html> <head> <title>Мнемонические и ASCII-коды символов</title> </head> <body> <p> </p> <p>10 > 4, а 7 > 5</p> <p>3 < 8 и 5 < 8</p> </body> </html>
Здесь мы использовали в первом абзаце неразрывный пробел, чтобы сделать отступ и использовали для этого его числовой-код, который соответствует мнемоническому коду . Так же мы поступили и со знаками меньше и больше во втором и третьем абзаце.
Но пользоваться числовым-кодом для обозначения символов не очень удобно, куда проще запомнить мнемонический код, поэтому чаще пользуются именно им. В этом уроке мы рассмотрели лишь мизерную часть специальных символов html. Полный список вы можете посмотреть в таблице кодов символов. Если вы запутались и у вас остались вопросы, советую посмотреть видео этого урока.