发布时间:2026/7/22 2:26:48
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/7/20 19:26:50

第十三站:深度学习模板

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

2026/7/22 2:23:18

MySQL命令行操作与数据库管理实战指南

1. MySQL命令行基础:从零开始的数据库操作 MySQL作为最流行的开源关系型数据库之一,其命令行工具是每位开发者必须掌握的技能。无论是日常开发还是面试准备,熟练使用MySQL命令行都能让你事半功倍。让我们从最基础的连接操作开始。 1.1 连接…

2026/7/22 2:23:18

最新量化入门方法,先从概念规则和简单实现开始

入门量化时,最容易误判的是起点。很多人以为要先掌握完整技术,才能开始把交易规则写成 Python。其实更自然的路径,是先理解基本概念,再把手工规则说清,最后做一个简单实现。代码要回到规则本身概念帮助读者知道自己在表…

2026/7/22 2:23:18

Google 爬虫管理:抓取预算、404 与重定向

Google 爬虫管理:抓取预算、404 与重定向 一、抓取预算:Google 每天只爬你这么多页二、日志分析:上帝视角看 Google 怎么爬你三、404 页面:软 404 vs 硬 404硬 404软 404 四、自定义 404 页面与重定向重定向链自查三步走 五、爬虫…

2026/7/22 2:23:18

iPhone省电优化全攻略:延长续航的关键设置

1. iPhone省电优化的核心思路作为一名长期使用iPhone的深度用户,我发现在日常使用中电池续航是最影响体验的因素之一。很多人抱怨iPhone用久了会变卡顿、耗电快,其实这往往是因为忽略了一些系统自带的优化功能。经过多年实测,我发现通过合理设…

2026/7/22 2:18:18

真实攻防复盘:企业网站挂马入侵全过程拆解(从入侵到溯源清理)

📌 前言绝大多数新人只学靶场漏洞,从未见过真实入侵完整链路。真实黑客攻击不是单一漏洞点,而是漏洞利用→上传木马→权限维持→内网扩散→数据窃取的完整闭环。本文以一次真实企业官网挂马入侵事件做全流程复盘,带技术细节、阶段…

2026/7/20 6:33:00

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/21 20:02:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…