cat 显示文本

 -E 显示结尾的$符
 -n 对显示的每一行进行编号
 -b 对非空行进行编号
 -s 对连续的空行进行压缩

tac 倒序显示

less 分屏显示文本

向下翻一屏 空格

向下翻一行 回车

q 退出

/ 文本 搜索文本

n 向下查找 N向上查找

less 是man命令的默认分页器

more 分页显示文件

默认情况下显示读取的百分比

读取完成自动退出

q 退出

-d 显示翻屏和退出的提示

head 显示文件的前面的内容

默认显示前10行

-# 显示前#行

-n # 显示前#行

-c # 显示前#个字符

tail 显示文件的后面的内容

默认显示后10行

-# 显示后#行

-n # 显示后#行

-c # 显示后#个字符,换行符也是一个字符

cut 切割

 cut OPTION... [FILE]...
 -c 按照字符切割
 tail passwd |cut -c2-5
 -d 指定切割符,默认是tab
 -f # 显示第#个字段
 #,#,# 显示离散的多个
 #-# 表示连续的
 1-5,7 可以结合使用
 tail passwd |cut -d: -f1-5,7
 tail passwd |cut -d: -f1-5
 tail passwd |cut -d: -f1,3,5

paste 合并

默认是相同行合并到一起,默认是tab键

-d 执行间隔符

-s 将所有的行按照列来显示

paste a.txt b.txt

paste -d: a.txt b.txt

paste -s a.txt b.txt

wc 用来对文本进行统计

 [root@localhost test]#wc b.txt 
  4  5 20 b.txt
 行数 单词数 字节数 文件名
 -l 只显示行数
 -w 只显示单词数
 -c 只显示字节数
 -m 只显示字符数
 -L 显示文件中最长行的长度

sort 排序

 Usage: sort [OPTION]... [FILE]...
  or:  sort [OPTION]... --files0-from=F
 默认是按照字母排序
 -r 倒序
 -R 随机排序
 -n 按照数字排序
 -f 忽略大小写
 -t 指定分隔符
 -k # 指定按照第#个字段进行排序
 sort -t: -k3 passwd
 sort -nt: -k3 passwd

uniq合并相同的行

  • 相邻

  • 完全一样

 -c 显示相同的行出现的次数
 -d 只显示重复的行
 -u 显示从没有重复过的行
 cut -d" " -f4 d|sort |uniq -c

pv page

uv user

diff 对比文件

 [root@localhost test]#echo "123" >> f
 [root@localhost test]#diff d f
 11a12
 > 123
 [root@localhost test]#echo "1234" >> d
 [root@localhost test]#diff d f
 12c12
 < 1234
 ---
 > 123

chown 用来修改所有者和组

 Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
  or:  chown [OPTION]... --reference=RFILE FILE...
 chown wu c 修改属主
 chown wu:wu c 修改属主和属组
 chown root.root c
 chown :wu c 直接属组
 chown -R wu test 递归修改
 chown --reference=c d

chgrp 修改文件的属组

 Usage: chgrp [OPTION]... GROUP FILE...
  or: chgrp [OPTION]... --reference=RFILE FILE...

权限

9位表示权限

3组

3位表示一组

--- --- ---

  • 文件权限可以读以下定义

    • 属主 u

    • 属组 g

    • 其他 o

    • 全部 a

  • 每个文件的权限

    • r 读

    • w 写

    • x 执行

  • 对于文件来说

    • r 可以使用文本查看工具来查看里面的内容

    • w 可以修改文本的内容

    • x 执行可以直接./file

  • 对于目录来说

    • r 可以使用ls等文件查看的命令查看

    • w 可以创建文件,也可以删除

    • x 可以cd进入

  • 数字表示

    --x

    001 1

    -w-

    010 2

    r--

    100 4

    rw-

    110 6

    rwx

    111 7

    r-x

    101 5

    -wx

    011 3

修改权限

  • 可以直接修改某一类用户的权限

 chmod u+x c 增加
 chmod u-x c 删除
 chmod u=r c 直接赋值

shabang ---》 解释器

  • 可以直接使用数字表示

  • 可以基于某个文件来修改

设定特殊权限

chattr +i 不能删除、不能修改、不能变更

lsattr 查看属性

chattr +a 只能追加数据

vi/vim

打开文件

vim [option] .... file....

 +# 直接定位到第#行
 +/pattern 打开文件后,直接定位到第一个匹配到patter的地方
 -b 以二进制方式打开文件
 -d file1 file2 对比打开多个文件
 -m file 只读方式打开文件
 -e 直接以末行模式打开

模式

  • 命令模式:可以光标,可以粘贴、复制文本,默认

  • 插入模式或者编辑模式:可以修改文本

  • 末行模式(扩展命令模式):保存、退出等等

  • esc 退出当前的模式

模式之间切换

  • 命令模式- 插入模式

    • i 光标所在处插入

    • I 在当前光标所在的行的行首插入

    • a 光标所在位置的后面插入

    • A 在当前光标所在的行尾插入

    • o 在当前光标所在的行的下一行(新开)插入

    • O 在当前光标所在的行的上一行(新开一行)插入

  • 插入模式- 命令模式

    • esc

  • 命令模式 -- 末行模式

    • :

  • 末行模式 -- 命令模式

    • esc esc

    • esc enter

关闭文件

  • 末行模式

    • :w 保存

    • :q 退出

    • :wq 保存并退出

    • :q! 强制退出

    • :wq!强制保存退出

    • :x 保存并退出

  • 命令模式

    • ZZ 保存退出

    • ZQ 不保存退出

扩展命令行模式

  • 按":" 来进入

  • w 写入

  • q 退出

  • wq 保存并退出

  • q! 强制退出

  • x 保存并退出

  • r file 读入文件

  • w file 另存为

  • !command 直接执行命令

  • r!command 直接把命令的结果写到文件中

命令模式跳转

  • 字符之间跳转

    • l 向右

    • h 向左

    • j 向下

    • k 向上

  • 单词间跳转

    • w 下一次的单词的词首

    • e 当前词的词尾或者下一个单词的词尾

    • b 当前词的词首或者上一词的词首

    • # command 直接跳转#个单词

  • 页面间跳转

    • H 页首

    • L 页尾

    • M 页中

    • zt 将光标所在行移动到屏幕的顶端

    • zb 将光标所在行移动到屏幕的底部

    • zz 将光标所在行移动到屏幕的中间

  • 行首行尾之间跳转

    • ^ 跳转到当前光标所在行的第一个非空字符

    • 0(数字) 跳转到行首

    • $ 跳转到行尾

  • 行间移动

    • #G 跳转到第#行

    • 在命令扩展模式下,直接:# 跳转到对应的行

    • G 直接到最后一行

    • gg 跳转到第一行

    • 1G 跳转到第一行

  • 段落之间跳转(空行)

    • { 上一段

    • } 下一段

  • 翻屏

    • ctrl+f 向文件尾部翻一屏

    • ctrl+b 向文件首部翻一屏

    • ctrl+d 向文件尾部翻半屏

    • ctrl+u 向文件首部翻半屏

命令模式编辑

  • 字符编辑

    • x 删除光标所在处的字符

    • #x 删除#个字符

    • xp 将光标所在处的字符和后面的字符互换位置

    • ~ 将光标所在的位置大小写互换

    • J 删除当前行的换行符

  • 替换

    • r 替换当前光标所在处的字符

    • R 进入替换模式

  • 删除

    • d 删除,需要跟字符跳转结合

    • d$ 删除到行尾,删除当前位置

    • d0 删除到行首,当前位置不删除

    • d^ 删除到非空字符

    • dw 删除一个单词

    • de 向后删除一个单词

    • db 向前删除一个单词

    • dd 删除正行

    • # dd 删除#行

    • dG 删除到结尾

    • dgg 删除到开头

    • D 相当于d$

  • 复制

    • y,也可以跟字符跳转结合

    • y$

    • y0

    • y^

    • yw

    • ye

    • yb

    • yy 一正行

    • #yy 复制#行

    • yG 复制到结尾

    • ygg 复制到开头

    • Y 复制整行

  • 粘贴

    • p 如果是整行的话,则粘贴到当前光标所在行的下一行,否则粘贴到光标的后面

    • P 如果是整行的话,则粘贴到当前光标所在行的上一行,否则粘贴到光标的前面

  • 改变,删除以后并将模式切换成插入模式

    • c 可以跟光标的跳转做结合

    • c$

    • c0

    • c^

    • cw

    • ce

    • cb

    • #command

    • cc 删除正行并插入

    • C 相当于c$

  • #[i|I|a|A|o|O]string esc 将string粘贴#次

  • 搜索

    • /pattern 从当前光标往下搜索

    • ?pattern 从当前光标往上搜索

    • n 同命令相同的方向

    • N 同命令相反的方向

  • 撤销

    • u 撤销最近的修改

    • # u 撤销最近的#次修改

    • ctrl +r 撤销之前的撤销动作

    • . 重复最后一次操作

    • #. 最后一次操作重复执行#次

命令扩展模式

地址定界

:start,end

# 具体到第#行

#,# 第#行到第#行

#,+n 从第#开始,到第#+n行结束 1,+2 ==>1,3

. 表示当前光标所在的行

$ 表示最后一行

$-1 表示倒数第二行

% 表示全文

/pat1/,/pat2/ 从第一个pat1匹配到的地方,到pat2第一次匹配到的地方

#,/pat/ 从第#行开始,到第一次被pat匹配到的地方

/pat/,$ 从第一次被pat匹配到的到结尾

可以使用的命令

  • d

  • y

  • w file 重新另存为文件

  • r file 将文件的内容写到匹配到的下一行

查找并替换

  • 要使用地址定界来进行查找

  • s 在扩展命令模式下使用为替换

  • 格式: s/要查找的内容/要替换的内容/装饰器

  • 要查找的内容可以使用正则

  • 替换的内容不能为正则

    • 可以为分组:%s/(nfs.*)/#\1/

    • \1表示第一个分组内的内容

    • \2

    • \3

    • & 可以代表前面匹配到的内容

  • 装饰器

    • i 忽略大小写

    • g 表示全部替换

    • gc 每一次替换之前都要询问是否替换

  • 分隔符还可以使用

    • @

    • #

可视化

  • v 面向字符

  • V 面向行的

  • ctrl +v 面向块

  • 可以结合所有的跳转键进行结合

  • 对突出显示部分可以使用删除、复制、变更、过滤、替换、另存为等等

打开多个文件

vim file1 file2 file3

:next 下一个

:prev 上一个

:first 第一个

:last 最后一个

:qall 退出全部

:wall 保存全部

:wqall 保存并退出全部

:xall 保存并退出全部

使用多个窗口

vim -o 水平分隔

vim -O 垂直分隔

切换ctrl+w 加上上下左右箭头

单文件切割

ctrl+w,s 水平切割

ctrl+w,v 垂直切割

ctrl+w,q 取消相邻的窗口

ctrl+w,o 取消全部窗口

vim工作特性

配置文件

  • 全局有效:/etc/vimrc

  • 对当前用户有效: ~/.vimrc

  • 行号:set nu 取消 set nonu

  • 忽略大小写(搜索) set ic 取消set noic

  • 自动缩进(同上一行) set ai 取消set noai

  • 设置高亮显示(搜索到的内容) set hls 取消set nohls

  • 语法高亮 syntax on 取消 syntax off

  • 文件格式

    • windows格式 set fileformat=dos

    • unix set fileformat=unix

  • 添加标识线: set cul 取消标识线 set nocul

  • 获取帮助: set all

  • 获取帮助信息:

    • :help

    • :help topic

    • vimtutor

cat 显示文本、less 分屏显示文本、more 分页显示文件、head 显示文件的前面的内容、cut 切割、paste合并、wc用来对文本进行统计、sort排序、权限、关闭文件、vim的使用的更多相关文章

  1. 转: Eclipse 分屏显示同一个文件

    Eclipse 分屏显示同一个文件   场景 : 某个类很大,可能有数千行.当你想要将类开头部分与中间或者靠后的部分进行对比时,请follow如下步骤: Window -> Editor -&g ...

  2. Eclipse 分屏显示同一个代码文件

    描述: 今天在使用Eclipse开发的时候不知按错哪个键,出现编辑框分屏显示同一个代码,由于之前没有使用过这一功能,所以就去查了一下,原来是Eclipse的分屏功能. 快捷键: 方式一:Window ...

  3. vim 分屏显示

    我用vim打开一个文件后,想同时打开另一个文件,就像windows中打开两个记事本一样,因此需要分屏显示 首先用vim打开一个文件 vim file1 输入命令[Esc] :sp file2 分屏打开 ...

  4. Vi编辑器下使用分屏显示【已自己验证所有】

    :new 水平分割出一个新窗口 :vnew,:vne 垂直分割出一个新窗口 :new+文件路径/文件名; 在新的水平分屏中 载入/新建 文件.[文件存在则载入,不存在则在指定的路径新建,下同] :vn ...

  5. wpf 制作播放视频的屏保程序、而且能分屏显示

    这个程序用到了WPF里  “visual_Brush”(主要是为了实现分屏显示) , “UserControl” ,这两个知识点: 在屏保状态下播放指定文件夹下的视频,而且能分屏显示: 把编译好的屏保 ...

  6. Windows 窗体的自适应分辨率、分屏显示、开机自启动

    前言 这里所说的针对Winform.WPF 都适用.开机自启动对于控制台的也可以. 还是从项目实践中得来的,在这里记录下来. 对于自适应.分屏显示,在以前感觉应该比较高大上的问题,会比较难.在经过这次 ...

  7. c# Winform 开发分屏显示应用程序

    分屏显示即可把一台主机内运行的多个程序分别显示在不同的两个(或多个)屏幕上.目前市面上主流的显卡都支持分屏显示(显示双屏幕),如果需要显示2个以上的屏幕,则应使用“拖机卡”类的硬件. 设置分屏显示的两 ...

  8. c# 远程监控(4) 接收端 RTP包重组 分屏显示

    我们在上一期使用RTP协议,并进行了配置,打包了视频数据,这一期我们就对发送的数据进行重组,并显示在接受端上.最后对其进行扩展,支持多客户端视频发送,并在接收端分屏显示.完成远程监控的模拟. 先来个效 ...

  9. (转载)mysql分屏显示结果

    (转载)http://blog.csdn.net/wylkeke/article/details/7280645 linux机器: 在mysql命令行输入pager more就可以分屏显示结果了,取消 ...

随机推荐

  1. 金融计算的开源库——QuantLib 学习入门

    本文在Creative Commons协议下发布. 简介 瞬息万变的金融市场开发出了太多的金融产品,产生了太多的计算问题,这对于 Fintech 来讲:无论是计算能力上的,还是软件设计上的是一个巨大的 ...

  2. C# WPF聊天界面(3/3)

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. C# WPF聊天界面(3/3) 阅读导航 本文背景 代码实现 本文参考 1.本文背景 系列文章 ...

  3. Spring Boot源码(四):Bean装配

    为了演示Spring中对象是如何创建并放到spring容器中,这里新建一个maven项目: 其中pom.xm文件中只引入了一个依赖: <dependencies> <dependen ...

  4. react typescript react-router

    typescript 1 connected-react-router

  5. PhpCms V9调用指定栏目子栏目文章的方法

    PhpCms V9调用指定栏目子栏目文章的方法 第一种,直接写父类id {pc:content action="lists" catid="父类id" num= ...

  6. Python_3

    """ Function_1: 寻找水仙花数. 水仙花数也被称为超完全数字不变数.自恋数.自幂数.阿姆斯特朗数, 它是一个3位数,该数字每个位上数字的立方之和正好等于它本 ...

  7. iframe中子父页面跨域通讯

    目录 #跨域发送信息 #跨域接收信息 #示例Demo 在非跨域的情况下,iframe中的子父页面可以很方便的通讯,但是在跨域的情况下,只能通过window.postMessage()方法来向其他页面发 ...

  8. 如何开发自己的第一个 Serverless Component

    前言 上一篇 基于 Serverless Component 的全栈解决方案 介绍 Serverless Component 是什么和如何使用 Serverless Component 开发一个全栈应 ...

  9. java学习心得2

    首先是一个生成随机数的算法 这里就需要设置种子x0,种子设置好之后就设置a,c,m,这里mod用于取余,我自己写的是这样的 这个程序可生成1000个随机数,这种随机数的生成是有上限的,可以保证在一定数 ...

  10. npm ERR! Cannot read property 'match' of undefined

    在Vue项目中运行npm i命令时直接提示npm ERR! Cannot read property 'match' of undefined错误了,此时需要把package-lock.json文件删 ...