Jump to content


Photo

[Solved]Linux random binary digits generation in the console (it is need the help of a linux geek :P )

linux xxd urandom terminal-output

  • Please log in to reply
8 replies to this topic

#1 frostysh

frostysh

    THE TRUTH SEEKER

  • Members
  • 227 posts
  • Gender:Not Telling
  • Location:Afghanistan

Posted 06 March 2016 - 10:13 AM

When I trying to convert the stupid *.png files to the stupid *.bam files that is need for my mod to BG2:EE I have obtain a super-mega idea how to make a matrix like console screen saver for linux!
So I started to read a lot of a stupid boring man pages and I have found program that called openssl rand this thing should to generate a pseudo-random bucket of data. But this data is looks very suxxy in the console :( . So I have found another crazy flexible and a crazy inopportune and a stupid program called xxd that can show a some data in 0101010010111111110101 format.
>openssl rand -out cool_e 8
-out means a name of a file in which will be wrote the data, 8 - this is a bit-size of data or byte-size, but who really cares about. :D .
>xxd -bits cool_e
this will show something like this.
0000000: 00110011 01101111 11001011 11111001 01010111 11111100  3o..W.0000006: 01001011 11011001                                      K.
but I need something like this one
0011001101101111110010111111100101010111111111000100101111011001
e.g. without the number of line rightward and without the symbolic column leftward.
HOW to do it?

Next I will generate a text file by using the python - this is a reptile programming language that I do not like and do not want to learn (but anyway I do not to learn any of a programming languages :p ).
python > cool_scrs.txtType "help", "copyright", "credits" or "license" for more information.>>> print (' openssl rand -out cool_e 8; xxd -bits cool_e; sleep 2;'*200)>>>
the ; program-deliminator that first execute the command (program, etc) from a left side then waiting until it done his job and then execute command from a right side. sleep - this thing can turn console to the idle state for a next n +/-1 seconds :D.
The * asterisk means that python will draw the message on the screen/file multiple time (200 times in my case)
So after python done his job I will obtain the file
openssl rand -out cool_e 8; ...................... sleep 2;
[b]Thex CTRL-COPY, CTRL-PASTE to the console, delete the last [b]; and press ENTER :beholder:
I am genius ! :crazy:
But how to cut off the address and a symbol columns and make a plain 01010110111100 stuff??? Is anybody knows how to perform this action?

Thanx for the answers.

---edited--- now I edited this post and all inside the 'code' BBTag is automagically transformed to telegraph string... this is an 'amazing' :/ .

Edited by frostysh, 08 March 2016 - 08:38 AM.

"The monstrous evils of the twentieth century have shown us that the greediest money grubbers are gentle doves compared with money-hating wolves like Lenin, Stalin, and Hitler, who in less than three decades killed or maimed nearly a hundred million men, women, and children and brought untold suffering to a large portion of mankind."
- Eric Hoffer

"Nationalism is an infantile disease. It is the measles of mankind."
- Albert Einstein

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion."
- Steven Weinberg

#2 frostysh

frostysh

    THE TRUTH SEEKER

  • Members
  • 227 posts
  • Gender:Not Telling
  • Location:Afghanistan

Posted 06 March 2016 - 10:17 AM

A Hell! I miss typed the bold BB Code, but I can not edit it or preview because this action will destroy the [code=auto:0][code=auto:0] bb code formatting and transform it to the Mourze's alphabet string.... :(
"The monstrous evils of the twentieth century have shown us that the greediest money grubbers are gentle doves compared with money-hating wolves like Lenin, Stalin, and Hitler, who in less than three decades killed or maimed nearly a hundred million men, women, and children and brought untold suffering to a large portion of mankind."
- Eric Hoffer

"Nationalism is an infantile disease. It is the measles of mankind."
- Albert Einstein

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion."
- Steven Weinberg

#3 lynx

lynx
  • Modders
  • 3010 posts
  • Gender:Male
  • Location:Ljubljana, Slovenija

Posted 06 March 2016 - 10:38 AM

openssl rand -out /dev/stdout 128 | xxd -bits -g 0 | sed 's,\S* ,,; s, [^ ]*$,,; s,[^01]*,,g'

just change 128 to something bigger if you want more.

 

Or simply do this:

xxd -bits -g 0 /dev/urandom | awk '{print $2}'

the fact that awk buffers creates enough of a delay for it to look nicer.


Edited by lynx, 06 March 2016 - 10:54 AM.

GemRB - IE anywhere.
Mages needed! Looking for Planescape: Torment testers
Market android version IS NOT SUPPORTED ANYMORE: reported bugs will be ignored! Still looking for builders ...

#4 frostysh

frostysh

    THE TRUTH SEEKER

  • Members
  • 227 posts
  • Gender:Not Telling
  • Location:Afghanistan

Posted 07 March 2016 - 02:30 AM

 

openssl rand -out /dev/stdout 128 | xxd -bits -g 0 | sed 's,\S* ,,; s, [^ ]*$,,; s,[^01]*,,g'
just change 128 to something bigger if you want more.
 
Or simply do this:
xxd -bits -g 0 /dev/urandom | awk '{print $2}'
the fact that awk buffers creates enough of a delay for it to look nicer.
Yay! It it is a little bit better implementation that I proposed :D This is works. Thanx.

If you will have some free time explain to me the meaning of a different programs that used in , please. Such as:
>sed 's,\S* ,,;'
So sed is a symbol editor of output or a text stuff (I have read some info sed), the s option is 'replace by pattern + flags' , "\S*" - what is that? "\"[\b] - this a pattern symbol, but what the meaning of S*? and then ' ,,' this is for what? ";" this for give control to the next option after previous one is done.
s, [^ ]*$,,;
again s option and again ", " - but for what? "[^ ]" - this is mean all symbols but that are not -spaces- ( ^ - means reverse), and why did entered this "*$" - this something for -spaces- too? again two commas that I can't recognize...
s,[^01]*,,g
This is most interesting party :p , why the hell do you need to reverse the 01 combination? again commas??? and that g.???
This is what I have found in info sed stuff.
The syntax of the `s' (as in substitute) command is
`s/REGEXP/REPLACEMENT/FLAGS'.  The `/' characters may be uniformly
replaced by any other single character within any given `s' command.
The `/' character (or whatever other character is used in its stead)
can appear in the REGEXP or REPLACEMENT only if it is preceded by a `\'
character.
`^'
     Matches the null string at beginning of the pattern space, i.e.
     what appears after the circumflex must appear at the beginning of
     the pattern space.
`g'
     Apply the replacement to _all_ matches to the REGEXP, not just the
     first.
`$'
     This address matches the last line of the last file of input, or
     the last line of each file when the `-i' or `-s' options are
     specified.
`$'
     It is the same as `^', but refers to end of pattern space.  `$'
     also acts as a special character only at the end of the regular
     expression or subexpression (that is, before `\)' or `\|'), and
     its use at the end of a subexpression is not portable.
`[LIST]'
`[^LIST]'
     Matches any single character in LIST: for example, `[aeiou]'
     matches all vowels.  A list may include sequences like
     `CHAR1-CHAR2', which matches any character between (inclusive)
     CHAR1 and CHAR2.
`a*b'
     Matches zero or more `a's followed by a single `b'.  For example,
     `b' or `aaaaab'.
`\CHAR'
     Matches CHAR, where CHAR is one of `$', `*', `.', `[', `\', or `^'.
     Note that the only C-like backslash sequences that you can
     portably assume to be interpreted are `\n' and `\\'; in particular
     `\t' is not portable, and matches a `t' under most implementations
     of `sed', rather than a tab character.
This is a some kind of magic that I can not understand :yellowbeholder:

Whatever , both ways works very well but
xxd -bits -g 0 /dev/urandom | awk '{print $2}'
[b]"{print $2}" - what is that O_o . The magic... indeed.
is making more the cool continuous flood then mine first attempt with a help of python :p. But this way makes more CPU load resource (~70% in my case.. :( ), that is not good. And both ways creating to little-wide flood i.e.
101011001011011001100000100001001001001101010110
40 symbols length maximum , regardless of how wide is my console emulator .
But I need something that taking the less CPU resources and making a wider flood of 001101010011100, so I can make console emulator wider or 'fullscreen' it and then looking at this cool SMOOTH slide bits flow ^_^ .

Again thanx,
"The monstrous evils of the twentieth century have shown us that the greediest money grubbers are gentle doves compared with money-hating wolves like Lenin, Stalin, and Hitler, who in less than three decades killed or maimed nearly a hundred million men, women, and children and brought untold suffering to a large portion of mankind."
- Eric Hoffer

"Nationalism is an infantile disease. It is the measles of mankind."
- Albert Einstein

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion."
- Steven Weinberg

#5 lynx

lynx
  • Modders
  • 3010 posts
  • Gender:Male
  • Location:Ljubljana, Slovenija

Posted 07 March 2016 - 02:53 AM

sed was just used to delete everything but the middle column — in the second example awk was used, which looks much nicer.

 

For wider lines and an output limit, just add more options:

xxd -c 256 -l 200 -bits -g 0 /dev/urandom  | awk '{print $2}'

then you can put it in a loop and sleep as desired.


GemRB - IE anywhere.
Mages needed! Looking for Planescape: Torment testers
Market android version IS NOT SUPPORTED ANYMORE: reported bugs will be ignored! Still looking for builders ...

#6 frostysh

frostysh

    THE TRUTH SEEKER

  • Members
  • 227 posts
  • Gender:Not Telling
  • Location:Afghanistan

Posted 08 March 2016 - 04:26 AM

 

sed was just used to delete everything but the middle column — in the second example awk was used, which looks much nicer.
 
For wider lines and an output limit, just add more options:

xxd -c 256 -l 200 -bits -g 0 /dev/urandom  | awk '{print $2}'
then you can put it in a loop and sleep as desired.
Yay the magic! Looks super cool. Sorry if I am too boring, but I have some questions, again :p.
So
awk '{print $2}'
makes visible only second column? Nice.
this is an apart of the result of program. in 72x30 size of console emulator.
>xxd -c 256 -l 2000 -bits -g 0 /dev/urandom  | awk '{print $2}'
10011110110001001101110111001101101010011111001010001011101011010011111111101111010001110010100000011110011000011100010010010000000110110101011011110100100100110011110100010111100111010011110010101010101001101001010100011101001010010000101110100111010100110001110101100001110001000011010100001000001000111101110011101111101100110101100101000011110101011111100111110000010110011101110101110010
110100001110100011111101011100110111010101010010100111010101111011110010001000011011000101011111101001010101010101010110101101010101110101010011000100000101110000111011110100100001111100000000101000100100010110010011111011000100101111110001011000100101001011111001111110111011101110110010000011010001101101011001010001100010110001010111010111010100000111010011
As we can see, we have blank line. This empty lone will be absent in 32xN, 64xN, 128xN, ... size of console emulator. I think this is because
>xxxd -c 256
the number of columns option in xxd program, 256 is a max value.
So 1,2,3,4,...,256 column and xxd starting new line . :party:
Is the sed has this 256-limitation? I want to delete this empty lines regardless of a size of console emulator. :beholder:
"The monstrous evils of the twentieth century have shown us that the greediest money grubbers are gentle doves compared with money-hating wolves like Lenin, Stalin, and Hitler, who in less than three decades killed or maimed nearly a hundred million men, women, and children and brought untold suffering to a large portion of mankind."
- Eric Hoffer

"Nationalism is an infantile disease. It is the measles of mankind."
- Albert Einstein

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion."
- Steven Weinberg

#7 frostysh

frostysh

    THE TRUTH SEEKER

  • Members
  • 227 posts
  • Gender:Not Telling
  • Location:Afghanistan

Posted 08 March 2016 - 04:27 AM

I am little bit double post, because do not want to destroy the BBtag 'code' foromating.

So how to loop it? :)

Edited by frostysh, 08 March 2016 - 04:28 AM.

"The monstrous evils of the twentieth century have shown us that the greediest money grubbers are gentle doves compared with money-hating wolves like Lenin, Stalin, and Hitler, who in less than three decades killed or maimed nearly a hundred million men, women, and children and brought untold suffering to a large portion of mankind."
- Eric Hoffer

"Nationalism is an infantile disease. It is the measles of mankind."
- Albert Einstein

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion."
- Steven Weinberg

#8 lynx

lynx
  • Modders
  • 3010 posts
  • Gender:Male
  • Location:Ljubljana, Slovenija

Posted 08 March 2016 - 05:26 AM

to remove all newlines, just pipe it to tr -d '\n' .


GemRB - IE anywhere.
Mages needed! Looking for Planescape: Torment testers
Market android version IS NOT SUPPORTED ANYMORE: reported bugs will be ignored! Still looking for builders ...

#9 frostysh

frostysh

    THE TRUTH SEEKER

  • Members
  • 227 posts
  • Gender:Not Telling
  • Location:Afghanistan

Posted 08 March 2016 - 08:33 AM

 

to remove all newlines, just pipe it to tr -d '\n' .

Yep baby! :goodwork:
>xxd -cols 256 -len 2000 -bits -groupsize 0 /dev/urandom 
#We given order to xxd to read a /dev/urandom  and and to show binary digits and #to format the output by 256 columns per line don't separate in groups and total #length is 2000 bytes.
# 
| awk '{print $2}'
#Now we given the control of output of xxd to the awk via so-called pipeline #stuff '|' that showing only second column (3 column in total, 1 - number of #line, second actually 111001011, and #third a weird symbols.) 
#
| tr --delete "\n"
#And finally we given control to the tr that just deletitng newline character #'\n' that xxd placing after 256th column.
#P.S. Stupid xxd do not recognize even his own '-groupsize' so replace it to #'-g' :P
#
now /dev/urandom is one my favorite devices :p . Thanx again, I will try somewhere some-when somehow to loop it and sleep sleep it. :cooool:
"The monstrous evils of the twentieth century have shown us that the greediest money grubbers are gentle doves compared with money-hating wolves like Lenin, Stalin, and Hitler, who in less than three decades killed or maimed nearly a hundred million men, women, and children and brought untold suffering to a large portion of mankind."
- Eric Hoffer

"Nationalism is an infantile disease. It is the measles of mankind."
- Albert Einstein

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion."
- Steven Weinberg





Also tagged with one or more of these keywords: linux, xxd, urandom, terminal-output

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users