Linux基础命令和基础知识总结

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.txt 

     cp XXX YYY -r 将XXX目录(文件夹)复制到YYY下 非当前路径重命名方法:cp a.txt ../b.txt


(8) mkdir XXX: 创建目录XXX

     mkdir -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:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值