Beskriv tangentbordskombinationer i emacs

För att ta reda på vilket kommando en given tangentbordskombination hör till så kan man använda kommandot C-h k tangentbordskombination.

För det omvända fallet när man vill ha reda på tangentbordskombinationen för ett givet kommando så kan man använda C-h f kommandonamn.

Läs mer på Stackoverflow.

Hur man lägger till delar av ändringar i en fil till ett git-arkiv

Tänk dig att gjort flera sinsemellan orelaterade ändringar i en fil. Nu är det helt plötsligt dags att checka in ändringarna i git-arkivet. Hur gör man för att checka in filen i steg med enbart relaterade ändringar i varje commit?

Enkelt. Använd git add --patch filnamn. Git bryter då ner ändringen i delar och frågar dig vad du vill göra med varje del.

Läs mer på stackoverflow.

Rulla tillbaka rader i screen

Vid arbete i terminalen så använder man normalt kommandona shift-pgUp och shift-pgDown för bläddra upp och ner i rullningsbufferten. Dessa kommandon fungerar inte i screen eftersom denna implementerar en egen buffert.

För att bläddra upp och ner i screens buffert så kan man istället gå via copy-mode. Aktivera copy-mode genom kommandot ctrl-a [ eller ctrl-a esc. Därefter kan man bläddra upp och ner med hjälp av pgUp/pgDown, piltangenter eller screens inbyggda kommandon.

När man hittat det man sökte efter går man tillbaka till kommandoprompten genom att trycka <code>Return</code> två gånger. Flyttar man markören mellan return-tryckningarna så kopierar man dessutom innehållet däremellan. Detta kan sedan klistras in med kommandot ctrl-a ].

Referenser

  1. FAQ: How to scrollback in GNU SCREEN?
  2. Scroll inside Screen, or Pause Output

Infoga specialtecken i emacs

För att infoga specialtecken i emacs kan man använda sig av kommandot insert-char. Kommandot är normalt bundet till tangetkombinationen C-x 8.

Man kan använda kommandot på samma sätt som man använder AltGr-tangenten, dvs C-x 8 ^ i producerar î. En lista över alla tecken som kan skrivas på detta sätt får man fram genom kommandot C-x 8 C-h.

Tecken som inte kan skrivas på detta sätt kan istället infogas genom att anropa insert-char och sedan ange tecknets unicode-namn eller nummer. Kommandot för tecknet   är till exempel C-x 8 [Enter] DELTA EQUAL TO. Tecknet δ kan infogas genom kommandot C-x 8 [Enter] 03b4.

En tabell över unicode-tecken och dess nummer finns på http://unicode-table.com.

Om man vill ha information om ett tecken som redan finns i emacs-buffern så placerar man markören på tecknet och anropar kommandot describe-char.

Användbara kommandon i emacs

Emacs har många kommandon och tangentbordsgenvägar. Man lär sig snabbt de vanligaste såsom att öppna, spara filer och avsluta emacs. Det finns dock så många andra användbara kommandon att det är svårt att komma ihåg alla.

Några användbara kommandon

Byt plats på två tecken: C-t
Byt plats på två ord: M-t
Byt plats på två rader: C-x C-t

Avbryt kommando i minibuffer: C-g

Ta bort överflödiga blanktecken:  M-x delete-trailing-whitespace eller M-X whitespace-cleanup

Mer heltäckande listor finns bland annat på följande länkar:

Förhindra delat fönster i emacs

När man öppnar två filer samtidigt i emacs från kommandoraden öppnas de som standard i varsitt fönster. Kommandot
$ emacs foo bar
ger alltå följande resultat:
Delat fönster i emacs

Om man istället vill att endast ett fönster öppnas kan man lägga till följande kod i ~/.emacs:

(add-hook 'emacs-startup-hook
          (lambda () (delete-other-windows)) t)

Man kan sedan navigera mellan buffrarna på gängse vis.

Kommandot Ctrl-a a i screen

Ett mycket användbart kommando i gnu screen är Ctrl-a, a. Det kan användas för att gå tillbaka till början av en rad, men det är i själva verket mer generellt än så. Vad det gör är att det skickar kommandot Ctrl-a till fönstret inuti screen-sessionen. Det innebär att om du till exempel har nästade screen-sessioner, vilket kan hända om du öppnar en ssh-anslutning till en annan dator som startar screen automatiskt, så skickar man kommandon till den yttre sessionen med Ctrl-a och till den inre med Ctrl-a, a.

Som ett exempel så använder man Ctrl-a, d för att frånskilja den yttre sessionen. Den inre sessionen är dock fortfarande ansluten till denna. Det märker man om man återansluter till den. För att frånskilja den inre sessionen använder man istället kommandot Ctrl-a, a, d.

Observera också att kommandot Ctrl-a, a inte är samma kommando som Ctrl-a, Ctrl-a. Det senare används för att växla till det senast öppna fönstret.

Kombinera innehåll från olika celler i en cell i Libreoffice/OpenOffice calc

Det är väldigt  enkelt att bygga upp innehållet i en cell utifrån innehållet i andra celler. Detta görs genom att använda operatorn &.

Anta att man har följande tabell med förnamn och efternamn

För- och efternamn

För att kombinera dessa namn i en ny cell så anger man formeln

=A2 & " " & B2

enligt nedanstående bild

Skriv formel

och resultatet blir

table-3

Allt som skrivs inuti citationstecken i formeln kommer med ordagrant i resultatet. (I det här fallet ett mellanslag.)

Kopiera sedan formeln på vanligt vis till alla rader för att få slutresultatet:

table-4

Verifiera ssh host key

För att skydda mot man-in-the-middle-attacker använder sig ssh av ett system med värdnycklar (host keys). Det innebär att varje gång man ansluter till en ssh-server så identifierar sig servern med hjälp av en värdnyckel som jämförs med den nyckel som tidigare sparats på klienten (vanligtvis i filen ~/.ssh/known_hosts).

Om man aldrig tidigare anslutit till den aktuella servern, eller om man tagit bort värdnyckeln, så har man ingen nyckel att jämföra med. Man får då följande fråga:

The authenticity of host 'server.domain.tld (10.0.0.5)' can't be established.
ECDSA key fingerprint is a3:0a:fe:bd:70:7b:32:24:21:0b:c8:44:30:d0:bb:46.
Are you sure you want to continue connecting (yes/no)?

Innan man svarar ja på ovanstående fråga så bör man kontrollera så att fingeravtrycket stämmer för den aktuella servern. Detta görs på servern och i idealfallet av någon som har fysisk tillgång till den. Denna person kan sedan distribuera fingeravtrycken på lämpligt sätt. Om man inte kan få värddatorns fingeravtryck sänt till sig på något lämpligt sätt så kan man acceptera nyckeln temporärt för att kunna logga in på servern. Man genomför sedan nedanstående verifieringsprocess över ssh. Om fingeravtrycket stämmer så kan man vara hyfsat säker på ingen man-in-the-middle-attack förekommer.

Värdnycklarna finns på ett linux-system vanligtvis i katalogen /etc/ssh. För att ta fingeravtryck på nycklarna använder man sig av kommandot

$ssh-keygen -l -f SÖKVÄG_TILL_NYCKELN

För fingeravtrycket på ECDSA-nyckeln ovan blir kommandot

$ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub

För att generera fingeravtryck för värdens DSA- och RSA-nycklar ändrar man bara till motsvarande filnamn i kommandot ovan.