Linux系统学习 (实操篇2)

这是实操篇的第2篇,也是内容较多和杂的一篇,嗯,还有许多不足,但还是希望能有所帮助,我也在努力学习当中。

一.权限学习

1.前言

因为root用户可以使用最大的权限,所以权限学习一般使用root用户,su -切换就可以了。
但是有一个方法可以在普通用户的情况下使用root用户的权限,使用sudo命令,为普通的命令授权,临时以root身份执行。

  1. 配置方法如下:
  • su -,输入正确的密码,先切换到root用户。
  • 使用visudo命令,打开sudo的配置文件编辑器。
  • 使用之前学过的vim编辑器,在最后一行末尾输入信息,键盘按o,在光标下一行插入。
  • 插入用户名 ALL=(ALL) NOPASSWD:ALL,然后ESC退出编辑模式,:wq命令保存并退出

注:NOPASSWD:ALL的作用是以后使用sudo不需要输入密码

  1. 使用为普通用户下:sudo 命令,就是在命令前面加上sudo,就可以获得root的权限了。
    效果如下:可以在普通用户的情况下访问到根目录。
    在这里插入图片描述
  2. 在学习下面知识之前,先了解一下什么是用户组和用户,Linux系统中可以:
    配置多个用户
    配置多个用户组
    用户可以加入多个用户组中
    在这里插入图片描述

注意:这部分的操作都要在root用户下进行。

2.用户组管理

  1. 创建:groupadd 用户组
  2. 删除 :groupdel 用户组
    在这里插入图片描述
    这里先创建一个名为itcast的用户组。

3.用户管理

  1. 创建:useradd [-g -d]用户名
    -g:用于设置用户组,如果没有,默认会创建一个同名的用户组。
    -d:用于设置用户的home目录的Linux路径,默认为/home/用户名。
  2. 删除:userdel [-r] 用户名
    -r:表示用户的home目录也删除,不然不删除。
    注意:删除需要谨慎。
  3. 修改用户所属组: usermod -aG 用户组 用户名
  4. 查看用户:id [用户名]
    参数:用户名,被查看的用户,如果不提供则查看自身

4.查看用户和用户组

  1. 使用getent命令,可以查看当前系统中有哪些用户
    语法: getent passwd

  2. 使用示例:
    在这里插入图片描述
    注: 每一行为一个用户账号,每个字段用:隔开。

  3. 各个字段:
    登录名:用户的登录名称。
    密码:被加密的用户密码(在/etc/shadow文件中存储)。
    用户ID(UID):用于唯一标识用户的数字标识符。
    组ID(GID):指定用户所属的主要用户组的标识符。
    用户信息:一般为用户的全名或描述性信息。
    主目录:用户的主目录路径。
    登录shell:用户的默认shell程序路径,我这边都是/sbin/nologin

  4. 查看用户组:
    在这里插入图片描述
    其中有3个字段:用户组名 : 组认证 (显示为x):用户组id

5. 查看权限控制

5.1.展示权限细节

通过ls -l 可以以列表形式查看内容,并显示权限细节。
在这里插入图片描述
第1列,表示文件、文件夹的权限控制信息(其中后面的r x w 表示权限信息)
第3列,表示文件、文件夹所属用户(这里是yanwei)
第4列,表示文件、文件夹所属用户组(这里是yanwei)

5.2.rwx含义

那么,rwx到底代表什么呢?
r表示读权限
w表示写权限
x表示执行权限
针对文件、文件夹的不同,rwx的含义有细微差别

  • r,针对文件可以查看文件内容
    针对文件夹,可以查看文件夹内容,如ls命令。
  • w,针对文件表示可以修改此文件
    针对文件夹,可以在文件夹内:创建、删除、改名等操作。
  • x,针对文件表示可以将文件作为程序执行
    针对文件夹,表示可以更改工作目录到此文件夹,即cd进入。

6.修改权限控制

6.1.chmod命令

  1. 我们可以使用chmod命令,修改文件、文件夹的权限信息。
    注意,只有文件、文件夹的所属用户或root用户可以修改。

  2. 语法:chmod [-R] 权限 文件或文件夹
    -R,对文件夹内的全部内容应用同样的操作

  3. 示例:
    chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x–x
    其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
    chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x–x

除此之外,还有快捷写法:chmod 751 hello.txt
将hello.txt的权限修改为751
那么问题来了,751表示什么意思呢?

6.2.权限的数字信号

  1. 权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
  2. 数字的细节如下:r记为4,w记为2,x记为1,l可以想象成二进制可以有:
    0:无任何权限, 即 —
    1:仅有x权限, 即 --x
    2:仅有w权限 即 -w-
    3:有w和x权限 即 -wx
    4:仅有r权限 即 r–
    5:有r和x权限 即 r-x
    6:有r和w权限 即 rw-
    7:有全部权限 即 rwx
    所以751表示: rwx(7) r-x(5) --x(1)

6.3.chown命令

  1. 使用chown命令,可以修改文件、文件夹的所属用户和用户组
    普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

  2. 语法:chown [-R] [用户 ][:][用户组] 文件或文件夹
    -R,同chmod,对文件夹内全部内容应用相同规则
    用户,修改所属用户
    用户组,修改所属用户组
    :用于分隔用户和用户组

  3. 示例:
    chown root hello.txt,将hello.txt所属用户修改为root
    chown :root hello.txt,将hello.txt所属用户组修改为root
    chown root:itheima hello.txt,将hello.txt所属用户修改为root,用户组修改为itheima
    chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

二.快捷键使用

1. 光标移动

  • ctrl + c 强制停止,这里以先ping连接百度,再强制停止为例,这边连接了三次就被我们强制停止了。
    在这里插入图片描述

  • ctrl + d 退出登出,可以退出,这边以登录管理员账户和退出为例:
    在这里插入图片描述

  • ctrl + ← | →,左右跳单词,一般和vim编辑器搭配使用。

  • ctrl + l 或 clear命令 清屏

  • -ctrl + a | e,光标移动到命令开始或结束

2.历史命令

  • history 查看历史命令,示例显示了之前输入的100多行命令。
    在这里插入图片描述

  • !命令前缀,自动匹配上一个命令,这里以!p为例,匹配到了最近的连接百度的测试,并执行了。
    在这里插入图片描述

  • ctrl + r,搜索历史命令,根据你输入的内容搜索匹配内容,回车执行,左右键不执行。
    在这里插入图片描述

三.第三方软件

掌握使用yum为CentOS系统安装软件,其中CentOS被称为服务器操作系统,这里主要以它为例,首先要su命令切换到root用户,开始执行相关系列的操作。

1.安装

CentOS系统安装语法:yum [-y] install 软件名称。删除和搜索把install换为remove和search即可。
其中-y表示自动确定,不需要确认。

  • 这里以下载,搜索wget为例:
    在这里插入图片描述

  • 删除会做出相关提示:
    在这里插入图片描述

2.systemctl命令

  1. Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
    能够被systemctl管理的软件,一般也称之为:服务

  2. 语法:systemctl start |stop| status|enable|disable 服务名

  3. start 启动
    stop 关闭
    status 查看状态
    enable 开启开机自启
    disable 关闭开机自启
    这里以系统内置的服务-防火墙为例:
    在这里插入图片描述

  4. 除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制,部分软件安装后没有自动集成到systemctl中,我们可以手动添加。

3.软连接

在系统中创建软链接,可以将文件、文件夹链接到其它位置。
类似Windows系统中的快捷方式
语法:In -s 参数1 参数2
-s选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地

四.日期和时区(不重要)

1.date命令

通过date命令可以在命令行中查看系统的时间
语法:data [-d] [+格式化字符串]

  1. -d 按照给定的字符串显示日期,一般用于日期计算。
  2. 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
    %Y 年
    %y 年份后两位数字 (00…99)
    %m 月份 (01…12)
    %d 日 (01…31)
    %H 小时 (00…23)
    %M 分钟 (00…59)
    %S 秒 (00…60)
    %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
  3. 示例:直接date命令,很不美观,按照标准格式更加好,对比如下:
    在这里插入图片描述
  4. -d选项,可以按照给定的字符串显示日期,一般用于日期计算,例如显示明年这个时间的日期:
    在这里插入图片描述

2.修改Linux系统时区

有同学可能会发现,通过date查看的日期时间是不准确的,这是因为:系统默认时区非中国的东八区。
嗯,我这边是没有出现这个情况:如果出现可以这样解决。
在这里插入图片描述

3.ntp程序校准

我们可以通过ntp程序自动校准系统时间,首先切换到root用户,下载ntp,然后手动校准(需root权限):ntpdate -u ntp.aliyun.com
在这里插入图片描述

五.ip地址和主机

1.ip地址

  • 每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯
  • IP地址主要有2个版本,V4版本和V6版本(V6很少用)
  • IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址。
  • ifconfig查看网络配置信息:其中inet后面就是ip信息。
    在这里插入图片描述
  • 特殊的IP地址:127.0.0.1,在lo下的inet中可以看到,可以在端口绑定中用来确定绑定关系。

2.主机名

每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名。无论是Windows或Linux系统,都可以给系统设置主机名。(这部分在之前的基础篇写过了,这里简单介绍)

  • 可以使用命令:hostname查看主机名
  • 可以使用命令:hostnamectl set-hostname 主机名,修改主机名(需root)
  • 重新登录FinalShell即可看到主机名已经正确显示

下面还有固定ip等一系列操作,在基础篇有仔细配置和解析:我的Linux基础篇

六.网络传输

1.ping命令

  1. 可以通过ping命令,检查指定的网络服务器是否是可联通状态
  2. 语法:ping [-c num] 参数
    选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
    参数:ip或主机名,被检查的服务器的ip地址或主机名地址
  3. ;连接百度三次:
    在这里插入图片描述

2.网络文件下载

  1. wget是非交互式的文件下载器,可以在命令行内下载网络文件
  2. 语法:wget [-b] url
    选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
    参数:url,下载链接
  3. 下载:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
    在这里插入图片描述
  4. curl命令:网络请求,用法类似
    向python.itheima.com发起网络请求:curl python.itheima.com
    通过curl下载hadoop-3.3.0安装包:curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

3.端口

端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类

  1. 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
  2. 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
    在这里插入图片描述
  3. 分类:三种端口
    (1)公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口。非特殊需要,不要占用这个范围的端口
    (2)注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
    (3)动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。

4.查看端口占用

  1. 首先进入root用户,下载nmap:yum -y install nmap
  2. 查看指定ip的端口,这里显示有占用了两个端口:
    在这里插入图片描述
  3. 为了进一步查看各个端口的具体情况:安装netstat:yum -y install net-tools
  4. 语法:netstat -anp | grep 端口号,示例如下:
    在这里插入图片描述
    可以找到端口22备进程 1370占用了。

七.进程管理

程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程ID(进程号)

1.查看

  1. windows:任务管理器查看
  2. 可以通过ps命令查看Linux系统中的进程信息
    语法:ps [-e -f]
    选项:-e,显示出全部的进程
    选项:-f,以完全格式化的形式展示信息(展示全部信息)
    一般来说,固定用法就是: ps -ef 列出全部进程的全部信息
  3. 查看某个进程的信息:ps -ef | grep 进程,示例ps -ef |grep tail,显示单个的进程信息。
    在这里插入图片描述

2.关闭

语法:kill [-9] 进程ID
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
在这里插入图片描述

3.系统资源占用

  1. top命令,类似于Windows资源管理器
    在这里插入图片描述

  2. 使用df命令,可以查看硬盘的使用情况
    语法:df [-h]
    选项:-h,以更加人性化的单位显示
    在这里插入图片描述

  3. 可以使用iostat查看CPU、磁盘的相关信息
    语法:iostat [-x] [num1] [num2]
    选项:-x,显示更多信息
    num1:数字,刷新间隔,num2:数字,刷新几次

  4. 可以使用sar命令查看网络的相关统计
    语法:sar -n DEV num1 num2
    选项:-n,查看网络,DEV表示查看网络接口
    num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

4.环境变量

环境变量这个名词在学习软件编程时,下载各个软件时我们都要配置的,当然之前是在Windows系统环境中配置,现在是在Linux中,它的作用就是无论在哪个目录下都可以使用。

  1. 环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。在Linux系统中执行:env命令即可查看当前系统中记录的环境变量。
  2. 环境变量是一种KeyValue型结构,即名称和值,如图所示:
    在这里插入图片描述
  3. 在前面提出的问题中,我们说无论当前工作目录是什么,都能执行/usr/bin/cd这个程序,这个就是借助环境变量中:PATH这个项目的值来做到的。
    命令:env | grep PATH
    如图所示,各个路径中间用:隔开。
    在这里插入图片描述
    4.Linux环境变量可以用户自行设置,其中分为:
    临时设置,语法:export 变量名=变量值
  4. 类似于java,C语言的控制台输出printf,Linux也有enco,$符号为取值符,如 enco $ PATH为取PATH环境变量的值并输出。

八.压缩和解压

1.压缩(cvf)

  1. 市面上有非常多的压缩格式:

zip格式:Linux、Windows、MacOS,常用
7zip:Windows系统常用
rar:Windows系统常用
tar:Linux、MacOS常用
gzip:Linux、MacOS常用
我们现在要学习,如何在Linux系统中操作:tar、gzip、zip这三种压缩格式,完成文件的压缩、解压操作。

  1. Linux和Mac系统常用有2种压缩格式,后缀名分别是:
    (1).tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装。
    (2).gz,也常见为.tar.gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积。

  2. 语法:tar [-c -v -x -f -z -C]参数1 参数2 .....
    -c,创建压缩文件,用于压缩模式
    -v,显示压缩、解压过程,用于查看进度
    -x,解压模式
    -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
    -z,gzip模式,不使用-z就是普通的tarball格式
    -C,选择解压的目的地,用于解压模式

  3. tar的常用组合为:

  • tar -cvf test.tar 1.txt 2.txt 3.txt
    将1.txt 2.txt 3.txt 压缩到test.tar文件内
  • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
    将1.txt 2.txt 3.txt 压缩到test.tar.gz文件内,使用gzip模式

注意:
-z选项如果使用的话,一般处于选项位第一个
-f选项,必须在选项位最后一个

2.解压(xvf)

常用的tar解压组合有

  • tar -xvf test.tar
    解压test.tar,将文件解压至当前目录
  • tar -xvf test.tar -C /home/itheima
    解压test.tar,将文件解压至指定目录(/home/itheima)
  • tar -zxvf test.tar.gz -C /home/itheima
    以Gzip模式解压test.tar.gz,将文件解压至指定目录(/home/itheima)

注意:
-f选项,必须在选项组合体的最后一位
-z选项,建议在开头位置

3.zip格式的压缩和解压

1.zip压缩命令

  • 可以使用zip命令,压缩文件为zip压缩包
    语法:zip [-r] 参数
    -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致

  • zip test.zip a.txt b.txt c.txt
    将a.txt b.txt c.txt 压缩到test.zip文件内

  • zip -r test.zip test itheima a.txt
    将test、itheima两个文件夹和a.txt文件,压缩到test.zip文件内

2. unzip命令解压

  • 使用unzip命令,可以方便的解压zip压缩包
    语法:unzip [-d] 参数
    -d,指定要解压去的位置,同tar的-C选项
    参数,被解压的zip压缩包文件

  • unzip test.zip,将test.zip解压到当前目录

  • unzip test.zip -d /home/itheima,将test.zip解压到指定文件夹内(/home/itheima)

在这里插入图片描述

这一部分,东西有些杂和多,但还是按部就班的搞完了,不是太重要或者简单部分就带过了(没有提供效果图),推荐看文档,自己多上手操作一下,实操篇第2篇,完结撒花啦✿✿ヽ(°▽°)ノ✿。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的蓝孩子~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值