curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm -g install yarn
yarn global add code-server
~/.yarn/bin/code-server
vim ~/.config/code-server/config.yaml
|
bind-addr: 127.0.0.1:8080
auth: none
password: academia
cert: false
|
bind-addr: 127.0.0.1:8080
auth: password
password: academia
cert: false
|
Service
sudo vim /etc/systemd/system/code-server.service
sudo systemctl disable code-server.service
sudo systemctl enable code-server.service
sudo systemctl status code-server.service
sudo systemctl start code-server.service
sudo systemctl stop code-server.service
blink » config » Hosts » New Host » SSH Config » New Host » Save
# Compression no
LocalForward 8080 127.0.0.1:8080
ExitOnForwardFailure yes
|
[Unit]
Description=code-server
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
Environment="PATH=/usr/bin"
ExecStart=/home/ubuntu/.yarn/bin/code-server
[Install]
WantedBy=multi-user.target
|
Extension
~/.yarn/bin/code-server\
--install-extension ms-kubernetes-tools.vscode-kubernetes-tools --force\
--install-extension msjsdiag.vscode-react-native --force\
--install-extension ms-azuretools.vscode-docker --force\
--install-extension PKief.material-icon-theme --force\
--install-extension ckolkman.vscode-postgres --force\
--install-extension esbenp.prettier-vscode --force\
--install-extension ritwickdey.LiveServer --force\
--install-extension ms-python.python --force
~/.yarn/bin/code-server\
--install-extension ms-vscode-remote.vscode-remote-extensionpack --force\
--install-extension ms-vscode.Theme-MarkdownKit --force\
--install-extension ms-dotnettools.csharp --force\
--install-extension ms-vscode.cpptools --force\
--install-extension xdebug.php-pack --force
|
~/.yarn/bin/code-server\
--install-extension k--kato.intellij-idea-keybindings --force\
--install-extension felixfbecker.php-intellisense --force\
--install-extension Pivotal.vscode-boot-dev-pack --force\
--install-extension vscjava.vscode-java-pack --force\
--install-extension ms-vscode.powershell --force\
--install-extension Dart-Code.dart-code --force\
--install-extension mrmlnc.vscode-scss --force\
--install-extension ms-python.python --force\
--install-extension xdebug.php-pack --force\
--install-extension rebornix.Ruby --force\
--install-extension redhat.java --force\
--install-extension golang.Go --force
|
|
scp ~/Downloads/*.vsix [email protected]:~/.chorke/academia/var/download
:'
[email protected] 100% 132MB 2.4MB/s 00:54
ms-vscode-remote.vscode-remote-extensionpack-0.21.0.vsix 100% 58KB 3.8MB/s 00:00
ms-vscode-remote.remote-ssh-0.79.2022040616.vsix 100% 319KB 3.6MB/s 00:00
[email protected] 100% 61MB 4.2MB/s 00:14
ms-vscode.Theme-MarkdownKit-0.1.4.vsix 100% 64KB 4.1MB/s 00:00
swellaby.rust-pack-0.2.29.vsix 100% 9251 152.1KB/s 00:00
xdebug.php-pack-1.0.3.vsix 100% 37KB 1.9MB/s 00:00
'
⇧ + ⌘ + P » vsix » Enter
|
Mobile Shell
sudo apt update
sudo apt list --upgradable
|
sudo apt upgrade
sudo apt install mosh
|
Oh My Zsh
# https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
sudo apt install zsh timg fonts-powerline
zsh --version
echo ${SHELL}
sudo -s
chsh -s $(which zsh)
grep zsh /etc/passwd
chsh -s /bin/zsh root
chsh -s /bin/zsh ${USER}
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# vim ~/.zshrc
# ZSH_THEME="agnoster"
mkdir -p ~/.config/fontconfig/conf.d
cat << \EOF >> ~/.config/fontconfig/conf.d/50-enable-terminess-powerline.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<selectfont>
<acceptfont>
<pattern>
<patelt name="family">
<string>terminess powerline</string>
</patelt>
</pattern>
</acceptfont>
</selectfont>
</fontconfig>
EOF
fc-cache -vf
Virtual Keyboard
iPad Pro » Settings » General » Keyboard » Auto-Correction » Disable
iPad Pro » Settings » General » Keyboard » Shortcuts » Disable
Java GraalVM
export ACADEMIA_HOME="$HOME/.chorke/academia"
sudo mkdir -p /opt/cli
|
|
mkdir -p $ACADEMIA_HOME/etc/env/
cat << \EOF >> $ACADEMIA_HOME/etc/env/system.sh
# chorke academia env
export ACADEMIA_HOME="$HOME/.chorke/academia"
export ACADEMIA_DEV="$ACADEMIA_HOME/dev"
EOF
|
cat << \EOF >> $HOME/.bashrc
# chorke academia env
if [ -f "$HOME/.chorke/academia/etc/env/system.sh" ]; then
source $HOME/.chorke/academia/etc/env/system.sh
fi
EOF
|
|
sudo wget -c https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/\
graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz -P /opt/cli/
sudo tar -xvzf /opt/cli/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz -C /opt/cli/
sudo rm -rf /opt/cli/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz
export GRAALVM_HOME='/opt/cli/graalvm-ce-java17-22.0.0.2'
cat << \EOF >> $ACADEMIA_HOME/etc/env/system.sh
# chorke academia sys
export GRAALVM_HOME='/opt/cli/graalvm-ce-java17-22.0.0.2'
EOF
|
|
update-alternatives --query native-image
update-alternatives --query jconsole
update-alternatives --query jshell
update-alternatives --query javac
update-alternatives --query java
update-alternatives --query jdb
update-alternatives --query jps
update-alternatives --query gu
update-alternatives --query js
sudo update-alternatives --install /usr/bin/jconsole jconsole\
$GRAALVM_HOME/bin/jconsole 1983
sudo update-alternatives --install /usr/bin/jshell jshell\
$GRAALVM_HOME/bin/jshell 1983
sudo update-alternatives --install /usr/bin/javac javac\
$GRAALVM_HOME/bin/javac 1983
sudo update-alternatives --install /usr/bin/java java\
$GRAALVM_HOME/bin/java 1983
|
sudo update-alternatives --install /usr/bin/jdb jdb\
$GRAALVM_HOME/bin/jdb 1983
sudo update-alternatives --install /usr/bin/jps jps\
$GRAALVM_HOME/bin/jps 1983
sudo update-alternatives --install /usr/bin/js js\
$GRAALVM_HOME/bin/js 1983
sudo update-alternatives --install /usr/local/bin/gu gu\
$GRAALVM_HOME/bin/gu 1983
sudo gu install native-image
sudo update-alternatives --install\
/usr/bin/native-image native-image\
$GRAALVM_HOME/bin/native-image 1983
native-image --version
sudo gu --version
javac -version
java -version
|
Ant & Maven
sudo wget -c https://archive.apache.org/dist/ant/binaries/\
apache-ant-1.10.12-bin.tar.gz -P /opt/cli/
sudo tar -xvzf /opt/cli/apache-ant-1.10.12-bin.tar.gz -C /opt/cli/
sudo rm -rf /opt/cli/apache-ant-1.10.12-bin.tar.gz
export ANT_HOME=/opt/cli/apache-ant-1.10.12
sudo update-alternatives --install /usr/bin/ant ant\
$ANT_HOME/bin/ant 1983
|
sudo wget -c https://archive.apache.org/dist/maven/maven-3/3.8.5/\
binaries/apache-maven-3.8.5-bin.tar.gz -P /opt/cli/
sudo tar -xvzf /opt/cli/apache-maven-3.8.5-bin.tar.gz -C /opt/cli/
sudo rm -rf /opt/cli/apache-maven-3.8.5-bin.tar.gz
export MAVEN_HOME=/opt/cli/apache-maven-3.8.5
sudo update-alternatives --install /usr/bin/mvn mvn\
$MAVEN_HOME/bin/mvn 1983
|
PostgreSQL
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main
EOF
sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install postgresql postgresql-contrib
sudo su postgres
schema_name='ubuntu'
createuser ${schema_name}
createdb ${schema_name}
cat << EOF | psql
GRANT ALL PRIVILEGES ON DATABASE ${schema_name} TO ${schema_name};
GRANT ALL PRIVILEGES ON DATABASE postgres TO ${schema_name};
ALTER USER ${schema_name} WITH SUPERUSER;
EOF
exit
psql
PgAdmin 4
sudo apt install build-essential libssl-dev libffi-dev libgmp3-dev libpq-dev python-is-python3
sudo apt install python3-dev python3-pip python3-venv libapache2-mod-wsgi-py3
sudo python3 -m venv /opt/ide/pgadmin4
sudo su
source /opt/ide/pgadmin4/bin/activate
python -m pip install -U pip
python -m pip install wheel
pip install pgadmin4
mkdir /var/log/pgadmin4
mkdir -p /var/lib/pgadmin4/{sessions,storage}
chown -R www-data:www-data /var/{lib,log}/pgadmin4
cat <<EOF >> /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/config_local.py
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
UPGRADE_CHECK_ENABLED = False
SERVER_MODE = True
EOF
cat <<EOF >> /etc/apache2/conf-available/pgadmin4.conf
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/opt/ide/pgadmin4
WSGIScriptAlias /pgadmin4 /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/pgAdmin4.wsgi
<Directory /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/>
WSGIProcessGroup pgadmin
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
EOF
ln -s /etc/apache2/conf-available/pgadmin4.conf\
/etc/apache2/conf-enabled/pgadmin4.conf
pgadmin4
a2enmod wsgi
apachectl -t
systemctl restart apache2
##########################################<OR>##########################################
curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/pgadmin4.list
deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main
EOF
sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install apache2 pgadmin4-web
sudo /usr/pgadmin4/bin/setup-web.sh
MariaDB Server
sudo apt install php7.4-fpm php7.4-common libapache2-mod-fcgid php7.4-cli
sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php7.4-fpm
sudo apt install mariadb-server
sudo mysql_secure_installation
sudo apt install phpmyadmi
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
-- mysqladmin -u root -p<old_password> password ''
FLUSH PRIVILEGES;
EXIT;
Oracle Client
ORA_LINK_PREFIX='https://download.oracle.com/otn_software/linux/instantclient';\
ORA_LINK_SUFFIX='linux-arm64.zip';\
ORA_LIBS_MODULE='basic sqlplus sdk jdbc odbc';\
ORA_HOME_CLIENT='/opt/cli/oracle/oracle19c';\
ORA_LINK_MIDFIX='instantclient';\
sudo mkdir -p ${ORA_HOME_CLIENT};\
for ORA_NAME_MIDFIX in ${ORA_LIBS_MODULE};do \
ORA_NAME_MODULE="${ORA_LINK_MIDFIX}-${ORA_NAME_MIDFIX}-${ORA_LINK_SUFFIX}";\
ORA_LINK_MODULE="${ORA_LINK_PREFIX}/${ORA_NAME_MODULE}";\
ORA_FILE_MODULE="${ORA_HOME_CLIENT}/${ORA_NAME_MODULE}";\
sudo wget -cq ${ORA_LINK_MODULE} -P ${ORA_HOME_CLIENT};\
sudo unzip -q ${ORA_FILE_MODULE} -d ${ORA_HOME_CLIENT};\
sudo rm -rf ${ORA_FILE_MODULE};done;\
sudo du -h ${ORA_HOME_CLIENT}
Redis Server
sudo apt install redis-server
sudo vim /etc/redis/redis.conf
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised systemd
sudo mkdir /var/run/redis
sudo chown -R redis:redis /var/run/redis
sudo systemctl restart redis-server
sudo systemctl status redis-server
###################<OR>###################
sudo vim /etc/systemd/system/redis.service
[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/bin/kill -s TERM $MAINPID
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
PIDFile=/run/redis/redis-server.pid
sudo systemctl daemon-reload
sudo systemctl restart redis-server
sudo systemctl status redis-server
Workspace
sudo mkdir -p /opt/dev/academia
sudo chown $(id -u):$(id -g) /opt/dev/academia -R
|
sudo mkdir -p /opt/dev/software
sudo chown $(id -u):$(id -g) /opt/dev/software -R
|
Kubernetes
sudo apt remove docker docker-engine docker.io containerd runc
sudo apt install ca-certificates curl gnupg lsb-release
sudo su
cat << \EOF >> /etc/docker/daemon.json
{
"exec-opts": [
"native.cgroupdriver=systemd"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
exit
sudo vim /boot/firmware/cmdline.txt
net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt update && sudo apt install -y apt-transport-https curl
sudo apt install -y docker-ce=5:20.10.14~3-0~ubuntu-focal\
kubelet=1.23.5-00 kubeadm=1.23.5-00 kubectl=1.23.5-00
sudo apt-mark hold docker-ce kubelet kubeadm kubectl
sudo apt install docker-compose
echo "net.bridge.bridge-nf-call-iptables=1" |\
sudo tee -a /etc/sysctl.conf
sudo sysctl --system
sudo sysctl -p
sudo kubeadm init --pod-network-cidr=10.21.0.0/16
docker config
sudo usermod -aG docker $USER
newgrp docker
mkdir -p $HOME/.docker
sudo chown $(id -u):$(id -g) $HOME/.docker -R
sudo chmod g+rwx $HOME/.docker -R
kube config
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
network overlay
kubectl apply -f\
https://docs.projectcalico.org/v3.14/manifests/calico.yaml
join worker nodes
kubeadm token create --print-join-command
kubectl get nodes
evil most for docker0 bridge
sudo apt remove netscript-2.4
sudo apt purge netscript-2.4
sudo apt autoremove
Helm Chart
sudo wget -c https://get.helm.sh/helm-v3.8.1-linux-arm64.tar.gz -P /opt/cli/
sudo tar -xvzf /opt/cli/helm-v3.8.1-linux-arm64.tar.gz -C /opt/cli/
sudo rm -rf /opt/cli/helm-v3.8.1-linux-arm64.tar.gz
sudo mv /opt/cli/linux-arm64 /opt/cli/helm-v3.8.1-linux-arm64
sudo update-alternatives --install /usr/local/bin/helm helm\
/opt/cli/helm-v3.8.1-linux-arm64/helm 1983
sudo update-alternatives --install /usr/bin/helm helm\
/opt/cli/helm-v3.8.1-linux-arm64/helm 1983
helm repo add stable https://charts.helm.sh/stable
helm search repo jenkins
helm version
Knowledge
cat /proc/cgroups
sudo apt install upx-ucl
dpkg --print-architecture
apt-cache madison kubelet
apt-cache madison kubeadm
apt-cache madison kubectl
apt-cache madison docker-ce
journalctl -fu docker
journalctl -u kubelet
sudo rm -rf /root/.kube
rm -rf /home/${USER}/.kube
sudo rm -rf /etc/kubernetes
sudo rm -rf /var/lib/kubelet
sudo rm /etc/containerd/config.toml
sudo systemctl daemon-reload
systemctl restart containerd
sudo systemctl restart docker
sudo systemctl enable docker
sudo systemctl enable --now ssh
sudo systemctl disable --now ssh
# sudo ifup docker0
# sudo ifdown docker0
# sudo apt install netscript
# sudo apt install cgroup-tools
sudo systemctl restart NetworkManager
sudo systemctl restart systemd-resolved
sudo snap install dotnet-sdk --classic
sudo snap install powershell --classic
sudo update-alternatives --list java
sudo update-alternatives --query java
sudo update-alternatives --remove-all java
sudo update-alternatives --remove java /usr/bin/java
rm -rf /Volumes/NO\ NAME/{.Spotlight-V100,.fseventsd}
sudo systemctl daemon-reload
sudo apt purge docker-ce kubelet kubeadm kubectl
sudo apt autoremove docker-ce kubelet kubeadm kubectl
sudo apt-mark unhold docker-ce kubelet kubeadm kubectl
sudo npm install -g --unsafe-perm=true --allow-root
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
curl -fsSL https://rpm.nodesource.com/setup_14.x | sudo bash -
add the new key(s) to known_hosts
ssh-keyscan -H dev.chorke.org >> ~/.ssh/known_hosts
Enter + ~ + . » exit an ssh session
remove the old key(s) from known_hosts
ssh-keygen -R dev.chorke.org
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false
References