目录
Linux操作系统概述
1、发展
1991 Linus Linux 0.0.1版,代码为8K行。Linux加入了GNU,整体基于GPL协议,允许开源、分享传播、修改。
2、组成
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
1.内核:
核心程序,用于管理硬件设备、系统的线程进程、内存、交换空间、文件系统、精灵进程(守护进程)等。主要实现系统程序与硬件之间的控制管理功能。
内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。
2.Shell:
包裹在内核之外的人机交互界面,用于用户和内核之间打交道的功能,类似于windows的cmd。 通过Shell将输入的命令与内核通讯,好让内核可以控制硬件开正确无误的操作工作。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
目前主要有下列版本的shell。
1.Bourne Shell:是贝尔实验室开发的。
2.BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。
3.Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
4.C Shell:是SUN公司Shell的BSD版本。
3、Linux的特性:
多用户、多任务(进程、线程处理),多平台,图形化界面(x-windows)、硬件低配置、通信与联网、应用程序的支持(编辑器、编辑工具、数据库、办公软件、图形处理、Internet应用、游戏)
4、Linux的操作系统
red hat: 企业级的,已经开始收费(商用)。
CentOS 是RHEL的克隆版本。RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码重新编译一次,形成一个可使用的二进制版本。由于Linux的源代码是GNU,所以从获得RedHat的源代码到编译成新的二进制,都是合法。只是RedHat是商标,所以必须在新的发行版里将RedHat的商标去掉。 通常搭建服务器选用CentOS。
ubuntu: 桌面开源的,比较纯正的Linux,android官方指定的编译操作系统,发展快、已支持ARM架构。
5、shell的打开及含义
首先我们可以通过鼠标右键打开,点击Open Terminal然后就可以打开shell。
其次,也可以通过点击虚拟机左上角的Applications,接着点击Terminal打开shell。
如果一开始没有Terminal,则在System Tools中下拉至最后找到。
最终打开后会出现如下所示的窗口。
其中命令行的各部分含义如下
[root | @ | localhost | ~] | # |
运行shell的用户 (现在为root超级用户,可以切换为普通用户) | 分隔符 | 系统主机名称 (当前主机去掉域名部分的短名称) | 当前目录的名称 (~表示家目录,例Desktop表示当前目录为桌面) | 身份提示符 (#表示当前用户为root超级用户,$表示当前用户为普通用户) |
窗口的各个按键含义如下
6、shell中的快捷键
【1】、打开与关闭终端
Ctrl + Alt + t | 打开一个新的终端terminal,也就是一个新的窗口window。 |
Shift +Ctrl + t | 在已有终端上打开一个新的tab,而不是窗口window。 |
Shift +Ctrl + n | 在已有终端上打开另一个新的终端,即一个新的窗口。 |
Ctrl + d | 关闭一个tab,如果一个终端有多个tab,只关闭当前tab。 |
Shift +Ctrl + w | 效果类似于Ctrl + d但又不同,当一个终端上只有一个tab时,这个快捷键不起作用。 |
Shift +Ctrl + q | 关闭当前终端,如果终端有多个tab,所有的tab都将关闭。 |
【2】、编辑命令
tab | 命令或路径等的补全键,linux用的最多的一个快捷键 ⭐️ |
ctrl + - | 依次撤销命令行除添加字符的首次修改及其后的所有修改,否则恢复到空行。等同 Ctrl + x + u。 |
ctrl+a | 光标迅速回到行首 ⭐️ |
ctrl+e | 光标迅速回到行尾 ⭐️ |
ctrl+f | 光标向右移动一个字符 |
ctrl+b | 光标向左移动一个字符 |
ctrl+insert | 复制命令行内容(mac系统不能使用) |
shift+insert | 粘贴命令行内容(mac系统不能使用) |
ctrl+k | 剪切(删除)光标处到行尾的所有字符 ⭐️ |
ctrl+u | 剪切(删除)光标处到行首的所有字符 ⭐️ |
ctrl+w | 剪切(删除)光标前的一个字符 |
ctrl+y | 粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符 ⭐️ |
ctrl+c | 中断终端正在执行的任务并开启一个新的一行 ⭐️ |
ctrl+h | 删除光标前的一个字符(相当于退格键) |
ctrl+d | 删除一个字符,即 Delete 键(命令行若无字符,相当于exit,处理多行标准输入时也表示 EOF)。 |
ctrl+r | 搜索命令行使用过的历史命令记录 ⭐️ |
ctrl+g | 从ctrl+r的搜索历史命令模式中退出 |
ctrl+l | 清楚屏幕所有的内容,并开启一个新的一行 ⭐️ |
ctrl+s | 锁定终端,使之任何人无法输入 |
ctrl+q | 解锁ctrl+s的锁定状态 |
ctrl+z | 暂停在终端运行的任务,使用"fg"命令可以使暂停恢复 ⭐️ |
^abc | 删除最近已执行过的命令中的 abc 字符串,并执行。 |
\^foo\^bar | 将最近已执行过的命令中的 foo 字符串替换为 bar |
!! | 执行上一条命令 ⭐️ |
!pw | 这是一个例子,是执行以pw开头的命令,这里的pw可以换成任何已经执行过的字符 ⭐️ |
!pw:p | 这是一个例子,是仅打印以pw开头的命令,但不执行,最后的那个“p”是命令固定字符 ⭐️ |
!num:gs/str1/str2/ | 将第 num 条命令条目中的 str1 字符串替换为str2,(若不加 g,则仅替换第一个匹配)。 |
!num | 执行历史命令列表的第num条命令,num代指任何数字(前提是历史命令里必须存在)⭐️ |
!$ | 代指上一条命令的最后一个参数,该命令常用于shell脚本中 ⭐️ |
!* | 执行最近已执行过的命令中的所有参数。 |
!*:p | 输出最近已执行过的命令中的所有参数。 |
esc+. | 注意那个".“ 意思是获取上一条命令的(以空格为分隔符)最后的部分 ⭐️ |
Esc | 连续按 3 次显示所有的支持的终端命令。(作用等于TAB键) |
esc+b | 移动到当前单词的开头 |
esc+f | 移动到当前单词的结尾 |
Esc + t | 颠倒光标所在处及其相邻单词的位置 |
Esc + d | 由光标位置开始,删除单词,直到单词结束,往右侧(还有剪切功能) |
Esc + c | 使下一个单词首字母大写, 同时光标前进一个单词, 如光标停留在单词的某个字母上, 如 word 中的 o 字母上, 则 o 字母变大写. 而不是 w |
esc+u | 使下一个单词所有字母变大写, 同时光标前进一个单词, 同上, 如光标在 o 字母上, 则 ord 变大写, w 不变. |
Esc + 操作次数 操作动作 | 指定操作次数,重复执行指定的操作。例Esc + 4 q,会输入qqqq |
以上就是我对于linux以及shell命令行快捷键的总结。希望对你有帮助!