In a if test, you often have to compare the value of two variable
of the value a variable against a fixed value
.
.
.
.
.
if you have a list of ip to validate ,
you can use this little bash script ,
this will open your IP list ,
then test if all the 4 numbers that make a standard IP.are beeten 0 and 255
if the ip is valid then the script will return valid , else it will return : not valid
after execution , you will get the following result :
In a script you might be interested to keep 2 or more lines after a regex match ,
the line that interest you are not always going to be right after the match ,
the first one might be X lines after the match and the second one Y lines afters the match
in this example , i’m interested in keeping the lines with the price and the number in stock
i’m going to use awk to search for item desc , and display the 4th line after the match, and 6th line.
in this little example of usage of the command tr
we want to clean a file so the values contained in it can be used
Example File
In my example i wish to only keep the value and deleting the character < and >
the tr command used with the -d (delete) option will allow you to delete the list of characters contained between the quotes.
You will obtain the following result
If you try to connect using a key system on ssh instead of a classic password login, you might encounter this error message.
this message tells you that because other users can read the content of the key , shh refuse to use it to try authentification on you host ssh.
to fix that problem you should change the permissions on you file so that only you can read it
the 3 numbers in the chmod command are like this
the First is for you
the second is for your group .
and the last is for other users.
If you want to limit the access of others to you ssh key
you could do a
after this command , you can relaunch you ssh command , and you should connect without providing a password.
After you made some changes on your .bashrc file (like creating some new aliases) You will notice that the changes are not applied upon the saving of the .bashrc file
After having saved the file , first insure you are in your home folder, by typing cd .
and to reapply your .bashrc config file , launch a :
after this you can test you alias right away , it should work
When you scrap data in HTML , it’s common , depending on the quality of you regex to end up with a string with some useless character at the end (Or the Beginning),
If you string looks like that :
My useful data</a> <
You can use the command head to drop the X last character of your string ,
So in my Case , to Keep only the string My useful data and drop the </a> <
I’m going to pipe my string to
This will delete the last 6 chars of my string , giving the data that i need later in my script
but in some implementation of the head command this will not work ,
you can use an alternative with sed
This will delete the last 4 characters of your line , or alternatively
like we saw previously in that article , it’s possible to ping an entire /24 subnet with a little convenient bash one liner.
You will get a result like this.
The Problem is , the IP adresses are going to be displayed in the order they answer the ping , and some devices are going to answer faster than other , making a list that is not in order
the sort command in her default setting will sort using the first changing character , which is going to give me a list like that : 21, 254, 31, 32, 41, 42, 46, 8
If you have installed on you host a recent version of the sort command , you will be able to use sort -V
but on older and some embedded devices the -V option is not available ,
You can then launch the sort command with these options :
the result will be :
if you need to sort a /16 list of ip address :
you can just add -k 3,3 to the command :
Let’s say you are waiting for a host to come back online . to ssh into it
you launch a little
To see when the host return online ,
when the host finally ping , you can ctrl+c to kill the ping , and launch
this will have the effect of launching ssh with the previous argument of the last command , in this case 192.168.1.33
To know your ip address , you can use the command ifconfig
You will know the ip address for each of your network interfaces.
But if you are not directly connected to the internet and use a Gateway that’s nating the internet traffic for you , ifconfig is not going to be helpful to know the ip that connect you to the internet.
with this command the current external ip address associated with you default gateway will display