文章目录
文件类型
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一共有三种模式,我们可以在不同模式下做不同的操作。
命令模式切换到插入模式:
- a //进入到当前光标后开始编辑
- A //进入到当前光标所在行的行末开始编辑
- i //进入当前光标位置开始编辑
- I //进入当前光标所在行的行头开始编辑
- o //进入当前光标下一行开始编辑
- 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进程再将其从管道中读出来
将前一个命令的输出结果作为后一个命令的输入。进程间通讯的一种方式。