Compare commits
17 Commits
415985d08c
...
59fb0ada24
Author | SHA1 | Date | |
---|---|---|---|
59fb0ada24 | |||
b68fa25cea | |||
5bd45973b4 | |||
66cdca5c85 | |||
aa32bfc249 | |||
fc88ab6200 | |||
eaec01076b | |||
0abc2818e8 | |||
4250f619c3 | |||
4d53f7c7d6 | |||
38feabb79f | |||
b4683a8681 | |||
d2934bf8a3 | |||
5afc414a52 | |||
d8b4a9d00b | |||
a15b565e09 | |||
6ccba626c8 |
23
Makefile
23
Makefile
@ -4,6 +4,8 @@ EDITOR ?= vi
|
||||
FZF != command -v sk || command -v fzy || command -v fzf || \
|
||||
{ echo install a fuzzy finder && exit 1 ;}
|
||||
|
||||
spill_contents = sed -e '1,/---/d'
|
||||
|
||||
help: ## Print the help message
|
||||
@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
|
||||
sort | \
|
||||
@ -11,31 +13,38 @@ help: ## Print the help message
|
||||
|
||||
articles != find * -type f -name "*.md"
|
||||
|
||||
categories != ls -d */
|
||||
dirs != ls -d */
|
||||
categories = $(patsubst %/, %, $(dirs))
|
||||
|
||||
databases = $(patsubst %/, .dbs/%.rec, $(categories))
|
||||
databases = $(patsubst %, .dbs/%.rec, $(categories))
|
||||
|
||||
default += $(databases)
|
||||
|
||||
$(databases): .dbs/%.rec: %/ | .dbs/
|
||||
$(foreach dir, $(categories), \
|
||||
$(eval .dbs/$(dir).rec: $(wildcard $(dir)/*)) \
|
||||
)
|
||||
|
||||
$(databases): .dbs/%.rec: %/
|
||||
$(info making $(@F))
|
||||
mkdir -p $(@D)
|
||||
@mkdir -p $(@D)
|
||||
for entry in $(shell find $< -type f -name "*.md") ; do \
|
||||
sed -n '2,/^---$$/ {/^---$$/d; p}' "$$entry" |\
|
||||
sed -e 's/\[ //' -e 's/ \]//' |\
|
||||
tr -d '"' ;\
|
||||
printf "wordcount: %s\n" "$$(wc -w < $$entry)" ;\
|
||||
printf "file: %s\n\n" "$$entry" ;\
|
||||
done >> $@
|
||||
done > $@
|
||||
for entry in $(shell find $< -type f -name "*.md"); do \
|
||||
recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\
|
||||
recset $@ -e "file = '$${entry}'" -f content --set-add="$$($(spill_contents) $${entry})" ;\
|
||||
done
|
||||
|
||||
db.rec: $(databases)
|
||||
printf '%s\n' '%rec: guide' > $@
|
||||
printf '%s\n' '%key: title' >> $@
|
||||
printf '%s\n' '%type: wordcount int' >> $@
|
||||
printf '%s\n\n' '%sort: title' >> $@
|
||||
cat $^ >> $@
|
||||
recsel $^ >> $@
|
||||
recsel $@ -e "requires != ''" -CR title,requires |\
|
||||
while read title requires; do \
|
||||
IFS=', ' && for provider in $$requires; do \
|
||||
@ -62,7 +71,7 @@ article: ## Write an article
|
||||
filename="$$(echo "$$title" | tr '[:upper:]' '[:lower:]' | tr ' ' '_')" ;\
|
||||
printf '%s\n' '---' >> $$path/$$filename.md ;\
|
||||
printf 'title: "%s"\n' "$$title" >> $$path/$$filename.md ;\
|
||||
printf 'tags: [ "%s" ]\n' "$$path" | sed 's#\/#", "#g' >> $$path/$$filename.md ;\
|
||||
printf 'tags: [ "%s" ]\n' "$$path" | tr '[:upper:]' '[:lower:]' | sed 's#\/#", "#g' >> $$path/$$filename.md ;\
|
||||
printf '%s\n\n' '---' >> $$path/$$filename.md ;\
|
||||
$(EDITOR) +5 "$$path/$$filename.md"
|
||||
|
||||
|
@ -20,6 +20,7 @@ recsel db.rec -q gpg
|
||||
recsel db.rec -e "title = 'ssh'"
|
||||
recsel db.rec -e "title ~ 'ssh'"
|
||||
recsel db.rec -e "title ~ 'bash'" -R title,wordcount
|
||||
recsel db.rec -m 1 -P content | less -R
|
||||
```
|
||||
|
||||
# Style
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "at"
|
||||
tags: [ "Basics", "time" ]
|
||||
tags: [ "basics", "time" ]
|
||||
---
|
||||
Install with:
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Basics"
|
||||
tags: [ "Basics" ]
|
||||
tags: [ "basics" ]
|
||||
---
|
||||
|
||||
You need about a dozen commands to move around Linux.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "clock"
|
||||
tags: [ "Basics", "time" ]
|
||||
tags: [ "basics", "time" ]
|
||||
---
|
||||
|
||||
Show system time:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "conditionals"
|
||||
tags: [ "Basics" ]
|
||||
tags: [ "basics" ]
|
||||
---
|
||||
# If statements
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "cron"
|
||||
tags: [ "Basics", "time" ]
|
||||
tags: [ "basics", "time" ]
|
||||
---
|
||||
# Cronie
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "bash games"
|
||||
tags: [ "Games" ]
|
||||
tags: [ "games" ]
|
||||
---
|
||||
|
||||
Games are a great way to learn bash.
|
||||
|
@ -1,34 +0,0 @@
|
||||
---
|
||||
title: "kernel"
|
||||
tags: [ "Basics" ]
|
||||
---
|
||||
## Living Space
|
||||
|
||||
Kernel modules live in lib/modules/$(uname -r)
|
||||
|
||||
## Change
|
||||
|
||||
Load them with
|
||||
|
||||
```bash
|
||||
sudo modprobe ath9k
|
||||
```
|
||||
|
||||
Or remove one with
|
||||
|
||||
```bash
|
||||
sudo modprove uvcvideo
|
||||
```
|
||||
|
||||
The PC's irritating speaker beep can be really annoying. Disable it with:
|
||||
|
||||
```bash
|
||||
sudo modprobe -r pcspeaker
|
||||
```
|
||||
|
||||
Permanently disable a module by blacklisting it in `/etc/modprobe.d`:
|
||||
|
||||
```bash
|
||||
echo 'blacklist pcspkr' > /etc/modprobe.d/*nobeep*.conf
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "kill"
|
||||
tags: [ "Basics" ]
|
||||
tags: [ "basics" ]
|
||||
---
|
||||
|
||||
If you want to kill a program in a graphical environment, open a terminal and type:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "locale"
|
||||
tags: [ "Basics", "time" ]
|
||||
tags: [ "basics", "time" ]
|
||||
---
|
||||
|
||||
Your locale tells the computer your location, preferred time-and-date format, standard language, papersize, et c.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "locating"
|
||||
tags: [ "Basics" ]
|
||||
tags: [ "basics" ]
|
||||
---
|
||||
# Type
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "processes"
|
||||
tags: [ "Basics" ]
|
||||
tags: [ "basics" ]
|
||||
---
|
||||
# Proccesses
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "time"
|
||||
tags: [ "Basics", "time" ]
|
||||
tags: [ "basics", "time" ]
|
||||
---
|
||||
# systemd
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "users"
|
||||
tags: [ "Basics" ]
|
||||
tags: [ "basics" ]
|
||||
---
|
||||
# Basic Information
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "profanity"
|
||||
tags: [ "Chat", "omemo" ]
|
||||
tags: [ "chat", "omemo" ]
|
||||
---
|
||||
# Setup (Commands)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "wgetpaste"
|
||||
tags: [ "Chat" ]
|
||||
tags: [ "chat" ]
|
||||
---
|
||||
|
||||
See available pastebins:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "unison"
|
||||
tags: [ "Backups", "synch" ]
|
||||
tags: [ "backups", "synch" ]
|
||||
---
|
||||
|
||||
Install unison on both machines, and make sure both have the same version of unison, with the same version of the ocaml compiler (the smallest difference will cause problems).
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Base 16"
|
||||
tags: [ "Data" ]
|
||||
tags: [ "data" ]
|
||||
---
|
||||
|
||||
```bash
|
||||
|
@ -5,5 +5,10 @@ tags: [ "data", "calendar", "daylight savings" ]
|
||||
|
||||
## Setup
|
||||
|
||||
The UK government keeps an ics file with clock, [here](https://www.gov.uk/when-do-the-clocks-change/united-kingdom.ics).
|
||||
The UK government keeps an `ics` file with clock.
|
||||
|
||||
```sh
|
||||
wget https://www.gov.uk/when-do-the-clocks-change/united-kingdom.ics
|
||||
calcurse -i united-kingdom.ics
|
||||
```
|
||||
|
||||
|
@ -9,10 +9,10 @@ Install `opensmtpd` (or similar), then `ncat` or `nc` or `netcat` (this mysterio
|
||||
|
||||
Start the `opensmtpd` service, then use netcat to speak with the mail-daemon:
|
||||
|
||||
|
||||
```
|
||||
```sh
|
||||
nc localhost 25
|
||||
```
|
||||
|
||||
The computer should respond with code `220`, which means 'I am listening'.
|
||||
|
||||
> 220 hex ESMTP OpenSMTPD
|
||||
@ -40,7 +40,7 @@ Tell the mail daemon who you are in this format.
|
||||
|
||||
Then tell it who you're sending to.
|
||||
|
||||
```
|
||||
```sh
|
||||
RCPT TO: <www@dmz.rs>
|
||||
```
|
||||
|
||||
@ -67,7 +67,7 @@ You will find the email under `/var/spool` or `/var/mail` or similar.
|
||||
|
||||
If unsure, just take a part of your email, like `FRAGMENT="turn off server please"`, then `grep` for it:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
sudo grep -r $FRAGMENT /var/spool/*
|
||||
```
|
||||
|
||||
|
@ -1,17 +1,17 @@
|
||||
---
|
||||
title: "exiftool"
|
||||
tags: [ "Metadata" ]
|
||||
tags: [ "metadata", "exifdata" ]
|
||||
---
|
||||
|
||||
Find metadata.
|
||||
Find metadata:
|
||||
|
||||
```bash
|
||||
exiftool image.jpg
|
||||
```sh
|
||||
exiftool "$file".jpg
|
||||
```
|
||||
|
||||
Find info on all images in current directory.
|
||||
Find info on all `.png` images in current directory.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
exiftool -ext .png .
|
||||
```
|
||||
|
||||
@ -19,22 +19,14 @@ You can make this recurring with the -r switch.
|
||||
|
||||
And overwrite all metadata:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
exiftool -all= -overwrite_original -ext jpg .
|
||||
```
|
||||
(NB: This does not work on pdf data. See [here](pdf_erasure.md) for erasing all pdf data)
|
||||
|
||||
Or just GPS data:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
exiftool -gps:all= *.jpg
|
||||
```
|
||||
|
||||
You can also use the imagemagick tool:
|
||||
|
||||
```bash
|
||||
identify -verbose
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
@ -1,24 +1,72 @@
|
||||
---
|
||||
title: "git-lfs"
|
||||
tags: [ "data" ]
|
||||
tags: [ "data", "git" ]
|
||||
---
|
||||
|
||||
Install, and add with
|
||||
Git Large File Storage ('LFS') needs to change your `~/.gitconfig` to check out those binary files:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
cat ~/.gitconfig
|
||||
git lfs install
|
||||
cat ~/.gitconfig
|
||||
```
|
||||
|
||||
Then track some filetype with:
|
||||
Then track some filetypes with:
|
||||
|
||||
```bash
|
||||
git lfs track "\*.ttf"
|
||||
```sh
|
||||
cd $git_repository
|
||||
ext=ttf
|
||||
git lfs track "*.$ext"
|
||||
```
|
||||
|
||||
Or a directory with:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
git lfs track "images/"
|
||||
```
|
||||
|
||||
All changes require adding `.gitattributes`.
|
||||
Track the changes to `.gitattributes`:
|
||||
|
||||
```sh
|
||||
git status
|
||||
git add .gitattributes
|
||||
git commit -m "add $ext to lfs"
|
||||
```
|
||||
|
||||
## Bash Completion
|
||||
|
||||
If bash completion does not work, you'll have to add it:
|
||||
|
||||
```sh
|
||||
git lfs completion bash | sudo tee /usr/share/bash-completion/completions/git-lfs
|
||||
```
|
||||
|
||||
## Trouble Shooting
|
||||
|
||||
You have some file "$FILE".png, which has some problem.
|
||||
|
||||
Check the filetype:
|
||||
|
||||
```sh
|
||||
file "$FILE".png
|
||||
```
|
||||
|
||||
This should say the type is 'image'.
|
||||
If it says the type is 'text', then this file is really just a reminder to `git-lfs` to check out that file.
|
||||
|
||||
Check `git-lfs` is expecting that file:
|
||||
|
||||
```sh
|
||||
git lfs status
|
||||
git lfs ls-files
|
||||
```
|
||||
|
||||
...then try these commands, and check the filetype again:
|
||||
|
||||
```sh
|
||||
git lfs fetch --all
|
||||
git lfs fsck
|
||||
git lfs checkout
|
||||
git lfs status
|
||||
```
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: "git"
|
||||
title: "git subtree"
|
||||
tags: [ "data", "git", "subtree" ]
|
||||
---
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "gpg"
|
||||
tags: [ "data", "GPG" ]
|
||||
tags: [ "data", "gpg" ]
|
||||
---
|
||||
|
||||
- [Setup](gpg/basics.md)
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: "gpg"
|
||||
title: "gpg with vim"
|
||||
tags: [ "vim", "data", "GPG" ]
|
||||
requires: [ "GPG Basics", "vim basics" ]
|
||||
---
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "groff"
|
||||
tags: [ "Data" ]
|
||||
tags: [ "data", "logic" ]
|
||||
---
|
||||
# Basic Documents
|
||||
|
||||
|
@ -1,60 +1,52 @@
|
||||
---
|
||||
title: "khard"
|
||||
tags: [ "Data" ]
|
||||
tags: [ "data" ]
|
||||
---
|
||||
Get the basic config:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
mkdir ~/.config/khard
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
cp /usr/share/doc/khard/examples/khard/khard.conf.example ~/.config/khard.conf
|
||||
```
|
||||
|
||||
Short list
|
||||
|
||||
```bash
|
||||
```sh
|
||||
khard list
|
||||
```
|
||||
|
||||
Longer list
|
||||
|
||||
```bash
|
||||
```sh
|
||||
khard show
|
||||
```
|
||||
|
||||
Show from addressbook 'work'
|
||||
|
||||
```bash
|
||||
```sh
|
||||
khard list -a work
|
||||
```
|
||||
|
||||
Make a new contact in address book 'family'
|
||||
|
||||
```bash
|
||||
```sh
|
||||
khard new -a family
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
khard edit grampa
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
khard remove bob
|
||||
```
|
||||
|
||||
Move contact 'nina' from 'work' to 'home' address book.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
khard move -a home nina -A work
|
||||
```
|
||||
|
||||
## Advanced
|
||||
|
||||
Merge:
|
||||
|
||||
```bash
|
||||
khard merge [-a source_abook] [-u uid|search terms [search terms ...]] [-A target_abook] [-U target_uid|-t target_search_terms]
|
||||
```
|
||||
|
||||
|
14
data/pass.md
14
data/pass.md
@ -1,42 +1,42 @@
|
||||
---
|
||||
title: "pass"
|
||||
tags: [ "data" ]
|
||||
requires: "GPG Basics"
|
||||
---
|
||||
[Video instructions](https://www.hooktube.com/watch?v=hlRQTj1D9LA)
|
||||
|
||||
Setup [gpg](./gpg.md) keys.
|
||||
|
||||
Show your gpg secret it:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
gpg --list-secret-keys
|
||||
```
|
||||
|
||||
Then use the id number under `sec` to make a pass repo:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
KEY="$(gpg --list-secret-keys | grep -m 1 -A1 '^sec' | tail -n 1)"
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
pass init $KEY
|
||||
```
|
||||
|
||||
To add a basic password, e.g. for `$WEBSITE`:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
pass $WEBSITE
|
||||
```
|
||||
|
||||
To insert a multiline password, e.g. with a login name:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
pass add -m $WEBSITE
|
||||
```
|
||||
|
||||
Remove a password:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
pass rm $WEBSITE
|
||||
```
|
||||
|
||||
|
@ -2,7 +2,8 @@
|
||||
title: "pdf to txt"
|
||||
tags: [ "data", "pdf", "ocr" ]
|
||||
---
|
||||
How to translate pdf book images to text (results are very poor, and will need lots of corrections).
|
||||
|
||||
How to translate pdfs to text (results are very poor, and will need lots of corrections).
|
||||
|
||||
## Dependencies
|
||||
|
||||
@ -17,8 +18,8 @@ pdftoppm -png *file*.pdf test
|
||||
```
|
||||
|
||||
```bash
|
||||
for x in \*png; do
|
||||
tesseract -l eng "$x" - >> *out*.txt
|
||||
for x in *png; do
|
||||
tesseract -l eng "$x" - >> out.txt
|
||||
done
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "PDF Metadata Erasure"
|
||||
tags: [ "Metadata", "Ghost Script", "gs", ".pdf" ]
|
||||
tags: [ "metadata", "ghost script", "gs", ".pdf" ]
|
||||
---
|
||||
|
||||
You cannot erase pdf metadata with `exiftool` (it only *appends* your changes).
|
||||
|
@ -44,6 +44,9 @@ recset -f "$new_field" --delete $database
|
||||
|
||||
- [Extended example](recfiles/extended.md)
|
||||
- [Playing with board games data](recfiles/Board_Games.md)
|
||||
- [Playing with IP addresses](recfiles/IP_ASN.md)
|
||||
- [Manage LaTeX Bibliographies](recfiles/bibliography.md)
|
||||
- [Fixes](recfiles/recfixes.md)
|
||||
|
||||
# Resources
|
||||
|
||||
|
16
data/recfiles/IP_ASN.md
Normal file
16
data/recfiles/IP_ASN.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "IP Addresses with Recfiles"
|
||||
tags: [ "data", "recfiles", "games" ]
|
||||
requires: "Recfiles"
|
||||
---
|
||||
|
||||
## Download the Database
|
||||
|
||||
Download the csv data, and separate the ipv4 data from the ipv6.
|
||||
|
||||
```sh
|
||||
curl -Lo ips.zip 'https://www.kaggle.com/api/v1/datasets/download/ipinfo/ipinfo-country-asn'
|
||||
unzip -p ips.zip country_asn.csv | csv2rec | recsel -e "start_ip ~ '\.'" > ipv4.rec
|
||||
unzip -p ips.zip country_asn.csv | csv2rec | recsel -e "start_ip ~ '::'" > ipv6.rec
|
||||
```
|
||||
|
121
data/recfiles/bibliography.md
Normal file
121
data/recfiles/bibliography.md
Normal file
@ -0,0 +1,121 @@
|
||||
---
|
||||
title: "Recfile Bibliography for TeX"
|
||||
tags: [ "data", "database", "recfiles", "tex" ]
|
||||
requires: [ "Recfiles", "TeX", "Makefile" ]
|
||||
---
|
||||
|
||||
Store your bibliography in a `recfile` database, then extract any part with `make`.
|
||||
|
||||
For example, you could store books like this in `bibliography.rec`:
|
||||
|
||||
```recfile
|
||||
%rec: book
|
||||
%key: slug
|
||||
|
||||
slug: thinkingexperience
|
||||
author: H. H. Price
|
||||
title: Thinking and Experience
|
||||
year: 1953
|
||||
publisher: Harvard University Press, Cambridge
|
||||
|
||||
slug: inventingrightwrong
|
||||
author: John Leslie Mackie
|
||||
title: Inventing Right and Wrong
|
||||
year: 1997
|
||||
publisher: Penguin Books, England
|
||||
|
||||
```
|
||||
|
||||
Run `make book` to extract `book.bib`, ready for LaTeX to use:
|
||||
|
||||
```bib
|
||||
@book{thinkingexperience,
|
||||
author = {H. H. Price},
|
||||
title = {Thinking and Experience},
|
||||
year = {1953},
|
||||
publisher = {Harvard University Press, Cambridge},
|
||||
}
|
||||
|
||||
@book{inventingrightwrong,
|
||||
author = {John Leslie Mackie},
|
||||
title = {Inventing Right and Wrong},
|
||||
year = {1997},
|
||||
publisher = {Penguin Books, England},
|
||||
}
|
||||
```
|
||||
|
||||
The `makefile` syntax is just a few lines (though admittedly employs some garbled shell-crud):
|
||||
|
||||
```make
|
||||
bibs != grep -Po '%rec: \K.*' bibliography.rec
|
||||
bibfiles = $(patsubst %, %.bib, $(bibs))
|
||||
|
||||
$(bibfiles): %.bib: bibliography.rec
|
||||
recsel $< -t $(basename $@) |\
|
||||
sed 's/slug: \(.*\)/@$(basename $@){\1,/g' |\
|
||||
sed 's/^\(\b.*\b\): \(.*\)/ \1 = {\2},/gI' |\
|
||||
sed 's/^$$/}\n/g' > $@
|
||||
echo '}' >> $@
|
||||
```
|
||||
|
||||
Here's a longer `bibliography.rec` file, which can also produce `article.bib`:
|
||||
|
||||
```recfile
|
||||
%rec: book
|
||||
%key: slug
|
||||
%type: year int
|
||||
%constraint: year > -2000
|
||||
%sort: year month
|
||||
|
||||
slug: thinkingexperience
|
||||
author: H. H. Price
|
||||
title: Thinking and Experience
|
||||
year: 1953
|
||||
publisher: Harvard University Press, Cambridge
|
||||
|
||||
slug: inventingrightwrong
|
||||
author: John Leslie Mackie
|
||||
title: Inventing Right and Wrong
|
||||
year: 1997
|
||||
publisher: Penguin Books, England
|
||||
|
||||
slug: metaphysicscontemporaryintro
|
||||
author: Michael J. Loux
|
||||
title: Metaphysics: A Contemporary Introduction
|
||||
year: 1998
|
||||
publisher: Routledge, London
|
||||
|
||||
slug: pluralityworlds
|
||||
author: David Lewis
|
||||
title: On the Plurality of Worlds
|
||||
publisher: Blackwell Publishing, Oxford
|
||||
year: 2001
|
||||
|
||||
%rec: article
|
||||
%key: slug
|
||||
%sort: year month
|
||||
|
||||
slug: genuinerealisttheory
|
||||
author: John Divers
|
||||
title: A Genuine Realist Theory of Advanced Modalizing
|
||||
year: 1999
|
||||
pages: 217–240
|
||||
month: april
|
||||
journaltitle: Mind
|
||||
uri: https://academic.oup.com/mind/article-abstract/108/430/217/975258?redirectedFrom=fulltext
|
||||
volume: 108
|
||||
publisher: Harvard University Press, Cambridge
|
||||
|
||||
slug: twokindsmentalrealism
|
||||
author: Tam\'{a}s Demeter
|
||||
title: Two Kinds of Mental Realism
|
||||
year: 2009
|
||||
pages: 40:59-71
|
||||
uri: https://www.researchgate.net/profile/Tamas_Demeter2/publication/41554923_Two_Kinds_of_Mental_Realism/links/0deec53247f5a4ae21000000.pdf
|
||||
month: august
|
||||
journaltitle: Journal for General Philosophy of Science
|
||||
volume: 30
|
||||
publisher: Harvard University Press, Cambridge
|
||||
|
||||
```
|
||||
|
33
data/recfiles/recfixes.md
Normal file
33
data/recfiles/recfixes.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
title: "Recfixes"
|
||||
tags: [ "data", "recfiles" ]
|
||||
requires: "Recfiles"
|
||||
---
|
||||
|
||||
Sometimes `recsel` chokes on a large query, and you need to break the query into chunks with a pipe.
|
||||
|
||||
This Kickstarter file has 374,853 records.
|
||||
Here's the chonky query:
|
||||
|
||||
```sh
|
||||
recsel kick.rec -e "Category = 'Games'" -p "Subcategory,Avg(Goal)" -G Subcategory
|
||||
```
|
||||
|
||||
It breaks down like this:
|
||||
|
||||
| Chunk | Meaning |
|
||||
|:-----------------------------:|:---------------------------------------------:|
|
||||
| `recsel kick.rec` | Select records from `kick.rec` |
|
||||
| `-e "Category = 'Games'"` | Select only records where Category = 'Games' |
|
||||
| `-p "Subcategory,Avg(Goal)"` | Print the Subcategory and average goal |
|
||||
| `-G "Subcategory"` | Group by subcategory |
|
||||
|
||||
Two ways to break the query apart:
|
||||
|
||||
```sh
|
||||
recsel kick.rec -e "Category = 'Games'" | recsel -p "Subcategory,Avg(Goal)" -G "Subcategory"
|
||||
|
||||
recsel kick.rec -e "Category = 'Games'" > games.rec
|
||||
recsel games.rec -p "Subcategory" -G "Subcategory"
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "task"
|
||||
tags: [ "Organization" ]
|
||||
tags: [ "organization" ]
|
||||
---
|
||||
|
||||
Set up the configuration file:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "timewarrior"
|
||||
tags: [ "Data", "tracking", "time", "timew" ]
|
||||
tags: [ "data", "tracking", "time", "timew" ]
|
||||
---
|
||||
# Summaries
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "autologin"
|
||||
tags: [ "Distros", "Arch" ]
|
||||
tags: [ "distros", "arch" ]
|
||||
---
|
||||
|
||||
# Automatic Login
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "fonts"
|
||||
tags: [ "distros" ]
|
||||
title: "Ach Linux GPU Setup"
|
||||
tags: [ "arch", "GPU" ]
|
||||
---
|
||||
# Step 1: Multilib
|
||||
|
||||
@ -60,4 +60,3 @@ You should see 'true' here.
|
||||
```bash
|
||||
sudo pacman -S --needed lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader xf86-video-amdgpu
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Aeroplane Mode in Void"
|
||||
tags: [ "Void" ]
|
||||
tags: [ "void" ]
|
||||
---
|
||||
Put your device in 'aeroplane' mode (e.g. where no trace of signal leaves it) by turning off Wi-Fi and blue-tooth.
|
||||
|
||||
@ -9,7 +9,7 @@ su root
|
||||
sv stop wpa_supplicant bluetoothd
|
||||
```
|
||||
|
||||
Find your device's name with `ip a`.
|
||||
Find your device's name with `ip -color addr`.
|
||||
If unsure, try this:
|
||||
|
||||
```sh
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Void Autologin"
|
||||
tags: [ "Void" ]
|
||||
tags: [ "void" ]
|
||||
---
|
||||
|
||||
Make the autologin service:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "extrace"
|
||||
tags: [ "Void" ]
|
||||
tags: [ "void" ]
|
||||
---
|
||||
Monitor all processes:
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "sv"
|
||||
tags: [ "Void" ]
|
||||
tags: [ "void" ]
|
||||
---
|
||||
# List Services
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Void Linux Basics"
|
||||
tags: [ "Void" ]
|
||||
tags: [ "void" ]
|
||||
---
|
||||
# Updates
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "xbps"
|
||||
tags: [ "Void" ]
|
||||
tags: [ "void" ]
|
||||
---
|
||||
## Search
|
||||
|
||||
|
@ -9,7 +9,7 @@ This works everywhere, including in a bare-ass tty.
|
||||
|
||||
Select a keymap, and create a new custom map.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
su root
|
||||
|
||||
basemap=/usr/share/kbd/keymaps/i386/qwerty/pl1.map.gz
|
||||
@ -22,7 +22,7 @@ gunzip -c $basemap | \
|
||||
|
||||
Tell the system to use this keymap at startup by naming it in the `rc.conf` file:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
echo "KEYMAP=$newmap" >> /etc/rc.conf
|
||||
|
||||
cat /etc/rc.conf
|
||||
@ -33,24 +33,24 @@ reboot
|
||||
|
||||
Set layout to British English.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
setxkbmap -layout gb
|
||||
```
|
||||
|
||||
Or Polish with:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
setxkbmap -layout pl
|
||||
```
|
||||
|
||||
| Language | short |
|
||||
|:--------|:------|
|
||||
| Polish | pl |
|
||||
| Serbian | rs |
|
||||
|:---------|:------|
|
||||
| Polish | `pl` |
|
||||
| Serbian | `rs` |
|
||||
|
||||
Set 'alt + shift', as the command which cycles through the British English, Polish and Serbian keyboard layout.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
setxkbmap -layout gb,pl,rs -option grp:alt_shift_toggle
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "fail2ban"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
requires: [ "ssh" ]
|
||||
---
|
||||
# SSH Daemon Jail
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Easy Network Graph"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
Set up a file like this, called `troubleshooting.txt`.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "iptables"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
# Intro
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "nmap"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
|
||||
Example:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "pi-hole-server"
|
||||
tags: [ "Distros" ]
|
||||
tags: [ "distros" ]
|
||||
---
|
||||
# Installation
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "rclone"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking", "synch" ]
|
||||
---
|
||||
The manpage's 'Synopsis' provides a fast reference.
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Download videos"
|
||||
tags: [ "Scraping" ]
|
||||
tags: [ "scraping" ]
|
||||
---
|
||||
Install `yt-dlp`.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Agate on Arch Linux"
|
||||
tags: [ "Networking", "Arch", "Gemini" ]
|
||||
tags: [ "networking", "arch", "gemini" ]
|
||||
---
|
||||
|
||||
Docs are [here](https://github.com/mbrubeck/agate).
|
||||
|
@ -7,7 +7,7 @@ tags: [ "networking" ]
|
||||
Try out basic ssh by accessing `git.charm.sh`, without needing authentication:
|
||||
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ssh git.charm.sh
|
||||
```
|
||||
|
||||
@ -16,32 +16,32 @@ The ssh server is sometimes in a package called `openssh`, and sometimes only in
|
||||
|
||||
Once it's installed, check it's working:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
sudo systemctl status ssh
|
||||
```
|
||||
|
||||
If that doesn't work, the service may be called `sshd`.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
sudo systemctl status sshd
|
||||
```
|
||||
|
||||
Then start that service:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
sudo systemctl start sshd
|
||||
```
|
||||
Test it works by using ssh into your own system, from inside:
|
||||
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ssh $USER@localhost
|
||||
```
|
||||
|
||||
Access the computer from another computer on the same local network by finding your computer's IP address.
|
||||
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ip address | grep inet
|
||||
```
|
||||
|
||||
@ -56,24 +56,24 @@ Here is mine:
|
||||
|
||||
|
||||
The first one starts `127`, which means it returns back to that computer (like `localhost`).
|
||||
The second is an ipv6 address, which is too angelic for this world, and has yet to ascend.
|
||||
The second is an ipv6 address, which is too angelic for this world, and has yet to descend.
|
||||
The third will work from a remote computer.
|
||||
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ssh $USERNAME@IP_ADDRESS
|
||||
```
|
||||
|
||||
Once you have that, generate some ssh keys:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ssh-keygen
|
||||
```
|
||||
|
||||
Look at your keys:
|
||||
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ls ~/.ssh
|
||||
```
|
||||
|
||||
@ -82,7 +82,7 @@ The other is secret.
|
||||
|
||||
Now send those keys to a remote computer:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ssh-copy-id $USERNAME@IP_ADDRESS
|
||||
```
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "sshfs"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
requires: [ "ssh" ]
|
||||
---
|
||||
# Mount
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "ssh-tricks"
|
||||
tags: [ "Networking", "ssh", "tricks" ]
|
||||
tags: [ "networking", "ssh", "tricks" ]
|
||||
requires: [ "ssh" ]
|
||||
---
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "tor"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
|
||||
# Get a hostname
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "transmission"
|
||||
tags: [ "Networking", "Torrenting" ]
|
||||
tags: [ "networking", "torrenting" ]
|
||||
---
|
||||
# Torrench
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
---
|
||||
title: "troubleshooting"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
|
||||
# Do you have an IP?
|
||||
|
||||
If not, try checking out what your local Networking interfaces are, then check if they have been picked up:
|
||||
If not, try checking out what your local networking interfaces are, then check if they have been picked up:
|
||||
|
||||
```bash
|
||||
dmesg | grep eth0
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "nginx"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking", "web" ]
|
||||
---
|
||||
Install nginx:
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
---
|
||||
title: "wifi"
|
||||
tags: [ "Networking" ]
|
||||
title: "network"
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
|
||||
# Netstat Stuff
|
||||
|
||||
Stats on local net usage within domain.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "wireguard"
|
||||
tags: [ "Networking", "VPN" ]
|
||||
tags: [ "networking", "VPN" ]
|
||||
---
|
||||
<!--
|
||||
from
|
||||
@ -11,25 +11,22 @@ https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/
|
||||
|
||||
Install `wireguard-tools` on the server.
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
su root
|
||||
cd /etc/wireguard
|
||||
```
|
||||
|
||||
umask 077
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wg genkey | tee server_private_key | wg pubkey > server_public_key
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wg genkey | tee client_private_key | wg pubkey > client_public_key
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
echo "
|
||||
[Interface]
|
||||
Address = 10.0.0.1/24
|
||||
@ -46,20 +43,20 @@ wg genkey | tee client_private_key | wg pubkey > client_public_key
|
||||
" > /etc/wireguard/wg0.conf
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/wg.conf
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
systemctl enable --now wg-quiqck@wg0
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
chown -R root:root /etc/wireguard/
|
||||
```
|
||||
|
||||
```bash
|
||||
chmod -R og-rwx /etc/wireguard/\*
|
||||
```sh
|
||||
chmod -R og-rwx /etc/wireguard/*
|
||||
```
|
||||
|
||||
Forward traffic from port 51900 to the server.
|
||||
@ -72,21 +69,25 @@ Install `wireguard-tools` on the client.
|
||||
|
||||
Copy the client private key and server public key to the server (or just fill in the variables).
|
||||
|
||||
> server_ip=*your server's public ip*
|
||||
|
||||
echo "
|
||||
[Interface]
|
||||
Address = 10.0.0.2/32
|
||||
PrivateKey = $(cat client_private_key)
|
||||
DNS = 9.9.9.9
|
||||
|
||||
[Peer]
|
||||
PublicKey = $(cat server_public_key)
|
||||
Endpoint = $(echo $server_ip:51900)
|
||||
AllowedIPs = 0.0.0.0/0, ::/0
|
||||
" > /etc/wireguard/wg0-client.conf
|
||||
```sh
|
||||
server_ip=$PUBLIC_IP
|
||||
|
||||
> wg-quick up wg0-client
|
||||
echo "
|
||||
[Interface]
|
||||
Address = 10.0.0.2/32
|
||||
PrivateKey = $(cat client_private_key)
|
||||
DNS = 9.9.9.9
|
||||
|
||||
[Peer]
|
||||
PublicKey = $(cat server_public_key)
|
||||
Endpoint = $(echo $server_ip:51900)
|
||||
AllowedIPs = 0.0.0.0/0, ::/0
|
||||
" > /etc/wireguard/wg0-client.conf
|
||||
|
||||
wg-quick up wg0-client
|
||||
|
||||
```
|
||||
|
||||
## Extras
|
||||
|
||||
@ -98,6 +99,6 @@ Add multiple peers by copying the `[peer]` section (they each get called `peer`)
|
||||
|
||||
Make a standard client configuration, then:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
qrencode -t ansiutf8 < /etc/wireguard/mobile_user.conf
|
||||
```
|
||||
|
@ -1,60 +1,63 @@
|
||||
---
|
||||
title: "wireless"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
|
||||
# Check wifi's working
|
||||
```bash
|
||||
Check wifi's working
|
||||
|
||||
```sh
|
||||
lspci -k
|
||||
```
|
||||
|
||||
Or for usb wifi:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
dmesg | grep usbcore
|
||||
```
|
||||
|
||||
... and hopefully it'll say the new interface is registered.
|
||||
...and hopefully it'll say the new interface is registered.
|
||||
|
||||
# Check if a wifi interface has been created
|
||||
Check if a wifi interface has been created
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ip link
|
||||
```
|
||||
|
||||
or
|
||||
...or
|
||||
|
||||
```bash
|
||||
```sh
|
||||
iw dev
|
||||
```
|
||||
|
||||
Assuming it's wlan0, bring it up with
|
||||
|
||||
```bash
|
||||
```sh
|
||||
ip link set wlan0 up
|
||||
```
|
||||
|
||||
Error messages probably means your wireless chipset requires a firmware to function. In this case, check the kernel messages for firmware being loaded
|
||||
|
||||
```bash
|
||||
```sh
|
||||
dmesg | grep firmware
|
||||
```
|
||||
|
||||
# Utilities
|
||||
|
||||
iw doesn't do wpa/wpa2. wpa_supplicant does everything. iwd does everything except WEXT encryption.
|
||||
- `iw` doesn't do wpa/wpa2.
|
||||
- `iwd` does everything except WEXT encryption.
|
||||
- `wpa_supplicant` does everything.
|
||||
|
||||
# Connecting
|
||||
|
||||
Get the link status:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
iw dev wlan0 link
|
||||
```
|
||||
|
||||
Scan for available points:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
iw dev wlan0 scan
|
||||
```
|
||||
|
||||
|
@ -1,57 +1,57 @@
|
||||
---
|
||||
title: "wpa_supplicant"
|
||||
tags: [ "Networking" ]
|
||||
tags: [ "networking" ]
|
||||
---
|
||||
|
||||
wpa_supplicant configurations are stored in /etc/wpa_supplicant/wpa_supplicant-wlan0 (or equivalent).
|
||||
`wpa_supplicant` configurations are stored in `/etc/wpa_supplicant/wpa_supplicant-wlan0` (or equivalent).
|
||||
|
||||
## WiFi Connection
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wpa_cli
|
||||
```
|
||||
|
||||
Once in, scan the network, add an empty place to store credentials, then input them.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
scan
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
scan_results
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
add_network
|
||||
```
|
||||
|
||||
This outputs a network number, e.g. '3'. This is the new network you'll work with.
|
||||
|
||||
```bash
|
||||
```sh
|
||||
set_network *3* ssid *"Kosachok Cafe"*
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
set_network 3 psk *"Kosachok2019"*
|
||||
```
|
||||
|
||||
OR (for no password)
|
||||
|
||||
```bash
|
||||
```sh
|
||||
set_network *3* key_mgmt NONE
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
enable_network 3
|
||||
```
|
||||
|
||||
```bash
|
||||
```sh
|
||||
save_config
|
||||
```
|
||||
|
||||
This takes a while to connect, so to speed things up, restart the service:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
sudo sv restart wpa_supplicant
|
||||
```
|
||||
|
||||
@ -59,13 +59,13 @@ sudo sv restart wpa_supplicant
|
||||
|
||||
You can script like this:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wpa_cli add_network
|
||||
```
|
||||
|
||||
That returns an ID, so you can say:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
newNetwork="$(wpa_cli add_network)"
|
||||
```
|
||||
|
||||
@ -73,19 +73,19 @@ Then `$newNetwork` would equal that number, and you can add/ remove networks wit
|
||||
|
||||
But remember to escape the quotes, so adding a network would be:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wpa_cli set_network *3* psk *\""passphrase"\"*
|
||||
```
|
||||
|
||||
## Generating Keys Manually
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wpa_passphrase [ssid] [password]
|
||||
```
|
||||
|
||||
For example:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wpa_passphrase 'Cafe Kosachok' 'Kosachok2019'
|
||||
```
|
||||
|
||||
@ -95,8 +95,11 @@ If you encounter problems, you will probably need to delete the old device pid i
|
||||
|
||||
Next up, start wpa_supplicant:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant-wlan0
|
||||
```
|
||||
|
||||
The -B flag runs this as a background process. Remove this to see real-time output in order to solve problems. The -i flag denotes the physical device used for the wifi. The -c flag points to the configuration file for use.
|
||||
The `-B` flag runs this as a background process.
|
||||
Remove this to see real-time output in order to solve problems.
|
||||
The `-i` flag denotes the physical device used for the wifi.
|
||||
The `-c` flag points to the configuration file for use.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Basic Sound"
|
||||
tags: [ "Sound" ]
|
||||
tags: [ "sound" ]
|
||||
---
|
||||
# Pulse
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "festival"
|
||||
tags: [ "Sound" ]
|
||||
tags: [ "sound" ]
|
||||
---
|
||||
# Basics
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "mpd"
|
||||
tags: [ "Sound" ]
|
||||
tags: [ "sound" ]
|
||||
---
|
||||
# Setup
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "ncmpcpp"
|
||||
tags: [ "Sound" ]
|
||||
tags: [ "sound" ]
|
||||
---
|
||||
|
||||
# Music Player Daemon
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: "Makefiles"
|
||||
title: "make help target"
|
||||
tags: [ "system", "make", "help" ]
|
||||
---
|
||||
|
||||
@ -7,11 +7,13 @@ Make your first target 'help' to give an overview of the main targets.
|
||||
Running `make help` will search for text which starts with `## ` and show what that target does.
|
||||
|
||||
```make
|
||||
.PHONY: help
|
||||
help: ## Print the help message
|
||||
@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
|
||||
sort | \
|
||||
column -s ':' -t
|
||||
|
||||
.PHONY: clean
|
||||
clean: ## Remove generated files
|
||||
$(RM) $(defaults)
|
||||
```
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "android"
|
||||
tags: [ "System", "phone" ]
|
||||
tags: [ "system", "phone" ]
|
||||
---
|
||||
# mtpfs
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "awk"
|
||||
tags: [ "System", ".csv" ]
|
||||
tags: [ "system", ".csv" ]
|
||||
---
|
||||
# Basics
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "bash tips"
|
||||
tags: [ "Shell", "POSIX" ]
|
||||
tags: [ "shell", "POSIX" ]
|
||||
---
|
||||
## Track Live Changes
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "character-encoding"
|
||||
tags: [ "System", "encoding" ]
|
||||
tags: [ "system", "encoding" ]
|
||||
---
|
||||
|
||||
Convert a text file from one encoding type to another with:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Default Programs"
|
||||
tags: [ "Defaults", "Mime Type" ]
|
||||
tags: [ "defaults", "mime type" ]
|
||||
---
|
||||
|
||||
Install the package `xdg-utils`, then make very liberal use of the tab button.
|
||||
|
@ -1,8 +1,36 @@
|
||||
---
|
||||
title: "kernel"
|
||||
title: "kernel modules"
|
||||
tags: [ "system" ]
|
||||
---
|
||||
|
||||
Kernel modules live in lib/modules/$(uname -r)
|
||||
|
||||
## Change
|
||||
|
||||
Load them with
|
||||
|
||||
```sh
|
||||
modprobe ath9k
|
||||
```
|
||||
|
||||
Or remove one with
|
||||
|
||||
```sh
|
||||
modprove uvcvideo
|
||||
```
|
||||
|
||||
The PC's irritating speaker beep can be really annoying. Disable it with:
|
||||
|
||||
```sh
|
||||
modprobe -r pcspeaker
|
||||
```
|
||||
|
||||
Permanently disable a module by blacklisting it in `/etc/modprobe.d`:
|
||||
|
||||
```sh
|
||||
echo 'blacklist pcspkr' > /etc/modprobe.d/*nobeep*.conf
|
||||
```
|
||||
|
||||
Check which kernel modules are loaded into memory:
|
||||
|
||||
```sh
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "lf - The Light File Manager"
|
||||
tags: [ "File Browser", "TUI" ]
|
||||
tags: [ "file browser", "TUI" ]
|
||||
---
|
||||
|
||||
## Config File
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "logs"
|
||||
tags: [ "System" ]
|
||||
tags: [ "system" ]
|
||||
---
|
||||
|
||||
# Basic
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Monitoring"
|
||||
tags: [ "System", "CPU", "Memory" ]
|
||||
tags: [ "system", "CPU", "memory" ]
|
||||
---
|
||||
|
||||
Print the average CPU load over 1 minute, 5 minutes, and 15 minutes:
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "partitions"
|
||||
tags: [ "System" ]
|
||||
tags: [ "system" ]
|
||||
---
|
||||
|
||||
# FDisk Basics
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "snaps"
|
||||
tags: [ "System", "Ubuntu", "snap" ]
|
||||
tags: [ "system", "Ubuntu", "snap" ]
|
||||
---
|
||||
> sudo apt-get purge -y snapd
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Docker"
|
||||
tags: [ "documentation", "Virtualization" ]
|
||||
tags: [ "documentation", "virtualization" ]
|
||||
---
|
||||
```sh
|
||||
sudo pacman -S docker
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "virtualbox"
|
||||
tags: [ "System" ]
|
||||
tags: [ "system" ]
|
||||
---
|
||||
# Setup
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "ffmpeg"
|
||||
tags: [ "Sound", "Vision" ]
|
||||
tags: [ "sound", "vision" ]
|
||||
---
|
||||
# Basics
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "imagemagick"
|
||||
tags: [ "Vision" ]
|
||||
tags: [ "vision" ]
|
||||
---
|
||||
|
||||
Convert jpg to png.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "Markdown to PDF"
|
||||
tags: [ "Markdown", "PDF", "Vision" ]
|
||||
tags: [ "markdown", ".pdf", "vision" ]
|
||||
---
|
||||
|
||||
Turn a markdown file into a pdf:
|
||||
|
Loading…
x
Reference in New Issue
Block a user