Compare commits

..

No commits in common. "42767fe41f86761b7ce67838e7cb3c34c0a998f6" and "41d15d97dcb3a9c368d347173943bb491f84c5b1" have entirely different histories.

18 changed files with 876 additions and 114 deletions

View File

@ -43,15 +43,3 @@ This will print all pending IDs. Remove a job by the ID with:
> atrm 2
Check /var/spool/atd/
## Automation
Automatically add a job for later, by setting the date, then using echo for the command.
> t="$(date -d "2 minutes" +%R)"
> echo "fortune > ~/file" | at "$t"
> watch cat file
The `$t` here outputs the day in minutes, but you could also do `t="$(date -d "2 days" +%m/%d/%Y)"`.

View File

@ -91,11 +91,7 @@ If you're using vim as the editor, just run this at the top of your crontab:
> :r!echo PATH=$PATH
### `date` Commands
Cron doesn't understand the `%` sign, so if you want to use `date +%R`, then it should be escaped with a backslash: `date +\%R`.
### File Location
### Location
The crontab files are in `/var/spool/cron/`, so you can backup or restore them.
@ -105,7 +101,7 @@ The crontab files are in `/var/spool/cron/`, so you can backup or restore them.
HOME=/home/user
PATH=/usr/condabin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/user/.local/bin:/home/user/.scripts/:/home/user/.local/bin:/home/user/.scripts/
1 0 1 * * /usr/bin/mkdir -p $HOME/arc/$(date +\%Y/\%m)
1 0 1 * * /usr/bin/mkdir -p $HOME/arc/$(date +%Y/%m)
18 0 1 */3 * $HOME/.scripts/mail-clean.sh
@ -114,5 +110,3 @@ PATH=/usr/condabin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/u
50 18 * * * /usr/bin/timeout 30m /usr/bin/syncthing
```

View File

@ -46,7 +46,7 @@ Get the message back out the file with:
Search for a key at any key store:
> gpg --search-keys nestorv
> gpg --keyserver *sks.hklbgd.org* --search-keys nestorv
Once you've made a decision about someone:
@ -75,11 +75,11 @@ Once you're in the interface, type `trust`.
Then send those trusted keys up to a server, so people can see you have verified them:
> gpg --send-keys *024C6B1C84449BD1CB4DF7A152295D2377F4D70F*
> gpg --keyserver *sks.hklbgd.org* --send-keys *024C6B1C84449BD1CB4DF7A152295D2377F4D70F*
# Refresh Keys
> gpg --refresh-keys
> gpg --keyserver *sks.hklbgd.org* --refresh-keys
# Export
@ -89,5 +89,5 @@ Your public key:
or
> gpg --export -a *person@email.tld* > *my_key*.pub
> gpg --export -a *email* > person.pub

View File

@ -1,7 +1,64 @@
---
title: "Arch on a Raspberry Pi 4"
tags: [ "Documentation", "distros", "raspberry pi", "rpi" ]
title: "arch_pi_install"
tags: [ "Documentation", "distros" ]
---
# Initial Setup
<!-- modified since testing
-->
The [Official Instructions](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4) for a Raspberry pi 4 do not allow for working sound from the headphone jack, unless you use the aarch64 Installation.
Some of this needs executed as root, so it's probably easier to do the whole things as root.
> fdisk /dev/sdX
o,n,t,c
> mkfs.vfat /dev/sdX1
> mkdir boot
> mount /dev/sdX1 boot
Create and mount the ext4 filesystem:
> mkfs.ext4 /dev/sdX2
> mkdir root
> mount /dev/sdX2 root
Download and extract the root filesystem (as root, not via sudo):
> wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz
> tar zxvf ArchLinuxARM-rpi-3-latest.tar.gz -C root
> sync
Move boot files to the first partition:
> mv root/boot/\* boot
> Unmount the two partitions:
> umount boot root
> echo [ hostname ] > /etc/hostname
Then edit the `/etc/hosts` file.
```
<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost ip6-localhost
```
# Get audio on
> echo dtparam=audio=on >> /boot/config.txt
Start pacman keyring.
> pacman-key --init
> pacman-key --populate archlinuxarm
> pacman -Syyu base-devel git alsa-utils xf86-video-fbdev
> timedatectl set-timezone Europe/Belgrade
> systemctl enable --now wpa_supplicant

View File

@ -1,6 +1,6 @@
---
title: "basic-install"
tags: [ "Documentation", "arch" ]
tags: [ "Documentation", "distros" ]
---
Keyboard layout changed.
@ -109,11 +109,12 @@ Ping some sites to make sure the network's working
> umount -R /mnt
Remove that awful beep sound:
> rmmod pcspkr
...and make the change permanent:
Remove retarded beep sound:
> sudo echo "blacklist pcspkr" >> /etc/modprobe.d/nobeep.conf
> rmmod pcspkr
# Fonts
sudo pacman -S ttf-hack ttf-font-awesome ttf-fira-mono

50
distros/arch/blackarch.md Normal file
View File

@ -0,0 +1,50 @@
---
title: "blackarch"
tags: [ "Documentation", "distros" ]
---
## Basics
List Blackarch Packages
> sudo pacman -Sgg | grep blackarch | cut -d' ' -f2 | sort -u
Install all with
> sudo pacman -S blackarch
List availalble groups with
> sudo pacman -Sg | grep blackarch | cut -d- -f2
Install a group with
> sudo pacman blackarch-$thing
e.g.
> sudo blackarch-cracker
## Install from Source
First install blackman.
> sudo pacman -S blackman
List categories:
> blackman -l
Then install all from a category with:
> sudo blackman -p [ category ]
Or install from source with:
> sudo blackman -g [ group name]
or
> sudo blackman -i [ package ]

26
distros/arch/blackarch.sh Normal file
View File

@ -0,0 +1,26 @@
#!/bin/bash
# Just tested - working fine so far.
# update
pacman -Syyu
curl -O https://blackarch.org/strap.sh
sh="$(sha1sum strap.sh)"
echo "Does $sh equal 9f770789df3b7803105e5fbc19212889674cd503 ?"
read ent
if [ ! $(echo $ent | grep -c y ) ] ; then
echo bye
exit 1
fi
chmod +x strap.sh
./strap.sh
echo Finished

View File

@ -36,14 +36,3 @@ If you're constantly getting 'everything corrupted, nothing upgraded', try runni
List all orphaned packages:
> sudo pacman -Qtdq
## Cleaning Config Files
Arch does not overwrite your changes to configuration files.
Instead, it updates them by adding the `.pacnew` suffix.
So when `/etc/pacman.conf` receives an update, this will be placed in `/etc/pacman.conf.pacnew`.
These changes must be merge manually.
Install the `pacdiff` tool to make this easier, from the `pacman-contrib` package, then simply run `sudo pacdiff` to sort through the various mergers.

View File

@ -0,0 +1,8 @@
#!/bin/bash
flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak --user install flathub com.valvesoftware.Steam
flatpak run com.valvesoftware.Steam

View File

@ -0,0 +1,632 @@
bantime = 1d
[sshd]
enabled = true
[INCLUDES]
before = paths-arch.conf
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1
ignorecommand =
bantime = 10m
findtime = 10m
maxretry = 5
maxmatches = %(maxretry)s
backend = auto
usedns = warn
logencoding = auto
enabled = false
mode = normal
filter = sshd
destemail = root@localhost
sender = root@<fq-hostname>
mta = sendmail
protocol = tcp
chain = <known/chain>
port = 0:65535
fail2ban_agent = Fail2Ban/%(fail2ban_version)s
banaction = iptables-multiport
banaction_allports = iptables-allports
action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath="%(logpath)s", chain="%(chain)s"]
action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath="%(logpath)s", port="%(port)s"]
action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
%(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath="%(logpath)s", chain="%(chain)s"]
action_blocklist_de = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]
action_badips = badips.py[category="%(__name__)s", banaction="%(banaction)s", agent="%(fail2ban_agent)s"]
action_badips_report = badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]
action_abuseipdb = abuseipdb
action = %(action_)s
[sshd]
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
[dropbear]
port = ssh
logpath = %(dropbear_log)s
backend = %(dropbear_backend)s
[selinux-ssh]
port = ssh
logpath = %(auditd_log)s
[apache-auth]
port = http,https
logpath = %(apache_error_log)s
[apache-badbots]
port = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1
[apache-noscript]
port = http,https
logpath = %(apache_error_log)s
[apache-overflows]
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-nohome]
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-botsearch]
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-fakegooglebot]
port = http,https
logpath = %(apache_access_log)s
maxretry = 1
ignorecommand = %(ignorecommands_dir)s/apache-fakegooglebot <ip>
[apache-modsecurity]
port = http,https
logpath = %(apache_error_log)s
maxretry = 2
[apache-shellshock]
port = http,https
logpath = %(apache_error_log)s
maxretry = 1
[openhab-auth]
filter = openhab
action = iptables-allports[name=NoAuthFailures]
logpath = /opt/openhab/logs/request.log
[nginx-http-auth]
port = http,https
logpath = %(nginx_error_log)s
[nginx-limit-req]
port = http,https
logpath = %(nginx_error_log)s
[nginx-botsearch]
port = http,https
logpath = %(nginx_error_log)s
maxretry = 2
[php-url-fopen]
port = http,https
logpath = %(nginx_access_log)s
%(apache_access_log)s
[suhosin]
port = http,https
logpath = %(suhosin_log)s
[lighttpd-auth]
port = http,https
logpath = %(lighttpd_error_log)s
[roundcube-auth]
port = http,https
logpath = %(roundcube_errors_log)s
[openwebmail]
port = http,https
logpath = /var/log/openwebmail.log
[horde]
port = http,https
logpath = /var/log/horde/horde.log
[groupoffice]
port = http,https
logpath = /home/groupoffice/log/info.log
[sogo-auth]
port = http,https
logpath = /var/log/sogo/sogo.log
[tine20]
logpath = /var/log/tine20/tine20.log
port = http,https
[drupal-auth]
port = http,https
logpath = %(syslog_daemon)s
backend = %(syslog_backend)s
[guacamole]
port = http,https
logpath = /var/log/tomcat*/catalina.out
[monit]
port = 2812
logpath = /var/log/monit
/var/log/monit.log
[webmin-auth]
port = 10000
logpath = %(syslog_authpriv)s
backend = %(syslog_backend)s
[froxlor-auth]
port = http,https
logpath = %(syslog_authpriv)s
backend = %(syslog_backend)s
[squid]
port = 80,443,3128,8080
logpath = /var/log/squid/access.log
[3proxy]
port = 3128
logpath = /var/log/3proxy.log
[proftpd]
port = ftp,ftp-data,ftps,ftps-data
logpath = %(proftpd_log)s
backend = %(proftpd_backend)s
[pure-ftpd]
port = ftp,ftp-data,ftps,ftps-data
logpath = %(pureftpd_log)s
backend = %(pureftpd_backend)s
[gssftpd]
port = ftp,ftp-data,ftps,ftps-data
logpath = %(syslog_daemon)s
backend = %(syslog_backend)s
[wuftpd]
port = ftp,ftp-data,ftps,ftps-data
logpath = %(wuftpd_log)s
backend = %(wuftpd_backend)s
[vsftpd]
port = ftp,ftp-data,ftps,ftps-data
logpath = %(vsftpd_log)s
[assp]
port = smtp,465,submission
logpath = /root/path/to/assp/logs/maillog.txt
[courier-smtp]
port = smtp,465,submission
logpath = %(syslog_mail)s
backend = %(syslog_backend)s
[postfix]
mode = more
port = smtp,465,submission
logpath = %(postfix_log)s
backend = %(postfix_backend)s
[postfix-rbl]
filter = postfix[mode=rbl]
port = smtp,465,submission
logpath = %(postfix_log)s
backend = %(postfix_backend)s
maxretry = 1
[sendmail-auth]
port = submission,465,smtp
logpath = %(syslog_mail)s
backend = %(syslog_backend)s
[sendmail-reject]
port = smtp,465,submission
logpath = %(syslog_mail)s
backend = %(syslog_backend)s
[qmail-rbl]
filter = qmail
port = smtp,465,submission
logpath = /service/qmail/log/main/current
[dovecot]
port = pop3,pop3s,imap,imaps,submission,465,sieve
logpath = %(dovecot_log)s
backend = %(dovecot_backend)s
[sieve]
port = smtp,465,submission
logpath = %(dovecot_log)s
backend = %(dovecot_backend)s
[solid-pop3d]
port = pop3,pop3s
logpath = %(solidpop3d_log)s
[exim]
port = smtp,465,submission
logpath = %(exim_main_log)s
[exim-spam]
port = smtp,465,submission
logpath = %(exim_main_log)s
[kerio]
port = imap,smtp,imaps,465
logpath = /opt/kerio/mailserver/store/logs/security.log
[courier-auth]
port = smtp,465,submission,imap,imaps,pop3,pop3s
logpath = %(syslog_mail)s
backend = %(syslog_backend)s
[postfix-sasl]
filter = postfix[mode=auth]
port = smtp,465,submission,imap,imaps,pop3,pop3s
logpath = %(postfix_log)s
backend = %(postfix_backend)s
[perdition]
port = imap,imaps,pop3,pop3s
logpath = %(syslog_mail)s
backend = %(syslog_backend)s
[squirrelmail]
port = smtp,465,submission,imap,imap2,imaps,pop3,pop3s,http,https,socks
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
[cyrus-imap]
port = imap,imaps
logpath = %(syslog_mail)s
backend = %(syslog_backend)s
[uwimap-auth]
port = imap,imaps
logpath = %(syslog_mail)s
backend = %(syslog_backend)s
[named-refused]
port = domain,953
logpath = /var/log/named/security.log
[nsd]
port = 53
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
logpath = /var/log/nsd.log
[asterisk]
port = 5060,5061
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s"]
logpath = /var/log/asterisk/messages
maxretry = 10
[freeswitch]
port = 5060,5061
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s"]
logpath = /var/log/freeswitch.log
maxretry = 10
[znc-adminlog]
port = 6667
logpath = /var/lib/znc/moddata/adminlog/znc.log
[mysqld-auth]
port = 3306
logpath = %(mysql_log)s
backend = %(mysql_backend)s
[mongodb-auth]
port = 27017
logpath = /var/log/mongodb/mongodb.log
[recidive]
logpath = /var/log/fail2ban.log
banaction = %(banaction_allports)s
bantime = 1w
findtime = 1d
[pam-generic]
banaction = %(banaction_allports)s
logpath = %(syslog_authpriv)s
backend = %(syslog_backend)s
[xinetd-fail]
banaction = iptables-multiport-log
logpath = %(syslog_daemon)s
backend = %(syslog_backend)s
maxretry = 2
[stunnel]
logpath = /var/log/stunnel4/stunnel.log
[ejabberd-auth]
port = 5222
logpath = /var/log/ejabberd/ejabberd.log
[counter-strike]
logpath = /opt/cstrike/logs/L[0-9]*.log
tcpport = 27030,27031,27032,27033,27034,27035,27036,27037,27038,27039
udpport = 1200,27000,27001,27002,27003,27004,27005,27006,27007,27008,27009,27010,27011,27012,27013,27014,27015
action = %(banaction)s[name=%(__name__)s-tcp, port="%(tcpport)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
%(banaction)s[name=%(__name__)s-udp, port="%(udpport)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
[bitwarden]
port = http,https
logpath = /home/*/bwdata/logs/identity/Identity/log.txt
[centreon]
port = http,https
logpath = /var/log/centreon/login.log
[nagios]
logpath = %(syslog_daemon)s ; nrpe.cfg may define a different log_facility
backend = %(syslog_backend)s
maxretry = 1
[oracleims]
logpath = /opt/sun/comms/messaging64/log/mail.log_current
banaction = %(banaction_allports)s
[directadmin]
logpath = /var/log/directadmin/login.log
port = 2222
[portsentry]
logpath = /var/lib/portsentry/portsentry.history
maxretry = 1
[pass2allow-ftp]
port = ftp,ftp-data,ftps,ftps-data
knocking_url = /knocking/
filter = apache-pass[knocking_url="%(knocking_url)s"]
logpath = %(apache_access_log)s
blocktype = RETURN
returntype = DROP
action = %(action_)s[blocktype=%(blocktype)s, returntype=%(returntype)s,
actionstart_on_demand=false, actionrepair_on_unban=true]
bantime = 1h
maxretry = 1
findtime = 1
[murmur]
port = 64738
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol=tcp, chain="%(chain)s", actname=%(banaction)s-tcp]
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol=udp, chain="%(chain)s", actname=%(banaction)s-udp]
logpath = /var/log/mumble-server/mumble-server.log
[screensharingd]
logpath = /var/log/system.log
logencoding = utf-8
[haproxy-http-auth]
logpath = /var/log/haproxy.log
[slapd]
port = ldap,ldaps
logpath = /var/log/slapd.log
[domino-smtp]
port = smtp,ssmtp
logpath = /home/domino01/data/IBM_TECHNICAL_SUPPORT/console.log
[phpmyadmin-syslog]
port = http,https
logpath = %(syslog_authpriv)s
backend = %(syslog_backend)s
[zoneminder]
port = http,https
logpath = %(apache_error_log)s
[traefik-auth]
port = http,https
logpath = /var/log/traefik/access.log

10
distros/arch/steam.sh Normal file
View File

@ -0,0 +1,10 @@
#!/bin/bash
sudo pacman -S flatpak
flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak --user install flathub com.valvesoftware.Steam
flatpak run com.valvesoftware.Steam

View File

@ -2,54 +2,19 @@
title: "xbps"
tags: [ "Documentation", "Void" ]
---
## Search
Look for cowsay in the repository:
> xbps-query --repository --search cowsay
Short version:
> xbps-query -Rs cowsay
Search with regex:
> xbps-query --regex -Rs 'cow(s)?\w'
List what's required for cowsay
> xbps-query -x cowsay
What packages are orphaned (i.e. installed as a dependency for another package, which has since been removed)?
> xbps-query -O
Show cowsay's dependencies.
> xbps-query -x cowsay
This shows `perl`.
To see what else depends on perl:
> xbps-query -X perl
List all manually installed software.
> xbps-query -m
## Install
Install cowsay
> xbps-install cowsay
Look for cowsay
> xbps-query -Rs cowsay
Upgrade current packages.
`-R` looks at repositories, `-s` makes a sloppy search (for rough matches).
> xbps-install -Suv
## Remove/ Uninstall
Remove cowsay
> xbps-remove cowsay
@ -58,17 +23,77 @@ Remove cowsay
> xbps-remove -R cowsay
Reinstall cowsay
> xbps-install -f
Reconfigure all packages. Useful for breakages.
> xbps-pkgdb -a
Remove all orphaned dependencies.
> xbps-remove -o
Show information about cowsay
## Fixes
> xbps-query -Rs cows
Reinstall cowsay
List packages requiring updates.
> xbps-install -f cowsay
> xbps-install -Suvn
List what's required for cowsay
> xbps-query -x cowsay
List what's installed.
> xbps-query -l
Clean.
> xbps-remove -O
Update list of available packages ('sync')
> xbps-install -S
Remove package information.
> xbps-query -R
Do I have cowsay installed?
> xbps-query -s cowsay
What packages are pointless?
> xbps-query -O
> xbps-install -Sn cowsay
# Advanced
A dry-run of installing cowsay, without actually intalling.
> xbps-query -x cowsay
Show cowsay's dependencies. The -R flag's required for a remote package.
> xbps-query -X cowsay
Show the reverse dependencies of a package.
> xbps-query -XR cowsay
Show all reverse dependencies of a package, including repository packages.
> xbps-query -m
List all manually installed software.
# Problems
Look for broken packages.

View File

@ -50,9 +50,3 @@ WantedBy=default.target
> sudo systemctl enable --now agate
# Redirection
Indicate a permanent move by placing this file in the root of the capsule:
> index.gmi: 31 gemini://splint.rs

View File

@ -71,7 +71,7 @@ You may need to install an nginx python module:
> apt install python3-certbot-nginx
> certbot --nginx -d *mysite.tk* --non-interactive --agree-tos -m *webmaster@email.tld*
> certbot --nginx -d mysite.tk
When you are asked about redirecting from HTTP to HTTPS, say yes (option "2").

View File

@ -1,12 +1,15 @@
---
title: "vim basics"
tags: [ "Documentation", "vim", "basic" ]
tags: [ "Documentation", "vim" ]
---
1. Insert text by pressing `i`.
1. Stop inserting text by pressing `Ctrl+[`.
1. Exit with `ZZ`.
1. Congratulations, you now know `vim`.
Insert text by pressing `i`.
Stop inserting text by pressing `Ctrl+[`.
Exit with `ZZ`.
Congratulations, you now know `vim`.
## Extras

View File

@ -30,11 +30,6 @@ Go to the last and previous places you've changed:
> g,
Go to a filename, and type `gf` (Go-to-File).
For example, if you put your cursor over the `~/.vimrc` in this line, you can edit your vim configuration file.
`source ~/.vimrc`
# Project Structure
Make a 20 character 'visual split' in the current working directory ('`.`').

View File

@ -2,8 +2,6 @@
title: "vim search"
tags: [ "Documentation", "vim" ]
---
Search for the next and or previous occurrence of the word under your cursor with `*` and `#`.
Search and replace the first 'one' found with 'two':
> :%s/one/two/
@ -12,11 +10,3 @@ Same, but replace 'one' globally:
> :%s/one/two/g
Put quotes around every occurrence of `$HOME`:
> :%s/$HOME/"&"
Same, but add curly brackets around `$HOSTNAME`:
> :%s/$HOSTNAME/{&}

View File

@ -1,5 +1,5 @@
---
title: "qrencode"
title: [ "qrencode" ]
tags: [ "Documentation", "vision" ]
---