Estoy buscando una calculadora que pueda hacer cálculos en el terminal sin otros prefijos y sufijos adicionales.
Por ejemplo: si escribí algo como 10000-9000 en la terminal, la respuesta debería salir como 1000.
Una vez más, digo, solo necesito una calculadora rápida en la terminal, sin ningún carácter agregado. Sé que si me cambio a Python, puede hacer eso, pero no lo quiero de esa manera.
command_not_found
gancho e intentar alimentar el comando abc
/calc
/ lo que sea si se parece vagamente a las matemáticas. Sin embargo, todavía se siente un poco sucio.Respuestas:
Aritmética Bash
Otra posible solución es agregar una función simple para la aritmética integrada de Bash. Pon esto en tu
.bashrc
archivo para probar:Así que ahora, ya no necesitas
$((...))
más, solo lo=
que parece bastante natural.Reemplazo
Otra cosa si quieres ser aún más rápido: puedes reemplazarlo
p
con+
yx
con*
. Esto funcionará para eso:Ahora ya ni siquiera lo necesitas Shift, lo único está
=
delante de la aritmética.Salida hexadecimal
La salida se puede mostrar en decimal y hexadecimal, si así se desea. ( Nota : el uso de la
x
sustitución entrará en conflicto con la0x...
sintaxis hexadecimal)Ejemplo:
Utilizando
bc
Si desea cálculos un poco más avanzados, puede canalizarlo
bc
así:Las funciones proporcionadas por
bc
son las siguientes (y se pueden encontrar enman bc
):También es compatible con
if
,for
,while
y variables como un lenguaje de programación, aunque si puede ser mejor para escribir en un archivo si quería eso.Tenga en cuenta que sustituirá
p
yx
en nombres de funciones / variables. Puede ser mejor simplemente eliminar los reemplazos.Utilizando
gcalccmd
También puede hacer que la función llame
gcalccmd
(desdegnome-calculator
) así:Las funciones disponibles parecen ser (tomadas directamente del código fuente ),
==
denotan funciones equivalentes:fuente
gcalccmd
no funciona bastante bien.Error 3
Probablemente se deba a ese espacio en blanco perdido. Sin embargo, este ligeramente modificado funcionó perfectamente para mí:echo -e "$calc\nquit"| gcalccmd | sed "s:^> ::g"
function = { R -q --vanilla -e "$@" | grep -E '[^>](.*)' -o -x --color=never }
= 2 + 0x20
34 (0x22)
Puede hacer aritmética de enteros simples de forma nativa en bash utilizando la
((...))
sintaxis, por ejemploTambién está la
bc
calculadora, que puede aceptar expresiones aritméticas en la entrada estándarEl
bc
programa también puede hacer aritmética de coma flotantefuente
calc()
NL{
NLecho "$@" | bc
NL}
donde NL es una nueva línea. Luego puede escribircalc 1234 + 768
(impresiones2002
), o cualquier otra fórmula quebc
pueda interpretar. Por supuesto, puede usar cualquier nombre de función, solo pensé quecalc
encajaba muy bien con lo que esto hace.echo
:bc <<< "2*2"
Puedes usar
calc
. No se instala de manera predeterminada, pero puede instalarlo rápidamente con el siguiente comando:Después de haberlo instalado, puede hacer cualquier cálculo que desee:
Para obtener más información, vea su página de manual
fuente
man calc
y localc help
dice todo.calc help builtin
para ver una lista de funciones compatibles comosin()
Desafortunadamente, no hay una forma "más fácil" de hacer esto. La interfaz interactiva de Python en la línea de comandos es la más adecuada para lo que necesita, porque a diferencia de
apcalc
\,python
se incluye en Ubuntu. No estoy seguro de sibc
todavía se incluye, sin embargo, Python es el favorito para estas cosas.Simplemente puede ejecutar la
python
interfaz interactiva en la línea de comando, y luego hacer las matemáticas de esa manera. Puedes usar eso como tu calculadora.Para hacer eso, abre la terminal, escribe
python
, luego presiona el Enterbotón.Luego, en el indicador de Python que aparece, puede escribir sus matemáticas. Por ejemplo
10000 - 9000
,. La siguiente salida de línea es el resultado.Sin embargo, si quieres decir algo en lo que solo cargas la terminal y puedes hacer esto ...
... entonces no, no hay forma de hacer esto solo en la terminal sin otra cosa, porque Bash no maneja argumentos numéricos como ese.
fuente
ipython
es bastante más útil que el shell estándar de Python cuando se trata de hacer cálculos y cosas por el estilo.Te aconsejo que crees una función simple para cálculos básicos de Python. Algo así en tu
.bashrc
:Si desea hacer matemáticas más avanzadas, puede usar la siguiente que importa todas las
math
funciones del módulo. (ver aquí para más información)(Nota: debido a que Python es un lenguaje de programación, algunas cosas pueden parecer extrañas, por ejemplo,
**
para potencias y%
para módulos)Alternativamente, puede crear un script de Python
calc
,colóquelo en un directorio incluido en la
PATH
variable y establezca su indicador ejecutable para obtener el mismocalc
comando que el anterior (no es necesario crear una función Bash para ejecutar un script Python).Si desea un método en puro Bash, use la respuesta de steeldriver. Esta respuesta solo es realmente beneficiosa si necesita las funciones más avanzadas (es decir, de
math
), ya que Python es relativamente lento en comparación con Bash.No estoy seguro si esto rompe su "cambio a Python, puede hacer eso y no lo quiero de esa manera". tenga en cuenta, pero no es necesario que ingrese la solicitud interactiva y el resultado es accesible en Bash, por lo que esta respuesta parece válida (al menos para mí).
fuente
c
,?
o+
?) por lo que tendrá que cada terminal se abre.python2 -c "from __future__ import division; from math import *; print($*)"
contrario, siempre hará una división entera, por ejemplo, paracalc 5/2
obtener en2
lugar de2.5
. Consulte aquí para referencia: stackoverflow.com/a/183870/202504pi
ye
. Siento que poner esto como un script separado es más flexible y portátil. Aquí hay una ideaUse el paquete
gcalccmd
fromgnome-calculator
(> = 13.04) ogcalctool
(<13.04). Creo que el paquete está instalado por defectofuente
man gcalccmd
dice: una calculadora de consola . Simplemente, es exactamente lo que OP quiere ... :)./bash_aliases
igualalias calc='gcalccmd'
o si desea realizar cálculos de una sola vez (con respuesta instantánea), se puede añadiralias calc='gnome-calculator -s'
- el uso de este último:calc 2000/1300
ocalc 2+3
. En ese caso, no hay necesidad de salir de la calculadora, solo le da una respuesta y no necesita escribirquit
.Aquí hay un script de shell rápido para esto:
Guarde esto como "c", luego póngalo en algún lugar de su ruta (como / bin), luego márquelo como ejecutable.
A partir de ahora, puede ejecutar cálculos en el terminal de esta manera:
fuente
echo "$@" | bc
en su lugar para que pueda dejar espacios en los cálculos de forma más natural=
lugar dec
para el nombre de este comando? Bash realmente te permite usar esto como el nombre de una función.~/bin
(su directorio de iniciobin
) y asegurarse de que/home/yourname/bin
esté en suPATH
.Aquí hay una modificación de la parte apropiada de
/etc/bash.bashrc
(en Ubuntu 10.04) que modificará elcommand_not_found
controlador para ejecutar el evaluador de expresiones del shell si el primer carácter del comando desconocido es un número o-
o+
.Podrá hacer cualquier cálculo aritmético de esta manera; consulte http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic para obtener una lista de operadores aritméticos.
Tenga en cuenta que si la expresión que desea evaluar contiene a
*
, deberá citar*
con\
o entre comillas, ya que el shell realizará la expansión del nombre de archivo antes de decidir qué comando ejecutar. Lo mismo para otros operadores como>>
.Pon esto en tu
~/.bashrc
, luego escribe. ~/.bashrc
y pruébalo.Ejemplo de salida: (estoy escribiendo
cta
, un error tipográfico, solo para probar que nuestro nuevo controlador command_not_found aún intentará buscar comandos desconocidos).fuente
echo $(( $@ ))
y cambiarla, en su lugar, ejecutar uno de los programas de calculadora más avanzados que otros respondedores han mencionado que toman sus argumentos en la línea de comando.Otra solución que no he visto mencionada aquí es Qalculate (qalc) .
para la versión CLI,
para la GUI
Tiene un montón de características como:
20 m / s * 12 h = 864 kilom
pi
,e
,c
,avogadro
sin(pi) = 0
,gamma(4) = 6
,5! = 120
,log(1024, 2) = 10
(x + y)^2 = x^2 + 2xy + y^2
integrate 3*x^2 = x^3
,diff sin(x), pi
help convert
,help integrate
factorial(5)
yfaculteit(5)
.Dices que quieres usarlo sin prefijos, bueno ... puedes usarlo con un prefijo:
$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m
así como ejecutarlo como respuesta.
fuente
dc
! Es parte de coreutils, por lo que está instalado en OS X, Ubuntu y prácticamente TODO lo demás. Es una calculadora RPN, así que si no te gustan, no es para ti.Los comandos muy básicos son los siguientes (la página de manual tiene toda la sintaxis que no incluí. Exponenciación, ¿alguien?)
Solo necesitas espacios entre números. Se ignoran en todos los demás casos.
Escribir un número lo empuja a la parte superior de la pila.
fuente
42 * 5
en un terminal, y haga que salga la respuesta1+1
en una terminal casi nunca funcionará. Entonces su respuesta está bienYo uso Octave para este tipo de cosas: http://www.gnu.org/software/octave/
Es más o menos un clon de matlab (disculpas si se trata de una simplificación excesiva) que se puede usar en el terminal escribiendo octava. Instalar sudo apt-get install octave
No es exactamente lo que quieres, pero pensé que lo agregaría como una alternativa a Python.
Ejemplo de uso:
fuente
Me gusta mucho wcalc. Es una calculadora científica de línea de comando. Fácil de encontrar en el Centro de software de Ubuntu, o simplemente use apt-get.
Acepta argumentos de línea de comando y tiene el modo "shell":
Y si alguien está en ingeniería, como yo, podría utilizar GNU Octave. Puede hacer todo tipo de cosas, graficar, resolver ecuaciones simultáneas. Además, es una alternativa gratuita a Matlab
fuente
=() { wcalc "$@" }
manera simple es llamar a python.
Ejemplo:
fuente
python -c 'import math;print math.log(2)'
Lo que he encontrado es que no puedo confiar en expr, bc o en las opciones integradas de Shell. Por lo tanto, utilicé Perl que normalmente se instalaría en * linux distro's
El cálculo anterior restará $ VAL1 de $ VAL2 e imprimirá sin decimales (0f)
El beneficio de usar Perl es (detalles de Pros y contras listados aquí )
fuente
Puede agregar la siguiente función a su archivo .bashrc:
Tenga en cuenta que la
-l
bandera es muy importante. Sin ella, el uso debc
da5 / 2 = 2
.Como se mencionó anteriormente, los cálculos se pueden hacer usando el
=
signo delante de la fórmula.fuente
También puede usar awk para hacer algunos cálculos aritméticos en la terminal,
fuente
use el comando "bc" y luego puede hacer el cálculo
ejemplo
Para usar
bc
sin la nota de garantía escriba en el terminalbc -q
ejemplo
fuente
Puede usar bind y bash C-ay C-epara controlar la salida. Por ejemplo, ejecute esto en su shell:
Ahora escriba cualquier operación aritmética como 10 + 15 y presione Ctrl+ J:
Obtendrás esto. Ahora, ¿cómo se hace?
bind
Este comando cambia el enlace de su bash, como las teclas de acceso directo.\C-j
este es el bash equivalente a Ctrl + J, esta es la combinación de teclas que nos gustaría agregar a nuestro comando.\C-a
Esto nos lleva al inicio de la línea.echo $((
Esto escribeecho $((
al principio.\C-e
nos lleva al final de la línea))
cierra nuestro paréntesis anterior\C-m
Este es el equivalente a la tecla de retorno.Puede escribir esto en su
~/.inputrc
archivo:¡Por supuesto, las otras respuestas también son válidas! Solo retoqué un poco:
"\C-j": "\C-aecho " \C-e " | bc \C-m"
"\C-j": "\C-acacl \C-m"
"\C-j": "\C-apython3 -c "print( \C-e )" \C-m"
Puede cambiar Ctrl + J a lo que quiera, pero recuerde, intente no cambiarlo por algo que ya tenga un enlace;).
Recurso:
fuente
En el pasado, he usado
wcalc
un pequeño programa llamadoe
que es prácticamente imposible buscar en Google. Ahora uso un script de Python para hacer esto, que usa algunas característicase
como los corchetes.wcalc
sigue siendo bueno porque puede hacer precisión arbitraria y conversión de unidades, pero casi nunca uso esas características.Aquí se explica cómo usarlo (suponiendo que el guión se haya guardado como
e
y puesto en algún lugar del$PATH
):fuente
Hay una forma de un solo paso para lograr exactamente lo que quieres. Todo lo que necesita hacer es configurar
shell
su cuenta/bin/bc
.fuente
También puede usar
printf
shell incorporado para hacer cálculos aritméticos en la terminal.Ejemplo:
fuente
Puede usar el intérprete de python para el cálculo. Aquí hay un tutorial sobre cómo hacerlo .
Python 2 y python 3 están instalados en Ubuntu por defecto.
fuente
Crear una calculadora de terminal
Ponga lo siguiente en su archivo .bashrc
O ejecútelo en el indicador de comandos de la shell. Ahora "calc" del shell funcionará de la siguiente manera:
Todas las funciones con un "(" o ")" deben estar entre comillas.
fuente