root@Ex# set ?
Possible completions:
+ apply-groups Groups from which to inherit configuration data
+ apply-groups-except Don’t inherit configuration data from these groups
> dhcp Configure DHCP server
> finger Allow finger requests from remote systems
> ftp Allow FTP file transfers
> netconf Allow NETCONF connections
> outbound-ssh Initiate outbound SSH connection
> service-deployment Configuration for Service Deployment (SDXD) management application
> ssh Allow ssh access
> subscriber-management Subscriber management configuration
> telnet Allow telnet login
> tftp-server Allow TFTP file transfers in default routing instance
> web-management Web management configuration
> xnm-clear-text Allow clear text-based JUNOScript connections
> xnm-ssl Allow SSL-based JUNOScript connections
[edit system services]
root@Ex# set
Issues with logging into EX Virtual Chassis via SSH and HTTP
What needs to be checked if we encounter issues with SSH and HTTP in Juniper Ex?
SSH:
If you encounter issues with users not able to log into the switch using SSH, check the following:
- SSH is properly configured. root@EX# set system services ssh
- No firewall filters for TCP blocking SSH. root@EX3# show firewall
- Make sure the directory /var/empty exists.
- How To Install and Enable SSH Server on Debian 10
- How To Install and Enable SSH Server on CentOS 8
- How To Generate Git SSH Keys | Process of Git Generate SSH Key on Windows, Linux, Mac
If the directory is not present, create it as shown below:
%cd /var
%mkdir empty
HTTP/HTTPS:
If you are not able to log in to the switch using HTTP/HTTPS, check the following.
- HTTP is properly configured under web management.
root@SW1# set system services web-management http
- No firewall filters blocking http traffic.
- Clear the cache in the browser
The directory structure for HTTP is as below:
/packages/mnt/jweb-ex-9.5R2.7/jail/var/etc
show chassis firmware – Verify jloader version
root@Ex4200VC> show chassis firmware no-forwarding Part Type Version FPC 0 uboot U-Boot 1.1.6 (Mar 26 2011 - 04:42:33) 1.0.0 loader FreeBSD/PowerPC U-Boot bootstrap loader 2.4 FPC 1 uboot U-Boot 1.1.6 (Mar 26 2011 - 04:42:33) 1.0.0 loader FreeBSD/PowerPC U-Boot bootstrap loader 2.4
show chassis routing-engine
root@Ex4200VC> show chassis routing-engine Routing Engine status: Slot 0: Current state Master Election priority Master (default) Temperature 52 degrees C / 125 degrees F CPU temperature 52 degrees C / 125 degrees F DRAM 1024 MB Memory utilization 34 percent CPU utilization: User 3 percent Background 0 percent Kernel 2 percent Interrupt 0 percent Idle 95 percent Model EX4200-48P, 48 POE Serial ID BQ02103ABCDE Start time 2011-03-19 23:36:30 GMT Uptime 18 days, 12 hours, 59 minutes, 32 seconds Last reboot reason Router rebooted after a normal shutdown. Load averages: 1 minute 5 minute 15 minute 0.43 0.18 0.11 Routing Engine status: Slot 1: Current state Backup Election priority Backup (default) Temperature 36 degrees C / 96 degrees F CPU temperature 36 degrees C / 96 degrees F DRAM 1024 MB Memory utilization 26 percent CPU utilization: User 8 percent Background 0 percent Kernel 11 percent Interrupt 0 percent Idle 81 percent Model EX4200-48P, 48 POE Serial ID BQ02104ABCDE Start time 2011-03-19 23:36:24 GMT Uptime 18 days, 12 hours, 59 minutes, 38 seconds Last reboot reason Router rebooted after a normal shutdown. Load averages: 1 minute 5 minute 15 minute 0.07 0.03 0.00
How to copy files from one location to another in a Routing Engine
How to copy files from one location to another in a Routing Engine
Copy file from one directory to another:
In order to move files from one directory to another on a local router, use the following command:
user@host> file copy
user@host> file copy /var/log/file1.txt /var/tmp/
- How To Install AutoFS on Linux
- Pwd Command in Linux (Current Working Directory)
- Chown Command in Linux (File Ownership)
In this example, file file1 is copied from the /var/log directory to /var/tmp.
Copy a file from one Routing Engine to another:
On Dual Routing engine routers, copy a file from one RE to another RE, use the following command:
user@host> file copy /var/tmp/jinstall-11.2R1.7-domestic-signed.tgz re1:/var/tmp/
In this example, when run in the Master RE, the Junos image on the Master RE is copied from the /var/tmp/ directory to the /var/tmp/ directory on the Backup RE.
How to Delete Lines in Vim / Vi
Vim comes out as an outstanding tool that helps to configure files and editing text mostly under Linux. One quirk of Vim that many cannot acknowledge is its capability to delete or erase complete lines in a text or file. Nothing complex about Vim but learning it is definitely useful.
Like every other work, deleting a line in Vim too has various methods. Vim, the widely known editor for text in Linux, can undo one or many patterns in a single command.
This tutorial will help you get knowledge on deleting lines by range or pattern by various options provided by Vim.
Various ways to delete a line in Vim
- Find Files and Directories on Linux Easily
- Access Control Lists on Linux Explained | Linux ACL Cheat Sheet
- How to copy files from one location to another in a Routing Engine
How to delete a single line?
- Press on the Esc key and rapidly move along different files.
- Move the cursor towards your line of choice for deleting.
- If you want to delete a line, you need to press one of the following commands,
DD D
Deleting a single word
- Pressing Esc helps you enter the mode of command.
- Next step involves the pointer being placed at the start of the very word.
- Press down on the key that instant.
Steps for deleting multiple rows?
- Start by pressing the Esc key.
- Next step involves moving pointer to the line that’s needed to get deleted.
- One use of one of the below mentioned commands the line will get deleted
[#]d d {# stands for no. of lines} D-d-d
Method for deleting series’ of lines
- Start by using the Esc key to enter a normal mode in Vim.
- The following command will be brought to use with the beginning of the line’s range to the end of the line’s spectrum.
Example for reference is, deleting lines 3, 4, 5, and 6 by using the command: 2,6d.
Methodology for – delete all rows.
- Firstly you press the Esc key.
- Finally clear out everything inside the file by command, %d.
- Once this command is executed, Vim will pop up, “No lines in buffer”.
Deleting the line present at the end of the file
Firstly the person needs to be moved to the line that needs deletion.
Entering command mode is followed by pressing of the Esc key.
The last step is to getting deleted every line except the ones you want to keep. The command needed: $d.
Deleting the line present at the beginning of the file
The first thing is to position the cursor properly on the line that needs deletion.
I am following with pressing the escape key.
Finally using the command delete the line at the beginning of the file.
Steps for deleting template-based lines
Vim allows you to get the lines with the coincidence of patterns. Many ways are available for deleting template-based lines. There are several ways to delete rows based on a template.
Deleting line laced with the specific word
- Bring to use the Esc key and enter yourself into the mode of normality in the text.
- You can delete the line with a specific word using, r / word/.
Getting lines lacking specific words deleted
- Esc key will help you enter in command mode.
- Use a particular command, r!/word/. To delete like lacking a specific word.
The process to delete the empty lines.
- Blank lines can be deleted using the Esc key and switching to the normal mode.
- Following above, enter the mentioned command will do the trick
- r/^$/d
When does vim delete every line?
You get to delete a Vim/V line using: 1,$d
. When you decide to delete all lines in vi go for: 1, here $ is symbolic of the line which is next in the command. Once a line starts with:g/^$/d
it has the potential to delete all empty lines. ^$ present is the resemblance of the empty lines present. The command: g/^s/\*$/d
, is capable of deleting every empty line present.
Conclusion
Once you have gone through the above article and have come to acknowledge the analysis well, you will have yourself many choices as to how you can delete a line or word on Vim.
Once you are well aware of Vim’s different commands, you will come to realise how time-efficient Vim will turn out to be.
How to Convert String into Integer in Python
Objects can be any kind of data type in Python, i.e. integer and string. Sometimes, you will need to convert one data form to another while writing Python code. For example, it needs to be transformed into an integer to perform a math operation on a number represented as a string. Here’s how to convert a string in Python to an integer.
int()
function in Python
The built-in function int() returns an integer decimal object from a given number or String. It takes the form below:
int(a, base=10)
Two arguments are accepted by the function:
- a – The number or String to be transformed to an integer.
- base – Reflects the first argument’s numeral scheme. It can have a value between 0 and 2–36. It is optional to render this statement. The default base is always 10 if no base is defined (decimal integer). Integers are usually expressed in hexadecimal format i.e., base 16, decimal has base 10, octal has base 8, and binary has base 2.
If the given string cannot be interpreted as an integer, the ValueError exception is executed by the function.
- How to Find the Length of a List in Python
- How to split a string in Python
- How to Check Python Version
Converting a String to Integer in Python
A ‘string’ is a list of characters declared in Python using a single (‘), double (“), or triple quotes (“””). If you use quotes to declare a variable that contains only numbers, its data type is set to String. Consider the instance below:
no_of_day = "23" type(no_of_day)
The type()
function tells us that the String
object is the no_of_day
variable.
<type 'str' > type
Let’s try on the variable to do a math operation:
print(day+5)
After that, Python throws an exception, i.e., TypeError
, because it is unable to perform a string and integer addition calculation:
Traceback (last call last): '' file, line 1, in TypeError: can't concatenate items with 'str' and 'int.'
To convert a string representation of a decimal integer to an int, transfer a string that returns a decimal integer: to the int() function.
no_of_day = "23" days no_of_day_int = int(no_of_day) type(no_of_day_int) <type 'int' >
The total operation will be done successfully if you try to do the math now:
print(no_of_day_int+5) 28
Remember, the commas you need to delete before passing the number to the int() function if the number contains commas, marking off thousands, millions, etc.:
total = "1,000,000"int(total.replace(",", "")) 1000000
When you execute the conversion between string to an integer, just make sure that you are using a correct base representing integers in various number systems. The number 54731
is expressed as D5CE
in the hexadecimal method, for instance. You need to use Base 16 to convert it to a decimal integer:
If you move the D5CE
String without setting the base to the int() function, the ValueError exception will be:
int ("D5CE", 16)
54731 Traceback (last call last): '' file, line 1, in ValueError: invalid literal with base 10 for int(): 'D5CF'
Conclusion:
In Python, using the int() function, you can convert a string to an integer.
How to Check whether a Directory or File Exists in Bash
Numerous scenarios will arise where you may need to perform an action based on whether a file exists or not.
While using the test command in Bash, you should determine whether a file exists and determine its file type.
A test command can take one of three possible syntax:
Test expression. [ EXPRESSION ] [[ EXPRESSION ]]
If you want a script to be portable, you should use the available command on all POSIX shells. The latest version of the test command, [[ (double brackets), is supported on most modern systems using the Bash, Zsh, and Ksh as a default shell.
- Bash If Else Syntax With Examples
- How To Check If File or Directory Exists in Bash
- Docker Exec Command With Examples | How to Run a Docker Exec Command inside a Docker Container?
Check if the file exists.
When checking a specific file, the most commonly used FILE operations include -e and -f. The first one will verify any file’s existence regardless of what type of file it is, while the second one will only return true for those files that are regular files (not a directory or a device).
The most efficient method of determining whether a file exists uses the test command and the if statement. Suppose you see any of the following, the /etc/resolv.conf file exists:
FILE=/etc/resolv.conf if test -f "$FILE"; then echo "$FILE exists." fi
FILE=/etc/resolv.conf if [ -f "$FILE" ]; then echo "$FILE exists." fi
FILE=/etc/resolv.conf if [[ -f "$FILE" ]]; then echo "$FILE exists." fi
If you want to deliver a different action based on whether the file exists or not, simply use the if/then construct:
FILE=/etc/resolv.conf. if [ "$FILE" ]; then echo "$FILE exists." else. echo "$FILE does not exist." fi
You can also operate a printer without the need for an if statement. The command following the && operator is only executed if the test command’s exit code is valid.
test -f /etc/resolv.conf && echo "$FILE exists."
[ -f /etc/resolv.conf ] && echo "$FILE exists."
[[ -f /etc/resolv.conf ]] && echo "$FILE exists."
When performing a series of commands using the && operator, make sure the semicolon does not separate them.
[ -f /etc/resolv.conf ] && { echo "$FILE exist."; cp "$FILE" /tmp/; }
What is said after the || operator is only valid as long as the test command’s exit status is false.
[ -f /etc/resolv.conf ] && echo "$FILE exist." || echo "$FILE does not exist."
Verify that Directory Exists.
The -d test tools you to quickly determine whether a file is a directory.
To check whether Docker’s /etc. The directory is present, use:
FILE=/etc/docker if [ -d "$FILE" ]; then echo "$FILE is a directory." fi [ -d /etc/docker ] && echo "$FILE is a directory."
Also, you can use the double brackets [[ instead of the single brackets [.
Check if the file already exists.
Moreover, the test expression can be negated using the word not. ! logical not operator:
FILE=/etc/docker if not ( -f "$FILE" ]; then echo "$FILE does not exist." fi
Similar to above:
[ ! -f /etc/docker ] && echo "$FILE does not exist."
Check for multiple files.
Instead of using complex nested if/else statements, you can write a little more simply by using logic like this:
if [ -f /etc/resolv.conf -a -f /etc/hosts ]; then
echo "Both files exist." fi if [[ -f /etc/resolv.conf && -f /etc/hosts ]]; then echo "Both files exist." fi Without using the IF statement: [ -f /etc/resolv.conf -a -f /etc/hosts ] && echo "Both files exist." [[ -f /etc/resolv.conf && -f /etc/hosts ]] && echo "Both files exist."
File test operators.
The test command includes some of the following file operators, which indicate whether a file is of a particular type.
-b FILE -
True if that FILE exists and is also a special block file.-c FILE -
True if that FILE exists and is also a special character file.-d source -
True if source exists and is also a directory.-e FILE -
True if that FILE exists and is also a file, regardless of the type of (node, socket, directory, etc.).-f FILE -
True if that FILE exists and is also a regular file (not a device or directory).-G FILE -
True if that FILE exists and has the same group as the user is running that command.-h FILE -
True if that FILE exists and is also a symbolic link.-g FILE -
True if that FILE exists and also has set-group-id (sgid
) flag set.- -k FILE – True if that FILE exists and also has a sticky bit flag set.
- -L FILE – True if that FILE exists and is also a symbolic link.
- -O FILE – True if that FILE exists and is also owned by the user running a command.
- -p FILE – True if that FILE exists and is also a pipe.
- -r FILE – True if that FILE exists and is also readable.
- -S FILE – True if that FILE is also a socket.
- -s FILE – True if that FILE exists and also has nonzero size.
- -u FILE – True if that FILE exists, and also set-user-id (
suid
) flag is set. - -w FILE – True if that FILE exists and is also writable.
- -x FILE – True if that FILE exists and is also executable.
How to Check Python Version
Python is one of the most successful programming languages in the world. It is used to develop websites, write scripts, machine learning, analyze data, and many more.
This article explains how to check what Python version is installed on your operating system working the command line. This can be beneficial when installing applications that require a particular version of python.
We will also explain to you how to programmatically determine what Python version is installed on the system where the Python script is running. For example, when writing Python scripts, you will require determining whether the script supports python’s version on the user’s machine.
- How to Install Python Pip on Ubuntu 20.04
- How to Convert String into Integer in Python
- How to split a string in Python
Python Versioning
Python uses semantic versioning. Production-ready releases are versioned in the following scheme:
MAJOR.MINOR.MICRO
For example, in Python 3.6.8, 3 is a major version, 6 is a minor version, and 8 is a micro version.
- MAJOR – a python, has two major versions that are not fully cooperative: Python 2 and Python 3. For example, 3.5.7, 3.7.2, and 3.8.0 are all part of the Python 3 major version.
- Minor: These announcements are bringing new features and roles. For example, 3.6.6, 3.6.7, and 3.6.8 are all part of the Python 3.6 minor version.
- Micro: The new micro versions include various bug fixes and enhancements.
Development announcements have additional qualifiers. For more information, read the Python “Development Cycle” documentation.
Checking Python Version
Python is pre-installed on most maximum Linux distributions and macOS. On Windows, you have to download and install it if you want.
To get which version of python is fixed on your system, run the Python –version or Python -V command:
$ python --version
The order will print the default Python version, in this case, that is 2.5.15. The version installed on your system maybe another.
Output: Python 2.7.15+
The default version of python will be applied by all scripts that have /usr/bin/python set as an interpreter in the script’s shebang line.
Some Linux distributions have various versions of python installed at the same time. The Python 3 binary is frequently named python3, and the Python 2 binary is called python or python2, but that may not always be the case.
You can check if you have Python 3 installed by typing:
$ python3 --version
Output: Python 3.6.8
Python 2 support ended in 2020. Python 3 is the today and future of the programming language.
At the time of writing this article, the newest major release of python is version 3.8.x. The possibilities are that you can own an older version of Python 3 installed on your system.
If you want to install the most advanced python version, the method depends on your running system.
Programmatically Checking Python Version
Python 2 and Python 3 are different. The code written in Python 2.x may not work in Python 3.x, so you have to write two other codes.
The sys module that is open in all Python versions gives system-specific parameters and functions. sys.version_info enables you to discover the Python version installed on the system. It reflects a tuple that contains the five version numbers: major, minor, micro, release level, and serial.
Let’ say you have a script that needs at least Python version 3.5, and you want to tell whether the system meets requirements. You can do that by merely monitoring the major and minor versions:
import sys if not (sys.version_info.major == 3 and sys.version_info.minor >= 5): print("This script requires Python 3.5 or higher!") print("You are using Python {}.{}.".format(sys.version_info.major, sys.version_info.minor)) sys.exit(1)
If you run the script using Python version less than 3.5, it will produce the following output:
Output: Python 3.5 or higher is required to run this script. You are using Python 2.5.
To write Python code that runs below both Python 3 and 2, use the future module. It enables you to run Python 3.x-compatible code below Python 2.
Conclusion:
Using the python --version
, it is very easy to find what version of python is installed on your system.
How to Change user password in Linux
This write-up is being provided to guide you through the procedure of changing your own user password in the application named Linux.
One interesting thing is that you can even forcefully make users change the password used for a login in Linux and that will be discussed here.
The procedural steps that are being provided here in this guide can also be used in other applications like Ubuntu, Debian, and CentOS.
- How To Manage Root Account on Ubuntu 20.04
- How to Add and Delete Users on Ubuntu 18.04
- How To List Users and Groups on Linux
Putting in the required changes in your already existing Password
If you wish to change the login details specifically the user password for your user login you will have to provide the command mentioned below with no other tit- bits following,
$ passwd Changing password for linuxize. (Current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Once you put in the command $ password, a screen with the text mentioned above will pop up asking you the below-mentioned questions,
- What is your current password?
- What is the new password? Entering new password
- Mention the new password again
Following the procedure above you will be easily able to bring the required changes in your user password.
Always remember that while filling the answers to the above questions you will not find them being showcased on the screen and front and that is totally normal.
Finally, when you try logging in to your system you will find that your new password has been generated and you can login using the freshly brewed user password.
How to facilitate change in password of another user?
It is not a factor to be surprised with as it has been already acquainted with you that access is granted to only the user who is rooted to the account or a user who has a sudo connection to the account will be provided the required privilege for making changes in the refreshed password for the account. The process that will be mentioned below is being mentioned keeping in mind that you are someone with the privilege of being connected to the account being handled as a sudo user.
When you are designing a change in a password for a different account you will have to type in the password command and entailing it should be the username of the account needing password changes. If we consider a password change in the account named lineux then the command followed will be,
$ sudo password lineux
Next step will be you coaxed into filling in a new password and confirming it:
Output Enter new UNIX password: Retype new UNIX password:
Once you are at the end of the procedure you will be faced with a command exactly like below,
Output $ Password: password updated successfully
How can a user be pressured to change password at next login?
It has been set by default in many applications that the password set by a user for login details does not ever expire. Now a user can be pressurized to change the password when logging in for another time by undergoing a few commands while on the portal for Linux. The command that is provided for expiration of the old password is entailed by the name of the user:
$ sudo password --expire linuxize
Once you squeeze in the command mentioned above you will find the already existing password turning out to be immediately expired.
This procedure of immediate expiration of user’s earlier or old password will put pressure on the user to finally have the user password changed because of a message that will pop up when they log in again:
$ ssh linuxize@192.168.121.209
OUTPUT WARNING: Your password has expired. You must change your password now and login again! Changing password for linuxize. (Current) UNIX password: Enter new UNIX password: Retype new UNIX password: password: password updated successfully Connection to 192.168.121.209 closed.
You will see the connection being closed once the newly made and refreshed password is set by the user.
Conclusion
The write-up that was provided above was to help people with being able to bring out the required changes in their user password in a specific application named Linux.
The guidance that you got in the above right upper was how can you bring out the specific changes in the password and how can someone set an expiry limit to their password.