1. 常用文件管理命令介绍
(1) ctrl c: 取消命令,并且换行
(2) ctrl u: 清空本行命令
(3) tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
(4) ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
(5) pwd: 显示当前路径
(6) cd XXX: 进入XXX目录下, cd .. 返回上层目录 ~:家目录,回回到路径/home/user下cd -:返回改变路径前的路径
(7) cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txtcp XXX YYY -r 将XXX目录(文件夹)复制到YYY下 非当前路径重命名方法:cp a.txt ../b.txt
(8) mkdir XXX: 创建目录XXXmkdir -p:-p:如果文件夹不存在,则创建
(9) rm XXX: 删除普通文件 rm XXX -r: 删除文件夹支持正则表达式,删除所有.txt类型文件:rm *.txt
ㅤㅤㅤㅤ删除所有文件(不包括文件夹):rm *
ㅤㅤㅤㅤ正则表达式删除所有文件夹:rm * -r 即可
(10) mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令非当前路径移动方法:mv a.txt ../b.txt
(11) touch XXX: 创建一个文件
(12) cat XXX: 展示文件XXX中的内容
(13) 复制文本
windows/Linux下:Ctrl + insert,Mac下:command + c
(14) 粘贴文本
windows/Linux下:Shift + insert,Mac下:command + v(15) history: 查看历史输入指令
(16) tree: 以树形显示文件目录结构
2. tmux教程
2.1 功能
2.1.1 分屏
2.1.2 允许断开Terminal连接后,继续运行进程
2.1.3 结构:
一个tmux可以包含多个session,一个session可以包含多个window,一个window可以包含多个pane。
实例:
tmux:
session 0:
window 0:
pane 0
pane 1
pane 2
...
window 1
window 2
...
session 1
session 2
...
2.1.4 操作:
tmux固定按键为ctrl + b 但是按键不太方便,所以可以按照如下方式进行快捷键的更改
1. 打开终端,输入以下命令,查看当前前缀按键是什么,默认为 C-b
tmux show-options -g | grep prefix
2.执行如下命令,把<new-prefix>替换为你想要设置的新前缀键,例如C-a
tmux set-option -g prefix <new-prefix>
3.如果你想立即生效,可以执行如下命令,将修改应用到当前对话
tmux source-file ~/.tmux.conf
4.如果你想永久保存修改,可以编辑 ~/.tmux.conf文件,添加以下内容
# 将前缀按键改为C-a
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix
其中 unbind-key C-b 命令将原来的前缀键C-b解绑
bind-key C-a send-prefix 命令把新的前缀键C-a绑定为前缀键
修改完成后可以执行如下代码使得修改生效
tmux-file ~/.tmux.conf
(1) tmux:新建一个session,其中包含一个window,window中包含一个pane,pane里打开了一个shell对话框
(2) 按下Ctrl + a后手指松开,然后按%:将当前pane左右平分成两个pane
(3) 按下Ctrl + a后手指松开,然后按"(注意是双引号"):将当前pane上下平分成两个pane
(4) Ctrl + d:关闭当前pane;如果当前window的所有pane均已关闭,则自动关闭window;如果当前session的所有window均已关闭,则自动关闭session
(5) 鼠标点击可以选pane
(6) 按下ctrl + a后手指松开,然后按方向键:选择相邻的pane
(7) 鼠标拖动pane之间的分割线,可以调整分割线的位置
(8) 按住ctrl + a的同时按方向键,可以调整pane之间分割线的位置
(9) 按下ctrl + a后手指松开,然后按z:将当前pane全屏/取消全屏
(10) 按下ctrl + a后手指松开,然后按d:挂起当前session
(11) tmux a:打开之前挂起的session
(12) 按下ctrl + a后手指松开,然后按s:选择其它session
方向键 —— 上:选择上一项 session/window/pane
方向键 —— 下:选择下一项 session/window/pane
方向键 —— 右:展开当前项 session/window
方向键 —— 左:闭合当前项 session/window
(13) 按下Ctrl + a后手指松开,然后按c:在当前session中创建一个新的window
(14) 按下Ctrl + a后手指松开,然后按w:选择其他window,操作方法与(12)完全相同
(15) 按下Ctrl + a后手指松开,然后按PageUp:翻阅当前pane内的内容
(16) 鼠标滚轮:翻阅当前pane内的内容
(17) 在tmux中选中文本时,需要按住shift键。(仅支持Windows和Linux,不支持Mac,不过该操作并不是必须的,因此影响不大)shift + insert 粘贴 ctrl + insert复制
(18) tmux中复制/粘贴文本的通用方式:
(1) 按下Ctrl + a后松开手指,然后按[
(2) 用鼠标选中文本,被选中的文本会被自动复制到tmux的剪贴板
(3) 按下Ctrl + a后松开手指,然后按],会将剪贴板中的内容粘贴到光标处(19)tmux kill-server 关闭所有session
3 vim 教程
3.1 功能:
(1):命令行模式下的文本编辑器
(2):根据文件扩展名自动判别编程语言。支持代码缩进、代码高亮等功能
(3):使用方式:vim filename
ㅤㅤㅤㅤ如果已有该文件,则打开它
ㅤㅤㅤㅤ如果没有该文件,则打开一个新的文件,并命名位filename
3.2 模式:
(1):一般命令模式
ㅤㅤㅤㅤ默认模式。命令输入方式:类似于打游戏放技能,按不同字符,即可进行不同操作。可以复制、粘贴、删除文本等
(2):编辑模式
ㅤㅤㅤㅤ在一般命令模式下按i,会进入编辑模式
ㅤㅤㅤㅤ按下ESC会退出编辑模式,返回到一般命令模式
(3):命令行模式
ㅤㅤㅤㅤ在一般命令模式里按下: / ?三个字母中的任意一个,会进入命令行模式
ㅤㅤㅤㅤ命令行在最下面。可以查找、替换、保存、退出、配置编辑器等
3.3 操作:
ㅤㅤ1. i:进入编辑模式
ㅤㅤ
ㅤㅤ2. ESC:进入一般命令模式ㅤㅤ3. h或左箭头键:光标向左移动一个字符
ㅤㅤ4. j或下箭头键:光标向下移动一个字符
ㅤㅤ5. k或上箭头键:光标向上移动一个字符
ㅤㅤ6. l或右箭头键:光标向右移动一个字符
ㅤㅤ7. n<Space>:n表示数字,按下数字后再按空格,光标会往右移动这一行的n个字符
ㅤㅤ8. 0或功能键[Home]:光标移动到本行开头
ㅤㅤ9. $或功能键[End]:光标移动到本行末尾
ㅤㅤ10. G:光标移动到最后一行
ㅤㅤ11. :n或nG:n为数字,光标移动到第n行
ㅤㅤ12. gg:光标移动到第一行,相当于1G
ㅤㅤㅤ●ㅤ删除组合键:gg + d + G gg + d + nG
ㅤㅤ13. n<Enter>:n为数字,光标向下移动n行
ㅤㅤ
ㅤㅤ14. /word:向光标之下寻找第一个值为word的字符串
ㅤㅤ
ㅤㅤ15. ?word:向光标之上寻找第一个值为word的字符串ㅤㅤ16. n:重复前一个查找操作
ㅤㅤ17. N:反向重复前一个查找操作
ㅤㅤ
ㅤㅤ18. :n1, n2s/word1/word2/g:n1与n2为数字,在n1行与n2行之间寻找word1这个字符串,并将该字符串替换为word2
ㅤㅤ
ㅤㅤ19. :1, $s/word1/word2/g:将全文的word1替换为word2ㅤㅤ20. :1, $s/word1/word2/gc:将全文的word1替换为word2,且在替换前要求用户确认
ㅤㅤ21. v:选中文本,按两下ESC取消选中状态
ㅤㅤ22. d:删除选中的文本
ㅤㅤ23. dd:删除当前行
ㅤㅤ24. y:复制选中的文本
ㅤㅤ25. yy:复制当前行
ㅤㅤ26. p:将复制的数据在光标的下一行(yy)/下一个位置(y)粘贴
ㅤㅤ27. u:撤销
ㅤㅤ28. Ctrl + r:取消撤销
ㅤㅤ29. Shift + >:将选中的文本整体向右缩进一次 n Shift + > 向右缩进n次
ㅤㅤ30. Shift + <:将选中的文本整体向左缩进一次 n Shift + < 向左缩进n次
ㅤㅤ31. :w:保存
ㅤㅤ32. :w!:强制保存
ㅤㅤ33. :q:退出
ㅤㅤ34. :q!:强制退出
ㅤㅤ35. :wq:保存并退出
ㅤㅤ36. :set paste:设置成粘贴模式,取消代码自动缩进
ㅤㅤ37. set nopaste:取消粘贴模式,开启代码自动缩进
ㅤㅤ38. set nu:显示行号
ㅤㅤ39. set nonu:隐藏行号
ㅤㅤ40. gg=G:将全文代码格式化
ㅤㅤ41. :noh:关闭查找关键词高亮
ㅤㅤ42. Ctrl + q:当vim卡死时,可以取消当前正在执行的命令
ㅤㅤ43. 异常处理
ㅤㅤㅤ●ㅤ每次用vim编辑文件时,会自动创建一个.filename.swp的临时文件
ㅤㅤㅤ●ㅤ如果打开某个文件时,该文件的swp文件已存在,则会报错。此时解决办法有两种:
ㅤㅤㅤㅤㅤ1.ㅤ找到正在打开该文件的程序,并退出
ㅤㅤㅤㅤㅤ2.ㅤ直接删除掉该swp文件即可
4 ssh
4.1 ssh登录
4.1.1 基本用法 远程登录服务器
ssh user@hostname
ㅤㅤ●ㅤuser:用户名
ㅤㅤ●ㅤhostname:IP地址或域名
第一次登录时会提示:
The authenticity of host '123.57.47.211 (123.57.47.211)' can't be established.
ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入yes,然后回车即可
这样会将该服务器的信息记录在~/.ssh/known_hosts文件中
然后输入密码即可登录到远程服务器中
logout:退出当前服务器
默认登录端口号为22,如果想登录某一特定端口:
ssh user@hostname -p 22
4.1.2 配置文件
创建文件~/.ssh/config
然后在文件中输入
Host myserver1
HostName IP地址或域名
User 用户名Host myserver2
HostName IP地址或域名
User 用户名
之后再使用服务器时,可以直接使用别名myserver1、myserver2
4.1.3 密钥登录
创建密钥:ssh-keygen
然后一直回车即可
执行结束后,~/.ssh/目录下会多两个文件:
ㅤㅤ●ㅤid_rsa:私钥
ㅤㅤ●ㅤid_rsa.pub:公钥
之后想免密码登录哪个服务器,就将公钥传给哪个服务器即可。例如,想免密登录myserver服务器。则将公钥中的内容,复制到myserver中的~/.ssh/authorized_keys文件里即可。
ㅤㅤ也可以使用如下命令一键添加公钥:
ssh-copy-id myserver
4.1.4 执行命令
命令格式:
ssh user@hostname command
例如:
ssh user@hostname ls -a
或者
# 单引号中的$i可以求值
ssh myserver 'for ((i = 0; i < 10; i ++ )) do echo $i; done'
# 双引号中的$i不可以求值
ssh myserver "for ((i = 0; i < 10; i ++ )) do echo $i; done"
4.2 scp传文件
4.2.1 基本用法
命令格式:
scp source destination
将source路径下的文件复制到destination中
一次复制多个文件:
scp source1 source2 destination
复制文件夹:
scp -r ~/tmp myserver:/home/acs/
将本地家目录中的tmp文件夹复制到myserver服务器中的/home/acs/目录下。
scp -r ~/tmp myserver:homework/
将本地家目录中的tmp文件夹复制到myserver服务器中的~/homework/目录下。
scp -r myserver:homework .
将myserver服务器中的~/homework/文件夹复制到本地的当前路径下。
指定服务器的端口号:
scp -P 22 source1 source2 destination
注意: scp的-r -P等参数尽量加在source和destination之前。
使用scp配置其他服务器的vim和tmux
scp ~/.vimrc ~/.tmux.conf myserver: