|
在使用 Linux 时,我们有时会需要做一些计算,那么我们就可能需要用到计算器。在 Linux 命令行里,有许多计算器工具,这些命令行计算器可以让我们执行科学计算、财务计算或者一些简单的计算。当然,我们也可以在 Shell 脚本中使用这些命令执行更为复杂的数学运算。 这里我们主要介绍5种命令行计算器: - bc
- calc
- expr
- gcalccmd
- qalc
! }: V1 Z. m1 @ 1. 如何在 Linux 中使用 bc 执行计算bc 是一种以交互式语句执行的方式支持任意精度的数字的语言,它的语法和 C 语言有一些相似之处。 bc 的命令行选项中有一个可用的标准数学库,如果有相关要求,bc 会在处理任何文件之前先定义好标准数学库,bc 会以命令中的顺序处理命令中列出的各个文件的代码。 默认情况下,bc 在所有 Linux 发行版中都是安装了的,如果你的系统中没有 bc,可以按照以下命令自行安装: 对于 Fedora 系统中,使用 DNF 命令进行安装 - $ sudo dnf install bc& U% t5 H9 k q8 F. ]
对于 Debian/Ubantu 系统,使用 APT-GET 或 APT 命令进行安装 - $ sudo apt install bc
+ u0 t" O( A0 w/ H
对于基于 Arch Linux 的系统,使用 Pacman 命令进行安装 - $ sudo pacman -S bc
6 D4 r% K$ D% h. e1 x& R3 Z
对于 RHEL/CentOS 系统,使用 YUM 命令进行安装 - $ sudo yum install bc* }4 J# V G. y" i) T3 q- C1 A
对于 openSUSE Leap 系统,使用 Zypper 命令进行安装 - $ sudo zypper install bc( Q1 {4 y) F) W: G# D7 u
如何使用 bc 命令 我们可以用 bc 命令直接在终端中执行 + - * / ^ % 等各种计算 - , z U& k- E$ F1 R i. Q* N
- $ bc
# ]5 T( k( ~3 g: Z- V5 A - bc 1.07.1
, U- `2 G% S1 \& ]1 Q E - Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc., F4 @5 Y F6 x& ~
- This is free software with ABSOLUTELY NO WARRANTY.0 C9 U& n. a+ M8 I' t" {
- For details type `warranty'.
2 b. l9 h/ D, Q9 Z3 E
: H/ e4 B' J) i$ U7 _& j! u% Y' y- 1+2+ s$ n3 X, \, n- b
- 3
: J# \* {) A+ \: p" T3 U7 } @& K* m - ' y. B: n! v/ _& E$ b( X
- 10-5
. X2 _' C" m9 \+ j* w& G+ b# D: x - 5
7 d" k* L! _: _/ H4 ~2 L$ |
5 O/ r+ H1 `: R3 O' R- 2*5
- e5 _" n0 F% O) B - 10
: G- L; ^' w6 s. Z9 V7 Z - 0 Y. N% V6 F; |; r; S( i2 f+ b) `
- 10/2
0 V3 o) `$ e4 F( B) m3 Q - 5) \- l i) [$ |7 ]1 T
$ x+ `0 H8 d% y7 |. X8 n5 M- 13/53 y! x) Y( S# G9 U( N
- 2
& H2 M- `# t7 |. a/ u - 2 D* L7 y+ K, p$ F; g
- (2+4)*5-5
) J3 {, ~$ O8 Z6 w: T, m - 25
1 V b5 } G3 l5 X( I' u9 [7 L
9 e) |( G+ ]; w1 s) ]- 2^3) \9 b2 c5 [, n1 \. w
- 8
( F" W3 q4 c0 ]+ E' x6 E - & M \* S m0 k% V- C
- 8%3
: M% {& p/ g$ n8 x2 v. O. q5 h# J - 2
" z) r' k( T! P5 [: \
! {. N# `" {7 |3 W: j- quit
复制代码使用 -l 来定义标准数学库。默认情况下, 3/5 在 bc 的结果里是 0 ,因为只是取整而已。如果你想要得到正确答案,那么就需要使用 -l 选项了。 - 0 q3 p0 B, e4 Z/ C% i' C; \+ {
- $ bc -l l+ I" C! `! D
- bc 1.07.1
3 g' i& f' g. I2 } j; a+ u8 y - Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
3 j- d- G3 f' V5 K5 v - This is free software with ABSOLUTELY NO WARRANTY.% w. K0 ~9 s! o- v7 @7 R
- For details type `warranty'.1 F) R; m# k( P8 U8 a
- 2 i! G1 ~: H7 K. v0 O6 k
- 3/5
0 Q. m6 d4 o+ t/ L. x" J - .60000000000000000000) v ^' ?4 `3 e; O
% w9 H% ~- P+ h3 \& _7 x* Q" a. O) R# m- quit
复制代码 2. 如何在 Linux 中使用 calc 进行计算calc 是一个任意精度的计算器,是一个可以在命令行中执行各种计算的简单计算器。 如果你需要安装 calc 命令,可以参照上面的 bc 命令安装方法。 如何使用 calc 命令我们可以用 calc 在终端中交互地执行各种类型的计算。
/ Q8 D7 k" G+ Z& I' V1 \' l0 K/ H$ b- $ calc. j4 G2 D! o- `0 G8 P9 G4 @
- C-style arbitrary precision calculator (version 2.12.7.1)/ n9 n6 B) |! S! E0 c+ L# i( h' b& v
- Calc is open software. For license details type: help copyright
% R! K9 g$ A/ X r U6 g$ r9 Y - [Type "exit" to exit, or "help" for help.]
+ ^1 k- S( N/ O/ W* W# k* w/ r
# K! j H/ r5 D L3 j& j! [8 R' H- ; 5+18 T5 W* Y8 l6 G' W1 n6 g
- 6
. {+ i: m8 i2 r! _4 o; k - ; 5-1# F6 l- h% A F3 [' ?8 x% L4 s
- 4$ e) A) L2 v" H( w6 N/ S
- ; 5*2
" i% \0 `; |0 U4 n4 a - 10
2 Q& K. ?8 ~) o$ `+ n/ P( [$ M7 T, M - ; 10/20 f/ L' \9 S2 C9 u \9 F% t% d$ _
- 5" c( t- d: L. y; Q- l2 w4 Z
- ; 13/57 x: X, b! I0 _+ ~3 Z: Y
- 2.61 _. u! M" J5 g0 G1 D: }! ?
- ; 13%5. F I' X6 }- V- m' h5 C2 n
- 3$ B( L9 M1 K2 m1 Q: G# X
- ; 2^4
+ w; N" G! l( h v - 16
' e$ u/ A, b* d2 `) b - ; 9^0.50 y5 [& m6 O& f& [! ^
- 3 6 h- x0 r" O/ t; @% ~5 A- v
- ; quit
复制代码当然,你也可以在非交互模式下使用:
, w$ P9 X9 V6 Z- $ calc 3/5: z ~; L+ }# H# Z) R
- 0.6
复制代码3. 如何在 Linux 中使用 expr 进行计算 expr 是核心工具库的一部分,因此我们不需要安装它。 我们可以使用以下的命令进行基础的计算: - 2 |0 S" A- Y8 m: j9 M
- $ expr 2 + 38 G5 y9 d6 D5 {7 F7 Z# {8 b
- 6
复制代码 - " M5 G1 I. F3 ^8 g. [) ?
- $ expr 6 - 2
7 l, m8 @1 A' s7 l9 X/ o - 4
复制代码
6 ]1 U R) ?9 j- $ expr 3 * 4
, ]% ?5 H' T3 @0 _8 _ - 12
复制代码- 2 g9 m$ |- _# Y" _/ Z
- $ expr 15 / 3
2 ^ D5 c) a" H& p! C* C - 5
复制代码但是一定要注意,数字和符号需要用空格隔开,否则的话命令将不认识你写的表达式: - 7 b7 F; ~ T6 J4 `8 _' m
- $ expr 2+3
8 I5 R. V$ R! D# W. s4 } - 2+3
复制代码
* i- g* C9 X+ c, M- $ expr 2*31 G9 h" B* G( M; c- N6 X
- 2*3
复制代码4. 如何在 Linux 中使用 gcalccmd 进行计算 gnome-calculator 是 GNOME 桌面环境的官方计算器。gcalccmd 是Gnome Calculator 工具的控制台版本。默认情况下,gcalccmd 已安装在GNOME桌面中。 使用 gcalccmd 命令进行计算gcalccmd 也是有一个交互试的界面,计算式写起来与其它几种计算器无异。 - # `: P. O0 y( h, c" }
- $ gcalccmd# R+ y( `8 i& _% }3 c
- > 5+16 ], }$ p( m/ _- M7 n
- 6. p4 L! G/ W" n$ s$ `0 {
- ; v8 H1 d9 J" x( Y0 f$ C' r
- > 5-1: ~8 F5 }. \1 L s
- 4
5 A% d- F' l0 y7 y: z: p - # e) w& N. M8 n8 L, h+ D
- > 5*20 p; z1 f8 R/ b7 V# L h# [
- 10: t, {0 d# O0 t3 Y4 }
- ' q/ T0 A) B& j. P. ]' {
- > 10/2
/ W" j7 A5 V5 o- |6 x2 i - 5
2 ?/ j3 z, Q$ w2 S; K5 E. m - 2 Q' @+ G, X5 y$ Q/ v
- > sqrt(16)
0 F( e$ e% E) s - 4# r9 u' O: E0 |+ B5 w4 w" O: R
- _' d4 ]$ a& z- _. F9 R" s- > 3/5
) s/ l* N6 j2 L: W# z% d. T) h - 0.6
# s. {3 G+ A$ U) t" z. {# J6 G7 T - % J/ @" a, d( ^! k4 Z# N
- > quit
复制代码 5. 如何在 Linux 中使用 qalc 进行计算Qalculate 是一款多功能跨平台的桌面计算器。它使用较为简单,但是功能却十分强大 。它提供了一些很强大的多功能数学库,以及一些满足日常需求的实用工具(例如货币换算和百分比计算等)。 Qalculate 的功能包括大量可自定义的函数库,单位计算和转换,符号计算(包括积分和方程式),任意精度,不确定性传播,区间算术,绘图以及用户友好的界面(GTK +和CLI)。 对于 Fedora 系统中,使用 DNF 命令进行安装 - $ sudo dnf install libqalculate t& b6 ^% a) |( q5 b3 C
对于 Debian/Ubantu 系统,使用 APT-GET 或 APT 命令进行安装 - $ sudo apt install libqalculate
* j9 g; W2 p) h6 d, W
对于基于 Arch Linux 的系统,使用 Pacman 命令进行安装 - $ sudo pacman -S libqalculate: O% z2 A' l/ L, U
对于 RHEL/CentOS 系统,使用 YUM 命令进行安装 - $ sudo yum install libqalculate
' @4 v0 b+ I) y8 y5 H3 Z3 m
对于 openSUSE Leap 系统,使用 Zypper 命令进行安装 - $ sudo zypper install libqalculate9 X" [' N) _7 w0 [" r' v7 L/ z- R( S
使用 qalc 命令进行计算
8 b6 x4 ?' h5 S% U& x' Q0 @( {- 1 u" N# G4 ?8 ]1 ] W3 L" _
- $ qalc+ p% H& f7 V, f4 `# A C- ~
- > 5+1% T, z7 E) h# Y- O4 @
- : p: W. K2 C. [
- 5 + 1 = 6
( C& B" h/ m0 }! m7 @4 c
& j9 [2 a @ q) e% m- > ans*20 z% N0 {0 P# i: {' P" I, U3 v
- ' t2 ^: c1 s* j) s: M* x
- ans * 2 = 12
0 n' s" u) N0 n. y9 M - - j6 O$ j+ Q6 U
- > ans-2
) ], u& J Q. w) t e
; V1 d+ S- U0 ^! q! A. y- ans - 2 = 10
7 u+ v9 e. A: |4 E/ D- g8 w, v
' i% v0 P, @+ T+ P* E$ u- > 1 USD to INR7 ]* x6 `3 n5 U k, m& ?
- It has been 36 day(s) since the exchange rates last were updated.* `5 q, L, N3 i4 \5 n! ?+ v. D
- Do you wish to update the exchange rates now? y; ]- @6 C4 z2 Q8 |) p, E2 R
- ' `1 q5 n) Z+ K$ x- }
- error: Failed to download exchange rates from coinbase.com: Resolving timed out after 15000 milliseconds.
+ H3 o) Q5 H# k# a: l3 ~ g - 1 * dollar = approx. INR 69.638581
2 R& z% D! n4 J! K - & a) a. x' p! \+ R0 q3 Q
- > 10 USD to INR) G/ p7 I( x8 @
, a6 v% q) h8 F- T4 E- w- 10 * dollar = approx. INR 696.38581
, B$ H0 p6 p; _5 ?& u/ j, i - , o) {4 O5 |9 p. X- S# _+ j
- > quit
复制代码 6. 如何使用 Shell 命令进行计算其实在 Shell 命令行下,我们可以直接使用 echo ,awk 等命令直接进行计算,十分方便。 - ( F4 I$ n7 e; D6 l9 {4 I: \7 ?/ O
- $ echo $((5+5))
8 }# b/ Y/ v1 t: f - 103 M# ^6 q: |3 C( K7 Y
- $ cat data | awk '{sum+=$1} END {print "Sum = ", sum}' # 计算data文件里数据之和
复制代码
( G8 l, L0 ?% n0 [ |