Linux 常用命令

370次阅读
没有评论

ubuntu 系统换华为源

不要用各种大学的镜像,如果同 ip 的人乱搞,之后访问就会 403。并且他们有可能不同步大文件,有些大包会 404。
需要注意的是,自 Ubuntu 24.04 起,ubuntu 使用 DEB822 配置源,和以前不一样了。
如有必要,使用 https 下载,但某些防火墙,或者本地 ca 证书太旧,会造成 https 握手失败。

# ubuntu24.04
sed -i 's@//.*archive.ubuntu.com@//mirrors.huaweicloud.com@g' /etc/apt/sources.list.d/ubuntu.sources
sed -i 's/security.ubuntu.com/mirrors.huaweicloud.com/g' /etc/apt/sources.list.d/ubuntu.sources
sed -i 's/http:/https:/g' /etc/apt/sources.list.d/ubuntu.sources

# 之前的版本
sed -i 's@//.*archive.ubuntu.com@//mirrors.huaweicloud.com@g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/mirrors.huaweicloud.com/g' /etc/apt/sources.list
sed -i 's/http:/https:/g' /etc/apt/sources.list

生成 ssh 秘钥

rsa 比较通用,现在推荐 4096 位的才能保证安全,未来可能会被量子计算机爆破。
ed25519 更快更安全,抗量子计算机攻击。

ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

linux 使用秘钥登录

把公钥写入下列文件即可

 vi  ~/.ssh/authorized_keys

安装 docker

对于 ubuntu,可安装 ubuntu 官方维护的 docker,可以手动带上 compose,buildx 等插件。
一般只用这个就行了,无需折腾手动安装。

apt install docker.io docker-compose-v2 docker-buildx

对于所有支持的 linux 发行版,可以用官方安装脚本,并且从华为的镜像安装。
但是脚本本身还是要访问外网。
实在要用就自己手动装。
https://mirrors.huaweicloud.com/mirrorDetail/5ea14d84b58d16ef329c5c13

export DOWNLOAD_URL="https://mirrors.huaweicloud.com/docker-ce"
# 如您使用 curl
curl -fsSL https://get.docker.com/ | sh
# 如您使用 wget
wget -O- https://get.docker.com/ | sh

偶然找到了一个安装脚本,不知道能否信任他们,生产环境别用
https://linuxmirrors.cn/other/

bash <(curl -f -s --connect-timeout 10 --retry 3 https://linuxmirrors.cn/docker.sh) --source mirrors.tencent.com/docker-ce --source-registry docker.1ms.run --protocol https --install-latested true --close-firewall false --ignore-backup-tips

docker 免 sudo

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

docker 镜像加速器

好用的只有 docker.1ms.run, 不过还是建议直接口口口口。

已团灭,直接口口口口
可能是因为 docker 镜像数据量太大,并且 docker 官方还会对 ip 限速,很多加速器都在服务一段时间后停服,或者停止同步,这里找到了一个项目在收集可用加速器。
https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6
个人感觉 nju 的能用,但对于冷门资源速度远不如直接口口口口

echo '{"registry-mirrors":["https://docker.1ms.run"]}' | sudo tee /etc/docker/daemon.json > /dev/null
systemctl daemon-reload
systemctl restart docker

kasm 网页 linux 桌面

# 强制以 root 运行,这样可以自己用 apt 什么的装软件。# 关闭密码验证
docker run -it --user root -p 6901:6901 --rm -e VNCOPTIONS=-disableBasicAuth kasmweb/core-ubuntu-jammy:1.17.0
# 设置密码
docker run -it --user root -p 6901:6901 --rm -e VNC_PW=password kasmweb/core-ubuntu-jammy:1.17.0

https://localhost:6901/

User : kasm_user
Password: password
可用的镜像 https://kasmweb.com/docs/latest/guide/custom_images.html

github action self-host runner

 允许以 root 配置
RUNNER_ALLOW_RUNASROOT=1 ./config.sh --token xxxxxxx
以 root 用户注册服务
sudo ./svc.sh install root

文件搜索

2>/dev/null 这是错误输出的重定向, 用于屏蔽错误信息

 find / -name xxxx 2>/dev/null

添加 swap

dd if=/dev/zero of=/swapfile bs=1G count=4  # 4G
mkswap /swapfile
chmod 0600 /swapfile
swapon /swapfile
# 修改自动挂载
vi /etc/fstab
/swapfile swap swap default 0 0

修改 swap 大小

假设已经按上边添加了 swap,想换成更大的。

sudo swapoff /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1G count=8  # 8G
sudo chmod 0600 /swapfile
sudo mkswap /swapfile
swapon /swapfile

# fstab 无需修改 

swap 策略

vm.swappiness 是 Linux 内核中的一个参数,用于控制系统将内存页交换到交换空间(swap)的倾向。它的取值范围是 0 到 100,0 是不用 swap,100 是最积极使用。

# 获取当前的值,一般默认 60
sysctl vm.swappiness
# 临时修改
sysctl vm.swappiness=60
# 永久修改需要改配置文件
vi /etc/sysctl.conf
vm.swappiness=60
# 重启后生效,或者用这个立即生效
sudo sysctl -p

修改时区

timedatectl set-timezone Asia/Shanghai

git 克隆

祖传代码,仓库只克隆表层, 克隆子模块, 子模块只克隆表层

git clone --recurse-submodules --shallow-submodules --depth=1 <repository-url>

创建 tar.gz 时候不记录修改时间

大量小文件压缩时显著减小体积

tar --mtime="1970-01-01" -czvf files.tar.gz  files

python 切换国内源

遇到过清华源对 ip 限速,下载超大 whl 时报 403,这里用阿里源

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

anaconda 基本命令

conda create --name myenv python=3.8
conda activate myenv
conda deactivate
conda env list
conda remove --name myenv --all
 0