bash shell historie tricks

Har du en guide til en funktion eller et program? Har du tips og trick, som du gerne vil dele med andre? Post dem her.
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

bash shell historie tricks

Indlæg af lath »

Lad os sige at du ville opfriske listen af dine pakker og skrev:

Kode: Vælg alt

apt -y update

.. så lykkedes det ikke, fordi man skal være superbrugeren.

Det løser du selvfølgelig ved at bruge sudo:

Kode: Vælg alt

sudo !!

... hvor !! betyder forrige kommando.

Hvis det var 3 kommandoer siden, så skriver du i stedet:

Kode: Vælg alt

sudo !-3


Hvis du vil se listen af kommandoer (kommando historikken), så skriv

Kode: Vælg alt

history


Du kan lægge et alias ind i din ~/.bashrc

Kode: Vælg alt

alias hi='history'

... og så kan du nøjes med at skrive

Kode: Vælg alt

hi

... istedet for

Kode: Vælg alt

history


For at tage hvilken som helst ændring i ~/.bashrc i brug, så skal du huske at du skal enten:
  • logge ud og så logge ind, eller
  • source filen (~/.bashrc) for hver ny terminal du starter (indtil du har logget ud):
    Du sourcer filen sådan her:

    Kode: Vælg alt

    source ~/.bashrc

    Du kan ikke source filen i ~/.bashrc, da du så laver en uendelig løkke (gentagelser) af indlæs ~/.bashrc - men du kan naturligvis lave et alisas der svarer til at køre den lange

    Kode: Vælg alt

    source ~/.bashrc

    ... kommando
For eksempel :

Kode: Vælg alt

alias src='source ~/.bashrc'


Hvis du vil køre forrige kommando, så er det

Kode: Vælg alt

!!



Hvis du vil køre kommando nr. 1492, så er det

Kode: Vælg alt

!1492


... 0g hvis du vil køre den 3. sidste kommando, så er det (uden sudo):

Kode: Vælg alt

!-3


Vil du vide hvad de første 10 kommandoer i historikken er (i ~/.bash_history filen), så er det

Kode: Vælg alt

history | head -n 10


Hvis det i stedet er fra kommando 4 til 25, så er det

Kode: Vælg alt

history | head -n 25 | tail -n 21

De 21 kommer fra 25 - 4.

Som det fremgår så er ! og !! syntaksen bare erstatning (substitutioner), hvilket betyder at - for eksempel - !! - erstattes med indholdet af den tekst der er den forrige kommando.

Det betyder at de (! og !!) kan indsættes i andre kommandoer.

Bemærk at:

Kode: Vælg alt

kommando1;kommando2

... er 2 kommandoer på den samme linie

Det meste er sakset fra https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps

/Lars
Senest rettet af lath 23. okt 2018, 22:03, rettet i alt 4 gange.
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
Klaus Rasmussen
Admin
Indlæg: 5585
Tilmeldt: 26. apr 2010, 02:40
IRC nickname: ClaudiuS
Geografisk sted: Nyborg [fyn]

Re: bash shell historie tricks

Indlæg af Klaus Rasmussen »

Tak for deling, Lars, meget interessant. Det forbløffer mig til stadighed, hvor kraftfuldt et værktøj terminalen er. :)
Med Venlig Hilsen
Klaus

Kører Ubuntu 22.04 på ASUS All-Series, og Probook 4520s.
Gratis Ubuntumagasin: http://fullcirclemagazine.org/
https://mega.nz/folder/aJsmCYKa#dxMHKTi4Idmz6hiVpsI68Q