Читаем BASH. Справочное пособие полностью

cmd

файла.

Пример 3

$ cat

Вт июн 11 22:10:14 MSK 2019

Вт июн 11 22:11:45 MSK 2019

Пример 4 Встраиваемая строка.

Представить текст заданного слова в качестве входных данных для указанной команды.

$ cat <<<"Privet"

Privet

Пример 5

cmd <>file Записать в файл результат команды,

содержимое файла не нарушается.

$ date <> f30.txt; cat f30.txt

Вт июн 11 21:58:17 MSK 2019

Вт июн 11 17:15:49 MSK 2019

cmd >| file Направить результат команды в файл

переписав его содержимое.

Пример 5 Направить результаты в файл, переписав его содержимое.

$ date

Пн 12 июл 2021 08:02:24 MSK

$ cat >f30.txt

Hello

$ date >| f30.txt

$ cat f30.txt

Пн 12 июл 2021 08:03:13 MSK

2.9 Переадресация ввода-вывода с использованием дескрипторов файлов.

Файловый дескриптор – целое число,которое указывает доступ к файлу.

Стандартный ввод stdin дескриптор 0.

Стандартный вывод stdout дескриптор 1.

Стандартный вывод ошибок stderr дескриптор 2. Клавиатура stdin файл.

Экран stdout файл. Файловый дескриптор привязан к индефикатору процесса.

Пример

# sleep 1000 &

[2] 5021

# cd /proc/5021/fd ; ls

0 1 2

cmd >&n Направить результат команды в файл с

дескриптором n.

Пример 1 # дескриптор 1 стандартный вывод.

$ date >&1

Вт июн 11 22:05:51 MSK 2019

cmd >&– Закрыть стандартный вывод

$ date >&-

date: ошибка записи: Неправильный дескриптор файла.

cmd<&n Взять входные данные для указанной команды из файла с заданным дескриптором n.

$ cat >file1<&0

privet

$ cat file1

privet

cmdm<&n Входные данные из файла с дескриптором m

поступают из файла с дескриптором n.

$ cat >file1 2<&0

privet 4 # Набираем с клавиатуры

$ cat file1

privet 4

cmd<&– Закрыть стандартный ввод.

$ pwd<&-

/home/max1

$

cmd<&n Направить содержимое файла с заданным дескриптором n в стандартный ввод,получив сначала копию, а затем закрыв оригинал.

cmd>&n- Направить содержимое файла с заданным дескриптором n в стандартный вывод,получив сначала копию,а затем закрыв оригинал.

Пример Напишем следующий скрипт

$ cat f2.sh

#!/bin/sh

read str <&0

echo "$str" | festival –tts –language russian

Запускаем скрипт

$ sh f2.sh Набираем в терминале фразу

Привет друзья. Нажимаем Enter и слышим

«Привет друзья»

Пример 2

$ cat f5.txt

Hello my friend

$ read str &1-

Hello my friend

Использование команды exec с дескрипторами.

exec 0

Создадим под root myfile с двумя командами.

# cat >myfile

pwd; date

Выполнить команды из файла вместо стандартного ввода.

# exec 0

# pwd; date

/root

exec 1

cat myscript1.sh

#!/bin/sh

exec 1>outfile

0echo "This a test"

$ cat ./outfile

This is a test

exec 3

$ cat myscript3.sh

#!/bin/sh

exec 3> myfile

echo "Privet" >&3

cat ./myfile

$sh myscript.sh

Privet

Примечание возможно использование команды exec c дескрипторами 0-9.

2.10 Многократная переадресация ввода-вывода.

Направить стандартный вывод ошибок в заданный

файл cmd 2>file Пример 1

$ ls -l /root/ 2>ls_er; cat ls_er

ls: невозможно открыть каталог '/root/': Отказано в доступе.

Направить стандартный вывод ошибок и данных в

заданный файл.

cmd >file 2>&1 Пример 2

$ ls -l f1.txt; ls -l /root/ 2>&1 >ls1

–rw-rw-r– 1 max1 max1 6 мая 9 07:21 f1.txt

ls: невозможно открыть каталог '/root/': Отказано в доступе.

$ cat ls1

ls: невозможно открыть каталог '/root/': Отказано в доступе.

Присоединить стандартный вывод данных и

ошибок к содержимому данного файла

cmd&>> file Пример 3

$ ls -l f1.txt; ls -l /root/ &>> ls2

–rw-rw-r– 1 max1 max1 6 мая 9 07:21 f1.txt

$ ls -l f1.txt; ls -l /root/ &>> ls2

–rw-rw-r– 1 max1 max1 6 мая 9 07:21 f1.txt

max1@hp:~$ cat ls2

ls: невозможно открыть каталог '/root/': Отказано в доступе.

ls: невозможно открыть каталог '/root/': Отказано в доступе.

Направить стандартный данных в заданный file1,

стандартный вывод ошибок в указанный file2

Направить стандартный вывод данных и ошибок в

стандартный вывод, так и в заданные файлы.

сmd 2 >&1 |tee файлы или cmd |& tee файлы

Пример 4

$ pwd; ls -l /root/ 2>&1 |tee ls3

/home/max1

ls: невозможно открыть каталог '/root/': Отказано

в доступе.

$ cat ls3

ls: невозможно открыть каталог '/root/':Отказано

в доступе.

2.11 Сохранение дескрипторов файлов в переменных.

Допускается указывать имя переменной вместо

числового обозначения дескриптора.

Пример. Нахождение дескриптора файла.

$ exec 4>file;echo "OK">&4; cat ./file

OK

max@hp:/dev/fd$ ls

0 1 2 255 4

max@hp:/dev/fd$ cat 4

OK

Пример использования дескрипторов числом более 9

$ mv f1.txt f1

$ echo f1 {f1fd}>xyz

f1

$ echo $f1fd

11

$ cd /dev/fd

max@hp:/dev/fd$ ls

0 1 11 2 255 4

max@hp:/dev/fd$ echo "Privet">&11

max@hp:/dev/fd$ cat 11

Privet Дескриптор файла,сохраненный в переменной оболочки может быть использован в сценарии.

2.12 Специальные имена файлов.

/dev/stdin Дубликат дескриптора файла 0

/dev/stdout Дубликат дескриптора файла 1

/dev/stderr Дубликат дескриптора файла 2

/dev/fd/ Дубликат дескриптора файла

/dev/tcp// или /dev/udp//

Оболочка Bash устанавливает соединение с указанным хостом через заданный порт, используя полученный в итоге дескриптор файла при переадресации ввода-вывода.

~/Документы$ find -print >filelist 2>no_access

Обнаруживаемые файлы направляются в файл filelist, а сообщения об ошибках в файл no_access

Проверка

~/Документы$ cat filelist

.

./Posix1.doc

./script

./script/sc01.sh

./no_access # новый файл

./rus2.doc

./filelist # новый файл

./otchet.doc

Глава 3.Функции.

Функция совокупность команд, выполняемых в

сценарии оболочки.

Синтаксис функции – имя { код-тело функции

} [ виды переадресации]

Обращение к функции происходит по имени. При выполнении функции не создается нового процесса. Она выполняется в среде соответствующего процесса. Аргументы функции становятся ее позиционными параметрами; имя функции – ее нулевой параметр. Прервать выполнение функции можно оператором "return [n]", где (необязательное) "n" – код возврата.

Функции вызываются таким же образом, как и

команды. Если используется ключевое слово function,то указывать после имен необязательно

Пример создания простой функции с именем privet.

$ if [ "$USER"=max ]; then

> privet {

> echo "Privet Max";}

> fi

Запускаем функцию

$ privet

Результат

Privet Max

Характерно что функцию можно запускать многократно, результат будет тот же.

Функция в скрипте.

Функция fatal -выдать сообщение о неисправимой ошибке и прервать исполнение.

Пример 2

Создадим простой скрипт c функцией fatal.

$ cat >func1.sh

#!/bin/sh

fatal {

echo "$0: fatal error:" "$@" >&2

exit 1

}

if [ $# = 0 ]

then

fatal not enough arguments

fi

Проверка

$ sh func1.sh

func1.sh: fatal error: not enough arguments

Пример 3

$ cat >myscript.sh

#!/bin/bash

function myfunc {

read -p "Enter a value: " value

echo "adding value"

return $(( $value + 10 ))

}

myfunc

echo "The new value is $?"

Запускаем скрипт

$ ./myscript.sh

bash: ./myscript.sh: Отказано в доступе

$ chmod +x myscript.sh

$ ./myscript.sh

Enter a value: 10

adding value

The new value is 20

Пример 4

$ cat run.sh

doSam {

echo "magic"

return 0

}

if doSam;then

echo "Its true"

fi

$ sh run.sh

magic

Its true

В этом случае return 0 означает true, когда

return 1 в традиционном булевом смысле означает

false.

Глава 4.Переменные.

Переменные -это ячейка памяти,содержащаяся в себе

определенные данные. Имена переменных не должны

начинаться с цифры.

4.1 Присваивание значений переменным.

Значения присваиваются переменным с помощью операции = Присваиваемое значение не должно отделяться пробелами от имени переменной.

В одной строчке можно присвоить значение сразу

нескольким переменным.

$ firstname=Max lastname=Corn

$ echo $firstname; echo $lastname

Max

Corn

если значение по команде declare -i , то правая часть как вырражение

$ i=3+5 ;echo $i

3+5

$ declare -i jj; jj=5+3; echo $jj

8

4.2 Подстановка переменных.

Установить значение переменной,проверить.

$ a=123; echo $a;

123

$ echo {$a}

{123}

$ echo {\$a};

{$a}

echo {'$'$a}

{$123}

${переменная}

Использовать значение переменной для массивов.

$ a=(0 1 2 )

$ echo ${a[1]}

1

${переменная :-значение} Использовать

переменную, если она указана, иначе – заданное

значение.

$ b=5

$ echo ${b:-10}

5

max@hp:~$ echo ${c:-10}

10

${переменная :=значение}

Использовать переменную,иначе заданное значение, присвоив его указанной переменной

max@hp:~$ echo ${USER:=max2}

max

max@hp:~$ echo ${USER1:=max2}

max2

${переменная :?значение}

Использовать указанное значение если она

установлена, иначе выйти из оболочки.

$ echo ${c:?125}

bash: c: 125

${переменная :+значение}

Использовать указанное значение,иначе не

использовать ничего.

$ c=file1.txt

$ echo ${c:+filen.txt}

filen.txt

$ echo ${d:+filen.txt}

$

${#переменная} Использовать длину указанной

переменной.

$ echo $c

file1.txt

$ echo ${#c}

9

$ ${#*},${#@} Использовать количество позиционных параметров.

${переменная #шаблон}

Использовать после удаления слева

теста ,совпадающего с шаблоном. Удалить самый короткий совпадающий фрагмент.

c=file1.txt

1.txt

${переменная##шаблон} Удалить самый длинный

совпадающий фрагмент

$ echo ${c##file}

1.txt

${переменная ##шаблон} То же что и

ранее ,короткий и длинный фрагмент справа.

${переменная %шаблон}

${переменная %%шаблон}

$ echo ${c%.txt}

file1

max@hp:~$ echo ${c%%txt}

file1.

${переменная /шаблон/замена}

$ data=`date`

$ echo ${data}

Чт июн 13 10:56:05 MSK 2019

$ echo ${data/Чт}

июн 13 10:56:05 MSK 2019

${переменная //шаблон/замена}

$ echo ${data//Чт июн/Пт июль}

Пт июль 13 10:56:05 MSK 2019

${переменная /#шаблон/замена}

${переменная /%шаблон/замена}

Использовать max@hp:~$ greeting="hello friend"

$ declare -n message=greeting

$ echo message

message

$ echo $message

hello friend

$ message="by now"

$ echo $greeting

by now

$ {переменная@P} Вычислить значение указанной переменной.

$ echo ${c@P}

file1.txt

$

$ {переменная@Q} Заключить в кавычки значение указанной переменной.

$ c=file1.txt

$ echo ${c@Q}

'file1.txt'

${!переменная }

Использовать значение указанной переменной в качестве имени другой переменной ,значение которой должно быть использовано.

4.3 Косвенные переменные.

Косвенные переменные-это переменные именующие другие переменные.

Косвенные переменные создаются по команде

declare -n

Пример 1

$ greeting=privet

$ echo $greeting

privet

$ declare -n message=greeting

$ echo $message

privet

Пример 2 Присвоить через косвенную переменную

значение основной переменной.

$ message=otvet

$ echo $greeting

otvet

Пример 3 Применение псевдонима

$ text=ok

$ echo $(!text)

echo $(text=ok)

4.4 Переменные, встроенные в оболочку.

Основные переменные.

$# количество аргументов в командной строке.

$-Действующие в настоящее время

параметры,представленные в командной строке.

$? Выходное значение последней,выполнявшейся

команды.

$$ Номер процесса ,присвоенный оболочке.

$! Номер процесса,присвоенной

команде,выполнявшейся в фоновом режиме.

$0 Первое слово, имя команды.

$n Oтдельные аргументы командной строки,если больше 9 форма ${n}

$*,$@ Все аргументы командной строки ($1,$2..)

Пример 1

$ cat >param.sh

#!/bin/sh

echo "$#"

echo "$0"

echo "$?"

echo "$$"

echo "$@"

echo "$*"

exit 0

Запускаем скрипт с параметрами a b c d

$ sh param.sh a b c d

4

param.sh

0

2698

a b c d

a b c d

4.5 Дополнительные переменные.

$_ Временная переменная ,хранит последний аргумент предыдущей команды. Пример

$ ls -l f2.txt

–rw-rw-rw- 1 max1 max1 6 апр 24 12:57 f2.txt

$ echo $_

f2.txt

BASH Полный путь для вызова оболочки

$ echo $BASH

/usr/bin/bash

BASHOPTS Доступный для чтения список

активизированных в настоящий момент параметров оболочки.

$ echo $BASHOPTS Checkwinsize:cmdhist:complete_fullquote:

expand_aliases:extglob:extquote:force_fignore:

globasciiranges:histappend:interactive_comments:

progcomp:promptvars:sourcepath

BASHPID Индефикатор текущего процесса. Пример

$ echo $BASHPID

3321

Для сравнения используем встроенную переменную

$ $$

3321: команда не найдена

BASH_COMMAND Команда,которая выполняется в

текущий момент или готовится к исполнению. Это

команда выполняемая при появлении прерывания

MACHTYPE Тип машины

$ echo $MACHTYPE

x86_64-pc-linux-gnu

UID Переменная реальный числовой индефикатор текущего пользователя

mа1@hp:~$ echo $UID

1000

root@hp:~# echo $UID

0

EUID Переменная числовой действующий индефикатор текущего пользователя.

$ echo $EUID

1000

GROUPS Переменная список числовых индефикаторов групп, членом которых является текущий пользователь.

$ echo $GROUPS

1000

HISTCMD Номер текущей команды в предистории

$ echo $HISTCMD

2021

HOSTNAME Номер текущего хоста (сетевого узла).

max1@hp:~$ echo $HOSTNAME

hp

SECONDS[=n] Количество секунд прошедших с момента запуска оболочки или же количество секунд,прошедших с момента присваивания значения этой пременной, плюс n ,если n задано.

$ echo $SECONDS

9606

HOSTTYPE Символьная строка ,описывающая главную

cистему

$ echo $HOSTTYPE

x86_64

Пример вывода некоторых наиболее важных

переменных

$ echo $USER;echo $HOME;echo $LOGNAME

max

/home/max

max

$echo $DESKTOP_SESSION;

$echo$DISPLAY;echo $TERM

mate

:0

xterm

$ echo $SHELL;echo $PWD

/bin/bash

/home/max

$ echo $PATH

/home/max/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

$ echo $SHELL;echo $PWD

/bin/bash

/home/max

$ echo $SHELL;echo $PWD

/bin/bash

/home/max

$ echo $RANDOM Номер случайного числа

18264

$ echo $SECONDS Количество секунд с момента запуска оболочки

430

$ echo $HISTCMD Номер текущей команды

2003

$ echo $HOSTNAME Текущий хост

hp

4.6 Другие переменные оболочки.

Перечисленные переменные не устанавливаются

автоматически. Их можно определить в соответствии

со своими потребностями в файлах .bash_profile ,

.profile.

BASH_COMPAT Если в ней задана пустая символьная строка ,то устанавливается уровень совместимости, присущей текущей оболочки.

BASH_ENV Если эта переменная устанавливается при запуске оболочки,она именует файл,обрабатываемый для команд инициилизации.

BASH_LOADABLES_PATH Один или несколько разделяемых двоеточием путей,по которым осуществляется поиск динамически загружаемых встроенных команд,указанных по команде enable.

BASH_XTRACEFD=n Дескриптор файла, в который оболочка BASH записывает результат трассировки,выводимый из команды set -x.

CDPATH=каталоги Каталоги искомые по команде cd.

$ echo $CDPATH + echo

CHILD_MAX=n Максимально устанавливаемое

количество процессов, для которых оболочка

запоминает коды завершения.

$ CHILD_MAX=4096

+ CHILD_MAX=4096

$ echo $CHILD_MAX

+ echo 4096

4096

COLUMNS=n Ширина столбца на экране, применяется в цикле select.

$ COLUMNS=60

+ COLUMNS=60

$ echo $COLUMNS

+ echo 60

60

EMACS Ели значение переменной начинается с буквы t Bash посчитает ,что она выполняется в буфере редактора EMACS.

ENV=файл Наименование сценария, выполняемого при запуске в режиме работы по стандарту POSIX/

EXECIGNORE=список шаблонов. Разделяемый двоеточиями список глобальных шаблонов,описывающих ряд имен файлов игнорируемых при поиске исполняемых файлов.

FCEDIT=файл Редактор ,применяемый в команде fc.

FIGNORE=список шаблонов. Разделяемый двоеточием

список суффиксов ,описывающих ряд имен файлов,

игнорируемых при автозавершении имен файлов

средствами библиотеки readline.

GLOBIGNORE=список_шаблонов. Разделяемый

двоеточием список шаблонов ,описывающих ряд имен

файлов,игнорируемых при сопоставлении с шаблоном.

HISTCONTROL=список. Разделяемый двоеточием список

значений ,определяющих порядок сохранения команд в файле предистории.

HISTFILE=файл. Файл в котором храниться предистория выполнения команд. По умолчанию

~/.bash_history

HISTFILESIZE=n Количество строк,сохраняемых в файле предистории.По умолчанию 500.

HISTIGNORE=список Разделяемый двоеточием список

шаблонов ,с которыми должна полностью совпадать

командная строка. Совпадающие строки не

сохраняются в файле предистории.

HISTSIZE=n Количество команд,сохраняемых в файле

предистории.По умолчанию 500.

HISTTIMEFORMAT=строка Форматирующая строка,

предназначенная для вывода отметок времени

вместе с командами из предистории по команде

history.

HCME=каталог Начальный каталог,устанавливаемый

по команде login из файла /etc/passwd.

HOSTFILE=файл Оболочка должна использовать этот файлдля поиска имен хостов в целях их завершения.

IFS=’символы‘ Разделители полей ввода.

IGNOREEOF=n Числовое значение,обозначающее количество последовательных знаков окончания файла,которое требуется ввести прежде чем произойдет выход из оболочки. Применяется только в интерактивных оболочках. По умолчанию 10.

INPUTRC=файл Применяется для библиотеки readline.

Заменяет файл ~/.inputrc

LANG=языковый_стандарт Выбирает по умолчанию языковый стандарт.

LINES=n Высота экрана. Применяется в цикле select. MAIL=файл Файл выбираемый по умолчанию для

проверки входящей почты. Устанавливается по

команде login.

MAILCHECK=n Количество секунд проходящих между последовательными проверками почты. По умолчанию

60 (одна минута).

MAILPATH=файлы. Файлы предназначенные для проверки входящей почты.

OPTERR=n Если в этой переменной установлено значение 1(по умолчанию) то оболочка выводит сообщение об ошибках из встроенной команды getopts.

PATH=список_каталогов Пути по которым осуществляется поиск команд для последующего выполнения.

POSIXLY_CORRECT=Если эта переменная устанавливается при запуске,оболочка переходит в режим работы по стандарту POSIX.

PROMT_COMMAND=Если эта переменная установлена оболочка выполняет заданную команду всякий раз,прежде чем выводить основное приглашение.

PROMT_DIRTRIM=n Обозначает ,сколько завершающих составляющих каталогов остается для специальной строки приглашения \w или \W.

PS0=строка Символьная строка после чтения команды ,но перед ее выполнением

P$1=строка Основная строка приглашения

echo $PS1

\[\e]0;\u@\h:\w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$S1=строка Основная строка приглашения.

PS2=строка Вспомогательное приглашение в многострочных командах. Обычно > или +

$ echo $PS2

>

PS3=строка Строка приглашения в цикле select

По умолчанию #?

$ PS3="Select the item number:"

$ echo $PS3

Select the item number:

PS4=строка Cтрока приглашения к трассировке выполняемых команд ( bash -x или set -x) По умолчанию выбирается приглашение +

SHELL=файл Наименование оболочки,выбираемой пользователем по умолчанию.

TERM=строка Тип терминала

TIMEFORMAT=строка Форматирующая строка для вывода времени с помощью ключевого слова time.

TMOUT=n Если никакой команды не введено по истечении секунд , то происходит вывод из оболочки.

TMPDIR=каталог В указанном каталоге размещаются временно создаваемые файлы применяемые в оболочке.

auto_resume=список Допускает применение простых символьных строк для возобновления приостановленных заданий.

histchars=символы Два или три символа определяющие порядок подстановки. Первый символ сигнализирует о событии в предистории команд, второй символ обозначает быструю подстановку, а

третий-начало комментария. По умолчанию избираются символы !^#.

Файл в котором хранится предистория команд

$ echo $HISTFILE

/home/max/.bash_history

Количество команд ,сохраняемых в файле предистории.

max@hp:~$ echo $HISTSIZE

1000

Начальный каталог

max@hp:~$ echo $HOME

/home/max

Выбираемый по умолчанию языковый стандарт

$ echo $LANG

ru_RU.UTF-8

Пути поиска команд

$ echo $PATH

/home/max/.local/bin:/home/max/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Наименование оболочки,выбираемой пользователем по умолчанию.

$ echo $SHELL

/bin/bash

Тип терминала

$ echo $TERM

xterm

И другие не столь значимые переменные.

Глава 5. Массивы.

5.1 Индексированные массивы.

Массивы инициализируются с помощью специальной

формы. Первый элемент нумеруется нулевым.

Отрицательные индексы отсчитываются от

последнего с прибавлением единицы.

$ a=(0 1 2 3 4 5 6 7 8 )

$ echo ${a[4]}

4

$ echo ${a[-2]}

7

Для ссылки на массив служит форма ${…..}

Пример

$ car=(porsh bmv mers)

$ echo ${car[0]}

porsh

$ echo ${car[*]}

porsh bmv mers

5.2 Подстановка массивов.

Подстановки переменных для массивов и их элементов выполняются

4

$ echo ${a[-2]}

7

Для ссылки на массив служит форма ${…..}

Пример

$ car=(porsh bmv mers)

$ echo ${car[0]}

porsh

$ echo ${car[*]}

porsh bmv mers

5.2 Подстановка массивов.

Подстановки переменных для массивов и их элементов выполняются следующих формах.

${имя[i]} использовать элемент i массива имя

Использовать все элементы массива

${имя[@]}

${#имя[*]}

Пример, создадим простой массив

$ a=(0 1 2 3 4 5 )

$ echo ${a[4]}

4

$ echo ${a[*]}

0 1 2 3 4 5

$ echo ${a[@]}

0 1 2 3 4 5

$ echo ${#a[*]}

6

$ echo ${#a[@]}

6

5.3 Ассоциативные массивы.

Ассоциативные массивы те в которых индексами являются символьные строки. Ассоциативные массивы объявляются командами declare -A, local -A, readonly -A

Присваивание значений элементам aссоциативного массива.

Пример создадим простой ассоциативный массив

$ declare -A avto=([bmv]=10 [porsh]=20 [mers]=30)

Проверяем

$ echo ${avto[*]}

20 30 10

$ echo ${avto[bmv]}

10

$ local -A avto=([bmv])=10 [mers]=30

bash: local: можно использовать только внутри функции.

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии