Pages

Showing posts with label bash shell. Show all posts
Showing posts with label bash shell. Show all posts

Sunday, October 18, 2020

Fedora 32 : About positive and negative lookahead with Bash commands.

Today I will talk about something more complex in Linux commands called: positive and negative lookahead.
This solution can be found in several programming languages including Bash
The lookahead process is part of regular expressions.
The lookahead process looks ahead in the string and sees if it matches the given pattern, but then disregard it and move on.
It is very useful when we want to go through the strings.
The lookahead process can be both positive and negative depending on the purpose.
Negative lookahead is indispensable if you want to match something not followed by something else and looks like this:
q(?!s).
The string is the question q is analyzed and if it does not match and is not followed by s returns the result.
The positive lookahead it works the same way only now it is parsed if it corresponds to s.
The positive lookahead looks like this:
q(?=s)
Let's look at a simple example of detecting the PAE option for the processor.
We can use this command but we will find a lot of information ...
[root@desk mythcat]# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Celeron(R) CPU G1620 @ 2.70GHz
stepping	: 9
...
In some cases, the resulting information can be taken using pipe and grep but they will be increasingly fragmented.
I will use the same command cpuinfo and we will look for the pae information in the flags.
All CPU flags can be found here.
Let's prove with internal lookahead to find the pae flag.
[root@desk mythcat]# cat /proc/cpuinfo | grep -oP '(?='pae')...' 
pae
pae
This result gives me additional information, namely that there are two cores.
Do you have a question?

Sunday, November 10, 2019

Fedora 31 : Use bash script to see all the permissions.

This tutorial will show you how to generate all the permissions using one file named file_test.
[mythcat@desk ~]$ mkdir my_bash_scripts
[mythcat@desk ~]$ cd my_bash_scripts/
[mythcat@desk my_bash_scripts]$ vim all_permissions.sh
[mythcat@desk my_bash_scripts]$ vim all_permissions.sh
[mythcat@desk my_bash_scripts]$ chmod +x all_permissions.sh
[mythcat@desk my_bash_scripts]$ ls
all_permissions.sh
Let's see the bash script file named all_permissions.sh:
#!/bin/sh
#loops through a chmod sequence

count_perm(){
        foo=1
        touch file_test
        while [ "$foo" -ne 7778 ];do
                echo $foo >> out
                chmod $foo file_test
                ls -gG >> out
                foo=$(($foo+1))
        done
}
count_perm
egrep -v '(all_permissions.sh)|(total)|(out)' out > results
echo "use command cat results to see permissions for file_test."

exit 0
You can run the script:
[mythcat@desk my_bash_scripts]$ ./all_permissions.sh 
...
Try 'chmod --help' for more information.
chmod: invalid mode: ‘7768’
Try 'chmod --help' for more information.
chmod: invalid mode: ‘7769’
Try 'chmod --help' for more information.
use command cat results to see permissions for file_test.
[mythcat@desk my_bash_scripts]$ ls
all_permissions.sh  file_test  out  results
The out file show all permissions for files:
[mythcat@desk my_bash_scripts]$ cat out
...
7774
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsr-T. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1153701 Nov 10 18:23 r
7775
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsr-t. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1153853 Nov 10 18:23 r
7776
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsrwT. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1154005 Nov 10 18:23 r
7777
total 2052
-rwxrwxr-x. 1     331 Nov 10 18:22 all_permissions.sh
-rwsrwsrwt. 1       0 Nov 10 18:23 file_test
-rw-rw-r--. 1 1154157 Nov 10 18:23 r
The results file show the permissions:
[mythcat@desk my_bash_scripts]$ cat results 
...
7766
-rwsrwSrwT. 1       0 Nov 10 18:30 file_test
7767
-rwsrwSrwt. 1       0 Nov 10 18:30 file_test
7768
-rwsrwSrwt. 1       0 Nov 10 18:30 file_test
7769
-rwsrwSrwt. 1       0 Nov 10 18:30 file_test
7770
-rwsrws--T. 1       0 Nov 10 18:30 file_test
7771
-rwsrws--t. 1       0 Nov 10 18:30 file_test
7772
-rwsrws-wT. 1       0 Nov 10 18:30 file_test
7773
-rwsrws-wt. 1       0 Nov 10 18:30 file_test
7774
-rwsrwsr-T. 1       0 Nov 10 18:30 file_test
7775
-rwsrwsr-t. 1       0 Nov 10 18:30 file_test
7776
-rwsrwsrwT. 1       0 Nov 10 18:30 file_test
7777
-rwsrwsrwt. 1       0 Nov 10 18:30 file_test

Monday, January 16, 2017

Windows Subsystem for Linux (beta)

This is the first release of Bash on Windows and it is branded "beta" deliberately - it's not yet complete! You should expect many things to work and for some things to fail! We greatly appreciate you using Bash on Windows and helping us identify the issues we need to fix in order to deliver a great experience.
Try this tutorial.
The Fedora don't have a docker userspace, but Suse come with this feature.

Wednesday, September 14, 2016

Record and share your terminal - asciinema.

Most of Fedora linux users use the fedora pastebin known also like fpaste.
Another viable alternative is even more comprehensive and dynamic is thiscommand: asciinema.
You can install this package with dnf install asciinema.
This command come with many options and the result can be see online or download it like json type file.
Let's see some screenshots:


The result it's also upload to internet and you will got one link.

Thursday, June 11, 2015

Fix Bash shell vulnerability under Linux OS .

If some Bash code outside of the curly brace then it will then be executed by the linux system.
env x='() { :;}; echo vulnerable' bash -c " bash test "
If your system is vulnerable, it will then output:
vulnerable
bash test 
How Do You Fix It ? Just open up a terminal, and type:
sudo apt-get update
sudo apt-get upgrade
or under Fedora with :
sudo yum update
Also you can see more about linux and linux tutorials here.

Thursday, July 25, 2013

Using cat command to see all source code from one folder.

You can see all content of your files using cat command.

I created one function named catt in my .bashrc file.

This is the function you can change to show any type of files not just javascript.

That allow you to working in same folder with many files and see the changes.

If you have another idea about how to see changes in all source of code then just send me one mail or comment.

function catt(){
    for i in *.js;
        do echo "__""$i""__";
        echo "--------------------------";
        cat "$i" -n -b;
        echo "--------------------------";
        done ;
}

And this is result output for all javascript from my node.js folder.

--------------------------
__serv.js__
--------------------------
     1 var sys = require("sys"),
     2 my_http = require("http");
     3 my_http.createServer(function(request,response){
     4  sys.puts("I got kicked");
     5  response.writeHeader(200, {"Content-Type": "text/plain"});
     6  response.write("Hello World");
     7  response.end();
     8 }).listen(8080);
     9 sys.puts("Server Running on 8080");
--------------------------
__test.js__
--------------------------
     1 var sys = require("sys");
     2 sys.puts("Hello World");
--------------------------

One problem can be the number of files parse by this function.

In this case you will not able to see all content of files. Will be to much for you.

But for settings files will work great.

Thursday, August 30, 2012

Using SL4A bash shell script to connect Linux with Android tablet .

Using Linux with Android OS is very simple.
I install the next two android application: sl4a_r6.apk and PythonForAndroid-r7b1.apk.
Use the PythonForAndroid-r7b1.apk just if you want to write some python scripts.
We can download it from here.
The first: sl4a_r6 it's used to write and run scripts like bash shell, HTML, Java, Python.
With this, the SL4A provides and make APIs available via JSON RPC calls.
The PythonForAndroid-r7b1 allow you to install python modules...
We can read more on this website.
Let's start with one simple bash shell script.
We will make a shell script to test the connection between Linux and Android tablet.
The connection will be through a wireless router that has opened the port through which the communication.
Tablet has Android 4.0.
We use the Linux command NC, see: nc command.
This is the script on the tablet and it will run first.
nc -l -p 7000
See the next image:

Button 1 - run the script
Button 2 - edit the script
Button 3 - save the script
Button 4 - remove the script
Use the next command with your IP on the Linux terminal.
nc xxx.xxx.xxx.xxx 7000
If you type something in your terminal you will see on a tablet.
The input from my linux terminal can be seen in the next image:

Ant this is the output on my tablet.

We can test multiple features of command nc.
I'm just curious if you have some new ideas on this subject.