linux实际中的常用命令
- 文件
在这里插入代码片
# 增加/创建
touch file
# 删除
rm -f dgcnn_shapenet_SGD_{0..48}_32.npy
rm -f model_state_dict_e{0..50}.pth # 批量删除
rm -rf <文件夹>
# 修改/移动
mv
vim
rsync -avz changxianrui@172.22.39.xxx:/home/changxianrui/NB/ ./NB/ # 数据同步
rsync -avz --exclude='*.npy' --exclude='point_netG*' --exclude='point_netD*' changxianrui@172.22.39.xxx:/home/changxianrui/NB/ ./NB/
rsync -avz --exclude='*.ply' --exclude='*.npy' --exclude='point_netG*' --exclude='point_netD*' changxianrui@172.22.39.xxx:/home/changxianrui/NB/ ./NB/
scp -r changxianrui@172.22.39.xxx:/home/changxianrui/NB/ ./NB/
scp 3dcv2.2.5.1+cu124.tar special@219.216.64.xxx:/home/special/changxianrui/py_project/docker_image_backup
# 查询
getent passwd | tr ':' ' ' | column -t # 输出信息用分割符号替换按照空白符号垂直对其
du -sh <目录名称/文件夹名称> #查看文件夹总大小
history | tail -20
less run.log
tree -L 3
# 压缩
tar -czvf filename.tar.gz directory_or_file(s)
# 解压
unzip custom_pretrain.zip # 直接解压到当前文件夹
tar -xzvf filename.tar.gz
7z x nginx.7z # 解压文件7z
- 进程、系统资源信息:
# 中央处理单元
ps
top
htop
# 图形处理单元
nvidia-smi
nvtop
watch -n 1 nvidia-smi
# 系统信息
neofetch
uname -r # 显示操作系统的内核版本信息
# 硬盘
du -sh <目录名称/文件夹名称> #查看文件夹总大小
# 资源管理器
gnome-system-monitor
- 用户、组查看:
# 查看用户组
changxianrui@R9000K2021H:~$ groups # 查看当前用户的用户组
changxianrui adm cdrom sudo dip plugdev lpadmin sambashare docker
changxianrui@R9000K2021H:~$ id # 查看所在用户组
uid=1000(changxianrui) gid=1000(changxianrui) 组=1000(changxianrui),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),125(lpadmin),137(sambashare),999(docker)
changxianrui@R9000K2021H:~$ cat /etc/group # 所有组
root:x:0:
daemon:x:1:
...
# 查看用户
changxianrui@R9000K2021H:~$ whoami # 当前用户
changxianrui
changxianrui@R9000K2021H:~$ sudo usermod -aG docker $USER # 当前用户添加到docker用户组
# 设置用户密码
changxianrui@R9000K2021H:~$ passwd root # 给root账户设置密码
- 文件权限、用户权限:
# 修改文件权限
sudo chmod 555 fgsm_dgcnn.log # rw 权限
sudo chmod +x docker_shell.sh
# 加入用户组
sudo usermod -aG docker $USER
# -R 表示递归 修改所有者和文件夹权限
sudo chown -R changxianrui:changxianrui /home/changxianrui/py_project/other/AOF/baselines/attack/results/mn40_1024/FGM/
chmod -R 755 /home/changxianrui/py_project/other/AOF/baselines/attack/results/mn40_1024/FGM/
- 服务:
/etc/init.d/ssh restart # 重启SSH
systemctl list-unit-files --state=enabled # 查看自启动服务
ssh root@127.0.0.1 -p 8888
service ssh status # 查看ssh服务的状态
service ssh start # 启动ssh
systemctl list-unit-files --state=enabled
- 安装:
sudo apt update
sudo apt install net-tools # ifconfig
sudo apt-get install meshlab
sudo apt install htop # 如果没有安装的话
sudo apt install nvtop # 对于某些发行版可能需要从源码编译或通过其他方式安装
sudo apt install unrar # 解压rar https://www.quanxiaoha.com/linux-command/linux-unrar.html
sudo apt update
sudo apt install build-essential gdb
- python执行
# 临时加入环境变量
export PYTHONPATH=/home/special/changxianrui/py_project/NB # 当前shell会话有效
export PYTHONPATH=/home/special/py_project/NB # 2080
nohup python Train_PFNet_pro.py > output.log 2>&1 & # 后台运行
docker:
# 查看
docker ps
docker images
docker inspect <容器名/id>
# 设置启动
docker update --restart=always <CONTAINER ID> # 设置容器自启动
# 构建镜像->拉起容器->进入容器
docker build -f Dockerfile -t <镜像名>:<版本名> .
sudo docker run -dit --name=3dcv -v $HOME:$HOME -w $HOME --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 -p 8888:22 pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel
sudo docker run -it -rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 -v /mnt/e/PyCharmProjects/3DDefence:/workspace -p 8023:22 pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel
docker run -it --name=0126 -v $HOME:/workspace -w /workspace --gpus all -p 10086:22 mytorch:01.10v
sudo docker exec -it 79b4759f7ca0 /bin/bash
# 镜像保存与载入
docker commit mycontainer mynewimage:latest # 容器->镜像
docker save <image_name> -o <output_file.tar> # docker save my_image -o my_image.backup.tar
sudo docker load -i pointm2ne.tar # 载入镜像
# 加入docker用户组
sudo usermod -aG docker $USER
# 不常用 重命名
docker tag oldimagename:latest newimagename:v1.0
curl
和 wget
是两个常用的命令行工具,用于从网络上下载文件或与网络服务器进行交互。它们的功能有一些重叠,但也有各自的特点和适用场景。
1. curl
命令
curl
是一个强大的命令行工具,用于与服务器进行数据传输。它支持多种协议(如 HTTP、HTTPS、FTP、SFTP 等),并且可以用于发送请求、下载文件、上传文件等。
主要特点:
- 支持多种协议(HTTP、HTTPS、FTP、SFTP、SCP 等)。
- 可以发送各种类型的 HTTP 请求(GET、POST、PUT、DELETE 等)。
- 支持自定义请求头、表单数据、文件上传等。
- 输出结果可以直接显示在终端或保存到文件。
- 适合用于 API 测试、调试和自动化脚本。
常用命令示例:
-
下载文件:
curl -O http://example.com/file.zip
-O
:将文件保存到本地,并使用远程文件的名称。
-
保存文件到指定名称:
curl -o myfile.zip http://example.com/file.zip
-o
:指定本地保存的文件名。
-
发送 POST 请求:
curl -X POST -d "param1=value1¶m2=value2" http://example.com/api
-X
:指定请求方法(如 POST)。-d
:发送表单数据。
-
添加请求头:
curl -H "Authorization: Bearer token" http://example.com/api
-H
:添加自定义请求头。
-
显示响应头:
curl -I http://example.com
-I
:仅显示响应头信息。
-
跟随重定向:
curl -L http://example.com
-L
:自动跟随重定向。
2. wget
命令
wget
是一个专门用于从网络上下载文件的命令行工具。它支持递归下载、断点续传、批量下载等功能,适合用于下载整个网站或大量文件。
主要特点:
- 支持 HTTP、HTTPS 和 FTP 协议。
- 支持递归下载(下载整个网站)。
- 支持断点续传(如果下载中断,可以从中断处继续下载)。
- 适合批量下载和镜像网站。
常用命令示例:
-
下载文件:
wget http://example.com/file.zip
- 文件会保存到当前目录。
-
保存文件到指定名称:
wget -O myfile.zip http://example.com/file.zip
-O
:指定本地保存的文件名。
-
递归下载整个网站:
wget -r http://example.com
-r
:递归下载。
-
限制下载速度:
wget --limit-rate=100k http://example.com/file.zip
--limit-rate
:限制下载速度(如 100KB/s)。
-
断点续传:
wget -c http://example.com/file.zip
-c
:继续下载未完成的文件。
-
批量下载:
wget -i files.txt
-i
:从文件中读取 URL 列表并批量下载。
curl
和 wget
的主要区别
特性 | curl | wget |
---|---|---|
协议支持 | 支持更多协议(如 SFTP、SCP) | 支持 HTTP、HTTPS、FTP |
递归下载 | 不支持 | 支持 |
断点续传 | 支持 | 支持 |
请求类型 | 支持多种 HTTP 方法(GET、POST 等) | 仅支持 GET |
输出 | 默认输出到终端 | 默认保存到文件 |
适合场景 | API 测试、调试、自动化脚本 | 批量下载、镜像网站 |
总结
- 如果需要与服务器进行复杂的交互(如发送 POST 请求、测试 API),使用
curl
。 - 如果需要下载文件或批量下载整个网站,使用
wget
。