金融量化学习---Python, MySQL, Pandas

这里用来记录一些在金融领域,尤其是银行相关的资金、债券、票据中应用到的数据管理与分析, 编程等心得或笔记,以及个人的一点小小兴趣(易经八卦、藏密禅修)等

导航

玩转WSL操作


Linux(Ubuntu)系统的文件结构
Linux系统的文件结构是层次化的,每个目录都有其特定的用途。例如:

        /bin 目录包含系统命令
        /boot 系统启动分区,系统启动时读取的文件
        /dev 设备文件
        /etc 存放配置文件
        /home 普通用户的家目录
        /lib 32位函数库
        /lib64 64位库
        /media 手动临时挂载点
        /mnt 手动临时挂载点,包括本地的硬盘和网络的其他盘
        /opt 第三方软件安装位置
        /proc 进程信息及硬件信息
        /root 临时设备的默认挂载点
        /sbin 系统管理命令
        /srv 数据
        /var 数据
        /sys 内核相关信息
        /tmp 临时文件
        /usr 用户相关设定

常用命令

文件/文件夹管理


ls 列出当前目录文件(不包括隐含文件)
ls -a 列出当前目录文件(包括隐含文件)
ls -l 列出当前目录下文件的详细信息
ls -lh 长格式且以人类可读的方式显示文件大小。

pwd:显示当前所在的工作目录的完整路径。

rm:删除文件或目录。rm file.txt 删除 file.txt 文件,rm -r directory 递归删除 directory 目录及其所有内容,rm -rf directory 强制递归删除(谨慎使用)。
cp:复制文件或目录。cp source_file target_file 复制单个文件,cp -r source_dir target_dir 递归复制目录。
mv:移动文件或目录,也可用于重命名。mv old_name new_name 重命名文件或目录,mv file /new/path 将文件移动到新路径。

cd:用于切换当前工作目录。例如 cd /home/user 进入 /home/user 目录,cd .. 返回上一级目录,cd ~ 回到用户主目录。
cd .. 回当前目录的上一级目录
cd ../directory name 前往同一级的另一个目录
cd ../.. 进入上上层目录,后面还可以加更多。
cd - 回上一次所在的目录
cd ~ 或 cd 回当前用户的宿主目录

mkdir:创建新目录。
mkdir new_folder 创建名为 new_folder 的目录
mkdir -p path/to/new_folder 可以递归创建多级目录。

rmdir 空目录名 删除一个空目录
rm 文件名 文件名 删除一个文件或多个文件
rm -rf 非空目录名 删除一个非空目录下的一切

打包/解压

tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包
tar –cvf benet.tar /home/benet     #把/home/benet目录打包
tar –zcvf benet.tar.gz /mnt     #把目录打包并压缩
tar –zxvf benet.tar.gz     #压缩包的文件解压恢复
tar –jxvf benet.tar.bz2     #解压缩 

mv 路经/文件 /经/文件移动相对路经下的文件到绝对路经下
mv 文件名 新名称 在当前目录下改名
find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录 
find 命令根据文件名和类型搜索文件。如果要根据文件内容进行搜索,可以使用 grep 命令。
grep:在文件内容中搜索。因此,您不需要查找所有以 .txt 结尾的文件,而是使用 grep 查找包含文本“foss”的所有文件。
grep -ri search_term

apt命令

apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装”-f = –fix-missing”
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
sudo apt-get clean 清理所有软件缓存(即缓存在/var/cache/apt/archives目录里的deb包) 

apt update:更新软件包列表,获取最新的软件包信息。
apt upgrade:升级系统中已安装的软件包到最新版本。
apt install package_name:安装指定名称的软件包。
apt remove package_name:移除指定的软件包,但会保留配置文件。
apt purge package_name:彻底移除指定的软件包,包括配置文件。

系统命令

lsblk:列出磁盘和分区
fdisk:列出和管理磁盘和分区
sudo fdisk -l

uname -a:显示系统的全面信息,包括内核名称、主机名、内核发行版本、内核版本、硬件架构等。
hostname:查看或设置当前系统的主机名。
uptime:显示系统已经运行的时间、当前登录用户数量以及系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。
df -h:以人类可读的格式显示磁盘分区的使用情况,包括文件系统、总容量、已用容量、可用容量和挂载点。
free -h:查看系统内存(包括物理内存和交换空间)的使用情况,以人类可读的格式展示。

whoami:显示当前登录用户的用户名。
id:显示用户的身份信息,包括用户 ID(UID)、组 ID(GID)和所属的用户组。
passwd:修改用户密码。直接输入 passwd 修改当前用户密码,sudo passwd username 可由管理员为指定用户修改密码。
chmod:更改文件或目录的权限。例如 chmod +x script.sh 为 script.sh 文件添加可执行权限。
chown:更改文件或目录的所有者和所属组。chown user:group file 将 file 的所有者改为 user,所属组改为 group。

df命令

df 命令用于查看已挂载磁盘的容量、使用容量、剩余容量,不加参数以KB单位
-h:用合适的单位显示,GB

du命令

它是检查硬盘使用情况,统计文件或目录及子目录使用硬盘的空间大小。参数的不同组合,可以更快的提高工作效率,以下仅列出了经常使用到的参数,如需更详细的信息,请用man du命令来获得。
命令格式:du [选项][文件]

显示每个文件和目录的磁盘使用空间。
命令参数

参数 	说明
-a 	显示所有目录或文件的大小
-b 	以byte为单位,显示目录或文件的大小
-c 	显示目录或文件的总和
-k 	以KB为单位输出
-m 	以MB为单位输出
-s 	仅显示目录或文件的总计数值
-h 	以K,M,G为单位,提高信息可读性
-x 	跳过不同的文件系统目录
-S 	显示目录的大小,但不含子目录大小
-D 	显示指定符号链接的源文件大小

PS:Linux中du、df显示不一致问题
这篇博文介绍的非常清晰https://www.linuxidc.com/Linux/2018-03/151600.htm
1、du统计的原理#
(1)如果统计目录下挂载了其他文件系统,那么也会对这个文件系统进行统计。
(2)如果文件被删除,即使被其他进程引用了,du命令也无法对其统计。因为stat命令找不到这个文件。
(3)可以跨分区统计某些你想统计的文件大小总和。因为它们都能被stat找到并统计。

2、df统计的原理#
(1)当某个文件系统下挂载了其他分区,df不会把这个分区也统计进去。
(2)由于df每次统计都是读取superblock,所以df对文件系统中的某个文件进行统计时,会自动转为统计这个文件系统的信息。
(3)df会统计已删除但却仍有进程引用的文件。

从以上原理可以看出,du统计的结果并不总是比df小,因为du会统计目录下的挂载文件,而df不会。然而du不会,统计已经被删除但仍然被进程使用的文件,而df会统计。

网络命令

ip:查看IP地址等信息,ip 命令可让您检查您的 IP 地址。您还可以查看和操作路由、网络设备等。
`用法:ip a`
![](https://img2024.cnblogs.com/blog/2124386/202503/2124386-20250316011829609-1616632419.png)

查看 IP 地址: ip addr show   或者:   ifconfig

如果 ifconfig 不可用,可以通过以下命令安装:sudo apt install net-tools

查看网关和路由:    ip route
查看 DNS 配置:    cat /etc/resolv.conf


ping:检查远程系统是否可达。Ping 是您应该了解的另一个 Linux 网络命令。要检查远程系统是否可用,请将其 IP 地址提供给 ping 命令:
`用法:ping ip_address`
可使用 Ctrl+C 停止正在运行的 ping 命令。

ssh:连接到远程系统
`用法:ssh user@ip_address_of_remote_system`

scp:在远程系统之间复制文件
scp 命令的工作方式几乎与您之前看到的 cp 命令类似。
下面的示例将文件从远程系统上用户的主目录复制到本地登录系统的当前目录。
`scp username@ip_address:/home/username/filename .`

rsync: 用于在本地和远程计算机之间同步文件和目录。示例:rsync -avz /path/to/source user@192.168.0.100:/path/to/destination,表示将本地的 /path/to/source 目录同步到远程计算机的 /path/to/destination 目录。
netstat: 用于显示网络连接和统计信息。
traceroute: 用于跟踪数据包从计算机到目标地址的路径。示例:traceroute www.example.com,表示跟踪访问 www.example.com 的路由路径。
httpd:Web服务控制。例:httpd -k start/stop/restart
ping:测试与目标主机的网络连通性。例如 ping www.example.com 向 www.example.com 发送 ICMP 数据包并接收响应。
ifconfig:查看和配置网络接口信息,但在较新的系统中更多使用 ip addr 命令。ip addr 可以显示网络接口的 IP 地址、子网掩码、MAC 地址等信息。
netstat:查看网络连接、路由表和网络接口统计信息。常用组合 netstat -tuln 显示所有监听的 TCP 和 UDP 端口。在新系统中也可以使用 ss 命令替代,如 ss -tuln。示例:netstat -an,表示显示所有网络连接的状态。

额外提示:man:详细了解命令
可以使用以下命令访问已安装命令的手册页:
man command_name

文本命令

cat:查看文件内容,将文件内容输出到终端。cat file.txt 显示 file.txt 文件的内容。
more 和 less:分页查看文件内容。more file.txt 逐页显示文件内容,less file.txt 功能更强大,支持向前和向后翻页等操作。
grep:在文件或文本中搜索匹配指定模式的行。例如 grep "keyword" file.txt 在 file.txt 文件中查找包含 keyword 的行。
vim 或 nano:文本编辑器。vim 功能强大但较复杂,nano 简单易用,适合初学者。如 vim file.txt 用 vim 打开 file.txt 文件进行编辑。

配置

配置docker镜像地址

sudo nano /etc/docker/daemon.json
用以下内容:

{
    "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com",
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.nju.edu.cn",
        "https://(yours).mirror.aliyuncs.com"
    ]
}

配置虚拟环境

建立并激活虚拟环境(以Grafana为例):

方法一,用conda建(方便管理)

conda create -n stre python=3.8.2
一般建完虚拟环境,要安装requirements.txt
image
但可能安装不成功,这时,我先用conda install pip(目前来看,不同的venv,可能都要运行一次)
再安装:pip install -r requirements.txt --upgrade
或试试:python3 -m pip install -r requirements.txt
但用root用户安装,可能会收到下面的提示:
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.

如果需要docker pull, 就用sudo docker pull docker.1ms.run/mayanghua/instock:latest
如果拉不下来,就加1毫秒的代理:sudo bash -c "$(curl -sSL https://n3.ink/helper)"
再运行:
sudo docker pull docker.1ms.run/tjbtech1/metachain:amd64_latest
下载完成后,要将其重命名(本质是添加一个新标签),例如改为 tjbtech1/metachain:amd64_latest,可以执行:
bash
sudo docker tag docker.1ms.run/tjbtech1/metachain:amd64_latest tjbtech1/metachain:amd64_latest

命令说明:
docker tag:用于给镜像添加新标签的命令。
验证重命名结果:执行以下命令查看镜像列表,确认新标签已添加:
bash
sudo docker images | grep metachain
如果需要,可以删除原标签(保留新标签即可):
bash
sudo docker rmi docker.1ms.run/tjbtech1/metachain:amd64_latest
这样操作后,Docker 会将新标签的镜像识别为 tjbtech1/metachain:amd64_latest,满足程序对镜像名称的要求。
可以修改YML文件:nano docker-compose.yml
修改好了就可以:sudo docker-compose up -d

建好了之后,可以运行某个程序,如果找不到,就用find
(stock) root@Desktop-CLF:~/miniconda3/envs/stock/instock# find . -name "basic_data_daily_job.py"
./instock/job/basic_data_daily_job.py

找到之后就可以用python3运行它:
(stock) root@Desktop-CLF:~/miniconda3/envs/stock/instock# python3 ./instock/job/basic_data_daily_job.py

方法二,用python建

root@myUbuntu:~# python3 -m venv Grafana
root@myUbuntu:~# bash
root@myUbuntu:~# source Grafana/bin/activate

#激活虚拟环境
source autoagent/bin/activate

#再手动安装pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

#设置国内代理
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

配置 host文件

sudo nano /etc/hosts

配置 mnt映射到本地硬盘或网盘

先安装工具:

sudo apt update && sudo apt -y install cifs-utils
sudo apt update && sudo apt install -y smbclient

#用smbclient查看目标机的共享情况(尤其是对于多盘的NAS,直接查主机的共享)
(stock) root@Desktop-CLF:/mnt# smbclient -L //192.168.123.105 -U john
Password for [WORKGROUP\john]:

        Sharename       Type      Comment
        ---------       ----      -------
        Public          Disk      Public
        John_Private    Disk
        Movie           Disk      Movie
        SmartWare       Disk
        TimeMachineBackup Disk
        myGuest         Disk
        IPC$            IPC       IPC Service (WD My Cloud of John)


image

在mnt目录下新建目录:sudo mkdir -p /mnt/nas_jupyter,然后建立映射

(stock) root@Desktop-CLF:/mnt# sudo mount -t cifs "//192.168.123.105/Public/myCode" /mnt/wd_mycode \
  -o username=john,password='pass',vers=3.0,uid=$UID,gid=$GID
(stock) root@Desktop-CLF:/mnt# sudo mount -t cifs "//192.168.123.104/MyCode3" /mnt/nas_mycode  -o username=john,password
=pass,vers=3.0,uid=$UID,gid=$GID

#如果有问题,就用这个命令查一下:
(stock) root@Desktop-CLF:/mnt# dmesg | grep -i cifs
[ 6888.619257] Key type cifs.spnego registered
[ 6888.619261] Key type cifs.idmap registered
[ 6888.620308] CIFS: VFS: vers=2.0 mount not permitted when legacy dialects disabled
[ 6920.977545] CIFS: VFS: vers=2.0 mount not permitted when legacy dialects disabled

挂载成功后,可以用rsync命令把它与远程同步:
(stock) root@Desktop-CLF:~/miniconda3/envs/stock/instock# rsync -av --delete ~/miniconda3/envs/stock/instock/ /mnt/wd_mycode/instock/

注意:WSL重启则挂载失效的解决
通过 sudo mount 命令手动挂载的网络共享在 WSL 关闭(或重启)后会失效,需要重新挂载。要实现每次进入 WSL 自动映射网盘,可以通过以下两种方法设置自动挂载:
方法 1:通过 /etc/fstab 配置自动挂载(推荐)
/etc/fstab 是 Linux 系统中用于定义文件系统挂载信息的配置文件,系统启动时会自动读取并挂载其中的设备 / 网络共享。
步骤:
在 WSL 终端中编辑 /etc/fstab 文件:
bash
sudo nano /etc/fstab

在文件末尾添加以下一行(根据你的实际信息修改):
bash
//192.168.123.105/Public/myCode /mnt/wd_mycode cifs username=john,password=pass,vers=3.0,uid=\(UID,gid=\)GID,defaults 0 0

注意:这里的 $UID 和 $GID 需要替换为实际数值(可通过 id 命令查看,例如 uid=1000(john), gid=1000(john))。
若密码包含特殊字符(如 !@#),建议先用 printf "%q" "你的密码" 转义后再填入。
保存文件(Ctrl+O 回车,Ctrl+X 退出)。
测试配置是否生效:
bash
sudo systemctl daemon-reload
sudo mount -a # 挂载 /etc/fstab 中所有未挂载的项

若没有报错,说明配置正确。下次 WSL 启动时会自动挂载该网络共享。
方法 2:通过 .bashrc 或 .zshrc 自动执行挂载命令
如果使用的是 bash 或 zsh 终端,可以在 shell 配置文件中添加挂载命令,每次打开终端时自动执行。
步骤:
编辑当前用户的 shell 配置文件(根据你使用的 shell 选择):
bash

若使用 bash

nano ~/.bashrc

若使用 zsh

nano ~/.zshrc

在文件末尾添加以下内容(自动检测是否已挂载,未挂载则执行挂载):
bash

自动挂载网络共享

if ! mountpoint -q /mnt/wd_mycode; then
sudo mount -t cifs "//192.168.123.105/Public/myCode" /mnt/wd_mycode
-o username=john,password='pass',vers=3.0,uid=\(UID,gid=\)GID
fi

mountpoint -q /mnt/wd_mycode 用于检查目录是否已挂载,避免重复挂载。
保存文件并使配置生效:
bash

对应 bash 或 zsh

source ~/.bashrc # 或 source ~/.zshrc

下次打开 WSL 终端时,会自动执行挂载命令(首次可能需要输入 sudo 密码)。
注意事项
确保 /mnt/wd_mycode 目录已存在,若不存在需先创建:
bash
sudo mkdir -p /mnt/wd_mycode

若网络共享需要频繁访问,推荐 方法 1(系统级自动挂载,更稳定);若仅需要在打开终端时挂载,可选择 方法 2。
密码明文存储的安全性:两种方法都会明文存储密码,若担心安全,可创建一个仅用于挂载的低权限账号,或使用 credentials file 存储密码(需额外配置)。
配置完成后,每次启动 WSL 或打开终端时,网络共享会自动挂载,无需手动执行命令。

WSL 一些常用的命令和方法

在 Ubuntu(或原生系统)中,你可以通过多种方式查看系统信息、网络配置、运行状态等:

1. 查看系统信息
  查看 Ubuntu 版本:    lsb_release -a    或者:    cat /etc/os-release
  查看内核版本:    uname -r
  查看 CPU 信息:    lscpu
  查看内存信息:    free -h
  查看磁盘使用情况:    df -h

2. 查看运行中的服务
    查看正在运行的进程:ps aux
    查看特定进程(如 Trilium Server):ps aux | grep trilium
    查看监听端口的服务:    sudo netstat -tuln    或者:     sudo ss -tuln

3. 查看系统日志
    查看系统日志:    sudo journalctl -xe
    查看特定服务的日志(如 Trilium Server):     sudo journalctl -u trilium

4. 查看用户和权限
    查看当前用户:   whoami
    查看登录用户:   who
    查看用户组:     groups
    查看文件权限:   ls -l /path/to/file

5. 查看环境变量
    查看所有环境变量:    printenv
    查看特定环境变量(如 PATH):     echo $PATH

6. 查看已安装的软件包
    查看已安装的软件包:     dpkg --list
    查看特定软件包是否安装(如 cpolar):    dpkg -l | grep cpolar

7. 查看系统资源使用情况
    实时查看系统资源使用情况:    top    按 q 退出。
    查看磁盘 I/O 使用情况:   iostat
    查看网络流量:    iftop    如果 iftop 不可用,可以通过以下命令安装:     sudo apt install iftop

8. 查看 WSL 特定信息
    查看 WSL 版本:    wsl --list --verbose
    在 Windows 的命令提示符或 PowerShell 中运行。
    查看 WSL 的 IP 地址: ip addr show eth0
    查看 WSL 和 Windows 的网络互通:
    在 Windows 中运行以下命令,测试是否可以访问 WSL 的 IP 地址:
    ping 172.26.26.12

10. 查看系统启动时间
    查看系统运行时间:   uptime
    查看系统启动时间:   who -b

ps aux 命令

用于查看系统中正在运行的进程的详细信息。以下是对该命令输出中各列含义的解释,以及针对你提供的输出内容进行的分析:

USER:表示启动该进程的用户。例如,root 表示该进程是由超级用户 root 启动的,john 表示是由用户 john 启动的。
PID:进程标识符(Process ID),是系统为每个运行的进程分配的唯一数字,用于标识进程。
%CPU:该进程占用 CPU 的百分比。在你的输出中,大部分进程的 %CPU 都较低,说明它们对 CPU 资源的占用较少。
%MEM:该进程占用物理内存的百分比。通过这一列可以了解进程对内存资源的消耗情况。
VSZ:虚拟内存大小(Virtual Size),以千字节(KB)为单位,表示该进程占用的虚拟内存总量。
RSS:常驻内存大小(Resident Set Size),以千字节(KB)为单位,表示该进程当前实际占用的物理内存大小。
TTY:表示该进程与哪个终端设备相关联。? 表示该进程不与任何终端设备直接关联,通常是系统后台进程。pts/0、pts/1 等表示伪终端(pseudo-terminal)。

STAT:进程的状态。常见的状态字符含义如下:
    S:睡眠状态(可中断的睡眠,等待某些事件发生)。
    s:表示该进程是会话的领导者(session leader)。
    l:表示该进程有一个控制终端(controlling terminal)。
    R:运行状态(正在使用 CPU 资源运行)。
    Z:僵死状态(Zombie,进程已经结束,但父进程还没有回收其资源)。
    <:高优先级进程。
    N:低优先级进程。
START:进程的启动时间。例如,Mar15 表示该进程在 3 月 15 日启动。
TIME:该进程自启动以来累计使用 CPU 的时间。
COMMAND:启动该进程的命令或可执行文件的名称及其参数。例如,/sbin/init 是系统的初始化进程,是所有其他进程的祖先进程;/usr/lib/systemd/systemd-journald 是 systemd 的日志守护进程,负责收集和存储系统日志。

针对你提供的输出内容,以下是一些具体进程的简要说明:

/sbin/init:系统初始化进程,是系统启动后运行的第一个进程,所有其他进程都是它的子进程。
/usr/lib/systemd/systemd-journald:systemd 日志服务,负责记录系统日志。
/usr/lib/systemd/systemd-udevd:systemd 的 udev 守护进程,用于管理设备文件和设备事件。
/usr/lib/systemd/systemd-resolved:systemd 的 DNS 解析服务,提供本地 DNS 缓存和解析功能。
/usr/lib/systemd/systemd-timesyncd:systemd 的时间同步服务,用于与时间服务器同步系统时间。
/usr/sbin/cron:系统的计划任务服务,用于定期执行用户或系统的计划任务。
@dbus-daemon:D-Bus 守护进程,是一种进程间通信(IPC)机制,用于在不同进程之间传递消息。
/usr/lib/systemd/systemd-logind:systemd 的登录管理服务,负责处理用户登录和会话管理。
/usr/libexec/wsl-pro-service:适用于 Windows Subsystem for Linux(WSL)的服务,可能与 WSL 的某些功能相关。
/usr/sbin/rsyslogd:系统日志守护进程,用于收集、存储和转发系统日志。
/usr/bin/containerd:容器运行时,用于管理容器生命周期,与 Docker 等容器化技术相关。
/usr/bin/dockerd:Docker 守护进程,是 Docker 平台的核心组件,负责管理 Docker 容器的运行。

这些进程共同协作,保证了系统的正常运行和各种服务的提供。

外部命令

是一些需要先安装,再使用的命令

tree

sudo apt update && sudo apt install tree
(stock) root@Desktop-CLF:~/miniconda3/envs/stock/instock# tree
.
├── LICENSE
├── README.md
├── cron
│   ├── cron.hourly
│   │   └── run_hourly
│   ├── cron.monthly
│   │   └── run_monthly
│   └── cron.workdayly
│   └── run_workdayly
├── docker
│   ├── Dockerfile
│   ├── build.sh
│   └── docker-compose.yml
├── img
│   ├── 00.jpg
│   ├── 01.jpg
│   ├── 03.jpg
│   ├── 04.jpg
│   ├── 05.jpg

rsync 文件夹同步命令

先安装:sudo apt update && sudo apt install -y rsync

rsync -av --ignore-existing --exclude='#recycle' /volume2/homes /volume4 #把/volume2/homes文件夹与/volume4目录同步,如有相同点则忽略,并排除'#recycle'这个文件夹
参数解释:

-a:归档模式,它是 -rlptgoD 的组合,能够递归同步目录、保留符号链接、文件权限、时间戳、属主、属组等信息。
-v:详细模式,会输出同步过程的详细信息,方便你了解同步的进度和情况。
-z:在传输过程中进行压缩,这样可以减少数据传输量,提高同步效率,尤其适用于网络传输。
/path/to/source/:要同步的源目录路径,注意结尾的斜杠 /,如果加上斜杠,表示同步源目录下的内容;如果不加斜杠,则会把源目录本身也同步过去。
/path/to/destination/:目标目录路径。

同步到远程服务器
如果你需要将本地目录同步到远程服务器上,可以使用如下命令:

rsync -avz /path/to/source/ user@remote_host:/path/to/destination/

参数解释:

user:远程服务器的用户名。
remote_host:远程服务器的主机名或者 IP 地址。
user@remote_host:/path/to/destination/:表示远程服务器上的目标目录路径。

在WSL下Ubuntu中安装Nvidia显卡驱动(如果想跑AI的话)

官方没卵用:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
https://www.nvidia.cn/geforce/drivers/
https://www.nvidia.com/en-us/drivers/unix/linux-amd64-display-archive/
实操verygood:https://blog.csdn.net/no1xium/article/details/131299917

输入以下命令进行 Nvidia 驱动的安装(要2G多的空间啊!)
sudo apt install nvidia-cuda-toolkit
输入命令后会自动列出需要安装的依赖包,我们只需要输入Y 回车,

安装完毕后用以下命令确认是否成功安装
nvcc -V
在WSL中我们同样用以下命令查看显卡信息:nvidia-smi

apt install nvidia-utils-570-server

WSL下使用docker pull的小技巧

我经常在wsl下运行docker pull命令,比如下载:louislam/dockge:latest,我要在原始地址是加上docker.1ms.run/,使命令变成:sudo docker pull docker.1ms.run/louislam/dockge:latest,待它完成之后,我又要修改这个docker.1ms.run/louislam/dockge:latest镜像的tag,用sudo docker tag docker.1ms.run/louislam/dockge:latest louislam/dockge:latest ,再用sudo docker rmi docker.1ms.runlouislam/dockge:latest,只保留一个images.由于经常重复这个操作,有没有什么办法可以简化命令?

方法来了:
可以创建一个 Bash 脚本函数来自动化这个流程,只需传入原始镜像名称即可完成整个操作。
创建方法:
打开你的 .bashrc 或 .zshrc 文件(根据你使用的 shell 选择)
添加以下函数
保存文件并运行 source ~/.bashrc(或对应的配置文件)使其生效
函数代码如下:

# 自定义 Docker 拉取函数,自动通过镜像加速地址拉取并处理标签
    docker_pull_acc() {
        if [ $# -ne 1 ]; then
            echo "用法: docker_pull_acc <原始镜像名:标签>"
            echo "示例: docker_pull_acc louislam/dockge:latest"
            return 1
        fi

        local original_image="$1"
        local acc_prefix="docker.1ms.run/"
        local acc_image="${acc_prefix}${original_image}"

        echo "1. 从加速地址拉取镜像: $acc_image"
        sudo docker pull "$acc_image" || {
            echo "拉取镜像失败"
            return 1
        }

        echo "2. 为镜像添加原始标签: $original_image"
        sudo docker tag "$acc_image" "$original_image" || {
            echo "添加标签失败"
            return 1
        }

        echo "3. 删除带有加速前缀的镜像: $acc_image"
        sudo docker rmi "$acc_image" || {
            echo "删除镜像失败"
            return 1
        }

        echo "操作完成,已成功获取镜像: $original_image"
    }
    

就问你香不香
image

总结

通过以上命令,你可以全面了解 Ubuntu 系统的状态、网络配置、运行中的服务、日志等信息。如果你有特定的需求(如查看某个服务的状态或日志),可以根据需要选择合适的命令。

posted on 2025-03-16 01:32  chengjon  阅读(41)  评论(0)    收藏  举报