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.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:
相关文章:
Linux基础命令和基础知识总结
1. 常用文件管理命令介绍 (1) ctrl c: 取消命令,并且换行 (2) ctrl u: 清空本行命令 (3) tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项 (4) ls: 列出当前目录下所有文件,蓝色的是文件夹&…...
Vue组件-非单文本组件
非单文本组件(用的少) 在vue中,组件是有两种编写格式的,第一种格式叫非单文本组件,第二种格式叫单文本组件 非单文本组件:一个文件中含有多个组件,也叫多文本组件,比如demo.html里面包含js,css… 单文本…...
停车场管理系统的设计与实现_kaic
目 录 1 概 述 1.1研究背景 1.2研究现状 1.3研究内容 2 相关技术简介 2.1 JSP技术 2.2 JAVA技术 2.3 MYSQL数据库 2.4 B/S结构 3 系统需求分析 3.1 系统可行性分析 3.1.1 操作可行性 3.1.2 经济可行性 3.1.3 技术可行性 3.2 系统性能分析 3.3系统流程分析 3.3.1注册流程 3.3.…...
seleniumUI自动化登录失败案例重新尝试WhileTrue
一个用户每次登录失败,失败N次,无法进入下一url时,怎样会重新尝试N次重新登录呢 ? 我们可以使用wihile true判断,并使用currenturl判断,下面就介绍以下个人的方法 currenturlEGTconfigFile.driver.curren…...
前端开发之vue动态路由实现方案
前端开发之vue动态路由实现方案 前言2. 实现1、登录页面创建登录函数和watch监听路由2、调用的login方法(1)登录方法(2)存储token 3、router.push的时候调用路由守卫(1)创建路由守卫,建议路由守…...
JAVA接口的基本测试------JAVA入门基础教程
public class Interface {public static void main(String[] args){System.out.println(Flyable.max_speed);System.out.println(Flyable.min_speed);//类与接口是实现关系Bullet b new Bullet();b.attack();b.fly();Flyable f new Bullet();f.fly();} }interface Flyable {p…...
SLAM论文速递:SLAM—— 面向动态环境的多用途SLAM框架—4.25(1)
论文信息 题目: Multi-purpose SLAM framework for Dynamic Environment 面向动态环境的多用途SLAM框架论文地址: 2020 IEEE/SICE International Symposium on System Integration (SII)https://ieeexplore.ieee.org/abstract/document/9026299发表期刊…...
Dubbo 简易环境搭建以及使用(2)
目录 环境搭建 Dubbo的3种使用方式: 1. XML配置的方式,一般用于Spring MVC工程 2. 配置文件的方式 (spring boot工程) 3. 注解方式 Dubbo 控制台 环境搭建 本篇将介绍Spring boot zookeeper Dubbo 简易环境的搭建以及使用…...
免费无需魔法会语音聊天的ChatGPT
今天发现了一个很好的ChatGPT,可以语音聊天,而且免费无需魔法 角色目前包括夏洛克、雷电影等等,对话的声调完全模拟了原角色! 目前只有英文和日语两种对话,我们可以文字输入或者语音输入,中文即可ÿ…...
springboot 参数统一处理
目录 一、普通参数:ParameterRequestWrapper 二、HttpHelper请求处理字符串工具类 三、实体json参数:RequestWrapper 四、过滤器:PostFilter 五、Controller 一、普通参数:ParameterRequestWrapper import javax.servlet.http.HttpServletRequest;…...
成就更强大的自己
每一次低谷,都会酝酿向上的力量。 每一次痛苦过后,都会洗涤掉心理深处的灰尘。 人生的路上,坎坷前行,只有保持积极向上的态度,才能把坎坷化为坦途。 走过一段路后,才发现,当内心强大、修养、爱…...
android 富文本编辑器有哪些
android 富文本编辑器有哪些 有许多优秀的开源富文本编辑器插件可用于Android平台,下面列举几个常用的: RichEditorView:这是一个基于Web技术的富文本编辑器插件,有多种编辑功能与选项。 Android Rich Text Editor:这…...
flex布局属性详解
Flex布局 flex-directionflex-wrapflex-flowjustify-contentalign-itemsalign-content其他orderflexalign-self 含义:Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。 flex-direction flex-direction属性决定主轴的方向&…...
上传了ipa但iTunes Connect没有构建版本问题
上传了ipa但iTunes Connect没有构建版本问题 转载:上传了ipa但iTunes Connect没有构建版本问题 AU上传ipa出现下图红框提示说明成功上传,如果App Store后台没有出现构建版本,请登录 apple账号对应的邮箱查看反馈,特别留意垃圾邮…...
记录一次armbian系统搭建路由功能的失败过程
根据 使用 Debian 作为路由器 :: 星野玲的博客 https://blog.bling.moe/post/3/ 优化ubuntu dns解析,关掉systemd-resolved - MR__Wang - 博客园 https://www.cnblogs.com/xzlive/p/17139520.html ChatGPT 背景需求,新入手了一款RK3568系列的小主机,带有2*2.5G2*1…...
OpenGL与Metal API的Point Sprite
我们在实际用OpenGL等3D图形渲染API时 点图元 往往用得不多,而在粒子系统中可能也是用一个正方形来绘制一单个粒子。不过在当前大部分3D图形渲染API中都能支持用点图元来绘制一个具有纹理贴图的粒子,从早在OpenGL 1.4开始就能支持了,而在Open…...
从0搭建Vue3组件库(七):使用 gulp 打包组件库并实现按需加载
使用 gulp 打包组件库并实现按需加载 当我们使用 Vite 库模式打包的时候,vite 会将样式文件全部打包到同一个文件中,这样的话我们每次都要全量引入所有样式文件做不到按需引入的效果。所以打包的时候我们可以不让 vite 打包样式文件,样式文件将使用 gulp 进行打包。那么本篇文…...
Python入门教程+项目实战-11.4节: 元组与列表的区别
目录 11.4.1 元组与列表的区别 11.4.2 可变数据类型 11.4.3 元组与列表的区别 11.4.4 知识要点 11.4.5 系统学习python 11.4.1 不可变数据类型 不可变数据类型是指不可以对该数据类型进行修改,即只读的数据类型。迄今为止学过的不可变数据类型有字符串&#x…...
如何做好采购计划和库存管理?
“销售计划不专业且不稳定”“准确性低” “目前只按照过往销量和采购周期做安全库存,但欠货和滞销依然严重” 题主的问题其实蛮有代表性的, 也是传统采购和库存管理常常面临的问题: ① 前后方协作困难 采购/销售/财务工作相互独立&#x…...
客户管理系统的作用有哪些?
阅读本文您将了解:1.客户管理系统的作用;2.客户管理系统软件怎么用;3.客户管理的注意事项。 一、客户管理系统的作用 客户是企业的重要财富,因此客户管理是企业发展过程中至关重要的一部分,那么客户管理怎么做&#…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
