Zum hauptinhalt springen

Leander's Blog

Uni Hacks - Work smarter not harder 🧠

Uni Hacks - Work smarter not harder 🧠

Studieren beginnt mit Organisation.

Wenn man ein wenig Ahnung von Computern hat, dann kann man sich wÀhrend dem Studium sehr viel Zeit und Nerven sparen.

Die Tools die ich hier vorstelle, sollten alle auf UNIX-Systemen funktionieren (also sowohl MacOS als auch Linux), mit Windows habe ich nicht viel zu tun, aber es sollte auch dort funktionieren. Falls nicht: einfach nach «Befehl» on Windows im Internet suchen.

zum Beispiel: ls -tr on Windows

Inhalt: #

Grundlegendes #

Bevor du PDFs manipulieren willst, solltest du dich ein wenig mit der Abreitsweise und Logik deines Computers vertraut machen.

Mit einem Computer via Kommandozeile interagieren 👀 #

DISCLAIMER - Diese Befehle sind UNIX-eigen

Terminal finden #

Zuerst mĂŒssen wir die Kommandozeile finden 🔎 Am besten suchst du dafĂŒr mit Spotlight ⌘ + Leertaste

Dann suchst du nach “Terminal” und hittest ENTER ↔

Bewegte Bildaufnahme einer Spotlight-Suche. Suchwort: Terminal

Geschafft!

Befehle: cd - ls - man (basic) #

cd: change directory #

Du kannst dir einen Computer als eine Verschachtelung von Ordnern vorstellen, ca. so:

home
├── Desktop
│   └── uni
│       └── ausarbeitung.pdf
├── Documents
│   └── aufgabe1.pdf
└── Downloads
    └── exmatrikulation_muster.pdf
Normalerweise kannst du einfach in einen Ordner reingehen, in dem du darauf doppelklickst. Das Terminal-Äquvivalent dazu is **cd**

Du befindest dich standardmĂ€ĂŸig in /Users/<deinUser>/ wenn du das Terminal startest.

Das kannst du auch ĂŒberprĂŒfen in dem du einfach pwd (path 2 working directory) in dein Terminal mal eingibst.

Jetzt sind wir also in der Ebene des Users - nice. Aber eigentlich wollen wir oft in den Desktop bzw. Documents Ordner, weil dort die interessanten Files sind.

Dorthin komm man ganz einfach mit:

cd Desktop
Es gibt im Terminal eine Auto-VervollstĂ€ndigung: zB sollte bei **cd Deskto ⇄ Tab-Taste** zu **cd Desktop** vervollstĂ€ndigen.
Bewegte Bildaufnahme eines Terminals. Der Befehl 'cd Desk' wir eingegben, daneben ist ein kleines Fenster, dass zeigt welche Tasten gedrĂŒckt werden. Das Fenster zeigt Tab an und der Befehl wir auf 'cd Desktop' vervollstĂ€ndigt

Wenn du wieder in die Ebene ĂŒber dem Desktop (also in meinem Fall wieder zu home) möchtest, schreib einfach:

cd ..

Wenn du gleich auf einmal in eine tiefer-gelegene Directory (richtiger Ausdruck fĂŒr Ordner) gehen möchtest:

cd Desktop/uni

Der / ist hier essentiell!

ACHTUNG: ZurĂŒck zur ursprĂŒnglichen Ebene nicht mit “..”

Wenn du beispielsweise mit einem cd-Befehl tief hineingehst, z.B bei mir mit

cd Desktop/uni

und dann wieder auf deine ursprĂŒngliche Position zurĂŒck möchest (bei mir home) wirst du mit

cd ..
nur auf die *Desktop*, nicht auf die *home*-Ebene zurĂŒckkommen. Um wieder zu deiner Startposition zurĂŒck zu kommen, schreibe:
cd -
#### ls: list

Jetzt wissen wir, wie man mit cd sich durch seine ganzen Computer bewegen kann. Jetzt wissen wir aber nicht unbedingt, was in diesen Directories drinnen ist.

Um das zu sehen, verwendet man den Befehl ls (ls steht fĂŒr list)

Hier nochmal eine Beispiel Ordnerstruktur:

home
└── Desktop
    └── uni
        └── aufgabe1
            ├── ausarbeitung.pdf
            ├── ausarbeitung1.pdf
            ├── ausarbeitung1_final.pdf
            └── ausarbeitung1_final_v2.pdf

Jetzt gehen wir mal in aufgabe1:

cd Desktop/uni/aufgabe1

Um uns jetzt den Inhalt anzeigen zu lassen:

ls
#Ausgabe im Terminal (nicht unbedingt untereinander):
ausarbeitung.pdf
ausarbeitung1.pdf
ausarbeitung1_final.pdf
ausarbeitung1_final_v2.pdf

Man kann mithilfe von flags đŸłïž sehr viel an der Ausgabe Ă€ndern, z.B die Art der Sortierung der Ausgabe. Welche flags es so gibt, erfĂ€hrst du mit dem nĂ€chsten Befehl.

man: Pre-Google-Ära đŸ˜Č #

Als cd, ls und viele weitere Befehle entwickelt und geschrieben wurde, gab es noch keine Tutorials wie dieses hier, wie man sie verwenden kann bzw. was sie ĂŒberhaupt machen. Die Developer haben deswegen sogenannte man-pages verfasst (manuals)

man ls

Das Ergebnis schaut dann ungefÀhr so aus:

Screenshot von der Man-Page von dem Befehl 'man'

Um diese man-page

  • zu verlassen drĂŒcke q
  • nach oben zu navigieren k
  • nach unten mit j

Du kannst auch lustig sein und das manual von man selbst aufrufen - es geht!

man cd geht allerdings nicht, das hat einen technischen Grund

help cd ist hierfĂŒr zu wĂ€hlen

Befehle: mkdir - mv - rm (intermediate) #

Jetzt kommen wir zu mĂ€chtigeren, aber auch “gefĂ€hrlicheren” Befehlen.

mkdir: make directory 📁 #

mkdir steht fĂŒr make directory - es erstellt uns also einen Ordner!

mkdir meinOrdner

mv: move! #

mv steht fĂŒr move - damit können files oder auch ganze ordner verschoben werden.

Verschieben heißt auch umbennen - schauen wir uns das mal. Struktur:

home
└── Desktop
    └── uni
        └── aufgabe1
            ├── ausarbeitung.pdf
            ├── ausarbeitung1.pdf
            ├── ausarbeitung1_final.pdf
            └── ausarbeitung1_final_v2.pdf

pwd
/Users/<DeinUser>/

Jetzt wollen wir die letzte Version der Ausarbeitung aus dem Uni-Ordner raus auf den Desktop ziehen und gleichzeitig umbennen.

mv Desktop/uni/aufgabe1/ausarbeitung_final_v2.pdf Desktop/sendToProf.pdf

Das Ergebnis in unserer File-Structure

home
└── Desktop
    └── sendToProf.pdf
    └── uni
        └── aufgabe1
            ├── ausarbeitung.pdf
            ├── ausarbeitung1.pdf
            └── ausarbeitung1_final.pdf            

ACHTUNG: wenn du zB test.pdf schon in deinem Ziel Ordner hast, und du mv-st ein anderes test.pdf dorthin, dann wird das ursprĂŒngliche File ĂŒberschrieben!

rm: remove #

rm steht fĂŒr remove - damit löscht man files

*rm* sorgt dafĂŒr, dass die Dateien **wirklich gelöscht** sind - du wirst sie nicht im Papierkorb finden - sie sind weg!

um ganze Ordner zu löschen, musst du die Flag -r setzen.

rm file.pdf #löscht file
rm -r directory #löscht Ordner samt Inhalt

Befehle: curl and brew #

curl: lets go to the internet 🌐 #

curl kann alles, was dein Browser auch kann: du kannst auf Webseiten zugreifen, Dinge downloaden etc.

brew: der einzige (nicht beste!) package manager fĂŒr mac đŸș #

Die Standard-Befehle auf MacOS sind zwar ganz nett, aber oft möchte man mehr FunktionalitĂ€t. Es gibt viele externe Programme, die genau das tun, was du möchtest bzw. brauchst. Um diese runterzuladen brauchst du einen sogenannten package-manager (Eine Art AppStore fĂŒr IT-Menschen).

brew ist einer der sehr bekannten, leider nicht allzu schnellen. Mit brew kannst du alle weiter unten angegebenen programme installieren.

Wie du brew installierst, kannst du am besten auf ihrer Homepage nachlesen.

Die Kommandozeile effektiv verwenden #

Nachdem du die oberen Befehle verinnerlicht hast, nun zu interessanten, mÀchtigeren Befehlen

find #

Macht was es soll, es findet Dinge.

Dieser Befehl listet alle PDFs in dem Ordner Desktop auf (nicht aber in darunter liegenden Ordnern):

find Desktop -iname '*.pdf' -maxdepth 1

Jetzt möchten wir alle PDFs die sich maximal 3 Ebenen unter Desktop befinden anzeigen:

find Desktop -iname '*.pdf' -maxdepth 3

Der Stern ist ein Placeholder, d.h es kann alles vor .pdf stehen. Wenn zB direkt davor eine Zahl stehen sollte:

[0-9].pdf

Diese Placeholder sind Ă€ußerst mĂ€chtig. Wenn du mehr darĂŒber lesen möchtest, suche im Internet nach regex.

oder ließ offline nach:

man re_format

grep«» #

grep ist so etwas wie find, nur fĂŒr den Inhalt von Plain Text Dateien.

Ich wollte hier nur darauf hinweisen, dass grep existiert.

grep ist nicht Inhalt dieses Tutorials.

mv mit mehr FunktionalitÀt #

mv - einer der hÀufigsten Befehle, die ich verwende. Vor allem wenn ich nur eine bestimmte Art von Datei (und davon sehr viele) in einen Ordner verfrachten möchte.

Wanna move all the JPEGs to a specific directory (myFolder)? Easy:

mv *.jpeg myFolder

Die selbe Syntax funktioniert auch mit rm, bitte beachte dabei nur den obigen Hinweis.

PDFs #

Wer lernt, hat viel mit Dokumenten zu tun. PDFs sind dafĂŒr das Standard-Format.

Oft möchte man aus PDFs einzelne Seiten extrahieren, mehrere PDFs zu einem zusammenfĂŒgen etc.

HierfĂŒr gibt es einige Tools:

Tools #

  • pdfjam (im texlive paket enthalten)
  • qpdf
  • ghostscript

Diese kann man alle mittels brew installieren:

brew install qpdf
brew install ghostscript
brew install texlive 

Bilder zu PDF #

Jeder kennt es: Altfragen, Fotos von Slides oder auch einfach Fotos von handgeschriebenen Mitschriften werden in Uni-WhatsApp-Gruppen herumgeschickt als gĂ€be es kein morgen. SpĂ€testens in der PrĂŒfungsphase kann man da schon mal den Überblick verlieren.

Die Lösung:

Die ganzen Bilder zu einem PDF zusammenfĂŒgen! 📈📈📈

StandardmĂ€ĂŸig sollte convert schon auf deiner Maschine installiert sein, ĂŒberprĂŒfen kannst du das, indem du convert in dein terminal eingibst.

Wenn command not found zurĂŒckkommt, musst du vorher noch das Paket dafĂŒr installieren:

brew install imagemagick

FĂŒr Windows gibt es einen Binary install hier

How it’s done #

Angenommen, wir haben folgende Ordnerstruktur:

altfragen
├── 01.jpg
├── 02.jpg
├── 03.jpg
├── 04.jpg
├── 05.jpg
├── 06.jpg
├── 07.jpg
├── 08.jpg
├── 09.jpg
├── 10.jpg
├── 11.jpg
├── 12.jpg
├── 13.jpg
└── otherFile.pdf

Wir wollen also alle jpg zu einem altfragen.pdf zusammenfĂŒgen:

convert *.jpg altfragen.pdf

Good-2-Know: Die original jpg-Files bleiben erhalten!

convert ist ein ziemlich mÀchtiger Befehl. Man kann damit auch Dateiformate konvertieren.

Mehrere PDFs zu einem PDF zusammenfĂŒgen #

HierfĂŒr benötigen wir ghostscript aka gs. Weiter oben findest du den Installationsbefehl.

Jetzt haben wir beispielsweise zwei PDFs in unserem Ordner, die wir miteinander mergen wollen:

altfragen
├── stupidPhoto.jpg
├── altfragen.pdf
└── otherFile.pdf

Dabei soll otherFile vor den altfragen stehen und das ganze in out.pdf gespeichert werden. Der Befehl:

How it’s done #

gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf otherFile.pdf altfragen.pdf

Du kannst selbstverstĂ€ndlich auch mit *.pdf hier arbeiten, allerdings ist die Sortierung standardmĂ€ĂŸig alphabetisch.

Aus einem PDF einzelne Seiten exportieren #

Kann man mit der Preview (dt. Vorschau) machen, aber wir verwenden jetzt pdfjam.

Installationsanleitung siehe oben.

How it’s done #

Angenommen wir haben ein PDF namens langesPDF.pdf mit 10 Seiten und wollen nur Seite 3, 5 und 7,8,9,10 in clean.pdf abspeichern:

pdfjam langespdf.pdf 3,5,7-10 -o clean.pdf

Mehrere Seiten auf einer Seite drucken #

Ein Life-Saver wenn man eine Open-Book PrĂŒfung hat und Papier, Druckerfarbe, Zeit und Geld sparen möchte:

Mehrere Vorlesungs-Slides auf eine Seite zusammenfassen, zB immer vier Folien auf eine Seite

Auf der linken Seite sind 4 vertikal angeordnete, einzelen Folien. Rechts davon ist ein Pfeil, der zeigt, dass diese 4 einzelnen Slides nun auf einer einzigen Seite sind

Auch dafĂŒr kann man wieder pdfjam verwenden.

Angenommen du möchtest von slides.pdf die Folien sowie in der oberen Abbildung in savePaper.pdf zusammenfassen:

pdfjam --nup 2x2 slides.pdf --landscape --a4paper --outfile savePaper.pdf 

Fazit und Ausblicke #

Ich hoffe, dir hat irgendwas in diesem Artikel geholfen. Ein Teil zwei ist derzeit geplant, nÀmlich:

Bilder und PDFs durchsuchbar machen (ft. Tesseract)