kun stod listet 1 gang.. er det muligt???sudo apt-get update
History i terminal
-
- Indlæg: 445
- Tilmeldt: 3. nov 2009, 10:50
- IRC nickname: blfriis
- Geografisk sted: Randers
History i terminal
Hejnår jeg taster history i terminalen kommer alle kommandoerne frem som de skal, og history | less virker også fint.Jeg kunne godt tænke mig en history som kun viser de indtastede kommandoer en gang. Altså f.eks
Ubuntu 15.04 Unity og ZorinOS 9 Ultimate http://zorin-os.dk/index.php
-
- Admin
- Indlæg: 3652
- Tilmeldt: 5. mar 2010, 19:58
- IRC nickname: nicky
- Geografisk sted: 192.168.20.42
Re: History i terminal
Jeg så en sjov en den anden dag "UNIX, where there is a shell, there is a way".
Har du ikke også linienumre foran hver kommando?
I så fald skal de væk inden der kan gøres mere, for ellers er hver linie i princippet unik.
Efter en hurtig søgning fandt jeg en generel sed-kommando, som sletter X antal tegn i starten af hver linie
Her skulle X være 7, og når jeg kører den, så står hver kommando ved liniestart
Det næste er så selvfølgelig spørgsmålet, og det giver at andet problem: Bruger man 'sort' og uniq' til opgaven, så bliver resultatet ikke vist i den rækkefølge, som kommandoerne oprindeligt blev kørt. Så efter endnu en søgning fandt jeg en awk-kommando
Den gør det samme som 'sort' og uniq', men bevarer rækkefølgen. Så den samlede kommando bliver
http://duckduckgo.com/?q=sed+remove+numbers :
http://codept.blogspot.dk/2007/12/sed-remove-first-4-letters-in-each-line.html
og
(jeg kan ikke lige huske hvad jeg søgte efter her)
http://unstableme.blogspot.dk/2008/03/remove-duplicates-without-sorting-file.html
Linien kan gemmes i en fil under /usr/local/bin med +x, så filen kan afvikles som et script. På den måde kan du bare skrive filens navn, så udføres kommandoen. Bare husk '#!/bin/bash' på første linie hvis du gør det.
Har du ikke også linienumre foran hver kommando?
I så fald skal de væk inden der kan gøres mere, for ellers er hver linie i princippet unik.
Efter en hurtig søgning fandt jeg en generel sed-kommando, som sletter X antal tegn i starten af hver linie
Kode: Vælg alt
sed 's/^.\{X\}//g'
Her skulle X være 7, og når jeg kører den, så står hver kommando ved liniestart
Kode: Vælg alt
history | sed 's/^.\{7\}//g'
Det næste er så selvfølgelig spørgsmålet, og det giver at andet problem: Bruger man 'sort' og uniq' til opgaven, så bliver resultatet ikke vist i den rækkefølge, som kommandoerne oprindeligt blev kørt. Så efter endnu en søgning fandt jeg en awk-kommando
Kode: Vælg alt
awk ' !x[$0]++'
Den gør det samme som 'sort' og uniq', men bevarer rækkefølgen. Så den samlede kommando bliver
Kode: Vælg alt
history | sed 's/^.\{7\}//g' | awk ' !x[$0]++'
http://duckduckgo.com/?q=sed+remove+numbers :
http://codept.blogspot.dk/2007/12/sed-remove-first-4-letters-in-each-line.html
og
(jeg kan ikke lige huske hvad jeg søgte efter her)
http://unstableme.blogspot.dk/2008/03/remove-duplicates-without-sorting-file.html
Linien kan gemmes i en fil under /usr/local/bin med +x, så filen kan afvikles som et script. På den måde kan du bare skrive filens navn, så udføres kommandoen. Bare husk '#!/bin/bash' på første linie hvis du gør det.
-
- Indlæg: 445
- Tilmeldt: 3. nov 2009, 10:50
- IRC nickname: blfriis
- Geografisk sted: Randers
Re: History i terminal
Hej igen jo jeg har nr foran.. men jeg tror det bliver mere omstændigt, end jeg lige kan finde ud af ... Havde bare håbet på at der var en kommando jeg ikke kendte.
Ubuntu 15.04 Unity og ZorinOS 9 Ultimate http://zorin-os.dk/index.php
-
- Admin
- Indlæg: 3652
- Tilmeldt: 5. mar 2010, 19:58
- IRC nickname: nicky
- Geografisk sted: 192.168.20.42
Re: History i terminal
Nej, jeg tror desværre at den eneste løsning, er at lege lidt med den liste som 'history' kommer med
På den anden side, så er løsningen ret universel for at behandle nogle data i Linux, så tekstdokumenter og den slags kan også behandles på denne her måde.
Men der burde ikke være mere med den kommando, end at kopiere den ind i en terminal, og så trykke enter. Det sidste jeg skrev med at gemme kommandoen som et script, var bare en bemærkning. Jeg har selv et tekstdokument på over 50 linier med eksempler på kode og kommandoer, som kan være nyttige, men som er svære til umulige at huske. Og det dækker netop sådanne nogle kommandoer her.
På den anden side, så er løsningen ret universel for at behandle nogle data i Linux, så tekstdokumenter og den slags kan også behandles på denne her måde.
Men der burde ikke være mere med den kommando, end at kopiere den ind i en terminal, og så trykke enter. Det sidste jeg skrev med at gemme kommandoen som et script, var bare en bemærkning. Jeg har selv et tekstdokument på over 50 linier med eksempler på kode og kommandoer, som kan være nyttige, men som er svære til umulige at huske. Og det dækker netop sådanne nogle kommandoer her.
-
- Indlæg: 445
- Tilmeldt: 3. nov 2009, 10:50
- IRC nickname: blfriis
- Geografisk sted: Randers
Re: History i terminal
Hej igen. Nå nu faldt 10øren . Ser ud til at klare opgaven, så mange tak for hjælpen, så er det noget nemmere at overskue..
Kode: Vælg alt
history | sed 's/^.\{7\}//g' | awk ' !x[$0]++'
Ubuntu 15.04 Unity og ZorinOS 9 Ultimate http://zorin-os.dk/index.php
-
- Indlæg: 5095
- Tilmeldt: 27. apr 2008, 02:16
- IRC nickname: lars_t_h
- Geografisk sted: Fyn
uhistory
Blfriis skrev:Hej igen. Nå nu faldt 10øren .Ser ud til at klare opgaven, så mange tak for hjælpen, så er det noget nemmere at overskue..Kode: Vælg alt
history | sed 's/^.\{7\}//g' | awk ' !x[$0]++'
Jeg kunne (vil!) for sjov skyld godt lige lave et lille program i D (kig på http://dlang.org/ ) der hedder uhistory der kan:
- levere en liste af unikke tekststykker i listen fra $HOME/.bash_history (kommandoer)
- men stadig beholder tallet til venstre (nyttig viden i bash til brug i andre kommandoer). Det er super simpelt for jeg har lige opdaget tallet er linienummeret i .bash_history (tæller fra 1 og opefter fra den første linie hvori der er tekst)
Jeg leverer programmet til download i kildekode, og som binært program i 32-bit og 64-bit til Linux (hvis man vil kan man også oversætte til MAC OS X fra kildekoden)
/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
-
- Indlæg: 445
- Tilmeldt: 3. nov 2009, 10:50
- IRC nickname: blfriis
- Geografisk sted: Randers
Re: History i terminal
Det lyder spændende, dog kan jeg ikke få linket til at virke
Ubuntu 15.04 Unity og ZorinOS 9 Ultimate http://zorin-os.dk/index.php
-
- Indlæg: 5095
- Tilmeldt: 27. apr 2008, 02:16
- IRC nickname: lars_t_h
- Geografisk sted: Fyn
Re: History i terminal
Blfriis skrev:Det lyder spændende, dog kan jeg ikke få linket til at virke
Det virker nu fint, du har nok været forbi på det forkerte tidspunkt på døgnet hvor websitet blev opdateret.
Generelt er det en god ide at være lidt obs på tidsforskelle - det er altid nat et eller andet sted på jorden, og det er om natten at servere normalt blev opdateret.
/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
-
- Indlæg: 445
- Tilmeldt: 3. nov 2009, 10:50
- IRC nickname: blfriis
- Geografisk sted: Randers
Re: History i terminal
Ja nu ser det ud til at virke, så du har nok ret i at det var et galt tidspunkt
Ubuntu 15.04 Unity og ZorinOS 9 Ultimate http://zorin-os.dk/index.php