diff --git a/3d-printing/index.html b/3d-printing/index.html index 9021c87927..ac16c9cc60 100644 --- a/3d-printing/index.html +++ b/3d-printing/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/404.html b/404.html index 6b2a164f82..358b7e7858 100644 --- a/404.html +++ b/404.html @@ -6825,6 +6825,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/airflow/index.html b/airflow/index.html index 46ea726b93..a4d189578f 100644 --- a/airflow/index.html +++ b/airflow/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/airport/index.html b/airport/index.html index 6eb40e5ad7..031d265b6d 100644 --- a/airport/index.html +++ b/airport/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/amazon/index.html b/amazon/index.html index 0009a62716..c7d965285f 100644 --- a/amazon/index.html +++ b/amazon/index.html @@ -6987,6 +6987,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/android/index.html b/android/index.html index a3f001e33e..f85b3c8d89 100644 --- a/android/index.html +++ b/android/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ansible/index.html b/ansible/index.html index 388fa3f60f..c35b035ee3 100644 --- a/ansible/index.html +++ b/ansible/index.html @@ -7026,6 +7026,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/apfs/index.html b/apfs/index.html index 579320a7ae..9f68d72eca 100644 --- a/apfs/index.html +++ b/apfs/index.html @@ -6981,6 +6981,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/aptly/index.html b/aptly/index.html index 34b8261ec3..e0610d1602 100644 --- a/aptly/index.html +++ b/aptly/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/aria2/index.html b/aria2/index.html index 7c6749c07e..76514f4212 100644 --- a/aria2/index.html +++ b/aria2/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/arpwatch/index.html b/arpwatch/index.html index 57dcc657c2..a660673888 100644 --- a/arpwatch/index.html +++ b/arpwatch/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/atomicparsley/index.html b/atomicparsley/index.html index 0455aa871b..baaafa2e19 100644 --- a/atomicparsley/index.html +++ b/atomicparsley/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/automotive/index.html b/automotive/index.html index 8006bc0c0c..0285765e06 100644 --- a/automotive/index.html +++ b/automotive/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/autonomous-vehicles/index.html b/autonomous-vehicles/index.html index 5bded6b43a..7fc0f460cd 100644 --- a/autonomous-vehicles/index.html +++ b/autonomous-vehicles/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/avahi/index.html b/avahi/index.html index 96a7a997a3..b77d5a0f4d 100644 --- a/avahi/index.html +++ b/avahi/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/awk/index.html b/awk/index.html index f27b9febc8..9bb824f952 100644 --- a/awk/index.html +++ b/awk/index.html @@ -7143,6 +7143,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/awless/index.html b/awless/index.html index 342a3f062f..3b9e516ee2 100644 --- a/awless/index.html +++ b/awless/index.html @@ -6981,6 +6981,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/aws-cloudformation/index.html b/aws-cloudformation/index.html index dccfbe5f6c..ec7c881708 100644 --- a/aws-cloudformation/index.html +++ b/aws-cloudformation/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/awscli/index.html b/awscli/index.html index 21c73ff390..714853910d 100644 --- a/awscli/index.html +++ b/awscli/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/backups/index.html b/backups/index.html index 4d5f5dbcf4..cf99d7615f 100644 --- a/backups/index.html +++ b/backups/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/badblocks/index.html b/badblocks/index.html index c6c4181f3a..54336e1686 100644 --- a/badblocks/index.html +++ b/badblocks/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/bash/index.html b/bash/index.html index 4bdc5d2704..bbfb82ef4f 100644 --- a/bash/index.html +++ b/bash/index.html @@ -7335,6 +7335,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/bbcp/index.html b/bbcp/index.html index 99d4ef5fd5..78f3555e90 100644 --- a/bbcp/index.html +++ b/bbcp/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/bc/index.html b/bc/index.html index cc4cca75f6..0d3643ea47 100644 --- a/bc/index.html +++ b/bc/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/bind/index.html b/bind/index.html index cbfd585e0b..76b5a6c193 100644 --- a/bind/index.html +++ b/bind/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/blkid/index.html b/blkid/index.html index a70e1b395c..b9ebdb9183 100644 --- a/blkid/index.html +++ b/blkid/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/bluetooth/index.html b/bluetooth/index.html index 6dab635939..65bbc27fc7 100644 --- a/bluetooth/index.html +++ b/bluetooth/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/bpf/index.html b/bpf/index.html index 3b28d19aa0..b0d38b188d 100644 --- a/bpf/index.html +++ b/bpf/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/c/index.html b/c/index.html index 82c8939851..846c05e0a9 100644 --- a/c/index.html +++ b/c/index.html @@ -6881,6 +6881,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/calico/index.html b/calico/index.html index 62d1741274..cf77b1ffe2 100644 --- a/calico/index.html +++ b/calico/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/calver/index.html b/calver/index.html index a741094f5b..bf24b14834 100644 --- a/calver/index.html +++ b/calver/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/centos/index.html b/centos/index.html index c7c0dad7f4..e01227d956 100644 --- a/centos/index.html +++ b/centos/index.html @@ -7011,6 +7011,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ceph/index.html b/ceph/index.html index 8d66694d33..91296df343 100644 --- a/ceph/index.html +++ b/ceph/index.html @@ -7017,6 +7017,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/chkconfig/index.html b/chkconfig/index.html index 81acd4f285..fa56517030 100644 --- a/chkconfig/index.html +++ b/chkconfig/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/chocolatey/index.html b/chocolatey/index.html index df742e3dc2..aa0afda65b 100644 --- a/chocolatey/index.html +++ b/chocolatey/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/chronos/index.html b/chronos/index.html index e56529b45a..92bb34ce7f 100644 --- a/chronos/index.html +++ b/chronos/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/circleci/index.html b/circleci/index.html index a7bd1a912d..2d2e71a381 100644 --- a/circleci/index.html +++ b/circleci/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/circuitpython/index.html b/circuitpython/index.html index 5c4ff13726..53e07585c5 100644 --- a/circuitpython/index.html +++ b/circuitpython/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cncf/index.html b/cncf/index.html index 3bb15c168b..21173c7e6b 100644 --- a/cncf/index.html +++ b/cncf/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cobbler/index.html b/cobbler/index.html index 7ca7857034..d431449fdb 100644 --- a/cobbler/index.html +++ b/cobbler/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/colorblindness/index.html b/colorblindness/index.html index 62fcdcce9b..128ebcdf37 100644 --- a/colorblindness/index.html +++ b/colorblindness/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/computing/index.html b/computing/index.html index 7c7e7012a7..bb511445cd 100644 --- a/computing/index.html +++ b/computing/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/consul/index.html b/consul/index.html index 68d3c0b4b4..74ee3dbabd 100644 --- a/consul/index.html +++ b/consul/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cookiecutter/index.html b/cookiecutter/index.html index c9979915a0..d42116a344 100644 --- a/cookiecutter/index.html +++ b/cookiecutter/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cowsay/index.html b/cowsay/index.html index 00e3d8e180..ea5ffd62d8 100644 --- a/cowsay/index.html +++ b/cowsay/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cpp/index.html b/cpp/index.html index 1f346bdccc..c86694c88f 100644 --- a/cpp/index.html +++ b/cpp/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cradlepoint/index.html b/cradlepoint/index.html index e0eacb88c9..05f066a5de 100644 --- a/cradlepoint/index.html +++ b/cradlepoint/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cron/index.html b/cron/index.html index f046f550ef..5ee574eaeb 100644 --- a/cron/index.html +++ b/cron/index.html @@ -6999,6 +6999,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cryptography/index.html b/cryptography/index.html index 49e96d20ec..5c849569f3 100644 --- a/cryptography/index.html +++ b/cryptography/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cryptsetup/index.html b/cryptsetup/index.html index 4bb17b141b..8507cb0aa4 100644 --- a/cryptsetup/index.html +++ b/cryptsetup/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/csplit/index.html b/csplit/index.html index 202ba1b664..a5b4fe5285 100644 --- a/csplit/index.html +++ b/csplit/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/css/index.html b/css/index.html index 698465e65f..b276e2b4f0 100644 --- a/css/index.html +++ b/css/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/curl/index.html b/curl/index.html index d994676203..ff41e50d98 100644 --- a/curl/index.html +++ b/curl/index.html @@ -6981,6 +6981,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/cut/index.html b/cut/index.html index a8193d8e76..00938400b6 100644 --- a/cut/index.html +++ b/cut/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/d2/index.html b/d2/index.html index 1865eaf10a..6c4345c4af 100644 --- a/d2/index.html +++ b/d2/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dasel/index.html b/dasel/index.html index b0d54c6f52..59cde47cdc 100644 --- a/dasel/index.html +++ b/dasel/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/data/index.html b/data/index.html index ab31fc5653..648d3722a5 100644 --- a/data/index.html +++ b/data/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/datasette/index.html b/datasette/index.html index fa0261aa89..f4ec9a02d2 100644 --- a/datasette/index.html +++ b/datasette/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/date/index.html b/date/index.html index 8a3f77aa1e..3568daa5d7 100644 --- a/date/index.html +++ b/date/index.html @@ -7023,6 +7023,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dcfldd/index.html b/dcfldd/index.html index cbeeed6d40..996b92f866 100644 --- a/dcfldd/index.html +++ b/dcfldd/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dcgc/index.html b/dcgc/index.html index 293ebd6a8d..5d77f4500a 100644 --- a/dcgc/index.html +++ b/dcgc/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dcraw/index.html b/dcraw/index.html index 1af4ce4545..3695c94c65 100644 --- a/dcraw/index.html +++ b/dcraw/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dd-wrt/index.html b/dd-wrt/index.html index db4d193c9e..497180edd7 100644 --- a/dd-wrt/index.html +++ b/dd-wrt/index.html @@ -7095,6 +7095,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dd/index.html b/dd/index.html index 0dfeffe86f..c7aee35508 100644 --- a/dd/index.html +++ b/dd/index.html @@ -6936,6 +6936,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ddrescue/index.html b/ddrescue/index.html index 1bf3fe2c9f..f616bd5a0e 100644 --- a/ddrescue/index.html +++ b/ddrescue/index.html @@ -6936,6 +6936,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/deb/index.html b/deb/index.html index c1768a851e..562e543140 100644 --- a/deb/index.html +++ b/deb/index.html @@ -7017,6 +7017,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/debian/index.html b/debian/index.html index 26f174eaf4..6e974003bf 100644 --- a/debian/index.html +++ b/debian/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/defaults/index.html b/defaults/index.html index f81e50e539..5b5f86c008 100644 --- a/defaults/index.html +++ b/defaults/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/devops/index.html b/devops/index.html index 5cfe632165..de8c1c55c1 100644 --- a/devops/index.html +++ b/devops/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dhcp/index.html b/dhcp/index.html index c9abd539b3..d461a89319 100644 --- a/dhcp/index.html +++ b/dhcp/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dhcpd.conf/index.html b/dhcpd.conf/index.html index 2e6fd211c1..2b7f0dc24e 100644 --- a/dhcpd.conf/index.html +++ b/dhcpd.conf/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/diagrams/index.html b/diagrams/index.html index c7aacb08c3..1365e77993 100644 --- a/diagrams/index.html +++ b/diagrams/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dig/index.html b/dig/index.html index a8bdaac453..7d1a5d85c4 100644 --- a/dig/index.html +++ b/dig/index.html @@ -6945,6 +6945,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dmidecode/index.html b/dmidecode/index.html index 94a943817a..b1cae34cdd 100644 --- a/dmidecode/index.html +++ b/dmidecode/index.html @@ -6951,6 +6951,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dns/index.html b/dns/index.html index afaa29e866..226579c4cb 100644 --- a/dns/index.html +++ b/dns/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/docker/index.html b/docker/index.html index 0fad7fa160..e330fab207 100644 --- a/docker/index.html +++ b/docker/index.html @@ -7125,6 +7125,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/document-query/index.html b/document-query/index.html index e396149cb5..bbc7a37f66 100644 --- a/document-query/index.html +++ b/document-query/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/drone/index.html b/drone/index.html index b890c98c28..e7169c8079 100644 --- a/drone/index.html +++ b/drone/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dsrc/index.html b/dsrc/index.html index 82bfa4a09f..0879aa9876 100644 --- a/dsrc/index.html +++ b/dsrc/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/dtrace/index.html b/dtrace/index.html index 7f956ded2e..717a13932c 100644 --- a/dtrace/index.html +++ b/dtrace/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/du/index.html b/du/index.html index 583ef8ac02..fbbe1405d5 100644 --- a/du/index.html +++ b/du/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/duplicity/index.html b/duplicity/index.html index 7839457ae3..c457e8d3c6 100644 --- a/duplicity/index.html +++ b/duplicity/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/e-bike/index.html b/e-bike/index.html index 80fb7519b6..246a41ab8e 100644 --- a/e-bike/index.html +++ b/e-bike/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/education/index.html b/education/index.html index 79b8355f30..da495fe41e 100644 --- a/education/index.html +++ b/education/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/elasticsearch/index.html b/elasticsearch/index.html index 2e5c803a1f..e3da5112e3 100644 --- a/elasticsearch/index.html +++ b/elasticsearch/index.html @@ -6969,6 +6969,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/eleduino/index.html b/eleduino/index.html index e5db6fb7d6..4a38e8a2e1 100644 --- a/eleduino/index.html +++ b/eleduino/index.html @@ -6936,6 +6936,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/etcd/index.html b/etcd/index.html index 8b087c998d..578c259e36 100644 --- a/etcd/index.html +++ b/etcd/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ethtool/index.html b/ethtool/index.html index 56530c0a15..bd57477eb9 100644 --- a/ethtool/index.html +++ b/ethtool/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/exiftool/index.html b/exiftool/index.html index 58c918f0ee..44dff0557f 100644 --- a/exiftool/index.html +++ b/exiftool/index.html @@ -7152,6 +7152,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/fediverse/index.html b/fediverse/index.html index 0b0b128e0f..d08ec79591 100644 --- a/fediverse/index.html +++ b/fediverse/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/fedramp/index.html b/fedramp/index.html index 6e9d02dad7..98bb2caeb4 100644 --- a/fedramp/index.html +++ b/fedramp/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ffmpeg/index.html b/ffmpeg/index.html index 08492b6bb4..5e09b5e9aa 100644 --- a/ffmpeg/index.html +++ b/ffmpeg/index.html @@ -7059,6 +7059,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/figlet/index.html b/figlet/index.html index e976d859ba..f9fa484032 100644 --- a/figlet/index.html +++ b/figlet/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/finance/index.html b/finance/index.html index 3ac7b40ae8..6e89bc9d74 100644 --- a/finance/index.html +++ b/finance/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/find/index.html b/find/index.html index 4f75ee443e..dca7afc2d1 100644 --- a/find/index.html +++ b/find/index.html @@ -6972,6 +6972,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/findmnt/index.html b/findmnt/index.html index 6d7563e4fe..070ba0f8ae 100644 --- a/findmnt/index.html +++ b/findmnt/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/fio/index.html b/fio/index.html index 38f5a40be1..a5d8951f25 100644 --- a/fio/index.html +++ b/fio/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/flask/index.html b/flask/index.html index ab1f8e1b8b..0d1acfbd67 100644 --- a/flask/index.html +++ b/flask/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/flipper-zero/index.html b/flipper-zero/index.html index ba237ca087..bc4ada4d1d 100644 --- a/flipper-zero/index.html +++ b/flipper-zero/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/fluent-bit/index.html b/fluent-bit/index.html index c15bf415c3..e074bf66ab 100644 --- a/fluent-bit/index.html +++ b/fluent-bit/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/fluentd/index.html b/fluentd/index.html index 10621c52fb..a8ab6b6807 100644 --- a/fluentd/index.html +++ b/fluentd/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/fortune/index.html b/fortune/index.html index 6ecae779e2..bd93593e78 100644 --- a/fortune/index.html +++ b/fortune/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/fuser/index.html b/fuser/index.html index 0042273ef8..d78cb77c0f 100644 --- a/fuser/index.html +++ b/fuser/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/gaming/index.html b/gaming/index.html index 2af3adc822..669888ade7 100644 --- a/gaming/index.html +++ b/gaming/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/genicam/index.html b/genicam/index.html index 66230021ca..260b39ac07 100644 --- a/genicam/index.html +++ b/genicam/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/geodata/index.html b/geodata/index.html index da3f4910de..f8f2b880af 100644 --- a/geodata/index.html +++ b/geodata/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/gige-vision/index.html b/gige-vision/index.html index 79f05ac488..40158fac6f 100644 --- a/gige-vision/index.html +++ b/gige-vision/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/git/index.html b/git/index.html index a714546d50..9becf8065c 100644 --- a/git/index.html +++ b/git/index.html @@ -7713,6 +7713,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/github/index.html b/github/index.html index 62f3dd682d..c9056abc38 100644 --- a/github/index.html +++ b/github/index.html @@ -6960,6 +6960,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/gitlab/index.html b/gitlab/index.html index 627c0143c8..8ace5ce817 100644 --- a/gitlab/index.html +++ b/gitlab/index.html @@ -7014,6 +7014,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/gitolite/index.html b/gitolite/index.html index fb98b96a65..a9f4a5b542 100644 --- a/gitolite/index.html +++ b/gitolite/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/glsl/index.html b/glsl/index.html index a09f781dba..0748fc71e6 100644 --- a/glsl/index.html +++ b/glsl/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/gnu-screen/index.html b/gnu-screen/index.html index a123717055..eef58ea80c 100644 --- a/gnu-screen/index.html +++ b/gnu-screen/index.html @@ -6999,6 +6999,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/golang/index.html b/golang/index.html index 7cf77038cb..736f4cca62 100644 --- a/golang/index.html +++ b/golang/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/google-cloud/index.html b/google-cloud/index.html index c1edc74130..d8c57fea68 100644 --- a/google-cloud/index.html +++ b/google-cloud/index.html @@ -7275,6 +7275,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/google-earth/index.html b/google-earth/index.html index 236e3ff8d8..58274e7dbc 100644 --- a/google-earth/index.html +++ b/google-earth/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/google-sheets/index.html b/google-sheets/index.html index 3bab8b4723..146f346a2c 100644 --- a/google-sheets/index.html +++ b/google-sheets/index.html @@ -6960,6 +6960,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/google/index.html b/google/index.html index 191dc03cbf..e2f3f2eb25 100644 --- a/google/index.html +++ b/google/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/graphicsmagick/index.html b/graphicsmagick/index.html index 45399e7b03..7ffcd10989 100644 --- a/graphicsmagick/index.html +++ b/graphicsmagick/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/graphql/index.html b/graphql/index.html index cdcdbd6981..e2801fa574 100644 --- a/graphql/index.html +++ b/graphql/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/grep/index.html b/grep/index.html index 67c86129ee..0bf2d0168a 100644 --- a/grep/index.html +++ b/grep/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/grub/index.html b/grub/index.html index 571b80b207..75ccde1032 100644 --- a/grub/index.html +++ b/grub/index.html @@ -6936,6 +6936,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/hadoop/index.html b/hadoop/index.html index 62544d0465..1c8b9220bd 100644 --- a/hadoop/index.html +++ b/hadoop/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/handbrake/index.html b/handbrake/index.html index fa6e185541..0c4444e7d6 100644 --- a/handbrake/index.html +++ b/handbrake/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/hashids/index.html b/hashids/index.html index 9484308819..82ff256f64 100644 --- a/hashids/index.html +++ b/hashids/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/helm/index.html b/helm/index.html index effa072d3f..39f8e98c03 100644 --- a/helm/index.html +++ b/helm/index.html @@ -6999,6 +6999,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/home-assistant/index.html b/home-assistant/index.html index 474672c4fa..9f022e7717 100644 --- a/home-assistant/index.html +++ b/home-assistant/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/hp/index.html b/hp/index.html index cd19762f7d..b0ba235681 100644 --- a/hp/index.html +++ b/hp/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/htmx/index.html b/htmx/index.html index 3f6fd00e18..1151519cda 100644 --- a/htmx/index.html +++ b/htmx/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/htop/index.html b/htop/index.html index 0840a8adc1..dc7b791394 100644 --- a/htop/index.html +++ b/htop/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/httpstat/index.html b/httpstat/index.html index 61196e0456..657de072c6 100644 --- a/httpstat/index.html +++ b/httpstat/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/iTunes/index.html b/iTunes/index.html index e1414061f2..1abfa2f599 100644 --- a/iTunes/index.html +++ b/iTunes/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/image-formats/index.html b/image-formats/index.html index d93754c388..c0c1ff2a26 100644 --- a/image-formats/index.html +++ b/image-formats/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/imagemagick/index.html b/imagemagick/index.html index ddca66eca8..ccc76c4594 100644 --- a/imagemagick/index.html +++ b/imagemagick/index.html @@ -7008,6 +7008,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/img2xterm/index.html b/img2xterm/index.html index 3a7183c699..679a56f387 100644 --- a/img2xterm/index.html +++ b/img2xterm/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/index.html b/index.html index 44c1166f38..ec1fe762a4 100644 --- a/index.html +++ b/index.html @@ -6844,6 +6844,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/inotify/index.html b/inotify/index.html index 86694b59f7..a5f42ab5ef 100644 --- a/inotify/index.html +++ b/inotify/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/internet/index.html b/internet/index.html index 818bad5ef9..a2b570b8c7 100644 --- a/internet/index.html +++ b/internet/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/interview/index.html b/interview/index.html index a5a64a8079..5a5662b7f8 100644 --- a/interview/index.html +++ b/interview/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/iotop/index.html b/iotop/index.html index 1fafff0d7c..4b2bf7602e 100644 --- a/iotop/index.html +++ b/iotop/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ip/index.html b/ip/index.html index 8931476743..d474e5287f 100644 --- a/ip/index.html +++ b/ip/index.html @@ -6981,6 +6981,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/iperf/index.html b/iperf/index.html index 5402358051..df63ce6862 100644 --- a/iperf/index.html +++ b/iperf/index.html @@ -6912,6 +6912,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ipmi/index.html b/ipmi/index.html index 273cc9f7c1..1c5683d7e7 100644 --- a/ipmi/index.html +++ b/ipmi/index.html @@ -7110,6 +7110,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/iptables/index.html b/iptables/index.html index d25e0e2a7f..df25dedf61 100644 --- a/iptables/index.html +++ b/iptables/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/irc/index.html b/irc/index.html index 0fc4dfa5b0..8914c054a3 100644 --- a/irc/index.html +++ b/irc/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/irssi/index.html b/irssi/index.html index 43c405205f..7f2fd1631e 100644 --- a/irssi/index.html +++ b/irssi/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jargon/index.html b/jargon/index.html index 69594e9837..a8dddac025 100644 --- a/jargon/index.html +++ b/jargon/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/javascript/index.html b/javascript/index.html index 140d80ddfa..a601ae6775 100644 --- a/javascript/index.html +++ b/javascript/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jdupes/index.html b/jdupes/index.html index 60af7912b4..1a81fb20a5 100644 --- a/jdupes/index.html +++ b/jdupes/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jmespath/index.html b/jmespath/index.html index b22f6a38d9..410462d1d5 100644 --- a/jmespath/index.html +++ b/jmespath/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/join/index.html b/join/index.html index c9b716a69c..5187314ed8 100644 --- a/join/index.html +++ b/join/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jot/index.html b/jot/index.html index 07db510f02..bf0cbac498 100644 --- a/jot/index.html +++ b/jot/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jpeginfo/index.html b/jpeginfo/index.html index 5d8c55e726..583f4f5098 100644 --- a/jpeginfo/index.html +++ b/jpeginfo/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jq/index.html b/jq/index.html index 7b6b9d27d1..52abeccb28 100644 --- a/jq/index.html +++ b/jq/index.html @@ -7044,6 +7044,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/json/index.html b/json/index.html index 6ffe590fa7..779b4d116f 100644 --- a/json/index.html +++ b/json/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jsonnet/index.html b/jsonnet/index.html index 6af4f232e9..608624b27c 100644 --- a/jsonnet/index.html +++ b/jsonnet/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jsonpath/index.html b/jsonpath/index.html index b637fec0b9..06337930cc 100644 --- a/jsonpath/index.html +++ b/jsonpath/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/juniper/index.html b/juniper/index.html index 3626150708..b09a06aadf 100644 --- a/juniper/index.html +++ b/juniper/index.html @@ -6981,6 +6981,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jupyter/index.html b/jupyter/index.html index 9fc740868e..91a34fda0c 100644 --- a/jupyter/index.html +++ b/jupyter/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/jwt/index.html b/jwt/index.html index 28b3202641..af917b5896 100644 --- a/jwt/index.html +++ b/jwt/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/kaniko/index.html b/kaniko/index.html index 165551c1ee..d0faa5a4c5 100644 --- a/kaniko/index.html +++ b/kaniko/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/keel/index.html b/keel/index.html index 18404fff31..7cd05c211e 100644 --- a/keel/index.html +++ b/keel/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/keybase/index.html b/keybase/index.html index 2b37baddeb..a3f45abd14 100644 --- a/keybase/index.html +++ b/keybase/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/kubernetes/index.html b/kubernetes/index.html index 8d8958d9de..d57101d8c8 100644 --- a/kubernetes/index.html +++ b/kubernetes/index.html @@ -7398,6 +7398,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/launchd/index.html b/launchd/index.html index c3bafa126a..85a68ffee2 100644 --- a/launchd/index.html +++ b/launchd/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ldap/index.html b/ldap/index.html index 4b07662656..01a3d027c7 100644 --- a/ldap/index.html +++ b/ldap/index.html @@ -6963,6 +6963,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lego/index.html b/lego/index.html index b7e47a0fe6..e696de2bc3 100644 --- a/lego/index.html +++ b/lego/index.html @@ -6987,6 +6987,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lektor/index.html b/lektor/index.html index 26842b643b..029dba87f8 100644 --- a/lektor/index.html +++ b/lektor/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/linksys/index.html b/linksys/index.html index 63610466bb..5f4b069e0d 100644 --- a/linksys/index.html +++ b/linksys/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/linux-performance-monitoring/index.html b/linux-performance-monitoring/index.html index 85f5cfdac4..91df6c87e4 100644 --- a/linux-performance-monitoring/index.html +++ b/linux-performance-monitoring/index.html @@ -6930,6 +6930,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/linux/index.html b/linux/index.html index 38acf81d56..d005d5fcb9 100644 --- a/linux/index.html +++ b/linux/index.html @@ -7071,6 +7071,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/logstash/index.html b/logstash/index.html index 2c519c6f8a..87448bdbaa 100644 --- a/logstash/index.html +++ b/logstash/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lsblk/index.html b/lsblk/index.html index 5c36ce6609..8c8b0722d9 100644 --- a/lsblk/index.html +++ b/lsblk/index.html @@ -6936,6 +6936,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lshw/index.html b/lshw/index.html index a470ec9e98..7e068802ec 100644 --- a/lshw/index.html +++ b/lshw/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lsof/index.html b/lsof/index.html index 9c3acade53..df0b50dd24 100644 --- a/lsof/index.html +++ b/lsof/index.html @@ -6945,6 +6945,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lua/index.html b/lua/index.html index a6d45b1d99..93e4296845 100644 --- a/lua/index.html +++ b/lua/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lvm/index.html b/lvm/index.html index 75b172ab1e..14c8ed87c6 100644 --- a/lvm/index.html +++ b/lvm/index.html @@ -6990,6 +6990,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/lxc/index.html b/lxc/index.html index 30c313d298..995966ab8d 100644 --- a/lxc/index.html +++ b/lxc/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/machine-learning/index.html b/machine-learning/index.html index a762ae2af3..86eccd0347 100644 --- a/machine-learning/index.html +++ b/machine-learning/index.html @@ -6912,6 +6912,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/macos/index.html b/macos/index.html index 01fc2c5fd5..7be31d1ee9 100644 --- a/macos/index.html +++ b/macos/index.html @@ -7017,6 +7017,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/make/index.html b/make/index.html index a2e6a068cb..caf1be5fb2 100644 --- a/make/index.html +++ b/make/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/marlin/index.html b/marlin/index.html index e8567397a2..da0239eeba 100644 --- a/marlin/index.html +++ b/marlin/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/math/index.html b/math/index.html index 9dd3eb59cb..0cc030cd84 100644 --- a/math/index.html +++ b/math/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/mdraid/index.html b/mdraid/index.html index 29d2e62470..47a45fa264 100644 --- a/mdraid/index.html +++ b/mdraid/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/mechanical-keyboards/index.html b/mechanical-keyboards/index.html index 6ccab1d47c..0e835b33e8 100644 --- a/mechanical-keyboards/index.html +++ b/mechanical-keyboards/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/metallb/index.html b/metallb/index.html index 603c22470e..a11e3e6dea 100644 --- a/metallb/index.html +++ b/metallb/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/microbit/index.html b/microbit/index.html index 869437ef99..f92640e884 100644 --- a/microbit/index.html +++ b/microbit/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/microcontrollers/index.html b/microcontrollers/index.html index ce003853b5..cc10463024 100644 --- a/microcontrollers/index.html +++ b/microcontrollers/index.html @@ -6951,6 +6951,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/micropython/index.html b/micropython/index.html index a58c55aa4e..8eb2ac9c81 100644 --- a/micropython/index.html +++ b/micropython/index.html @@ -6921,6 +6921,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/minikube/index.html b/minikube/index.html index 07a824acbb..efa436956e 100644 --- a/minikube/index.html +++ b/minikube/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/misc/index.html b/misc/index.html index 5bc4fc662e..a3094b2e66 100644 --- a/misc/index.html +++ b/misc/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/mkdocs/index.html b/mkdocs/index.html index 2b38e0a169..1235df5c13 100644 --- a/mkdocs/index.html +++ b/mkdocs/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/molecule/index.html b/molecule/index.html index 4e920fe3c0..e1d75d5960 100644 --- a/molecule/index.html +++ b/molecule/index.html @@ -6951,6 +6951,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/mongodb/index.html b/mongodb/index.html index b1af7a4b35..ceb79166a5 100644 --- a/mongodb/index.html +++ b/mongodb/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/mqtt/index.html b/mqtt/index.html index 0bd435087d..8e8d2d7f7d 100644 --- a/mqtt/index.html +++ b/mqtt/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/mutt/index.html b/mutt/index.html index f116eebd9d..2d7b028f12 100644 --- a/mutt/index.html +++ b/mutt/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/myrepos/index.html b/myrepos/index.html index 9aa4a59848..7629061d86 100644 --- a/myrepos/index.html +++ b/myrepos/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/mysql/index.html b/mysql/index.html index 54c7c9f187..d1c8cc12db 100644 --- a/mysql/index.html +++ b/mysql/index.html @@ -7296,6 +7296,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/namei/index.html b/namei/index.html index b95a909999..42f3d29593 100644 --- a/namei/index.html +++ b/namei/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ncftp/index.html b/ncftp/index.html index d541627a67..0ab28d3446 100644 --- a/ncftp/index.html +++ b/ncftp/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/neopixel/index.html b/neopixel/index.html index c071d7afca..55ac16725a 100644 --- a/neopixel/index.html +++ b/neopixel/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/netgear/index.html b/netgear/index.html index 5290b711a6..9012829863 100644 --- a/netgear/index.html +++ b/netgear/index.html @@ -6951,6 +6951,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nethogs/index.html b/nethogs/index.html index f48868f58d..6cfc893d10 100644 --- a/nethogs/index.html +++ b/nethogs/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/networking/index.html b/networking/index.html index 75d2b8c9ba..9ecb5c7ba7 100644 --- a/networking/index.html +++ b/networking/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/networksetup/index.html b/networksetup/index.html index e3b31020d0..cf49e6581a 100644 --- a/networksetup/index.html +++ b/networksetup/index.html @@ -6954,6 +6954,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nfc/index.html b/nfc/index.html index 1c710aa34b..0fcc7524cb 100644 --- a/nfc/index.html +++ b/nfc/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nfs/index.html b/nfs/index.html index 20d8edafa0..073ef45aa3 100644 --- a/nfs/index.html +++ b/nfs/index.html @@ -7011,6 +7011,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ngrok/index.html b/ngrok/index.html index 971b636f0f..20333b2d5d 100644 --- a/ngrok/index.html +++ b/ngrok/index.html @@ -6969,6 +6969,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-3ds/index.html b/nintendo-3ds/index.html index 4562e0ef12..107af94e11 100644 --- a/nintendo-3ds/index.html +++ b/nintendo-3ds/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-amiibo/index.html b/nintendo-amiibo/index.html index b59ab6b147..786416b4b1 100644 --- a/nintendo-amiibo/index.html +++ b/nintendo-amiibo/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-nes/index.html b/nintendo-nes/index.html index aad5bf6fc9..d1caa39efa 100644 --- a/nintendo-nes/index.html +++ b/nintendo-nes/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-switch/index.html b/nintendo-switch/index.html index 792000f2c7..a13b347e9e 100644 --- a/nintendo-switch/index.html +++ b/nintendo-switch/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-wii/index.html b/nintendo-wii/index.html index 0ca5100dc9..b756b1ad78 100644 --- a/nintendo-wii/index.html +++ b/nintendo-wii/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nintendo-wiiu/index.html b/nintendo-wiiu/index.html index b3ace7d18e..9186535cb1 100644 --- a/nintendo-wiiu/index.html +++ b/nintendo-wiiu/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ntop/index.html b/ntop/index.html index efa40e3955..e970cab720 100644 --- a/ntop/index.html +++ b/ntop/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ntp/index.html b/ntp/index.html index b4e3a5cc7d..b8ed4e8706 100644 --- a/ntp/index.html +++ b/ntp/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/nvidia/index.html b/nvidia/index.html index b5a4e3f0bd..4ab1587056 100644 --- a/nvidia/index.html +++ b/nvidia/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/onboarding/index.html b/onboarding/index.html index de5c9abacf..f629c8ac39 100644 --- a/onboarding/index.html +++ b/onboarding/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/opa/index.html b/opa/index.html index 41b5928a80..021e2ad9aa 100644 --- a/opa/index.html +++ b/opa/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/openvpn/index.html b/openvpn/index.html index f45e841155..473eace89e 100644 --- a/openvpn/index.html +++ b/openvpn/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/orbstack/index.html b/orbstack/index.html index f0a94017b2..66a4648d25 100644 --- a/orbstack/index.html +++ b/orbstack/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/osquery/index.html b/osquery/index.html index afdd086a74..2054b4a2b3 100644 --- a/osquery/index.html +++ b/osquery/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/outline/index.html b/outline/index.html index 2561fed7bd..c7a6c4db53 100644 --- a/outline/index.html +++ b/outline/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/pac/index.html b/pac/index.html index 760ee858e8..d8bdd3197d 100644 --- a/pac/index.html +++ b/pac/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/pandoc/index.html b/pandoc/index.html index db477b8488..04b21bf94d 100644 --- a/pandoc/index.html +++ b/pandoc/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/panopticlick/index.html b/panopticlick/index.html index 94a9073731..99c873f86d 100644 --- a/panopticlick/index.html +++ b/panopticlick/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/passwords/index.html b/passwords/index.html index 0a15dbd443..11e31d3241 100644 --- a/passwords/index.html +++ b/passwords/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/perl/index.html b/perl/index.html index 30f8a58cf7..2c4b0f0af6 100644 --- a/perl/index.html +++ b/perl/index.html @@ -6999,6 +6999,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/pgp/index.html b/pgp/index.html index c2939ab6da..22e9a3e17e 100644 --- a/pgp/index.html +++ b/pgp/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/philips-hue/index.html b/philips-hue/index.html index 998d79f092..89e6b040ef 100644 --- a/philips-hue/index.html +++ b/philips-hue/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/photography/index.html b/photography/index.html index 7fbb1ca262..2e100f2509 100644 --- a/photography/index.html +++ b/photography/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/php/index.html b/php/index.html index 5bbd49d48f..06153276f7 100644 --- a/php/index.html +++ b/php/index.html @@ -6963,6 +6963,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/plex/index.html b/plex/index.html index 4e63ed37e6..f0928b3417 100644 --- a/plex/index.html +++ b/plex/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/postgres/index.html b/postgres/index.html index 7759acbfe6..6d38d6f026 100644 --- a/postgres/index.html +++ b/postgres/index.html @@ -7029,6 +7029,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/powershell/index.html b/powershell/index.html index 97699ccaab..a475a0ab22 100644 --- a/powershell/index.html +++ b/powershell/index.html @@ -7071,6 +7071,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/powertop/index.html b/powertop/index.html index 2958294842..33edfa7802 100644 --- a/powertop/index.html +++ b/powertop/index.html @@ -6909,6 +6909,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/procurve/index.html b/procurve/index.html index 99eb88731e..365f652601 100644 --- a/procurve/index.html +++ b/procurve/index.html @@ -7017,6 +7017,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/prometheus/index.html b/prometheus/index.html index 3f61cd04c0..c86e270330 100644 --- a/prometheus/index.html +++ b/prometheus/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/protobuf/index.html b/protobuf/index.html index f545c5f138..6aad6cebbc 100644 --- a/protobuf/index.html +++ b/protobuf/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ps/index.html b/ps/index.html index 3b07c71d82..feb49041fb 100644 --- a/ps/index.html +++ b/ps/index.html @@ -6945,6 +6945,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ps_mem/index.html b/ps_mem/index.html index 724de8152f..888b652aa5 100644 --- a/ps_mem/index.html +++ b/ps_mem/index.html @@ -6900,6 +6900,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/psp/index.html b/psp/index.html index 41b2a2ebcc..0833106a1d 100644 --- a/psp/index.html +++ b/psp/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/pssh/index.html b/pssh/index.html index 9a3e651bef..cc5481c3fe 100644 --- a/pssh/index.html +++ b/pssh/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ptp/index.html b/ptp/index.html index 5f54afcd9a..2fc6e532e2 100644 --- a/ptp/index.html +++ b/ptp/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/puppet/index.html b/puppet/index.html index ca78a3a5b4..22e81e9143 100644 --- a/puppet/index.html +++ b/puppet/index.html @@ -7191,6 +7191,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/pv/index.html b/pv/index.html index eaebb6c4d2..7ab2d868b1 100644 --- a/pv/index.html +++ b/pv/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/pxe/index.html b/pxe/index.html index 4ef7d5fe2a..505952d459 100644 --- a/pxe/index.html +++ b/pxe/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/pytest/index.html b/pytest/index.html index d43df441c6..7d106df019 100644 --- a/pytest/index.html +++ b/pytest/index.html @@ -6981,6 +6981,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/python/index.html b/python/index.html index dee3cf6bfd..b7e949aed1 100644 --- a/python/index.html +++ b/python/index.html @@ -7257,6 +7257,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/q/index.html b/q/index.html index a84e0d560c..93fbbdba33 100644 --- a/q/index.html +++ b/q/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/raspberry-pi/index.html b/raspberry-pi/index.html index b540a6a15f..a860e4accf 100644 --- a/raspberry-pi/index.html +++ b/raspberry-pi/index.html @@ -6993,6 +6993,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/redis/index.html b/redis/index.html index 299da63843..05c798d6e4 100644 --- a/redis/index.html +++ b/redis/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/retropie/index.html b/retropie/index.html index f7f5ceaae4..3546f13ea6 100644 --- a/retropie/index.html +++ b/retropie/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/rhel/index.html b/rhel/index.html index e31c601fad..7d055778f0 100644 --- a/rhel/index.html +++ b/rhel/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/robotics/index.html b/robotics/index.html index 259b2697bc..3e74dccd86 100644 --- a/robotics/index.html +++ b/robotics/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/roku/index.html b/roku/index.html index a73e9ebb9a..8427276034 100644 --- a/roku/index.html +++ b/roku/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/rook/index.html b/rook/index.html index 08650f1292..c0d98d80ed 100644 --- a/rook/index.html +++ b/rook/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/ros/index.html b/ros/index.html index 4009cf29e5..ad4c7915e3 100644 --- a/ros/index.html +++ b/ros/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/rpm/index.html b/rpm/index.html index 3b460d97fe..02f7855ea7 100644 --- a/rpm/index.html +++ b/rpm/index.html @@ -7053,6 +7053,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/rrd/index.html b/rrd/index.html index 1b17672655..73f4f2697b 100644 --- a/rrd/index.html +++ b/rrd/index.html @@ -6918,6 +6918,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/rst/index.html b/rst/index.html index ecd8f72263..e370ad61f5 100644 --- a/rst/index.html +++ b/rst/index.html @@ -6846,6 +6846,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/rsync/index.html b/rsync/index.html index 125f31caa1..d236b8ac5f 100644 --- a/rsync/index.html +++ b/rsync/index.html @@ -7008,6 +7008,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/rust/index.html b/rust/index.html index 97ee7ae40f..dbcdef1b27 100644 --- a/rust/index.html +++ b/rust/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/saltstack/index.html b/saltstack/index.html index 4a4282e181..564b451adb 100644 --- a/saltstack/index.html +++ b/saltstack/index.html @@ -7134,6 +7134,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/samba/index.html b/samba/index.html index 1d6a36922e..3ebc0ee675 100644 --- a/samba/index.html +++ b/samba/index.html @@ -7032,6 +7032,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/samsung/index.html b/samsung/index.html index 473fc848e3..b71bee0e62 100644 --- a/samsung/index.html +++ b/samsung/index.html @@ -6903,6 +6903,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/science/index.html b/science/index.html index 05d25109dc..d0e8992113 100644 --- a/science/index.html +++ b/science/index.html @@ -6885,6 +6885,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/screenshot/index.html b/screenshot/index.html index 7518f27a6e..f86b6d7183 100644 --- a/screenshot/index.html +++ b/screenshot/index.html @@ -6927,6 +6927,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/sdr/index.html b/sdr/index.html index 0cbfce2d3c..be19b0dedd 100644 --- a/sdr/index.html +++ b/sdr/index.html @@ -6894,6 +6894,26 @@ +
  • + + + + + Windows + + + + +
  • + + + + + + + + +
  • diff --git a/search/search_index.json b/search/search_index.json index 40385f30ed..b0a3d31b84 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"About these notes","text":"

    These are notes I've taken on technologies that I have used or would like to use.

    These notes started out some time before 2005 in VoodooPad 2. In December 2005 I discovered that you could self-host MediaWiki, so I moved my content into a private MediaWiki installation. Both VoodooPad and self-hosted MediaWiki worked fine for me, but as my notes became more useful and I wanted to show different sections to people in a way that let them discover useful content, the private nature of my self-hosted MediaWiki installation became problematic. MediaWiki also had the problem of being hosted by a web service, which meant it was not possible to access or edit content when my laptop was offline. I solved this for a while by running MediaWiki in a VM on my laptop, but that meant I couldn't access notes from other computers if my laptop was offline, and it meant I had a VM running at all time just to serve notes, which wasted a lot of resources. In 2015 I decided to move out of MediaWiki into markdown files in git, and in 2016 I began using mkdocs to publish these notes publicly to github pages.

    Since 2016, these notes are rendered from markdown files and published to github-pages using mkdocs gh-deploy. If you have suggestions, please open a github issue. Please do not submit PRs.

    "},{"location":"3d-printing/","title":"3D Printing","text":""},{"location":"3d-printing/#links","title":"Links","text":""},{"location":"3d-printing/#see-also","title":"See Also","text":""},{"location":"airflow/","title":"Airflow","text":"

    \"Airflow is a platform created by the community to programmatically author, schedule and monitor workflows.\" - https://airflow.apache.org/

    "},{"location":"airflow/#links","title":"Links","text":""},{"location":"airport/","title":"Apple Airport","text":"

    Apple Airport hardware was discontinued in November 2016.

    "},{"location":"airport/#using-old-airport-utility-apps-with-new-versions-of-os-x","title":"Using old Airport Utility apps with new versions of OS X","text":"

    Or use the 5.6.1 Utility in Windows? Not sure if this works.

    "},{"location":"amazon/","title":"Amazon","text":"

    Mostly related to the technological offerings of Amazon, not the shopping experience.

    "},{"location":"amazon/#kindle","title":"Kindle","text":""},{"location":"amazon/#aws","title":"AWS","text":"

    \"Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.\" - https://aws.amazon.com/ec2/

    "},{"location":"amazon/#cloudformation","title":"Cloudformation","text":"

    cloudformation has its own notes page.

    "},{"location":"amazon/#links","title":"Links","text":""},{"location":"amazon/#tips","title":"Tips","text":""},{"location":"amazon/#determine-if-you-are-on-an-ec2-instance","title":"Determine if you are on an EC2 instance","text":"
    grep -i '^ec2' /sys/hypervisor/uuid\n
    "},{"location":"amazon/#reformat-accesskeyscsv-into-awscredentials-format","title":"Reformat accessKeys.csv into .aws/credentials format","text":"
    awk -F, 'BEGIN { print \"[temp_name]\" ; } !/Access/ {print \"aws_access_key_id = \"$1\"\\naws_secret_access_key = \"$2}' ~/Downloads/accessKeys.csv\n
    "},{"location":"amazon/#force-reset-mfa-credentials","title":"Force reset mfa credentials","text":"

    https://github.com/broamski/aws-mfa

    aws-mfa --device arn:aws:iam::$UID:mfa/$USER --force\n
    "},{"location":"amazon/#create-eks-cluster-from-cli","title":"Create eks cluster from cli","text":"

    https://github.com/weaveworks/eksctl

    eksctl create cluster\n
    "},{"location":"amazon/#get-eks-cluster-config","title":"Get eks cluster config","text":"
    # find your cluster name\naws eks list-clusters | jq -r '.clusters[]'\n\n# configure the current KUBECONFIG for the given cluster\naws eks update-kubeconfig --name the_cluster_name\n
    "},{"location":"amazon/#see-also","title":"See Also","text":""},{"location":"android/","title":"Android","text":"

    \"Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen mobile devices such as smartphones and tablets.\" - https://en.wikipedia.org/wiki/Android_(operating_system)

    "},{"location":"android/#links","title":"Links","text":""},{"location":"ansible/","title":"Ansible","text":""},{"location":"ansible/#modules","title":"Modules","text":""},{"location":"ansible/#see-also","title":"See also","text":""},{"location":"ansible/#examples","title":"Examples","text":""},{"location":"ansible/#generate-a-copy-block-for-a-given-file","title":"Generate a copy block for a given file","text":"

    Not perfect because the output is json, but json is yaml and easy enough to fix up quickly.

    ## stat -c '{\"copy\": {\"src\": \"SOURCE_FILE_NAME\", \"dest\": \"%n\", \"mode\": \"0%a\", \"owner\": \"%U\", \"group\": \"%G\"}}' /etc/logrotate.d/backup | jq .\n{\n  \"copy\": {\n    \"src\": \"SOURCE_FILE_NAME\",\n    \"dest\": \"/etc/logrotate.d/backup\",\n    \"mode\": \"0644\",\n    \"owner\": \"root\",\n    \"group\": \"root\"\n  }\n}\n
    "},{"location":"ansible/#show-a-list-of-installed-modules","title":"Show a list of installed modules","text":"
    ansible-doc --list\n
    "},{"location":"ansible/#run-a-playbook-and-prompt-for-sudo-password","title":"Run a playbook and prompt for sudo password","text":"
    ansible-playbook --ask-become-pass -i inventory/hosts.yaml create_users.yaml\n
    "},{"location":"ansible/#run-an-ad-hoc-command","title":"Run an ad-hoc command","text":"

    You can run one-off ad-hoc commands by passing a module and args to the module.

    ansible localhost \\\n  -m get_url \\\n  -a \"mode=755\n    url=https://github.com/bcicen/ctop/releases/download/v0.7.1/ctop-0.7.1-linux-amd64\n    dest=/usr/local/bin/ctop\n    checksum=sha256:38cfd92618ba2d92e0e1262c0c43d7690074b4b8dc77844b654f8e565166b577\n    owner=root\n    group=root\"\n
    "},{"location":"ansible/#validate-and-inspect-your-inventory-file","title":"Validate and inspect your inventory file","text":"

    This command parses your inventory and group_vars and outputs a json data structure if no syntax faults are found.

    ansible-inventory -i inventory/hosts.yml --list\n
    "},{"location":"ansible/#use-arbitrary-groups-in-static-inventory-file","title":"Use arbitrary groups in static inventory file","text":"
    $ nl -w 2 -s ' ' -ba inventory/example.yml\n 1 all:\n 2   hosts:\n 3     client:\n 4       ansible_host: 192.168.1.2\n 5     server:\n 6       ansible_host: 192.168.2.3\n 7\n 8 linux:\n 9   hosts:\n10     server:\n11\n12 windows:\n13   hosts:\n14     client:\n15\n16 california:\n17   hosts:\n18     client:\n19     server:\n$ ansible-inventory -i inventory/example.yml --graph\n@all:\n  |--@california:\n  |  |--client\n  |  |--server\n  |--@linux:\n  |  |--server\n  |--@windows:\n  |  |--client\n
    "},{"location":"ansible/#merge-multiple-inventory-files","title":"Merge multiple inventory files","text":"

    The below example gives higher precedence to the later files.

    ## cat foo.yml\nall:\n  hosts:\n    client:\n      ansible_host: 192.168.1.2\n      service_hostname: hostname-from-file-1\n    server:\n      ansible_host: 192.168.2.3\n      file_number: one\n\n## cat bar.yml\nall:\n  hosts:\n    client:\n      ansible_host: 10.1.2.3\n    server:\n      ansible_host: 10.2.3.4\n      file_number: two\n\n## ansible-inventory -i foo.yml -i bar.yml --list | json-to-yaml.py\n_meta:\n  hostvars:\n    client:\n      ansible_host: 10.1.2.3\n      service_hostname: hostname-from-file-1\n    server:\n      ansible_host: 10.2.3.4\n      file_number: two\nall:\n  children:\n  - ungrouped\nungrouped:\n  hosts:\n  - client\n  - server\n
    "},{"location":"ansible/#show-all-resolved-variables-for-a-given-inventory-host","title":"Show all resolved variables for a given inventory host","text":"

    This wisll show all host vars, including variables resolved from all the different variable locations.

    ansible -i inventory target_hostname -m debug -a \"var=hostvars[inventory_hostname]\"\n
    "},{"location":"ansible/#gather-all-facts-and-save-them-to-files","title":"Gather all facts and save them to files","text":"

    This will create a directory called facts and save results as one json file per host.

    ansible -i inventory target_group_or_hostname -m gather_facts --tree host_facts\n
    "},{"location":"ansible/#generate-an-deterministic-random-number","title":"Generate an deterministic random number","text":"

    This is similar to the Puppet fqdn_rand() function, which is really useful to splay cron jobs. Splaying cron jobs avoids the thundering herd problem by spreading the jobs out over time with deterministic randomness.

    ---\n## defaults/main.yml\n\ndemo_cron_minute: \"{{ 59 | random(seed=inventory_hostname) }}\"\ndemo_cron_hour: \"{{ 23 | random(seed=inventory_hostname) }}\"\n

    See also: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#randomizing-data

    "},{"location":"ansible/#simple-ansible-playbook","title":"Simple ansible playbook","text":"

    This may be useful for testing syntax and experimenting with ansible modules.

    ---\n## playbook.yml\n\n- name: A local play\n  hosts: localhost\n  connection: local\n  gather_facts: no\n  tasks:\n    - name: Run cmd\n      shell: /bin/date\n      register: cmd_out\n\n    - debug:\n        var: cmd_out.stdout\n

    ansible-playbook -i localhost playbook.yml

    Slightly more complicated example:

    ## playbook.yml\n## run with: ansible-playbook -i localhost playbook.yml\n\n- name: A local play\n  hosts: localhost\n  connection: local\n  gather_facts: no\n  vars:\n    region: test_region\n    subnets:\n      - subnet_name: Public_2a\n        subnet_cidr: 192.168.100.0/26\n        subnet_az: \"{{ region }}_a\"\n      - subnet_name: Public_2b\n        subnet_cidr: 192.168.100.64/26\n        subnet_az: \"{{ region }}_b\"\n      - subnet_name: Private_2a\n        subnet_cidr: 192.168.100.128/26\n        subnet_az: \"{{ region }}_a\"\n      - subnet_name: Private_2b\n        subnet_cidr: 192.168.100.192/26\n        subnet_az: \"{{ region }}_b\"\n\n  tasks:\n    - name: Run cmd\n      shell: echo \"{{ item.subnet_name }} {{ item.subnet_cidr }} {{ item.subnet_az }}\"\n      register: cmd_out\n      loop: \"{{ subnets }}\"\n\n    - debug:\n        var: cmd_out\n
    "},{"location":"ansible/#get-a-list-of-failed-hosts","title":"Get a list of failed hosts","text":"
    {{ ansible_play_hosts_all | difference(ansible_play_hosts) }}\n
    "},{"location":"ansible/#links","title":"Links","text":""},{"location":"apfs/","title":"Apple APFS","text":"

    A lot of notes here are as of macOS 10.13, and don't apply specifically to any other devices that run APFS.

    APFS got some big bumps in macOS 12, including big snapshot improvements.

    "},{"location":"apfs/#usage","title":"Usage","text":"
    $ diskutil apfs\n2017-11-04 18:23:55-0700\nUsage:  diskutil [quiet] ap[fs] <verb> <options>\n        where <verb> is as follows:\n\n     list                (Show status of all current APFS Containers)\n     convert             (Nondestructively convert from HFS to APFS)\n     create              (Create a new APFS Container with one APFS Volume)\n     createContainer     (Create a new empty APFS Container)\n     deleteContainer     (Delete an APFS Container and reformat disks to HFS)\n     resizeContainer     (Resize an APFS Container and its disk space usage)\n     addVolume           (Export a new APFS Volume from an APFS Container)\n     deleteVolume        (Remove an APFS Volume from its APFS Container)\n     eraseVolume         (Erase contents of, but keep, an APFS Volume)\n     changeVolumeRole    (Change the Role metadata bits of an APFS Volume)\n     unlockVolume        (Unlock an encrypted APFS Volume which is locked)\n     lockVolume          (Lock an encrypted APFS Volume (diskutil unmount))\n     listCryptoUsers     (List cryptographic users of encrypted APFS Volume)\n     changePassphrase    (Change the passphrase of a cryptographic user)\n     setPassphraseHint   (Set or clear passphrase hint of a cryptographic user)\n     encryptVolume       (Start async encryption of an unencrypted APFS Volume)\n     decryptVolume       (Start async decryption of an encrypted APFS Volume)\n     updatePreboot       (Update the APFS Volume's related APFS Preboot Volume)\n\ndiskutil apfs <verb> with no options will provide help on that verb\n
    "},{"location":"apfs/#file-clones","title":"File clones","text":"

    APFS supports deduplicated file copies, which it calls clonefiles. Copying a file by option-dragging it in Finder creates a clonefile. To create a clonefile on the CLI use cp -c src dst. Creating clonefiless of any size file is instantaneous because no file data is actually being copied. This differs from hard links because if you modify the clone, only the new blocks will be written to disk, and the source of the cloned file will not be modified.

    "},{"location":"apfs/#snapshots","title":"Snapshots","text":"

    Snapshots appear to be tied pretty directly to Time Machine, and do not appear to be general purpose. There appear to be many limitations in how they can be used, and what information you can get about them.

    There was previously a tool called apfs_snapshot but it was removed before macOS 10.13 was released.

    "},{"location":"apfs/#create-a-snapshot","title":"Create a snapshot","text":"

    You cannot choose a name for your snapshot, it is tied to the date the snapshot was taken in the form of YYYY-MM-DD-HHMMSS, or date \"+%Y-%m-%d-%H%M%S\"

    $ sudo tmutil localsnapshot\nNOTE: local snapshots are considered purgeable and may be removed at any time by deleted(8).\nCreated local snapshot with date: 2021-08-23-101843\n
    "},{"location":"apfs/#show-snapshots","title":"Show snapshots","text":"
    $ sudo tmutil listlocalsnapshots /\ncom.apple.TimeMachine.2017-11-01-161748\ncom.apple.TimeMachine.2017-11-02-100755\ncom.apple.TimeMachine.2017-11-03-084837\ncom.apple.TimeMachine.2017-11-04-182813\n
    "},{"location":"apfs/#mount-a-snapshot","title":"Mount a snapshot","text":"

    The easiest way to mount snapshots is to open Time Machine.app and browse backwards in time. This will mount your snapshots at /Volumes/com.apple.TimeMachine.localsnapshots/Backups.backupdb/$HOSTNAME/$SNAPSHOT_DATE/Data or a similar path.

    If you just want to mount a single snapshot, fill in $snapshot_name using one of the lines from tmutil listlocalsnapshots /, then:

    mkdir apfs_snap\nmount_apfs -o nobrowse,ro -s \"$snapshot_name\" /System/Volumes/data \"$PWD/apfs_snap\"\n

    Older version of macOS have a slightly different syntax

    mkdir apfs_snap\nsudo mount_apfs -s \"$snapshot_name\" / \"${PWD}/apfs_snap\"\n
    "},{"location":"apfs/#delete-a-snapshot","title":"Delete a snapshot","text":"

    You can only delete snapshots based off of their date.

    $ sudo tmutil deletelocalsnapshots 2017-11-04-183813\nDeleted local snapshot '2017-11-04-183813'\n
    "},{"location":"apfs/#delete-all-snapshots","title":"Delete all snapshots","text":"
    /usr/bin/tmutil listlocalsnapshots / |\ngrep -oE '2[0-9]{3}-[0-9]{2}-[0-9]{2}-[0-9]{6}'\nwhile read -r snap ; do\n  tmutil deletelocalsnapshots \"${snap##*.}\"\ndone\n
    "},{"location":"apfs/#thin-out-snapshots","title":"Thin out snapshots","text":"

    On the given drive, reclaim the given space by thinning out snapshots. As of tmutil 4.0.0, you cannot use any data unit other than bytes. (EG: 1G or 1GB will not work)

    $ sudo tmutil thinlocalsnapshots / 250000000\nThinned local snapshots:\n2017-11-04-184425\n2017-11-04-184433\n2017-11-04-184440\n
    "},{"location":"apfs/#see-also","title":"See also","text":"
    /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util\n/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_invert\n/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_preflight_converter\n/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_stats\n
    "},{"location":"apfs/#links","title":"Links","text":""},{"location":"aptly/","title":"Aptly","text":""},{"location":"aria2/","title":"Aria2","text":"

    \"aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.\" - https://aria2.github.io/

    Of particular interest is the ability to download a single file from multiple sources, even using multiple protocols, to have increased download speed.

    "},{"location":"aria2/#examples","title":"Examples","text":""},{"location":"aria2/#download-a-file-in-place","title":"Download a file in place","text":"

    This command can be canceled and given again to resume the file download.

    ## -x5 Connect once to each server\n## -c Continue a partially downloaded file (HTTP/FTP)\n## --file-allocation=none Do not pre-allocate disk space for the file (begin downloading immediately. see man page for more options.)\n## --max-overall-download-limit=3 (K = 1024, M = 1024K)\n## --max-download-limit=1M per connection speed limits\naria2c -x5 -c --file-allocation=none --max-overall-download-limit=3 --max-download-limit=1M http://example.com/foo.iso\n
    "},{"location":"aria2/#see-also","title":"See Also","text":""},{"location":"arpwatch/","title":"arpwatch","text":"

    \"arpwatch - keep track of ethernet/ip address pairings\" - man arpwatch

    "},{"location":"arpwatch/#examples","title":"Examples","text":""},{"location":"arpwatch/#fork-and-log-to-file-not-to-e-mail","title":"Fork and log to file, not to e-mail","text":"
    arpwatch -Q\ntail -F /var/lib/arpwatch/arp.dat\n
    "},{"location":"atomicparsley/","title":"AtomicParsley","text":"

    AtomicParsley is a lightweight command line program for reading, parsing and setting metadata into MPEG-4 files. This is a functional mp4 equivalent of what i3dv2 is for mp3 files.

    "},{"location":"atomicparsley/#examples","title":"Examples","text":""},{"location":"atomicparsley/#set-metadata-on-multiple-files","title":"Set metadata on multiple files","text":"

    Unfortunately the syntax of this tool requires you to edit one file at a time, so you have to iterate each item of an album using shell loops or xargs or whatever you prefer.

    for file in *.m4a ; do\n  AtomicParsley \"${file}\" --artist \"Various Artists\" ;\ndone ;\n
    "},{"location":"atomicparsley/#remove-personally-identifiable-information-pii-from-files","title":"Remove Personally Identifiable Information (pii) from files","text":"

    Useful if you want to remove your personal info from iTunes Match files.

    for file in *.m4a ; do\n  AtomicParsley \\\n    \"$file\" \\\n    --DeepScan \\\n    --manualAtomRemove \"moov.trak.mdia.minf.stbl.mp4a.pinf\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.----.name:[iTunMOVI]\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.apID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.atID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.cnID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.cprt\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.flvr\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.geID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.plID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.purd\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.rtng\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.sfID\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.soal\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.stik\" \\\n    --manualAtomRemove \"moov.udta.meta.ilst.xid\" \\\ndone\n
    "},{"location":"automotive/","title":"Automotive","text":""},{"location":"automotive/#links","title":"Links","text":""},{"location":"autonomous-vehicles/","title":"Autonomous Vehicle Links","text":""},{"location":"autonomous-vehicles/#terms","title":"Terms","text":""},{"location":"autonomous-vehicles/#autonomy-levels","title":"Autonomy Levels","text":""},{"location":"autonomous-vehicles/#links","title":"Links","text":""},{"location":"avahi/","title":"Avahi","text":"

    The Avahi mDNS/DNS-SD daemon implements Multicast DNS like Apple's Zeroconf architecture (also known as \"Rendezvous\" or \"Bonjour\").

    "},{"location":"avahi/#tips","title":"Tips","text":"

    After installing avahi-daemon it may not start. To fix this you may need to run service messagebus start

    Service types are defined in /usr/share/avahi/service-types

    "},{"location":"avahi/#service-configs","title":"Service configs","text":"

    Correctly formatted and named files in /etc/avahi/services/whatever.service are loaded on the fly, no need to restart avahi-daemon. If your service doesn't immediately show up, check syslog for errors.

    <?xml version=\"1.0\" standalone='no'?><!--*-nxml-*-->\n<!DOCTYPE service-group SYSTEM \"avahi-service.dtd\">\n<service-group>\n  <name replace-wildcards=\"yes\">%h</name>\n  <service>\n    <type>_ssh._tcp</type>\n    <port>22</port>\n  </service>\n  <service>\n    <type>_http._tcp</type>\n    <port>80</port>\n  </service>\n</service-group>\n
    "},{"location":"awk/","title":"awk","text":"

    \"pattern-directed scanning and processing language\" - man awk

    "},{"location":"awk/#examples","title":"Examples","text":"

    Some of these require GNU awk.

    "},{"location":"awk/#print-the-first-column-of-a-file","title":"Print the first column of a file","text":"
    awk '${print $1}' filename.txt\n
    "},{"location":"awk/#print-column-2-if-column-1-matches-a-string","title":"Print column 2 if column 1 matches a string","text":"
    ps aux | awk '$1 == \"root\" {print $2}'\n
    "},{"location":"awk/#pass-in-a-variable-and-value","title":"Pass in a variable and value","text":"
    ps | awk -v host=\"$HOSTNAME\" '{print host,$0}'\n
    "},{"location":"awk/#sort-a-file-by-line-lengths","title":"Sort a file by line lengths","text":"
    awk '{print length, $0}' testfile.txt | sort -n\n
    "},{"location":"awk/#tdl-to-csv","title":"TDL to CSV","text":"
    awk '{gsub(\"\\t\",\"\\\",\\\"\",$0); print;}' | sed 's#^#\"#;s#$#\"#;'\n
    "},{"location":"awk/#print-the-first-column-of-every-other-line","title":"Print the first column of every other line","text":"

    % is the modulus operator, which finds the remainder after an integer divide.

    awk 'NR % 2 == 0 { print $1 }'\n
    "},{"location":"awk/#print-only-even-numbered-lines","title":"Print only even numbered lines","text":"
    ls | awk 'NR % 2 == 0 { print $0 }'\n
    "},{"location":"awk/#print-only-odd-numbered-lines","title":"Print only odd numbered lines","text":"
    ls | awk 'NR % 2 != 0 { print $0 }'\n
    "},{"location":"awk/#print-even-numbered-lines-on-the-same-line-before-odd-numbered-lines","title":"Print even numbered lines on the same line before odd numbered lines","text":"
    awk '{if (NR%2==0) { print $0 \" \" prev } else { prev=$0 }}'\n
    "},{"location":"awk/#print-sum-all-the-first-columns-of-each-line-in-a-file","title":"Print sum all the first columns of each line in a file","text":"
    awk '{sum += $1} END {print sum}' filename\n
    "},{"location":"awk/#print-count-sum-and-average-of-the-first-column-of-stdin","title":"Print count, sum, and average of the first column of stdin","text":"
    for _ in {1..100} ; do echo $((RANDOM % 100)) ; done |\nawk '{sum += $1} END {avg = sum/NR ; printf \"Count:   %s\\nSum:     %s\\nAverage: %s\\n\", NR, sum, avg}'\n
    "},{"location":"awk/#split-file-by-recurring-string","title":"Split file by recurring string","text":"

    This will create a new file every time the string \"SERVER\" is found, essentially splitting the file by that string. Concatenating all of the output files would create the original file (potentially adding an extra newline).

    awk '/SERVER/{n++}{print >\"out\" sprintf(\"%02d\", n) \".txt\" }' example.txt\n
    "},{"location":"awk/#show-count-of-syslog-messages-per-minute","title":"Show count of syslog messages per minute","text":"
    awk -F: {'print $1 `\u201c`:`\u201d` $2'} /var/log/messages |uniq -c\n
    "},{"location":"awk/#show-count-of-root-logins-per-minute","title":"Show count of root logins per minute","text":"
    awk -F: '/root/{print $1 \":\" $2}' /var/log/auth.log |uniq -c\n
    "},{"location":"awk/#print-lines-in-ls-where-uid-is-numeric","title":"Print lines in ls where UID is numeric","text":"
    ls -la | awk '$3 ~/[0-9]/{print}'\n
    "},{"location":"awk/#show-only-zfs-snapshots-whose-size-is-zero","title":"Show only zfs snapshots whose size is zero","text":"
    zfs list -t snapshot | awk '$2 == 0'\n
    "},{"location":"awk/#print-a-line-if-the-third-field-does-not-match-a-regex","title":"Print a line if the third field does not match a regex","text":"
    echo {100..200} | fold -w 12 | awk '$3 !~ /[13579]$/ {print}'\n
    "},{"location":"awk/#show-500-errors-in-a-standard-apache-access-log","title":"Show 500 errors in a standard apache access log","text":"
    awk '$9 ~ /5[0-9][0-9]/' access.log\n
    "},{"location":"awk/#show-total-rss-and-vsz-count-for-all-cronolog-processes","title":"Show total rss and vsz count for all cronolog processes","text":"
    ps aux |\n  grep -i cronolo[g] |\n  awk '{vsz += $5; rss += $6} END {print \"vsz total = \"vsz ; print \"rss total = \"rss}'\n
    "},{"location":"awk/#get-ipv4-address-on-bsdosx","title":"Get IPv4 address on BSD/OSX","text":"
    ifconfig | awk '$1 == \"inet\" && $2 != \"127.0.0.1\" {print $2}'\n
    "},{"location":"awk/#get-ipv6-address-on-bsdosx","title":"Get IPv6 address on BSD/OSX","text":"
    ifconfig | awk '$1 == \"inet6\" && $2 !~ \"::1|.*lo\" {print $2}'\n
    "},{"location":"awk/#print-the-last-element","title":"Print the last element","text":"
    ls -la | awk -F\" \" '{print $NF}'\n
    "},{"location":"awk/#print-2nd-to-last-element","title":"Print 2nd to last element","text":"
    ls -la | awk -F\" \" '{print $(NF - 1)}'\n
    "},{"location":"awk/#print-the-previous-line-on-string-match","title":"Print the previous line on string match","text":"

    This works by storing the previous line. If the current line matches the regex, the previous line is printed from the stored value.

    $ awk '/32 host/ { print previous_line } {previous_line=$0}' /proc/net/fib_trie | column -t | sort -u\n|--  10.134.243.137\n|--  127.0.0.1\n|--  169.50.9.172\n
    "},{"location":"awk/#add-content-to-line-1-if-there-is-no-match","title":"Add content to line 1 if there is no match","text":"

    This adds a yaml document separator to the beginning of all yaml files in the current directory only if it does not already have one.

    tempfile=$(mktemp)\nfor file in ./*.yaml ; do\n  awk 'NR == 1 && $0 != \"---\" {print \"---\"} {print}' \"${file}\" > \"${tempfile}\" \\\n  && mv \"${tempfile}\" \"${file}\"\ndone\n
    "},{"location":"awk/#show-all-docker-images-in-a-helm-chart-and-their-https-links","title":"Show all docker images in a helm chart and their https links","text":"
    helm template . --set global.baseDomain=foo.com -f /Users/danielh/a/google-environments/prod/cloud/app/config.yaml 2>/dev/null |\nawk '/image: / {match($2, /(([^\"]*):[^\"]*)/, a) ; printf \"https://%s %s\\n\", a[2], a[1] ;}' |\nsort -u |\ncolumn -t\n

    A less complicated awk form of this that uses other shell commands would be

    helm template . --set global.baseDomain=foo.com -f /Users/danielh/a/google-environments/prod/cloud/app/config.yaml 2>/dev/null |\ngrep 'image: ' |\nawk '{print $2}' |\nsed 's/\"//g' |\nsed 's/\\(\\(.*\\):.*\\)/https:\\/\\/\\2 \\1/' |\nsort -u |\ncolumn -t\n

    So it really depends on where you want to put your complications, how performant you want to be, and how readable you want it to be. These both produce identical output, but some people find it easier to read shorter commands with simpler syntaxes, which is great for maintainability when performance is not an issue.

    https://quay.io/astronomer/ap-alertmanager  quay.io/astronomer/ap-alertmanager:0.23.0\nhttps://quay.io/astronomer/ap-astro-ui      quay.io/astronomer/ap-astro-ui:0.25.4\nhttps://quay.io/astronomer/ap-base          quay.io/astronomer/ap-base:3.14.2\nhttps://quay.io/astronomer/ap-cli-install   quay.io/astronomer/ap-cli-install:0.25.2\n...snip...\n
    "},{"location":"awk/#show-a-list-of-dns-hostname-queries-with-domain-stripped-sorted-by-hostname-length","title":"Show a list of dns hostname queries with domain stripped, sorted by hostname length","text":"

    This samples 100k dns queries, strips off all the domain names in the queried hostname, and prints the length of that first component of the FQDN (the bare hostname) along with the bare hostname itself, and shows the longest 25 entries.

    tcpdump -c 100000 -l -n -e dst port 53 |\nawk '$14 == \"A?\" {gsub(/\\..*/, \"\", $15) ; print(length($15), $15) ; fflush(\"/dev/stdout\") ;}' |\nsort -u |\nsort -n |\ntail -n 25\n

    Run this on your kube-dns nodes to see how close you're getting to the 63 character limit. You will never see errors though, because any name with components that are longer than 63 characters are not sent over the wire, so you'll need to check your logs for those. A good string to search for is \"63 characters\".

    "},{"location":"awk/#see-also","title":"See Also","text":""},{"location":"awless/","title":"awless","text":"

    \"A Mighty CLI for AWS\" - https://github.com/wallix/awless

    "},{"location":"awless/#examples","title":"Examples","text":"

    A lot of these syntax examples can be found by issuing the command, verb and entity but no parameters. Such as awless create stack, which will drop you into a prompt series to complete the necessary and optional parameters.

    "},{"location":"awless/#list-ec2-instances-sorted-by-uptime","title":"List ec2 instances sorted by uptime","text":"
    $ awless list instances --sort=uptime\n|         ID          |    ZONE    |           NAME          |  STATE  |    TYPE    | PUBLIC IP |   PRIVATE IP  | UPTIME \u25b2 | KEYPAIR |\n|---------------------|------------|-------------------------|---------|------------|-----------|---------------|----------|---------|\n| i-050ad501b33c6ad07 | us-west-1a | faruko-nal              | running | m4.xlarge  |           | 172.19.15.172 | 85 mins  | foo-ops |\n| i-5b381e9b          | us-west-1b | planted-collector11.foo | running | m4.xlarge  |           | 172.27.26.159 | 6 days   | foo-ops |\n| i-04ced9880586c009b | us-west-1a | hadoop07.foo            | running | m4.4xlarge |           | 172.27.37.100 | 8 days   | foo-ops |\n| i-0e583dcd3bc2444d8 | us-west-1a | db-na-historical06.foo  | running | m2.4xlarge |           | 172.19.48.79  | 12 days  | foo-ops |\n
    "},{"location":"awless/#sum-the-amount-of-unattached-disks-in-your-environment","title":"Sum the amount of unattached disks in your environment","text":"
    awless list volumes \\\n    --filter state=available \\\n    --format json |\n  jq .[].Size |\n  awk '{sum += $1 ; count += 1 ;} END {print sum \"G in \" count \" volumes\"}'\n
    "},{"location":"awless/#switch-to-a-different-aws-profile","title":"Switch to a different AWS profile","text":"

    This uses the ~/.aws/credentials file for its profiles

    Short way:

    awless switch prod\n

    Long way:

    awless config set aws.profile prod\n
    "},{"location":"awless/#customize-output-columns","title":"Customize output columns","text":"
    awless list instances --columns name,type,launched\n
    "},{"location":"awless/#add-a-user-to-a-group","title":"Add a user to a group","text":"
    awless \\\n  --aws-profile govcloud \\\n  --aws-region us-gov-west-1 \\\n  attach user \\\n  group=SystemAdministrators \\\n  name=SpaceGhost\n
    "},{"location":"awless/#create-an-access-key-for-a-user","title":"Create an access key for a user","text":"

    This creates an access key and saves it in ~/.aws/credentials

    awless \\\n  --aws-profile govcloud \\\n  --aws-region us-gov-west-1 \\\n  create accesskey \\\n  user=SpaceGhost \\\n  save=true\n
    "},{"location":"awless/#create-a-tag","title":"Create a tag","text":"
    awless create tag key=test_tag resource=i-9ba90158 value=true\n
    "},{"location":"awless/#delete-a-tag","title":"Delete a tag","text":"
    awless delete tag key=test_tag_dhoherd resource=i-9ba90158\n
    "},{"location":"awless/#create-an-instance","title":"Create an instance","text":"
    awless create instance \\\n  count=1 \\\n  image=ami-5ab82fa8 \\\n  keypair=ops \\\n  name=new-hostname \\\n  securitygroup=[sg-c4321fd1,sg-c4321cb0] \\\n  subnet=subnet-c4321c33 \\\n  type=t2.medium\n
    "},{"location":"awless/#see-also","title":"See also","text":""},{"location":"aws-cloudformation/","title":"Amazon AWS Cloudformation","text":"

    \"AWS CloudFormation is a service that helps you model and set up your Amazon Web Services resources so that you can spend less time managing those resources and more time focusing on your applications that run in AWS.\" - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html

    "},{"location":"aws-cloudformation/#links","title":"Links","text":""},{"location":"aws-cloudformation/#examples","title":"Examples","text":""},{"location":"aws-cloudformation/#import-cloudformation-stack-entities-into-datasette","title":"Import cloudformation stack entities into Datasette","text":"
    aws cloudformation list-stack-resources --stack-name \"$STACK_NAME\" --region \"$REGION\"  |\njq -c '.[]' |\nsqlite-utils insert datasette.db stack -\n
    "},{"location":"awscli/","title":"Amazon awscli","text":"

    Official Amazon AWS command-line interface - https://aws.amazon.com/cli

    "},{"location":"awscli/#example-usage","title":"Example usage","text":""},{"location":"awscli/#show-subnets-for-a-particular-region-and-account","title":"Show subnets for a particular region and account","text":"
    aws --profile=dev --region=us-west-2 ec2 describe-subnets\n
    "},{"location":"awscli/#see-also","title":"See Also","text":""},{"location":"backups/","title":"Backups","text":"

    Notes about backing up data.

    "},{"location":"backups/#links","title":"Links","text":""},{"location":"badblocks/","title":"badblocks","text":"

    badblocks is a program to test storage devices for bad blocks. - https://wiki.archlinux.org/index.php/badblocks

    "},{"location":"badblocks/#examples","title":"Examples","text":""},{"location":"badblocks/#destroy-all-data-on-a-disk-while-logging-bad-blocks","title":"Destroy all data on a disk while logging bad blocks","text":"
    ## -v verbose output writes error info to stderr\n## -s show scan progress, including percent complete, time elapsed, and error count\n## -w destructive write test, vs -n (nondestructive read/write test)\n## -b 4096 byte blocks\n## -t random test pattern\n## -o output file containing list of bad blocks, which can be passed back to badblocks, fsck or mke2fs\nbadblocks -v -s -w -b 4096 -t random -o ~/sdc.txt /dev/sdc\n
    "},{"location":"badblocks/#see-also","title":"See also","text":""},{"location":"bash/","title":"GNU bash","text":"

    Bash is one of the most common mainstream unix shells.

    "},{"location":"bash/#tips-and-usage-examples","title":"Tips and Usage Examples","text":""},{"location":"bash/#navigating-on-the-command-line","title":"Navigating on the command line","text":"

    The following can be seen by running: stty -a

    "},{"location":"bash/#view-a-list-of-all-commands-etc","title":"View a list of all commands, etc..","text":""},{"location":"bash/#remove-leading-zeroes","title":"Remove leading zeroes","text":"

    This method converts the numbers from base-10 to base-10, which has the side effect of removing leading zeroes. You can also use this to convert from other base systems

    for X in 00{1..20..2} ; do\n  echo \"$X = $(( 10#${X} ))\"\ndone\n

    Or use bc, a CLI calculator...

    for X in {1..50..5} ; do\n  Y=00${X}\n  echo \"${X} with zeroes is ${Y} and removed with bc is $(echo ${Y} | bc)\"\ndone ;\n
    "},{"location":"bash/#print-several-files-side-by-side","title":"Print several files side by side","text":"
    printf \"%s\\n\" {a..z} > alpha.txt\nprintf \"%s\\n\" {1..26} > num.txt\npr -w 10 -t -m alpha.txt num.txt\n

    The following output will be printed:

    a    1\nb    2\nc    3\nd    4\ne    5\nf    6\ng    7\nh    8\ni    9\nj    10\nk    11\nl    12\nm    13\nn    14\no    15\np    16\nq    17\nr    18\ns    19\nt    20\nu    21\nv    22\nw    23\nx    24\ny    25\nz    26\n
    "},{"location":"bash/#convert-base-36-to-decimal","title":"Convert base 36 to decimal","text":"

    This converts the base 36 number z to a decimal value

    echo $((36#z))\n
    "},{"location":"bash/#run-a-command-for-5-seconds-then-kill-it","title":"Run a command for 5 seconds, then kill it","text":"
    ping -f & sleep 5 ; kill %1\n

    Alternatively, use the timeout command if it's available. In macOS this can be installed through brew install coreutils and accessed with gtimeout.

    timeout 300 cmd\n
    "},{"location":"bash/#test-if-a-variable-is-empty","title":"Test if a variable is empty","text":"
    if [[ -z \"$var\" ]]\n
    "},{"location":"bash/#date","title":"Date","text":"

    For date stuff, see date, because it differs by platform.

    "},{"location":"bash/#show-random-statistics","title":"Show RANDOM statistics","text":"
    for X in {0..9999} ; do\n  echo $(($RANDOM % 5)) ;\ndone |\nsort |\nuniq -c\n
    "},{"location":"bash/#named-pipes","title":"named pipes","text":"
    mkfifo baz ; ps aux > baz\n

    then, in another terminal

    cat baz\n
    "},{"location":"bash/#alternate-redirection-outputs","title":"alternate redirection outputs","text":"
    exec 3> /tmp/baz ; ps aux >&3 # sends the output of ps aux to /tmp/baz\n
    "},{"location":"bash/#redirect-all-output-of-a-script-into-a-file","title":"Redirect all output of a script into a file","text":"

    This is not bash specific, but works in bash.

    ##!/usr/bin/env bash\n\nexec >> /tmp/$0.log\nexec 2>&1\n\ndate \"+%F %T%z $0 This is stdout, and will be written to the log\"\ndate \"+%F %T%z $0 This is stderr, and will also be written to the log\"\n
    "},{"location":"bash/#show-size-of-each-users-home-folder","title":"Show size of each user's home folder","text":"
    getent passwd |\nwhile IFS=: read -r user _ uid _ _ home _ ; do\n  if [[ $uid -ge 500 ]] ; then\n    printf \"$user \" ;\n    sudo du -sh $home ;\n  fi ;\ndone\n
    "},{"location":"bash/#previous-commands-args","title":"Previous command's args","text":"
    mkdir temp ; cd !!:*\n

    Be aware of the location of the tokens. For example:

    mkdir -p {foo,bar}/{a,b,c}\nstat !!:*\n

    This creates a problem because you can't stat -p so you must stat -p !!:2*

    "},{"location":"bash/#debug-a-script","title":"Debug a script","text":"

    This will show everything bash is executing

    bash -x scriptname.sh\n

    Or debug with a function:

    function debug {\n  if [ \"${debug:-0}\" -gt 0 ] ; then\n    echo \"$@\" 2>&1\n  fi\n}\n
    "},{"location":"bash/#debug-nested-scripts","title":"Debug nested scripts","text":"
    PS4=\"+(\\${BASH_SOURCE}:\\${LINENO}): \\${FUNCNAME[0]:+\\${FUNCNAME[0]}(): }\" bash -x some-command\n
    "},{"location":"bash/#find-where-all-the-inodes-are","title":"Find where all the inodes are","text":"
    find ~/ -type d -print0 |\nxargs -I %% -0 bash -c \"echo -n %% ; ls -a '%%' | wc -l\" >> ~/inodes.txt\n
    "},{"location":"bash/#build-and-print-an-array","title":"Build and print an array","text":"
    array=(\"one is the first element\");\narray+=(\"two is the second element\" \"three is the third\");\necho \"${array[@]}\"\n

    This is useful for building command line strings. For example, gpsbabel requires each input file to be prepended with -f. The following script takes a list of files and uses a bash array to create a command line in the form of gpsbabel -i gpx -f input_file_1.gpx -f input_file_2.gpx -o gpx -F output.gpx

    ##!/usr/bin/env bash\n\n## Check for at least one argument, print usage if fail\nif [ $# -lt 2 ] ; then\n    echo \"This script merges gpx files and requires at least two gpx files passed as arguments. Output is output.gpx\";\n    echo \"Usage:    $0 <gpx file> <gpx file> [...<gpx file>]\";\n    exit 1;\nfi\n\n## Create an array of arguments to pass to gpsbabel\nargs=();\nfor item in \"$@\" ; do\n    if [ -f \"$item\" ] || [ -h \"$item\" ] ; then\n        args+=( \"-f\" \"$item\" );\n    else\n        echo \"Skipping $item, it's not a file or symlink.\"\n    fi\ndone;\n\n## Verify we have at least two files to work with\nif [ \"${#args[@]}\" -lt 4 ] ; then\n    echo \"We don't have enough actual files to work with. Exiting.\"\n    exit 1\nfi\n\ngpsbabel -i gpx \"${args[@]}\" -o gpx -F output.gpx\n
    "},{"location":"bash/#build-and-print-an-associative-array-dict-hash","title":"Build and print an associative array (dict, hash)","text":"
    declare -A animals=(\n  [\"cow\"]=\"moo\"\n  [\"dog\"]=\"woof woof\"\n  [\"cat\"]=\"meow\"\n) ;\nfor animal in \"${!animals[@]}\" ; do\n  echo \"The $animal says '${animals[$animal]}'\" ;\ndone ;\n
    "},{"location":"bash/#show-permissions-in-rwx-and-octal-format","title":"Show permissions in rwx and octal format","text":"

    Linux:

    stat -c '%A %a %n' filename\n

    OSX:

    stat -f '%A %N' filename\n

    See stat for more stat usage.

    "},{"location":"bash/#find-the-length-of-a-variable","title":"Find the length of a variable","text":"
    echo ${#SHELL}\n
    "},{"location":"bash/#print-all-variables-that-start-with-the-substring-sh","title":"Print all variables that start with the substring SH","text":"
    echo \"${!SH@}\"\n
    "},{"location":"bash/#tertiary-type-variables","title":"Tertiary type variables","text":"
    ${V:-empty} # means \"return the value of the variable V or the string 'empty' if $V isn't set.\n
    "},{"location":"bash/#do-a-command-and-if-it-returns-false-so-some-more-stuff","title":"Do a command, and if it returns false, so some more stuff","text":"
    until command_that_will_fail ; do something_else ; done ;\n
    "},{"location":"bash/#print-two-digit-months","title":"Print two digit months","text":"

    echo {1..12} may not work. If not, use echo $(seq -w 1 12)

    "},{"location":"bash/#get-filename-extension-or-path","title":"Get filename, extension or path","text":"

    Taken from http://mywiki.wooledge.org/BashFAQ/073

    "},{"location":"bash/#rename-files-to-a-sequence-and-change-their-extension-at-the-same-time","title":"Rename files to a sequence and change their extension at the same time","text":"
    ls | while read -r line ; do\n  stub=${line%.*} ;\n  (( i += 1 )) ;\n  mv \"${line}\" \"${i}-${stub}.txt3\" ;\ndone ;\n
    FullPath=/path/to/name4afile-00809.ext   # result:   #   /path/to/name4afile-00809.ext\nFilename=${FullPath##*/}                             #   name4afile-00809.ext\nPathPref=${FullPath%\"$Filename\"}                     #   /path/to/\nFileStub=${Filename%.*}                              #   name4afile-00809\nFileExt=${Filename#\"$FileStub\"}                      #   .ext\n
    "},{"location":"bash/#sort-a-line-by-spaces","title":"Sort a line by spaces","text":"
    s=( whiskey tango foxtrot );\nsorted=$(printf \"%s\\n\"` `${s[@]}|sort);\necho $sorted\n
    "},{"location":"bash/#calculate-the-difference-between-two-dates","title":"Calculate the difference between two dates","text":"
    echo $(( $(gdate +%s -d 20120203) - $(gdate +%s -d 20120115) ))\n
    "},{"location":"bash/#substring-replace-a-variable","title":"substring replace a variable","text":"

    This is not regex, just a simple string replacement.

    ## ${VAR/search/replace} does only the first\n## ${VAR//search/replace} does all replacements\necho \"Paths in your path: ${PATH//:/ }\"\n
    "},{"location":"bash/#subtract-two-from-a-mac-address","title":"Subtract two from a MAC address","text":"
    ## printf -v defines a variable instead of printing to stdout\nprintf -v dec \"%d\" 0x$(echo 00:25:9c:52:1c:2a | sed 's/://g') ;\nlet dec=${dec}-2 ;\nprintf \"%012X\" ${dec} \\\n| sed -E 's/(..)(..)(..)(..)(..)(..)/\\1:\\2:\\3:\\4:\\5:\\6/g'\n
    "},{"location":"bash/#print-the-last-for-chars-of-a-variable","title":"Print the last for chars of a variable","text":""},{"location":"bash/#dereference-a-variable","title":"Dereference a variable","text":"
    $ for var in ${!BASH_V*} ; do echo \"${var}: ${!var}\" ; done ;\nBASH_VERSINFO: 5\nBASH_VERSION: 5.0.7(1)-release\n
    "},{"location":"bash/#print-something-else-if-a-variable-doesnt-exist","title":"Print something else if a variable doesn't exist","text":"

    This can even be recursively done...

    "},{"location":"bash/#print-every-third-number-starting-with-1-and-ending-with-30","title":"Print every third number starting with 1 and ending with 30","text":"

    echo {1..30..3}

    "},{"location":"bash/#print-every-5th-letter-of-the-alphabet","title":"Print every 5th letter of the alphabet","text":"

    echo {a..z..5}

    "},{"location":"bash/#process-all-lines-but-print-out-status-about-what-line-we-are-on-every-nth-line","title":"Process all lines, but print out status about what line we are on every Nth line","text":"

    Sometimes during a series of long-running jobs you want to see the status of where you are at, or at least some indicator that things have not paused. when ctrl-t is not available (and even when it is) this pattern can help you monitor that things are still moving a long.

    N=0\nfind \"/usr/bin\" -type f |\nwhile read -r X ; do\n  N=$((N + 1))\n  [[ \"$((N % 50))\" -eq 0 ]] && date \"+%F %T file number $N $X\" >&2\n  shasum -a 512 \"${X}\" >> ~/usr_bin_shasums.txt\ndone\n

    Example terminal output from the above command, while all shasum output goes into ~/usr_bin_shasums.txt:

    $ find \"/usr/bin\" -type f |\n> while read -r X ; do\n>   N=$((N + 1))\n>   [[ \"$((N % 50))\" -eq 0 ]] && date \"+%F %T file number $N $X\" >&2\n>   shasum -a 512 \"${X}\" >> ~/usr_bin_shasums.txt\n> done\n2018-02-24 15:30:29 file number 50 /usr/bin/toe\n2018-02-24 15:30:30 file number 100 /usr/bin/db_hotbackup\n2018-02-24 15:30:32 file number 150 /usr/bin/host\n2018-02-24 15:30:33 file number 200 /usr/bin/groffer\n2018-02-24 15:30:35 file number 250 /usr/bin/mail\n2018-02-24 15:30:36 file number 300 /usr/bin/dbicadmin\n2018-02-24 15:30:38 file number 350 /usr/bin/fwkpfv\n2018-02-24 15:30:39 file number 400 /usr/bin/tab2space\n
    "},{"location":"bash/#make-a-directory-structure-of-every-combination-of-adjectivenoun","title":"Make a directory structure of every combination of /adjective/noun","text":"

    mkdir -p {red,green,blue}/{fish,bird,flower}

    "},{"location":"bash/#generate-a-zero-padded-random-2-byte-hex-number","title":"Generate a zero padded random 2 byte hex number","text":"

    printf \"%02X\\n\" $((RANDOM % 256))

    "},{"location":"bash/#grep-many-log-files-and-sort-output-by-date","title":"grep many log files and sort output by date","text":"
    sudo grep cron /var/log/* |\nsed 's/:/ /' |\nwhile read file month day hour line ; do\n  date -d \"$month $day $hour\" \"+%F %T%z ${file} ${line}\" ;\ndone |\nsort\n
    "},{"location":"bash/#get-command-line-switches","title":"Get command line switches","text":"

    From the docs

    while getopts p:l:t: opt; do\n  case $opt in\n    p) pages=$OPTARG ;;\n    l) length=$OPTARG ;;\n    t) time=$OPTARG ;;\n  esac\ndone\n\nshift $((OPTIND - 1))\necho \"pages is ${pages}\"\necho \"length is ${length}\"\necho \"time is ${time}\"\necho \"\\$1 is $1\"\necho \"\\$2 is $2\"\n

    Call this script as ./foo.sh -p \"this is p\" -l llll -t this\\ is\\ t foo bar

    "},{"location":"bash/#unexpected-code-execution","title":"Unexpected code execution","text":"

    When using numeric comparison operators that use array syntax, code that determines the array index is executed:

    $ rm -f pwnd ; [[ -v '$(echo hello > pwnd)' ]] ; cat pwnd ; # does not use array syntax\ncat: pwnd: No such file or directory\n$ rm -f pwnd ; [[ -v 'x[$(echo hello > pwnd)]' ]] ; cat pwnd ; # uses array syntax\nhello\n

    This also happens with -eq

    $ rm -f pwnd ; [[ 0 -eq 'x$(echo hello > pwnd)' ]] ; cat pwnd ; # does not use array syntax\n-bash: [[: x$(echo hello > pwnd): syntax error: invalid arithmetic operator (error token is \"$(echo hello > pwnd)\")\ncat: pwnd: No such file or directory\n$ rm -f pwnd ; [[ 0 -eq 'x[$(echo hello > pwnd)]' ]] ; cat pwnd ; # uses array syntax\nhello\n

    Via https://yossarian.net/til/post/some-surprising-code-execution-sources-in-bash

    "},{"location":"bash/#files","title":"Files","text":"

    These files can change the behavior of bash.

    "},{"location":"bash/#bash_profile","title":".bash_profile","text":"

    ~/.bash_profile is executed every time you log into the system or initiate a login shell. Inclusion of things that write to stdout is allowed here.

    If you want to write scripts that change your interactive shell environment, such as changing your CWD, define functions here instead of using stand-alone scripts.

    "},{"location":"bash/#example-bash_profile","title":"Example .bash_profile","text":"

    The ~/.bash_profile file can be quite long and complicated. The following example is an incomplete sample:

    export EDITOR=/usr/bin/vim\nexport GZIP='-9'\nexport HISTSIZE=5000\nexport HISTTIMEFORMAT='%F %T%z '\nexport PS1=\"\\u@\\h:\\w$ \"\nexport TERM=xterm-256color\nexport TMOUT=\"1800\"  # log out after this many seconds of shell inactivity\n\nalias ll='ls -la'\nalias temp='date_F=$(date +%F) ; mkdir -p ~/temp/$date_F 2>/dev/null ; cd ~/temp/$date_F'\n\nsprunge() { curl -F 'sprunge=<-' http://sprunge.us < \"${1:-/dev/stdin}\"; } # usage: sprunge FILE # or some_command | sprunge\n\n## Don't record some commands\nexport HISTIGNORE=\"&:[ ]*:exit:ls:bg:fg:history:clear\"\n\n## Avoid duplicate entries\nHISTCONTROL=\"erasedups:ignoreboth\"\n\n## Perform file completion in a case insensitive fashion\nbind \"set completion-ignore-case on\"\n
    "},{"location":"bash/#bashrc","title":".bashrc","text":"

    ~/.bashrc is executed every time you open a sub-shell. It should not output any text, otherwise certain things (eg: scp) will fail.

    "},{"location":"bash/#inputrc","title":"~/.inputrc","text":"

    This file defines some bash behaviors. It also affects some other tools.

    ## Ignore case while completing\nset completion-ignore-case on\n
    "},{"location":"bash/#links","title":"Links","text":""},{"location":"bbcp/","title":"bbcp","text":"

    \"Securely and quickly copy data from source to target.\" - https://www.slac.stanford.edu/~abh/bbcp/

    This is a useful tool for copying files. Notably it gets around some bandwidth limitations of nc that I ran into when trying to copy one large file across an 80gbps network.

    "},{"location":"bc/","title":"GNU bc","text":"

    bc is a tool that does math on the CLI.

    "},{"location":"bc/#examples","title":"Examples","text":""},{"location":"bc/#divide-one-number-into-another-and-show-two-decimal-places","title":"Divide one number into another and show two decimal places","text":"

    The scale variable sets the number of significant digits.

    echo \"scale=2 ; 7 / 3\" | bc

    "},{"location":"bc/#convert-decimal-to-hexadecimal","title":"Convert decimal to hexadecimal","text":"

    echo \"obase=16 ; 10\" | bc

    "},{"location":"bc/#convert-hexadecimal-to-binary","title":"Convert hexadecimal to binary","text":"

    echo \"ibase=16 ; obase=2 ; AF\" | bc

    "},{"location":"bc/#subtract-two-from-the-last-octet-of-a-mac-address","title":"Subtract two from the last octet of a MAC address","text":"
    echo 24:b6:fd:ff:ba:31 |\nwhile read -r X ; do\n  echo ${X%??}$(\n    echo \"obase=16 ; $(( 0x${X#*:??:??:??:??:} )) - 2\" |\n      bc |\n      sed 's/^\\(.\\)$/0\\1/' |\n      tr A-Z a-z\n  ) ;\ndone ;\n
    "},{"location":"bind/","title":"BIND","text":"

    BIND, or named, is the most widely used Domain Name System (DNS) software on the Internet.

    "},{"location":"bind/#flush-records","title":"Flush records","text":""},{"location":"bind/#flush-a-single-record","title":"Flush a single record","text":"
    rndc flushname github.com\n
    "},{"location":"bind/#flush-all-records","title":"Flush all records","text":"
    rndc flush\n
    "},{"location":"blkid/","title":"blkid","text":"

    \"The blkid program is the command-line interface to working with the libblkid(3) library. It can determine the type of content (e.g. filesystem or swap) that a block device holds, and also attributes (tokens, NAME=value pairs) from the content metadata (e.g. LABEL or UUID fields). blkid has two main forms of operation: either searching for a device with a specific NAME=value pair, or displaying NAME=value pairs for one or more specified devices.\" - man blkid

    "},{"location":"blkid/#examples","title":"Examples","text":""},{"location":"blkid/#simple-usage","title":"Simple usage","text":"

    Here is the output of blkid on an Ubuntu 16.04 Vagrant box:

    $ blkid\n/dev/sda1: LABEL=\"cloudimg-rootfs\" UUID=\"743b1402-d445-494c-af0b-749040bb33e4\" TYPE=\"ext4\" PARTUUID=\"95a4c157-01\"\n/dev/sdb: UUID=\"2017-12-12-14-38-00-00\" LABEL=\"cidata\" TYPE=\"iso9660\"\n
    "},{"location":"blkid/#see-also","title":"See Also","text":""},{"location":"bluetooth/","title":"bluetooth","text":""},{"location":"bluetooth/#examples","title":"Examples","text":""},{"location":"bluetooth/#linux-software","title":"Linux software","text":""},{"location":"bpf/","title":"bpf","text":"

    \"Linux Socket Filtering (LSF) is derived from the Berkeley Packet Filter. Though there are some distinct differences between the BSD and Linux Kernel filtering, but when we speak of BPF or LSF in Linux context, we mean the very same mechanism of filtering in the Linux kernel.\"

    "},{"location":"c/","title":"C","text":"

    \"C (pronounced like the letter c) is a general-purpose computer programming language. It was created in the 1970s by Dennis Ritchie, and remains very widely used and influential.\" - https://en.wikipedia.org/wiki/C_(programming_language)

    The linux kernel is > 98% C code.

    "},{"location":"c/#links","title":"Links","text":""},{"location":"calico/","title":"calico","text":"

    \"Calico provides secure network connectivity for containers and virtual machine workloads.\" - https://docs.projectcalico.org/v3.1/introduction/

    "},{"location":"calico/#kubernetes-examples","title":"Kubernetes Examples","text":"

    Calico works in several environments, but these examples all apply to Kubernetes.

    "},{"location":"calico/#installation","title":"Installation","text":"

    https://docs.projectcalico.org/v3.1/getting-started/kubernetes/installation/

    "},{"location":"calico/#show-a-bunch-of-info-about-your-calico-config","title":"Show a bunch of info about your calico config","text":"

    See also https://docs.projectcalico.org/v2.0/reference/calicoctl/resources/

    for X in bgpPeer hostEndpoint ipPool node policy profile workloadEndpoint ; do\n  echo \"=========== $X\"\n  calicoctl get $X 2>/dev/null\ndone\n
    "},{"location":"calico/#links","title":"Links","text":""},{"location":"calver/","title":"CalVer","text":"

    \"CalVer is a software versioning convention that is based on your project's release calendar, instead of arbitrary numbers.\" - https://calver.org/

    "},{"location":"calver/#links","title":"Links","text":""},{"location":"centos/","title":"CentOS Linux","text":"

    \"The CentOS Project is a community-driven free software effort focused on delivering a robust open source ecosystem.\" - https://www.centos.org/

    "},{"location":"centos/#centos-7","title":"CentOS 7","text":""},{"location":"centos/#new-things-in-centos-7","title":"New things in CentOS 7","text":""},{"location":"centos/#initial-setup","title":"Initial setup","text":"

    Set up some base parameters on a fresh instance

    yum install -y bash-completion bc curl git lsof mlocate mutt net-snmp ntpd smartmontools strace sysstat vim wget\nln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime\nntpdate {0..3}.pool.ntp.org\nsystemctl start ntpd\n
    "},{"location":"centos/#centos-6","title":"CentOS 6","text":""},{"location":"centos/#centos-6-initial-setup","title":"CentOS 6 Initial Setup","text":"
    yum install -y ntp\nchkconfig --levels 345 ntpd on && ntpdate time.apple.com && service ntpd start\nyum upgrade -y\nyum install -y arping avahi avahi-tools bc bind-utils curl elinks fping lsof net-snmp man mlocate mutt openssh openssh-clients openssh-server perl-Crypt-SSLeay perl-libwww-perl rsync strace vim wget yum-cron\nln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime\nchkconfig --levels 345 yum-cron on && service yum-cron start\nyum install -y dcfldd nfs-utils smartmontools dmidecode lshw dstat htop iotop\nchkconfig --levels 345 smartd on && service smartd start\n
    "},{"location":"centos/#tweaks-and-tricks","title":"Tweaks and Tricks","text":""},{"location":"centos/#get-past-protected-lib-problems","title":"Get past protected lib problems","text":"

    yum update --setopt=protected_multilib=false --skip-broken

    "},{"location":"centos/#enable-dhcp-hostname-for-dns-resolution","title":"Enable DHCP Hostname for DNS resolution","text":"

    add \"DHCP_HOSTNAME=whatever\" to /etc/sysconfig/network-scripts/ifcfg-eth0

    "},{"location":"centos/#install-os-from-usb","title":"Install OS from USB","text":""},{"location":"centos/#show-installed-repository-keys","title":"Show installed repository keys","text":"

    rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\\n'

    "},{"location":"centos/#dhcp-with-ddns-hostname","title":"DHCP with DDNS hostname","text":"

    Model your /etc/sysconfig/network-scripts/ifcfg-eth0 like this:

    TYPE=Ethernet\nDEVICE=eth0\nONBOOT=yes\nBOOTPROTO=dhcp\n## Without the following line, dhclient will not update /etc/resolv.conf and may not get an IP address at all\nDHCP_HOSTNAME=some_hostname\n