Puncte:1

Crearea de scripturi bash individuale din Istoria Linux

drapel cn

Vreau să pot scoate istoricul meu Linux bash într-un fișier. Apoi, linie cu linie, creați un nou script shell cu conținutul fiecărei linii. Am încercat asta până acum din linia de comandă..

de exemplu

Ieșirea fișierului istoric

73 nmap -T4 -A -v 127.0.0.1
74 nmap -T4 -A -v 192.168.0.1/24

Prima mea problemă au fost numerele de rând... Pentru a le elimina am aplicat această comandă.

istorie | cut -c 8- > one.txt

Ceea ce mi-a dat o ieșire ca aceasta..

nmap -T4 -A -v 127.0.0.1
nmap -T4 -A -v 192.168.0.1/24

Există o problemă aici, deoarece textul conține spații

cat one.txt | tr -cd '[:alnum:]\n\r~!@#$%^&*()-_=+{}\|;:<>,./?"`' | sed '/^$/ d' > bar.txt

Am folosit comanda de mai sus pentru a elimina caracterele ilegale pe care Linux nu-i place să fie incluse într-un nume de fișier.

Aici m-am lovit de perete...

E ciudat și dezordonat...

Trebuie să existe un mod mai simplu, care să fie mai frumos...

Bruni avatar
drapel cn
Chiar dacă răspunsul lui @vanadium nu răspunde la întrebare, utilizând fișierul `~/.bash_history` și nu comanda history, veți ocoli toate problemele pe care le-ați descris.
james  avatar
drapel cn
Rezolvă una dintre probleme.De acord, dar așa cum ați spus, nu este răspunsul pe care îl caut. Mulțumesc ..
Puncte:1
drapel cn

Nu vă deranjați să încercați să aflați cum să vă scrieți istoricul într-un fișier. Sistemul dumneavoastră Ubuntu face deja în mod implicit fișierul ~/.bash_history. Deci este nevoie de un simplu

cat ~/.bash_history

pentru a prelua conținutul fișierului.

james  avatar
drapel cn
Sunt conștient de asta și poate nu m-am explicat bine.. Ceea ce vreau să fac este să transform jurnalul istoric - linie cu linie în scripturi shell individuale... Pentru fiecare comandă din jurnalul istoric..
vanadium avatar
drapel cn
Nu, într-adevăr nu ai făcut-o. Există o mulțime de explicații, mai întâi doar despre a scăpa de număr. Deci, în cele din urmă, doriți doar să împărțiți un fișier text în linii individuale.
Puncte:0
drapel cn

Pentru a împărți fișierul istoric în fișiere pe linie

split --verbose -l1 ~/.bash_history

(faceți acest lucru pe o copie într-un director separat)

Pentru a adăuga shebang:

pentru fișier în *; do 
    sed -i '1i #!/bin/sh' $fișier
Terminat
james  avatar
drapel cn
Este genial, multumesc mult..

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.