15. Linux 中关于搜索文件或者目录的命令(find)
**语法格式:find [搜索范围] [搜索标准] 关键字 **
搜索标准:
- name : 默认按照名称搜索,这个name可以省略不写,不写也是按照名字搜索。
- size : 按照文件大小搜索。
- user:按文件的所有者搜索。(默认是谁创建的这个文件,谁就是这个文件的所有者。后期可以进行更改)
15.1 通过文件或者目录的名称进行搜索
- find *.txt (相对路径): 搜索当前目录下。所有的.txt文件。
- find * e * (相对路径):搜索当前目录下,所有名称中包含e的文件和目录。
- find /etc */txt :搜索/etc目录下所有.txt文件。
15.2 通过文件的大小来搜索
在Linux中,+号代表大于,-代表小于。
- find /etc -size -5k(5M) :搜索/etc目录下所有小于5k/5M的文件。
- find /etc -size +5k(5M) :搜索/etc目录下所有大于5k/5M的文件。
15.3 通过文件的所有者就行搜索
- find /etc -user zhangsan : 搜索/etc目录下所有者是zhangsan的文件和目录。
15. Linux 中关于搜索文件或者目录的命令(locate)
语法格式:locate 要搜索的文件名
- locate这个搜索的效率要比find的效率高。locate指令可以快速在整个系统中定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
- locate搜索的是整个Liunx目录树中的所有文件,而find搜索的是指定目录下的所有文件。
在Linux系统中,文件的删除和增加并不是及时的,Linux会根据自己的一整删除和增加体制来定时进行修改,使用locate操作文件的时候会出现错误。
- 在使用locate查看命令之前,我们需要先使用 updatedb命令来同步一下数据库,然后再使用**locate .txt* 命令来查看Linux这个系统中这个目录树中所有的txt文件。
16.搜索过滤的命令(grep)
搜索过滤命令。在前一个搜索命令的结果中进行按名称进一步过滤:
语法格式:
- 搜索命令 | grep [选项] 过滤条件
- 查看命令 | grep [选项] 过滤条件
搜索命令
- find *txt | grep new : 搜索当前目录下,所有名称中包new的.txt文件。
- find /etc -size -5k | grep firefox : 所有etc目录下小于5k的文件,并且名称包含firefox的文件。
查找命令
- cat t1.txt | grep beijing :查找t1.txt文件的内容中包含beijing的内容。(这个默认是区分大小写的)
- cat t1.txt | grep -ni beijing : 查找t1.txt文件的内容中包含beijing的内容。(-ni 这个属性是忽略大小写的。)
17.Linux中关于压缩和解压命令
注意:
- 压缩包括:打包(多个文件打包再一起)和压缩(一个大的压缩文件变为小的压缩文件)。
- Linux中的压缩包包括两种:.gz与.zip。
17.1 压缩或者解压单个文件(gzip/gunzip)
压缩或者解压单个文件,这个不具备打包的功能,因为这个命令只能操作单个文件,只能将一文件压缩为一个文件,一个文件解压为一个文件,而不能操作多个文件或者目录。压缩单个的文件生成的压缩包格式只能是.gz,因为是自动生成的。
语法格式
- gzip 文件名 :压缩单个文件,自动生成一个.gz的压缩包,并且会把原来的文件删除。
注意:t.txt 经过压缩之后会变为 t.txt.gz 名称的压缩包。
- gunzip .g压缩文件名 : 解压.gz压缩包,并且会把原来的.g压缩包删除。
注意:t.txt.gz 经过解压之后会变为 t.txt 名称的文件。
17.2 压缩(打包)或者解压多个文件和目录(zip/unzip)
这个可以压缩(打包)或者解压多个文件或者目录,并且这个压缩可以生成.zip或者.gz格式的压缩包,因为使用这个命令我们可以自己给定压缩文件的名称以及类型。通常使用zip格式的压缩包。
语法格式
- zip 目标压缩文件名(通常使用.zip压缩包) 文件或者目录列表 : 压缩(打包)文件,不会删除之前的文件。
zip test.zip ret.txt t1.txt test2 : test.zip是目标压缩文件,这个文件可以是路径也可以是相对路径,这里使用的是相对路径。
- unzip 压缩包名(.zip) : 将指定的.zip压缩包解压到当前目录。
- **unzip 压缩包名(.zip) -d 解压目录名 :**将指定的.zip压缩包解压到指定的解压目录下。
unzip test.zip -d test3 : 将test.zip中文件解压到test3这个目录下。
17.3 压缩(打包)或解压多个文件和目录(tar)
压缩语法格式
- tar -c 目标压缩包名称(xxx.tar.gz) 文件或者目录列表 :其中.tar可以省略,之所以这么写是为了告诉别人这个压缩包是使用tar命令进行压缩的。这个目标压缩包的位置可以使用绝对路径任意改变,这里是哟个的相对路径,压缩完的文件就在使用命令的这个目录下。
解压语法格式
- tar -x 压缩包名(xxx.tar.gz):将指定.tar.gz压缩包解压到当前目录下。
- tar -x 压缩包名(xxx.tar.gz) -C(大写C) 解压目录名 : 将指定的.tar.gz压缩包解压到指定的目录下。
选项说明
- -c : 产生.tar.gz打包文件。
- -v : 显示详细信息。
- -f : 指定压缩后的文件名。
- -z : 打包同时压缩。
- -x :解压.tar.gz文件。
- -C : 指定压缩到哪个文件。
实际开发
- 压缩:tar -zcvf xxx.tar.gz 文件或者目录列表
- 解压:tar -zxvf xxx.tar.gz -C 解压目录名称
tar -zcvf mytar.tar.gz rest.txt t1.txt : 将rest.txt和t1.txt文件压缩到mytar.tar.gz压缩包中,并且这个压缩包在当前的这个压缩目录下。
tar -zxvf mytar.tar.gz -C /opt/testDir/test5 : 将压缩包解压到指定目录的文件夹下。
18.Linux中的组和文件(目录)
18.1 用户的分类
在Linux中,每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组。
在Linux中,每一个文件必须属于一个组,而且一个文件只能属于一个组。
- 通过组可以文件进行不同权限的分配。
在文件或者目录看来,Linu系统中的所有用户分为三类:
- 所有者: 默认情况下,文件或者目录的所有者都是创建者,可以进行修改。
- 同组用户: 根文件或者目录属于同一组的用户。
- 其他组用户: 既不是文件或者目录的所有者,也不是同组用户。
18.2 查看文件的所有者和所在的组
语法 :ls -l
18.3 修改文件和目录的所有者
语法格式 :
- chown 新的所有者 文件名(目录) :修改新的所有者而不修改所在的组。
- chown 新的所有者 : 新的组 文件名(目录) : 修改新的所有者以及所在的组。
改变文件
chown zhangsan t1.txt : 修改t1.txt的所有者。
chown zhangsan:dev t4.txt : 修改t4.txt的所有者以及所在的组。
改变目录
chown zhangsan:dev test3 : 修改test3目录的所有者和所在组。它只会修改这个目录所在的组和所有者,而不会修改这个目录下文件的所有者和组
chown -R zhangsan test3 : 递归修改test3目录下所有文件的所有者。有R参数存在的时候,既会修改这个目录的所有者,又会改变这个目录下所有文件的所有者。
chown -R zhangsan:dev test :递归修改目录以及目录中所有文件的所有者和所在的组。
18.4 修改文件和目录所在的组
语法格式
- chgrp 新的组 文件名(目录)
改变文件
chgrp dev t2.txt : 修改当前文件所在的组。
改变目录
chgrp -R dev test3 :修改当前文件夹以及递归修改该目录和目录下所有文件所在的组。
19.Linux中文件或者目录的权限管理
组的权限
- 一个用户至少属于一个组,也可以属于多个组。
- 一个文件或者目录也必须属于一个,并且只能属于一个组。
在一个文件或者目录看来,Linux系统中的所有用户可以分为三类
- 所有者
- 同组用户
- 爱他组用户
在Linux中,任何文件或者目录都有三种权限:读(Read)、写(write)、执行(Execute)。每个权限不同的用户对文件或者目录的权限等级不一样。
19.1 文件的三种权限
- 读:可以读取、查看文件的内容。比如:cat、more、less、head、tail等。
- 写:可以修改文件的内容,比如:vi或者vim
- 执行:如果文件是可执行文件(.sh) ,可以直接运行,比如:./xxxsh。
19.3 目录的三种权限
- 读:可以读取、查看目录下的内容。比如:ls
- 写:可以修改目录中的内容,创建子目录、创建文件、删除文件、重名文件或目录。
- 执行:可以进入该目录。比如:cd等
20.文件或者目录的权限控制
在Linux系统中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其他组用户权限。
- 第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限。在所有者权限中,使用 r、w、x分别表示读、写、执行的权限。 比如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r--:只拥有读的权限,---:没有任何权限。
- 第二部分:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分别表示读、写、执行的权限。
- 第三部分:其他组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分别表示读、写、执行的权限。
查看文件或者目录的权限:ls -aul
21.用字母修改文件或者目录的权限
使用关键字:chmod
用r、w、x 分别表示读、写、执行的权限。
用u、g、o、a 分别表示所有者、同组用户、其他组用户、所有用户修改权限。
用+、-、= 分别表示给指定的用户增加、减少、设置对应的权限。
chmod g-w,o+w t5.txt // 给t5.txt的同组用户减少写的权限,给其他组用户增加写的权限。 chmod g=rwx t5.txt // 这个代表给同组用户添加读、写、执行的权限。 chmod a-r t5.txt // 给所有的用户减少读的权限。 复制代码
22.用数字修改文件或者目录的权限
- 在Linux系统中,可以使用数字 4(2^2)、2(2^1)、1(2^0) 来表示r、w、x 读写执行
- 在linux中,每个文件或者目录存在三种权限:所有者权限、同组权限、其他组权限。一种权限会对应一组数字,也就说一个文件或者目录有三组数字。
比如该文件权限对应的字母的 :rw- r-x r-x 对应的数字权限 :6 5 5。rwx r-x -wx : 753
修改文件的权限
- chmod 777 t5.txt
23.Linux的网络管理
- Linux系统中,所有的配置文件存在于 etc目录下。
- 使用vi命令来修改网络ip地址的配置文件:vi /etc/syscongig/network-scripts/ifcfg-ens33
修改这个配置文件中对应的信息
- BOOTPROTO = "static"
- ONBOOT= "yes"
- IPADDR=192.168.11.128 (ip地址)
- GATEWAY=192.168.11.2 (网关地址)
- DNS=192.16.11.2 (域名解析系统)
只修将这个配置文件中的信息改变为:static、yes。其中IP地址、网关协议以及域名解析系统公司用给出,直接按着修改即可。
24.Linux中关于进程的管理
- 线程的概念:一个程序的执行线路,一个程序可以有多个线程。
- 进程的概念:一个程序的执行,一个进程会占用一个端口。
注意:一个进程可以有多个线程。只要是可执行的文件(.exe)或者命令就是一个进程,会占用一个端口。
在Windows中,SYSTEM对应的系统进程,Admin对应的用户进程。
查看Linux中进程信息
- ps : 这个命令只能查看Liunx系统中的用户应用的进程,不能查看系统的进程。
- ps -e :查看Linux中的所有的进程(用户进程以及系统进程),简化显示进程信息。
- ps -ef : 已全格式的形式显示Liunx中的所有的进程。
- ps -ef|grep mysql : 查看指定执行的文件的全格式进程信息。(查看程序是否正常启动以及这个程序所对应的端口号。)
关闭Linux中的进程
- 使用ps命令查看进程的PID。
- 使用命令kill -9 PID 来关闭这个进程。