It has been said (and often required by recruitment agencies) that system administrators need to be proficient in a scripting language. While most of us may be comfortable using Bash (or other Linux shells of our choice) to run command-line scripts, a powerful language such as Python can add several benefits.
To begin with, Python allows us to access the tools of the command-line environment and to make use of Object Oriented Programming features (more on this later in this article).
On top of it, learning Python can boost your career in the fields of creating desktop applications and learning data science.
Being so easy to learn, so vastly used, and having a plethora of ready-to-use modules (external files that contain Python statements), no wonder Python is the preferred language to teach programming to first-year computer science students in the United States.
In this 2-article series, we will review the fundamentals of Python in hopes that you will find it useful as a springboard to get you started with programming and as a quick reference guide afterward.
That said, let’s get started.
Table of Contents
Install Python on Linux
Python versions 2.x and 3.x are usually available in most modern Linux distributions out of the box. You can enter a Python shell by typing python
or python3
in your terminal emulator and exit with quit()
:
$ which python $ which python3 $ python -v $ python3 -v $ python >>> quit() $ python3 >>> quit()
If you want to discard Python 2.x and use 3.x instead when you type python, you can modify the corresponding symbolic links as follows:
$ sudo rm /usr/bin/python $ cd /usr/bin $ ln -s python3.2 python # Choose the Python 3.x binary here
By the way, it is important to note that although versions 2.x are still used, they are not actively maintained. For that reason, you may want to consider switching to 3.x as indicated above. Since there are some syntax differences between 2.x and 3.x, we will focus on the latter in this series.
To install Python 3.x on your respective Linux distributions, run:
$ sudo apt install python3 [On Debian, Ubuntu and Mint] $ sudo yum install python3 [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a dev-lang/python [On Gentoo Linux] $ sudo apk add python3 [On Alpine Linux] $ sudo pacman -S python3 [On Arch Linux] $ sudo zypper install python3 [On OpenSUSE]
Install Python IDLE on Linux
Another way you can use Python in Linux is through the IDLE (the Python Integrated Development Environment), a graphical user interface for writing Python code.
$ sudo apt install idle [On Debian, Ubuntu and Mint] $ sudo yum install idle [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo apk add idle [On Alpine Linux] $ sudo pacman -S idle [On Arch Linux] $ sudo zypper install idle [On OpenSUSE]
Once installed, you will see the following screen after launching the IDLE. While it resembles the Python shell, you can do more with the IDLE than with the shell.
For example, you can:
1. open external files easily (File → Open).
2) copy (Ctrl + C)
and paste (Ctrl + V)
text, 3) find and replace text, 4) show possible completions (a feature known as Intellisense or Autocompletion in other IDEs), 5) change the font type and size, and much more.
On top of this, you can use IDLE to create desktop applications.
Since we will not be developing a desktop application in this 2-article series, feel free to choose between the IDLE and the Python shell to follow the examples.
Do Basic Operations with Python on Linux
As is to be expected, you can perform arithmetic operations (feel free to use as many parentheses as needed to perform all the operations you want!) and manipulate text strings very easily with Python.
You can also assign the results of operations to variables and display them on the screen. A handy feature in Python is concatenation – just supply the values of variables and/or strings in a comma-delimited list (inside parentheses) to the print function and it will return the sentence composed by the items in the sequence:
>>> a = 5 >>> b = 8 >>> x = b / a >>> x 1.6 >>> print(b, "divided by", a, "equals", x)
Note that you can mix variables of different types (numbers, strings, booleans, etc) and once you have assigned a value to a variable you can change the data type without problems later (for this reason Python is said to be a dynamically typed language).
If you attempt to do this in a statically typed language (such as Java or C#), an error will be thrown.
A Brief Comment About Object-Oriented Programming
In Object Oriented Programming (OOP), all entities in a program are represented as objects and thus they can interact with others. As such, they have properties and most of them can perform actions (known as methods).
For example, let’s suppose we want to create a dog object. Some of the possible properties are color, breed, age, etc, whereas some of the actions a dog can perform are bark(), eat(), sleep(), and many others.
Methods names, as you can see, are followed by a set of parentheses which may (or may not) contain one (or more) arguments (values that are passed to the method).
Let’s illustrate these concepts with one of the basic object types in Python: lists.
Illustrating Methods and Properties of Objects: Lists in Python
A list is an ordered group of items, which do not necessarily have to be all of the same data types. To create an empty list named rockBands, use a pair of square brackets as follows:
To append an item to the end of the list, pass the item to the append()
method as follows:
>>> rockBands = [] >>> rockBands.append("The Beatles") >>> rockBands.append("Pink Floyd") >>> rockBands.append("The Rolling Stones")
To remove an item from the list, we can pass the specific element to the remove()
method, or the position of the element (count starts at zero) in the list to pop()
.
In other words, we can use either of the following options to remove “The Beatles” from the list:
>>> rockBands.remove("The Beatles") or >>> rockBands.pop(0)
You can display the list of available methods for an object by pressing Ctrl + Space
once you’ve typed the name followed by a dot:
A property of a list object is the number of items it contains. It is actually called length and is invoked by passing the list as an argument to the len built-in function (by the way, the print statement, which we exemplified earlier-, is another Python built-in function).
If you type len followed by opening parentheses in the IDLE, you will see the default syntax of the function:
Now, what about the individual items on the list? Do they have methods and properties as well? The answer is yes. For example, you can convert a string item to uppercase and get the number of characters it contains as follows:
>>> rockBands[0].upper() 'THE BEATLES' >>> len(rockBands[0]) 11
Summary
In this article, we have provided a brief introduction to Python, its command-line shell, and the IDLE, and demonstrated how to perform arithmetic calculations, how to store values in variables, how to print back those values to the screen (either on its own or as part of a concatenation), and explained through a practical example what are the methods and properties of an object.
In the next article, we will discuss control flow with conditionals and loops. We will also demonstrate how to use what we have learned to write a script to help us in our sysadmin tasks.
Does Python sound like something you would like to learn more about? Stay tuned for the second part in this series (where among other things we will combine the bounties of Python and command-line tools in a script), and also consider buying the best udemy python courses to upgrade your knowledge.
As always, you can count on us if you have any questions about this article. Just send us a message using the contact form below and we will get back to you as soon as possible.
That’s great ! Can you make a full tutorial on how to learn Python programming from beginning in Linux
Please, whatever you do, *do not touch the system Python installation!* This includes modifying symlinks or paths or whatever. Large parts of your operating system depend on a particular Python version in the /usr/bin/ directory, be it 2.x or 3.x. This is why some users in the comments report broken functionality.
Always, always, always use virtual environments which allow you to use whatever Python and third-party package versions you want in an isolated location. Anything else can seriously screw up your distribution.
Warning: I don’t know why but wicd stops working if you modify the symlink for python3.x to python, effectively breaking your ethernet / wi-fi.
Hey Guys,
I am new Linux SysAdmin and I am going to use Python for scripting language so, I Googled about it before but i did not find anything useful for someone like me.
would you give me some direction for starting python actually for Linux-system administration?
thank you
If you want to discard Python 2.x and use 3.x instead when you type python, you can modify the corresponding symbolic links as follows:”
Be advised this will result in broken packages (Samba and Python libs) in Linux Mint 18.2
Thanks a lot
Nice one!
I will wait for the update.
Just as note. As sysadmin never remove python 2. One of the utilities that will break will be yum.
It is NOT a good idea to throw away Python 2 if you want to use Ansible. Ansible breaks if you use Python 3
@chuckers,
Please note we never said you SHOULD throw away Python 2. We only mentioned updating the symlinks as a possibility. Please check Part 2 of this series where I clarified that in detail: https://www.tecmint.com/learn-python-programming-to-write-linux-shell-scripts/
Seriously Gabriel? That’s like posting “If you’d like to increase space on your hard drive, you can use “rm -rf /” and then saying that you” didn’t actually recommend it.” when someone points out it deleted their entire hard drive.
Novice Linux users come to sites like this and follow directions; “clarifying” potentially damaging instructions after the fact isn’t very useful. You should, at the very least, insert a clear cautionary statement. Better yet, move this “suggestion” and the “clarification to the suggestion” adjacent to each other AND include a cautionary statement that it can break packages on some common distros.
awesome
@sangram,
Thank you for your comment. Stay tuned for more great articles and useful tips!