Win 常用开发环境安装

记上一次急躁的我为了扩C盘直接抛弃了D盘后。所有开发环境也被我删干净了,都在D盘。正好那就重新安装,顺便记录一下。 我主要用到的环境一般是python java和node 这里java因为许久未碰。我都把我JB系列的软件都删了,现在是cursor用户也足以。主要是常常会在公司打开接近十几个工作空间。五个桌面,轻量的vscode配合插件也足以 所以我首先安装miniconda,用来管理python环境 Conda Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software. 最初接触Python的时候还是 Python3.7,就是五年前的事情了。那时候对于Anaconda的安装都是模模糊糊的。后来也是摸爬滚打,像Python Java系列的依赖,觉得比C++真的容易太多了。 这里准备安装的是miniConda。顾名思义,mini版 这一类安装 建议参考官方文档,所以先放上链接miniconda/intstall 然后是我的安装步骤 诶,太久没装了吗。原来win直接装一个exe就一步到位了 尬住了 那就装一下node吧 node 因为调试需求。node也会需要不同的版本。之前用的是nvm管理不同的版本,所以还是继续安装nvm 题外话好像也有人做了jvm 管理不同的jdk版本。不过之前都是手动切换 顶多也是java1.8和java十几 GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions ...

March 21, 2025 · 1 min · 87 words · Ray

给ssh登录做一个通知

给ssh登录做一个通知 钉钉创建一个群。然后创建一个普通机器人。 这个思路是自己想的,随手搜了一下 真有佬做了.下面是链接 如何使用钉钉机器人通知接收服务器SSH登录提醒 - 阿豪运维笔记 根据佬的写法 后面再加点功能。最近忙的紧,先把这个脚本部署尝试 主要原理就是sshrc是SSH服务的一个特殊文件,它会在每次SSH会话建立时自动执行。 执行时获取一些信息,执行 POST 请求 到钉钉的 webhook 地址,群里的机器人就可以发消息了 注意关键词的设置 [sh] 显示已折叠代码(70 行) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 # 编辑/etc/ssh/sshrc文件 最后更新时间 2025-03-17 11:09:34 # 设置日志文件 LOG_FILE="/tmp/ssh_notification_debug.log" # 记录详细日志的函数 log_debug() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] [PID:$$] [SSH_TTY:$SSH_TTY] [PPID:$PPID] $1" >> "$LOG_FILE" } # 记录脚本启动 log_debug "脚本开始执行 ====================" log_debug "SSH_CLIENT: $SSH_CLIENT" # 获取登录者的用户名 user=$USER # 获取登录IP地址 ip=${SSH_CLIENT%% *} # 创建基于用户、IP和当前小时的锁文件名 # 这样同一IP同一用户每小时只会通知一次 current_hour=$(date +%Y%m%d%H) LOCK_FILE="/tmp/ssh_notify_${user}_${ip}_${current_hour}" GLOBAL_LOCK="/tmp/ssh_notification.lock" log_debug "检查锁文件: $LOCK_FILE" # 简化的锁定机制,兼容dash shell if [ -f "$LOCK_FILE" ]; then log_debug "本小时已经为用户${user}从IP${ip}发送过通知" echo "Welcome back. The administrator has already been notified of your login this hour." exit 0 fi # 创建锁定文件 touch "$LOCK_FILE" log_debug "已创建锁文件: $LOCK_FILE" # 获取登录的时间 time=$(date +%F%t%k:%M) # 服务器的IP地址和自定义名称 server='204-ray-server-in-mckj' # 修改函数声明语法,使其兼容Dash DingDingalarm() { log_debug "开始发送钉钉通知" local url="https://oapi.dingtalk.com/robot/send?access_token=钉钉token" local UA="Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/535.24(KHTML,likeGecko)Chrome/19.0.1055.1Safari/535.24" local res res=$(curl -XPOST -s -L -H"Content-Type:application/json" -H"charset:utf-8" "$url" -d "{\"msgtype\":\"markdown\",\"markdown\":{\"title\":\"$1\",\"text\":\"$2\"}}") if [ $? -eq 0 ]; then log_debug "钉钉通知发送成功: $res" echo "钉钉通知已发送,结果:$res" echo "Notification sent to admin." else log_debug "钉钉通知发送失败: $res" echo "钉钉通知发送失败,错误信息:$res" fi } # 使用Markdown格式美化通知内容 message="### 🔔 服务器登录通知 🔔\n\n**时间**:<font color='#FF5722'>$time</font>\n\n**服务器**:<font color='#2196F3'>$server</font>\n\n**用户**:<font color='#4CAF50'>$user</font>\n\n**来源IP**:<font color='#9C27B0'>$ip</font>\n\n**会话信息**:TTY=$SSH_TTY, PID=$$, PPID=$PPID\n\n> Please make sure to check if this login is expected." DingDingalarm "服务器登录通知" "$message" # 打印日志,通知管理员并告知操作将被记录 echo "The administrator has been notified. All actions will be logged." log_debug "通知完成,脚本结束 ====================" # 要定期清理锁文件,请使用以下命令设置cron作业(在root权限下执行一次): # echo "5 * * * * root find /tmp -name 'ssh_notify_*' -type f -mmin +60 -delete" > /etc/cron.d/clean_ssh_locks 小插曲 直接 cp 到 sshrc 中时报错 ...

March 13, 2025 · 2 min · 333 words · Ray

服务器初始化

服务器初始化 参考链接 https://www.ruanyifeng.com/blog/2014/03/server_setup.html https://hufangyun.com/2017/linux-init/ 第一篇阮一峰老师的,第二篇胡方运老师的, 主要内容可能与第二篇相似,希望以后我能进行完善,不要太过于臃肿也好。 针对于自己的个人习惯。也记录一个流程,以后配置服务器标准一点 刚购买完服务器要做的操作 这里就忽视安全组的问题了。因为之前买过几年。安全组的配置基本一致,我也不记得初始化啥样子了,如果进不去自己检查网络连接,或者网页进去也行 这里买的是阿里云的 99 一年,2c2g ubuntu24,3M 固定带宽。控制台启动后先重置root密码 然后远程登录 ssh root@ip.ip.ip.ip 进来看着原先的一串主机名眼睛花,改一手主机名 hostnamectl set-hostname <new-hostname> 然后重新登录就行了。 如果只是要改命令行提示符一串可以研究~/.bashrc和各种插件,关于美化命令行那也是水很深,我就喜欢傻黑粗的玩意儿 新账号 操作 Linux 系统任何时候尽量不使用 root 账户,毕竟权限太大对小白不是好事,有自知之明且要学一下好习惯,创建一个管理员账户 [[Linux-用户管理#新建用户]] 这里基本和文章开头贴的博客一致。我也创建admin用户组 addgroup admin 添加新用户(ray) useradd -d /home/ray -s /bin/bash -m ray 上面命令中,参数 d 指定用户的主目录,参数 s 指定用户的 shell,参数 m 表示如果该目录不存在,则创建该目录。 接着,设置新用户的密码。 passwd ray 将新用户(ray)添加到用户组(admin)。 usermod -a -G admin ray 接着,为新用户设定sudo权限。 sudo vim /etc/sudoers 找到下面这一行。 root ALL=(ALL:ALL) ALL 在这一行的下面,再添加一行。 1 2 root ALL=(ALL:ALL) ALL ray ALL=(ALL:ALL) ALL 验证 ...

March 12, 2025 · 2 min · 269 words · Ray