远程服务器简略指南

  • 远程登录
  • 日期时间日历
  • 快捷键
  • 帮助文档
  • 文件权限
  • 看到156




  • pip使用镜像
  • TensorFlow
  • Python含中文无法运行
  • 压缩解压
  • 安装Jupyter notebook
  • Git
  • 后台启动脚本nohup
  • 前端报错net::ERR_CONNECTION_REFUSED
  • 下载上传文件
  • MobaXterm 快捷键
  • Windows 与 Linux 路径兼容
  • 杀进程
  • 查看日志
  • 查看磁盘空间
  • 查看磁盘配额
  • 查看文件数量和大小
  • 修改登陆目录
  • 包含字符串的文件
  • 删除、移动、复制
  • 基本信息
  • 常用软件
  • 安装环境
  • 虚拟环境
  • 命令行界面
  • 系统命令
  • 统计出现次数
  • 查看安装包的大小
  • 查看安装过的软件
  • 卸载软件
  • 下载软件
  • 清空屏幕和输入
  • 历史命令
  • 查看 IP
  • 用户及其权限
  • 查看架构
  • 查看CPU占用
  • 查看内存占用
  • 黑客帝国
  • swp已存在
  • 查看端口占用情况
  • 切换用户
  • pip指向pip3
  • 用户组
  • 修改密码
  • 查找文件
  • 查看文件MD5
  • 查看IP端口是否通
  • 查看配置
  • 遇到的坑
  • 参考文献


远程登录

Linux的远程登录使用SSH

  • Windows 连 SSH 用 MobaXterm,可直接拖文件传到服务器,保持远程连接:Settings→勾选SSH keepalive

远程服务器仓库如何设置 远程服务器使用教程_远程服务器仓库如何设置

  • Ubuntu 连 SSH 用 FinalShell

远程服务器仓库如何设置 远程服务器使用教程_Windows_02

建议:

  • 多端使用:Termius
  • Windows:MobaXterm
  • 服务器较多且经常传文件:XShell


日期时间日历

日期时间:date

日历:cal


快捷键

  • 补全 / 显示所有命令:Tab 或两次 Tab
  • 中断目前程序:Ctrl + C
  • 离开命令行:Ctrl + D
  • 前一个单词:Alt + B
  • 后一个单词:Alt + F
  • 删除一个单词:Ctrl + W
  • 删除光标前所有:Ctrl + U
  • 删除光标后所有:Ctrl + K
  • 删除光标前的单词:Ctrl + W
  • 光标移动到行开头:Ctrl + A(同 Home)
  • 光标移动到行结尾:Ctrl + E(同 End)
  • 反向增量搜索历史:Ctrl + R
  • 反向非增量搜索历史:Alt + P


帮助文档

命令的帮助文档:date --help

命令的使用说明:man date

第一行 DATE(1) 的 1 代表一般用户可使用的命令。5 代表配置文件。8 代表系统管理员可用的命令。

按下 / 可搜索字符串,n 为下一个,N 为上一个

命令的分页说明:info date


文件权限

列出所有文件及其权限:ls -al

-rwxrw-r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg

远程服务器仓库如何设置 远程服务器使用教程_远程服务器_03

第一个字符为文件类型

  • -:文件
  • d:目录
  • l:链接文件

权限字符每三个为一组,分别为拥有者权限(owner)、用户组权限(group)、其他人权限(others)

  • r:可读(read)
  • w:可写(write)
  • x:可执行(execute)


修改用户组:chgrp

修改拥有者:chown

修改文件权限:chmod

递归修改文件夹权限到最大

chmod -R 777 xxx

赋予用户某文件夹读写执行权限

chmod -R 0744 xxx  # 用户有读写执行权限,组和其他用户只有读权限

setfacl -R -m u:某用户:rwx 某路径


看到156







pip使用镜像

清华或豆瓣镜像

pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install xxx -i https://pypi.doubanio.com/simple/

装不上的话可以试试加参数 --user


TensorFlow

  1. 查看 CUDA 和 cuDNN
    cat /usr/local/cuda/version.txtcat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
  2. pip 安装 tensorflow-gpu
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.4 --user
  3. 测试代码
import tensorflow as tf

a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))  # 看使用的是CPU还是GPU
a: (Const): /job:localhost/replica:0/task:0/device:GPU:0
b: (Const): /job:localhost/replica:0/task:0/device:GPU:0
[[22. 28.]
 [49. 64.]]
  1. 查看 GPU 使用情况 nvidia-smi


Python含中文无法运行

程序首行加上

# -*- coding: utf-8 -*-


压缩解压

ZIP

压缩:zip -r mydata.zip mydata

解压:unzip -o -d ./ file.zip

压缩多个文件:zip test.zip a b c

压缩所有mp4文件:zip -r a.zip *.mp4

TAR

打包:tar -zcvf a.tar a.txt

解压:tar -xvf a.tar

查看文件名:tar -tvf a.tar

删除文件(先解压再打包):tar -zxvf file.tar.gz --exclude "file_to_exclude"


安装Jupyter notebook

安装火狐浏览器

yum install firefox

安装Jupyter notebook

pip install jupyter

pip install jupyter_contrib_nbextensions

jupyter contrib nbextension install --user

pip install yapf

进入 jupyter notebook 后发现Nbextensions

  • Code prettify:代码格式化
  • Collapsible Headings:折叠Headings区域
  • ScrollDown:输出过长时,自动下拉滚动条
  • Table of Contents (2):根据Markdown的标题栏自动生成目录
  • Codefolding:折叠代码块


Git

  1. 安装Git yum install git
  2. 查看版本 git --version

  3. 生成SSH密钥:ssh-keygen -t rsa -C 你的邮箱 →回车→打开id_rsa.pub→添加到GitLab的SSH Keys中
  4. 远程服务器仓库如何设置 远程服务器使用教程_用户组_04


  5. 远程服务器仓库如何设置 远程服务器使用教程_Windows_05

  6. 克隆项目 git clone xxx.git

PS:如果GitLab是内网自建的话,外网要操作的话要映射到外网


后台启动脚本nohup

后台启动:nohup 具体命令 &

输出默认保存到nohup.out:nohup python3 -u xxx.py &

保存输出:nohup python3 -u xxx.py > /tmp/test.log &

后台启动脚本命令nohup返回pid

显示当前终端任务:jobs

结束进程:kill 某pid

强制结束进程:kill -9 某pid

查看进程:ps -ef | grep python


前端报错net::ERR_CONNECTION_REFUSED

http://localhost:8080 改成 http://本机IP:8080


下载上传文件

远程服务器仓库如何设置 远程服务器使用教程_Windows_06

下载文件:sz xxx → 右键 → Receive file using Z-modem

上传文件:rz xxx → 右键 → Send file using Z-modem

下载文件夹可通过先压缩后下载的方式实现

sz 很慢,推荐用 scp 或 rsync

推荐阅读

  1. scp如何跨过中转主机直接传输文件?

还可以通过 Windows PowerShell 上传

cd 要上传的文件的目录
sftp 用户名@host
cd 要存放的目录
put 某文件

有可能设置了用户的磁盘限额很小,导致上传的文件特别小,这时候需要问运维有没有比较大的公共目录


MobaXterm 快捷键

Settings → Keyboard shortcuts

远程服务器仓库如何设置 远程服务器使用教程_Windows_07


打开右键功能:Settings → Terminal → 取消勾选【Paste using right-click】


Windows 与 Linux 路径兼容

Windows 与 Mac 和 Linux 的路径有区别:

  • Windows 的路径:./data/pictures/
  • Mac 和 Linux 的路径:/data/pictures/

Windows:./data/a.txt

Linux:/data/a.txt

判断系统

import platform

platform_system = platform.system()

if platform.system() == 'Windows':
    print('Windows')
elif platform.system() == 'Linux':
    print('Linux')
else:
    print('Others')

详细阅读:Python os.path.join() 拼接路径少了一部分的坑


杀进程

查询自己开的进程:ps u

强制杀进程:kill -9 pid


查看日志

动态查看:tail -f log

查看末尾一百行:tail -n 100 log

过滤错误并查看其前后5行:cat log | grep -A 5 -B 5 ERROR

显示行号:cat -n log

从后往前翻:less log

取第11到20行:head -n 20 log| tail -n 10

取第11到20行并显示行号:cat -n log | head -n 20| tail -n 10

less abc.log
# 常用命令
G :移动到最后一行
 
g :移动到第一行
 
b:向上翻一页
 
按空格:向下翻一页
 
u:向上翻半页
 
d:向下翻半页
 
q: 退出 less 命令


查看磁盘空间

df -h


查看磁盘配额

quota -uvs user1


查看文件数量和大小

查看文件数量

ls | wc -w  # 文件和文件夹数量
ls -l | grep "^-" | wc -l  # 当前文件夹下的文件数量
ls -lR| grep "^-" | wc -l  # 包括子目录的所有文件数

查看文件夹大小

du -sh  # 当前文件夹大小
du -sh models  # 指定文件夹大小

查看文件大小

ls -lh xxx


修改登陆目录

vi ~/.bashrc

添加 cd xxx


包含字符串的文件

含特殊字符,将反单引号 ` 替换为 \` ,其余用三引号包起来

find . | xargs grep -ri "123" -l

find . | xargs grep -ri """SELECT \`t1\`.\`id\`, \`t1\`.\`father_key\`, \`t1\`.\`key\`, \`t1\`.\`path\`, \`t1\`.\`cls\`, \`t1\`.\`root_category_id\`, \`t1\`.\`team_id\`, \`t1\`.\`order\`, \`t1\`.\`custom_key\`, \`t1\`.\`name\`, \`t1\`.\`desc\`, \`t1\`.\`create_at\`, \`t1\`.\`update_at\`, \`t1\`.\`delete_at\`, \`t1\`.\`file_md5\`, \`t1\`.\`zj_std_key\` FROM \`category_v3\` AS t1 WHERE (((\`t1\`.\`team_id\` = %s) AND (\`t1\`.\`path\` = %s)) AND ((\`t1\`.\`delete_at\` = %s) OR (\`t1\`.\`delete_at\` IS %s)))""" -l

find . -name "*.log" | xargs grep -ri "123" -l

find . -name "*.log" | xargs grep -ri """a""" -l

遇到的坑:

  1. grep: Invalid range end
    内容含-


删除、移动、复制

复制文件夹

cp -r /a /b

删除文件夹

rm -r a/b


基本信息

查看操作系统发行版本

$ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)

查看内核版本

$ uname -srm
Linux 3.10.0-693.el7.x86_64 x86_64


常用软件

安装vim

sudo apt-get install vim-gtk

美化vim

sudo vim /etc/vim/vimrc

最后一行输入 → Esc → 保存并退出:wq

set nu
set tabstop=4
set cursorline
set ruler
set autoindent
set nobackup

效果如图

远程服务器仓库如何设置 远程服务器使用教程_Windows_08


安装环境

sudo apt update
sudo apt install python3
sudo apt install python3-pip

设置清华源

sudo mkdir ~/.pip
sudo vim ~/.pip/pip.conf

输入

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com


虚拟环境

创建虚拟环境并切换

python3 -m venv ./venv
source ./venv/bin/activate

创建独立的Python环境

sudo apt-get install python-virtualenv
virtualenv -p /opt/xxx/python3.6.4 python3.6.4
source /python3.6.4/bin/activate

退出环境

deactivate


命令行界面

进入命令行界面:Ctrl+Alt+F3

返回图形界面:Ctrl+Alt+F1

不行的话试试 F1 - F6


系统命令

  1. history:查看历史命令
  2. !序号:执行历史命令,-1为倒数第一条
  3. 命令名 --help:查看命令帮助
  4. wget:下载文件
  5. pwd:当前路径,相当于 cd ~ 的路径
  6. cp a b:复制 a 到 b
  7. mv a b:复制 a 到 b


统计出现次数

grep -o 关键词 文件名 | wc -l


查看安装包的大小

sudo apt-get install xxx,安装的时候会确认,查看安装 xxx 后占用的空间大小,安装后再查比较麻烦


查看安装过的软件

dpkg -l | grep xxx


卸载软件

卸载软件及其配置

sudo apt-get --purge remove xxx

卸载软件及其依赖的安装包

sudo apt-get autoremove xxx


下载软件

sudo dpkg -r xxx


清空屏幕和输入

清空屏幕:Ctrl + L 或 clear

清空输入:Ctrl + U


历史命令

查看历史:history

搜索历史:Ctrl + R

重复执行第 N 条命令:!n

查看所有历史:sudo cat ~/.bash_history


查看 IP

ifconfig -a
ip address


用户及其权限

切换用户

su xxx

查看所有用户及其权限

cat /etc/passwd

是否有 sudo 权限

sudo -l
groups  # 查看是否在sudo组里
groups 用户名  # 查看是否在sudo组里


查看架构

dpkg --print-architecture


查看CPU占用

top

top -p pid

strace -p pid  # 跟踪系统调用和信号

netstat -p | grep pid  # 查看网络连接


查看内存占用

free -m
free -tm  # 内存总和、MB形式
free -tms 5  # 内存总和、MB形式、每5秒更新
free -g  # 内存总和、GB形式


黑客帝国

sudo apt install cmatrix
cmatrix


swp已存在

rm -rf .xxx.swp


查看端口占用情况

ss -nlp | grep 某端口

kill -9 $(lsof -i tcp:进程号 -t)


切换用户

su - root  # 切换到root身份


pip指向pip3

sudo ln -s /usr/bin/pip3 /usr/bin/pip
sudo ln -s /usr/bin/python3 /usr/bin/python


用户组

groups root  # 查看某用户在哪个组里
usermod -a -G groupA user  # 将用户添加到组里


修改密码

Warning: your password will expire in 4 days

chage --list user1  # 列出密码过期情况

chage -I -1 -m 0 -M 99999 -E -1 user1  # 改为永久不过期

或修改密码

passwd


查找文件

find . -name "*.c"

# 当前目录下查找
find . -name ""

# 系统目录下查找
find / -name ""


查看文件MD5

Windows

certutil -hashfile a.txt MD5

Linux

md5sum a.txt


查看IP端口是否通

telnet <IP地址> <端口号>


查看配置

CPU:

  • 型号:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
  • 核数、线程数:lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
  • 频率:cat /proc/cpuinfo |grep MHz|uniq

内存:

  • 大小:free -g
  • 频率:sudo dmidecode -t memory

显卡:

  • 英伟达型号:nvidia-smi
  • AMD型号:radeontop

硬盘:

  • 大小:df -h
  • 写入速度:dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct && sync; rm testfile


遇到的坑

1. 使用 grep 报错 grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

unset GREP_OPTIONS


参考文献

  1. SSH原理与运用(一):远程登录
  2. Python pip使用国内镜像安装第三方库:命令行或Pycharm
  3. 从GitLab clone项目到本地
  4. permission denied (publickey)的解决方法
  5. linux-root用户可以git clone,但普通用户就不能git clone
  6. Linux网络状态工具ss命令使用详解
  7. MobaXterm技巧
  8. Mobaxterm 安装lrzsz插件?
  9. MobaXterm Documentation
  10. Linux下载文件夹下所有文件
  11. MobaXterm设置复制、粘贴等快捷键
  12. Grep: show lines before and after the match in Linux
  13. Linux将一个文件夹或文件夹下的所有内容复制到另一个文件夹
  14. grep 过滤关键字不显示过滤命令本本身
  15. python工程师最常用的linux操作命令总结
  16. Rasa Installation
  17. Linux wget命令详解
  18. Linux环境下virtualenv安装和使用
  19. Pyppeteer从0开始学习记录
  20. ubuntu18安装python3, pip3并配置国内源
  21. Linux上传下载文件的几种方式
  22. Linux scp命令
  23. How to SCP from linux server to Windows client
  24. Linux 统计某个字符串出现的次数
  25. Linux用户及权限管理
  26. 15 個有趣好玩的linux shell 命令
  27. su、sudo、su - root的区别
  28. linux杀死占用某端口的所有进程
  29. How to set user password expirations on Linux
  30. Your password will expire in 15 days, how to disable it or set new expire date