玩转 Liunx 系统,看这篇文章就够了 (三)
👨🎓作者:Java 学术趴
💌公众号:Java 学术趴
🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。
🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号 Java 学术趴联系小编。
☠️每日毒鸡汤:没撒子可说的,好好看文章吧。
👋大家好!我是你们的老朋友 Java 学术趴。相毕大家对 Windows 玩的已经是非常的熟练,那么小编今天给大家带大家搞一搞 Linux 系统,小编用一个星期的时间给大家整了一些 Linux 干货,由于内容太多,小编分开发。话不多说,直接进入今天的主题:Linux 系统。Linux,全称 GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年 10 月 5 日首次发布,它主要受到Minix和 Unix 思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux 有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
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 分别表示所有者、同组用户、其他组用户、所有用户修改权限。
用+、-、= 分别表示给指定的用户增加、减少、设置对应的权限。
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 来关闭这个进程。
今天就先分享到这里喽,明天接着给大家分享 Linux 系统关于服务的管理方式,喜欢的大佬儿们,关注不迷路呦
以上项目的源代码,点击星球进行免费获取 星球 (Github 地址)如果没有 Github 的小伙伴儿。可以关注本人微信公众号:Java 学术趴,发送 Linux,免费给发给大家项目源码,代码是经过小编亲自测试的,绝对可靠。免费拿去使用。
版权声明: 本文为 InfoQ 作者【Java学术趴】的原创文章。
原文链接:【http://xie.infoq.cn/article/84b38822979d588e768cf97a6】。文章转载请联系作者。
评论