Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Работа в консоли Linux

Быстрые и удобные вычисления в командной строке

Оригинал: "Fast, flexible, calculating from the command line"
Автор: Ben Morgan,
Дата: 11 Марта 2008 г.
Перевод: Ассовский Максим
Дата перевода: 30 января 2009 г.

Калькуляторы с графическим интерфейсом может быть и удобны, но они не могут предоставить достаточно комфорта для уверенных пользователей командной строки. К счастью, такие инструметы для командной строки, как bc, Genius и Calc имеют заметные преимущества над своими собратьями с графическим интерфейсом.

Калькуляторы для командной строки позволяют делать большую часть (если не всё) того, что умеют графические калькуляторы, но им есть и чем похвастаться:

  • У них есть интерактивный и неинтерактивный режимы.

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

  • Они эффиктивны в работе — ваши руки остаются на клавиатуре.

  • У них есть множество встроенных функций и переменных.

  • Они поддерживают определение новых функций и переменных «на лету».

В то время, как Genius — наиболее мощный (и, возможно, наиболее стабильный) из всех вышеупомянутых консольных калькуляторов, Calc наиболее дружелюбный и предоставляет больше возможностей, чем необходимо среднему пользователю. Calc можно найти в репозиториях большинства дистрибутивов, и его можно запустить и под Windows.

У Calc нет страницы помощи (man); но зато подробная помощь расположена в /usr/share/calc/help/, её можно посмотреть или обычным текстовым редактором, или с помощью самого же Calc. Команда calc help откроет краткий обзор помощи; после этого можно выбрать интересующую вас тему и выполнить команду calc help название темы. Для просмотра всего описания используйте команду calc help full. Другие общие ресурсы и примеры к Calc содержатся каталоге /usr/share/calc.

Calc использует интуитивно понятные математические символы и функции, такие, как + - * / ^ ** % или sqrt(x), sin(x), tan(x), которые легко запомнить. К тому же, из-за использования стиля языка С, людям, знакомым с программированием на С, синтаксис Calc покажется вполне естественным (хотя разница все же есть; смотрите calc help unexpected).

Для начала введите команду calc. Приглашением к работе у калькулятора является точка с запятой. Приведенный ниже сеанс работы с Calc позволит вам оценить возможности этого инструмента (Прим.переводчика: сообщения программы тоже переведены для лучшего понимания статьи читателями):

C-style arbitrary precision calculator (version 2.12.2.2)
Calc is open software. For license details type:  help copyright
[Type "exit" to exit, or "help" for help.]

; ## 5 в степени 2 равняется
; 5 ^ 2
        25
; 5 ** 2
        25
; 
; ## Чтобы вставить комментарий, нужно 2 символа #
; /* Но такие скобки для комментариев тоже можно использовать */
; 
; ## Деление с плавающей точкой
; 111 / 2
        55.5
; ## Деление нацело
; 111 // 2
        55
; 
; ## Как определить функцию
; ## Краткая форма записи:
; define f(x) = x*2
f(x) defined
; 
; ## Более длинный способ:
; define g(first, second) {
;; first -= second;
;; first ** 2;
;; first // 1.5;
;; first++;
;; print "done";
;; return first;
;; }
g(first,second) defined
; 
; ## Функция в действии
; ## Пробелы необязательны
; g( f(2), 3 )
done
        2
; 
; g( f(5), 1 )
done
        10
; 

Без аргуметов командной строки Calc запускается как интерактивная оболочка. Вы можете запустить его вместе с выражением, которое нужно вычислить, например calc 2+3. После вычисления программа завершится, если вы не дописали аргумент -i, в этом случае после вычисления запустится интерактивный режим.

Наборы переменных и функций можно расположить в файле ресурсов, обычно имеющем расширение .cal, который калькулятор может прочитать и использовать. Правила написания файла ресурсов ничем не отличаются от синтаксиса интерактивной оболочки. К примеру, вы оказались на уроке химии, и вам часто нужно успользовать таблицу атомных весов. Вы можете создать файл ресурсов periodic.cal с переменными, функциями и командами, как показано ниже:

#!/usr/bin/calc -i read

H = 1.00794
He = 4.0026
Li = 6.941
Be = 9.012182
B = 10.811
C = 12.0107
N = 14.0067
O = 15.9994
## ... и так далее

print "You are using the periodic resource for calc."

После этого можно загрузить файл ресурсов командой типа calc -i read periodic.cal. Как вариант, можно сделать его исполняемым с помощью chmod +x periodic.cal, после чего просто его запускать. Если ресурс загружен, вы имеете доступ ко всем переменным, объявленным там:


You are using the periodic resource for calc.
; ## И теперь я в интерактивном режиме
; O
        15.9994
; C+O*2
        44.0095
; 

Большинство пользователей используют Х под Линуксом вместо того, чтобы пользоваться только лишь командной строкой. В этом случае удобный метод использования Calc — запускать его через виртуальный терминал типа aterm:

aterm -e calc
или
aterm -e calc -i read /pathtoyourresource/periodic.cal

Однако, следует предупредить, что в последней версии Calc есть ошибка — он завершает работу при попытке вызвать несуществующую функцию. Поэтому при изучении функций запускайте его в терминале, который не закрывается при завершении работы Calc, так чтобы хотя бы не терять того, что вы уже набрали в командной строке.

Если вы фанат командной строки, то вам не понадобится даже запускать GUI, чтобы запустить калькулятор. Такие программы, как Calc позволяют ощутить мощь на кончиках пальцев, даже не двигая мышью.

Ben Morgan - сенегальский студент. Он пользуется Линуксом с 2002 года.