WSL / 默认使用 root 用户
打开 PowerShell,以 root 用户进入 wsl, wsl -u root 再修改 root 密码, passwd 修改 /etc/wsl.conf 文件,添加, [user] default=root 保存退出。 再退出到 PowerShell,重启 wsl, wsl -t ubuntu 重新进入 wsl,即发现默认用户即 root。
打开 PowerShell,以 root 用户进入 wsl, wsl -u root 再修改 root 密码, passwd 修改 /etc/wsl.conf 文件,添加, [user] default=root 保存退出。 再退出到 PowerShell,重启 wsl, wsl -t ubuntu 重新进入 wsl,即发现默认用户即 root。
习惯了使用 Unix 风格的终端,过去在 Windows 上,一直给 Clion 配置 Git Bash 作为终端: "D:\Program Files\Git\bin\sh.exe" 但近来发现,在 Git Bash 中运行编译好的 C++ 程序时,有时候会没有回显。Cygwin Terminal 就没这问题,Clion 中配置 Cygwin Terminal 如下: "D:\Dependencies\cygwin64\bin\sh.exe" -lic "cd ${OLDPWD-.}; bash"
前言 RetHat 系列 Linux 发行版,如 Centos 7,自带历史命令补全。 如之前敲过一条命令: ps -ef | grep sshd 下次再敲只需要按敲 ps 再按 PageUp 键即可自动补全,非常方便。 而 Debian 系列如 Ubuntu 20.04 默认没开启这项功能。 开启历史命令补全 vim /etc/inputrc 下两条设置取消注释: # alternate mappings for "page up" and "page down" to search the history # "\e[5~": history-search-backward # "\e[6~": history-search-forward 改为: # alternate mappings for "page up" and "page down" to search the history "\e[5~": history-search-backward "\e[6~": history-search-forward 然后执行 exec bash 即可。
最近开我的世界服,发生了好几次内存占满服务器卡死、导致不得不重启服务器的事情,遂而想新建一个交换分区,以免内存占满服务器直接卡死。 # 新建交换分区文件 dd if=/dev/zero of=/var/swap bs=1M count=4096 # 格式化交换分区 mkswap /var/swap # 设置为交换分区 swapon /var/swap # 设置开机自动挂载交换分区 echo "/var/swap swap swap defaults 0 0" >> /etc/fstab # 查看交换分区是否生效 free -m # 关闭交换分区 swapoff -a
执行命令,添加配置内容, systemctl edit --force --full xxx.service [Unit] Description=xxx After=network.target [Service] Type=simple # WorkingDirectory=xxx ExecStart=xxx Restart=on-failure # User=root # Group=root [Install] WantedBy=multi-user.target 启动服务, # 启动服务 systemctl start supernode # 开启自启 systemctl enable supernode
wget -O - https://get.acme.sh | sh . .bashrc # 自动更新 acme.sh --upgrade --auto-upgrade # 测试是否能成功获取 acme.sh --issue --test -d joking.vksir.zone -w /var/www/html --keylength ec-256 # 正式获取 acme.sh --issue -d joking.vksir.zone -w /var/www/html --keylength ec-256 --force # 为 Xray 安装证书 acme.sh --install-cert -d joking.vksir.zone --ecc \ --fullchain-file /usr/local/etc/xray/xray.crt \ --key-file /usr/local/etc/xray/xray.key chmod +r /usr/local/etc/xray/xray.key
Manjaro 还是好啊(或者说,Arch linux 还是好)。 系统环境全部准备的好好的,想编译安装什么的,直接 make && make install 就行。换了 CentOS 7,那就是各种报错,缺这缺那,麻烦的很。 强大的包管理系统。又说 CentOS,想装个麻烦的很,参照 PHP,想装个软件还得去找 源,或者你想编译安装?行,一大堆报错等着你呢!而 Manjaro,直接 yay -S php,真的不要太简单。 就这……这不就够了吗?要不是服务器不好装 Manjaro,我都不想在服务器上用 CentOS 了,装个软件着实麻烦(强迫症……不想用 docker)。 还是在 PC 上用用吧。 环境:? 制作启动盘 使用官方推荐的刻录工具 Rufus 进行刻录。 据说是要使用 dd 模式进行刻录,但是目前的 Rufus v3.9 并没有 dd 模式,或许要使用低版本的 Rufus,或许不需要(距离上次安装有点久,有点忘了,下次安装系统再修改)。 安装 从 U 盘启动 如我的电脑——Acer Swift 5,其 bios 系统中存在 UEFI 安全模式,将其关掉。 安装 1. lang=zh_CN driver=nonfree 然后 Boot 即可。 配置 安装源 自动寻找最快源 sudo pacman-mirrors -i -c China -m rank 添加 archlinuxcn 清华源 ...
环境:CentOS 7,无界面 安装 Chrome # 直接从网络安装 rpm 包 yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm # 查看版本 google-chrome -version Google Chrome 83.0.4103.97 安装 chromedriver chromedriver 淘宝镜像网站 # 下载对应的版本 wget http://npm.taobao.org/mirrors/chromedriver/83.0.4103.39/chromedriver_linux64.zip # 解压并移动到默认应用目录 x chromedriver_linux64.zip mv ./chromedriver_linux64/chromedriver /usr/local/bin 安装虚拟桌面 因为是无界面系统,所以直接运行 selenium 是会报错的,需要先开启虚拟桌面。 pip install pyvirtualdisplay yum install xorg-x11-server-Xvfb 尝试运行,会出现警告: # python3 from pyvirtualdisplay import Display display = Display() xdpyinfo was not found, X start can not be checked! Please install xdpyinfo! 忽略警告也能正常运行,为了消除警告: yum install xdpyinfo 测试 # python3 from selenium import webdriver from pyvirtualdisplay import Display display = Display(visible=0, size=(1280, 720)) display.start() options = webdriver.ChromeOptions() # 允许 root 运行 options.add_argument('--no-sandbox') # 不加载图片 prefs = {"profile.managed_default_content_settings.images":2} options.add_experimental_option("prefs",prefs) driver = webdriver.Chrome(options=options) # 设置窗口大小(有的网站,小窗口会显示手机版网页) driver.set_window_size(1280, 720) driver.get('https://www.baidu.com') print(driver.page_source) # 关闭虚拟桌面和 selenium selenium.quit() display.stop() 封装成类 如上操作,每次都需要关闭一系列资源的,可以使用 Python 的 with 进行封装。 ...
常用命令 # 登录 ssh <USER>:<PASSWORD>@<IP> # 创建密钥 ssh-keygen # 上传公钥 ssh-copy-id <UESR>@<IP> # 端口映射 ssh -L <LOCAL_IP>:<LOCAL_PORT>:<REMOTE_IP>:<REMOTE_> <UESR>@<IP> 使用昵称登录 可以为服务器起一个「昵称」,然后用它来登录。 打开 ssh 配置文件。 vim ~/.ssh/config 输入以下内容。 Host mine Hostname IP Port 22 User root 以后登录就输入昵称就行了。 ssh mine 免断连 ssh 连上后几分钟不操作就会断开连接,这样的安全性确实好,但是却给我们造成了一定的困扰。 客户端 在客户端上,打开配置文件。 vim ~/.ssh/config 添加 ServerAliveInterval 60,just like this。 Host mine Hostname IP Port 22 User root ServerAliveInterval 60 客户端每隔 60 s 就会向服务端发送确认连接的消息,这样就可以避免断连了。 ...
环境:CentOS 7 scp 文件传输 # 上传到服务器 scp -r ~./hexo root@IP:/var/www # 从服务器上下载 scp -r root@IP:/var/www ~./hexo -r:传输目录,不加即「传输文件」 scp 文件传输采用 SSH 手段加密,安全有保障,但是相对应的,传输速度会稍微慢一点。 rsync 文件同步 rsync 文件同步同样会采用 SSH 手段加密,但是它会事先校验哪些文件相同,相同的则不进行传输。且 rsync 功能更加强大,参数更多,适合真正意义上的「同步」。 # 由本地同步到服务器 rsync -vau --progress ~./hexo root@IP:/var/www # 服务器同步到本地 rsync -vau --progress root@IP:/var/www ~./hexo -v,–verbose:详细模式输出 -q,–quiet:精简输出模式 -a,–archive:归档模式,表示以递归方式传输文件,并保持所有文件属性,等于 -rlptgoD -u,–update:仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件 -z, –compress:对备份的文件在传输时进行压缩处理(减少流量,其实用处不大) –progress:显示备份过程