Termux

手机用linux:Termux

wiki:https://wiki.termux.com/wiki/Main_Page

软件包:https://github.com/termux/termux-app

这里我选的arm64-v8a下载安装的

安装curl

pkg install curl

https://blog.csdn.net/YiBYiH/article/details/127422099

换源(通常不需要换)

官方换源命令(通常不需要换)

termux-change-repo

https://blog.csdn.net/DANGDIWEI/article/details/136094157

源有问题时(通常执行这里,源就可用了)

termux使用pkg update 报错Error: None of the mirrors are accessiblee

先使用下面命令

apt full-upgrade -y

小工具Tmoe

pkg install -y curl ; bash -c "$(curl -L gitee.com/mo2/linux/raw/2/2)";

有了curl之后只用命令就可以了

bash -c "$(curl -L gitee.com/mo2/linux/raw/2/2)";

启动小工具之后,选择安装 跨架构容器

使用amd64的debian13版本

指令不方便记忆,做成.sh执行

1. 创建 .sh 文件

使用你喜欢的文本编辑器(如 nano、vim、gedit 等)创建一个新的 .sh 文件。例如,使用 nano:

nano tmoe.sh

2. 将命令写入文件

将你的命令粘贴到文件中,并保存。确保命令是脚本的唯一内容,或者你可以添加一些注释来说明脚本的用途。

#!/bin/bash  
bash -c "$(curl -L gitee.com/mo2/linux/raw/2/2)"

3. 保存并退出编辑器

在 nano 中,你可以按 Ctrl+X,然后按 Y 确认保存,最后按 Enter 确认文件名。

4. 赋予可执行权限

为了使脚本可执行,你需要使用 chmod 命令赋予其执行权限:

chmod +x tmoe.sh

5. 运行脚本

现在你可以通过以下方式运行脚本:

./tmoe.sh

完整脚本文件示例

以下是一个完整的 tmoe.sh 文件示例:

#!/bin/bash  
# This script runs a command fetched from a remote URL  
bash -c "$(curl -L gitee.com/mo2/linux/raw/2/2)"

注意事项

安全性:运行从远程获取的脚本代码时,请务必确认来源的可靠性。执行未知或不受信任的脚本可能会带来安全风险。

网络连接:确保你的系统可以访问 gitee.com,并且网络状况良好。

URL 持久性:请确认 gitee.com/mo2/linux/raw/2/2 这个 URL 是持久有效的,否则脚本将无法正确执行。

希望这能帮助你将命令转化为 .sh 脚本文件!

安装docker

参考:https://blog.csdn.net/m0_57021623/article/details/138590870

1. 更新现有的包列表

首先,确保你的包管理器的列表是最新的:

sudo apt update

2. 安装必要的软件包

在安装Docker之前,需要确保系统已安装以下必需的软件包,这些包帮助apt通过HTTPS使用仓库:

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release

3. 添加Docker的官方GPG密钥

为了验证下载的Docker包的真实性,需要添加Docker的官方GPG密钥:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

这一步会下载Docker的公钥,并使用gpg --dearmor命令将其转换为适用于apt的格式,存储在/usr/share/keyrings目录下。

4. 设置Docker稳定版仓库

你需要将Docker的仓库地址添加到系统的apt源列表中。首先,创建一个新的文件docker.list/etc/apt/sources.list.d/目录下:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

这个命令做了以下几件事:

  • 使用echo命令构造源配置字符串。

  • $(dpkg --print-architecture)获取系统架构。

  • $(lsb_release -cs)获取当前Debian发行版的代号。

  • tee命令将这些信息写入/etc/apt/sources.list.d/docker.list文件中,以便apt可以读取这个新的源。

上面的命令在容器里不太行,需要换成

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

因为他返回的trixie不属于发行版本中的任何一种

root@localhost:~# lsb_release -cs
trixie

发行版本有以下几种 https://download.docker.com/linux/debian/dists/,因为是debian13,所以原指令$(lsb_release -cs)替换为bookworm就行

bookworm
bullseye
buster
jessie
stretch
wheezy
  1. bookworm

    • 这是Debian的一个较新版本代号。每个Debian版本都会有一个独特的代号,这些代号通常与动物或昆虫有关,并遵循一定的字母顺序。

    • bookworm版本引入了新的特性和改进,以及一系列的安全更新和修复。

  2. bullseye

    • bullseye是Debian的一个稳定版本代号,发布于2021年。

    • 该版本提供了大量的软件包和更新,以满足用户对稳定性和安全性的需求。

  3. buster

    • buster是Debian的一个早期版本代号,发布于2019年。

    • 虽然它不再是最新的稳定版本,但仍然受到Debian社区的支持和维护。

  4. jessie

    • jessie是Debian 8的代号,发布于2015年。

    • 这个版本在发布时引入了许多新的特性和改进,并在随后的几年中得到了广泛的支持和更新。

  5. stretch

    • stretch是Debian 9的代号,发布于2017年。

    • 它提供了比jessie更多的软件包和更新,并改进了系统的稳定性和性能。

  6. wheezy

    • wheezy是Debian 7的代号,发布于2013年。

    • 虽然这个版本已经相对较旧,但它仍然是许多用户的可靠选择,特别是那些需要稳定性和兼容性的用户。

5. 再次更新软件包列表

添加了新的源之后,再次更新包列表以确保apt知道新添加的源:

sudo apt update

6. 安装Docker Engine

现在,你可以安装最新版本的Docker Engine及其依赖:

sudo apt install docker-ce docker-ce-cli containerd.io

7. 验证Docker安装

安装完成后,检查Docker是否正确安装并运行:

sudo systemctl status docker

你还可以运行一个测试容器来验证Docker的安装:

sudo docker run hello-world

8. 换源、修改配置

内容参考:烧饼博客

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):

cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true,
    "registry-mirrors": [
      "https://docker.m.daocloud.io",
      "https://dockerhub.icu",
      "https://docker.anyhub.us.kg",
      "https://docker.1panel.live"
    ]
}
EOF

这里的源有可能失效,需要自行找到可用源替换

然后重启 Docker 服务:

systemctl restart docker

9. (可选)允许非root用户执行Docker命令

如果你希望非root用户也能运行Docker命令,可以将用户添加到docker组:

sudo usermod -aG docker $USER

注销并重新登录,或者重启计算机以应用这些更改。

安装docker-compose

集成版本 Compose v2

一般来说使用命令sudo apt-get install docker-ce docker-ce-cli containerd.io 安装的都带docker-compose,不过是Docker CLI的一部分,通常来讲用的是旧版的,需要单独安装的

解释

你看到的两个命令是 Docker Compose 的不同用法:

  1. docker-compose --version 是旧版 Docker Compose 的命令,它是一个独立的二进制文件。

  2. docker compose version 是 Docker 的新集成版本 Compose v2,它作为 Docker CLI 的一部分提供。

如果你能使用 docker compose version,说明你已经安装了 Docker Compose v2,而不需要单独安装旧版的 docker-compose。这种新版本通常更推荐使用,因为它集成在 Docker CLI 中,更加方便。

如果你希望使用旧版 docker-compose,你可以按之前提到的步骤单独安装它,但通常推荐使用集成的版本。

docker compose version  #查看 docker-compose 版本,Docker CLI提供的不需要横杠-

经典版本

经典的 docker-compose github仓库

https://github.com/docker/compose/

安装命令

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version  #查看 docker-compose 版本

docker命令转换docker-compose命令

项目仓库:https://github.com/magicmark/composerize

搭建教程:https://blog.laoda.de/archives/composerize-docker-cli

在线使用:https://www.composerize.com/

部分教程内容

前言

我们在搭建docker项目的时候,通常会有两种形式,

一种是类似这样的命令行模式的(比如zfile):

docker run -d --name=zfile --restart=always \
    -p 8080:8080 \
    -v /root/data/docker_data/zfile/conf:/root/.zfile \
    -v /root/data/docker_data/root/zfile/db:/root/.zfile-new/db \
    -v /root/data/docker_data/root/zfile/data:/root/zfile/data \
    stilleshan/zfile

还有一种是docker-compose的形式的(比如qBittorrent):

version: "2"
services:
  qbittorrent:
    image: linuxserver/qbittorrent
    container_name: qbittorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai # 你的时区
      - UMASK_SET=022
      - WEBUI_PORT=8081 # 将此处修改成你欲使用的 WEB 管理平台端口 
    volumes:
      - /root/data/docker_data/qBittorrent/config:/config # 绝对路径请修改为自己的config文件夹
      - /root/data/docker_data/qBittorrent/downloads:/downloads # 绝对路径请修改为自己的downloads文件夹
    ports:
      # 要使用的映射下载端口与内部下载端口,可保持默认,安装完成后在管理页面仍然可以改成其他端口。
      - 6881:6881 
      - 6881:6881/udp
      # 此处WEB UI 目标端口与内部端口务必保证相同,见问题1
      - 8081:8081
    restart: unless-stopped

很明显,相比前一种方式,后一种docker-compose的方法更简单一些,所有配置文件都在docker-compose.yml里头,我们只需要在这个文件夹下,运行docker-compose up -d就可以了,搬家换服务器的时候,也把这份配置文件带上,可以很轻松地完成服务器迁移工作。

那么,有没有办法,把前面的那种类似命令行的模式,改成docker-compose的模式呢?其实,仔细观察,就会发现,他们是一个东西,我们没有深入研究docker compose,也能猜到,docker-compose的文件,其实就是把命令行的那串东西,通过一定的规则,转换而来的。

你对照着,其实也能大概写出一个雏形。

而今天,我们要分享的,就是利用工具,快速完成这个转换的动作!

搭建过程

担心项目链接失效的可自行搭建

视频教程:

YouTube:https://youtu.be/hH-ezOV4lY0

哔哩哔哩【高清版本可以点击去吐槽到B站观看】:https://www.bilibili.com/BV1aU4y1176c

其实很简单。首先我们要安装一个NPM(注意,这里的NPM是真的NPM,不是指Nginx Proxy Manager)

npmNode.js默认的、用JavaScript编写的软件包管理系统。 维基百科

然后用NPM来安装。

apt update -y 
sudo apt install npm -y 
npm install composerize -g  # -g 表示全局安装

使用方法:

composerize docker run -d --name tinypin -p 3030:3000 -v "$(pwd)/data:/data" --restart=unless-stopped slynn1324/tinypin

注意事项

遇到部分复杂的命令,可能会转换不成功,例如:

docker run -d --name=Whiteboard -p 8080:8080  --memory=2g --cpus=1 --restart=always --net=vlan100 --ip=192.168.100.17 rofl256/whiteboard 

转换结果如下:

version: '3.3'
services:
    whiteboard:
        container_name: Whiteboard
        ports:
            - '8080:8080'
        restart: always
        network_mode: vlan100
        image: rofl256/whiteboard

可以发现,丢失了很多东西 = =

项目还在维护中,希望能越来越好。

shell学习

https://linuxjourney.com/

下载的版本说明

介绍

版本号后面的信息,是Android设备的ARM处理器类型及版本,目前通常分为以下几种:

1、arm64-v8a:第8代、64位ARM处理器。目前,国内Android应用生态正在向64位架构过渡。同时,移动芯片平台也将逐步弱化对32位应用的支持。

2、armeabiv-v7a:第7代及以上的 ARM 处理器,是目前主流版本,大部分Android设备都使用它。

3、armeabi:第5代、第6代的ARM处理器,早期的手机用的比较多,缺乏对浮点数计算的硬件支持,在须要大量计算时有性能瓶颈。

4、x86 / x86_64:x86 架构的手机都会包含由 Intel 提供的称为 Houdini 的指令集动态转码工具,实现对arm .so 的兼容。考虑 x86不到1% 的市场占有率,x86 相关的两个 .so 也是可以忽略的。

5、mips/mips64:极少用于手机可忽略。

选择

应该下载哪个版本的安卓安装包,arm64-v8a、armeabi-v7a、x86、x86_64?

普通手机用户,建议下载 arm64-v8a (第8代、64位ARM处理器)版本,能够发挥手机最佳性能,小编也是一直这么选择的。

怎么查看自己的手机是64位还是32位呢?只要本型号手机支持8G运行内存以上,有8G内存版本在出售,就都是64位处理器。

如果是很老的手机,也有可能不是64位处理器,那么就选择armeabi-v7a,几乎通用所有手机,而且也兼容64位处理器。

通用版本,有的不标明处理器架构,有的应用会写上“-universal”。下载这个版本肯定没错,所有安卓手机都兼容。但是,APK安装包文件大小是其他版本的几倍。无论从手机上网流量还是存储空间考虑,都没必要选择,忽略该版本。

最后面两个版本几乎没有手机在用了,也忽略掉。

只剩下arm64-v8a和armeabi-v7a了,这两个版本都可以正常运行,但是arm64-v8a可以覆盖armeabi-v7a安装,而后者不能覆盖前者,会提示“不能降级安装”,需要卸载arm64-v8a才能安装armeabi-v7a。

下面是一些补充

Android 设备的CPU类型

armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.

arm64-v8a: 第8代、64位ARM处理器,当前主力设备都支持稳定性更好,三星 Galaxy、vivo、oppo等高端机型都支持,主要看cpu。

armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。

x86: 平板、模拟器用得比较多。

x86_64: 64位的平板

armeabi设备只兼容armeabi,不支持硬件辅助浮点运算,支持所有的 ARM* 设备;

armeabi-v7a设备兼容armeabi-v7a、armeabi;

arm64-v8a设备兼容arm64-v8a、armeabi-v7a、armeabi;

x86设备兼容x86、armeabi;

x86_64设备兼容x86_64、x86、armeabi;

mips64设备兼容mips64、mips;

mips只兼容mips;

参考

群友聊天

安卓软件APK安装包arm64-v8a、armeabi-v7a、x86、x86_64有何区别_安卓手机_手机学院_脚本之家

Termux——安装配置_termux安装-CSDN博客

【建议收藏】Debian系统上安装Docker全流程_debian安装docker-CSDN博客

【2024最新】国内的服务器安装并配置Docker(以树莓派4B为例子)-我不是咕咕鸽

序章 - 天萌参考手册

【Docker小知识】告别长命令,Composerize你的Docker部署命令!Docker-compose YYDS!-我不是咕咕鸽