Compare commits

..

10 Commits

Author SHA1 Message Date
7f9de785df record terminal with script 2025-10-31 17:20:37 +01:00
723024db0b ansible notes 2025-10-21 23:54:30 +02:00
8ec1d53ea4 arch: timid installations 2025-10-14 17:19:22 +02:00
8ef34f8a1f Merge remote-tracking branch 'soft/master' into dev 2025-10-14 16:07:02 +02:00
1dbc97209e split yay and pacman 2025-10-14 15:34:22 +02:00
594107c252 allow new article path 2025-10-12 08:01:00 +02:00
89238fa9eb measuring tex packages 2025-09-02 23:00:10 +02:00
57a1b027ed kube notes 2025-09-02 22:58:49 +02:00
2cff9f47ea [Vim] nano alternative 2025-08-31 22:45:22 +02:00
0a41f6b65a [Archlinux] pacman, yay, faillock 2025-08-31 22:42:20 +02:00
13 changed files with 241 additions and 22 deletions

View File

@@ -4,6 +4,12 @@ EDITOR ?= vi
FZF != command -v sk || command -v fzy || command -v fzf || \ FZF != command -v sk || command -v fzy || command -v fzf || \
{ echo install a fuzzy finder && exit 1 ;} { echo install a fuzzy finder && exit 1 ;}
ifeq "$(FZF)" "/usr/bin/fzy"
FZF += -i
else
FZF += --print-query | cat
endif
spill_contents = sed -e '1,/---/d' spill_contents = sed -e '1,/---/d'
help: .git/info/exclude ## Print the help message help: .git/info/exclude ## Print the help message
@@ -72,6 +78,7 @@ article: ## Write an article
@path=$$(find $(categories) -type d | sort | uniq | $(FZF)) ;\ @path=$$(find $(categories) -type d | sort | uniq | $(FZF)) ;\
read -p "Title: " title ;\ read -p "Title: " title ;\
filename="$$(echo "$$title" | tr '[:upper:]' '[:lower:]' | tr ' ' '_')" ;\ filename="$$(echo "$$title" | tr '[:upper:]' '[:lower:]' | tr ' ' '_')" ;\
mkdir -p $$path ;\
printf '%s\n' '---' >> $$path/$$filename.md ;\ printf '%s\n' '---' >> $$path/$$filename.md ;\
printf 'title: "%s"\n' "$$title" >> $$path/$$filename.md ;\ printf 'title: "%s"\n' "$$title" >> $$path/$$filename.md ;\
printf 'tags: [ "%s" ]\n' "$$path" | tr '[:upper:]' '[:lower:]' | sed 's#\/#", "#g' >> $$path/$$filename.md ;\ printf 'tags: [ "%s" ]\n' "$$path" | tr '[:upper:]' '[:lower:]' | sed 's#\/#", "#g' >> $$path/$$filename.md ;\

View File

@@ -14,7 +14,6 @@ sudo systemctl edit getty@tty1
The put in the following, changing `[ USER ]` to your username. The put in the following, changing `[ USER ]` to your username.
``` ```
[Service] [Service]
ExecStart= ExecStart=
ExecStart=-/usr/bin/agetty --autologin [ USER ] -s %I 115200,38400,9600 vt102 ExecStart=-/usr/bin/agetty --autologin [ USER ] -s %I 115200,38400,9600 vt102
@@ -25,9 +24,22 @@ ExecStart=-/usr/bin/agetty --autologin [ USER ] -s %I 115200,38400,9600 vt102
In `.bashrc`. In `.bashrc`.
``` ```sh
if [ -z "$DISPLAY" ] && [ "$(fgconsole)" -eq 1 ]; then if [ -z "$DISPLAY" ] && [ "$(fgconsole)" -eq 1 ]; then
exec startx exec startx
fi fi
``` ```
# Faillock reset
After failing 3 times to enter the password, archlinux would ussualy lock entering the password for 10 minutes, not all apps and guis display this message, so sometimes it can be a bit confusing. To reset this lockdown, you can login as root and restart it manually with command
``` sh
failock --reset
```

View File

@@ -1,5 +1,5 @@
--- ---
title: "basic-install" title: "Install Arch"
tags: [ "arch" ] tags: [ "arch" ]
requires: [ "partitions", "time" ] requires: [ "partitions", "time" ]
--- ---

View File

@@ -0,0 +1,27 @@
---
title: "Install yay"
tags: [ "distros", "arch" ]
requirements: [ "pacman" ]
---
```sh
pacman --sync --noconfirm --needed base-devel gcc git
git clone https://aur.archlinux.org/yay.git /tmp/yay
makepkg -C !$ -si
```
The flags are mostly the same as in `pacman`.
But running `yay` without flags will do the update like `yay -Syu` and with package name it will search packages in the AUR and `pacman` repos, and let you choose which to install.
```sh
yay <search_term>
```
Building the package can usually take some time, and after the build it will ask for the `sudo` password.
If you leave, the installation will fail.
To avoid this, you can use the flag `--sudoloop` and enter the sudo password initially and it will loop it until the installation is finished.
```sh
yay -S --noconfirm --sudoloop <package_name>
```

View File

@@ -1,6 +1,7 @@
--- ---
title: "Maintenance" title: "Arch Maintenance"
tags: [ "arch" ] tags: [ "arch" ]
requirements: [ "pacman" ]
--- ---
# Package Cache # Package Cache
@@ -12,15 +13,6 @@ ls /var/cache/pacman/pkg/ | wc -l
sudo pacman -Sc sudo pacman -Sc
ls /var/cache/pacman/pkg/ | wc -l ls /var/cache/pacman/pkg/ | wc -l
``` ```
And the same for `yay` (with `-Yc` to remove old dependencies):
```sh
ls ~/.cache/yay/ | wc -l
yay -Sc
yay -Yc
ls ~/.cache/yay/ | wc -l
```
# New Configs # New Configs
If you chance a configuration file, such as `/etc/environment`, and `pacman` wants to update the file, it will place `/etc/environment.pacnew`. If you chance a configuration file, such as `/etc/environment`, and `pacman` wants to update the file, it will place `/etc/environment.pacnew`.
@@ -41,10 +33,7 @@ sudo -e /etc/pacman.d/mirrorlist
sudo rm /etc/pacman.d/mirrorlist.pacnew sudo rm /etc/pacman.d/mirrorlist.pacnew
``` ```
Or, Or use a tool like `pacdiff` to view the changes next to each other, and select them with `vim`.
- use a tool like `pacdiff` to view the changes next to each other, and select them with `vim`.
```sh ```sh
sudo pacman -S pacman-contrib sudo pacman -S pacman-contrib

View File

@@ -1,6 +1,7 @@
--- ---
title: "pacman" title: "pacman"
tags: [ "distros" ] tags: [ "distros" ]
requirements: [ "Install Arch" ]
--- ---
Packages are kept in /var/cache/pacman/pkg. Packages are kept in /var/cache/pacman/pkg.
@@ -19,7 +20,9 @@ sudo pacman-key --populate archlinux
And refreshed with: And refreshed with:
```sh
sudo pacman-key --refresh-keys sudo pacman-key --refresh-keys
```
If you have usigned keys, you can refresh with: If you have usigned keys, you can refresh with:
@@ -48,7 +51,13 @@ sudo pacman -S archlinux-keyring
List all orphaned packages: List all orphaned packages:
```sh ```sh
sudo pacman -Qtdq pacman -Qtdq
```
Removing a package:
```sh
sudo pacman -Rn <package_name>
``` ```
## Cleaning Config Files ## Cleaning Config Files
@@ -61,3 +70,4 @@ These changes must be merge manually.
Install the `pacdiff` tool to make this easier, from the `pacman-contrib` package, then simply run `sudo pacdiff` to sort through the various mergers. Install the `pacdiff` tool to make this easier, from the `pacman-contrib` package, then simply run `sudo pacdiff` to sort through the various mergers.

View File

@@ -0,0 +1,29 @@
---
title: "pacman - Extras"
tags: [ "distros" ]
requirements: [ "pacman" ]
---
## Unattended Actions
```sh
pacman -Syu --noconfirm
```
## `pacman` and `yay` Text Colouring
Getting the colors is done by editing the `/etc/pacman.conf` and uncommenting the line `Color`.
By adding the line `ILoveCandy` you will unlock some terminal animations, like pacman eating dots while installing some package.
## Timid Installations
Want to try out software, but not sure if you want to keep it?
You can tell `pacman` that this is a dependency for another package:
```sh
pacman -S --noconfirm --asdeps <weird music player>
```
When you [remove orphaned packages](pacman.md), the package will be automatically uninstalled.

View File

@@ -0,0 +1,22 @@
---
title: "Arch Maintenance with yay"
tags: [ "arch" ]
requirements: [ "Arch Maintenance" ]
---
# Package Cache
Just like `pacman`
```sh
ls ~/.cache/yay/ | wc -l
yay -Sc
```
Use `-Yc` to remove old dependencies:
```sh
yay -Yc
ls ~/.cache/yay/ | wc -l
```

View File

@@ -14,12 +14,27 @@ Say 'hello' to yourself:
ansible --module-name=ping localhost ansible --module-name=ping localhost
``` ```
Ansible takes a lot of information about each machine during setup:
```sh
TMP=$(mktemp)
ansible --module-name=setup localhost | tee $TMP
less !$
```
If you have `jq`, you can pull out info:
```sh
sed -i 's/.*SUCC.*/{/' $TMP
jq '.ansible_facts.ansible_distribution' < $TMP
```
Upgrade through the package manager. Upgrade through the package manager.
`packager=apt` (or `pacman` or `xbps`,...) `packager=apt` (or `pacman` or `xbps`,...)
```sh ```sh
packager=apt packager="$( jq -r '.ansible_facts.ansible_pkg_mgr' < $TMP )"
ansible --module-name=${packager} --args "upgrade=yes" localhost ansible --module-name=${packager} --args "upgrade=yes" localhost
``` ```
@@ -87,4 +102,8 @@ ansible-inventory --list -y -i
ansible-vault view sec.yml --vault-pass-file pass.sh ansible-vault view sec.yml --vault-pass-file pass.sh
``` ```
community.general.say voice=en_GB msg="Testing 123" Install `espeak', then make the computer say something:
```sh
ansible --module-name=say --args "msg='testing'" localhost
```

View File

@@ -113,6 +113,25 @@ Events:
Pod copies are called a 'replicaset'. Pod copies are called a 'replicaset'.
```bash
$ kubectl exec $POD_NAME -- env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=stupendously-verbose-podish-nomenclature-jvguenaqbz-punenpgref
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
NPM_CONFIG_LOGLEVEL=info
NODE_VERSION=6.3.1
HOME=/root
```
# Create # Create
Create a 'deployment' of `nginx`. Create a 'deployment' of `nginx`.

71
vision/record_terminal.md Normal file
View File

@@ -0,0 +1,71 @@
---
title: "Record a Terminal Session"
tags: [ "vision", "share" ]
---
Record a terminal command, then press 'Control + d' to exit.
```sh
script --timing=time.log stat.txt
ls -a
ls -al
stat ~/.bashrc
^D
```
Replay the session:
```sh
scriptreplay --timing=time.log stat.txt
```
Try a bare command, without any timing:
```sh
script -c 'top | lolcat' loltop
nl loltop
```
Has your terminal messed up?
Is the cursor hiding?
Reset it!
```sh
reset
```
If you can't see any keys, keep typing anyway: have faith in your terminal.
This `loltop` file will not play properly as it has no timings file.
But you can cheat the system and use your other timings file:
```sh
scriptreplay --timing=time.log loltop
```
This will mostly not work well, but it shows how the timing file works:
```text
0.033401 23
0.044513 8
0.000016 219
1.349324 114
0.179106 1
0.088790 1
0.072821 1
0.358337 2
0.000254 9
0.004720 52
0.000084 21
0.155462 671
```
I think it works like this?
| How long it took | to type *n* characters |
|:----------------:|:----------------------:|
| 0.033401 | 23 |
| 0.044513 | 8 |
| 0.000016 | 219 |
| 1.349324 | 114 |

View File

@@ -51,7 +51,6 @@ Search packages:
```sh ```sh
tlmgr search --global epstopdf tlmgr search --global epstopdf
``` ```
Can't find what you need? Can't find what you need?
Search for a specific file instead: Search for a specific file instead:
@@ -60,8 +59,16 @@ tlmgr search --global --file epstopdf-base.sty
sudo tlmgr install epstopdf-pkg sudo tlmgr install epstopdf-pkg
``` ```
## Recommended Packages Check how many unique licences LaTeX packages use:
```sh
tlmgr info --list --json
jq -r '.[].cataloguedata.license' < tex.json | sort | uniq | wc -l
```
Please remember: the world does not need any more licences.
## Recommended Packages
``` ```
latexmk latexmk

View File

@@ -3,6 +3,13 @@ title: "vim basics"
tags: [ "vim", "basic" ] tags: [ "vim", "basic" ]
--- ---
## Instant nano replacement
`vim -y` - will start vim but like other editors like nano, there will be syntax highlighting, etc
Keybind to exit this mode is `Ctrl+q`
## Steps
1. Insert text by pressing `a`. 1. Insert text by pressing `a`.
1. Stop inserting text by pressing `Ctrl+[`. 1. Stop inserting text by pressing `Ctrl+[`.
1. Exit with `ZZ`. 1. Exit with `ZZ`.