文件查看

cat显示文本

cat [option] ... [file] ...
cat -E a.txt # 显示$符号
cat -n a.txt # 对显示的每一行加行号
cat -b a.txt # 对非空行进行编号
cat -s a.txt # 对连续的空行就行压缩

tac倒叙显示

less分屏显示文本或stdin输出

space空格   # 向下翻屏
enter # 向下翻一行
q # 退出
/文本 # 搜索,搜索结果高亮显示
n # 向下找到
N # 向上查找 less是man命令的默认分页器

more 分页显示文本

more [options…] file...
1.默认情况下显示读取的百分比
2.读取完成自动退出
q # 退出
-d # 显示翻屏和退出的提示
# 空格翻一屏,回车翻一行

head 显示文本的前面的内容

head [option] … [file]…
默认显示前10行
1. -# 显示前#行
2. -n # 显示前#行
3. -c# 显示前#个字节

tail 显示文本的后面的内容

# tail  n. 尾,尾巴
tail [options]…[file]…
默认显示后10行
1. -# 显示后#行
2. -n # 显示后#行
3. -c# 显示后#个字符
4. -f 追踪显示文件fd新追加的内容,常用与日志监控
tailf 类似于tail-f当文件不增长时并不访问文件 '\n'也计算在字符内

cut切割

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

paste合并

paste  # v.粘贴
合并两个文件同行号的列到一行
paste[option]...[file]...
-d # 指定以# 分割,默认是tab键拼接
-s # 将所有的行按列显示

wc(word count)对文本进行统计

1.计数单词总数、行总数、字节总数和字符总数
2.可以对文件或者stdin中的数据进行统计 wc
行数 单词数 字节
-l # 只显示行数. line
-w # 字显示单词数. word
-c # 只显示字节数.
-m # 表示字符数,包含'\n'.
-L # 最长行字节的个数.

sort排序

sort [OPTION]... [FILE]...
1.把整理过的文本显示在stdout 不改变原始文件 默认按照字母排序
-r # reverse,倒叙
-R # 随机排序
-n # 按照数字排序
-f # 忽略大小写
-t # 指定分隔符
-k # 指定按照第#个字段,进行排序
-t 和 -k 绑定使用

uniq 删除重复行

# 相邻,完全一样

1.从输入中删除前后相接的重复的行
uniq [option] ...[file]
-c 显示相同数目出现的次数
-d 只显示重复行
-u 显示从没重复过的行

pv(page) uv(user)

diff 对比文件

diff filename filename
[root@centos ~]#diff f3 f4
12a11 # 行数对行数
< d # 多了什么

chown 修改所有者和组

修改文件的属主:chown

chown [option]…[owner][:[group]] file
[root@centos ~]#ll f1
-rw-r--r--. 1 root root 16 7月 6 00:36 f1
[root@centos ~]#chown test2 f1
[root@centos ~]#chown :test2 f1
[root@centos ~]#ll f1
-rw-r--r--. 1 test2 test2 16 7月 6 00:36 f1
命令中的冒号也可以用.替代
-R 递归
--reference 以谁作为模板
[root@centos ~]#ll a.sh
-rwxrwxrwx. 1 root root 30 7月 5 21:41 a.sh
[root@centos ~]#chown --reference=f1 a.sh
[root@centos ~]#ll a.sh
-rwxrwxrwx. 1 test2 test2 30 7月 5 21:41 a.sh

修改文件的属组 chgrp

chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... -R 递归

文件权限

9位表示权限

3组(3位表示一组)

  • 文件权限主要是对三类对象进行定义

    • owner 属主 u
    • group 属组 g
    • other 其他 o
    • all 全部 a
  • 每个文件针对每类访问者都定义了三种权限
    • r read
    • w write
    • x excut
  • 文件
    • r 可以使用文件查看类工具获取其内容
    • w 可以修改其内容
    • x 可以执行
  • 目录
    • r 可以使用ls 查看此目录的文件列表
    • w 可在此目录中创建文件,也可以删除此目录中的文件
    • x 可以使用ls查看,可以cd将进入

数字表示权限

chmod

  • 可以直接使用+-来设置
  • 也可以使用数字来设置
    • r 4
    • w 2
    • x 1

修改文件属性

  • chmod [OPTION]... OCTAL-MODE FILE... -R: 递归修改权限

  • chmod [OPTION]... MODE[,MODE]... FILE... MODE:

  • 修改一类用户的所有权限: u= g= o= ug= a= u=,g=

  • 修改一类用户某位或某些位权限 u+ u-g+g-o+o-a+a-+-

  • chmod [OPTION]... --reference=RFILE FILE...

    参考RFILE文件的权限,将FILE的修改为同RFILE

设定文件特殊权限

chattr +i 不能删除,改名,变更

chattr +a 只能追加内容

lsattr 显示特殊权限

vi

文本编辑器

vim vi的增强版本

打开文件

vim [option] … file...

+# 打开文件后,让光标处于第#行的行首

+/PATTERN 打开文件后,光标处于第一个被parrent匹配到的行首
-b file 二进制方式打开文件
-d file1 file2 对比多个文件
-m file 只读打开文件
-e 直接进入ex 模式(末行模式)
+# 直接定位到第#行

如果该文件存在,文件被打开并显示内容

如果文件不存在,当编辑后第一次存盘时创建它

vim的模式

按键行为是依赖于vim的模式

  • 命令模式:默认模式,移动光标,剪切/粘贴文本
  • 插入或者编辑模式:修改文本
  • 扩展命令模式(末行模式):保存、退出等

esc 键 退出当前模式

模式转换

  • 命令模式 —> 插入模式

    • i 在光标所在处输入
    • I 在当前光标所在行的行首输入
    • a 在光标所在处后面输入
    • A 在光标所在行的行尾输入
    • o 在当前光标所在行的下方打开一个新行
    • O 在当前光标所在行的上方打开一个新行
  • 插入模式 —> 命令模式
    • esc
  • 命令模式—> 末行模式
  • 扩展命令模式—>命令模式
    • esc enter
    • esc esc

关闭文件

  • 扩展命令模式

    • w保存
    • :q 退出
    • :q! 强制退出
    • :wq 保存退出
    • :x 保存退出
  • 命令模式
    • ZZ 保存退出
    • ZQ 不保存退出

扩展命令模式

  • 按“:”进入ex模式
  • 创建一个命令提示符:处于底部的屏幕左侧
  • 命令:
    • w 写(存)磁盘文件
    • wq 保存并退出
    • x 写入并退出
    • q 退出
    • q! 不存盘退出
    • r filename 读文件内容到当前文件中
    • w filename 将当前文件内容写入另外一个文件,另存为
    • !command 执行命令
    • r!command 读入命令的输出

命令模式光标跳转

  • 字符键跳转

    • h 左
    • l 右
    • j 下
    • k 上
    • # command 跳转#个字数的字符
  • 单词间跳转
    • w 下一个单词的次首
    • e 当前或者下一个单词的词尾
    • b 当前或者前一个单词的词首
    • #command 跳转#个单词
  • 当前页跳转
    • H 页首
    • M 中间
    • L 页底
    • zt 将光标所在行移动到屏幕顶端
    • zz 将光标所在行移动到屏幕中间
    • zb 将光标所在行移动到屏幕底端
  • 行首行尾跳转
    • ^ 跳转至行首的第一个非空白字符
    • 0 跳转至行首
    • $ 跳转至行尾
  • 行间移动
    • #G 扩展命令模式下:#跳转至第#行
    • G 最后一行
    • 1G gg 第一行
  • 句间移动:(.空格为一句)
    • ):下一句
    • (: 上一句
  • 段落间移动(空行)
    • } 下一段
    • { 上一段
  • 翻屏操作
    • ctrl+f 向文件尾部翻一屏
    • ctrl+b 向文件首部翻一屏
    • ctrl+d 向文件尾部翻半屏
    • ctrl+u 向文件首部翻半屏

命令模式操作

  • 字符编辑

    • x 删除光标处的字符
    • #x:删除#个字符
    • xp 交换光标所在处的字符与后面的字符
    • ~ 转换大小写
    • J 删除当前行后的换行符
  • 替换
    • r 替换光标所在处的字符
    • R 切换成替换模式
  • 删除
    • d 删除,可以结合光标跳转字符
    • d$ 删除到行尾
    • d^ 删除到非空行首
    • d0 删除到行首
    • dw: 删除一个单词
    • de: 向后删除一个单词
    • db 想前删除一个单词
    • \COMMAND
    • dd 删除光标所在的行
    • #dd 多行删除
    • dgg 删除到文件首部
    • dG 删除到文件尾部
    • D 相当于d$
  • 复制
    • y 复制,可以结合光标跳转字符
    • y$
    • y0
    • y^
    • ye
    • yw
    • yb
    • #command
    • yy 复制行
    • yG 复制到几位
    • ygg 复制到开头
    • #yy 复制多行
    • Y 复制整行
  • 粘贴
    • p 如果是整行,则粘贴当前行所在行的下方,否则,则粘贴在当前光标所在行的后面
    • P如果是整行,则粘贴当前行所在行的上方,否则,则粘贴在当前光标所在行的前面
  • 改变命令
    • c 修改后切换成插入模式
    • c$
    • c^
    • c0
    • cb
    • ce
    • cw
    • #command
    • cc 删除当前行并输入新的内容
    • #cc
    • C 删除当前光标至行尾,并切换成插入模式
  • 10ialex [esc] 粘贴10次alex
  • 查找
    • /pattern 从当前光标所在处向文件底部查找
    • ?pattern 从当前光标所在处向文件首部查找
    • n 与命令同方向
    • N 与命令反方向
  • 撤销更改
    • u 撤销最近的更改
    • #u 撤销之前多次更改
    • U 撤销光标落在这行后所有此行的更改
    • ctrl+r 重做最后的 撤销更改
    • . 重复前一个操作
    • n. 重复前一个操作n次

扩展命令模式

地址定界

:start,end

# 具体第#行

#,# 从左侧#表示起始行,到右侧#表示结尾行

#,+# 从左侧#表示的起始行,加上右侧#表示的行数 :2,+3 表示2到5行

. 当前行

$ 最后一行

$-# 倒数第#+1行

.,$-1相当于当前行到倒数第二行

% 全文

/pat1/,/pat2/ 从第一个被pat1匹配到的行开始,一直到第一次被pat2匹配到的行开始

#, /pat/

/pat/,$

使用方式 后跟一个编辑命令

  • d
  • y
  • w file :将范围内的行另存到指定的文件中
  • r file 在指定位置插入指定文件中的内容

查找并替换

  • 要使用地址定界进行查找和替换

  • linux之文件操作和权限的更多相关文章

    1. Unix/Linux常用文件操作

      Unix/Linux常用文件操作 秘籍:man命令是Unix/Linux中最常用的命令,因为命令行命令过多,我相信每个人都会经常忘记某些命令的用法,man命令就可以显示一个命令的所有选项,参数和说明, ...

    2. qt ui程序使用Linux的文件操作open、close (转)

      原文地址:qt ui程序使用Linux的文件操作open.close 作者:kjpioo 提出这个问题是因为在qt的QWidget类型的对象中,close()函数会和QWidget::close()冲 ...

    3. LINUX之文件操作权限讲解

      r(Read,读取):对文件而言,具有读取文件内容的权限:对目录来说,具有浏览目 录的权限. w(Write,写入):对文件而言,具有新增.修改文件内容的权限:对目录来说,具有删除.移动目录内文件的权 ...

    4. Linux C 文件操作,系统调用 -- open()、read() 和 标准I/O库 -- fopen()、fread()

      函数汇总: open().write().read().close() fopen().fwrite().fread().fclose() 一.什么是文件 在讲述文件操作之前,我们首先要知道什么是文件 ...

    5. Linux中文件夹访问权限不足

      经常操作Linux服务器,远程访问会遇到403问题,本篇讲述nginx下文件权限的修改. 1.命令修改该文件夹的权限 chmod -R 755 /usr/local/....   文件夹的路径 2.修 ...

    6. Linux之文件(目录)默认权限、特殊权限与隐藏权限

      文件默认权限 从Linux之用户组.文件权限详解了解到文件与目录的基本权限管理,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask. vbird@Ubunt ...

    7. linux文件管理 文件操作

      文件操作 pwd 命令 该命令的英文解释为print working direction(打印工作目录).输入pwd命令,Linux输出当前目录. cd 命令 用来改变所在目录 cd / 转到根目录 ...

    8. Linux C 文件操作函数(~上善止水~)

      翻翻笔记,整理一下 C 语言中的文件操作函数 ~~~~~~,多注意细节,maybe 细节决定成败~ 1. fopen /* fopen(打开文件) * * 相关函数 open,fclose * * 表 ...

    9. 【Linux】文件操作系统调用

      一. 文件描述符 在Linux下使用文件描述符来表示设备文件和普通文件.文件描述符是一个整型的数据,所有对文件的操作都通过文件描述符实现.文件描述符的范围是0~OPEN_MAX,系统中有3个已经分配的 ...

    随机推荐

    1. shodan使用

      简介 与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道.Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联网关联的服务器.摄像头.打印机.路由器等等.每个月 ...

    2. Angular与Vue

      最近在考虑对前端js框架的选择 根据前人的总结,就总结一下 Angular与Vue 的特点与区别 速度/性能 虽然 Angular 和 Vue 都提供了很高的性能,但由于 Vue 的虚拟 DOM 实现 ...

    3. Html中使用Cookie取值赋值

      //设置Cookie function setCookie(name, value) { var Days = 1; var exp = new Date(); exp.setTime(exp.get ...

    4. 【构造 meet in middle 随机 矩阵树定理】#75. 【UR #6】智商锁

      没智商了 变式可见:[构造 思维题]7.12道路建设 当你自信满满地把你认为的正确密码输入后,时光机滴滴报警 —— 密码错误.你摊坐在了地上. 黑衣人满意地拍了拍你的肩膀:“小伙子,不错嘛.虽然没解开 ...

    5. IntelliJ IDEA 项目同步至GitHub

      第一步:下载对应电脑版本的git客户端,安装好,傻瓜式下一步就行. 第二步:在idea里设置github地址和git地址 可以点击Test测试一下是否配置正确,如果提示成功,就是配置OK.如果失败,检 ...

    6. linux LVM逻辑卷管理

      什么是LVM LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. ...

    7. vue基本语法 JS补充

      目录 一.VUE框架入门 1. vue框架的优势 二.VUE框架的基本使用 1. vue的引用 2. vue的基本语法结构 2. 插值表达式 3. 文本指令 (1)v-text (2)v-html ( ...

    8. js 获取两个数组的交集,并集,补集,差集

      https://blog.csdn.net/piaojiancong/article/details/98199541 ES5 const arr1 = [1,2,3,4,5], arr2 = [5, ...

    9. jpa单向一对多

      单向一对多是一个类中的一条记录可对应另一个类的多条记录: 比如一个部门可对应多个员工:   jpa中的实现步骤:     one-to-many的one类中添加一个many类类型的set;比如部门类D ...

    10. JVM(六),java内存模型

      六.java内存模型 1.线程独占部分 (1)程序计数器 (2)Java虚拟机栈 (3)本地方法栈 (4)递归为什么会引发java.lang.StackOverFlowError异常吗 2.线程共享部 ...