Linux简介(3)--文件及文件操作命令

文件类型

Linux下的所有东西(包括内存、网卡、外部设备如键盘等)都可以看作文件,Linux将 文件分为以下五种类型。类似于windows中 .mp4 、.avi 、 .txt 文件等。

  • 普通文件 ‘ - ’
  • 目录文件 ‘ d ’
  • 管道文件 ‘ p ’
  • 链接文件 ‘ l ’
  • 设备文件(块设备 ‘ b ’ 、 字符设备 ‘ c ’ 、套接字设备 ‘ s ’)
    Linux上不以文件的扩展名区别文件类型,而是在文件属性中有一列专门记录文件类型。要查看这些文件的类型需要通过这样一个命令:ls -l 或 ll 并且此命令可以将隐藏文件也显示出来。
    在这里插入图片描述
    这里各个字段分别表示的是:
  • 第一部分:文件类型、权限
  • 第二部分:文件个数。如果是文件,那数目为1,如果是目录的话,它的数目就为该目录中的文件个数了。
  • 第三部分:表示该文件或目录的拥有者。
  • 第四部分:表示文件所属的组(group)。
  • 第五部分:表示文件大小。文件大小用byte来表示。
  • 第六部分:表示创建文件日期。
  • 第七 部分:文件名。

文件权限

文件权限即限制该用户可以对文件进行怎么样的操作。

  • r 代表读权限 值:4
  • w 代表写权限 值:2
  • x 代表执行权限 值:1
  • d 代表无权限 值:0
    在这里插入图片描述
  • u:表示文件属主的访问权限,文件是谁建立的,属朱就是谁。
  • g:表示文件同组者的访问权限,同组者由用户进行分组。
  • o:表示其他用户的访问权限,即和创建文件的用户不在同一个组。

修改文件权限

文字设定法

命令:chomd + u(或g或o或a(a表示给所有人进行权限修改))+ 增加权限(加号)/减去权限(减号) 文件路径/文件名
例如:chomd u+x c.txt 表示给c.txt文件的属主加上执行权限。相反 chomd u-x c.txt 就是减去权限。
在这里插入图片描述

数字设定法

有时我们需要修改的文件权限较多,这时继续使用文字设定命令会显得有些麻烦,于是我们可以采取数字设定法。
在这里插入图片描述

修改文件属组

命令:chgrp + 新修改的属组 + 文件名(此操作需要管理员权限)
在这里插入图片描述

修改文件属主

命令:chown + 新修改的属主 + 文件名(需管理员权限)
在这里插入图片描述
chown 命令也可以用来同时修改文件属主及属组
命令:chown + 新属主:新属组 + 文件名
在这里插入图片描述
如果要操作的是目录文件,我们可以在chown后加上 -R 参数。

文件操作

查看文件

ls 查看当前目录下的文件

  • -a 显示所有的文件及目录(ls内定不会将文件名或者目录名称开头为“ . ”的视为隐藏文档,不会列出)
  • -l 除文件名外,亦将文件形态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同-a ,但布列出" . “(目前目录)及” … "(父目录)
  • -F 在列出的文件名称后加一个符号,如可执行档则加" * " ,目录则加 " / "
  • -R若目录下有文件,则目录之下的文件也依序列出
    创建文件
  • touch + 文件路径/文件名 创建普通文件 文件路径可以是相对路径也可以是绝对路径。
  • mkdir + 目录路径/目录名 创建目录文件

删除文件

删除普通文件

rm + 文件路径/文件名

删除目录文件

删除空目录:

  • rmdir + 目录路径/目录名
    删除非空目录
  • rm -r + 目录路径/目录名 -r 是rm的参数
    其他参数:
  • -f, --force 忽略不存在的文件,从不给出提示。
  • -i, --interactive 进行交互式删除
  • -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
  • -v, --verbose 详细显示进行的步骤
  • –help 显示此帮助信息并退出
  • –version 输出版本信息并退出
    注意!!!: rm -rf * 和rm -rf /* 一般是禁用的。
  • rm -rf * 表示强制删除当前目录下的所有文件
  • rm -rf /* 表示强制删除从根目录起始下所有文件,包括系统文件,一旦执行,要想恢复就只能重装系统了。

文件复制与重命名

复制粘贴 : cp
语法:cp -参数 原文件 新文件

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件
    在这里插入图片描述
    移动或重命名文件:mv
    命令 :mv -参数 原文件 新文件(或要移动到的某个目录)
  • -i :若指定目录已有同名文件,则先询问是否覆盖旧文件。
  • -f:在mv操作要覆盖某已有的目标文件时不给任何指示

编辑文件

可以使用vi 命令来操作编辑文件
安装vim命令:sudo apt-get install vim-gtk

压缩、打包

我们使用tar进行打包或者解包,使用gzip进行文件压缩。

打包

将文件打包或者解包

  • c 创建包文件
  • f 指定目标为文件而不是设备
  • v 显示详细过程
  • t 显示包中的内容而不释放
  • x 释放包中的内容
  • z GUN 版本新加,使得tar有压缩和解压的功能

在这里插入图片描述
tar解包过程:
在这里插入图片描述

压缩

gzip压缩的过程:
在这里插入图片描述
gzip解压的过程:
在这里插入图片描述
下图为一步打包压缩与压缩包一步解压的过程:
在这里插入图片描述

文件查看命令

文本查看

cat
查看文件内容
在这里插入图片描述

合并文件
在这里插入图片描述

往文件中写入数据,ctrl + d 是结束输入
在这里插入图片描述

more
当一个文件的内容超过一个屏幕能显示的行数,使用more可以分屏显示文件内容
使用方式: more filename
less
文本内容查看器,查看文件内容,但是文件内容不会显示到界面上
head
显示文件前n行的内容
在这里插入图片描述

tail
显示文件后n行的内容
在这里插入图片描述

数据统计

wc:统计文件中单词个数(-w)、字符个数(-c)、(-l)
在这里插入图片描述

文件编辑命令

VIM命令

如果还未安装VIM可以通过sudo apt-get install vim-gtk 获取。

三种模式

vim一共有三种模式,我们可以在不同模式下做不同的操作。
在这里插入图片描述
命令模式切换到插入模式:

  1. a //进入到当前光标后开始编辑
  2. A //进入到当前光标所在行的行末开始编辑
  3. i //进入当前光标位置开始编辑
  4. I //进入当前光标所在行的行头开始编辑
  5. o //进入当前光标下一行开始编辑
  6. O //进入当前光标上一行开始编辑
    命令模式切换到末行模式
    1: //对文本的设置或保存工作
    2 . / //对文本进行全文向下搜索字符串 string
    3 . ? //对文本进行全文向上搜索字符串 string
    vi/vim 常用命令
    1 . n dd //删除光标开始向下的 n 行
    2 . n yy //拷贝光标开始向下的 n 行
    3 . p //粘贴
    4 . u //撤销上一次操作
    5 . ctrl + r // 恢复上一次撤销操作
    6 . r //替换一个字符
    7 . shift + 6 //光标移动到当前行的行头
    8 . shift + 4 //光标移动到当前行的行尾
    9 . shift + g //光标移动到整个文本的最后一行 G
    10 . gg //光标移动到整个文本的第一行
    11 . n shift + g //光标移动到第 n 行
    12 . d n shift + g //删除光标到 n 行的内容
    13 . y n shift + g //拷贝光标到 n 行的内容
    末行模式下的操作
    1 . :w //保存文本
    2 . :q //退出编辑
    3 . :wq //保存并退出
    4 . :q! //强制退出
    5 . :w newfile //另存为
    6 . :set nu //显示行号
    7 . :set nonu //取消行号
    8 . : set hlsearch //设置高亮搜索
    9 . : set nohlsearch //取消高亮搜索
    10 . : n,m s/oldstring/newstring //替换整个文本每行的第一个 oldstring
    11 . :n, m s/oldstring/newstirng/g //替换整个文本所有的 oldstring
    12 . /string //向下搜索 string
    13 . ?string //向上搜索 string

VIM小技巧

定位命令
在这里插入图片描述
删除命令
在这里插入图片描述
复制粘贴命令
在这里插入图片描述
替换和取消命令
在这里插入图片描述
保存或退出命令
在这里插入图片描述
查找与替换
在这里插入图片描述
最后 +g 替换的时候不询问 +c 替换的时候询问
恢复上一次撤销操作
ctrl + r
导入另外一个文件的内容
esc :r 文件名

VIM配置文件

在用户家目录输入:vim .vimrc
可以输入一些编辑模式的命令:比如设置行号,设置快捷键。
在这里插入图片描述

基础命令

find 在那个路径下查找文件 -以哪种方式查找文件 文件名

  • -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
  • -amin n : 在过去 n 分钟内被读取过
  • -anewer file : 比文件 file 更晚被读取过的文件
  • -atime n : 在过去n天内被读取过的文件
  • -cmin n : 在过去 n 分钟内被修改过
  • -cnewer file :比文件 file 更新的文件
  • -ctime n : 在过去n天内被修改过的文件
  • -empty : 空的文件-gid n or -group name
  • -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
  • -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
  • -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
  • -type c : 文件类型是 c 的文件。
    d: 目录
    c: 字型装置文件
    b: 区块装置文件
    p: 具名贮列
    f: 一般文件
    l: 符号连结
    s: socket
    在这里插入图片描述
    find常考题目(转载):https://www.cnblogs.com/Ido-911/p/9638612.html
    grep
    在文件中过滤出包含指定字符串的行。
  • -a 或 --text : 不要忽略二进制的数据。
  • -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  • -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
  • -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  • -c 或 --count : 计算符合样式的列数。
  • -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  • -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  • -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
  • -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
  • -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
  • -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
  • -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
  • -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
  • -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
  • -i 或 --ignore-case : 忽略字符大小写的差别。
  • -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
  • -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
  • -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
  • -o 或 --only-matching : 只显示匹配PATTERN 部分。
  • -q 或 --quiet或–silent : 不显示任何信息。
  • -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
  • -s 或 --no-messages : 不显示错误信息。
  • -v 或 --revert-match : 显示不包含匹配文本的所有行。
  • -V 或 --version : 显示版本信息。
  • -w 或 --word-regexp : 只显示全字符合的列。
  • -x --line-regexp : 只显示全列符合的列。
  • -y : 此参数的效果和指定"-i"参数相同。
    在这里插入图片描述

管道 |

A进程将执行的结果输出到管道中,B进程再将其从管道中读出来
将前一个命令的输出结果作为后一个命令的输入。进程间通讯的一种方式。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_49449205/article/details/113634159