Academia JavaEE Workspace in Ubuntu: Difference between revisions
Jump to navigation
Jump to search
| (13 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
== | {|class='wikitable' style='width:100%;margin:-11px 0 6px 0' | ||
|valign='top' colspan='2'| | |||
| valign= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
<syntaxhighlight lang= | |||
echo 'apt-get update;echo;apt list -a --upgradable;apt-get upgrade -y'|sudo bash | echo 'apt-get update;echo;apt list -a --upgradable;apt-get upgrade -y'|sudo bash | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
| valign= | |||
<syntaxhighlight lang= | |||
cat <<-'EXE'|sudo bash | cat <<-'EXE'|sudo bash | ||
for package in apt-transport-https ca-certificates gnupg build-essential | for package in apt-transport-https ca-certificates gnupg build-essential | ||
| Line 18: | Line 13: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| valign= | |valign='top' style='width:50%'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
cat <<-'EXE'|sudo bash | cat <<-'EXE'|sudo bash | ||
for package in software-properties-common git curl file procps libfuse2 | for package in software-properties-common git curl file procps libfuse2 | ||
| Line 25: | Line 20: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
| valign= | |||
<syntaxhighlight lang= | |||
cat <<-'EXE'|sudo bash | cat <<-'EXE'|sudo bash | ||
for release in 8 11 17 21 | for release in 8 11 17 21 | ||
| Line 38: | Line 29: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| valign= | |valign='top'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
cat <<-'EXE'|sudo bash | cat <<-'EXE'|sudo bash | ||
for package in ant npm maven nodejs | for package in ant npm maven nodejs | ||
| Line 45: | Line 36: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
==Text Editor » Sublime== | ==Text Editor » Sublime== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
Text Editor » Sublime | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
curl -fsSL https://download.sublimetext.com/sublimehq-pub.gpg\ | curl -fsSL https://download.sublimetext.com/sublimehq-pub.gpg\ | ||
| sudo tee /etc/apt/keyrings/sublime-text.asc >/dev/null | | sudo tee /etc/apt/keyrings/sublime-text.asc >/dev/null | ||
| Line 61: | Line 56: | ||
echo 'apt-get update;echo;apt-get install -y sublime-text'|sudo bash | echo 'apt-get update;echo;apt-get install -y sublime-text'|sudo bash | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
|} | |||
==JetBrains Toolbox== | ==JetBrains Toolbox== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left'| | |||
JetBrains Toolbox | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
wget -cq https://download-cdn.jetbrains.com/toolbox/jetbrains-toolbox-2.4.0.32175.tar.gz -P ${HOME}/Downloads | wget -cq https://download-cdn.jetbrains.com/toolbox/jetbrains-toolbox-2.4.0.32175.tar.gz -P ${HOME}/Downloads | ||
tar -xzf ${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175.tar.gz -C ${HOME}/Downloads | tar -xzf ${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175.tar.gz -C ${HOME}/Downloads | ||
| Line 72: | Line 75: | ||
rm -rf ${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175 | rm -rf ${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Spring Tool Suite== | ==Spring Tool Suite== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left'| | |||
Spring Tool Suite | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
cat <<-'EXE'|sudo bash | cat <<-'EXE'|sudo bash | ||
mkdir -p /opt/ide | mkdir -p /opt/ide | ||
| Line 90: | Line 99: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
<syntaxhighlight lang= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='ini'> | |||
cat << INI | sudo tee /usr/share/applications/SpringToolSuite4.desktop >/dev/null | cat << INI | sudo tee /usr/share/applications/SpringToolSuite4.desktop >/dev/null | ||
[Desktop Entry] | [Desktop Entry] | ||
| Line 105: | Line 115: | ||
INI | INI | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Jasper Studio CE== | ==Jasper Studio CE== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left'| | |||
Jasper Studio CE | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
cat << EXE | sudo bash | cat << EXE | sudo bash | ||
mkdir -p /opt/ide | mkdir -p /opt/ide | ||
| Line 114: | Line 130: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
<syntaxhighlight lang= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='ini'> | |||
cat << INI | sudo tee /usr/share/applications/JasperStudio.desktop >/dev/null | cat << INI | sudo tee /usr/share/applications/JasperStudio.desktop >/dev/null | ||
[Desktop Entry] | [Desktop Entry] | ||
| Line 129: | Line 146: | ||
INI | INI | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Camunda== | ==Camunda== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left'| | |||
Camunda | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
cat <<-'EXE'|sudo bash | cat <<-'EXE'|sudo bash | ||
mkdir -p /opt/ide | mkdir -p /opt/ide | ||
| Line 148: | Line 171: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
<syntaxhighlight lang= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='ini'> | |||
cat << INI | sudo tee /usr/share/applications/CamundaModeler.desktop >/dev/null | cat << INI | sudo tee /usr/share/applications/CamundaModeler.desktop >/dev/null | ||
[Desktop Entry] | [Desktop Entry] | ||
| Line 163: | Line 187: | ||
INI | INI | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==JMeter== | ==JMeter== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
|colspan= | !scope='col' style='text-align:left' colspan='2'| | ||
<syntaxhighlight lang= | JMeter | ||
|- | |||
|valign='top' colspan='2'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
cat <<-'EXE'|sudo bash | cat <<-'EXE'|sudo bash | ||
mkdir -p /opt/ide | mkdir -p /opt/ide | ||
| Line 176: | Line 204: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| | |valign='top' colspan='2'| | ||
<syntaxhighlight style='margin:3px 0' lang='ini'> | |||
<syntaxhighlight lang= | |||
cat << INI | sudo tee /usr/share/applications/jmeter.desktop >/dev/null | cat << INI | sudo tee /usr/share/applications/jmeter.desktop >/dev/null | ||
[Desktop Entry] | [Desktop Entry] | ||
| Line 195: | Line 220: | ||
INI | INI | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|valign='top'| | |valign='top' style='width:50%'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# jmeter find jvm_args | # jmeter find jvm_args | ||
JMETER_JVM_ARGS_FIND=$(cat <<FIN | JMETER_JVM_ARGS_FIND=$(cat <<FIN | ||
| Line 211: | Line 232: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |valign='top' style='width:50%'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# jmeter fill jvm_args | # jmeter fill jvm_args | ||
JMETER_JVM_ARGS_FILL=$(cat <<FIL | JMETER_JVM_ARGS_FILL=$(cat <<FIL | ||
| Line 221: | Line 242: | ||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|colspan= | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
sudo sed -z "s|${JMETER_JVM_ARGS_FIND}|$(echo "${JMETER_JVM_ARGS_FILL}")|" \ | sudo sed -z "s|${JMETER_JVM_ARGS_FIND}|$(echo "${JMETER_JVM_ARGS_FILL}")|" \ | ||
-i /opt/ide/apache-jmeter-5.6.3/bin/jmeter.sh | -i /opt/ide/apache-jmeter-5.6.3/bin/jmeter.sh | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
==PostgreSQL== | ==PostgreSQL== | ||
=== | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
---- | !scope='col' style='text-align:left' colspan='2'| | ||
<syntaxhighlight lang= | PostgreSQL | ||
|- | |||
!scope='col' style='width:50%;text-align:left'|Install | |||
!scope='col' style='width:50%;text-align:left'| | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
cat << EXE | sudo bash | cat << EXE | sudo bash | ||
apt install -y postgresql postgresql-contrib | apt install -y postgresql postgresql-contrib | ||
| Line 247: | Line 269: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='sql'> | |||
cat << EXE | sudo -i -u postgres bash | cat << EXE | sudo -i -u postgres bash | ||
createuser ${USER} | createuser ${USER} | ||
| Line 256: | Line 279: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
<syntaxhighlight lang= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
pg_lsclusters | pg_lsclusters | ||
less /var/log/postgresql/postgresql-16-main.log | less /var/log/postgresql/postgresql-16-main.log | ||
| Line 264: | Line 288: | ||
sudo pg_dropcluster --stop 16 mycluster | sudo pg_dropcluster --stop 16 mycluster | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
== | |- | ||
- | !scope='col' style='text-align:left'|Schema | ||
<syntaxhighlight lang= | !scope='col' style='text-align:left'| | ||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='sql'> | |||
cat << EXE | sudo -i -u postgres bash | cat << EXE | sudo -i -u postgres bash | ||
cat << DDL | psql | cat << DDL | psql | ||
| Line 281: | Line 308: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|- | |||
|valign='top' colspan='2'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
psql chorke_academia_staging < chorke_academia_staging.sql | |||
psql -h db00.chorke.org -p 5432 -d chorke_academia_staging -U chorke | |||
== | psql -h db00.chorke.org -p 5432 -d chorke_academia_staging -U chorke -W -f chorke_academia_staging.sql | ||
- | pg_restore -h db00.chorke.org -p 5432 -d chorke_academia_staging -U chorke chorke_academia_staging.dump | ||
<syntaxhighlight lang= | </syntaxhighlight> | ||
|- | |||
!scope='col' style='text-align:left'|Revoke | |||
!scope='col' style='text-align:left'| | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='sql'> | |||
cat << EXE | sudo -i -u postgres bash | cat << EXE | sudo -i -u postgres bash | ||
cat << DCL | psql | cat << DCL | psql | ||
| Line 296: | Line 329: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
== | |- | ||
!scope='col' style='text-align:left'|Delete | |||
!scope='col' style='text-align:left'| | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
ps -ef | grep postgres | |||
kill -9 PID | |||
|valign='top'| | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='sql'> | |||
cat << EXE | sudo -i -u postgres bash | cat << EXE | sudo -i -u postgres bash | ||
cat << DQL | psql | cat << DQL | psql | ||
| Line 316: | Line 355: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
== | |- | ||
<syntaxhighlight lang= | !scope='col' style='text-align:left'|DBeaver | ||
!scope='col' style='text-align:left'| | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
curl -fsSL https://dbeaver.io/debs/dbeaver.gpg.key\ | curl -fsSL https://dbeaver.io/debs/dbeaver.gpg.key\ | ||
| sudo tee /etc/apt/keyrings/dbeaver.asc >/dev/null | | sudo tee /etc/apt/keyrings/dbeaver.asc >/dev/null | ||
| Line 334: | Line 377: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
== | |- | ||
- | !scope='col' style='text-align:left'|PgAdmin4 | ||
<syntaxhighlight lang= | !scope='col' style='text-align:left'| | ||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install curl | sudo apt install curl | ||
sudo apt install apache2 | sudo apt install apache2 | ||
| Line 359: | Line 405: | ||
sudo /usr/pgadmin4/bin/setup-web.sh | sudo /usr/pgadmin4/bin/setup-web.sh | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
<syntaxhighlight lang= | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
a2enmod ssl | a2enmod ssl | ||
a2enmod proxy | a2enmod proxy | ||
| Line 366: | Line 414: | ||
a2enmod proxy_balancer | a2enmod proxy_balancer | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|} | |||
==Sencha CMD== | ==Sencha CMD== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
Sencha CMD | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
unzip SenchaCmd-7.5.1.20-linux-amd64.sh.zip | unzip SenchaCmd-7.5.1.20-linux-amd64.sh.zip | ||
sudo sh SenchaCmd-7.5.1.20-linux-amd64.sh | sudo sh SenchaCmd-7.5.1.20-linux-amd64.sh | ||
| Line 388: | Line 444: | ||
sencha diag show | sencha diag show | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
|} | |||
==Redis== | ==Redis== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
<syntaxhighlight lang= | Redis | ||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
cat << EXE | sudo bash | cat << EXE | sudo bash | ||
apt install -y redis-server | apt install -y redis-server | ||
| Line 398: | Line 460: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
| | |||
|- | |- | ||
|valign='top'| | |valign='top'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# redis supervised find | # redis supervised find | ||
REDIS_SUPERVISED_FIND=$(cat <<FIN | REDIS_SUPERVISED_FIND=$(cat <<FIN | ||
| Line 415: | Line 474: | ||
|valign='top'| | |valign='top'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# redis supervised fill | # redis supervised fill | ||
REDIS_SUPERVISED_FILL=$(cat <<FIL | REDIS_SUPERVISED_FILL=$(cat <<FIL | ||
| Line 424: | Line 483: | ||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
<syntaxhighlight lang= | |||
sudo sed -z "s|${REDIS_SUPERVISED_FIND}|$(echo "${REDIS_SUPERVISED_FILL}")|" \ | sudo sed -z "s|${REDIS_SUPERVISED_FIND}|$(echo "${REDIS_SUPERVISED_FILL}")|" \ | ||
-i /etc/redis/redis.conf | -i /etc/redis/redis.conf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
<syntaxhighlight lang= | |||
cat << EXE | sudo bash | cat << EXE | sudo bash | ||
systemctl daemon-reload | systemctl daemon-reload | ||
| Line 449: | Line 501: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|} | |} | ||
==Workspace== | ==Workspace== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
| valign='top'| | !scope='col' style='text-align:left' colspan='2'| | ||
<syntaxhighlight lang= | Workspace | ||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
MOTHER_CONCERN=chorke | MOTHER_CONCERN=chorke | ||
SISTER_CONCERN=academia | SISTER_CONCERN=academia | ||
| Line 469: | Line 525: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| valign='top'| | |valign='top' style='width:50%'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
cat <<EXE|sudo bash | cat <<EXE|sudo bash | ||
mkdir -p /opt/${USER}/ | mkdir -p /opt/${USER}/ | ||
| Line 484: | Line 540: | ||
mkdir -p ${MOTHER_SRC}/${SISTER_CONCERN}/{dev,etc,usr,var} | mkdir -p ${MOTHER_SRC}/${SISTER_CONCERN}/{dev,etc,usr,var} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|colspan='2'| | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# ${HOME}/Documents/${USER}-documents -> /opt/${USER}/home/documents | # ${HOME}/Documents/${USER}-documents -> /opt/${USER}/home/documents | ||
for USE in desktop documents downloads music pictures public videos;do | for USE in desktop documents downloads music pictures public videos;do | ||
| Line 504: | Line 556: | ||
done | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|colspan='2'| | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# ${HOME}/Documents/academia-dev-playground -> /opt/${USER}/chorke/academia/dev | # ${HOME}/Documents/academia-dev-playground -> /opt/${USER}/chorke/academia/dev | ||
DEV_PLAYGROUND_SRC=${MOTHER_SRC}/${SISTER_CONCERN}/dev | DEV_PLAYGROUND_SRC=${MOTHER_SRC}/${SISTER_CONCERN}/dev | ||
| Line 517: | Line 565: | ||
[[ ! -d ${DEV_PLAYGROUND_DES} ]];then ln -s ${DEV_PLAYGROUND_SRC} ${DEV_PLAYGROUND_DES};fi | [[ ! -d ${DEV_PLAYGROUND_DES} ]];then ln -s ${DEV_PLAYGROUND_SRC} ${DEV_PLAYGROUND_DES};fi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|colspan='2'| | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# ${HOME}/Documents/academia-bkp-playground -> /opt/${USER}/chorke/academia/var/backup | # ${HOME}/Documents/academia-bkp-playground -> /opt/${USER}/chorke/academia/var/backup | ||
BKP_PLAYGROUND_DES=${DOCUMENT_DIR}/${SISTER_CONCERN}-bkp-playground | BKP_PLAYGROUND_DES=${DOCUMENT_DIR}/${SISTER_CONCERN}-bkp-playground | ||
| Line 531: | Line 575: | ||
[[ ! -d ${BKP_PLAYGROUND_DES} ]];then ln -s ${BKP_PLAYGROUND_SRC} ${BKP_PLAYGROUND_DES};fi | [[ ! -d ${BKP_PLAYGROUND_DES} ]];then ln -s ${BKP_PLAYGROUND_SRC} ${BKP_PLAYGROUND_DES};fi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|colspan='2'| | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
# ${HOME}/Documents/${POC}-playground -> /opt/${USER}/chorke/academia/var/playground/${POC} | # ${HOME}/Documents/${POC}-playground -> /opt/${USER}/chorke/academia/var/playground/${POC} | ||
POC_PLAYGROUND_DIR=${MOTHER_SRC}/${SISTER_CONCERN}/var/playground | POC_PLAYGROUND_DIR=${MOTHER_SRC}/${SISTER_CONCERN}/var/playground | ||
| Line 559: | Line 599: | ||
fi | fi | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
ls -lah ${HOME}/{.config,Documents}/${MOTHER_CONCERN}/${SISTER_CONCERN} | ls -lah ${HOME}/{.config,Documents}/${MOTHER_CONCERN}/${SISTER_CONCERN} | ||
rm -rf ${HOME}/{.config,Documents}/${MOTHER_CONCERN} | rm -rf ${HOME}/{.config,Documents}/${MOTHER_CONCERN} | ||
| Line 571: | Line 607: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|} | |} | ||
== | ==Tmux== | ||
=== | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
- | !scope='col' style='text-align:left' colspan='2'| | ||
<syntaxhighlight lang= | Tmux | ||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install tmux | sudo apt install tmux | ||
| Line 598: | Line 638: | ||
EOF | EOF | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
|} | |||
==Git SCM== | ==Git SCM== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
Git SCM | |||
|- | |||
|valign='top' colspan='2'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install -y gitk | sudo apt install -y gitk | ||
ssh-keygen -t ed25519 -C "email.id@academia.chorke.org" -f ~/.ssh/git.academia.chorke.org_ed25519 | ssh-keygen -t ed25519 -C "email.id@academia.chorke.org" -f ~/.ssh/git.academia.chorke.org_ed25519 | ||
| Line 628: | Line 676: | ||
cat < ~/.ssh/git.academia.chorke.org_ed25519.pub | cat < ~/.ssh/git.academia.chorke.org_ed25519.pub | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
<syntaxhighlight lang= | |valign='top' style='width:50%'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
nano ~/.ssh/config | nano ~/.ssh/config | ||
: <<'END_COMMENT' | : <<'END_COMMENT' | ||
| Line 639: | Line 688: | ||
END_COMMENT | END_COMMENT | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
<syntaxhighlight lang= | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
git config --global user.email "email.id@academia.chorke.org" | git config --global user.email "email.id@academia.chorke.org" | ||
git config --global user.name "FULL NAME" | git config --global user.name "FULL NAME" | ||
ssh -vT git.academia.chorke.org | ssh -vT git.academia.chorke.org | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
<syntaxhighlight lang= | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
# add the new key(s) to known_hosts | # add the new key(s) to known_hosts | ||
ssh-keyscan -H git.academia.chorke.org >> ~/.ssh/known_hosts | ssh-keyscan -H git.academia.chorke.org >> ~/.ssh/known_hosts | ||
| Line 653: | Line 706: | ||
ssh-keygen -R git.academia.chorke.org | ssh-keygen -R git.academia.chorke.org | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|} | |||
==Podman== | ==Podman== | ||
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | |||
!scope='col' style='text-align:left' colspan='2'| | |||
Podman | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt update | |||
sudo apt install podman | |||
podman -v | |||
</syntaxhighlight> | |||
<syntaxhighlight lang= | |valign='top' style='width:50%'| | ||
|- | |||
|valign='top' colspan='2'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
cat << EOF | sudo tee -a /etc/containers/registries.conf >/dev/null | cat << EOF | sudo tee -a /etc/containers/registries.conf >/dev/null | ||
[registries.search] | [registries.search] | ||
| Line 670: | Line 736: | ||
podman info | podman info | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |||
==Vagrant== | ==Vagrant== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
Vagrant | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
curl -fsSL https://apt.releases.hashicorp.com/gpg\ | curl -fsSL https://apt.releases.hashicorp.com/gpg\ | ||
| sudo tee /etc/apt/keyrings/hashicorp.asc >/dev/null | | sudo tee /etc/apt/keyrings/hashicorp.asc >/dev/null | ||
| Line 691: | Line 763: | ||
vagrant -v | vagrant -v | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
<syntaxhighlight lang= | |- | ||
|valign='top' colspan='2'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils | sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils | ||
| Line 708: | Line 783: | ||
newgrp kvm | newgrp kvm | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
<syntaxhighlight lang= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo systemctl disable --now libvirt-guests.service | sudo systemctl disable --now libvirt-guests.service | ||
sudo systemctl disable --now virtlogd.service | sudo systemctl disable --now virtlogd.service | ||
| Line 721: | Line 797: | ||
sudo systemctl disable --now libvirtd.socket | sudo systemctl disable --now libvirtd.socket | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|} | |||
==Docker== | ==Docker== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
Docker | |||
|- | |||
|valign='top' colspan='2'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install apt-transport-https ca-certificates curl software-properties-common | sudo apt install apt-transport-https ca-certificates curl software-properties-common | ||
sudo mkdir -p /etc/apt/keyrings | sudo mkdir -p /etc/apt/keyrings | ||
| Line 746: | Line 830: | ||
echo 'docker ps -a'|sudo -i -u ${USER} bash | echo 'docker ps -a'|sudo -i -u ${USER} bash | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
<syntaxhighlight lang= | |valign='top' style='width:50%'| | ||
<syntaxhighlight style='margin:3px 0' lang='yaml'> | |||
yq -o=json <<'YML'| \ | |||
sudo tee /etc/docker/daemon.json >/dev/null | |||
--- | |||
bip: 10.20.13.1/24 | |||
mtu: 1500 | |||
dns: | |||
- 1.1.1.1 | |||
- 8.8.8.8 | |||
debug: true | |||
YML | |||
</syntaxhighlight> | |||
|valign='top' style='width:50%'| | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo systemctl stop docker.socket | sudo systemctl stop docker.socket | ||
sudo systemctl stop docker.service | sudo systemctl stop docker.service | ||
| Line 768: | Line 856: | ||
docker run --rm alpine cat /etc/hosts | docker run --rm alpine cat /etc/hosts | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|} | |||
==LXD== | ==LXD== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
<syntaxhighlight lang= | LXD | ||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt upgrade && sudo apt autoremove | sudo apt upgrade && sudo apt autoremove | ||
sudo snap install lxd --channel=6.1/stable | sudo snap install lxd --channel=6.1/stable | ||
| Line 780: | Line 874: | ||
echo 'lxc version'|sudo -i -u ${USER} bash | echo 'lxc version'|sudo -i -u ${USER} bash | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
|- | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash' highlight='5,9,13,15,18'> | |||
| valign= | |||
<syntaxhighlight lang= | |||
sudo lxd init | sudo lxd init | ||
:' | :' | ||
| Line 805: | Line 897: | ||
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: yes | Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: yes | ||
' | ' | ||
sudo ufw allow http | sudo ufw allow http | ||
sudo ufw allow OpenSSH | sudo ufw allow OpenSSH | ||
| Line 820: | Line 911: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign= | |valign='top'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='yaml' highlight='4,6,13,15,28' line> | ||
--- | |||
config: {} | config: {} | ||
networks: | networks: | ||
| Line 858: | Line 950: | ||
==Arduino== | ==Arduino== | ||
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | |||
!scope='col' style='text-align:left' colspan='2'| | |||
Arduino | |||
<syntaxhighlight lang= | |- | ||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install arduino | |||
sudo snap install arduino | |||
</syntaxhighlight> | |||
|valign='top' style='width:50%'| | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo wget -c https://downloads.arduino.cc/arduino-1.8.19-linux64.tar.xz -P /opt/ide/ | sudo wget -c https://downloads.arduino.cc/arduino-1.8.19-linux64.tar.xz -P /opt/ide/ | ||
sudo tar -xvf /opt/ide/arduino-1.8.19-linux64.tar.xz -C /opt/ide/ | sudo tar -xvf /opt/ide/arduino-1.8.19-linux64.tar.xz -C /opt/ide/ | ||
| Line 870: | Line 971: | ||
id -nG | id -nG | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top'| | |||
|} | |||
==Qt Creator== | ==Qt Creator== | ||
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | |||
!scope='col' style='text-align:left' colspan='2'| | |||
Qt Creator | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install qtcreator | |||
sudo apt remove qtcreator | |||
sudo apt auto-remove qtcreator | |||
</syntaxhighlight> | |||
|valign='top' style='width:50%'| | |||
|} | |||
==Microsoft== | ==Microsoft== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
| valign= | !scope='col' style='text-align:left' colspan='2'| | ||
<syntaxhighlight lang= | Microsoft | ||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt install -y apt-transport-https \ | sudo apt install -y apt-transport-https \ | ||
ca-certificates curl software-properties-common wget | ca-certificates curl software-properties-common wget | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| valign= | |valign='top' style='width:50%'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc\ | curl -fsSL https://packages.microsoft.com/keys/microsoft.asc\ | ||
| sudo tee /etc/apt/keyrings/microsoft.asc >/dev/null | | sudo tee /etc/apt/keyrings/microsoft.asc >/dev/null | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
| valign= | |||
<syntaxhighlight lang= | |||
cat << EOF | sudo tee /etc/apt/sources.list.d/microsoft-edge.list >/dev/null | cat << EOF | sudo tee /etc/apt/sources.list.d/microsoft-edge.list >/dev/null | ||
deb [arch=$(dpkg --print-architecture)\ | deb [arch=$(dpkg --print-architecture)\ | ||
| Line 910: | Line 1,024: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| valign= | |valign='top'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
cat << EOF | sudo tee /etc/apt/sources.list.d/microsoft-code.list >/dev/null | cat << EOF | sudo tee /etc/apt/sources.list.d/microsoft-code.list >/dev/null | ||
deb [arch=$(dpkg --print-architecture)\ | deb [arch=$(dpkg --print-architecture)\ | ||
| Line 926: | Line 1,040: | ||
code -version | code -version | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
==Remote== | ==Remote== | ||
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | |||
!scope='col' style='text-align:left' colspan='2'| | |||
Remote | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo ufw allow 5900/tcp | |||
sudo ufw status verbose | |||
systemctl --user restart gnome-remote-desktop.service | |||
systemctl --user status gnome-remote-desktop.service | |||
gsettings set org.gnome.desktop.remote-desktop.rdp screen-share-mode extend | |||
</syntaxhighlight> | |||
|valign='top' style='width:50%'| | |||
|} | |||
==DaVinci Resolve== | ==DaVinci Resolve== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
DaVinci Resolve | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
wget -cq https://sw.blackmagicdesign.com/DaVinciResolve/v18.1.4/DaVinci_Resolve_18.1.4_Linux.zip\ | wget -cq https://sw.blackmagicdesign.com/DaVinciResolve/v18.1.4/DaVinci_Resolve_18.1.4_Linux.zip\ | ||
?Key-Pair-Id=${KEY_PAIR_ID}==&Expires=${KEY_EXPIRES} -P ${HOME}/Downloads | ?Key-Pair-Id=${KEY_PAIR_ID}==&Expires=${KEY_EXPIRES} -P ${HOME}/Downloads | ||
| Line 947: | Line 1,074: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | |valign='top' style='width:50%'| | ||
<syntaxhighlight lang= | |} | ||
==Kontena Lens== | |||
{|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | |||
!scope='col' style='text-align:left' colspan='2'| | |||
Kontena Lens | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
# install from snapcraft | # install from snapcraft | ||
sudo snap install kontena-lens --classic | sudo snap install kontena-lens --classic | ||
| Line 967: | Line 1,102: | ||
EXE | EXE | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
|} | |||
==OpenSSH Server== | ==OpenSSH Server== | ||
<syntaxhighlight lang= | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
!scope='col' style='text-align:left' colspan='2'| | |||
OpenSSH Server | |||
|- | |||
|valign='top' style='width:50%'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt-get install -y openssh-client | sudo apt-get install -y openssh-client | ||
sudo apt-get install -y openssh-server | sudo apt-get install -y openssh-server | ||
sudo apt-get install -y openssh-sftp-server | sudo apt-get install -y openssh-sftp-server | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top' style='width:50%'| | |||
|} | |||
==Knowledge== | ==Knowledge== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
| valign= | !scope='col' style='text-align:left' colspan='2'| | ||
Knowledge | |||
|- | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='text'> | |||
tmux ls | |||
tmux new -s my_session | |||
tmux attach-session -t 0 | |||
tmux attach-session -t my_session | |||
Ctrl + b % » Split pane horizontally | |||
Ctrl + b " » Split pane vertically | |||
Ctrl + b x » Close current pane | |||
</syntaxhighlight> | |||
| valign= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='text'> | |||
Ctrl + b c » Create a new window | |||
Ctrl + b w » Choose window from a list | |||
Ctrl + b 0 » Switch to window by number | |||
Ctrl + b , » Rename the current window | |||
Ctrl + b o » Go to the next pane | |||
Ctrl + b ; » Toggle between pane | |||
Ctrl + b d » Detach the session | |||
</syntaxhighlight> | |||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
lsblk | |||
lscpu | |||
lsusb | |||
free -h | |||
sudo lshw | |||
ufw status | |||
ufw status verbose | |||
systemctl status ufw | |||
apt list --installed | |||
</syntaxhighlight> | |||
| valign= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo ufw allow http | |||
sudo ufw allow OpenSSH | |||
sudo ufw allow 5900/tcp | |||
sudo ss -tulpn | grep LISTEN | |||
sudo ss -tulwn | grep LISTEN | |||
sudo ss -tulpn | grep LISTEN | grep sshd | |||
sudo ss -tulpn | grep LISTEN | grep redis | |||
sudo ss -tulpn | grep LISTEN | grep gnome | |||
sudo ss -tulpn | grep LISTEN | grep apache | |||
</syntaxhighlight> | |||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo dmidecode -t | |||
sudo dmidecode -t 1 | |||
sudo dmidecode -t 3 | |||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo dmidecode | grep 'SKU Number' | |||
sudo dmidecode -s system-product-name | |||
sudo dmidecode -s system-serial-number | |||
</syntaxhighlight> | |||
|- | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
# disk usage | |||
| valign= | du -h /var | ||
du -sh /var | |||
du -csh ~/Do* | |||
du -csh /var/log /var/lib | |||
du -sh --apparent-size /var/lib | |||
du -h /var/ | sort -rh | head -5 | |||
sudo dpkg --remove --force-remove-reinstreq ${PACAKGE_NAME:-vim} | |||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo dpkg -i ~/Downloads/TIB_js-studiocomm_6.16.0_linux_amd64.deb | |||
sudo dpkg -i ~/Downloads/code_1.74.3-1673284829_amd64.deb | |||
sudo dpkg -i ~/Downloads/teams_1.5.00.23861_amd64.deb | |||
sudo dpkg -i ~/Downloads/anydesk_6.2.1-1_amd64.deb | |||
sudo dpkg -i ~/Downloads/freedownloadmanager.deb | |||
sudo dpkg -i ~/Downloads/zoom_amd64.deb | |||
sudo apt-get install --fix-broken | |||
sudo apt-get install -f | |||
</syntaxhighlight> | |||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo apt-get install balena-etcher-electron | |||
sudo apt-get install inetutils-traceroute | |||
sudo apt-get install libavcodec60 ffmpeg | |||
sudo apt-get install gedit-plugins | |||
sudo apt-get install sublime-text | |||
sudo apt-get install makepasswd | |||
sudo apt install obs-studio | sudo apt-get install obs-studio | ||
sudo apt-get install mesa-utils | |||
sudo apt-get install filezilla | |||
sudo apt-get install net-tools | |||
sudo apt-get install xournalpp | |||
sudo apt-get install neofetch | |||
sudo apt-get install libfuse2 | |||
sudo apt-get install gtkhash | |||
sudo apt-get install upx-ucl | |||
sudo apt-get install hwinfo | |||
sudo apt-get install ktouch | |||
sudo apt-get install podman | |||
sudo apt-get install bolt | |||
sudo apt-get install tree | |||
sudo apt-get install tmux | |||
sudo apt-get install jq | |||
sudo apt-get install mc | |||
</syntaxhighlight> | |||
| valign= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
sudo snap install maas --channel=3.3/stable | |||
sudo snap install dotnet-sdk --classic | |||
sudo snap install powershell --classic | |||
sudo snap install notepad-plus-plus | |||
sudo snap install telegram-desktop | |||
sudo snap install skype --classic | |||
sudo snap install nvim --classic | |||
sudo snap install code --classic | |||
sudo snap install figma-linux | |||
sudo snap install zoom-client | |||
sudo snap install arduino | |||
sudo snap install firefox | |||
sudo snap install postman | |||
sudo snap install drawio | |||
sudo snap install maas | |||
sudo snap disable mass | |||
sudo snap install slack | |||
sudo snap refresh drawio | |||
sudo snap refresh firefox | |||
sudo snap remove postman | |||
</syntaxhighlight> | |||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
ls -lah ~/.local/share/applications/ | |||
ls -lah ~/.config/autostart/ | |||
ls -lah ~/.local/share/ | |||
</syntaxhighlight> | |||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
rm -rf ~/.local/share/applications/jetbrains-toolbox.desktop | |||
rm -rf ~/.config/autostart/jetbrains-toolbox.desktop | |||
rm -rf ~/.local/share/JetBrains/Toolbox | |||
</syntaxhighlight> | |||
|- | |- | ||
| | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
lspci | grep -i thunder | |||
# git stashing | |||
git stash; git checkout -b new_branch; git stash pop | |||
git add .; git commit -m "new feature added"; git push | |||
</syntaxhighlight> | |||
| valign= | |valign='top'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
# reset time zone | |||
timedatectl set-ntp true | |||
timedatectl set-ntp false | |||
timedatectl set-time '2021-12-31 23:58:00' | |||
timedatectl set-timezone 'Asia/Kuala_Lumpur' | |||
</syntaxhighlight> | |||
|- | |- | ||
|valign='top'| | |||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
| valign= | |||
<syntaxhighlight lang= | |||
#nano ~/.bashrc | #nano ~/.bashrc | ||
#nano ~/.zshenv | #nano ~/.zshenv | ||
| Line 1,163: | Line 1,319: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| valign= | |valign='top'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
source ~/.bashrc | source ~/.bashrc | ||
source ~/.profile | source ~/.profile | ||
| Line 1,172: | Line 1,328: | ||
source ~/.zprofile/.zlogin | source ~/.zprofile/.zlogin | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| colspan= | |valign='top' colspan='2'| | ||
<syntaxhighlight lang= | <syntaxhighlight style='margin:3px 0' lang='bash'> | ||
ssh-keygen -p -f ~/.ssh/git_academia_chorke_org_rsa | ssh-keygen -p -f ~/.ssh/git_academia_chorke_org_rsa | ||
: <<'END_COMMENT' | : <<'END_COMMENT' | ||
| Line 1,188: | Line 1,340: | ||
END_COMMENT | END_COMMENT | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| colspan= | |valign='top' colspan='2'| | ||
<syntaxhighlight style='margin:3px 0' lang='bash'> | |||
# comment and uncomment sql | |||
sed -i -e 's|^|-- |g' src/main/resources/db/migration/*.sql | |||
sed -i -e 's|^-- ||g' src/main/resources/db/migration/*.sql | |||
sudo systemctl enable --now ssh | |||
sudo systemctl disable --now ssh | |||
# hide mounted drives | |||
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true | |||
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false | |||
</syntaxhighlight> | |||
|} | |} | ||
==References== | ==References== | ||
{| | {|class='wikitable mw-collapsible' style='width:100%;margin:3px 0' | ||
| valign= | !scope='col' style='text-align:left' colspan='3'| | ||
References | |||
|- | |||
|valign='top' style='width:33%'| | |||
* [https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04 Install and Use PostgreSQL on Ubuntu 18.04] | * [https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04 Install and Use PostgreSQL on Ubuntu 18.04] | ||
* [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04 Install and Secure Redis on Ubuntu 18.04] | * [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04 Install and Secure Redis on Ubuntu 18.04] | ||
| Line 1,221: | Line 1,373: | ||
* [[PostgreSQL]] | * [[PostgreSQL]] | ||
| valign= | |valign='top' style='width:34%'| | ||
* [https://www.digitalcitizen.life/connecting-windows-remote-desktop-ubuntu/ Connect to a Windows PC from Ubuntu using RDP] | * [https://www.digitalcitizen.life/connecting-windows-remote-desktop-ubuntu/ Connect to a Windows PC from Ubuntu using RDP] | ||
* [https://stackoverflow.com/questions/25515166/ Redis Daemon unable to creating a PID file] | * [https://stackoverflow.com/questions/25515166/ Redis Daemon unable to creating a PID file] | ||
| Line 1,233: | Line 1,385: | ||
* [[LAPP Stack for PI]] | * [[LAPP Stack for PI]] | ||
| valign= | |valign='top' style='width:33%'| | ||
* [https://www.omgubuntu.co.uk/2019/11/hide-mounted-drives-ubuntu-dock Hide Mounted Drives from the Ubuntu Dock] | * [https://www.omgubuntu.co.uk/2019/11/hide-mounted-drives-ubuntu-dock Hide Mounted Drives from the Ubuntu Dock] | ||
* [https://www.linuxbabe.com/desktop-linux/switch-intel-nvidia-graphics-card-ubuntu Install Nvidia Graphics Card on Ubuntu] | * [https://www.linuxbabe.com/desktop-linux/switch-intel-nvidia-graphics-card-ubuntu Install Nvidia Graphics Card on Ubuntu] | ||
| Line 1,244: | Line 1,396: | ||
* [[JQ Tool]] | * [[JQ Tool]] | ||
* [[ExtJS]] | * [[ExtJS]] | ||
|- | |- | ||
|valign='top'| | |||
| valign= | |||
* [https://askubuntu.com/questions/214421/ Install the MPEG-4 AAC & H.264 Decoder] | * [https://askubuntu.com/questions/214421/ Install the MPEG-4 AAC & H.264 Decoder] | ||
* [https://superuser.com/questions/1428579/ Can't Switch between Tabs in Terminal] | * [https://superuser.com/questions/1428579/ Can't Switch between Tabs in Terminal] | ||
| Line 1,261: | Line 1,409: | ||
* [https://obsproject.com/wiki/install-instructions Install OBS] | * [https://obsproject.com/wiki/install-instructions Install OBS] | ||
| valign= | |valign='top'| | ||
* [https://dba.stackexchange.com/questions/316681/ PostgreSQL 14 not Started on Ubuntu 22.04] | * [https://dba.stackexchange.com/questions/316681/ PostgreSQL 14 not Started on Ubuntu 22.04] | ||
* [https://www.hostinger.my/tutorials/how-to-install-and-setup-phpmyadmin-on-ubuntu Install phpMyAdmin on Ubuntu] | * [https://www.hostinger.my/tutorials/how-to-install-and-setup-phpmyadmin-on-ubuntu Install phpMyAdmin on Ubuntu] | ||
| Line 1,273: | Line 1,421: | ||
* [[Qemu]] | * [[Qemu]] | ||
| valign= | |valign='top'| | ||
* [https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-22-04 Set Up a Firewall with UFW on Ubuntu 22.04] | * [https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-22-04 Set Up a Firewall with UFW on Ubuntu 22.04] | ||
* [https://help.gnome.org/users/gnome-help/stable/net-firewall-ports.html.en Gnome Commonly Used Network Ports] | * [https://help.gnome.org/users/gnome-help/stable/net-firewall-ports.html.en Gnome Commonly Used Network Ports] | ||
| Line 1,284: | Line 1,432: | ||
* [[NodeJS]] | * [[NodeJS]] | ||
* [[MinIO]] | * [[MinIO]] | ||
|- | |- | ||
|valign='top'| | |||
| valign= | |||
* [https://unix.stackexchange.com/questions/8656/ <code>/usr/bin</code> vs <code>/usr/local/bin</code> on Linux] | * [https://unix.stackexchange.com/questions/8656/ <code>/usr/bin</code> vs <code>/usr/local/bin</code> on Linux] | ||
* [https://askubuntu.com/questions/525088/ Delete broken packages in Ubuntu] | * [https://askubuntu.com/questions/525088/ Delete broken packages in Ubuntu] | ||
| Line 1,301: | Line 1,445: | ||
* [https://www.atlassian.com/git/tutorials/gitk Gitk] | * [https://www.atlassian.com/git/tutorials/gitk Gitk] | ||
| valign= | |valign='top'| | ||
* [https://stackoverflow.com/questions/77295243/ JDK » 21 » Maven compilation error] | * [https://stackoverflow.com/questions/77295243/ JDK » 21 » Maven compilation error] | ||
* [[SSH/Public Key Authentication]] | * [[SSH/Public Key Authentication]] | ||
| Line 1,309: | Line 1,453: | ||
* [[S2I]] | * [[S2I]] | ||
| valign= | |valign='top'| | ||
|} | |} | ||
Latest revision as of 14:47, 16 January 2026
echo 'apt-get update;echo;apt list -a --upgradable;apt-get upgrade -y'|sudo bash
| |
cat <<-'EXE'|sudo bash
for package in apt-transport-https ca-certificates gnupg build-essential
do apt-get install -y ${package};done
EXE
|
cat <<-'EXE'|sudo bash
for package in software-properties-common git curl file procps libfuse2
do apt-get install -y ${package};done
EXE
|
cat <<-'EXE'|sudo bash
for release in 8 11 17 21
do apt-get install -y openjdk-${release}-jdk;done
EXE
|
cat <<-'EXE'|sudo bash
for package in ant npm maven nodejs
do apt-get install -y ${package};done
EXE
|
Text Editor » Sublime
|
Text Editor » Sublime | |
|---|---|
curl -fsSL https://download.sublimetext.com/sublimehq-pub.gpg\
| sudo tee /etc/apt/keyrings/sublime-text.asc >/dev/null
cat << SRC | sudo tee /etc/apt/sources.list.d/sublime-text.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/sublime-text.asc]\
https://download.sublimetext.com/ apt/stable/
SRC
echo 'apt-get update;echo;apt-get install -y sublime-text'|sudo bash
|
|
JetBrains Toolbox
|
JetBrains Toolbox |
|---|
wget -cq https://download-cdn.jetbrains.com/toolbox/jetbrains-toolbox-2.4.0.32175.tar.gz -P ${HOME}/Downloads
tar -xzf ${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175.tar.gz -C ${HOME}/Downloads
rm -rf ${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175.tar.gz
sudo apt update && sudo apt install libfuse2
${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175/jetbrains-toolbox
rm -rf ${HOME}/Downloads/jetbrains-toolbox-2.4.0.32175
|
Spring Tool Suite
|
Spring Tool Suite |
|---|
cat <<-'EXE'|sudo bash
mkdir -p /opt/ide
wget -cq https://cdn.spring.io/spring-tools/release/STS4/4.23.1.RELEASE/dist/e4.32/spring-tool-suite-4-4.23.1.RELEASE-e4.32.0-linux.gtk.x86_64.tar.gz -P /opt/ide
tar -xzf /opt/ide/spring-tool-suite-4-4.23.1.RELEASE-e4.32.0-linux.gtk.x86_64.tar.gz -C /opt/ide
rm -rf /opt/ide/spring-tool-suite-4-4.23.1.RELEASE-e4.32.0-linux.gtk.x86_64.tar.gz
EXE
# https://marketplace.eclipse.org/content/jaspersoft-studio
# https://projectlombok.org/setup/eclipse
cat <<-'EXE'|sudo bash
mkdir -p /opt/ide/lombok/bin
wget -cq https://projectlombok.org/downloads/lombok.jar -P /opt/ide/lombok/bin
java -jar /opt/ide/lombok/bin/lombok.jar
EXE
|
cat << INI | sudo tee /usr/share/applications/SpringToolSuite4.desktop >/dev/null
[Desktop Entry]
Name=SpringSource Tool Suite 4
Comment=SpringSource Tool Suite 4
Exec=/opt/ide/sts-4.23.1.RELEASE/SpringToolSuite4
Icon=/opt/ide/sts-4.23.1.RELEASE/icon.xpm
Keywords=Java,Eclipse,Spring,IDE,Development
Categories=Development;IDE;Java;
StartupNotify=true
Type=Application
Terminal=false
INI
|
Jasper Studio CE
|
Jasper Studio CE |
|---|
cat << EXE | sudo bash
mkdir -p /opt/ide
tar -xzf ${HOME}/Downloads/js-studiocomm_7.0.1_linux_x86_64.tgz -C /opt/ide
rm -rf ${HOME}/Downloads/js-studiocomm_7.0.1_linux_x86_64.tgz
EXE
|
cat << INI | sudo tee /usr/share/applications/JasperStudio.desktop >/dev/null
[Desktop Entry]
Name=Jasper Studio CE
Comment=Jasper Studio CE 7.0.1
Exec='/opt/ide/js-studiocomm_7.0.1/Jaspersoft Studio'
Icon='/opt/ide/js-studiocomm_7.0.1/icon.xpm'
Keywords=Java,Eclipse,Jasper,IDE,Development
Categories=Development;IDE;Java;
StartupNotify=true
Type=Application
Terminal=false
INI
|
Camunda
|
Camunda |
|---|
cat <<-'EXE'|sudo bash
mkdir -p /opt/ide
mkdir -p /tmp/camunda/images
wget -cq https://downloads.camunda.cloud/release/camunda-modeler/5.25.0/camunda-modeler-5.25.0-linux-x64.tar.gz -P /opt/ide
tar -xzf /opt/ide/camunda-modeler-5.25.0-linux-x64.tar.gz -C /opt/ide
chmod 4755 /opt/ide/camunda-modeler-5.25.0-linux-x64/chrome-sandbox
rm -rf /opt/ide/camunda-modeler-5.25.0-linux-x64.tar.gz
wget -cq https://camunda.com/wp-content/uploads/2022/09/Camunda_Secondary_Logo.zip -P /tmp/camunda
unzip -qq /tmp/camunda/Camunda_Secondary_Logo.zip -d /tmp/camunda/images/
cp /tmp/camunda/images/Secondary-Logo_Rounded-Orange.png \
/opt/ide/camunda-modeler-5.25.0-linux-x64/camunda-modeler.png
rm -rf /tmp/camunda/
EXE
|
cat << INI | sudo tee /usr/share/applications/CamundaModeler.desktop >/dev/null
[Desktop Entry]
Name=Camunda Modeler 5
Comment=Camunda Modeler 5.25.0
Exec=/opt/ide/camunda-modeler-5.25.0-linux-x64/camunda-modeler
Icon=/opt/ide/camunda-modeler-5.25.0-linux-x64/camunda-modeler.png
Keywords=Camunda,Modeler,BPMN,IDE,Development
Categories=Development;IDE;BPMN;
StartupNotify=true
Type=Application
Terminal=false
INI
|
JMeter
|
JMeter | |
|---|---|
cat <<-'EXE'|sudo bash
mkdir -p /opt/ide
wget -cq https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.6.3.tgz -P /opt/ide
tar -xzf /opt/ide/apache-jmeter-5.6.3.tgz -C /opt/ide
rm -rf /opt/ide/apache-jmeter-5.6.3.tgz
EXE
| |
cat << INI | sudo tee /usr/share/applications/jmeter.desktop >/dev/null
[Desktop Entry]
Version=5.6
Terminal=false
Type=Application
Name=Apache JMeter
StartupNotify=false
Comment=Apache JMeter
Exec=/opt/ide/apache-jmeter-5.6.3/bin/jmeter.sh
Icon=/opt/ide/apache-jmeter-5.6.3/docs/images/jmeter_square.png
Keywords=Java,JMeter,Development
Categories=Development;IDE;Java;
INI
| |
# jmeter find jvm_args
JMETER_JVM_ARGS_FIND=$(cat <<FIN
## JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh etc.\n\
##\n\
## ==============================================\n
FIN
)
|
# jmeter fill jvm_args
JMETER_JVM_ARGS_FILL=$(cat <<FIL
${JMETER_JVM_ARGS_FIND}\
JVM_ARGS="-Dsun.java2d.uiScale=200%"\
\n
FIL
)
|
sudo sed -z "s|${JMETER_JVM_ARGS_FIND}|$(echo "${JMETER_JVM_ARGS_FILL}")|" \
-i /opt/ide/apache-jmeter-5.6.3/bin/jmeter.sh
| |
PostgreSQL
|
PostgreSQL | |
|---|---|
| Install | |
cat << EXE | sudo bash
apt install -y postgresql postgresql-contrib
systemctl enable postgresql
systemctl status postgresql
systemctl start postgresql
systemctl daemon-reload
EXE
|
cat << EXE | sudo -i -u postgres bash
createuser ${USER}
createdb ${USER}
cat << DDL | psql
ALTER USER ${USER} WITH SUPERUSER;
DDL
EXE
|
pg_lsclusters
less /var/log/postgresql/postgresql-16-main.log
sudo pg_createcluster --start 16 mycluster
sudo pg_dropcluster --stop 16 mycluster
|
|
| Schema | |
cat << EXE | sudo -i -u postgres bash
cat << DDL | psql
CREATE DATABASE chorke_academia_staging;
CREATE USER chorke WITH ENCRYPTED PASSWORD 'sadaqah!';
DDL
EXE
cat << EXE | sudo -i -u postgres bash
cat << DCL | psql
GRANT ALL PRIVILEGES ON DATABASE chorke_academia_staging TO chorke;
DCL
EXE
|
|
psql chorke_academia_staging < chorke_academia_staging.sql
psql -h db00.chorke.org -p 5432 -d chorke_academia_staging -U chorke
psql -h db00.chorke.org -p 5432 -d chorke_academia_staging -U chorke -W -f chorke_academia_staging.sql
pg_restore -h db00.chorke.org -p 5432 -d chorke_academia_staging -U chorke chorke_academia_staging.dump
| |
| Revoke | |
cat << EXE | sudo -i -u postgres bash
cat << DCL | psql
REVOKE CONNECT ON DATABASE chorke_academia_staging FROM public;
DCL
EXE
|
|
| Delete | |
ps -ef | grep postgres
kill -9 PID
|valign='top'|
|-
|valign='top'|
<syntaxhighlight style='margin:3px 0' lang='sql'>
cat << EXE | sudo -i -u postgres bash
cat << DQL | psql
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity
WHERE pg_stat_activity.datname in ('chorke_academia_staging');
DQL
EXE
cat << EXE | sudo -i -u postgres bash
cat << DDL | psql
DROP DATABASE IF EXISTS chorke_academia_staging;
DDL
EXE
|
|
| DBeaver | |
curl -fsSL https://dbeaver.io/debs/dbeaver.gpg.key\
| sudo tee /etc/apt/keyrings/dbeaver.asc >/dev/null
cat << SRC | sudo tee /etc/apt/sources.list.d/dbeaver.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/dbeaver.asc]\
https://dbeaver.io/debs/dbeaver-ce /
SRC
cat << EXE | sudo bash
apt-get update;echo
apt list -a --upgradable
apt-get install -y dbeaver-ce
EXE
|
|
| PgAdmin4 | |
sudo apt install curl
sudo apt install apache2
curl -fsSL https://www.pgadmin.org/static/packages_pgadmin_org.pub\
| sudo tee /etc/apt/keyrings/pgadmin4.asc >/dev/null
DISTRIBUTION=$(. /etc/os-release && echo "${VERSION_CODENAME}");\
cat << SRC | sudo tee /etc/apt/sources.list.d/pgadmin4.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/pgadmin4.asc]\
https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/${DISTRIBUTION} pgadmin4 main
SRC
cat << EXE | sudo bash
apt-get update;echo
apt list -a --upgradable
apt-get install -y pgadmin4-web
EXE
sudo /usr/pgadmin4/bin/setup-web.sh
|
|
a2enmod ssl
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_balancer
|
|
Sencha CMD
|
Sencha CMD | |
|---|---|
unzip SenchaCmd-7.5.1.20-linux-amd64.sh.zip
sudo sh SenchaCmd-7.5.1.20-linux-amd64.sh
export SENCHA_CMD='/opt/cli/sencha/cmd'
export OPENSSL_CONF='/etc/ssl'
export PATH=$PATH:$SENCHA_CMD
mkdir -p ~/.sencha/cmd
cat << EOF > $HOME/.sencha/cmd/sencha.cfg
#------------------------------------------------------------------------------
# The folder for the local package repository. By default, this folder is shared
# by all versions of Sencha Cmd. In other words, upgrading Sencha Cmd does not
# affect the local repository.
repo.local.dir=${HOME}/.sencha/cmd/repo
EOF
sencha diag show
|
|
Redis
|
Redis | |
|---|---|
cat << EXE | sudo bash
apt install -y redis-server
systemctl status redis-server
EXE
|
|
# redis supervised find
REDIS_SUPERVISED_FIND=$(cat <<FIN
# the line below:\n\
#\n\
# supervised auto\n
FIN
)
|
# redis supervised fill
REDIS_SUPERVISED_FILL=$(cat <<FIL
# the line below:\n\
#\n\
supervised systemd\n
FIL
)
|
sudo sed -z "s|${REDIS_SUPERVISED_FIND}|$(echo "${REDIS_SUPERVISED_FILL}")|" \
-i /etc/redis/redis.conf
|
|
cat << EXE | sudo bash
systemctl daemon-reload
systemctl enable redis-server
systemctl restart redis-server
systemctl status redis-server
EXE
|
|
Workspace
|
Workspace | |
|---|---|
MOTHER_CONCERN=chorke
SISTER_CONCERN=academia
CONFIG_DIR=${HOME}/.config
DOCUMENT_DIR=${HOME}/Documents
MOTHER_SRC=/opt/${USER}/${MOTHER_CONCERN}
MOTHER_CFG_DES=${CONFIG_DIR}/${MOTHER_CONCERN}
MOTHER_DOC_DES=${DOCUMENT_DIR}/${MOTHER_CONCERN}
|
cat <<EXE|sudo bash
mkdir -p /opt/${USER}/
chown ${USER}:${USER} -R /opt/${USER}/
EXE
if [[ ! -L ${MOTHER_CFG_DES} ]]&&[[ ! -f ${MOTHER_CFG_DES} ]]&&\
[[ ! -d ${MOTHER_CFG_DES} ]];then ln -s ${MOTHER_SRC} ${MOTHER_CFG_DES};fi
if [[ ! -L ${MOTHER_DOC_DES} ]]&&[[ ! -f ${MOTHER_DOC_DES} ]]&&\
[[ ! -d ${MOTHER_DOC_DES} ]];then ln -s ${MOTHER_SRC} ${MOTHER_DOC_DES};fi
mkdir -p ${MOTHER_SRC}/${SISTER_CONCERN}/{dev,etc,usr,var}
|
# ${HOME}/Documents/${USER}-documents -> /opt/${USER}/home/documents
for USE in desktop documents downloads music pictures public videos;do
USER_USE_SRC=/opt/${USER}/home/${USE}
if [[ ! -L ${USER_USE_SRC} ]]&&[[ ! -f ${USER_USE_SRC} ]]&&\
[[ ! -d ${USER_USE_SRC} ]];then
mkdir -p ${USER_USE_SRC}
USER_USE_DES=${HOME}/${USE^}/${USER}-${USE}
if [[ ! -L ${USER_USE_DES} ]]&&[[ ! -f ${USER_USE_DES} ]]&&\
[[ ! -d ${USER_USE_DES} ]];then ln -s ${USER_USE_SRC} ${USER_USE_DES};fi
fi
done
| |
# ${HOME}/Documents/academia-dev-playground -> /opt/${USER}/chorke/academia/dev
DEV_PLAYGROUND_SRC=${MOTHER_SRC}/${SISTER_CONCERN}/dev
DEV_PLAYGROUND_DES=${DOCUMENT_DIR}/${SISTER_CONCERN}-dev-playground
if [[ ! -L ${DEV_PLAYGROUND_DES} ]]&&[[ ! -f ${DEV_PLAYGROUND_DES} ]]&&\
[[ ! -d ${DEV_PLAYGROUND_DES} ]];then ln -s ${DEV_PLAYGROUND_SRC} ${DEV_PLAYGROUND_DES};fi
| |
# ${HOME}/Documents/academia-bkp-playground -> /opt/${USER}/chorke/academia/var/backup
BKP_PLAYGROUND_DES=${DOCUMENT_DIR}/${SISTER_CONCERN}-bkp-playground
BKP_PLAYGROUND_SRC=${MOTHER_SRC}/${SISTER_CONCERN}/var/backup
mkdir -p ${BKP_PLAYGROUND_SRC}/{database,diagram,document,helm,project}
if [[ ! -L ${BKP_PLAYGROUND_DES} ]]&&[[ ! -f ${BKP_PLAYGROUND_DES} ]]&&\
[[ ! -d ${BKP_PLAYGROUND_DES} ]];then ln -s ${BKP_PLAYGROUND_SRC} ${BKP_PLAYGROUND_DES};fi
| |
# ${HOME}/Documents/${POC}-playground -> /opt/${USER}/chorke/academia/var/playground/${POC}
POC_PLAYGROUND_DIR=${MOTHER_SRC}/${SISTER_CONCERN}/var/playground
mkdir -p ${POC_PLAYGROUND_DIR}/{ansible,awscli,cypress,docker,drone}
mkdir -p ${POC_PLAYGROUND_DIR}/{ffmpeg,flask,helm,jasypt,jmeter,locust,lua}
mkdir -p ${POC_PLAYGROUND_DIR}/{maven,mediawiki,mirth,nashorn,terraform,wiki,wrk}
if [[ ! -L ${POC_PLAYGROUND_DIR} ]]&&[[ ! -f ${POC_PLAYGROUND_DIR} ]]&&\
[[ -d ${POC_PLAYGROUND_DIR} ]]&&[[ $(ls -A ${POC_PLAYGROUND_DIR}) ]];then
for POC_PLAYGROUND_SRC in ${POC_PLAYGROUND_DIR}/*;do
if [[ ! -L ${POC_PLAYGROUND_SRC} ]]&&[[ ! -f ${POC_PLAYGROUND_SRC} ]]&&\
[[ -d ${POC_PLAYGROUND_SRC} ]]&&[[ $(ls -A ${POC_PLAYGROUND_SRC}) ]];then
POC=$(basename ${POC_PLAYGROUND_SRC})
POC_PLAYGROUND_DES=${DOCUMENT_DIR}/${POC}-playground
if [[ ! -L ${POC_PLAYGROUND_DES} ]]&&[[ ! -f ${POC_PLAYGROUND_DES} ]]&&\
[[ ! -d ${POC_PLAYGROUND_DES} ]];then ln -s ${POC_PLAYGROUND_SRC} ${POC_PLAYGROUND_DES};fi
fi
done
fi
| |
ls -lah ${HOME}/{.config,Documents}/${MOTHER_CONCERN}/${SISTER_CONCERN}
rm -rf ${HOME}/{.config,Documents}/${MOTHER_CONCERN}
sudo rm -rf /opt/${USER}
|
|
Tmux
|
Tmux | |
|---|---|
sudo apt install tmux
cat << EOF | tee ${HOME}/.tmux.conf >/dev/null
set -g base-index 1
# remap prefix from 'C-b' to 'C-a'
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
set -g default-terminal 'screen-256color'
set -g history-limit 10000
set -g status-fg green
set -g status-bg black
# Window/pane split
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
EOF
|
|
Git SCM
|
Git SCM | |
|---|---|
sudo apt install -y gitk
ssh-keygen -t ed25519 -C "email.id@academia.chorke.org" -f ~/.ssh/git.academia.chorke.org_ed25519
: <<'LOG'
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/academia/.ssh/git.academia.chorke.org_ed25519
Your public key has been saved in /home/academia/.ssh/git.academia.chorke.org_ed25519.pub
The key fingerprint is:
SHA256:EIfunSYd2hNGEZ5X31cBcJPyJuuz8lHpNwwtzyYoxeY email.id@academia.chorke.org
The key's randomart image is:
+--[ED25519 256]--+
| ..+o .o+o.o|
| .+.. o.o...|
| ...o . o . o|
| ..+... oo .|
| . *S+ ++= . |
| + B +.+ * |
| o o.E o B |
| ..o. + .|
| ooo |
+----[SHA256]-----+
LOG
ls -lah ~/.ssh/
cat < ~/.ssh/git.academia.chorke.org_ed25519.pub
| |
nano ~/.ssh/config
: <<'END_COMMENT'
Host git.academia.chorke.org
HostName git.academia.chorke.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/git.academia.chorke.org_ed25519
User git
END_COMMENT
|
|
git config --global user.email "email.id@academia.chorke.org"
git config --global user.name "FULL NAME"
ssh -vT git.academia.chorke.org
|
|
# add the new key(s) to known_hosts
ssh-keyscan -H git.academia.chorke.org >> ~/.ssh/known_hosts
# remove the old key(s) from known_hosts
ssh-keygen -R git.academia.chorke.org
|
|
Podman
|
Podman | |
|---|---|
sudo apt update
sudo apt install podman
podman -v
|
|
cat << EOF | sudo tee -a /etc/containers/registries.conf >/dev/null
[registries.search]
registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]
EOF
podman search ubuntu
podman pull ubuntu
podman images
podman info
| |
Vagrant
|
Vagrant | |
|---|---|
curl -fsSL https://apt.releases.hashicorp.com/gpg\
| sudo tee /etc/apt/keyrings/hashicorp.asc >/dev/null
DISTRIBUTION=$(. /etc/os-release && echo "${VERSION_CODENAME}")
cat << SRC | sudo tee /etc/apt/sources.list.d/hashicorp.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/hashicorp.asc]\
https://apt.releases.hashicorp.com ${DISTRIBUTION} main
SRC
cat << EXE | sudo bash
apt-get update;echo
apt list -a --upgradable
apt-get install -y vagrant
EXE
vagrant -v
|
|
sudo apt install -y qemu-kvm virt-manager libvirt-daemon-system virtinst libvirt-clients bridge-utils
sudo systemctl enable --now libvirt-guests.service
sudo systemctl enable --now virtlogd.service
sudo systemctl enable --now libvirtd.service
systemctl status libvirt-guests.service
systemctl status libvirtd.service
systemctl status virtlogd.service
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
newgrp libvirt
newgrp kvm
| |
sudo systemctl disable --now libvirt-guests.service
sudo systemctl disable --now virtlogd.service
sudo systemctl disable --now libvirtd.service
sudo systemctl disable --now virtlogd-admin.socket
sudo systemctl disable --now virtlogd.socket
sudo systemctl disable --now libvirtd-admin.socket
sudo systemctl disable --now libvirtd-ro.socket
sudo systemctl disable --now libvirtd.socket
|
|
Docker
|
Docker | |
|---|---|
sudo apt install apt-transport-https ca-certificates curl software-properties-common
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg\
| sudo tee /etc/apt/keyrings/docker.asc >/dev/null
DISTRIBUTION=$(. /etc/os-release && echo "${VERSION_CODENAME}")
cat << SRC | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/docker.asc]\
https://download.docker.com/linux/ubuntu ${DISTRIBUTION} stable
SRC
sudo apt-get update
apt-cache policy docker-ce
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl status docker
sudo usermod -aG docker ${USER}
echo 'id -nG'|sudo -i -u ${USER} bash
echo 'docker ps -a'|sudo -i -u ${USER} bash
| |
yq -o=json <<'YML'| \
sudo tee /etc/docker/daemon.json >/dev/null
---
bip: 10.20.13.1/24
mtu: 1500
dns:
- 1.1.1.1
- 8.8.8.8
debug: true
YML
|
|
sudo systemctl stop docker.socket
sudo systemctl stop docker.service
sudo systemctl start docker.service
su - ${USER}
docker run --rm alpine cat /etc/resolv.conf
docker run --rm alpine cat /etc/hosts
|
|
LXD
|
LXD | |
|---|---|
sudo apt upgrade && sudo apt autoremove
sudo snap install lxd --channel=6.1/stable
sudo usermod -aG lxd ${USER}
echo 'id -nG'|sudo -i -u ${USER} bash
echo 'lxc version'|sudo -i -u ${USER} bash
|
|
sudo lxd init
:'
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]: lxd-btrfs-pool-aa
Name of the storage backend to use (btrfs, ceph, dir, lvm, powerflex) [default=btrfs]:
Create a new BTRFS pool? (yes/no) [default=yes]:
Would you like to use an existing empty block device (e.g. a disk or partition)? (yes/no) [default=no]:
Size in GiB of the new loop device (1GiB minimum) [default=30GiB]: 100GiB
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 10.20.0.1/24
Would you like LXD to NAT IPv4 traffic on your bridge? [default=yes]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none
Would you like the LXD server to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: yes
'
sudo ufw allow http
sudo ufw allow OpenSSH
sudo ufw allow in on lxdbr0
sudo ufw route allow in on lxdbr0
sudo ufw route allow out on lxdbr0
sudo ufw status verbose
sudo systemctl status ufw
sudo ufw enable
lxc launch images:alpine/3.20 academia &&
lxc exec academia sh
|
---
config: {}
networks:
- config:
ipv4.address: 10.20.0.1/24
ipv4.nat: "true"
ipv6.address: none
description: ""
name: lxdbr0
type: ""
project: default
storage_pools:
- config:
size: 100GiB
description: ""
name: lxd-btrfs-pool-aa
driver: btrfs
storage_volumes: []
profiles:
- config: {}
description: ""
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: lxd-btrfs-pool-aa
type: disk
name: default
projects: []
cluster: null
|
Arduino
|
Arduino | |
|---|---|
sudo apt install arduino
sudo snap install arduino
|
|
sudo wget -c https://downloads.arduino.cc/arduino-1.8.19-linux64.tar.xz -P /opt/ide/
sudo tar -xvf /opt/ide/arduino-1.8.19-linux64.tar.xz -C /opt/ide/
sudo rm -rf /opt/ide/arduino-1.8.19-linux64.tar.xz
sudo /opt/ide/arduino-1.8.19/install.sh
sudo usermod -aG dialout ${USER}
newgrp dialout
id -nG
|
|
Qt Creator
|
Qt Creator | |
|---|---|
sudo apt install qtcreator
sudo apt remove qtcreator
sudo apt auto-remove qtcreator
|
|
Microsoft
|
Microsoft | |
|---|---|
sudo apt install -y apt-transport-https \
ca-certificates curl software-properties-common wget
|
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc\
| sudo tee /etc/apt/keyrings/microsoft.asc >/dev/null
|
cat << EOF | sudo tee /etc/apt/sources.list.d/microsoft-edge.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/microsoft.asc]\
https://packages.microsoft.com/repos/edge stable main
EOF
cat << EXE | sudo bash
apt-get update;echo
apt list -a --upgradable
apt-get install -y microsoft-edge-stable
EXE
microsoft-edge -version
|
cat << EOF | sudo tee /etc/apt/sources.list.d/microsoft-code.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/microsoft.asc]\
https://packages.microsoft.com/repos/code stable main
EOF
cat << EXE | sudo bash
apt-get update;echo
apt list -a --upgradable
apt-get install -y code
EXE
code -version
|
Remote
|
Remote | |
|---|---|
sudo ufw allow 5900/tcp
sudo ufw status verbose
systemctl --user restart gnome-remote-desktop.service
systemctl --user status gnome-remote-desktop.service
gsettings set org.gnome.desktop.remote-desktop.rdp screen-share-mode extend
|
|
DaVinci Resolve
|
DaVinci Resolve | |
|---|---|
wget -cq https://sw.blackmagicdesign.com/DaVinciResolve/v18.1.4/DaVinci_Resolve_18.1.4_Linux.zip\
?Key-Pair-Id=${KEY_PAIR_ID}==&Expires=${KEY_EXPIRES} -P ${HOME}/Downloads
unzip DaVinci_Resolve_18.1.4_Linux.zip -d ${HOME}/Downloads
sudo apt install libfuse2 libxcb-cursor0 libxcb-damage0
sudo ./DaVinci_Resolve_18.1.4_Linux.run -i
|
|
Kontena Lens
|
Kontena Lens | |
|---|---|
# install from snapcraft
sudo snap install kontena-lens --classic
curl -fsSL https://downloads.k8slens.dev/keys/gpg\
| sudo tee /etc/apt/keyrings/kontena-lens.asc >/dev/null
cat << EOF | sudo tee /etc/apt/sources.list.d/kontena-lens.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/kontena-lens.asc]\
https://downloads.k8slens.dev/apt/debian stable main
EOF
cat << EXE | sudo bash
apt-get update;echo
apt list -a --upgradable
apt-get install -y lens
EXE
|
|
OpenSSH Server
|
OpenSSH Server | |
|---|---|
sudo apt-get install -y openssh-client
sudo apt-get install -y openssh-server
sudo apt-get install -y openssh-sftp-server
|
|
Knowledge
|
Knowledge | |
|---|---|
tmux ls
tmux new -s my_session
tmux attach-session -t 0
tmux attach-session -t my_session
Ctrl + b % » Split pane horizontally
Ctrl + b " » Split pane vertically
Ctrl + b x » Close current pane
|
Ctrl + b c » Create a new window
Ctrl + b w » Choose window from a list
Ctrl + b 0 » Switch to window by number
Ctrl + b , » Rename the current window
Ctrl + b o » Go to the next pane
Ctrl + b ; » Toggle between pane
Ctrl + b d » Detach the session
|
lsblk
lscpu
lsusb
free -h
sudo lshw
ufw status
ufw status verbose
systemctl status ufw
apt list --installed
|
sudo ufw allow http
sudo ufw allow OpenSSH
sudo ufw allow 5900/tcp
sudo ss -tulpn | grep LISTEN
sudo ss -tulwn | grep LISTEN
sudo ss -tulpn | grep LISTEN | grep sshd
sudo ss -tulpn | grep LISTEN | grep redis
sudo ss -tulpn | grep LISTEN | grep gnome
sudo ss -tulpn | grep LISTEN | grep apache
|
sudo dmidecode -t
sudo dmidecode -t 1
sudo dmidecode -t 3
|
sudo dmidecode | grep 'SKU Number'
sudo dmidecode -s system-product-name
sudo dmidecode -s system-serial-number
|
# disk usage
du -h /var
du -sh /var
du -csh ~/Do*
du -csh /var/log /var/lib
du -sh --apparent-size /var/lib
du -h /var/ | sort -rh | head -5
sudo dpkg --remove --force-remove-reinstreq ${PACAKGE_NAME:-vim}
|
sudo dpkg -i ~/Downloads/TIB_js-studiocomm_6.16.0_linux_amd64.deb
sudo dpkg -i ~/Downloads/code_1.74.3-1673284829_amd64.deb
sudo dpkg -i ~/Downloads/teams_1.5.00.23861_amd64.deb
sudo dpkg -i ~/Downloads/anydesk_6.2.1-1_amd64.deb
sudo dpkg -i ~/Downloads/freedownloadmanager.deb
sudo dpkg -i ~/Downloads/zoom_amd64.deb
sudo apt-get install --fix-broken
sudo apt-get install -f
|
sudo apt-get install balena-etcher-electron
sudo apt-get install inetutils-traceroute
sudo apt-get install libavcodec60 ffmpeg
sudo apt-get install gedit-plugins
sudo apt-get install sublime-text
sudo apt-get install makepasswd
sudo apt-get install obs-studio
sudo apt-get install mesa-utils
sudo apt-get install filezilla
sudo apt-get install net-tools
sudo apt-get install xournalpp
sudo apt-get install neofetch
sudo apt-get install libfuse2
sudo apt-get install gtkhash
sudo apt-get install upx-ucl
sudo apt-get install hwinfo
sudo apt-get install ktouch
sudo apt-get install podman
sudo apt-get install bolt
sudo apt-get install tree
sudo apt-get install tmux
sudo apt-get install jq
sudo apt-get install mc
|
sudo snap install maas --channel=3.3/stable
sudo snap install dotnet-sdk --classic
sudo snap install powershell --classic
sudo snap install notepad-plus-plus
sudo snap install telegram-desktop
sudo snap install skype --classic
sudo snap install nvim --classic
sudo snap install code --classic
sudo snap install figma-linux
sudo snap install zoom-client
sudo snap install arduino
sudo snap install firefox
sudo snap install postman
sudo snap install drawio
sudo snap install maas
sudo snap disable mass
sudo snap install slack
sudo snap refresh drawio
sudo snap refresh firefox
sudo snap remove postman
|
ls -lah ~/.local/share/applications/
ls -lah ~/.config/autostart/
ls -lah ~/.local/share/
|
rm -rf ~/.local/share/applications/jetbrains-toolbox.desktop
rm -rf ~/.config/autostart/jetbrains-toolbox.desktop
rm -rf ~/.local/share/JetBrains/Toolbox
|
lspci | grep -i thunder
# git stashing
git stash; git checkout -b new_branch; git stash pop
git add .; git commit -m "new feature added"; git push
|
# reset time zone
timedatectl set-ntp true
timedatectl set-ntp false
timedatectl set-time '2021-12-31 23:58:00'
timedatectl set-timezone 'Asia/Kuala_Lumpur'
|
#nano ~/.bashrc
#nano ~/.zshenv
#nano ~/.profile
#nano ~/.bash_profile
export ACADEMIA_WSS="$HOME/chorke/academia"
export ACADEMIA_LOG_PATH="$HOME/.chorke/academia/var/http/logs"
|
source ~/.bashrc
source ~/.profile
source ~/.bash_profile
source ~/.zshenv
source ~/.zprofile/.zlogin
|
ssh-keygen -p -f ~/.ssh/git_academia_chorke_org_rsa
: <<'END_COMMENT'
Enter old passphrase:
Key has comment 'email.id@academia.chorke.org'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
END_COMMENT
| |
# comment and uncomment sql
sed -i -e 's|^|-- |g' src/main/resources/db/migration/*.sql
sed -i -e 's|^-- ||g' src/main/resources/db/migration/*.sql
sudo systemctl enable --now ssh
sudo systemctl disable --now ssh
# hide mounted drives
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false
| |