u
This commit is contained in:
parent
99fe67201e
commit
673a685f04
@ -1,4 +1,4 @@
|
||||
FROM debian:11.5
|
||||
FROM debian:12.8
|
||||
LABEL org.opencontainers.image.authors="luk"
|
||||
|
||||
RUN apt update && apt install curl -y
|
||||
|
@ -1,8 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
## "curl -s https://git.tic.cc/npm/sysconfig/raw/branch/main/debian-setup.sh | bash"
|
||||
|
||||
echo "Usage: this.sh [NewUser]"
|
||||
echo "Example: this.sh alice"
|
||||
echo "curl -s https://git.faronear.org/npm/sysconfig/raw/branch/main/debian-setup.sh | bash"
|
||||
|
||||
if [ "$1" ]
|
||||
then
|
||||
@ -12,8 +13,8 @@ else
|
||||
fi
|
||||
|
||||
echo "::*** Installing basic tools"
|
||||
apt update
|
||||
apt install -y emacs git wget curl screen sudo automake rsync net-tools dnsutils gcc g++ make python3 jq
|
||||
#apt update
|
||||
apt install -y nano emacs git wget curl screen sudo automake rsync net-tools dnsutils gcc g++ make python3 jq
|
||||
# Debian 12.0 has no python package, However the following packages replace it: python-is-python3 2to3
|
||||
echo
|
||||
|
||||
@ -25,13 +26,13 @@ echo "::*** Git cloning to /faronear/sysconfig"
|
||||
git config --global credential.helper cache
|
||||
if [ ! -d "/faronear/sysconfig" ]
|
||||
then
|
||||
git clone https://git.faronear.org/npm/sysconfig /faronear/sysconfig
|
||||
git clone https://git.tic.cc/npm/sysconfig /faronear/sysconfig
|
||||
chmod -R 755 /faronear # 确保其他用户能够读取 /faronear/sysconfig/nixhome/*
|
||||
fi
|
||||
echo
|
||||
|
||||
echo "::*** Configure root home"
|
||||
source /faronear/sysconfig/nixhome-config.sh /faronear/sysconfig/nixhome root <<< 'l\nl\n'
|
||||
source /faronear/sysconfig/nixhome-config.sh /faronear/sysconfig/nixhome root
|
||||
echo
|
||||
|
||||
# echo "::*** Change root password? [y] for yes, [anything else] for omit:"
|
||||
|
@ -1,7 +1,7 @@
|
||||
echo "::*** Install formulaes and casks, enter [y] for Yes, [anything else] for No:"
|
||||
echo
|
||||
|
||||
formulaeList=(cloudflared jq openssl pandoc rclone readline speedtest-cli hudochenkov/sshpass/sshpass v2ray v2raya/v2raya/v2raya yt-dlp)
|
||||
formulaeList=(aichat cloudflared jq openssl pandoc rclone readline speedtest-cli hudochenkov/sshpass/sshpass v2ray v2raya/v2raya/v2raya yt-dlp)
|
||||
for APP in "${formulaeList[@]}"
|
||||
do
|
||||
echo "--- brew install $APP"
|
||||
|
@ -42,32 +42,20 @@ if [ -d "$HomePath" ]; then
|
||||
echo
|
||||
echo "::*** Copy or link scripts? [l] to link, [c] to copy, [g] to git import, [anything else] to omit:"
|
||||
read -p "***:: " CopyOrLinkScripts
|
||||
if [ "$CopyOrLinkScripts" == 'l' ]; then
|
||||
for homescript in $homescriptlist; do
|
||||
if [ -e "$homescript" ] || [ -L "$homescript" ]; then
|
||||
mv "$homescript" "$homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc)"
|
||||
fi
|
||||
if [ "$CopyOrLinkScripts" == 'l' ]; then
|
||||
echo "--- Linking [[$NIXHOME/$homescript]] to [[$HomePath/$homescript]] ..."
|
||||
ln -s "$NIXHOME/$homescript" ./
|
||||
done
|
||||
elif [ "$CopyOrLinkScripts" == 'c' ]; then
|
||||
for homescript in $homescriptlist; do
|
||||
if [ -e "$homescript" ] || [ -L "$homescript" ]; then
|
||||
mv "$homescript" "$homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc)"
|
||||
fi
|
||||
echo "--- Copying [[$NIXHOME/$homescript]] to [[$HomePath/$homescript]] ..."
|
||||
cp -r "$NIXHOME/$homescript" ./
|
||||
done
|
||||
elif [ "$CopyOrLinkScripts" == 'g' ]; then
|
||||
for homescript in $homescriptlist; do
|
||||
if [ -e "$homescript" ] || [ -L "$homescript" ]; then
|
||||
mv "$homescript" "$homescript.backup-$(date -u +%Y%m%dT%H%M%Sutc)"
|
||||
fi
|
||||
curl -sSLO "https://git.faronear.org/npm/sysconfig/raw/branch/main/nixhome/$homescript"
|
||||
done
|
||||
else
|
||||
echo '--- Home scripts not changed.'
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
|
||||
@ -86,13 +74,13 @@ if [ -d "$HomePath" ]; then
|
||||
fi
|
||||
|
||||
echo "::*** Append or link or omit [[$HomePath/.ssh/authorized_keys]] to config ssh server? [a] for append, [l] for link, [anything else] for omit:"
|
||||
read -p "***:: " CopyOrLinkOrOmitAuthorizedKeys
|
||||
read -p "***:: " AuthorizedKeys
|
||||
|
||||
if [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'l' ]; then
|
||||
if [ "$AuthorizedKeys" = 'l' ]; then
|
||||
echo "--- Linking [[$NIXHOME/authorized_keys]] to [[$HomePath/.ssh/authorized_keys]] ..."
|
||||
ln -s "$NIXHOME/.ssh/authorized_keys" "$HomePath/.ssh/authorized_keys"
|
||||
sudo chmod 644 "$HomePath/.ssh/authorized_keys" # 确保其他用户能读取 nixhome/.ssh/authorized_keys
|
||||
elif [ "$CopyOrLinkOrOmitAuthorizedKeys" = 'a' ]; then
|
||||
elif [ "$AuthorizedKeys" = 'a' ]; then
|
||||
echo "--- Copying [[$NIXHOME/authorized_keys]] to [[$HomePath/.ssh/authorized_keys]] ..."
|
||||
cat "$NIXHOME/.ssh/authorized_keys" >> "$HomePath/.ssh/authorized_keys"
|
||||
chmod 600 "$HomePath/.ssh/authorized_keys"
|
||||
|
@ -19,3 +19,10 @@ unset USERNAME
|
||||
################################################################################
|
||||
# End Of File: "~/.bash_profile"
|
||||
################################################################################
|
||||
|
||||
# Added by LM Studio CLI (lms)
|
||||
export PATH="$PATH:/Users/luk/.cache/lm-studio/bin"
|
||||
|
||||
# Added by OrbStack: command-line tools and integration
|
||||
# This won't be added again if you remove it.
|
||||
source ~/.orbstack/shell/init.bash 2>/dev/null || :
|
||||
|
@ -16,9 +16,6 @@ then
|
||||
. /etc/profile
|
||||
fi
|
||||
|
||||
# Define primary prompt (default is '$'):
|
||||
export PS1='<\u@\h::\w> ' # \w shows absolute path, \W shows current folder.
|
||||
|
||||
# Always use ssh to connect to CVS repositories:
|
||||
export CVS_RSH=ssh
|
||||
|
||||
@ -33,8 +30,8 @@ export CVS_RSH=ssh
|
||||
|
||||
# Define aliases:
|
||||
|
||||
alias rm='rm -i' # Think twice before deletion. Though troublesome but strongly recommended!
|
||||
alias ssh='ssh -C -X' # Request X tunneling for SSH:
|
||||
alias rm='rm -i' # Think twice before deletion. Though troublesome but strongly recommended.
|
||||
alias sshx='ssh -C -X' # Request X tunneling for SSH:
|
||||
alias sshtrust='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' # Do not verify Host Key change:
|
||||
alias cvs='cvs -z9' # Always use compression for CVS:
|
||||
alias ps='ps -elf'
|
||||
@ -48,6 +45,13 @@ alias su='su -'
|
||||
alias npmc='npm --registry https://registry.npmmirror.com'
|
||||
alias npmr='npm -s run'
|
||||
alias curlw='curl -sSL -o /dev/null -w "%{http_code} | %{time_total} s | %{size_download} bytes | %{url_effective}\n"'
|
||||
if [ $(which aichat) ]
|
||||
then
|
||||
alias ai='aichat'
|
||||
alias air='aichat -e'
|
||||
alias aic='aichat -c'
|
||||
alias aif='aichat --file'
|
||||
fi
|
||||
if [ "$(uname)" = "Darwin" ]
|
||||
then
|
||||
alias l='ls -lG'
|
||||
@ -57,6 +61,8 @@ then
|
||||
alias sedi='sed -i ""'
|
||||
export HOMEBREW_NO_AUTO_UPDATE=true
|
||||
export BASH_SILENCE_DEPRECATION_WARNING=1
|
||||
promptPrefix='<'
|
||||
promptSuffix='>'
|
||||
else
|
||||
alias l='ls -l --color=auto' # --time-style=long-iso --color=auto'
|
||||
alias ll='ls -lA --color=auto'
|
||||
@ -64,6 +70,8 @@ else
|
||||
alias lll='ls -la --color=auto'
|
||||
alias sedi='sed -i'
|
||||
export TIME_STYLE='+%Y-%m-%d--%H:%M:%S'
|
||||
promptPrefix='['
|
||||
promptSuffix=']'
|
||||
fi
|
||||
#export LS_OPTIONS='--color=auto' # 如果没有指定,则自动选择颜色
|
||||
#export CLICOLOR='Yes' #是否输出颜色
|
||||
@ -72,46 +80,32 @@ fi
|
||||
# Set default file permission mask:
|
||||
umask 022 # rwxr-xr-x
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
# $USERNAME and $USER are both empty during execution of .bashrc.
|
||||
# PROMPT_COMMAND is expanded only when used.
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PROMPT_COMMAND='echo -ne "\033]0;<${USER}@${HOSTNAME}:${PWD}>B\007"'
|
||||
;;
|
||||
dumb*)
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
############## following settings copied from amazon's debian ####################
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
## uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
## off by default to not distract the user: the focus in a terminal window
|
||||
## should be on the output of commands, not on the prompt
|
||||
# force_color_prompt=yes
|
||||
# if [ -n "$force_color_prompt" ]; then
|
||||
# if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# # We have color support; assume it's compliant with Ecma-48
|
||||
# # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# # a case would tend to support setf rather than setaf.)
|
||||
# color_prompt=yes
|
||||
# else
|
||||
# color_prompt=
|
||||
# fi
|
||||
# fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color|*-256color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
#force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
# color starts with \[\033[${ColorCode}m\] and ends with \[\033[00m\], in which the $ColorCode is `$Style;$Type$Color`:
|
||||
# $Style: text style
|
||||
# - `00`: Default style
|
||||
@ -132,21 +126,15 @@ fi
|
||||
# - `5`: Magenta
|
||||
# - `6`: Cyan
|
||||
# - `7`: White
|
||||
# others:
|
||||
# \w shows absolute path, \W shows current folder.
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='<\[\033[01;42m\]\t\[\033[00m\]#\[\033[01;45m\]\u\[\033[00m\]@\[\033[01;41m\]\h\[\033[00m\]:\[\033[01;41m\]\w\[\033[00m\]> '
|
||||
PS1='$promptPrefix\[\033[01;42m\]\t\[\033[00m\]#\[\033[01;45m\]\u\[\033[00m\]@\[\033[01;41m\]\h|$(uname)|$(uname -m)\[\033[00m\]::\[\033[01;44m\]\w\[\033[00m\]$promptSuffix '
|
||||
else
|
||||
PS1='<\t#\u@\h:\w> '
|
||||
PS1='$promptPrefix\t#\u@\h($(uname)-$(uname -m)):\w$promptSuffix ' # \w shows absolute path, \W shows current folder.
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;\u@\h::\w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
############## above settings copied from amazon's debian ####################
|
||||
|
||||
if [ "$(uname)" = "Darwin" ]
|
||||
@ -199,3 +187,6 @@ fi
|
||||
################################################################################
|
||||
# End Of File: "~/.bashrc"
|
||||
################################################################################
|
||||
|
||||
# Added by LM Studio CLI (lms)
|
||||
export PATH="$PATH:/Users/luk/.cache/lm-studio/bin"
|
||||
|
Loading…
Reference in New Issue
Block a user