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

❤️新版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命令解压

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv8-PySide --- 基于 ultralytics 8.1.0 发行版优化 | 代码已开源

YOLOv8-PySide — 基于 ultralytics 8.1.0 发行版优化 Github 项目地址&#xff1a;https://github.com/WangQvQ/Ultralytics-PySide6 BiliBili视频地址&#xff1a;https://www.bilibili.com/video 页面效果 如何使用 pip install ultralytics8.1.0 or git clone --branch v…

mysql基础3——创建和修改数据表

创建数据表 创建一个表&#xff08;importtype有默认值1&#xff09;并插入一条数据&#xff08;importtype字段没有指定值&#xff09; 约束 默认约束&#xff08;把设置的默认值自动赋值给字段&#xff09; create table demo.importhead(listnum int,supplied int,stock…

Vue3+antd:表格中合并多行相同数据

注&#xff1a;本次以合并相同ID为示例 首先获取远程数据&#xff0c;获取完成之后对数据进行遍历 let customCellList []; // {start:0,length:2,id:xx} // 如果接口返回的数据相同ID之间不相邻&#xff0c;需要手动排序后才可以实现合并效果 res.data.forEach((item, inde…

VBA运行后,为什么excel的三个工作表结果一样?

运行完了excel的三个工作表的结果一样&#xff0c;问题在哪呢&#xff1f; 代码如下&#xff1a; Sub 计算成绩() 计算成绩 Macro i为工作表行号 Dim i, m, total As Integer Dim w1 As Worksheet For m 1 To Worksheets.count Set w1 Worksheets(m) i 2 total 0 …

【电机控制】滑模观测器PMSM无感控制波形图

【电机控制】滑模观测器PMSM无感控制波形图 文章目录 前言一、FOC控制1.三相电流2.Clark变换静止坐标系iαiβ3.park变换旋转坐标系idiq4.电流环PI控制输出UdUq5.UdUq 反park变换UαUβ 二、反电动势观测器BEMF1.静止坐标系iαiβ提取反电动势EaEb2.反电动势EaEb提取位置信息、…

HarmonyOS开发案例:【视频播放器】

介绍 基于video、swiper和slider组件&#xff0c;实现简单的视频播放器&#xff0c;可支持海报轮播、视频播放等功能。 相关概念 [video组件]&#xff1a;视频播放组件。[swiper组件]&#xff1a;滑动容器&#xff0c;提供切换子组件显示的能力。[slider组件]&#xff1a;滑…

【Linux】破解工具John the Ripper和端口扫描工具NMAP

一、弱口令检测---John the Ripper 1.了解 John the Ripper John the Ripper 是一款开源的密码破解工具&#xff0c;可使用密码字典&#xff08;包含各种密码组合的列表文件&#xff09;来进行暴力破解。 一款密码分析工具&#xff0c;支持字典式的暴力破解通过对shadow文件…

什么是区块链?什么是X314协议?

X314协议是一种基于区块链技术的分布式账本协议&#xff0c;具有去中心化、安全性高和可扩展性强的特点。本文将从多个角度对X314协议进行通俗解释&#xff0c;带您了解这一前沿技术。 一、什么是区块链和分布式账本&#xff1f; 首先&#xff0c;我们需要了解什么是区块链和分…

使用JavaScript创建数组,并对其进行冒泡排序

JavaScript创建数组方式 字面量方式&#xff1a;使用方括号 [] 来创建数组&#xff0c;并在方括号内按顺序列出数组元素。 let arr [1, 2, 3, 4, 5]; Array() 构造函数方式&#xff1a;使用 new Array() 构造函数来创建数组&#xff0c;并传入数组元素作为参数。 let arr ne…

论文笔记:Large Language Models Are Zero-Shot Time Series Forecasters

2023 neurips 完全是零样本&#xff08;zero-shot&#xff09;的&#xff0c;不需要微调 1 方法 1.1 Tokenization&#xff08;分词和编码&#xff09; 现有的LLM&#xff08;比如GPT3&#xff09;的tokenizer不能直接用来编码时间序列的句子 比如对数字42235630&#xff0…

网络工程师----第九天

路由表解析 路由表&#xff1a;简单点说路由表就是路由器用于指导数据包如何转发的表项&#xff0c;记录了去往目的IP的下一跳去哪里。 路由&#xff1a;路由是网络中的基本概念&#xff0c;网络的基本功能就是使得处于网络中两个IP地址能够互相通信。 路由表作用&#xff1a…

【Java】变量零基础教程

目录 一、引言 二、基本组成单位 三、变量的基本原理 四、变量的基本使用步骤 五、变量快速入门 六、变量使用的注意事项 一、引言 为什么需要变量&#xff1f; ​​​​​​一个程序就是一个世界。 大家看下图&#xff0c;是我们现实中的一张生活照&#xff0c;图里有树…

sc2024项目consul

1. 什么是consul HashiCorp Consul是一款服务网络解决方案&#xff0c;可让团队管理服务之间以及内部部署和多云环境及运行时的安全网络连接。consul提供服务发现、服务治理、流量管理和对网络基础设施设备的自动更新。(添加链接描述)Consul使用Go语言开发 2. 功能 多数据中…

【ARM 裸机】模仿 STM32 驱动开发

1、修改驱动 对于 STM32 来说&#xff0c;使用了一个结构体将一个外设的所有寄存器都放在一起&#xff0c;在上一节的基础上进行修改&#xff1b; 1.1、添加清除 bss 段代码&#xff0c; 1.2、添加寄存器结构体 新建一个文件&#xff0c;命名imx6u.h&#xff0c;注意地址的连…

PLC_博图系列☞N=:在信号下降沿置位操作数

、 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数 文章目录 PLC_博图系列☞N&#xff1a;在信号下降沿置位操作数背景介绍N&#xff1a; 在信号下降沿置位操作数说明参数示例 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 N 背景介绍 这是一篇关于PLC编程的…

【C++】---STL之vector详解

【C】---STL之vector详解 一、vector的介绍&#xff1a;二、vector的成员函数&#xff1a;1、vector类的构造函数2、vector的元素访问符3、vector的迭代器4、vector的模版5、vector的拷贝构造6、vector的容量&#xff08;1&#xff09;vector的增容机制&#xff08;2&#xff0…

学习笔记Day21:转录组差异分析

转录组差异分析 差异分析难点在于将数据处理成需要的格式 表达矩阵 数值型矩阵-count 行名是symbol 低表达量的基因需要过滤 分组信息 因子&#xff0c;对照组在level第一位 与表达矩阵的列一一对应 项目名称 字符串&#xff08;不要有特殊字符&#xff09; TCGA-XX…

IntelliJ IDEA - Lombok supports: OpenJDK javac, ECJ

问题描述 java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy26Lombok supports: OpenJDK javac, ECJ 解决方案 在 IDEA 设置中 File -> Settings 中找到配置如下&#xff1…

openEuler-23.03下载、安装

一、下载 下载地址&#xff1a;openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 下载版本&#xff1a;openEuler-23.03-x86_64-dvd.iso 二、安装 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens-33## 要修改部分 BOOTPROTOstatic## 新增部分 IPADDR192.168.1.128 …

FPGA - ZYNQ 基于Axi_Lite的PS和PL交互

前言 在FPGA - ZYNQ 基于EMIO的PS和PL交互中介绍了ZYNQ 中PS端和PL端交互的开发流程&#xff0c;接下来构建基于基于Axi_Lite的PS和PL交互。 开发流程 Axi_Lite从机 在FPGA - AXI4_Lite&#xff08;实现用户端与axi4_lite之间的交互逻辑&#xff09;中&#xff0c;详解介绍…