Linux 常用命令总结
本篇博客记录读研以来高频使用的 linux 系统下的命令合集
命令分类
- 程序运行
- 系统相关
- 文件处理
- 文件传输相关命令
- 文件显示相关命令
- 文件排列相关命令
- Anaconda 相关命令
- tmux 终端复用神器使用tips
程序运行
- 自动保存日志,替代write命令:
xxx | tee ./xxx.log
nvidia-smi | tee ./test.txt
python xx.py | tee ./xxxx
PS:上述命令本人现在使用的不是很多了,目前是使用 Logger类 直接将日志动态存储到指定文件中, Logger类 的代码如下:
class Logger(object):
def __init__(self, log_path="default.txt"):
import sys
self.terminal = sys.stdout
self.log = open(log_path, "w", buffering=128, encoding="utf-8")
def print(self, message):
message = str(message)
self.terminal.write(message + '\n')
self.log.write(message + '\n')
def flush(self):
self.terminal.flush()
self.log.flush()
def close(self):
self.log.close()
使用方法:
log = Logger(log_path])
实例化一个日志,参数log_file_path
为日志保存路径,log.print(message)
将message
写入log_path
路径下的文件中,log.flush()
刷新日志文件,更新到最新版本。
- 查看进程运行起止时间:
ps -o lstart -p PID #根据PID来查询
ps -o lstart,etime -p PID #根据PID来查询,打印出启动时间和已经运行的时间
ps -eO lstart | grep PROCESS #根据进程名字查询
- 查看程序中的变量所在设备:
print(变量名.device)
系统相关
uname -a
:查看服务器系统信息pwd
: 显示当前所在绝对路径su
: 切换到 root 账号df -h
: 查看系统存储空间free -g
: 查看存储使用情况lscpu
: 查看系统cpu数量gpustat --force-color -cp -i 1
:实时监测gpu状态
文件处理
注:/root下的 隐藏文件夹 .cache 文件要定期清理,以防空间不足
文件传输相关命令
使用 scp 命令将当前账号下的文件/文件夹复制到另一台服务器的目标路径下:
# local_file:当前账号下文件
# local_folder:当前账号下文件夹
# remote_username:对方服务器账号
# remote_ip:对方服务器ip地址
# remote_file:对方服务器的目标传输文件
# remote_folder:对方服务器的目标传输路径
# -P 参数指定端口号 port_id
scp local_file remote_username@remote_ip:remote_folder
scp -P port_id -r local_folder remote_username@remote_ip:remote_file #P一定要大写!!!
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file
Rsync
命令 增量传输,详见链接
文件显示相关命令
du -sh *
: 查看当前文件夹大小
du -sh .[!.]*
:命令查看 目录下全部隐藏文件夹的大小
rm -f *
:清空当前目录下所有文件
ls | wc -w
:当前路径下文件数目
ll
:详细显示文件信息
ls -a
:粗略显示文件(-a
包括隐藏文件)
文件排列相关命令
ll -hS
:按照文件大小进行降序排列
ll -hrS
:按照文件大小进行升序排列
du -b * | sort -n
:按照 B(字节)单位转换排序(升序排序)
du -b * | sort -nr
:按照 B(字节)单位转换排序(降序排序)
du -k * | sort -nr
:按照 KB 单位转换排序
du -m * | sort -nr
:按照 MB 单位转换排序
find ./ -type f -printf '%s %p\n' | sort -rn
:按照文件大小进行降序排列
find ./ -type f -printf '%s %p\n' | sort -n
:按照文件大小进行升序排列
Anaconda 相关命令
首先使用
bash
命令切换至bash
的shell
中,然后才可以执行相关命令
- 新建conda环境:
conda create -n your_env_name python==3.6.12
- 删除conda环境:
conda remove -n your_env_name --all
- 切换conda环境:
conda activate env_name
- 安装cuda11.6支持的torch和torchvision版本到指定虚拟环境
python3.7
:
pip install --target=/root/anaconda3/envs/python3.7/lib/python3.6/site-packages torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
- pip安装某个包到指定虚拟环境
python3.7
:
pip install --target=/root/anaconda3/envs/python3.7/lib/python3.6/site-packages opencv-python==4.2.0.34 -i https://pypi.doubanio.com/simple
tmux 终端复用神器使用tips
- tmux下复制粘贴
tmux内部之间复制:前缀键Ctrl b + [,然后鼠标选中目标文本即可;粘贴:前缀键Ctrl b + ]。
tmux复制到windows的剪切板:按住Shift
,鼠标选中文本,Ctrl + insert
为复制,Shift + insert
为粘贴。
tmux介绍及使用方式详见链接
PS:本篇文章首发于2023年妇女节,还是要祝各位女性同胞节日快乐哈~一起加油!
参考资料
- Rsync(远程同步): linux中Rsync命令的实际示例 - Oops!# - 博客园 (cnblogs.com)
- tmux使用教程 - 知乎 (zhihu.com)