1、find命令:
基本格式:find 路径 选项 参数
-name : 根据文件名字查找
-size :根据文件大小查找 +(比这个大) -(比这个小)
-type :根据文件类型查找 - 普通文件 -d 目录 -l 链接文件 -c 字符设备文件 -b 块设备文件 -p 管道文件
-uid : 根据用户的UID查找
-gid :根据用户所属组查询
-nouser :查询没有所属用户的
-nogroup:查询没有所属组的
-perm :根据权限查找
最后可以-exec 命令 {} \;进行一些所需的执行。
2、vim的编程设置
设置行号
set nu
自动缩进
set autoindent
set cindent
Tab键的宽度
set tabstop=4
统一缩进为4
set softtabstop=4
set shiftwidth=4
为C程序提供自动缩进
set smartindent
3、SUID SGID SBIT
SUID 是针对文件的,在所有者的x(可执行位上)x->s/_->S,u+s即可设置/4也可,代表着拥有文件所有者的权限。
SGID 是对文件、目录均可,主要针对的是目录,在所属组的x(可执行位上)x->s/_->S,g+s即可设置/2也可,代表着在这个目录下创建的文件与此目录有相同的组。
SBIT 是针对目录的,在其他用户的x(可执行位上)x->t/_->T,o+t即可设置/1也可,代表着其他用户只能对该目录下的文件读,不能修改和删除,只有自己创建的才可进行读,写,修改,删除等操作
4、软,硬链接:需要ln这个命令。
硬链接:同一文件的不同分身,inode只有一个,相当于只有一个文件,都是通过指针的指向,一改全改,只能对同一目录下的进行,不能是目录的其他文件系统。
格式 :ln 原文件名 硬链接名
软连接:两个不同的文件,软连接文件中存放的是那个连接文件的路径,原文件删除,则软连接文件无法查看,软连接可以是目录、文件、和不同的文件系统。
格式 :ln -s 原文件名 硬链接名
inode编号:Linux文件系统中所有的文件和目录都拥有一个唯一的编号。硬链接文件指的是存放于文件系统中不同路径下的有相同inode编号的文件,硬链接文件的本质是:虽然存放在文件系统中的不同位置,但是是同一个文件。相当于一个文件在文件系统中的若干个分身,这些分身之间不存在直接的依赖关系。但是操作其中一个文件,就相当于操作了不同位置的同一个文件。只有当所有的硬链接文件统统都被rm掉了,这个文件才真正的被删除。
5、重定向
重定向:重新将标准输入(stdin)/标准输出(stdout)/标准错误(stderr)指定方向。无论是标准输入/
标准输出/标准错误中的哪一个,都是数据的流动,而数据的流动都是有方向性的(从哪儿到哪儿)。
标准输出是有默认的数据流目的地的(默认是标准输出设备),标准输出设备在Linux上指的是/dev
目录下的一个设备文件(字符设备文件)。任何一个可执行程序所产生的标准输出数据都是写入到这
些设备
文件之中的。
stdin(0)、stdout(1)、stderr(2)
重定向标准输出:将标准输出的目的地改为任意可能的文件(重定向了标准输出的目的地)。=
重定向符号 | 相关解释 | 使用形式 | 对应讲解 |
> | 重定向标准输出(覆盖特性) | 命令 > 文件的路径 | 文件对应路径如果不存在,则创建该文件,如果存在,有内容的话则首先清空文件内容,在将标准输出写入文件。 |
>> | 重定向标准输出(追加特性) | 命令 >> 文件的路径 | 文件对应路径如果不存在,则创建该文件,如果存在,有内容的话则不会清空文件内容,将标准输出追加至文件末尾。 |
标准输入是由默认的数据来源(默认是标准输入设备),标准输入设备在Linux上指的是/dev目录下
的一个设备文件(字符设备文件)。任何一个可执行程序执行时有可能需要从标准输入设备读入数
据,其实
就是读取标准输入设备文件中的内容。
重定向标准输入:将标准输入的来源改为任意可能的文件(重定向了标准输入的来源)。
重定向符号 | 相关解释 | 使用形式 | 对应讲解 |
< | 重定向标准输入 | 命令 < 文件路径 | |
<< | 重定向标准输入,可以使用伪终端 | 命令 << ! 若干文件内容 | !表示伪终端开启和关闭。在中间可以书写任意内容,这些内容将成为命令的标准输入内容。 |
合理的使用重定向
重定向输出:(1).将命令的标准输出保存到文件(2).重定向符产生多个中间文件,使得多个命
令可以协同运行。
重定向内部的实现:主要使用了两个函数(但需要理解三个),实现的主要原理是问件描述符复制技
术。使用的函数是:dup、dup2、fcntl(这个函数可以替代dup和dup2)。
与&结合在一起,可以联合将标准错误和标准输出到同一文件中。