写点什么

玩转 Liunx 系统,看这篇文章就够了 (三)

作者:Java学术趴
  • 2022 年 7 月 15 日
  • 本文字数:5020 字

    阅读完需:约 16 分钟

玩转Liunx系统,看这篇文章就够了(三)

👨‍🎓作者:Java 学术趴

🏦仓库:GithubGitee

✏️博客:CSDN掘金InfoQ云+社区

💌公众号:Java 学术趴

🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。

🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号 Java 学术趴联系小编。

☠️每日毒鸡汤:没撒子可说的,好好看文章吧。

👋大家好!我是你们的老朋友 Java 学术趴。相毕大家对 Windows 玩的已经是非常的熟练,那么小编今天给大家带大家搞一搞 Linux 系统,小编用一个星期的时间给大家整了一些 Linux 干货,由于内容太多,小编分开发。话不多说,直接进入今天的主题:Linux 系统。Linux,全称 GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年 10 月 5 日首次发布,它主要受到Minix和 Unix 思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位64位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux 有上百种不同的发行版,如基于社区开发的debianarchlinux,和基于商业开发的Red Hat Enterprise LinuxSUSEOracle 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 分别表示所有者、同组用户、其他组用户、所有用户修改权限。

用+、-、= 分别表示给指定的用户增加、减少、设置对应的权限。

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 来关闭这个进程。

今天就先分享到这里喽,明天接着给大家分享 Linux 系统关于服务的管理方式,喜欢的大佬儿们,关注不迷路呦

以上项目的源代码,点击星球进行免费获取 星球 (Github 地址)如果没有 Github 的小伙伴儿。可以关注本人微信公众号:Java 学术趴,发送 Linux,免费给发给大家项目源码,代码是经过小编亲自测试的,绝对可靠。免费拿去使用。


发布于: 刚刚阅读数: 3
用户头像

Java学术趴

关注

还未添加个人签名 2022.07.02 加入

还未添加个人简介

评论

发布
暂无评论
玩转Liunx系统,看这篇文章就够了(三)_7月月更_Java学术趴_InfoQ写作社区