热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux系统入门之管道、vim用法补充

1.管理输入输出在系统中普通用户执行findetc-namepasswd,由于用户权限,出现以下情况:在Linux系统中,

1.管理输入输出

在系统中普通用户执行find /etc -name passwd,由于用户权限,出现以下情况:

在Linux系统中,正确输出的编号为1,错误输出编号为2

因此&#xff0c;以上述命令为例,阐述>,2>,&>,> ,2>, &>,>file,>>,2>>,&>>,以及<<的相关用法。

(1) find /etc -name passwd > file1   定向正确输出

(2) find /etc -name passwd 2> file2   定向错误输出

(3) find /etc -name passwd &>file3   定向所有输出

(4)> file   清空file

注意&#xff1a; 

    >, 2> ,&>  都会覆盖源文件内容

    用 2>&1 可以把错误的输出编号由2变成1&#xff0c;反之则不行

上面显示输出的内容正是未导入文件的残余部分

            >/dev/null      表示屏蔽正确内容输出

           2>/dev/null      表示屏蔽错误内容输出

例如&#xff1a;在student用户下查找/etc下passwd文件&#xff0c;屏蔽错误输出

下面的>>,2>>,&>>命令的不同在于&#xff0c;只是追加文件内容&#xff0c;并不会覆盖

 find /etc -name passwd >>file     追加正确输出

 find /etc -name passwd 2>> file     追加错误输出

 find /etc -name passwd &>> file     追加所有输出

2.管道的作用
    “|” 管道的作用是把前一条命令的输出变成后一条命令的输入

注意&#xff1a;
    管道只允许正确输出通过
    通过管道的输入将会变成输入&#xff0c;而变成输入的这些输出是会被第二条命令处理的
    如果需要保存输出内容&#xff0c;那么需要复制一份输出&#xff0c;用到的命令是“tee”

例如&#xff1a;ls /bin | wc -l    统计ls /bin 命令输出的行数

用tee命令复制date命令的输出到file中&#xff0c;并统计输出行数

3.输入重定向命令<<

<<之后的字符表示开始&#xff0c;当再次出现相同的字符时停止输入&#xff0c;此字符可自定义

用到改密码中十分方便

常规改密码操作

使用该命令修改密码

4.vim命令补充

&#xff08;1&#xff09;在vim的命令模式下可以配置vim的工作方式

:set nu        行号添加

:set nonu           取消行号



:set mouse&#61;a        添加鼠标选择 

:set cursorline     行线显示

注意&#xff1a;以上设定都是临时

如果要永久设定以上方式&#xff0c;用法如下&#xff1a;

vim /etc/vimrc 此文件为vim的配置文件&#xff0c;在此文件最后加入以上参数&#xff0c;即可。

 

然后退出并保存&#xff0c;即可。

建议&#xff1a;当文件内容更改信息不确定正确与否的时&#xff0c;应该先备份要所更改的文件&#xff01;&#xff01;&#xff01;

然后再打开vim &#xff0c;行数可见&#xff0c;并且是永久的&#xff0c;以上命令均可&#xff0c;不再赘述。

&#xff08;2&#xff09;vim命令模式下关键字搜索

/关键字    ###后面的关键字会被搜索然后高亮显示出来

n向下匹配

N向上匹配

&#xff08;3&#xff09;vim命令模式下字符的管理

** 字符的复制

yl         复制一个字母

y3l       复制3个字母

yw       复制一个单词

yy        复制一行

y3y      复制3行

p          复制完成后按“P”粘贴

实验前文本文件&#xff1a;

经过上述指令后的文本文件结果为&#xff1a;

** 字符的删除

dl        删除一个字母

d3l      删除3个字母

dw      删除一个单词

d3w    删除3个单词

dd       删除一行

d3d     删除3行

实验前文本&#xff1a;

经过上述删除指令后的文件&#xff1a;

** 字符的剪切

cl        剪切一个字母

c3l      剪切3个字母

cw      剪切一个单词

c3w    剪切3个单词

cc       剪切一行

c3c     剪切3行

Esc ---> p剪切过后会进入到插入模式&#xff0c;在执行粘贴动作时一定要退出插入模式

剪切指令与复制删除类似&#xff0c;不再赘截图

&#xff08;4&#xff09;vim的可视化模式

在命令模式下按“ctrl&#43;v”进入到可视模式

在可视模式下可以区域选择字符

可视模式下批量添加字符

*>> Ctrl&#43;v 选中要加入字符所在列

*>> 按“Shift &#43;I”进入插入模式&#xff0c;写入要加字符

*>> 按Esc

 

&#xff08;5&#xff09;批量修改字符

:%s/原有字符/替换后字符  只替换每一行中出现的第一个原有字符

:%s/原有字符/替换后字符/g  替换所有

:1,5s/原有字符/替换后字符/g  替换1-5行

&#xff08;6&#xff09;vim的分屏功能

ctrl&#43;w s 上下分屏

ctrl&#43;w v 左右分屏

ctrl&#43;w c 关闭光标所在屏幕

ctrl&#43;w       上下左右 光标移动到指定屏幕

:sp file2    同时编辑当前文件和file2

vimdiff      对比两个文件的不同

&#xff08;7&#xff09;vim光标移动

**在命令模式下

:数字   移动到指定的行

G        文件最后一行

gg       文件第一行

i          光标所在位置插入

I          光标所在行行首

a         光标所在字符的下一个位置

A         光标所在行行尾

o         光标所在行下一行

O        光标所在行上一行

s         删除光标所在字符插入

S        删除光标所在行插入

&#xff08;8&#xff09;vim的退出模式

:q        当用vim打开文件但没有对字符作任何操作时可直接退出

:q!       当用vim打开文件并对字符作操作&#xff0c;放弃所有操作退出

:wq      保存退出

:wq!     强行保存退出&#xff0c;对超级用户及文件所有人生效

&#xff08;9&#xff09;vim手册

vimtutor     打开vim的手册

:q               退出vimtutor

 


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文详细介绍了如何规划和部署一个高可用的Etcd集群,包括主机配置、软件安装、防火墙设置及集群健康检查等内容。通过合理的硬件配置和网络规划,确保Etcd集群在生产环境中的稳定运行。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 如何在PHPCMS V9中实现多站点功能并配置独立域名与动态URL
    本文介绍如何在PHPCMS V9中创建和管理多个站点,包括配置独立域名、设置动态URL,并确保各子站能够正常运行。我们将详细讲解从新建站点到最终配置路由的每一步骤。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
author-avatar
残伤贱爱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有