diff --git a/basics/ls.md b/basics/ls.md new file mode 100644 index 0000000..5974eb2 --- /dev/null +++ b/basics/ls.md @@ -0,0 +1,46 @@ +--- +title: "ls" +tags: [ "basics" ] +--- + +Firstly, your `ls` is probably aliased to something. + +Check it with: + + +```bash +alias ls +``` +If the prompt shows some alias, then start by removing it: + + +```bash +unalias ls +``` + +Now we can begin. + +Check the most recently modified file: + + +```bash +ls -t +``` + +Reverse this with `tac` to see the file which has been unmodified the longest: + + +```bash +ls -t | tac +``` +Group files by extension: + +```bash +ls -X +``` +Sort largest files first: + +```bash +ls -X +``` + diff --git a/basics/tree.md b/basics/tree.md new file mode 100644 index 0000000..1aa08d3 --- /dev/null +++ b/basics/tree.md @@ -0,0 +1,25 @@ +--- +title: "tree" +tags: [ "basics" ] +--- + +The `tree` utility outputs a full listing of everything in your current directory, and those below. + +- Just directories: `tree -d` +- Output colour to `less`: `tree -C --info | less -re` +- Ignore files in the `.gitignore` file: `tree --gitignore` + +You can place information about the files in a directory to use with the `tree --info` option, like this: + +``` +config + Config files. + This is a git submodule. +README.md + Summary of the git. +*.jpg + Little picture, does not display + words well. +``` + +Each description-line starts with a tab. diff --git a/data/email.md b/data/email.md new file mode 100644 index 0000000..fbcbc57 --- /dev/null +++ b/data/email.md @@ -0,0 +1,73 @@ +--- +title: "e-mail" +tags: [ "data", "smtp" ] +--- + +This is bare-bones, original, primitive e-mail. + +Install `opensmtpd` (or similar), then `ncat` or `nc` or `netcat` (this mysterious cat has many names). + +Start the `opensmtpd` service, then use netcat to speak with the mail-daemon: + + +``` +nc localhost 25 +``` +The computer should respond with code `220`, which means 'I am listening'. + +> 220 hex ESMTP OpenSMTPD + +``` +HELO gmail.com +``` + +You say `HELO` and say where you are coming from. + + +The `smtpd` will not check, so I am going to lie to it. +Mail servers are easily impressed, so it will be pleased to meet you. + +> 250 hex Hello gmail.com [::1], pleased to meet you + +``` +MAIL FROM: +``` + +All the mail commands start with 4 bytes, because it's easier for admins to program. +Tell the mail daemon who you are in this format. + +> 250 2.0.0 Ok + +Then tell it who you're sending to. + +``` +RCPT TO: +``` + +> 250 2.1.5 Destination address valid: Recipient ok + +Finally, tell it that you want to send `DATA`. + +``` +DATA +``` + +> 354 Enter mail, end with "." on a line by itself + +``` +Subject: turn off server please + +very urgent +. +``` + +> 250 2.0.0 73864a49 Message accepted for delivery + +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 +sudo grep -r $FRAGMENT /var/spool/* + ``` + diff --git a/data/gpg.md b/data/gpg.md index ec1704f..4402f79 100644 --- a/data/gpg.md +++ b/data/gpg.md @@ -82,7 +82,7 @@ This is a fingerprint. You can now decide the trust level (this stays on your computer). ```bash -gpg --edit-key *CD30421FD825696BD95F1FF644C62C57B790D3CF* +gpg --edit-key CD30421FD825696BD95F1FF644C62C57B790D3CF ``` Once you're in the interface, type `trust`. @@ -91,29 +91,52 @@ Once you're in the interface, type `trust`. gpg --sign-key alice@posteo.net ``` -Then send those trusted keys up to a server, so people can see you have verified them: +# Swapping Keys + +This system relies on a ring of people swapping key information. + +## Sending + +Send those trusted keys up to a server, so people can see you have verified them: ```bash -gpg --send-keys *024C6B1C84449BD1CB4DF7A152295D2377F4D70F* +gpg --send-keys 024C6B1C84449BD1CB4DF7A152295D2377F4D70F +``` + +## Upload Your Keys + +## Add More Key Servers + +Key servers often swap keys, but it's best to just send to multiple places immediately. +You can add key servers by adding this to `~/.gnupg/gpg.conf`. + +``` +keyserver hkps://keys.openpgp.org +keyserver hkps://mail-api.proton.me +keyserver hkps://keys.mailvelope.com ``` # Refresh Keys +Refreshing keys will tell you if some key you have contains a signature from someone you already trust, or if someone has published a revocation certificate (meaning their key should not be trusted any more). + ```bash gpg --refresh-keys ``` +You can use the [crontab](../basics/cron.md) to refresh keys. + # Export Your public key: ```bash -gpg --output *me*.gpg --armor --export +gpg --output me.gpg --armor --export ``` or ```bash -gpg --export -a *person@email.tld* > *my_key*.pub +gpg --export -a person@email.tld > my_key.pub ``` diff --git a/distros/void/locale.md b/distros/void/locale.md new file mode 100644 index 0000000..a3fe25c --- /dev/null +++ b/distros/void/locale.md @@ -0,0 +1,54 @@ +--- +title: "locales" +tags: [ "void" ] +--- + +Check the current locales: + + +```bash +locale -a +``` + +Add the languages you want by editing `/etc/default/libc-locales`, and uncommenting your choice: + +```bash +#en_DK.UTF-8 UTF-8 +#en_DK ISO-8859-1 +en_GB.UTF-8 UTF-8 +en_GB ISO-8859-1 +#en_HK.UTF-8 UTF-8 +#en_HK ISO-8859-1 +``` + +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 +``` + +Finally, select your chosen locale by placing it in `/etc/locale.conf`. + +```bash +echo "LC_ALL=en_GB.UTF-8 +LANG=en_GB.UTF-8 +LANGUAGE=en_GB.UTF-8" > /etc/locale.conf + + +#en_DK.UTF-8 UTF-8 +#en_DK ISO-8859-1 +en_GB.UTF-8 UTF-8 +en_GB ISO-8859-1 +#en_HK.UTF-8 UTF-8 +#en_HK ISO-8859-1 +``` + +Check your new locales are available: + + +```bash +locale -a +``` + diff --git a/networking/ssh.md b/networking/ssh.md new file mode 100644 index 0000000..ffb3f17 --- /dev/null +++ b/networking/ssh.md @@ -0,0 +1,89 @@ +--- +title: "ssh" +tags: [ "networking" ] +--- +# Basic `ssh` + +Try out basic ssh by accessing `git.charm.sh`, without needing authentication: + + +```bash +ssh git.charm.sh +``` + +Start an ssh server to try it out. +The ssh server is sometimes in a package called `openssh`, and sometimes only in `openssh-server`. + +Once it's installed, check it's working: + +```bash +sudo systemctl status ssh +``` + +If that doesn't work, the service may be called `sshd`. + +```bash +sudo systemctl status sshd +``` + +Then start that service: + +```bash +sudo systemctl start sshd +``` +Test it works by using ssh into your own system, from inside: + + +```bash +ssh $USER@localhost +``` + +Access the computer from another computer on the same local network by finding your computer's IP address. + + +```bash +ip address | grep inet +``` + +Here is mine: + + +> inet 127.0.0.1/8 scope host lo +> +> inet6 ::1/128 scope host noprefixroute +> +> inet 192.168.0.12/24 brd 192.168.0.255 scope global dynamic noprefixroute en + + +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 third will work from a remote computer. + + +```bash +ssh $USERNAME@IP_ADDRESS +``` + +Once you have that, generate some ssh keys: + +```bash +ssh-keygen +``` + +Look at your keys: + + +```bash +ls ~/.ssh +``` + +You can share the one ending in `.pub` freely. +The other is secret. + +Now send those keys to a remote computer: + +```bash +ssh-copy-id $USERNAME@IP_ADDRESS +``` + +Now you can log in without a password. diff --git a/system/cron.md b/system/cron.md new file mode 120000 index 0000000..2f0527b --- /dev/null +++ b/system/cron.md @@ -0,0 +1 @@ +../basics/cron.md \ No newline at end of file diff --git a/vim/vim_in_bash.md b/vim/vim_in_bash.md new file mode 100644 index 0000000..e045510 --- /dev/null +++ b/vim/vim_in_bash.md @@ -0,0 +1,19 @@ +--- +title: "vim in bash" +tags: [ "vim", "bash", "inputrc" ] +--- + +Put bash in vim mode! + +Place the following in your `~/.inputrc`: + +```bash +set editing-mode vi +set show-mode-in-prompt on +set vi-ins-mode-string \1\e[33;32m\2[>]=\1\e[0m\2 +set vi-cmd-mode-string \1\e[33;1m\2[?]=\1\e[0m\2 + +set keymap vi-insert +RETURN: "\e\n" +``` +