Linux命令整理
- su 进入root模式
- sudo 基本用户命令模式
- &基本用户模式命令输入 #root命令模式和输入
- passwd 修改密码
- ls -l directory查看文件属性
- man 帮助,查看某一命令的使用方法
- rm 删除某一文件(注意linux所有文件删除不可恢复)
- rm -rf xxxx 删除文件夹
- mv A B 对A文件(夹重命名)、或者从A移动到B
- cp A B 将A文件的内容复制到B文件中, 若复制的是文件夹:cp -a A B
- chmod 修改某一文件(夹)的权限;三种权限:owner group other 代表 root权限 用户权限 和用户非终端权限;对于某一文件,有可读/可写/可运行三种权限,用二进制的形式来修改权限如5表示101,表示可读/可运行
- 将某一个文件修改为用户权限:chown -R guoxin ./guoxin
- whereis 查找某以命令所在的位置
- cd +路径 将当前目录置为路径 cd…返回上一级目录 cd-返回前一次的目录
- date 访问当前时间
- cat 现实文本文件的内容
- vi/vim 查看文件的内容,也可以编辑并保存。
- mkdir 创建一个文件夹
- touch创建一个文件
- file查看文件的类型
- tar 命令:https://www.cnblogs.com/jyaray/archive/2011/04/30/2033362.html
- windows压缩命令:tar -cvzf archive.tar “C:\Users\fatiw\Desktop\My Account Info”
- find +某一路径下 ±name + ”*as?df” //查找符合某一要求的文件,*代表任意数量的字符,?代表一个任意字符。与-exec 连用可以将两个命令连起来,比如 find /urs -name “*tim” -exec cp {} 5555 ; 表示找到所有符合要求的文件并且复制到5555文件夹中。±type d/f 查找文件(夹)类型的文件。
- wc -l 文件 //计数文件的行数
- “ >>” 重定向到某个文件当中
- lsof -i:port 或者(netstat -tunlp | grep port)查看端口使用情况
- 查看各个端口的使用情况: netstat -tunlp
- ps aux | grep python 查看uwsgi进程使用情况
- ps -p 2726126 -o pid,cmd 查看某一进程使用的运行命令(启动命令)
- Kill -9 进程id 强制杀死进程
- Ubuntu 卸载程序:sudo apt-get --purse remove xxxxxxx
- 后端运行python程序nohup python3 -u main.py > nohup.out 2>&1 &,将输出和异常信息保存在nohup.out中
- 显卡使用情况(N卡):nvidia-smi
- 实时查看显卡的情况: watch -n 0.5 nvidia-smi 其中 0.5 是每隔0.5秒查看一次
- GPU并行计算:python3 -m torch.distributed.launch --nproc_per_node=2 --master_port=$RANDOM main.py
- unzip 当前所有的zip文件,unzip ‘*.zip’ (注意带有单引号);unzip -O gb18030 解压,防止中午乱码
- ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20 前二十占用内存最高的进程。
- ps -u huangjianbao | grep gunicorn。显示huangjianbao用户下,gunicorn进程的情况
- ps -ef | grep defunct | more。查看僵尸进程id以及父进程id
- free -m 按M查看内存占用情况
- df -h 查看硬盘使用情况
- zip -r chashan_test_224_img_output.zip chashan_test_224_img_output 压缩命令, zip -r archivename.zip directory_name1 directory_name2 file1 file1
- df -h 查看空间使用情况
- nslookup www.baidu.com 解析网址的ip地址
- cat /dev/null > log_path 清空某一个文件的内容
- du -h 文件夹路径:查看文件夹大小
- windows编辑linux运行。
sed -i 's/\r//' xxx.sh
- 指定镜像源 sudo yum --enablerepo=‘base,updates,your_specific_mirror’ install package_name
- wifi:
安装nmcli: sudo apt-get install nmcli
扫描wif: sudo nmcli dev wifi
查看网络设备: sudo nmcli dev
连接wifi: sudo nmcli dev wifi connect "wifi名" password "密码"
设置wifi自动连接:nmcli connection modify wifi_name connection.autoconnect yes
断开某一网络:nmcli con down id "YourNetworkName"
- 查看显卡温度:nvidia-smi -q -i 0 -d TEMPERATURE
- sed -i ‘s/\r//’ xxx.sh
- useradd -g xxx -s /bin/bash -md /home/xxx xxx
- passwd xxx
- pkill -u user 杀死所有user用户的进程
其他
- neo4j启动: neo4j.bat console
Vim
- 翻页: 向下翻页ctrl + f ; ctrl + b 向下翻页
- 撤销上一步编辑: u
- 删除一行: d
- 保存退出 : wq;不保存退出: q! ;退出:q
- 跳转到某一行(比如第六行):6gg
- 搜索某一个字符串(比如搜索string): /string,如果你要继续查找此关键字,敲字符 n 就可以继续查找了,大写N则向前搜索,参考链接:https://bbs.huaweicloud.com/blogs/326218
- 显示每一行的行数::set number 或者 :set nu
- 注释:https://blog.youkuaiyun.com/xiajun07061225/article/details/8488210,开始注释::起始行号,结束行号s/^/注释符/g ,取消注释::起始行号,结束行号s/^注释符//g ,注意为了避免**//冲突,如果需要添加注释符号//的时候采用:起始行号,结束行号s#^#注释符#g**,取消注释类似。
- 跳到行末:$, 跳到行首:^
docker
- 使用官方安装脚本自动安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
或直接复制阿里docker安装包:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-27.3.0.tgz | tar xz
mv docker/* /usr/bin/ - 在当前目录下执行 docker build --no-cache -f ./Dockerfile_name -t 镜像名 . 命令建立镜像
- 使用docker images命令查看生成的镜像
- 运行某一个镜像,生成容器 docker run -t -i --name 容器名 --rm 镜像名 /bin/bash (添加–rm参数,则容器终止后会立刻删除)
- 使用docker ps -a 查看最近构建的容器
- 使用docker rm 容器ID 删除该容器
- 使用docker rmi -f 镜像的ID 删除该镜像(-f 强制删除)
- 将本地数据挂载在docker中,能实现数据同步,docker run -it --name 容器名 -v /宿主机绝对路径目录:/容器内目录 镜像名,例如:docker run -it --name test01 -v /home/students/hjb/5555:/workplace hjb_image;使用相应的GPU:docker run --gpus device=2 -it --name test01 -v /home/sager/hjb/5555:/workplace hjb_image
- 使用-p来做端口映射,-p 宿主机:容器 docker run --gpus device=0 -it --name base_env -v E:/WorkSpace/Python项目/模型实践/HeartbeatSignal:/workspace -p 8080:22 ufoym/deepo
- 退出镜像: exit (这种方法退出会杀死容器),Ctrl+P+Q (这种方法不会杀死容器,保留容器)
- docker cp 路径 容器:路径 复制文件到容器中,例如:docker cp OCR xx1:/workspace
- docker attach 容器名字或者容器ID 进入某个活着的容器
- docker start 容器名字或者容器ID如果这个容器被杀死了,可以通过这个命令让他复活
- docker commit 容器ID 镜像name 将容器生成为镜像
- docker login IP 登录某docker仓库
- docker logout IP 退出登录某docker仓库
- docker tag 本地镜像 IP/项目名:version 重命名,将镜像push前需要重命名
- docker push IP/项目名:version 上传该镜像到docker仓库
- docker save -o my_jenkins.tar jenkins:1.0 这里的jenkins:1.0是你刚打包的镜像, 保存镜像
- docker load --input my_jenkins.tar 导入镜像
- docker exec -d hjb_sku02 sh run.sh 后端挂起执行sh
- docker exec -i -t mynginx /bin/bash 进入容器中,进行操作
- ** docker run -itd --name ws_test -p 20759:20751 --restart=unless-stopped ws_test_2 ** 设置容器启动,不自动杀死
- 容器乱码:
export LANG="C.UTF-8"
export LANGUAGE="C.UTF-8"
export LC_ALL="C.UTF-8"
- ubuntu20 docker容器无法制定显卡:docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]]. 亲测有效
https://www.cnblogs.com/booturbo/p/16318627.html
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
PIP
- pipreqs --use-local --encoding=utf8 --force . 生成requirement.txt文件
- pip install -r requirements.txt 载入
- pip install opencv-python-headless linux opencv
- pip freeze| grep -v ‘^#’ | cut -d’ ’ -f1 | xargs pip uninstall -y 卸载所有的包
Git
- git config --global --unset http.proxy 和 git config --global --unset https.proxy 取消代理
- echo “# 555” >> README.md
- git init
- git add README.md
- git commit -m “first commit”
- git branch -M main
- git remote add origin https://github.com/Bill845514379/555.git
- git push -u origin main
- git fetch 将远程的仓库同步到本地
- git merge A 将A与当前分支合并
- git pull 等价于 git fetch + git merge
- git checkout master切换分支
- git rebase (另外一种合并的方式,与merge的区别在于,修改记录为线性的记录)
Conda
- 创建新环境 conda create -n flask_env python=3.7
- 激活环境 conda activate env
- 删除环境 conda remove -n 虚拟环境的名称 --all
- conda-env list 显示所有的虚拟环境
- pip 脚本的首行(称为 shebang 行)应该指向一个有效的 Python 解释器
sed -i '1s|^.*|#!/home/xxx/.conda/envs/tts/bin/python|' /home/xxx/.conda/envs/tts/bin/pip
Python
- 切换python版本 :https://blog.youkuaiyun.com/JIEJINQUANIL/article/details/107007329
- python3.8 linux安装: https://juejin.cn/s/linux%E4%B8%8B%E5%AE%89%E8%A3%85python3.8
- gunicorn + socketIO:gunicorn --worker-class geventwebsocket.gunicorn.workers.GeventWebSocketWorker app:app --bind “0.0.0.0:34298” -w 2
- python -m gunicorn --worker-class geventwebsocket.gunicorn.workers.GeventWebSocketWorker app:app -b 0.0.0.0:20740 -w 1 --certfile=‘./data/ssl/client.crt’ --keyfile=‘./data/ssl/client.key’