更改下载源
更换之前首先创建一个备份文件。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改镜像源:
sudo vim /etc/apt/sources.list
# 直接替换掉原来的内容即可
# 中科大镜像源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# 阿里镜像源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# 保存退出,然后执行
sudo apt-get update # 更新安装源
# sudo apt upgrade # 更新所有下载的包
下载工具
aria2c
支持断点续传
aria2c -S "*.torrent" # 列出磁力链接中的内容
aria2c --select-file=[index] *.torrent # 下载指定 index 的文件
系统管理
sudo apt install tree # 文档目录树
tree -dL filename 2 # 显示 filename 文件夹目录树,且只显示前两级
du [$DIR] -h # 显示当前文件夹下的所有文件的大小,-h->human
du [$DIR] -h --max-depth=1 # 指定显示的深度
df -h # 显示系统磁盘占用情况
uname -a # 查看系统信息
sudo apt-cache-search sdl # 包搜索
watch -n seconds -d nvidia-smi ## 查看进程实时运行状况:每隔 seconds 刷新一次
ps -ef # 查看运行的进程
ps -aux # 效果和上面相同
killall -9 进程全名 # kill 掉该进程,这里必须给出进程的全名
ps -aux | grep smart_construction | awk '{print $2}' | xargs kill -9 # 查找指定名称的进程,然后配合 awk 提取出对应的列(进程 ID --- PID),然后配合 xargs kill 进程
wget url -P 指定路径(没有会递归创建) -O 重新执行文件名
参考链接1:磁盘空间管理 https://blog.csdn.net/baikeliang/article/details/52354833
链接管理
- 创建软链接
ln -s ./test/dirname ./softlink
注意:不要在文件夹末尾加上
/
,否者对应到源文件夹中,会默认创建一个文件dirname
(也是一个软链接),如果删除软链接的时候加上/
,会删除对应的所有文件!
- 删除软链接
rm softlink # 这里最好不要加上 -rf 参数,否则误删源文件就 gg 了!
# 这里 softlink/ 对应着原始文件,和源文件一个 inode
文档相关操作
# vim 命令模式下
[?/][^$] # 搜索
n1,n2 s/string1/instead/g # 加 g 表示指定范围内内全部替换
find ./configs -name vexpress # find在文件夹中寻找
ls ./configs | grep vexpress # grep在文件中寻找,结合使用管道命令更有用
find ./ -name "__pycache*" | xargs rm -r # 各种命令与管道结合使用,这里执行删除命令
rm -r !(test tmp) # 删除除 test, tmp 以外的所有文件
## 文件/文件夹 数量统计
# 统计当前目录/指定目录的文件数,"-" 表示文件,"d" 表示文件夹类型,与 ls 对应一致(文件类型)
ls -l[R] /path/to/dest_dir | grep "^-" | wc -l
# 统计目录下的文件夹个数(包括子目录)
ls -l[R] /path/to/dest_dir | grep "^d" | wc -l
### 移动大量文件
find . -name '*.txt' | xargs mv --target-directory=/path/to/dest_dir/
mkdir -vp ./mkdirtest/{dir1,dir2/{dir21,dir22},dir3/{dir31,dir32/{dir321,dir322}}} # 以可视化的方式创建目录树
tree ./mkdirtest # 显示目录树
参考链接:目录树创建 https://www.cnblogs.com/peida/archive/2012/10/25/2738271.html
文件打包与解压
tar -zcvf archive.tgz/archive.tar.gz $DIR/{dir1,dir2,dir3/dir4} # 注意逗号之间不能有空格
大文件传输
参考链接1:https://segmentfault.com/a/1190000019374113
参考链接2:阮神的博客 https://www.ruanyifeng.com/blog/2020/08/rsync.html
先打包成压缩文件,然后使用 rsync
进行传输。
# 传输文件
# -P,----partial 断点续传(保留那些因故没有完全传输的文件,以便加快随后的再次传输)
# -e 以ssh方式进行数据传输, ssh -p2222 指定连接2222端口
# --progress 显示传输进度
# --bwlimit 限速, 字节/秒
# -r,--recursive 对子目录以递归模式处理
# -c, --checksum 打开校验开关,强制对文件传输进行校验。
# --delete 删除那些DST中SRC没有的文件。
# -z, --compress 对备份的文件在传输时进行压缩处理。
# --exclude=PATTERN 指定排除不需要传输的文件模式。
# --include=PATTERN 指定不排除而需要传输的文件模式。
# -v, --verbose 详细模式输出。
# -q, --quiet 精简输出模式。
# -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
rsync -P [-e "ssh -p 2222"] --progress [--bwlimit=1024] -a username@IP:/data/transfer/archive.zip /data/archive.zip # 从远程下载到本地
rsync -P --progress -a /data/{VOT2021,VOT2019_LT,VOT2020_LT} REMOTE-2080Ti:/usb/dataset # 将文件上传到服务器
# -P 支持断点续传, 网络传输中网络断开是很可能发生的
# -e "ssh -p2222" 指定ssh传输方式, SRC的ssh端口非默认的22端口
# --progress 显示进度, 方便肉眼观察
# 由于传输的是zip压缩包, 因此未加上 -z 参数
权限相关
vim /etc/sudoers # 修改用户远程登陆权限
chown root:root dirname # 修改文件或者文件夹的所有者和所属组
# 修改文件权限
# r(read)=>4, w(write)=>2, x(execute)=>1
# 三个位置分别对应:所有者 owener,所属组 group,其他用户 others 的权限
chmod +wxr filename
chmod 777 filename
ubuntu
创建新的用户:useradd && adduser
useradd
不会自动创建/home/newuser
以及其他的很多东西,adduser
一次性将用户需要的全部创建。- 第一次创建成功后,直接使用
su - newuser
(加上-的区别!),/home/newuser
下不会有任何新的文件,只有当选择该用户身份登录后,才会创建这些东西。users
,显示当前登录的用户名称。