diff --git "a/\351\242\234\351\224\220\346\225\217/20240515linux\345\210\235\350\257\206.md" "b/\351\242\234\351\224\220\346\225\217/20240515linux\345\210\235\350\257\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..e458fa27b0ac517ac374d2d8d8477bf8643a0367 --- /dev/null +++ "b/\351\242\234\351\224\220\346\225\217/20240515linux\345\210\235\350\257\206.md" @@ -0,0 +1,193 @@ +初识Linux + +1. Linux发展史 +- 1991年:Linux的诞生 +- 1992年:开源和GNU项目 +- 1994年:Red Hat和Debian的诞生 +- 2000年代:企业采用和标准化 +- 2010年代:移动和云计算 +- 2020年代:持续创新,Linux内核5.0发布。 + +2. Linux与Windows区别 +```JS +1. 设计理念和开源性 + +- Linux:Linux是一个基于UNIX的开源操作系统,其源代码可以被公众访问、查看和修改。这种开放性促进了全球范围内的协作和贡献,使得Linux不断发展和改进。 +- Windows:Windows是由微软公司开发的闭源操作系统,其源代码不对公众开放。Windows系统保护知识产权,用户不能查看或修改其源代码。 +2. 成本和使用许可 + +- Linux:大多数Linux发行版是免费的,用户可以自由地下载、使用和分发。 +- Windows:Windows通常需要购买许可证才能使用。虽然有些版本面向个人用户是免费的(如Windows 10家庭版),但许多企业用户需要购买相应的许可证。 +3. 软件获取和兼容性 + +- Linux:Linux系统拥有大量的自由和开源软件(FOSS),用户可以通过开源软件仓库免费获取。虽然某些特定领域的专业软件可能不易获得,但开源社区通常可以提供替代方案。 +- Windows:Windows拥有广泛的软件兼容性,拥有大量的商业软件和支持。这使得Windows在游戏、专业软件等方面具有更大的优势。 +4. 用户界面和易用性 + +- Linux:Linux有多种用户界面,从命令行界面到图形用户界面(GUI),用户可以根据自己的需求选择。虽然现代Linux发行版提供了直观的GUI,但对于新手来说,学习曲线可能会相对陡峭。 +- Windows:Windows以其直观的图形用户界面而闻名,对于新手来说更容易上手。微软也提供了大量的帮助文档和社区支持。 +5. 稳定性和安全性 + +- Linux:Linux系统以其稳定性和安全性而著称。由于其开源特性,漏洞和恶意软件较少,且一旦发现,可以迅速得到修复。 +- Windows:尽管Windows系统的安全性在过去几年中有所提高,但它仍然是恶意软件的主要目标。这使得Windows系统需要更多的安全措施和维护。 +6. 技术支持和社区 + +- Linux:Linux社区支持强大,用户可以通过在线论坛、文档和其他资源获得帮助。但这种支持可能不如Windows的商业支持那样全面。 +- Windows:Windows用户可以享受到微软提供的全面技术支持,包括电话支持、在线帮助和修复工具。 +7. 学习和使用难度 + +- Linux:Linux系统构造简单、稳定,知识、技能传承性好,深入学习相对容易。 +- Windows:Windows系统构造复杂、变化频繁,知识、技能淘汰快,深入学习困难。 +8.应用领域 + +- Linux:Linux最初主要用于服务器和超级计算机。近年来,它在移动设备(如Android)和物联网(IoT)领域也取得了显著进展。 +- Windows:Windows主要用于个人电脑,同时也应用于服务器和一些移动设备。 +``` + + +3. 为什么我们选择Debian为教学的发行版本 +```JS +1. 稳定性和成熟度:Debian以其稳定性和成熟度而著称,特别是其稳定版本(stable)经过了严格的测试,确保系统稳定可靠。这对于教学环境来说非常重要,可以提供一个预测性好且故障率低的学习环境。 + +2. 开源和自由软件精神:Debian遵循GNU通用公共许可协议,是自由软件的代表。在教学过程中,使用Debian可以传达开源文化的价值观,教育学生了解和参与到开源社区中。 + +3. 丰富的软件资源:Debian拥有庞大的软件仓库,提供了包括数学、物理、化学、地理、生物学、统计学、电子学、业余无线电、图形、办公、编程等领域的应用程序。这些软件资源能够支持多样化的教学需求,从基础学科到计算机编程。 + +4. 教育专用软件:根据参考信息\[1\],Debian发行版中包含了一些专门为教育目的开发的软件,以及与NASA合作开发的虚拟显微镜等资源,这些都是教学过程中宝贵的教学工具。 + +5. 社区支持和文档:Debian拥有强大的社区支持,提供了大量的文档和教程,这对于教师和学生来说都是非常有用的资源。在遇到问题时,可以方便地获得社区支持和帮助。 + +6. 灵活性和可定制性:Debian提供了高度的灵活性和可定制性,教师可以根据教学需要定制系统,安装和配置特定的软件环境。 + +7. 长期支持:Debian的长期支持版本(LTS)提供了长达五年的安全更新支持,这对于学校来说意味着可以在相对长的时间内不用担心系统安全问题。 + +8. 成本效益:Debian是免费的,学校可以节省在操作系统授权上的开支,将预算用于其他教学资源的采购或升级。 + ``` + +4. 如何安装一个Debian + + 1. 安装一个VM虚拟机 + + 1. 下载VM + 2. 注册VM:百度到处都是序列号 + + 2. 下载Debian的安装镜像ISO + + 1. https://mirror.lzu.edu.cn/debian-cd/12.5.0/amd64/iso-cd/ + 2. [debian-12.5.0-amd64-netinst.iso](https://mirror.lzu.edu.cn/debian-cd/12.5.0/amd64/iso-cd/debian-12.5.0-amd64-netinst.iso) + + 3. 将Debian安装进VM + + 1. 创建一个空白虚拟机 + 2. 配置好相关的硬件参数 + 3. 关键是修改CD-ROM,选择ISO文件路径 + 4. 启动虚拟机 + 5. 在选择语言时,选择简体中文,可以将配置的界面都中文显示 + 6. 遇到选镜像站点时,选mirror.lzu.edu.cn 兰州大学的站点 + 7. 软件安装时,只保留最后的标准工具,其它都不选 + + 4. 安装好系统之后,可以用两种帐号登录。 + + 1. root 超级管理员,他具有最高的权限。 + 2. 普通用户 dabian2ban 权限很低 + + 5. 默认情况,我们是没有安装SSH服务端的。得自己在debian安装一个SSH的服务端 + + ```js + apt-get update // 将软件库更新到最新,得到最新可用的软件列表 + apt-get install ssh //安装ssh + + // 安装SSH服务端之后,就可以用电脑的SSH客户端进行连接 + // cmd,finalshell,tabby,putty + // ssh -l 用户名 ip + // ssh 用户名@ip + // 但普通用户权限受限,所以需要一些权限时,要么切换到root登录,要么借用root的权限 + root@172.16.90.103's password: + Permission denied, please try again. // root用户默认是禁止SSH登录的。 + // 为了使root可以远程登录,配置SSH服务端 + // /etc/ssh/sshd_config // 编辑sshd_config这个文件,但vi编辑器太原始 + // 改用vim, + apt-get install vim -y // 安装vim + ``` + + vim /etc/ssh/sshd_config + + ```js + Port 22 // 开启端口22 + PermitRootLogin yes // 允许root登录 + PasswordAuthentication yes // 使用密码验证的模式 + PermitEmptyPasswords no // 禁用空密码 + // 重启ssh让配置生效 + systemctl restart ssh + /etc/init.d/ssh restart + + + // 默认是命令模式,按i进入编辑模式 + // 保存时,按ESC,退回命令模式,按shift+: ,输入qw! + ``` + + linux 执行的服务的命令 + + 1. systemctl 指令 服务名 + 2. /etc/init.d/服务器 指令 + + + + 6. 默认也可以用ip addr show 查看ip 地址 + + 7. 小练习, + + 1. 自行让你的Deiban可用ifconfig命令,这个指令可以用来查看ip +```js +sudo apt-get update +sudo apt-get install net-tools + +``` + + + 2. 学习VIM常用指令 + +1. 模式切换: + + * 普通模式(Normal Mode): 这是VIM的默认模式,用于执行大多数命令。 + * 插入模式(Insert Mode): 用于输入文本。 + * 命令模式(Command Mode): 用于执行如保存、退出等高级命令。 + * 可视模式(Visual Mode): 用于选择文本。 +2. 普通模式下的移动指令: + + * `h` 或 `左箭头`: 光标左移一个字符。 + * `l` 或 `右箭头`: 光标右移一个字符。 + * `k` 或 `上箭头`: 光标上移一个字符。 + * `j` 或 `下箭头`: 光标下移一个字符。 + * `w`: 光标跳转到下一个单词的开始。 + * `b`: 光标跳转到前一个单词的开始。 + * `e`: 光标跳转到当前单词的结束。 + * `0` 或 `数字0`: 光标移动到当前行的开头。 + * `$`: 光标移动到当前行的结尾。 + * `G`: 光标移动到文件的最后一行。 + * `gg`: 光标移动到文件的第一行。 + * `nG`: 光标移动到文件的第n行。 +3. 普通模式下的文本编辑指令: + + * `x` 或 `del`: 删除光标后的字符。 + * `X`: 删除光标前的字符。 + * `r` 或 `R`: 替换光标后的字符(小写r)或进入替换模式(大写R)。 + * `y` 或 `yank`: 复制光标后的文本。 + * `p` 或 `put`: 在光标位置粘贴复制的文本。 + * `dd`: 删除光标所在的一行。 + * `ndd`: 删除光标所在行及其以下n行。 +4. 普通模式下的动作指令: + + * `n`: 重复上一个搜索。 + * `N`: 反向重复上一个搜索。 + * `:`: 进入命令模式,可以用来执行如`:wq`(保存并退出)等命令。 +5. 搜索指令: + + * `/` 或 `?`: 从光标位置开始搜索向前/向后。 + * `n`: 搜索下一个匹配项。 + * `N`: 搜索上一个匹配项。 +6. 撤销和重复指令: + + * `u`: 撤销上一个操作。 + * `.`: 重复上一个操作。 +