1. Linux常用命令
1.1 查看当前目录文件详细信息
- ls -lh :以合适的单位显示文件大小
- ls -al :显示隐藏文件信息
- **区分文件和目录: ls -F, 是大F,不是小f **
- **递归列出子目录的文件: ls -R, 大R **
- *使用通配符: ls -l my_scr?pt; ls -l my_scr **
1.2 查看内存使用信息
- free -g : 以G为单位显示内存使用情况;也可以只使用free命令,以KB为单位
- free -h:人性化显示
1.3 查看NVIDIA显卡信息
- **查看NVIDIA显卡信息:nvidia-smi **
1.4 查看硬盘使用信息
- df -lh:以合适单位显示硬盘信息
1.5 压缩与压缩命令
- **zip target_filename source_filename: 压缩文件 **
- zip -r target_filename source_directory_name:压缩目录
- unzip -o -d source_directory_name compress_filename: 解压缩文件到指定文件夹;-o表示不提示的情况下覆盖文件
1.6 查看空间大小
- df -hl 查看磁盘剩余空间
- df -h 查看每个根路径的分区大小
- du -sh <目录名> 返回该目录的大小
- du -sm <文件夹名> 返回该文件夹总M数
1.7 结束进程
- 方法一:使用kill命令:kill <pid号>
- 方法二:使用top命令;先输入top命令,输入k,按enter键,结束第一个进程,或者手动指定pid结束指定进程
- 方法三:结束所有 Python 进程, ps aux | grep python | awk ‘{print $2}’ | xargs kill -9,实际使用时可将 Python 换成其他程序
1.8 Touch
- ** 创建文件: touch test.txt **
- ** 改变文件的修改时间: touch test.txt **
- ** 只修改访问时间: touch -a test.txt **
1.9 CP
- ** 复制文件: cp <source_directory> <target_directory> **
- ** -i选项:强制shell询问是否需要覆盖已有文件 **
1.10 链接文件
链接是目录中指向真实位置的占位符
1.10.1 符号链接
- 符号链接是一个实实在在的文件,它指向存放在虚拟目录结构中的某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同。
- 要为一个文件创建符号链接,原始文件必须事先存在。然后可以使用ln命令以及-s选项来创建符号链接。
- e.g.
- ls -s data_file sl_data_file
- ls -l *data_file
- 符号链接的名字sl_data_file位于ln命令中的第二个参数位置上。显示在长列表中符号文件名后的-> 符号表名该文件是链接到文件data_file上的一个符号链接。
- sl_data_file仅仅只是指向data_file而已;
- 使用inode编号区分是链接文件还是独立文件;iNode是ls -i 命令的第一项
- e.g.
- 硬链接
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。引用硬链接文件等同引用了源文件。要创建硬链接,原始文件也必须实现存在,只不过这次使用ln命令是不再需要加入额外的参数;
1. e.g.
1. Ln code_file hl_code_file
2. ls -li *code_file: 显示硬链接的文件共享inode编号相同。链接计数器,即第三项,显示着两个文件都有两个链接。另外,它们的文件大小也一模一样。
1.11 结束进程
一条命令结束指定的所有进程
ps aux | grep python | awk '{print $2}' | xargs kill -9
2. Vi / VIM编辑器
2.1 显示行号
在当前用户目录下创建文件.vimrc,命令:vi .vimrc,写入: set number;
2.2 查看文件内容
- less file_name: 按q退出
- control + f: 向下翻页front
- control + b: 向上翻页back
- control + d: 向下翻半页down
- control + u: 向上翻半页up
- 数字0:命令模式中回到行首
- 美元符$:命令模式中回到行尾
2.3 vim中统计字符串出现的次数
方法一:统计m到n行中"字符串"出现的次数
:m,ns/\<字符串\>//gn
方法二:统计"字符串"在当前编辑文件出现的次数
:%s/字符串//ng
方法三:统计词语在文件中出现的行数
cat file|grep -i 字符串 |wc -l
2.4 复制与粘贴
# 第一步:Shift + V
# 第二步:使用光标选择要复制的行数
# 第三步:Y 键(复制)
# 第四步:光标移动到要粘贴的位置
# 第五步:P 键(粘贴)
2.5 Vi 常用配置
2.5.1 方案一
syn on "语法支持
set ai "自动缩进
set bs=2 "在insert模式下用退格键删除
set showmatch "代码匹配
set laststatus=2 "总是显示状态行
set expandtab "以下三个配置配合使用,设置tab和缩进空格数
set shiftwidth=4
set tabstop=4
set cursorline "为光标所在行加下划线
set number "显示行号
set autoread "文件在Vim之外修改过,自动重新读入
set ignorecase "检索时忽略大小写
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 "使用utf-8或gbk打开文件
set termencoding=utf-8
set encoding=utf-8
set hls "检索时高亮显示匹配项
set helplang=cn "帮助系统设置为中文
set foldmethod=syntax "代码折叠
set nocompatible " be iMproved, required
filetype off " required
2.5.2 方案二
https://www.ruanyifeng.com/blog/2018/09/vimrc.html
"不与 Vi 兼容(采用 Vim 自己的操作命令)
set nocompatible
" 打开语法高亮。自动识别代码,使用多种颜色显示。
syntax on
" 在底部显示,当前处于命令模式还是插入模式。
set showmode
" 命令模式下,在底部显示,当前键入的指令。
" 比如,键入的指令是2y3d,那么底部就会显示2y3,当键入d的时候,操作完成,显示消失。
set showcmd
" 支持使用鼠标。
set mouse=a
" 使用 utf-8 编码。
set encoding=utf-8
" 启用256色。
set t_Co=256
" 开启文件类型检查,并且载入与该类型对应的缩进规则。
" 比如,如果编辑的是.py文件,Vim 就是会找 Python 的缩进规则~/.vim/indent/python.vim
filetype indent on
" -- 缩进 --
" 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致
set autoindent
" 按下 Tab 键时,Vim 显示的空格数。
set tabstop=2
" 在文本上按下>>(增加一级缩进)、<<(取消一级缩进)或者==(取消全部缩进)时,每一级的字符数
set shiftwidth=4
" 由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格。
set expandtab
" Tab 转为多少个空格
set softtabstop=4
" 显示行号
set number
" 显示光标所在的当前行的行号,其他行都为相对于该行的相对行号
set relativenumber
" 光标所在的当前行高亮
set cursorline
" 设置行宽,即一行显示多少个字符
set textwidth=80
" 自动折行,即太长的行分成几行显示
set wrap
" 只有遇到指定的符号(比如空格、连词号和其他标点符号),才发生折行。也就是说,不会在单词内部折行
set linebreak
" 指定折行处与编辑窗口的右边缘之间空出的字符数
set wrapmargin=2
" 垂直滚动时,光标距离顶部/底部的位置(单位:行)
set scrolloff=5
" 水平滚动时,光标距离行首或行尾的位置(单位:字符)。该配置在不折行时比较有用
set sidescrolloff=15
" 是否显示状态栏。0 表示不显示,1 表示只在多窗口时显示,2 表示显示
set laststatus=2
" 在状态栏显示光标的当前位置(位于哪一行哪一列)
set ruler
" -- 搜索 --
" 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号
set showmatch
" 搜索时,高亮显示匹配结果
set hlsearch
" 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
set incsearch
" 搜索时忽略大小写
set ignorecase
" 如果同时打开了ignorecase,那么对于只有一个大写字母的搜索词,将大小写敏感;
" 其他情况都是大小写不敏感。比如,搜索Test时,将不匹配test;搜索test时,将匹配Test
set smartcase
" -- 编辑 --
" 打开英语单词的拼写检查
" set spell spelllang=en_us
" 保留撤销历史。
" Vim 会在编辑时保存操作历史,用来供用户撤消更改。默认情况下,操作记录只在本次编辑时有效,
" 一旦编辑结束、文件关闭,操作历史就消失了。打开这个设置,可以在文件关闭后,
" 操作记录保留在一个文件里面,继续存在。这意味着,重新打开一个文件,可以撤销上一次编辑时的操作。
" 撤消文件是跟原文件保存在一起的隐藏文件,文件名以.un~开头。
set undofile
2.6 撤销与恢复
u # 撤销
Control + r # 恢复
3. 上传下载命令
3.1 上传
scp upload_folder username@hostname:/home/username/destination_folder
3.2 下载
scp username@hostname:/home/username/download_folder destionation_folder
如果上传下载的是文件夹,可以在scp命令后面添加-r
4. 密钥登陆
4.1 本地机器上制作密钥对
[root@host ~]$ ssh-keygen <== 建立密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空
Enter same passphrase again: <== 再输入一遍密钥锁码
Your identification has been saved in /root/.ssh/id_rsa. <== 私钥
Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥
4.2 服务器上安装公钥
# 在服务器上安装公钥:
[root@host ~]$ cd .ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys
# 如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:
[root@host .ssh]$ chmod 600 authorized_keys
[root@host .ssh]$ chmod 700 ~/.ssh
4.3 设置 SSH,打开密钥登录功能
# 编辑 /etc/ssh/sshd_config 文件,进行如下设置:
RSAAuthentication yes
PubkeyAuthentication yes
# 允许 root 用户通过 SSH 登录:
PermitRootLogin yes
# 禁用密码登录:
PasswordAuthentication no
# 重启 SSH 服务:
[root@host .ssh]$ service sshd restart
# 本地机器上登陆:
ssh root@host_name
3. Mac 常用设置
3.1 在Finder中打开Terminal
https://www.jianshu.com/p/87723bba04de