Compare commits

...

9 Commits

Author SHA1 Message Date
415985d08c
make silently be default 2025-02-12 17:00:34 +01:00
d6c3cd6387
set default editor 2025-02-12 16:51:02 +01:00
4c3d51ff83
use parallel execution by default 2025-02-12 16:49:10 +01:00
8f3da4558f
split database into parts
Each category - sound/, networking/, et c. - now has its own little
database in .dbs/.  So the database only recompiles based on categories,
rather than a complete recompile every time a single file changes.
2025-02-12 16:47:47 +01:00
137466a423
edit article categories in makefile 2025-02-12 15:46:02 +01:00
37df47cf3b
fix mark article target 2025-02-12 15:37:05 +01:00
b6280a8581
separate system search 2025-02-12 15:36:40 +01:00
1ce84ebc53
edit metadata 2025-02-12 15:01:15 +01:00
341b6ed46f
remove old otr notes 2025-02-12 14:38:02 +01:00
47 changed files with 310 additions and 323 deletions

@ -1,3 +1,6 @@
MAKEFLAGS += -j
MAKEFLAGS += -s
EDITOR ?= vi
FZF != command -v sk || command -v fzy || command -v fzf || \
{ echo install a fuzzy finder && exit 1 ;}
@ -8,25 +11,38 @@ help: ## Print the help message
articles != find * -type f -name "*.md"
db.rec: $(articles)
categories != ls -d */
databases = $(patsubst %/, .dbs/%.rec, $(categories))
default += $(databases)
$(databases): .dbs/%.rec: %/ | .dbs/
$(info making $(@F))
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 >> $@
for entry in $(shell find $< -type f -name "*.md"); do \
recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\
done
db.rec: $(databases)
printf '%s\n' '%rec: guide' > $@
printf '%s\n' '%type: wordcount int' >> $@
printf '%s\n\n' '%sort: title' >> $@
for x in $^ ; do \
sed -n '2,/^---$$/ {/^---$$/d; p}' "$$x" |\
sed -e 's/\[ //' -e 's/ \]//' |\
tr -d '"' ;\
printf "file: %s\n\n" "$$x" ;\
done >> $@
for entry in $^; do \
recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\
done
cat $^ >> $@
recsel $@ -e "requires != ''" -CR title,requires |\
while read title requires; do \
IFS=', ' && for provider in $$requires; do \
recset $@ -e "title = '$${provider}'" -f provides -a "$${title}" ;\
done ;\
done
$(info Created main database: $@)
recfix --sort $@
default += db.rec
@ -41,13 +57,14 @@ database: $(default) ## Make a recfiles database
.PHONY: article
article: ## Write an article
@path=$$(find . -type d -printf '%P\n' | $(FZF)); \
@path=$$(find $(categories) -type d | sort | uniq | $(FZF)) ;\
read -p "Title: " title ;\
printf '%s\n' '---' >> $$path/$$title.md ; \
printf 'title: "%s"\n' "$$title" >> $$path/$$title.md ; \
printf 'tags: [ "%s" ]\n' "$$path" | sed 's#\/#", "#g' >> $$path/$$title.md ; \
printf '%s\n\n' '---' >> $$path/$$title.md ;\
$(EDITOR) +5 $$path/$$title.md
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 '%s\n\n' '---' >> $$path/$$filename.md ;\
$(EDITOR) +5 "$$path/$$filename.md"
.PHONY: clean
clean: ## Remove all generated files

@ -1,6 +1,6 @@
---
title: "at"
tags: [ "Basics" ]
tags: [ "Basics", "time" ]
---
Install with:

@ -1,6 +1,6 @@
---
title: "clock"
tags: [ "Basics" ]
tags: [ "Basics", "time" ]
---
Show system time:

@ -1,6 +1,6 @@
---
title: "cron"
tags: [ "Basics" ]
tags: [ "Basics", "time" ]
---
# Cronie

@ -1,6 +1,6 @@
---
title: "locale"
tags: [ "Basics" ]
tags: [ "Basics", "time" ]
---
Your locale tells the computer your location, preferred time-and-date format, standard language, papersize, et c.

@ -6,57 +6,28 @@ tags: [ "Basics" ]
`type` shows what kind of thing you're running, be it an alias, function, or binary program.
```bash
type cmus
```sh
type cd
type ls
type -P ls
type -a cat
```
# Whereis the Program
Ask where the `angband` program is, along with all its configuration files:
Where is `grep` and all its configuration files?
`whereis angband`
Also `which` shows where a binary file (the program) is,
```bash
which cmus
```sh
whereis grep
```
# Search Instantly with `plocate`
Which one of these is the binary file which you actually use?
You can search every file on the computer instantly by installing `plocate`.
Once installed, run `sudo updatedb` to create the database of (nearly) every file on the computer.
Check how big the database is:
```bash
du -h /var/lib/plocate/plocate.db
```sh
which grep
```
Once you have the database, you can find nearly any file instantly.
# More
- Search for gifs: `locate .gif`
- Search for gifs in the `/usr/` directory: `locate /usr/ .gif`
- Search for jpg images with 'dog' or 'Dog' in the name: `locate -i dog jpg`
- Search for videos: `plocate --regex '.mp4$|.mkv$|.wmv$|.webm$|.mov$|.avi$'`
For best results, run `updatedb` regularly, perhaps in [crontab](../system/cron.md).
## Search More Places
`plocate` will not search `/tmp/`, because nobody cares about those files, and won't search inside `/mnt/`, because that's where USB sticks get mounted, so the files keep changing as USB sticks come and go.
Change where `plocate` searches by editing the configuration file at `/etc/updatedb.conf`.
By default, the `/mnt` directory is 'pruned' from the database.
So if you want to search `/mnt` for videos, remove the word `/mnt` from the configuration file.
```bash
cat /etc/updatedb.conf
sudo sed 's#/mnt/##' /etc/updatedb.conf
sudo updatedb
plocate --regex '.mp4$|.mkv$|.wmv$|.webm$|.mov$|.avi$'
```
- [Search instantly with `plocate`](data/search_system.md)

@ -1,6 +1,6 @@
---
title: "time"
tags: [ "Basics" ]
tags: [ "Basics", "time" ]
---
# systemd

@ -1,57 +0,0 @@
---
title: "profanity"
tags: [ "Chat", "OTR" ]
---
# otr
'Off The Record' encryption seems mostly dead to me.
But this is what I did, back in the day...
Install libotr-dev or libotr5-dev or whatever..
```
sudo apt -y install lib5otr-dev
```
Make your otr keys.
```
/otr gen
```
Then you can start an otr converstation.
```
/otr start bob@jobbies.org
```
Or if you already have a conversation windows open, switch to our using:
```
/otr
```
Finally, verify!
```
/otr question "Who are you?" bob
```
Bob is verified upon the answer, 'bob'.
### OTR Finger Prints
Get yours with
```
/otr myfp
```
```
/otr theirfp
```
```
/otr myfp
```

@ -5,25 +5,25 @@ tags: [ "Chat" ]
See available pastebins:
```bash
```sh
wgetpaste -S
```
Upload script.sh to bpaste:
```bash
```sh
wgetpaste -s bpaste script.sh
```
Input clipboard to dpaste with the heading "Title"
```bash
```sh
wgetpaste -s dpaste -d Title -x
```
Paste in the file then load the result to the right-hand clipboard:
```bash
```sh
wgetpaste -s dpaste -X
```

@ -1,6 +1,6 @@
---
title: "Archives"
tags: [ "tar", "backups" ]
tags: [ "tar", "backups", ".tgz", "tar.gz" ]
---
# `tar`

@ -1,6 +1,6 @@
---
title: "unison"
tags: [ "Backups" ]
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,8 +1,11 @@
---
title: "PDF Metadata Erasure"
tags: [ "Metadata", "Ghost Script" ]
tags: [ "Metadata", "Ghost Script", "gs", ".pdf" ]
---
You cannot erase pdf metadata with `exiftool` (it only *appends* your changes).
To delete pdf metadata, you'll need `gs`.
Make a text file called 'pdfmark.txt'.

@ -1,6 +1,6 @@
---
title: "sc-im"
tags: [ "TUI", "data" ]
tags: [ "TUI", "data", "spreadsheet", ".csv" ]
---
- [Sample file](sc-im/sample.sc)

49
data/search_system.md Normal file

@ -0,0 +1,49 @@
---
title: "Search System"
tags: [ "data", "search", "locate", "plocate" ]
requires: "cron"
---
You can search every file on the computer instantly by installing `plocate`.
Once installed, run `sudo updatedb` to create the database of (nearly) every file on the computer.
Check how big the database is:
```sh
du -h /var/lib/plocate/plocate.db
```
Once you have the database, you can find nearly any file instantly.
- Search for gifs: `locate .gif`
- Search for gifs in the `/usr/` directory: `locate /usr/ .gif`
- Search for jpg images with 'dog' or 'Dog' in the name: `locate -i dog jpg`
- Search for videos: `plocate --regex '.mp4$|.mkv$|.wmv$|.webm$|.mov$|.avi$'`
For best results, run `updatedb` regularly, perhaps in [crontab](../system/cron.md).
## Search More Places
`plocate` will not search `/tmp/`, because nobody cares about those files, and won't search inside `/mnt/`, because that's where USB sticks get mounted, so the files keep changing as USB sticks come and go.
Change where `plocate` searches by editing the configuration file at `/etc/updatedb.conf`.
By default, the `/mnt` directory is 'pruned' from the database.
So if you want to search `/mnt` for videos, remove the word `/mnt` from the configuration file.
```bash
su root
cat /etc/updatedb.conf
sed -i 's#/mnt/##' /etc/updatedb.conf
updatedb
exit
```
Now you can search in `/mnt` for films:
```sh
plocate --regex '.mp4$|.mkv$|.wmv$|.webm$|.mov$|.avi$'
```

@ -1,6 +1,6 @@
---
title: "Soft Serve through https"
tags: [ "data", "git", "lfs" ]
tags: [ "data", "git server", "lfs" ]
---
## `http` Setup

@ -1,6 +1,6 @@
---
title: "timew"
tags: [ "Data" ]
title: "timewarrior"
tags: [ "Data", "tracking", "time", "timew" ]
---
# Summaries

@ -8,7 +8,7 @@ tags: [ "networking", "ssh", "android" ]
3. Open fdroid, and run:
```bash
```sh
pkg upgrade
pkg install busybox termux-services openssh openssh-sftp-server
source $PREFIX/etc/profile.d/start-services.sh

@ -6,19 +6,20 @@ tags: [ "distros" ]
Update font-cache:
```bash
```sh
su root
fc-cache
```
List fonts:
```bash
```sh
fc-list
```
Grab the part of the font name you need for Xresources:
```bash
```sh
fc-list | cut -d: -f2
```

@ -8,27 +8,27 @@ tags: [ "distros" ]
Messed up a package's configuration files?
```bash
```sh
sudo apt-get purge [thing]
```
```bash
```sh
sudo apt autoremove
```
Check if you still have related things:
```bash
```sh
apt search [thing]
```
```bash
```sh
sudo apt-get install [ thing ]
```
Still have problems?
```bash
```sh
sudo dpgk --force-confmiss -i /var/cache/apt/archives/[thing]
```

@ -4,15 +4,21 @@ 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.
> sudo sv stop wpa_supplicant bluetoothd
```sh
su root
sv stop wpa_supplicant bluetoothd
```
Find your device's name with `ip a`.
If unsure, try this:
> name=$(ip a | grep -Eo 'wlp\w{3}')
> echo $name
```sh
name=$(ip a | grep -Eo 'wlp\w{3}')
echo $name
```
Then set that device down:
> sudo ip link set $name down
```sh
ip link set $name down
```

@ -4,19 +4,19 @@ tags: [ "Void" ]
---
Monitor all processes:
```bash
```sh
extrace
```
Monitor one process:
```bash
```sh
extrace ls
```
Monitor a script:
```bash
```sh
./script.sh | extrace
```

@ -9,16 +9,17 @@ Jenkins is janky.
## Start
Start the service file.
```bash
sudo ln -s /etc/sv/jenkins /var/service
sudo sv start jenkins
```sh
su root
ln -s /etc/sv/jenkins /var/service
sv start jenkins
```
Then visit the web interface with `$BROWSER localhost:8080`.
If it's not working, try running the command from the run file the first time:
```bash
```sh
chpst -u jenkins java -jar /opt/jenkins/jenkins.war
```

@ -6,13 +6,13 @@ tags: [ "void", "locale" ]
Check the current locales:
```bash
```sh
locale -a
```
Add the languages you want by editing `/etc/default/libc-locales`, and uncommenting your choice:
```bash
```sh
#en_DK.UTF-8 UTF-8
#en_DK ISO-8859-1
en_GB.UTF-8 UTF-8
@ -25,13 +25,14 @@ Now you can generate what you need for those languages.
However, instead of generating what you need, you're going to generate everything which needs updating:
```bash
sudo xbps-reconfigure glibc-locales
```sh
su root
xbps-reconfigure glibc-locales
```
Finally, select your chosen locale by placing it in `/etc/locale.conf`.
```bash
```sh
echo "LC_ALL=en_GB.UTF-8
LANG=en_GB.UTF-8
LANGUAGE=en_GB.UTF-8" > /etc/locale.conf
@ -48,7 +49,7 @@ en_GB ISO-8859-1
Check your new locales are available:
```bash
```sh
locale -a
```

@ -1,6 +1,6 @@
---
title: "brightness"
tags: [ "hardware" ]
tags: [ "hardware", "laptop" ]
---
# Brightness

@ -4,9 +4,13 @@ tags: [ "hardware" ]
---
See screen size
> xrandr -q
```sh
xrandr -q
```
Automatically configure:
> xrandr --auto
```sh
xrandr --auto
```

@ -6,11 +6,11 @@ tags: [ "Sound" ]
Add your user to the audio group, and install `festival-english`.
```bash
```sh
echo "(Parameter.set 'Audio_Method 'Audio_Command)" >> /usr/share/festival/voices.scm
```
```bash
```sh
echo "(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")" /usr/share/festival/voices.scm
```

@ -1,6 +1,6 @@
---
title: "Makefiles"
tags: [ "system", "makefiles" ]
tags: [ "system", "make" ]
---
The `make` system wants to know:
@ -11,7 +11,7 @@ The `make` system wants to know:
Start with a basic test-area.
```bash
```sh
mkdir make_test ; cd $_
printf "%s:\n" README.md > Makefile
printf "\t%s\n" 'echo "Basic makefile example." > $@' >> Makefile
@ -32,8 +32,6 @@ README.md: Makefile
echo '```' >> $@
cat $< >> $@
echo '```' >> $@
```
Note the order:
@ -92,7 +90,7 @@ $(storage_directory)/README.md: README.md
Now you can tell `make` to create the backup:
```bash
```sh
make backups/README.md
```

@ -1,6 +1,6 @@
---
title: "Makefile Graphs"
tags: [ "system", "makefiles", "graph" ]
tags: [ "system", "make", "graph" ]
---
If you have `graph-easy` (often in the package `perl-graph-easy` or similar), you can make a graph from the makefile with `make2graph` (the package is often called `makefile2graph`).

@ -1,6 +1,6 @@
---
title: "Makefiles"
tags: [ "system", "makefiles", "help" ]
tags: [ "system", "make", "help" ]
---
Make your first target 'help' to give an overview of the main targets.

@ -1,7 +1,7 @@
---
title: "Makefile Patterns"
tags: [ "system", "makefiles" ]
tags: [ "system", "make" ]
---
Using the [basic example](../Makefile.md), you can make a complete backup of all backup files.
@ -27,7 +27,6 @@ backups/backup.tgz: backups/backup_29.md backups/backup_30.md
tar czf backups/backup.tgz backups/backup_29.md backups/backup_30.md
```
The phony `backup` target should now point to this tar backup.

@ -1,6 +1,6 @@
---
title: "awk"
tags: [ "System" ]
tags: [ "System", ".csv" ]
---
# Basics

@ -30,7 +30,7 @@ There are a bunch of files:
Goal: swap the word "Column" for "Alice" in all files.
```
```sh
IFS=$'\n'
for f in $(find . -name "Col*"); do
mv "$f" $(echo "$f" | sed s/Column/Alice/)

@ -1,26 +1,24 @@
---
title: "character-encoding"
tags: [ "System" ]
tags: [ "System", "encoding" ]
---
Convert a text file from one encoding type to another with:
```bash
```sh
iconv -f ascii -t utf8 oldfilename > newfilename
```
Available options are:
* ISO-8859-15
* UTF-8
* ASCII
* Lots more
- ISO-8859-15
- UTF-8
- ASCII
- Lots more
Generate a full list of encoding types available with:
```bash
```sh
iconv -l
```

@ -1,6 +1,6 @@
---
title: "deduplicate"
tags: [ "system", "deduplicate", "duplicates", "maintenance" ]
tags: [ "system", "deduplicate", "maintenance", "storage" ]
---
`rdfind`: find duplicate files, then delete them, or turn them into links.

@ -1,27 +1,24 @@
---
title: "$EDITOR"
tags: [ "System" ]
tags: [ "system" ]
---
The System's default text editor can be defined within /etc/profile. It's given the variable `EDITOR`.
Add these lines to `/etc/profile.d/local.sh`:
```
export EDITOR=vim
export VISUAL=$EDITOR
Add these lines to `/etc/profile.d/custom.sh`:
```sh
echo 'export EDITOR=vim' >> /etc/profile.d/custom.sh
echo 'export VISUAL=$EDITOR' >> /etc/profile.d/custom.sh
```
Then reload that profile with:
```bash
```sh
source /etc/profile
```
If you want to ensure `nano` never appears again:
```bash
```sh
sudo ln -sf $(which vim) $(which nano)
```

@ -1,6 +1,6 @@
---
title: "fstab"
tags: [ "System" ]
tags: [ "system", "disk" ]
---
# Basics
@ -29,7 +29,7 @@ Ignore this obsolete option.
## 6: Pass
| Number | Meaning |
| | |
|:------:|:---------------------:|
| 0 | Swap (or not mounted) |
| 1 | Mount at / |
| 2 | Mount somewhere else |
@ -37,5 +37,5 @@ Ignore this obsolete option.
## Options
- `nofail` means the computer will not fail to boot, even if the drive fails, or is unplugged. It's a good option for everything except `/`.
- noauto means 'don't mount on boot' (but you can still mount with `mount -a`).
- `noauto` means 'don't mount on boot' (but you can still mount with `mount -a`).

@ -1,41 +1,41 @@
---
title: "kernel"
tags: [ "System" ]
tags: [ "system" ]
---
Check which kernet modules are loaded into memory
```bash
sudo /sbin/lsmod
Check which kernel modules are loaded into memory:
```sh
su root
/sbin/lsmod
```
Check which virtual box modules are loaded into memory
```bash
sudo /sbin/lsmod | grep vbox
```sh
/sbin/lsmod | grep vbox
```
Virtual box is using vboxpci, vboxnetadp, vboxnetflt, vboxdr.
Look at what's claiming wifi:
```bash
sudo lshw -C network
```sh
lshw -C network
```
If this shows that the device is 'unclaimed' then it's time to add a module, e.g. ath9k.
```bash
sudo modprobe ath9k
```sh
modprobe ath9k
```
Modules can also be 'restarted' by removing and adding them, e.g. the video module, 'uvcvideo':
```bash
sudo rmmod uvcvideo
```sh
rmmod uvcvideo
```
```bash
sudo modprobe uvcvideo
```sh
modprobe uvcvideo
```

@ -1,6 +1,6 @@
---
title: "lf - The Light File Manager"
tags: [ "File Browser" ]
tags: [ "File Browser", "TUI" ]
---
## Config File

@ -1,6 +1,6 @@
---
title: "mdadm"
tags: [ "RAID" ]
tags: [ "RAID", "disk" ]
---
# RAID5

@ -15,6 +15,7 @@ Show memory usage in Gibitytes.
```bash
free -g
```
Show low and high gigibtye usage on a *l*ine, and repeat the measurement every 5 seconds:
```bash

@ -2,10 +2,12 @@
title: "partitions"
tags: [ "System" ]
---
# FDisk Basics
```bash
sudo fdisk /dev/sda
```sh
su root
fdisk /dev/sda
```
- m for help.
@ -31,20 +33,20 @@ fdisk will not help with a GPT formatted drive. For this, use gdisk, which is m
Now that we have a partition, we can make it into a fileSystem. Most will use:
```bash
sudo mkfs -t ext4 /dev/sdc1
```sh
mkfs -t ext4 /dev/sdc1
```
or if you're making a swap partition, you can use:
```bash
sudo mkswap /dev/sdb2
```sh
mkswap /dev/sdb2
```
or for the reiser fileSystem, we can use:
```bash
sudo mkreiserfs /dev/sdc2
```sh
mkreiserfs /dev/sdc2
```
# File System Types
@ -61,86 +63,86 @@ sudo mkreiserfs /dev/sdc2
# Parted
```bash
sudo parted /dev/sdb
```sh
parted /dev/sdb
```
# Monitoring
Look at physical and virtual partitions:
```bash
```sh
df -h
```
or divide things by inode - the thing which records where files are?
```bash
```sh
df -i
```
Examine a fileSystem with:
```bash
sudo dumpe2fs /dev/sda1 | less
```sh
dumpe2fs /dev/sda1 | less
```
# Prevention
There are multiple programs which work mostly the same way.
```bash
sudo tune2fs -c 30 /dev/sda1
```sh
tune2fs -c 30 /dev/sda1
```
This will check sda1 every 30 boots. It can also be checked every month.
```bash
sudo tune2fs -i 1m /dev/sda1
```sh
tune2fs -i 1m /dev/sda1
```
This thing can also make a new label for the System:
```bash
sudo tune2fs -L new_name /dev/sdb3
```sh
tune2fs -L new_name /dev/sdb3
```
# Repair
Start by unmounting the fileSystem.
```bash
sudo umount /dev/sdc1
```sh
umount /dev/sdc1
```
Then it's time to check.
```bash
sudo fsck /dev/sdc1
```sh
fsck /dev/sdc1
```
And possibly repair damage:
```bash
```sh
e2fsck -p /dev/sdc1
```
or the same with:
```bash
sudo debugfs /dev/sdc1
```sh
debugfs /dev/sdc1
```
# Mounting
You can mount with a specified filetype with:
```bash
sudo mount -t ext3 /dev/sdc2 /mnt/stick
```sh
mount -t ext3 /dev/sdc2 /mnt/stick
```
or if you don't know the type, just try the lot:
```bash
sudo mount -a /dev/sdc1 /mnt/stick
```sh
mount -a /dev/sdc1 /mnt/stick
```
# File Systems
@ -152,35 +154,35 @@ NB: When I followed these instructions, the process destroyed my data. Seemed fi
Check the fileSystem's health:
```bash
sudo e2fsck -f /dev/sdb1
```sh
e2fsck -f /dev/sdb1
```
Resize the file System to something smaller than what you want, so here I want 500G and so I resize to 450 G.
```bash
```sh
resize2fs /dev/sdb1 450G
```
Then delete the partition with either gdisk or fdisk, depending upon the layout.
```bash
sudo fdisk /dev/sdb
```sh
fdisk /dev/sdb
```
```bash
```sh
d
```
Then make a new fileSystem of the desired type with:
```bash
```sh
n
```
And finally resize to the full size you want:
sudo resize2fs /dev/sdb1
resize2fs /dev/sdb1
And then check your disk again with e2fsck.
@ -193,20 +195,18 @@ Let's start with names. PV = 'Physical Volume', VG = 'Volume Group', and LV = '
Now we can create a volume group out of sdb2 and sdc3:
```bash
sudo vgcreate my-new-vg /dev/sdb2 /dev/sdc3
```sh
vgcreate my-new-vg /dev/sdb2 /dev/sdc3
```
Then make a new logical volume out of the volume group:
```bash
sudo lvcreate -n my-new-lv my-new-vg
```sh
lvcreate -n my-new-lv my-new-vg
```
Then have a look at all logical volumes:
```bash
sudo lvscan
```sh
lvscan
```

@ -4,49 +4,47 @@ tags: [ "basics" ]
---
# Making a Swap File
```bash
```sh
su root
cd /var/cache/
```
```bash
sudo dd if=/dev/zero of=swapfile bs=1K count=4M
dd if=/dev/zero of=swapfile bs=1K count=4M
```
This creates a swapfile of (1k x 4M) 4 Gigs.
Change 4M to XM for an XGig swap.
```bash
sudo chmod 600 swapfile
```sh
chmod 600 swapfile
```
```bash
sudo mkswap swapfile
```sh
mkswap swapfile
```
```bash
sudo swapon swapfile
```sh
swapon swapfile
```
Test it's working with top
```bash
```sh
top -bn1 | grep -i swap
```
or:
```bash
echo "/var/cache/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
```sh
echo "/var/cache/swapfile none swap sw 0 0" | tee -a /etc/fstab
```
Test it'll work at boot with:
```bash
sudo swapoff swapfile
```sh
swapoff swapfile
```
```bash
sudo swapon -va
```sh
swapon -va
```
# Partition Swaps
@ -57,13 +55,13 @@ Put this in /etc/fstab:
Then test it works with:
```bash
sudo swapon -va
```sh
swapon -va
```
Test other partitions in fstab with:
```bash
sudo mount -a
```sh
mount -a
```

@ -1,10 +1,10 @@
---
title: "tmux"
tags: [ "System" ]
tags: [ "system" ]
---
Start with:
```bash
```sh
tmux
```
@ -34,21 +34,21 @@ In addition to Windows, there are panes.
Crate a new session with the name 'backup'.
```bash
```sh
tmux new -s backup
```
List sessions:
```bash
```sh
tmux list-sessions
```
```bash
```sh
tmux kill-session -t 2
```
```bash
```sh
tmux attach -t backup
```

@ -2,21 +2,21 @@
title: "Docker"
tags: [ "documentation", "Virtualization" ]
---
```bash
```sh
sudo pacman -S docker
```
```bash
```sh
sudo usermod -aG docker $USER
```
```bash
```sh
sudo systemctl start docker
```
You need to either log out and back in again to be in the docker group, or run everything as root.
```bash
```sh
# docker info
```
@ -24,19 +24,19 @@ This should show you things are working.
Search for a distro you want
```bash
```sh
docker search debian
```
If you get a hit, pull it.
```bash
```sh
docker pull debian
```
Then run a live image:
```bash
```sh
docker run -it debian
```
@ -44,13 +44,13 @@ docker run -it debian
Check currently running containers with
```bash
```sh
docker ps
```
Check all containers with
```bash
```sh
docker ps -a
```
@ -58,7 +58,7 @@ Now we can get a list of all containers.
To delete one, take the id, e.g. '97796727e883', and run:
```bash
```sh
docker rm 97796727e883
```
@ -66,7 +66,7 @@ docker rm 97796727e883
Get a list of docker container ips
```bash
```sh
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' *container_name_or_id*
```

@ -6,27 +6,27 @@ tags: [ "System" ]
## Arch Linux
```bash
```sh
sudo pacman -S virtualbox-host-modules-arch virtualbox-guest-iso
```
```bash
```sh
sudo modprobe vboxdrv
```
```bash
```sh
# vboxreload
```
Make dd image into vdi
```bash
```sh
VBoxManage convertdd base.dd output.vdi --format VDI
```
If this doesn't work, try to make a new bite size with just
```bash
```sh
sudo dd if=image.dd of=image2.dd bs=512 conv=sync
```
@ -34,19 +34,19 @@ sudo dd if=image.dd of=image2.dd bs=512 conv=sync
List boxes:
```bash
```sh
VBoxManage list vms
```
Start a headless instance
```bash
```sh
VBoxManage startvm "rata" --type headless
```
To pause the machine:
```bash
```sh
VBoxManage controlvm "rata" pause --type headless
```
@ -64,15 +64,15 @@ You can do a number of things to virtualboxes this way:
Creating a VM requires registering it:
```bash
```sh
VBoxManage createvm --name Ubuntu19.04 --register --ostype Ubuntu
```
```bash
```sh
VBoxManage modifyvm Ubuntu19.04 --memory 1042
```
```bash
```sh
VBoxManage storagectl Ubuntu19.04 -name IDE --add ide --controller PIIX4 --bootable on
```

@ -5,15 +5,15 @@ tags: [ "xe", "virtualization", "volume" ]
# Make a local iso repository
```bash
```sh
STORE_PATH=/var/opt/xen/ISO_Store
```
```bash
```sh
mkdir -p $STORE_PATH
```
```bash
```sh
xe sr-create name-label="$STORAGE_NAME" type=iso device-config:location=$STORE_PATH device-config:legacy_mode=true content-type=iso
```
@ -23,7 +23,7 @@ This creates a UUID for the new directory:
# Main Console
```bash
```sh
xsconsole
```
@ -31,13 +31,13 @@ xsconsole
List volumes:
```bash
```sh
lvs
```
List groups:
```bash
```sh
vgs
```

@ -5,21 +5,21 @@ tags: [ "Markdown", "PDF", "Vision" ]
Turn a markdown file into a pdf:
```bash
```sh
lowdown -stms "$FILE".md | pdfroff -itk -mspdf > "$FILE".pdf
```
*Example:* put [this Makefile](lowdown/example.txt) in a directory, rename it `Makefile`, then do:
```bash
```sh
make example
make
```
To give the document a title, put that title in the metadata:
```bash
```sh
sed -i "1 i---" "$FILE".md
sed -i "1 ititle: $TITLE" "$FILE".md
sed -i "1 i---" "$FILE".md