linux学习第四天

发布时间:2026/9/15 5:37:21

linux学习第四天 linux学习第四天vim编辑器每一个系统管理员都有一个偏爱的文本编辑器。有的管理员偏爱gedit有的偏爱nano甚至有的偏爱emacs。即使已经有偏爱的编辑器了解vim还是有必要的。因为vim可以安装在任何系统。vim版本Linux 系统中可以安装vim三个不同版本vim-minimal只提供vi和相关命令。vim-enhanced提供vim命令提供语法高亮拼写检查等特性。vim-X11提供gvim图形界面下的vim。gvim包涵菜单栏。当用户不知道命令的时候可以通过菜单操作。#安装vim工具#一定要在管理员账户下安装普通用户未授权的话操作等级不够[rootcentos7 ~20:33:12]# yum install vimcommand 模式该模式下键盘中的字母有特殊含义。例如G跳转到最后一行gg跳转到第一行。edit 模式在command模式下按i进入该模式。在该模式可以输入内容。在该模式下按Esc返回command模式。extended command 模式在command模式下按:进入该模式。在该模式下可以保存文件(:w)退出编辑:q强制退出编辑:q!报错并退出:wq。visual edit 模式在command模式下按 v单个字符选中、V整行选中或者ctrlv按矩形选中进入该模式。在该模式下用于选中文件随后可以复制或删除选中的内容。[ljycentos7 ~20:32:38]$cp/etc/profile ./profile.sh[ljycentos7 ~20:39:19]$vim./profile.sh定位文件内容w向后1个word(光标在单词开头)e向后1个word(光标在单词末尾)b向前1个word^或0行首$行尾(上一个句子头部)下一个句子尾部。{上一个自然段}下一个自然段。gg第一行G最后一行。less 使用g第一行G最后一行。进入插入模式i 当前位置插入。(insert)I行首插入。a当前位置追加。(append)A行末追加。o向下新开一个空白行。O向上新开一个空白行。复制yy复制1行相当于y1y。以此类推 y2y y2w y2b。粘贴p 当前位置后粘贴P 当前位置前粘贴删除x删除当前单个字符。5x删除当前字符和后续4个字符。X删除前一单个字符。dw删除1个word以此类推 d5w d3b d2d d$。D从当前删除到最后相当于d$。回退u撤销上一个操作。U撤销整行修改。Ctrlr反向撤销与u相反。修改相当于删除后插入s删除当前字符并进入编辑模式。S删除当前行并进入编辑模式。c代表替换动作例如cw删除1个word并进入编辑模式。以此类推 c5w。C从当前删除到最后并进入编辑模式。替换r替换单个字符后回退到命令行模式。R替换模式一直替换直到按Ese返回命令行模式。vim 配置两个位置全局/etc/vimrc给所有用户设置一些默认值。用户~/.vimrc特定用户的个性化设置。常见的设置命令[ljycentos7 ~20:39:55]$vim~/.vimrcsetnumbersetshowcmdsetaits2setcursorcolumnsetcursorline# 参数说明# 显示行号 set number# 显示操作命令 set showcmd# ai自动缩进tstabspace使用2个空格代替 set ai ts2# 列高亮对齐显示 set cursorcolumn# 行高亮对齐显示 set cursorlineLinux 输入输出重定向Linux 输入输出重定向介绍上图显示了Unix/Linux 系统中进程PROCESS的输入输出流I/O Streams模型核心是 “标准流Standard Streams” 的概念用于描述进程如何与外部如键盘、屏幕、文件进行数据交互。标准流的核心组成stdin标准输入编号 0是进程接收输入数据的通道默认连接到键盘程序通过它读取用户输入如scanf、read等操作会从stdin获取数据。用法为仅读取只能从该通道输入数据到进程。stdout标准输出编号 1是进程输出正常结果的通道默认连接到终端屏幕程序的普通打印如printf、echo等会输出到stdout。用法为仅写入进程只能向该通道输出数据。stderr标准错误编号 2是进程输出错误信息的通道默认也连接到终端屏幕用于区分正常输出和错误提示如程序崩溃、逻辑错误的提示信息。用法为仅写入专门用于输出错误内容。3 号通道其他文件filename代表进程与自定义文件的交互通道非标准流没有默认连接需要手动指定文件。用法为读取和 / 或写入可根据需求对文件进行读、写操作。流程逻辑输入用户通过键盘向stdin输入数据进程从stdin读取这些输入。输出进程将正常结果写入stdout错误信息写入stderr两者默认都显示在终端同时进程也可通过 3 号通道与其他文件进行数据的读写交互。这种模型是 Unix/Linux 系统中 “一切皆文件” 思想的体现让进程能以统一的方式处理不同来源 / 目标的数据也为重定向Redirect等操作如把stdout输出到文件、把文件内容作为stdin输入提供了基础。[ljycentos7 ~20:57:09]$find/etc/-namepasswdfind: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够 /etc/pam.d/passwd find: ‘/etc/dhcp’: 权限不够 /etc/passwd.......# 查找 /etc 目录下 文件名是passwd的所有文件# 将找到的文件名清单覆盖写入到passwd.list文件中[ljycentos7 ~20:57:31]$find/etc-namepasswd1passwd.list#数字和符号中间一定不要隔开find: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够 find: ‘/etc/dhcp’: 权限不够 find: ‘/etc/selinux/targeted/active’: 权限不够 find: ‘/etc/selinux/final’: 权限不够 find: ‘/etc/lvm/archive’: 权限不够 find: ‘/etc/lvm/backup’: 权限不够 find: ‘/etc/lvm/cache’: 权限不够 find: ‘/etc/polkit-1/rules.d’: 权限不够 find: ‘/etc/polkit-1/localauthority’: 权限不够 find: ‘/etc/firewalld’: 权限不够 find: ‘/etc/audisp’: 权限不够 find: ‘/etc/audit’: 权限不够 find: ‘/etc/ipsec.d’: 权限不够 find: ‘/etc/libvirt’: 权限不够 find: ‘/etc/cups/ssl’: 权限不够 find: ‘/etc/sudoers.d’: 权限不够#发现只剩下权限不够的信息[ljycentos7 ~21:00:48]$catpasswd.list /etc/pam.d/passwd /etc/passwd#将多个文件合并为一个[ljycentos7 ~21:01:02]$cat/etc/fstab /etc/hostsallinone[ljycentos7 ~21:02:48]$catallinone## /etc/fstab# Created by anaconda on Tue Jul 14 10:25:55 2026## Accessible filesystems, by reference, are maintained under /dev/disk# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/centos-root / xfs defaults00UUID7cc93785-0a49-4e9a-8cb1-4a6aeb2dc551 /boot xfs defaults00/dev/mapper/centos-home /home xfs defaults00/dev/mapper/centos-swap swap swap defaults00127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6#将找到的文件名追加写入到passwd。list文件中追加不会覆盖之前的文件会在下面继续写入[ljycentos7 ~21:03:17]$find/etc-namepasswd1passwd.list find: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够.....[ljycentos7 ~21:05:02]$catpasswd.list /etc/pam.d/passwd /etc/passwd /etc/pam.d/passwd /etc/passwd#是在原有的信息下继续写入的之前的信息还在#将错误的信息丢弃[ljycentos7 ~21:05:30]$find-namepasswd2/dev/null#/dev/null黑洞设备写入的数据直接丢弃#作用屏蔽所有权限拒绝、无法访问目录的报错只输出找到的结果# 同时将错误信息、正确信息 覆盖 写入到相同文件[ljycentos7 ~21:08:57]$find/etc-namepasswdpasswd.list# 同时将错误信息、正确信息 追加 写入到相同文件[ljycentos7 ~21:12:13]$find/etc-namepasswdpasswd.list标准输出重定向到程序管道符|实现将上一个命令的输出作为标准输入传递给下一个命令。# 示例1 查看哪个man page 可以resize ext4文件系统大小# 搜索所有ext4相关手册并保存到ext4.man文件中[ljycentos7 ~21:12:41]$man-kext4ext4.man# 过滤ext4.man文件中含有resize的行[ljycentos7 ~21:37:12]$grepresizer ext4.man resize2fs(8)- ext2/ext3/ext4filesystem resizer# 以上两个命令和合并为一行[ljycentos7 ~21:37:49]$man-kext4|grepresizer resize2fs(8)- ext2/ext3/ext4filesystem resizer#两个命令合并简单话了我们的操作可以理解为搜索于ext4相关的手册把其中于resize有关的筛选出来**注意**管道符号后的命令必须能够接收标准输入例如ls不接收管道传递过来的标准输入。补充| 标准错误和标准输出同时传递给下一个命令作为下一个命令的标准输入。上一个命令错误管道符也会将这个错误的输出当成下一个命令的标准输入
延伸阅读

更多相关文章

2026/9/15 1:28:32

第十三站:深度学习模板

一、基础:类型模板参数 定义 用 class / typename 声明,代表一个数据类型,在实例化时传入类型名,参数占位符 T 代表任意类型(int、自定义类、指针等),实例化尖括号内必须填类型 举例&#xff1a…

2026/9/15 5:36:35

密码学课程设计实战:从BigInt到RSA与ElGamal的C++实现

简介:一份面向密码学课程设计的C/C源码与工程文件集合,围绕五个典型编程题目展开,涵盖凯撒与替换密码、对称加密、非对称加密、哈希函数与消息认证、数字签名等核心知识点,适合高校学生完成课程实验、撰写设计报告或复习备考。压缩…

2026/9/15 5:36:35

LeetCode 90 子集II去重详解:回溯算法同层剪枝与used数组对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 5:36:35

2026年向量数据库选型指南:10款主流方案对比与踩坑实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 5:36:35

Agent工作流本质:状态机契约与可验证执行

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 5:36:35

H5聊天系统WebSocket稳定连接与消息时序保障方案

简介:这是一套开箱即用的H5原生双端即时通讯系统源码,面向前端开发者、全栈工程师及中小型团队,用于快速搭建Web端聊天室、客服系统或社交类轻应用。资源包含完整IM核心功能实现(消息实时收发、用户在线状态、会话管理&#xff09…

2026/9/15 5:31:35

基于YOLOv8的智慧校园毕设:人脸识别与车辆检测双任务实战

简介:基于YOLOv8的智慧校园人脸识别与公路汽车检测项目,面向计算机视觉、毕业设计及智能交通应用开发者,提供一套完整可运行的源码与预训练模型。项目整合了人脸识别、车辆检测两大场景,包含Face_Main.py、Car_Track.py等核心脚本…

2026/9/15 4:54:30

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码