Je cherche une calculatrice capable d'effectuer des calculs dans le terminal lui-même sans autre préfixe ni suffixe supplémentaire.
Par exemple: si je saisis quelque chose comme 10000-9000 dans le terminal, la réponse devrait être 1000.
Encore une fois, je dis qu'il me faut une calculatrice rapide dans le terminal, sans aucun caractère ajouté. Je sais que si je passe à Python, cela peut le faire mais je ne le veux pas de cette façon.
command_not_found
crochet et essayer d'envoyer la commande àbc
/calc
/ peu importe si cela ressemble vaguement à un calcul. Il se sent toujours un peu sale, cependant.Réponses:
Arithmétique Bash
Une autre solution possible consiste à ajouter une fonction simple pour l'arithmétique intégrée de Bash. Mettez ceci dans votre
.bashrc
fichier pour essayer:Alors maintenant, vous n’avez même
$((...))
plus besoin de=
quoi, cela semble assez naturel.Remplacement
Une autre chose si vous voulez être encore plus rapide: vous pouvez le remplacer
p
par+
etx
avec*
. Cela fonctionnera pour cela:Maintenant, vous n’avez même Shiftplus besoin de rien , la seule chose à faire est
=
d’être arithmétique.Sortie hexadécimale
La sortie peut être affichée en décimal et en hexadécimal, si vous le souhaitez. ( Remarque : l'utilisation de la
x
substitution sera en conflit avec la0x...
syntaxe hexadécimale)Exemple:
En utilisant
bc
Si vous souhaitez des calculs légèrement plus avancés, vous pouvez le diriger de la
bc
manière suivante:Les fonctions fournies par
bc
sont les suivantes (et peuvent être trouvées à partir deman bc
):Il prend également en charge
if
,for
,while
et les variables comme un langage de programmation mais s'il peut être préférable d'écrire dans un fichier si vous voulez que.Gardez à l'esprit qu'il substituera
p
etx
dans les noms de fonction / variable. Il peut être préférable de simplement supprimer les remplaçants.En utilisant
gcalccmd
Vous pouvez également appeler la fonction
gcalccmd
(degnome-calculator
) comme suit:Les fonctions disponibles semblent être (prises directement du code source ),
==
dénote des fonctions équivalentes:la source
gcalccmd
ne fonctionne pas très bien. Cela se voitError 3
probablement à cause de cet espace vide. Cependant, cette version légèrement modifiée a parfaitement fonctionné pour moi:echo -e "$calc\nquit"| gcalccmd | sed "s:^> ::g"
function = { R -q --vanilla -e "$@" | grep -E '[^>](.*)' -o -x --color=never }
= 2 + 0x20
34 (0x22)
Vous pouvez faire de l’arithmétique d’entiers simple de manière native dans bash en utilisant la
((...))
syntaxe, par exemple:Il y a aussi la
bc
calculatrice, qui peut accepter des expressions arithmétiques sur une entrée standardLe
bc
programme peut aussi faire de l'arithmétique en virgule flottantela source
calc()
NL{
NLecho "$@" | bc
NL}
où NL est une nouvelle ligne. Ensuite, vous pouvez tapercalc 1234 + 768
(empreintes2002
), ou toute autre formulebc
pouvant interpréter. Vous pouvez bien sûr utiliser n'importe quel nom de fonction, je pensais juste que celacalc
cadrait parfaitement avec ce que cela faisait.echo
:bc <<< "2*2"
Vous pouvez utiliser
calc
. N’est pas installé par défaut, mais vous pouvez l’installer rapidement à l’aide de la commande suivante:Une fois que vous avez installé, vous pouvez faire le calcul que vous souhaitez:
Pour plus d'informations, consultez sa page de manuel
la source
man calc
etcalc help
dit tout.calc help builtin
voyez une liste de fonctions supportées telles quesin()
Malheureusement, il n'y a pas de moyen "facile" de faire cela. L'interface python interactive sur la ligne de commande est la mieux adaptée à vos besoins, car contrairement à
apcalc
\, ellepython
est incluse dans Ubuntu. Je ne sais pas sibc
est toujours inclus, cependant, python est le préféré pour ce genre de choses.Vous pouvez simplement exécuter l'
python
interface interactive sur la ligne de commande, puis faire les calculs de cette façon. Vous pouvez l'utiliser comme calculatrice.Pour ce faire, vous ouvrez le terminal, tapez
python
, puis appuyez sur le Enterbouton.Ensuite, dans l’invite python qui s’affiche, vous pouvez taper vos calculs. Par exemple
10000 - 9000
,. La ligne suivante est le résultat.Si vous voulez dire, cependant, quelque chose où vous venez de charger le terminal et pouvez le faire ...
... alors pas il n'y a pas moyen de le faire dans tout le terminal sans rien d' autre, parce que Bash ne gère pas d' arguments numériques comme ça.
la source
ipython
est un peu plus utile que le shell Python standard pour effectuer des calculs et autres.Je vous conseillerais de créer une fonction simple pour les calculs de base de Python. Quelque chose comme ça dans votre
.bashrc
:Si vous voulez faire des calculs plus avancés, vous pouvez utiliser le suivant qui importe toutes les
math
fonctions du module. (voir ici pour plus d'informations)(Remarque: Python étant un langage de programmation, certaines choses peuvent paraître étranges, par exemple
**
pour les puissances de et%
pour le modulo)Sinon, vous pouvez créer un script Python
calc
,placez-le dans un répertoire inclus dans la
PATH
variable et définissez son indicateur exécutable pour obtenir la mêmecalc
commande que ci-dessus (inutile de créer une fonction Bash pour exécuter un script Python).Si vous voulez une méthode en pur Bash, utilisez la réponse de steeldriver. Cette réponse n’est vraiment utile que si vous avez besoin des fonctions les plus avancées (c’est-à-dire de
math
), car Python est relativement lent par rapport à Bash.Je ne sais pas si cela casse votre "passage en python, il peut le faire et je ne le veux pas de cette façon". remarque, mais vous n'avez pas besoin d'entrer l'invite interactive et le résultat est accessible dans Bash, donc cette réponse semble valide (du moins pour moi).
la source
c
,?
ou+
?) de sorte que vous aurez à chaque terminal que vous ouvrez.python2 -c "from __future__ import division; from math import *; print($*)"
sinon, il fera toujours une division entière, par exemple pourcalc 5/2
vous obtenir à la2
place de2.5
. Voir ici pour référence: stackoverflow.com/a/183870/202504pi
ete
. Je pense que mettre cela comme un script séparé est plus flexible et portable. Voici un résuméUtilisez le package
gcalccmd
fromgnome-calculator
(> = 13.04) ougcalctool
(<13.04). Je pense que le paquet est installé par défautla source
man gcalccmd
dit: une calculatrice sur console . C'est tout simplement ce que veut l'OP .. :)./bash_aliases
même manièrealias calc='gcalccmd'
ou si vous souhaitez effectuer des calculs ponctuels (avec réponse instantanée), vous pouvez ajouteralias calc='gnome-calculator -s'
- utilisation de ce dernier:calc 2000/1300
oucalc 2+3
. Dans ce cas, il n'est pas nécessaire de quitter la calculatrice - elle vous donne simplement une réponse et vous n'avez pas besoin de taperquit
.Voici un script shell rapide pour cela:
Enregistrez ceci sous "c", puis placez-le quelque part dans votre chemin (comme / bin), puis marquez-le comme exécutable.
A partir de maintenant, vous pouvez exécuter des calculs dans le terminal comme ceci:
la source
echo "$@" | bc
plutôt de l' utiliser afin que vous puissiez insérer des espaces dans les calculs plus naturellement=
au lieu dec
pour le nom de cette commande? Bash vous permet en fait d'utiliser ceci comme nom d'une fonction.~/bin
(votre répertoire personnel debin
) et veiller à ce que/home/yourname/bin
est dans votrePATH
.Voici une modification de la partie appropriée de
/etc/bash.bashrc
(sur Ubuntu 10.04) qui modifiera lecommand_not_found
gestionnaire pour exécuter l'évaluateur d'expression du shell si le premier caractère de la commande inconnue est un nombre ou-
ou+
.Vous pourrez faire n'importe quelle arithmétique de coquille de cette façon; voir http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic pour obtenir une liste des opérateurs arithmétiques.
Notez que si l'expression que vous voulez évaluer contient un
*
, vous devrez citer le ou*
avec les\
guillemets, car le shell fera l'expansion du nom de fichier avant de décider quelle commande exécuter. Même chose pour d'autres opérateurs comme>>
.Mettez ceci dans votre
~/.bashrc
, puis tapez. ~/.bashrc
et essayez-le.Exemple de sortie: (je tape
cta
, une faute de frappe, juste pour vérifier que notre nouveau gestionnaire command_not_found essayera toujours de rechercher des commandes inconnues).la source
echo $(( $@ ))
et la remplacer par, exécutez l’un des programmes de calcul les plus avancés mentionnés par d’autres répondeurs qui prennent leurs arguments sur la ligne de commande.Une autre solution que je n'ai pas vue mentionnée ici est Qalculate (qalc) .
pour la version CLI,
pour l'interface graphique.
Il a un tas de fonctionnalités telles que:
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)
etfaculteit(5)
.Vous dites que vous voulez l'utiliser sans préfixes, eh bien ... vous pouvez l'utiliser avec un préfixe:
$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m
ainsi que de l'exécuter en tant que remplaçant.
la source
dc
! Cela fait partie de coreutils, donc il est installé sur OS X, Ubuntu et à peu près TOUT autre. C'est une calculatrice RPN, donc si vous n'aimez pas ça, ce n'est pas pour vous.Les commandes très basiques sont les suivantes (la page de manuel a toute la syntaxe que je n’ai pas incluse. Exponentiation, ça vous tente?)
Vous avez seulement besoin d'espaces entre les nombres. Ils sont ignorés dans tous les autres cas.
Taper un nombre le pousse vers le haut de la pile.
la source
42 * 5
dans un terminal, et le laisser afficher la réponse1+1
dans un terminal ne fonctionnera presque jamais. Donc, votre réponse est bonneJ'utilise Octave pour ce genre de chose: http://www.gnu.org/software/octave/
C'est à peu près un clone matlab (excuses s'il s'agit d'une simplification excessive) qui peut être utilisé dans le terminal en tapant octave. Installez sudo apt-get install octave
Ce n'est pas tout à fait ce que vous voulez, mais j'ai pensé l'ajouter comme alternative au python.
Exemple d'utilisation:
la source
J'aime beaucoup wcalc. C'est une calculatrice scientifique en ligne de commande. Facile à trouver dans le Centre logiciel Ubuntu, ou utilisez simplement apt-get.
Il accepte les arguments de ligne de commande ainsi que le mode "shell":
Et si quelqu'un est en ingénierie, comme moi, vous pouvez utiliser GNU Octave. Il peut faire toutes sortes de choses, créer des graphiques, résoudre des équations simultanées. De plus, c'est une alternative gratuite à Matlab
la source
=() { wcalc "$@" }
manière simple est d'appeler python.
Exemple:
la source
python -c 'import math;print math.log(2)'
Ce que j’ai trouvé, c’est que je ne peux pas faire confiance aux options expr, bc ou Shell intégrées. J'ai donc utilisé Perl qui serait normalement installé dans la distribution * linux
Le calcul ci-dessus soustrait $ VAL1 de $ VAL2 et imprimera sans décimale (0f)
Profitez de l'utilisation de Perl is (détails des avantages et inconvénients répertoriés ici )
la source
Vous pouvez ajouter la fonction suivante à votre fichier .bashrc:
Notez que le
-l
drapeau est très important. Sans cela, l'utilisation debc
donne5 / 2 = 2
.Comme il a été mentionné ci-dessus, les calculs peuvent être effectués en utilisant le
=
signe devant la formule.la source
Vous pouvez également utiliser awk pour effectuer des calculs arithmétiques sur le terminal,
la source
utilisez la commande "bc" et vous pourrez alors calculer
exemple
À utiliser
bc
sans la note de garantie, écrivez dans le terminalbc -q
exemple
la source
Vous pouvez utiliser bind et bash C-aet C-epour contrôler la sortie. Par exemple, exécutez ceci dans votre shell:
Maintenant tapez une opération arithmétique comme 10 + 15 et appuyez sur Ctrl+ J:
Vous obtiendrez ceci. Maintenant, comment fait-on?
bind
Cette commande change la liaison de votre bash, comme les raccourcis clavier.\C-j
c'est l'équivalent bash de Ctrl + J, c'est la combinaison de touches que nous voudrions ajouter à notre commande.\C-a
cela nous amène au début de la ligne.echo $((
cela écritecho $((
au début.\C-e
nous amène au bout de la ligne))
ferme notre parenthèse précédente\C-m
c'est l'équivalent de la clé de retour.Vous pouvez écrire ceci dans votre
~/.inputrc
fichier:Bien sûr, les autres réponses sont également valables! Juste un peu modifié:
"\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"
Vous pouvez changer Ctrl + J comme bon vous semble, mais rappelez-vous, essayez de ne pas le changer pour quelque chose qui a déjà une liaison;).
Ressource:
la source
Dans le passé, j’utilisais
wcalc
un petit programme appelée
quasiment impossible à rechercher sur Google. Maintenant, j'utilise un script python pour cela, qui utilise des fonctionnalitése
telles que les crochets.wcalc
est toujours agréable car il peut effectuer des conversions de précision et des unités arbitraires, mais je n’utilise presque jamais ces fonctionnalités.Voici comment l'utiliser (en supposant que le script a été sauvegardé
e
et placé quelque part dans le fichier$PATH
):la source
Il existe une méthode en une étape pour accomplir exactement ce que vous voulez. Tout ce que vous avez à faire est de configurer le
shell
pour votre compte/bin/bc
.la source
Vous pouvez également utiliser le
printf
shell intégré pour effectuer des calculs arithmétiques sur un terminal.Exemple:
la source
Vous pouvez utiliser l'interpréteur python pour le calcul. Voici un tutoriel sur la façon de le faire .
Python 2 et Python 3 sont installés dans Ubuntu par défaut.
la source
Créer une calculatrice de terminal
Mettez ce qui suit dans votre fichier .bashrc
Ou exécutez-le à l'invite du shell. Maintenant, "calc" à partir de la coque fonctionnera comme suit:
Toutes les fonctions avec "(" ou ")" doivent être entre guillemets.
la source