❤️新版Linux零基础快速入门到精通——第三部分❤️

news2024/12/22 23:31:35

❤️新版Linux零基础快速入门到精通——第三部分❤️

  • 非科班的我!Ta!还是来了~~~
  • 3. Linux权限管控
    • 3.1 认知root用户
      • 3.1.1 `Switch User`——su
      • 3.1.2 `sudo`命令
      • 3.1.3 为普通用户配置`sudo`认证
    • 3.2 用户和用户组
      • 3.2.1 用户、用户组
      • 3.2.2 用户组管理
      • 3.2.3 用户管理
    • 3.3 显示inode的内容:stat
    • 3.4 文件访问权限
    • 3.5 修改文件权限:chmod
      • 3.5.1 字母法:`chmod u/g/o/a +/-/= rwx 文件`
      • 3.5.2 数字法:“rwx” 这些权限也可以用数字来代替
    • 3.6 修改文件所有者:chown
    • 3.7 修改文件所属组:chgrp
    • 3.8 查看当前用户:whoami
    • 3.9 查看登录用户:who
    • 3.10 退出登录账户: exit
  • 4. Linux系统管理
    • 4.1 查看当前日历:cal
    • 4.2 显示或设置时间:date
    • 4.3 查看网络状态:netstat
    • 4.4 查看进程信息:ps
    • 4.5 以树状图显示进程关系:pstree
    • 4.6 动态显示进程:top
    • 4.7 终止进程:kill
    • 4.8 检测磁盘空间:df
    • 4.9 检测目录所占磁盘空间:du
    • 4.10 查看或配置网卡信息:ifconfig
    • 4.11 测试远程主机连通性:ping
  • 5. Linux小技巧
    • 5.1 软件安装
      • 5.1.1 Linux系统的应用商店
      • 5.1.2 yum命令
      • 5.1.3 apt命令
    • 5.2 systemctl控制软件启动关闭
    • 5.3 软连接
    • 5.4 ip地址和主机名
      • 5.4.1 ip地址
      • 5.4.2 特殊ip地址
      • 5.4.3 主机名
    • 5.5 配置Linux固定ip
    • 5.6 网络传输
      • 5.6.1 网络请求和下载
        • 5.6.1.1 ping命令
        • 5.6.1.2 wget命令
        • 5.6.1.3 curl命令
      • 5.6.2 端口
        • 5.6.2.1 端口的作用
        • 5.6.2.2 端口的分类
        • 5.6.2.3 端口使用的注意事项
        • 5.6.2.4 查看端口占用
    • 5.7 环境变量
    • 5.8 上传、下载
    • 5.9 压缩 、解压
      • 5.9.1 压缩格式
      • 5.9.2 tar命令压缩
      • 5.9.3 tar命令解压
      • 5.9.4 zip命令压缩
      • 5.9.5 unzip命令解压

在这里插入图片描述
在这里插入图片描述

非科班的我!Ta!还是来了~~~

Linux一开始就不是为桌面用户准备的,林纳斯自己本身就是一个Unix极客,他设计Linux就参考了Unix的设计哲学,也就是说Linux从一开始就是为专业用户设计的。 不管是Unix操作系统也好,还是Linux操作系统也好,本质上都是为了提高生产效率。Linux的设计者林纳斯,自己就是一个Unix极客,他是不满意Unix当时的版权问题,于是他吸收了很多Unix的优点,在这个基础上设计了Linux操作系统。Linux的设计哲学,让Linux很多场景下都需要命令行操作,并且Linux设计者并不是很鼓励大家使用桌面,或者更合理的说法是,Linux的设计初衷是即使你要用一个桌面,也希望你能掌握好各种命令行操作,Vim/Emacs、GCC等各种软件,都更加鼓励大家用命令行操作

Linux诞生的时机吧,运气也确实不太好,我们且不说苹果的Mac OS X,Linux在1991年的时候由林纳斯开发,内核开发出来之后,1991年10月5日,林纳斯将Linux V0.01版内核源代码释放出来供众多的开发者进行完善,一直到93年才有10万用户,这些用户也基本都是程序员,96年的时候也才350万用户。这个发展其实是有点太慢了,跟Windows、MacOS动辄几千万、上亿的用户没办法比。言归正传,Linux只是一门基本计算机技能,它对学习者的背景、知识结构、年龄都没啥要求,只要坚持不懈的进步,Linux没啥学不会的。当然在学习中总会遇到瓶颈,这个时候就需要自我调节、坚持下去。学习Linux有大量的东西需要记忆,如果你懒得背、懒得学习、懒得去搞清 ,那当然会觉得难学了。还是那句话,脚踏实地,总会有所收获。

❤️积极的学习心态意味着好的开始❤️

“Linux这个操作系统难用吗?难!一片黑漆漆的命令行窗口闪烁着谜一样的光标,本来英语就是老大难,现在竟然让我背那么多命令?”“Linux这个操作系统难吗?简单,纯命令行设计、个性化强、工作效率高、黑漆漆的窗口天生自带神秘感。”

在这里插入图片描述

3. Linux权限管控

3.1 认知root用户

root用户拥有最大的操作权限,普通用户权限受限

无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为: root (超级管理员)。而在前期,我们一直使用的账户是普通的用户: itheima

  • 普通用户的权限在home是不受限的

在这里插入图片描述

3.1.1 Switch User——su

切换用户

su [-] [用户名]
  • -符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
  • 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
  • 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键: ctrl+ d
  • 使用普通用户,切换到其它用户需要输入密码,如切换到root用户
  • 使用root用户切换到其它用户,无需密码,可以直接切换

3.1.2 sudo命令

  • 在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。
  • 我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。

语法:

sudo 其它命令
  • 在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权

  • 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

3.1.3 为普通用户配置sudo认证

  • 切换到root用户,执行visudo命令,会自动通过vi编辑器打开: /etc/sudoers
  • 在文件的最后添加:
itheima ALL=(ALL)
NOPASSWD: ALL

在这里插入图片描述

  • 其中最后的NOPASSWD:ALL表示使用sudo命令,无需输入密码
  • 最后通过wq保存

切换回普通用户

[itheimadlocalhost ~]$ sudo ls /root
anaconda-ks.cfg original-ks.cfg
[itheimadlocalhost ~]$ sudo mkdir /test
[itheimadlocalhost ~]$

执行的命令,均以root运行

在这里插入图片描述

3.2 用户和用户组

3.2.1 用户、用户组

Linux系统中可以:

  • 配置多个用户
  • 配置多个用户组
  • 用户可以加入多个用户组中

在这里插入图片描述
Linux中关于权限的管控级别有2个级别,分别是:

  • 针对用户的权限控制
  • 针对用户组的权限控制

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。

所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。

在这里插入图片描述

3.2.2 用户组管理

以下命令需root用户执行

  • 创建用户组
    • groupadd 用户组名
  • 删除用户组
    • groupdel 用户组名

为后续演示,我们创建一个itcast用户组: groupadd itcast

在这里插入图片描述

3.2.3 用户管理

以下命令需root用户执行

  • 创建用户

    • useradd [-g -d] 用户名
    • 选项: -g指定用户的组,不指定-g,会创建同名组并自动加入,指定一g需要组已经存在,如已存在同名组,必须使用-g
    • 选项:-d指定用户HOME路径,不指定,HOME目录默认在: /home/用户名
  • 删除用户

    • userdel [-r] 用户名
    • 选项: -r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
  • 查看用户所属组

    • id [用户名]
    • 参数:用户名,被查看的用户,如果不提供则查看自身
    • 在这里插入图片描述
  • 修改用户所属组

    • usermod -aG 用户组 用户名 ,将指定用户加入指定用户组

getent命令:

  • 可以查看当前系统中有哪些用户

    • getent passwd
    • 在这里插入图片描述
  • 查看当前系统有哪些组

    • getent group
    • 在这里插入图片描述

在这里插入图片描述

3.3 显示inode的内容:stat

stat [文件或目录]

查看 testfile 文件的inode内容内容,可以用以下命令:

在这里插入图片描述

在这里插入图片描述

3.4 文件访问权限

用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

  • 读权限(r) :对于文件,具有读取文件内容的权限;对于目录,具有浏览目录的权限。
  • 写权限(w) :对于文件,具有修改文件内容的权限;对于目录,具有删除、移动目录内文件的权限。
  • 可执行权限(x): 对于文件,具有执行文件的权限;对于目录,该用户具有进入目录的权限。

通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。

示例:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第1个字母代表文件的类型

  • “d” 代表文件夹
  • “-” 代表普通文件
  • “c” 代表硬件字符设备
  • “b” 代表硬件块设备
  • “s”表示管道文件
  • “l” 代表软链接文件。

后9个字母分别代表三组权限:文件所有者、用户组、其他用户拥有的权限。

在这里插入图片描述

3.5 修改文件权限:chmod

chmod 修改文件权限有两种使用格式:字母法与数字法

3.5.1 字母法:chmod u/g/o/a +/-/= rwx 文件

[ u/g/o/a ]含义
uuser 表示该文件的所有者
ggroup 表示与该文件的所有者属于同一组( group )者,即用户组
oother 表示其他以外的人
aall 表示这三者皆是
[ ±= ]含义
+增加权限
-撤销权限
=设定权限
rwx含义
rread 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
wwrite 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
xexcute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。

在这里插入图片描述
除此之外,还有快捷写法:chmod 751 hello.txt

在这里插入图片描述

3.5.2 数字法:“rwx” 这些权限也可以用数字来代替

字母说明
r读取权限,数字代号为 “4”
w写入权限,数字代号为 “2”
x执行权限,数字代号为 “1”
  • 不具任何权限,数字代号为 “0”

如执行:chmod u=rwx,g=rx,o=r filename 就等同于:chmod u=7,g=5,o=4 filename

chmod 751 file:

  • 文件所有者:读、写、执行权限
  • 同组用户:读、执行的权限
  • 其它用户:执行的权限

chmod 777 file:所有用户拥有读、写、执行权限

注意:如果想递归所有目录加上相同权限,需要加上参数“ -R ”。 如:chmod 777 test/ -R 递归 test 目录下所有文件加 777 权限

数字的细节如下: r记为4、w记为2、 x记为1、可以有:

数字解释转化
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

在这里插入图片描述

在这里插入图片描述

3.6 修改文件所有者:chown

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

语法:
chown [-R] [用户][:] [用户组] 文件或文件夹

  • 选项, -R,同chmod,对文件夹内全部内容应用相同规则

  • 选项,用户,修改所属用户

  • 选项,用户组,修改所属用户组

  • :用于 分隔用户和用户组

python@ubuntu:~/test$ ll h.txt 
-rw------- 1 python python 4 1122 22:35 h.txt
python@ubuntu:~/test$ chown mike h.txt 
chown: 正在更改'h.txt' 的所有者: 不允许的操作
python@ubuntu:~/test$ sudo chown mike h.txt 
python@ubuntu:~/test$ ll h.txt              
-rw------- 1 mike python 4 1122 22:35 h.txt

在这里插入图片描述

3.7 修改文件所属组:chgrp

python@ubuntu:~/test$ ll h.txt              
-rw------- 1 mike python 4 1122 22:35 h.txt
python@ubuntu:~/test$ sudo chgrp mike h.txt 
python@ubuntu:~/test$ ll h.txt              
-rw------- 1 mike mike 4 1122 22:35 h.txt

在这里插入图片描述

3.8 查看当前用户:whoami

查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。

在这里插入图片描述
在这里插入图片描述

3.9 查看登录用户:who

who命令用于查看当前所有登录系统的用户信息。

常用选项:

选项含义
-m或am I只显示运行who命令的用户名、登录终端和登录时间
-q–count只显示用户的登录账号和登录用户的数量
-u在登录时间后显示该用户最后一次操作到当前的时间间隔
-u或–heading显示列标题

在这里插入图片描述
在这里插入图片描述

3.10 退出登录账户: exit

如果是图形界面,退出当前终端;

如果是使用ssh远程登录,退出登陆账户;

如果是切换后的登陆用户,退出则返回上一个登陆账号。

在这里插入图片描述

4. Linux系统管理

4.1 查看当前日历:cal

cal命令用于查看当前日历,-y显示整年日历:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.2 显示或设置时间:date

在这里插入图片描述

设置时间格式(需要管理员权限):

date [MMDDhhmm[[CC]YY][.ss]] +format

MM为月,DD为天,hh为小时,mm为分钟;CC为年前两位,YY为年的后两位,ss为秒。

如: date 010203042016.55。
在这里插入图片描述

显示时间格式(date ‘+%y,%m,%d,%H,%M,%S’):

format格式含义
%Y,%y
%m
%d
%H
%M
%S

自动校准时间的软件ntp
在这里插入图片描述

在这里插入图片描述

4.3 查看网络状态:netstat

netstat命令用于显示网络状态。

在这里插入图片描述

利用netstat指令可让你得知整个Linux系统的网络情况。

语法:

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

参数说明:

  • -a-all 显示所有连线中的Socket。
  • -A<网络类型>-<网络类型> 列出该网络类型连线中的相关地址。
  • -c-continuous 持续列出网络状态。
  • -C-cache 显示路由器配置的快取信息。
  • -e-extend 显示网络其他相关信息。
  • -F-fib 显示FIB。
  • -g-groups 显示多重广播功能群组组员名单。
  • -h-help 在线帮助。
  • -i-interfaces 显示网络界面信息表单。
  • -l-listening 显示监控中的服务器的Socket。
  • -M-masquerade 显示伪装的网络连线。
  • -n-numeric 直接使用IP地址,而不通过域名服务器。
  • -N-netlink–symbolic 显示网络硬件外围设备的符号连接名称。
  • -o-timers 显示计时器。
  • -p-programs 显示正在使用Socket的程序识别码和程序名称。
  • -r-route 显示Routing Table。
  • -s-statistice 显示网络工作信息统计表。
  • -t-tcp 显示TCP传输协议的连线状况。
  • -u-udp 显示UDP传输协议的连线状况。
  • -v-verbose 显示指令执行过程。
  • -V-version 显示版本信息。
  • -w-raw 显示RAW传输协议的连线状况。
  • -x-unix 此参数的效果和指定"-A unix"参数相同。
  • -ip-inet 此参数的效果和指定"-A inet"参数相同。

常用:

在这里插入图片描述

在这里插入图片描述

4.4 查看进程信息:ps

进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。

ps命令选项:

  • ps a 显示现行终端机下的所有程序,包括其他用户的程序。
  • ps -A 显示所有程序。
  • ps c 列出程序时,显示每个程序真正的指令名称,而不包含路 径,参数或常驻服务的标示。
  • ps -e 此参数的效果和指定"A"参数相同。
  • ps e 列出程序时,显示每个程序所使用的环境变量。
  • ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
  • ps -H 显示树状结构,表示程序间的相互关系。
  • ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
  • ps s 采用程序信号的格式显示程序状况。
  • ps u 以用户为主的格式来显示程序状况。
  • ps x 显示所有程序,不以终端机来区分。
选项含义
-a显示终端上的所有进程,包括其他用户的进程
-u显示进程的详细状态
-x显示没有控制终端的进程
-w显示加宽,以便显示更多的信息
-r只显示正在运行的进程

常见用法:

ps -e 查看所有进程信息(瞬时的)
ps -u root -N 查看所有不是root运行的进程
ps ax 显示所有进程状态状态
ps -ef |grep xxx 显示含有xxx的进程
实例:

在这里插入图片描述

显示指定用户信息:

在这里插入图片描述

显示所有进程信息,连同命令行

在这里插入图片描述

在这里插入图片描述

4.5 以树状图显示进程关系:pstree

显示进程的关系

在这里插入图片描述

特别表明在运行的进程:

# pstree -apnh //显示进程间的关系

同时显示用户名称:

# pstree -u //显示用户名称

在这里插入图片描述

4.6 动态显示进程:top

top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。-d参数可以指定显示信息更新的时间间隔。

在top命令执行后,可以按下按键得到对显示的结果进行排序:

按键含义
M根据内存使用量来排序
P根据CPU占有率来排序
T根据进程运行时间的长短来排序
U可以根据后面输入的用户名来筛选进程
K可以根据后面输入的PID来杀死进程。
q退出
h获得帮助

在这里插入图片描述

一、top前五条信息解释

top - 14:49:28 up 1:33, 1 user, load average: 0.00, 0.00, 0.00

内容含义
14:49:28表示当前时间
up 1:33系统远行时间,格式为时:分
1 user当前登陆用户数
load average: 0.00, 0.00, 0.00系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值

Tasks: 80 total, 2 running, 78 sleeping, 0 stopped, 0 zombie

内容含义
Tasks: 80 total进程总数
2 running正在运行的进程数
78 sleeping睡眠的进程数
0 stopped停止的进程数
0 zombie僵尸进程数

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

内容含义
0.0%us用户空间占用CPU百分比
0.0%sy内核空间占用CPU百分比
0.0%ni用户进程空间内改变过优先级的进程占用CPU百分比
100.0%id空闲CPU百分比
0.0%wa等待输入输出的CPU时间百分比
0.0%hi硬中断(Hardware IRQ)占用CPU的百分比
0.0%si软中断(Software Interrupts)占用CPU的百分比
0.0 st用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间

Mem: 1922488k total, 406936k used, 1515552k free, 11940k buffers

内容含义
1922488k total物理内存总量
406936k used使用的物理内存总量
1515552k free空闲内存总量
11940k buffers用作内核缓存的内存量

Swap: 835576k total, 0k used, 835576k free, 111596k cached

内容含义
835576k total交换区总量
0k used使用的交换区总量
835576k free空闲交换区总量
111596k cached缓冲的交换区总量

二、进程信息

列名含义
PID进程id
USER进程所有者的用户名
PR优先级
NInice值。负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行

默认进入top时,各进程是按照CPU的占用量来排序的。

更高级的命令是htop,但需要安装:

[root@VM_0_9_centos ~]# htop

  CPU[||                                                              1.3%]   Tasks: 55, 29 thr; 1 running
  Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||184M/1.80G]   Load average: 0.00 0.01 0.05 
  Swp[                                                               0K/0K]   Uptime: 42 days, 03:29:48

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
 2609 root       20   0  156M  9132  1784 S  0.7  0.5 39:01.13 barad_agent
 2610 root       20   0  660M 14168  1976 S  0.7  0.8  3h35:20 barad_agent
 1158 root       20   0  120M  2576  1492 R  0.0  0.1  0:00.01 htop

在这里插入图片描述

4.7 终止进程:kill

kill命令指定进程号的进程,需要配合 ps 使用。

使用格式:

kill [-signal] pid

信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。

关机重启:reboot、shutdown、init

命令含义
reboot重新启动操作系统
shutdown –r now重新启动操作系统,shutdown会给别的用户提示
shutdown -h now立刻关机,其中now相当于时间为0的状态
shutdown -h 20:25系统在今天的20:25 会关机
shutdown -h +10系统再过十分钟后自动关机
init 0关机
init 6重启

在这里插入图片描述

4.8 检测磁盘空间:df

df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

选项含义
-a显示所有文件系统的磁盘使用情况
-m以1024字节为单位显示
-t显示各指定文件系统的磁盘空间使用情况
-T显示文件系统

在这里插入图片描述

在这里插入图片描述

4.9 检测目录所占磁盘空间:du

du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。

du命令的使用格式如下: du [选项] 目录或文件名

选项含义
-a递归显示指定目录中各文件和子目录中文件占用的数据块
-s显示指定文件或目录占用的数据块
-b以字节为单位显示磁盘占用情况
-l计算所有文件大小,对硬链接文件计算多次

在这里插入图片描述

在这里插入图片描述

4.10 查看或配置网卡信息:ifconfig

ifconfig显示所有网卡的信息:

python@ubuntu:~$ ifconfig 
ens33     Link encap:以太网  硬件地址 00:0c:29:59:65:f2  
          inet 地址:192.168.40.11  广播:192.168.40.255  掩码:255.255.255.0
          inet6 地址: fe80::432f:6c4a:f47d:5f6b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:422794 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:208666 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:603741383 (603.7 MB)  发送字节:12819550 (12.8 MB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:2248 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:2248 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1 
          接收字节:497588 (497.5 KB)  发送字节:497588 (497.5 KB)

修改ip:

python@ubuntu:~$ sudo ifconfig ens33 192.168.40.10
python@ubuntu:~$ ifconfig ens33
ens33     Link encap:以太网  硬件地址 00:0c:29:59:65:f2  
          inet 地址:192.168.40.10  广播:192.168.40.255  掩码:255.255.255.0
          inet6 地址: fe80::432f:6c4a:f47d:5f6b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:422818 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:208692 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:603745130 (603.7 MB)  发送字节:12822615 (12.8 MB)

在这里插入图片描述

4.11 测试远程主机连通性:ping

python@ubuntu:~$ ping 192.168.40.1
PING 192.168.40.1 (192.168.40.1) 56(84) bytes of data.
64 bytes from 192.168.40.1: icmp_seq=1 ttl=64 time=0.699 ms
64 bytes from 192.168.40.1: icmp_seq=2 ttl=64 time=0.372 ms
^C
--- 192.168.40.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.372/0.535/0.699/0.165 ms
python@ubuntu:~$ ping 192.168.40.1 -c 3
PING 192.168.40.1 (192.168.40.1) 56(84) bytes of data.
64 bytes from 192.168.40.1: icmp_seq=1 ttl=64 time=0.409 ms
64 bytes from 192.168.40.1: icmp_seq=2 ttl=64 time=0.367 ms
64 bytes from 192.168.40.1: icmp_seq=3 ttl=64 time=0.373 ms

--- 192.168.40.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.367/0.383/0.409/0.018 ms
python@ubuntu:~$ 

在这里插入图片描述

5. Linux小技巧

  • ctrl + c 强制停止
  • ctrl + d 退出或登出
  • history 显示历史命令
  • !命令前缀自动执行上一次匹配的命令
    • 在这里插入图片描述
  • ctrl + r 历史命令搜索

光标移动快捷键

  • ctrl+a,跳到命令开头
  • ctrl+ e,跳到命令结尾
  • ctrl+键盘左键,向左跳一个单词
  • ctrl+键盘右键,向右跳一个单词

清屏

  • 快捷键ctrl +l,可以清空终端内容
  • clear得到同样效果

在这里插入图片描述

5.1 软件安装

5.1.1 Linux系统的应用商店

操作系统安装软件有许多种方式,一般分为:

  • 下载安装包自行安装
    • 如win系统 使用exe文件、Msi文件等
    • 如mac系统使用dmg文件、pkg文件等
  • 系统的应用商店内安装
    • 如win系 统有Microsoft Store商店
    • 如mac系统有AppStore商店

Linux系统同样支持这两种方式,我们首先,先来学习使用: Linux命令行内的"应用商店" , yum命令安装软件

5.1.2 yum命令

yum: RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法: yum [-y] [install | remove | search] 软件名称

  • 选项:-y,自动确认,无需手动确认安装或卸载过程
  • install: 安装
  • remove: 卸载
  • search: 搜索

yum命令需要root权限,可以su切换到root,或使用sudo提权。

yum命令需要联网

案例:

  • yum [-y] install wget 通过yum命令安装wget
  • yum [-y] remove wget通过yum命令卸载wget

5.1.3 apt命令

  • CentOS: .rpm——yum
  • Ubuntu:.deb——apt

小结:

  1. 在CentOS系统中,使用yum命令联网管理软件安装。
    • yum语法: yum [-y] [install | remove | search] 软件名称
  2. 在Ubuntu系统中,使用apt命令联网管理软件安装。
    • apt语法: apt [-y] [install | remove | search] 软件名称

在这里插入图片描述

5.2 systemctl控制软件启动关闭

Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启

能够被systemctl管理的软件,一般也称之为:服务

语法:

systemctl start | stop | status | enable| disable 服务名
  • start——启动
  • stop——关闭
  • status——查看状态
  • enable——开启开机自启
  • disable——关闭开机自启

系统内置的服务比较多,比如:

  • NetworkManager——主网络服务

  • network——副网络服务

  • firewalld——防火墙服务

  • sshd,ssh服务——(FinalShell远程登录Linux使用的就是这个服务)

    在这里插入图片描述

除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制。

  • yum install -y ntp——安装ntp软件
    • 可以通过ntpd服务名,配合systemctl进行控制
  • yum install -y httpd——安装apache服务器软件
    • 可以通过httpd服务名,配合systemctl进行控制

在这里插入图片描述

5.3 软连接

在系统中创建软链接,可以将文件、文件夹链接到其它位置。

类似Windows系统中的【快捷方式】

语法:

ln -s 参数1 参数2

  • -s选项, 创建软连接:
  • 参数1: 被链接的文件或文件夹
  • 参数2: 要链接去的目的地

实例:

  • ln -s /etc/yum.conf ~/yum.conf
  • ln -s /etc/yum ~/yum

在这里插入图片描述

5.4 ip地址和主机名

5.4.1 ip地址

  • 每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯
  • IP地址主要有2个版本,V4版本V6版本(V6很少用,课程暂不涉及)
  • IPv4版本的地址格式是: a.b.c.d, 其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址

在这里插入图片描述
在这里插入图片描述

5.4.2 特殊ip地址

  • 127.0.0.1 本机地址

  • 0.0.0.0 特殊IP地址

    • 可以用于指代本机
    • 可以在端口绑定中用来确定绑定关系
    • 在一些IP地址限制中, 表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问

在这里插入图片描述

5.4.3 主机名

  • 每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名
  • 无论是Windows或Linux系统,都可以给系统设置主机名

在这里插入图片描述

在这里插入图片描述
修改主机名

  • hostnamectl set-hostname主机名,修改主机名(需root)

域名解析:

在这里插入图片描述

即:

  • 先查看本机的记录(私人地址本)
    • Windows看: C:\Windows\System32\drivers\etclhosts
    • Linux看: /etc/hosts
  • 再联网去DNS服务器询问

在这里插入图片描述

5.5 配置Linux固定ip

为什么需要固定IP

当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。

DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更

  • 原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统,如果IP地址经常变化我们就要频繁修改适配很麻烦
  • 原因2:在刚刚我们配置了虚拟机IP地址和主机名的映射,如果IP频繁更改,我们也需要频繁更新映射关系

综上所述,我们需要IP地址固定下来,不要变化了。

【linux】linux系统配置静态IP地址(超详细,手把手教会)

在这里插入图片描述

5.6 网络传输

5.6.1 网络请求和下载

5.6.1.1 ping命令

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.6.1.2 wget命令

在这里插入图片描述

在这里插入图片描述

5.6.1.3 curl命令

在这里插入图片描述

在这里插入图片描述

5.6.2 端口

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

  • 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口, HDMI端口等
  • 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的

在这里插入图片描述
在这里插入图片描述

计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。
通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通

IP地址相当于小区地址在小区内可以有许多住户(程序),而门牌号(端口)就是各个住户(程序)的联系地址

5.6.2.1 端口的作用

端口号的主要作用是表示一台计算机中的特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、Web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务,如常见的端口号21表示的是FTP服务,端口号23表示的是Telnet服务,端口号25指的是SMTP服务等。

5.6.2.2 端口的分类

TCP与UDP段结构中端口地址都是16比特,可以有在0—65535范围内的端口号。

按照端口号分类:

  • 公认端口:0~1023。它们紧密绑定于一些服务,通常这些端口的通讯明确表明了某种服务的协议,如:80端口对应与HTTP通信,21端口绑定与FTP服务,25端口绑定于SMTP服务,135端口绑定与RPC(远程过程调用)服务。
  • 注册端口:1024~49151。它们松散的绑定于一些服务,也就是说有许多服务绑定于这些端口,这些端口同样用于其他许多目的,如:许多系统处理端口从1024开始
  • 动态或私有端口:49152~65535。理论上,不应为服务分配这些端口,通常机器从1024开始分配动态端口。例外:SUN的RPC端口从32768开始。

按照协议类型分类:按协议类型划分可分为TCP端口、UDP端口、IP端口、ICMP。

  • TCP端口:即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP的21端口,Telnet的23端口,SMTP的25端口,HTTP的80端口。
  • UDP端口:即用户数据报协议端口,无需在客户端和服务器端建立连接,安全性得不到保障。常见的DNS的53端口,SNMP(简单网络管理协议)的161端口,QQ使用的8000和4000端口。
  • 保留端口:UNIX有保留端口号的概念,只有超级用户特权的进程才允许给它自己分配一个保留端口号。这些端口号介于1~1023之间,一些应用程序将它作为客户与服务器认证的一部分。
5.6.2.3 端口使用的注意事项
  • 不要使用端口号小于1024的端口。
  • 端口号一般习惯为4位整数,在同一台计算机上端口号不能重复,否则,会产生端口号冲突。
  • 客户端端口号因存在时间很短暂又称临时端口号,大多数TCP/IP实现给临时端口号分配1024—5000之间的端口号。大于5000的端口号是为其他服务器预留的 。
5.6.2.4 查看端口占用

在这里插入图片描述

1. 使用 netstat 命令

netstat 是一个用于显示网络状态信息的命令。要查看特定端口是否被占用,可以使用以下命令:

netstat -tuln | grep 端口号
  • -t: 显示 TCP 连接信息
  • -u: 显示 UDP 连接信息
  • -l: 仅显示监听状态的端口
  • -n: 使用数字格式显示端口号,而不是服务名
  • grep 端口号: 使用 grep 命令过滤出指定的端口号信息

例如,要查看端口号 80 是否被占用,可以执行:

netstat -tuln | grep 80

在这里插入图片描述

2. 使用 ss 命令

ss 是一个更现代化的工具,用于显示套接字统计信息。它比 netstat 更快速和高效。要查看端口占用情况,可以使用以下命令:

ss -tuln | grep 端口号

-t: 显示 TCP 连接信息
-u: 显示 UDP 连接信息
-l: 仅显示监听状态的端口
-n: 使用数字格式显示端口号,而不是服务名
grep 端口号: 使用 grep 命令过滤出指定的端口号信息
例如,要查看端口号 80 是否被占用,可以执行:

ss -tuln | grep 80

3. 查看所有端口占用情况

如果你想查看系统上所有端口的占用情况,只需省略 grep 命令即可:

使用 netstat:

netstat -tuln

或者使用 ss:

ss -tuln

这将显示所有 TCP 和 UDP 端口的监听情况。

在这里插入图片描述

5.7 环境变量

在这里插入图片描述

key-value的结构

用来记录一些关键信息

输入env查看

在这里插入图片描述

在这里插入图片描述

自行设置环境变量:

在这里插入图片描述

在这里插入图片描述

5.8 上传、下载

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.9 压缩 、解压

5.9.1 压缩格式

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

  • zip格式: Linux、Windows、MacOS,常用
    -7zip: Windows系统常用
  • rar: Windows系统常用
  • tar: Linux、MacOS常用
  • gzip: Linux、MacOS常用

在Windows系统中常用的软件如: winrar bandizip等软件,都支持各类常见的压缩格式,这里不多做讨论。

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

Linux和Mac系统常用有2种压缩格式,后缀名分别是:

  • .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装

  • .gz,也常见为.tar.gz, gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一一个文件内,可以极大的减少压缩后的体积

针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作

语法:

tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数n

下表列出了tar命令的一些常用参数及其功能:

参数功能
-c创建新的归档文件(打包)
-x从归档文件中提取文件(解包)
-f <文件名>指定归档文件名
-v显示操作的详细信息
-z通过gzip压缩归档文件
-j通过bzip2压缩归档文件
-C <目录>切换到指定目录
–exclude=<模式>排除匹配模式的文件
–list列出归档文件的内容
–help显示帮助信息

5.9.2 tar命令压缩

在这里插入图片描述

5.9.3 tar命令解压

在这里插入图片描述

5.9.4 zip命令压缩

在这里插入图片描述

5.9.5 unzip命令解压

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1615520.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

辽宁梵宁教育设计培训:赋能大学生,新技能学习再升级

辽宁梵宁教育设计培训&#xff1a;赋能大学生&#xff0c;新技能学习再升级 在当今这个日新月异、信息爆炸的时代&#xff0c;大学生们面临着前所未有的挑战与机遇。为了帮助他们更好地适应社会的快速变化&#xff0c;提升个人的综合素质和竞争力&#xff0c;辽宁梵宁教育设计…

基于python实现的医疗领域用户问答的意图识别算法研究(django)

基于python实现的医疗领域用户问答的意图识别算法研究(django) 开发语言&#xff1a;Python语言 数据库&#xff1a;MySQL&#xff0c;Neo4j知识&#xff1a;深度学习&#xff0c;知识图谱工具&#xff1a;pycharm、Navicat、Maven 系统的实现 系统登录界面 医疗领域用户问答…

华媒舍:百度竞价排名如何提升点击率

在网络推广中&#xff0c;提升点击率是十分重要的。运用百度搜索引擎广告是一种常用的提升点击率的形式。而百度竞价推广是搜索引擎所提供的一种付费流量方法&#xff0c;根据提高网站在搜索结果中的排名&#xff0c;可以有效提升点击率。下面我们就详细介绍如何运用百度竞价推…

钢管钢材地板踢脚线定购规格采购批发商城h5公众号开发

钢管钢材地板踢脚线定购规格采购批发商城h5公众号开发 商品管理&#xff0c;订单管理&#xff0c;用户管理&#xff0c;售后管理&#xff0c;商品评价&#xff0c;虚拟商品自动发货&#xff0c;优惠劵&#xff0c;购物送劵。 您可以在这个H5公众号商城上找到以下功能列表&…

flink Unsupported operand types: IF(boolean, NULL, String)

问题&#xff1a;业务方存储了NULL 字符串&#xff0c;需要处理为 null select if(anull&#xff0c;null&#xff0c;a); 结果遇到了 Unsupported operand types: IF(boolean, NULL, String)&#xff0c;根据报错反馈&#xff0c;很明显应该是没有对 null 自动转换&#xff…

Day39 网络编程(一):计算机网络,网络编程,网络模型,网络编程三要素

Day39 网络编程&#xff08;一&#xff09;&#xff1a;计算机网络&#xff0c;网络编程&#xff0c;网络模型&#xff0c;网络编程三要素 文章目录 Day39 网络编程&#xff08;一&#xff09;&#xff1a;计算机网络&#xff0c;网络编程&#xff0c;网络模型&#xff0c;网络…

JAVA学习笔记28(常用类)

1.常用类 1.1 包装类 1.包装类的分类 ​ 1.针对八中基本数据类型相应的引用类型–包装类 ​ 2.有了类的特点&#xff0c;就可以调用类中的方法 2.包装类和基本数据类型的转换 ​ *装箱&#xff1a;基本类型 --> 包装类型 //手动装箱 int n1 100; Integer integer ne…

Web3钱包开发获取测试币-Base Sepolia(二)

Web3钱包开发获取测试币-Base Sepolia(二) ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/b0c0ac86b04a496087471388532bc54a.png) 基于上篇 Web3钱包开发获取测试币-Polygon Mumbai(一) &#xff1a;https://suwu150.blog.csdn.net/article/details/137949473 我…

Centos7.9云计算CloudStack4.15 高级网络配置(3)

上两章的文章都是用的CloudStack的基本网络&#xff0c;这一篇我们来介绍CloudStack的高级网络&#xff0c;这里虚拟机用的是自己配置的内部网络&#xff0c;通过nat方式到物理网络。按照第一篇的文章&#xff0c;安装管理服务器和计算服务器。 并且在管理服务器配置好如下的全…

“EDM邮件营销”如何构建企业获客增长新赛道

在这个瞬息万变的数字时代&#xff0c;企业的营销策略不断进化&#xff0c;以求在激烈的市场竞争中脱颖而出。其中&#xff0c;“EDM&#xff08;Electronic Direct Mail&#xff09;邮件营销”作为一项经典且高效的营销手段&#xff0c;正借助先进的技术力量&#xff0c;重新焕…

20232937文兆宇 2023-2024-2 《网络攻防实践》实践六报告

20232937文兆宇 2023-2024-2 《网络攻防实践》实践六报告 1.实践内容 &#xff08;1&#xff09;动手实践Metasploit windows attacker 任务&#xff1a;使用metasploit软件进行windows远程渗透统计实验 具体任务内容&#xff1a;使用windows Attacker/BT4攻击机尝试对wind…

一篇文章带您了解面向对象(java)

1.简单理解面向过程编程和面向对象编程 面向过程编程&#xff1a;开发一个一个的方法&#xff0c;有数据需要处理&#xff0c;我们就可以调用方法来处理。 package com.web.quictstart;public class demo1 {public static void main(String[] args) {totalScore("张三&q…

05 JavaScript学习:语法

JavaScript 是一种动态类型的脚本语言&#xff0c;广泛用于网页开发和构建交互式网页。JavaScript 的语法相对简单&#xff0c;但功能强大&#xff0c;它可以在客户端执行&#xff0c;并与HTML和CSS一起构建交互式的网页。 JavaScript 字面量 在 JavaScript 中&#xff0c;字…

CUDA编程---线程束洗牌指令

从Kepler系列的GPU&#xff08;计算能力为3.0或更高&#xff09;开始&#xff0c;洗牌指令&#xff08;shuffle instruction&#xff09;作为一种机制被加入其中&#xff0c;只要两个线程在相同的线程束中&#xff0c;那么就允许这两个线程直接读取另一个线程的寄存器。 洗牌指…

实验 3--表的基本操作与数据查询

文章目录 实验 3--表的基本操作与数据查询4.3.1 实验目的4.3.2 实验准备实验内容1.在 SSMS 中向数据库 YGKQ 中的表插入数据。2.使用 T-SQL 语句向 YGKQ 中的表插入数据。3.在 SSMS 中删除数据库 YGKQ 中的表数据。4.使用 T-SQL 语句删除数据库 YGKQ中的表数据。5.在 SSMS 中修…

高级IO和5种IO模型

目录 1. 高级IO1.1 IO的基本概念1.2 OS如何得知外设当中有数据可读取1.3 OS如何处理从网卡中读取到的数据包1.4 IO的步骤 2. 五种IO模型2.1 利用钓鱼来理解2.2 阻塞IO2.3 非阻塞IO2.4 信号驱动IO2.5 IO多路转接2.6 异步IO 3. 高级IO的概念3.1 同步通信 VS 异步通信3.2 阻塞 VS …

《C语言深度解剖》(9):深度剖析数据在内存中的存储

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多数据结构与算法点击专栏链接查看&am…

ubuntu22.04 CH340/CH34x 驱动安装

CH34x驱动地址&#xff1a;CH341SER_LINUX.ZIP - 南京沁恒微电子股份有限公司 1、卸载旧驱动&#xff08;如果存在&#xff09; sudo rmmod ch341.ko 2、解压进入 driver 目录 unzip CH341SER_LINUX.ZIP cd CH341SER_LINUX/driver 3、编译 make 可能错误&#xff1a; make[1]…

Linux的学习之路:18、进程间通信(2)

摘要 本章主要是说一下命名管道和共享内存 目录 摘要 一、命名管道 1、创建一个命名管道 2、匿名管道与命名管道的区别 3、命名管道的打开规则 4、代码实现 二、system V共享内存 1、共享内存 2、共享内存函数 三、代码 四、思维导图 一、命名管道 1、创建一个命…

企业车辆管理系统平台是做什么的?

企业车辆管理系统平台是一种综合性的管理系统&#xff0c;它主要集车辆信息管理、车辆调度、车辆维修、油耗管理、驾驶员管理以及报表分析等多种功能于一体。通过这个平台&#xff0c;企业可以实现对车辆的全面管理&#xff0c;优化车辆使用效率&#xff0c;降低运营成本&#…