228 Matching Annotations
  1. Jun 2025
  2. May 2025
    1. Am 14.05.2025 kündigte die NGO Milieudefensie eine neue Klimaklage gegen Shell an, um die Inbetriebnahme von 700 geplanten Öl- und Gasfeldern zu verhindern. Die Emissionen dieser Felder würden 5,2 Milliarden Tonnen CO₂ betragen, etwa 36 Mal so viel wie die der Niederlande. Eine Studie zeigt, dass Shells Emissionen weiterhin steigen. Seit 2021 hat Shell Investitionen in 32 neue Öl- und Gasfelder beschlossen. Ein Gerichtsurteil von 2021 verlangte von Shell eine Reduzierung der Emissionen um 45 % bis 2030, doch ein Berufungsurteil von 2024 hob diese konkrete Vorgabe auf. Shell hat vier Wochen Zeit, auf die neue Klage zu reagieren. [Zusammenfassung mit Mistral generiert] https://taz.de/Neue-Klimaklage-in-den-Niederlanden/!6087879/

    1. It isn't strictly necessary, but set -euxo pipefail turns on a few useful features that make bash shebang recipes behave more like normal, linewise just recipe: set -e makes bash exit if a command fails. set -u makes bash exit if a variable is undefined. set -x makes bash print each script line before it's run. set -o pipefail makes bash exit if a command in a pipeline fails. This is bash-specific, so isn't turned on in normal linewise just recipes.
    1. #!/usr/bin/env npx ts-node // TypeScript code Whether this always works in macOS is unknown. There could be some magic with node installing a shell command shim (thanks to @DaMaxContext for commenting about this). This doesn't work in Linux because Linux distros treat all the characters after env as the command, instead of considering spaces as delimiting separate arguments. Or it doesn't work in Linux if the node command shim isn't present (not confirmed that's how it works, but in any case, in my testing, it doesn't work in Linux Docker containers). This means that npx ts-node will be treated as a single executable name that has a space in it, which obviously won't work, as that's not an executable.
    1. Nur 36 Firmen waren 2023 für über die Hälfte der weltweit ausgestoßenen Treibhausgase verantwortlich. Das ergibt eine Analyse der Daten in der Carbon Majors Database. Die meisten der 169 in dieser Datenbank erhaltenen Firmen haben im Jahr 2023, dem damals heißesten Jahr der Weltgeschichte, ihre Emissionen gesteigert.

      Zu den Hauptverschmutzern gehört auch die #Adnoc, deren Anteile an der österreichischen #OMV mit denen des österreichischen Staates syndiziert sind.

      Frühere Versionen des von InfluenceMap produzierten Carbon Majors-Bericht spielten bei Prozessen gegen fossile Unternehmen eine wichtige Rolle. https://www.theguardian.com/environment/2025/mar/05/half-of-worlds-co2-emissions-come-from-36-fossil-fuel-firms-study-shows

      Carbon Majors 2023 Data Update: https://carbonmajors.org/briefing/The-Carbon-Majors-Database-2023-Update-31397

  3. Apr 2025
  4. Mar 2025
  5. Jan 2025
  6. Nov 2024
    1. Lovins’ later book, Reinventing Fire,48 has a fawning Foreword writtenby the President of Shell Oil Company, which is not surprising since Lovins had adjusted hisgraphs so that fossil fuel phaseout was moved to 2050

      for - climate crisis - greenwashing - Amory Lovins - Rocky Mountain Institute - book - Reinventing Fire - forward by Shell Oil president - Jim Hansen

  7. Oct 2024
    1. Viele CO2-Kompensationsgeschäfte mit chinesischen Firmen, die Bestätigungen für angebliche „upstream emission reduction“ anbieten, sind vermutlich betrügerisch. Durch die Anrechnung solcher angeblicher Reduktionen haben österreichische Firmen wie die OMV, Shell Austria und MOL Austria versucht, den vorgeschriebenen Anteil von 13% erneuerbare Energie in ihren Produkten zu erreichen. Die Staatsanwaltschaft hat eine entsprechende Anzeige des österreichischen Klimaschutzministeriums bisher nicht weiter verfolgt, die beweislage ist aber deutlich. https://www.derstandard.at/story/3000000239520/millionen-betrugsverdacht-rund-um-co2-ausgleichsgeschaefte-mit-china-weitet-sich-aus

  8. Sep 2024
  9. Aug 2024
  10. May 2024
    1. In Frankreich wird bei Fécamp der dritte Offshore-Windpark eröffnet. Frankreich will die Windenergie energischer entwickeln als bisher. Dazu gehört auch die Auftragsvergabe für einen ersten schwimmenden Windpark – die einzige Form von Windparks, die in großen Teilen des Mittelmeerraums möglich ist. Anlagen für Windenergie wurden im vergangenen Jahr in Europa in Rekordtempo installiert. Die Branche hat große Probleme dabei, sich gegen die internationale, vor allem chinesische Konkurrenz zu behaupten, die wesentlich mehr staatliche Unterstützung erhält. https://www.liberation.fr/economie/a-fecamp-le-troisieme-parc-eolien-en-mer-sort-de-leau-mais-la-france-reste-a-la-traine-20240515_T3JON5O7WFEQ7ETICQYDCVTNWI/

    1. Seit dem Pariser Abkommen finanzierten die 60 größten Banken 425 fossile Großprojekte - sogenannte carbon bombs mit einem zu erwartenden CO2-Ausstoß von jeweils über einer Gigatonne - mit insgesamt 1,8 Billionen Dollar. Der Standard-Artikel geht auf ein Projekt zurück, bei dem Daten des Carbon Bombs-Projekts, des Global Energy Monitor und von Banking on Climate Chaos ausgewertet und visualisiert werden. https://www.derstandard.at/story/3000000193065/billionenkredite-fuer-fossile-grossprojekte-wie-banken-die-klimakrise-mitfinanzieren

      Bericht/Visualisierung: https://www.carbonbombs.org/

    1. Shell plant nicht mehr, seine Öl-Produktion bis 2030 wenigstens um 1-2% pro Jahr zu reduzieren. Zwischen 2023 und 2035 will die Firma jährlich 40 Milliarden Dollar in die Öl-und Gasproduktion und 10-15 Milliarden in „Low-Carbon“-Produkte investieren. Die Ölproduktion soll bis 2030 stabil bleiben, die Gasproduktion ansteigen. Shell beruft sich auch darauf, dass man 2021 die Anteile an einem Projekt im Permian Basin verkauft und damit die Ölproduktion früher als geplant bereits gedrosselt habe. https://www.theguardian.com/business/2023/jun/14/shell-drops-target-to-cut-oil-production-as-ceo-guns-for-higher-profits

    1. Seit dem Pariser Abkommen haben europäische Banken fossile Energieunternehmen durch die Ausgabe vom Anleihen in Wert von ca. einer Billion (1000 Milliarden) Euro unterstützt, wie eine Recherche des Guardian ergibt. Anleihen (Bonds) sind inzwischen die wichtigste Form der Finanzierung der Fossilindustrie. https://www.theguardian.com/business/2023/sep/26/europes-banks-helped-fossil-fuel-firms-raise-more-than-1tn-from-global-bond-markets

    1. Eine neue, grundlegende Studie zu Klima-Reparationen ergibt, dass die größten Fosssilkonzerne jählich mindestens 209 Milliarden Dollar als Reparationen an von ihnen besonders geschädigte Communities zahlen müssen. Dabei sind Schäden wie der Verlust von Menschenleben und Zerstörung der Biodiversität nicht einberechnet. https://www.theguardian.com/environment/2023/may/19/fossil-fuel-firms-owe-climate-reparations-of-209bn-a-year-says-study

      Studie: Time to pay the piper: Fossil fuel companies’ reparations for climate damages https://www.cell.com/one-earth/fulltext/S2590-3322(23)00198-7

    1. Der italienische Energiekonzern ENI wird über die bestehenden Verträge hinaus über 27Jahre bis zu 1 mtpa (Million Tonnen pro Jahr) LNG aus Qatar beziehren. Vorangegangen waren ähnliche Deals über jährlich 3,5 mtpa über 27 Jahre mit Shell und TotalEnergies. Ein Deal von QatarEnergy und ConocoPhilips vom November 2022 sieht vor, dass Deutschland ab 2026 über 15 Jahre 2 mtpa LNG bezieht. Ähnliche Abkommen schloss QatarEnergies auch zurLNG-Versorgung asiatischer Länder ab. https://www.reuters.com/markets/commodities/qatar-signs-27-year-gas-supply-deal-with-italys-eni-2023-10-23/

    1. Shell will die Emissionsintensität seiner Öl-Produkte bis 2030 nur noch um 15-20% statt bisher um 20% reduzieren. Das verfässerte Ziele ist in der jüngsten Version der Energiewende-Strategie des Konzerns enthalten, die einen Teil des Jahresberichts 2023 bildet. Für Gas wurden keine Angaben gemacht. Auch für die absolute Höhe der Emissionen gibt der Fossilkonzern kein Ziel an. Durch neue Projekte wird Shell seine Öl- und Gasproduktion bis 2025 um 500.000 Barrel täglich steigern.

      https://www.theguardian.com/business/2024/mar/14/shell-warns-it-may-slow-emissions-reduction-during-crucial-climate-decade

    1. Norwegen erteilt in diesem Jahr 62 Lizenzen für die Exploration von Öl- und Gasfeldern, gegenüber 47 im vergangenen Jahr. Die Steigerung geht auf das Interesse von Öl- und Gasgesellschaften zurück. Gegen den Widerstand von NGOs betreibt Norwegen weiterhin eine Ausweitung der Öl- und Gasproduktion, die zu jahrzehntelanger Förderung führen soll. Stark gewachsen ist dabei das Interesse an der Barents Sea. https://www.reuters.com/business/energy/norway-increases-number-new-oil-gas-drilling-permits-including-arctic-2024-01-16/

    1. Reclaim Finance zufolge ist 2022/23 die Finanzierung von 437 Öl- und Gasprojekte genehmigt worden. Beteiligt sind 200 Unternehmen in 58 Ländern. Die Projekte widersprechen der Roadmap der IEA zur Klimaneutralität von 2021, in der keine neuen fossilen Projekte vorgesehen sind. Eine Schlüsselrolle haben staatliche Firmen in Öl und Gas produzierenden Staaten. Bei der Zahl der Projekte liegen Russland und Norwegen vorne. Europäische Ölgesellschaften haben eine Reduzierung ihrer (unzureichenden) Dekarbonisierungsziele angekündigt. https://www.liberation.fr/environnement/437-nouveaux-projets-petroliers-et-gaziers-quels-sont-les-pays-moteurs-des-energies-fossiles-en-2023-20231130_QRXDTQKM7NBIZGXWUNFQ7QRSWM/

    1. Dichter und sehr gut dokumentierter Überblicksratikel über die Expansionspläne der Öl- und Gasindustrie. Aus unerschlossenen Feldern sollen 230 Milliarden Barrel Öläquivalent gefördert werden - im klaren Widerspruch zum Pariser Abkommen. Durch Ausbeutung neuer Lager werden bis 2025 voraussichtlich 70 Gt CO<sub>2</sub> und damit 17% des Budgets für das 1,5° Ziel ausgestoßen. Eingegangen wird auch auf den Ausstiegsplan des Tyndall Centre. https://taz.de/Run-auf-fossile-Brennstoffe/!5973686/

    1. In den Niederlanden hat die Berufungsverhandlung begonnen, in der Shell gegen ein Urteil angeht, dass es zu einer drastischen CO2-Reduktion zwingt. Der wichtigste Gegner ist die Umweltorganisation Milieu defense. Shells Anwälte veranstalten eine propaganda-show, um die Verwendung fossiler Brennstoffe weiter zurechtfertigen. https://taz.de/Shell-vor-Gericht/!5999034/

    1. Verantwortliche der großen amerikanischen Ölfirmen haben auch nach 2015 privat zugegeben, dass sie die Gefahren fossiler Brennstoffe heruntergespielt haben. Sie haben internationale Pläne gegen die globale Erhitzung nach außen hin unterstützt und nach innen kommuniziert, dass ihre Firmenpolitik diesen Plänen widerspricht. Und sie haben gegen politische Maßnahmen lobbyiert, hinter die sie sich offiziell gestellt haben. Das alles ergibt sich aus dem neuen Bericht des amerikanischen Kongresses über die Desinformations-Politik von Big Oil. Ausführlicher Bericht mit Informationen über mögliche juristische Konsequenzen. https://www.theguardian.com/us-news/2024/apr/30/big-oil-climate-crisis-us-senate-report

  11. Apr 2024
  12. Mar 2024
    1. Die Gewinne von Shell sind 2023 auf 28 Milliarden Dollar gesunken; 2022 hatten sie 40 Milliarden Dollar betragen. Trotzdem war 2022 eines der erforlgreichsten Jahre der Firmengeschichte; die Dividenden sollen erhöht werden. Greenpeace reagierte mit einer satirischen Party, bei der die Verbrennung der Zukunft gefeiert wird. U.a. mit Projekten in Brasilien und im Golf von Mexiko setzt Shell die fossile Expansion fort. https://www.theguardian.com/business/2024/feb/01/shell-to-raise-dividends-again-despite-30-fall-in-annual-profits

  13. Feb 2024
  14. Jan 2024
    1. Guter Überblick über das Lobbying-Netzwerk der deutschen Gasindustrie. Der Verbraucht an Erdgas hat sich in Deutschland seit 1990 verdoppelt, obwohl Erdgas insgesamt etwa so viel Emissionen verursacht wie Kohle. Die LNG-Infrastruktur, die die deutsche Bundesregierung gerade aufbaut, ist auf um ein Drittel höhere Kapazitäten angelegt, als aus Russland importiert wurden. https://taz.de/Fossile-Politik/!5983492/

    1. BP, Shell, Chevron, ExxonMobil et TotalEnergies werden an ihre Aktionäre für das Jahr 2023 mehr als 100 Milliarden Dollar Dividenden auszahlen und damit den Rekord des Vorjahres noch übertreffen. Ursachen für die Rekordprofite sind der Krieg in der Ukraine und die Umwälzungen auf den Weltenergiemärkten. Die Konzerne gehen weiterhin von der Profitabilität ihres Geschäfts aus. Weltweit leiden ärmere Haushalte unter den gestiegenen Energiekosten. https://www.liberation.fr/environnement/climat/industries-fossiles-les-petroliers-arrosent-leurs-actionnaires-de-dividendes-records-20240102_KETOFCVOT5ANLNWCBWMGNYOE7I/

  15. Dec 2023
    1. Einer Greenpeace-Studie zufolge werden die Treibhausgasemissionen von 9 großen europäischen Fossilkonzernen (darunter auch die OMV) im Jahr 2022 zu mindestens 360.000 vorzeitigen Todesfällen allein aufgrund von Extremtemperaturen führen. Dabei gehen die Autor:innen aufgrund einer Übersichtsstudie davon aus, dass 9.318 Tonnen CO<sub>2</sub> im Jahr 2020 statistisch gesehen zu einem zusätzlichen Todesfall bis 2100 führen werden. https://taz.de/Studie-zu-Fossilkonzernen/!5978273/

      Studie: https://www.greenpeace.org/nl/todaysemissionstomorrowsdeaths/

  16. Nov 2023
  17. Oct 2023
  18. Sep 2023
  19. Aug 2023
  20. May 2023
  21. Apr 2023
  22. Feb 2023
  23. Dec 2022
    1. For sufficiently simple cases, just running a few commands sequentially, with no subshells, conditional logic, or loops, set -euo pipefail is sufficient (and make sure you use shellcheck -o all).

      Advice for when you can use shell scripts

  24. Nov 2022
    1. Bash maintains an internal hash of previously found executables in your path. In this case, it has details that at one time there was an executable at /usr/bin/siege, and reuses that path to avoid having to search again. You need to tell bash to manually rehash the path for siege like so: hash siege You can also clear all hashed locations: hash -r
    1. Remember there are two kinds of variable. Internal Variables and Environment Variables. PATH should be an environment variable.

      In my case, I was trying to debug which asdf not finding asdf, in a minimal shell.

      I had checked bash-5.1$ echo $PATH|grep asdf /home/tyler/.asdf/bin

      but ```

      The PATH environment variable

      env | /bin/grep PATH `` being empty was the key discovery here. Must have forgotten theexport`.

    1. Auch der Standard weist in einem Halbzeitbericht zur COP27 darauf hin, wieviele Vertreter der Fossilindustrien an den Verhandlungen dürfen. Ein Hauptinteresse dabei ist es, durch Regeln zu verhindern, dass die selbst verursachten Emissionen wirksam reduziert werden müssen. Er verweist dabei auf Shells Einfluss bei der Formulierung des Aktikels 6 des Pariser Abkommens.

  25. Aug 2022
  26. Jul 2022
  27. Apr 2022
  28. Mar 2022
    1. Just let it expand inside an array declaration's right side: list=(../smth*/) # grab the list echo "${#list[@]}" # print array length echo "${list[@]}" # print array elements for file in "${list[@]}"; do echo "$file"; done # loop over the array
  29. Feb 2022
  30. Sep 2021
  31. Jun 2021
    1. Since looping over the positional parameters is such a common thing to do in scripts, for arg defaults to for arg in "$@". The double-quoted "$@" is special magic that causes each parameter to be used as a single word (or a single loop iteration). It's what you should be using at least 99% of the time.
    1. There is one very important reason for enabling job control to be useful inside scripts: the side-effect it has of placing background processes in their own process groups. This makes it much, much easier to send signels to them and their children with one simple command: kill -<signal> -$pgid. All other ways of dealing with signaling entire trees of processes either involve elaborate (sometimes even recursive) functions, which are often bugnests, or risk killing the parent in the process (no pun intended).
    1. while (( "$#" )); do case "$1" in -a|--my-boolean-flag) MY_FLAG=0 shift ;; -b|--my-flag-with-argument) if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then MY_FLAG_ARG=$2 shift 2 else echo "Error: Argument for $1 is missing" >&2 exit 1 fi ;; -*|--*=) # unsupported flags echo "Error: Unsupported flag $1" >&2 exit 1 ;; *) # preserve positional arguments PARAMS="$PARAMS $1" shift ;; esacdone# set positional arguments in their proper placeeval set -- "$PARAMS"
  32. May 2021
    1. For filter-branch, using pipelines like git ls-files | grep -v ... | xargs -r git rm might be a reasonable workaround but can get unwieldy and isn't as straightforward for users; plus those commands are often operating-system specific (can you spot the GNUism in the snippet I provided?)
    1. However, the place where pip places that package might not be in your $PATH (thus requiring you to manually update your $PATH afterwards), and on windows the pip install might not take care of python-specific issues for you (see "Notes for Windows Users", above). As such, installation via package managers is recommended instead.
    1. The command nix-shell will build the dependencies of the specified derivation, but not the derivation itself. It will then start an interactive shell in which all environment variables defined by the derivation path have been set to their corresponding values, and the script $stdenv/setup has been sourced. This is useful for reproducing the environment of a derivation for development.

      QUESTION: What exactly does nix-shell execute from the Nix expression (i.e., shell.nix, default.nix, etc.)?

      ANSWER: Based on my current understanding, the answer is everything. It calls $stdenv/setup (see annotation below) to set up the most basic environment variables (TODO: expand on this), and "injects" the most common tools (e.g., gcc, sed) into it.

      It also defines the phases (TODO: verify this) and builder functions, such as genericBuilder. For example, the default builder is just two lines:

      source $stdenv/setup
      genericBuild
      

      TODO: pkgs/stdenv/generic/builder.sh is a mystery though.

      QUESTION: Once dropping into nix-shell, how do I know what phases to execute by looking at a default.nix? (E.g., [..]freeswitch/default.nix)

      ANSWER: As far as I can tell, one can override the phases in their Nix build expression (to build the derivation, see at the bottom), but they won't get executed as only the $stdenv/setup (see above) will get sourced, and no builders are called that, in return, invoke the phases (again, see above).

      So if one is using nix-shell

      • to create/hack on a package, the person has to manually invoke the builder or phases (TODO: still fuzzy on this subject)

      • to set up an environment, then one doesn't even have to worry about builders/phases because we just use nix-shell to clear the environment and to inject tools that we need for a given task

      QUESTION: When dropping into nix-shell, is this Nix expression (i.e., freeswitch/default.nix) executed? Or just parts of it?

      ANSWER: As stated above, all of the input Nix expression is evaluated, but no builders and build phases are called; although, nothing prevents one to override the phases, in case they are creating/hacking on a package.

      QUESTION:

      The command nix-shell will build the dependencies of the specified derivation, but not the derivation itself.

      What is the "derivation" here exactly? I know that it is a build expression, but does that mean the default.nix (or other Nix expression) nix-shell is invoked with?

      <sup>This statement also seems like a contradiction with how `nix-shell` works (i.e., if one issues `nix-shell -p curl`, then `curl` will be available in that sub-shell), but `-p` acts like a shortcut to as if `curl` had been listed in `buildInputs` so this is not the case.</sup>

      ANSWER: I have the feeling my confusion comes from the fact that the term "derivation" is used ambiguously in the manuals, sometimes to mean multiple things (see list below).

      TODO: Substantiate this claim, and make sure that it not coming from my misunderstanding certain topics.

      • Nix build expression (such as default.nix) whose output is going to become the store derivation itself (see last item at the bottom about the Nix manual's glossary definition)

      • store derivation.

      Had multiple cracks at unambiguously define what a derivation is, and here's a list of these:

      QUESTION: What is the difference between nix-shell -p and nix-shell invoked with a Nix expression of mkShell (or other that achieves the similar effect)?

      QUESTION: nix-shell does not create a sub-shell, so what does it do? (clarification: so nix-shell indeed does it; I confused it with nix shell)

  33. Apr 2021
    1. can be easily invoked directly from shell prompt or script

      Can't expect / unbuffer / etc. (whatever this is attempting to contrast itself with) be easily invoked directly from shell prompt or script too??

      Okay, I guess you have to know more about how expect is invoked to understand what they mean. One glance at the examples, comparing them, and all becomes clear:

      #!/bin/sh
      empty -f -i in -o out telnet foo.bar.com
      empty -w -i out -o in "ogin:" "luser\n"
      

      I didn't realize that expect required/expected (no pun intended) to be used in scripts with its own shebang line:

      #!/usr/bin/expect
      
      spawn telnet foo.bar.com 
      expect ogin {send luser\r}
      

      That does make it less easy/normal to use expect within a shell script.

      I was coming to the expect project from/for the unbuffer command, which by contrast, is quite easy to include/use in a shell script -- almost the same as empty, in fact. (Seems like almost a mismatch to have unbuffer command in expect toolkit then. Or is expect command the only odd one out in that toolkit?)

  34. Mar 2021
  35. Feb 2021
    1. example: get an environment which is used to build irssi (also see nix-shell) $ nix-build $NIXPKGS --run-env -A irssi example: get a persistent environment which is used to build irssi $ nix-build $NIXPKGS --run-env -A irssi --add-root

      nix-build <path> --run-env has been superseded by nix-shell. From Nix manual section C.12. Release 1.6 (2013-09-10):

      The command nix-build --run-env has been renamed to nix-shell.

  36. Nov 2020
    1. The potential problem: if second_task fails, third_task will not run, and execution will continue to the next line of code - next_task, in this example. This may be exactly the behavior you want. Alternatively, you may be intending that if second_task fails, the script should immediately exit with its error code. In this case, the best choice is to use a block - i.e., curly braces: first_task && { second_task third_task } next_task Because we are using the -e option, if second_task fails, the script immediately exits.
    1. zip -r myfile.zip ./filename

      把filename 压缩成 myfile.zip

      unzip -d /home/file myfile.zip

      把myfile.zip 压缩到 home/file 目录下

      zip -d myfile.zip smart.txt

      删除 myfile.zip 中的 smart.txt

      zip -m myfile.zip add.txt

      往 myfile.zip 中加 add.txt

    1. It starts truncating it's output (shortening strings with ...) once you pipe it's output into grep. That is quite unacceptable. When I am checking if something is inhibited in a script, I should have all possible information available and not have to consider if a string will get truncated when being piped into a tool, that is perfectly readable on a wide terminal.
  37. Oct 2020
  38. Aug 2020
    1. You can also nest brace expansion lists in the mkdir command. For example, in the articles subdirectory under the htg directory, we want to create two subdirectories called new and rewritten. So, we type the following command at the prompt and press Enter. mkdir -p htg/{articles/{new,rewrites},images,notes,done}
  39. Jul 2020
  40. Jun 2020
  41. May 2020
  42. Apr 2020
    1. # Add auto-completion and a stored history file of commands to your Python # interactive interpreter. Requires Python 2.0+, readline. Autocomplete is # bound to the Esc key by default (you can change it - see readline docs). # # Store the file in ~/.pystartup, and set an environment variable to point # to it: "export PYTHONSTARTUP=~/.pystartup" in bash. import atexit import os import readline import rlcompleter historyPath = os.path.expanduser("~/.pyhistory") def save_history(historyPath=historyPath): import readline readline.write_history_file(historyPath) if os.path.exists(historyPath): readline.read_history_file(historyPath) atexit.register(save_history) del os, atexit, readline, rlcompleter, save_history, historyPath

      Enable history and sane keys in python shell

  43. Feb 2020
  44. Jan 2020
  45. Dec 2019