一,初识Linux
1.0Linux中的重要文件夹目录介绍
1.0.1bin和sbin目录
- 在Linux系统中,/bin和/sbin是两个常见的目录,它们包含了许多系统可执行文件。这些文件是系统启动和运行所必需的,并且通常由root用户或其他系统管理员运行。
- /bin目录包含常用的系统命令和可执行程序,如ls、cp、mv、rm等。这些命令和程序通常是所有用户都可以运行的,因为它们是系统中最基本的功能。
- /sbin目录包含的是一些只有管理员才能使用的系统命令和可执行程序,如fdisk、iptables、ifconfig等。这些命令和程序通常需要特殊的权限才能运行,因为它们通常是用来管理系统配置和网络设置等任务的。
1.0.2lib与lib64目录
- 在Linux系统中,/lib目录通常包含着系统所需的共享库文件,这些库文件是为了支持系统和应用程序的运行而存在的。与Windows系统中的system32类似,相当于动态连接库dll文件。
- 共享库的好处是可以使多个应用程序共享同一个库,从而减少磁盘空间的占用,提高系统性能,并且可以减少代码的重复和维护工作量。共享库通常包括动态链接库(.so文件)和静态链接库(.a文件)两种类型。
- 在/lib目录下,通常会包含一些基本的系统共享库,如C库(libc.so)、数学库(libm.so)、线程库(libpthread.so)等。这些库文件是系统运行所必需的,因此它们通常会被预装在系统中,以供所有应用程序使用。
- 除了/lib目录,还有一个/lib64目录,是64位系统的共享库目录。在某些系统中,/lib目录和/lib64目录可能会被链接到同一个物理目录,以便兼容32位和64位共享库。
1.1操作系统概述
1.1.1. 概念
操作系统(Operating System,简称OS)是计算机系统中的一种软件,负责管理和控制(调度)计算机硬件资源,为用户和应用程序提供统一的接口和环境,使其能够有效地与计算机系统交互。
1.1.2. 作用
(1) 资源管理:操作系统负责管理计算机硬件资源,如处理器、内存、磁盘存储和输入/输出设备,以合理地分配、调度和控制这些资源,使多个应用程序能够共享计算机资源。
(2)用户接口:操作系统为用户提供了与计算机系统交互的接口,如命令行界面(CLI)或图形用户界面(GUI),使用户能够操作和控制计算机系统。
(3)文件系统:操作系统提供了文件系统来管理计算机中的数据存储,包括文件的创建、读取、写入、删除等操作,并对文件进行组织和保护,以便用户能够方便地访问和管理文件。
(4)进程管理:操作系统管理和调度进程(或任务),包括创建、撤销、暂停、恢复、调度和同步进程,以实现多任务处理和并发执行。
(5)内存管理:操作系统负责管理计算机内存的分配和回收,包括虚拟内存的管理,以提供给应用程序足够的内存空间,并优化内存的使用。
(6)设备驱动程序:操作系统提供了设备驱动程序,用于管理和控制计算机系统的输入/输出设备,如键盘、鼠标、打印机、网络接口等。
(7)错误检测和处理:操作系统能够检测和处理系统错误和异常,如硬件故障、软件错误、权限错误等,以保护计算机系统和数据的安全。
1.1.3. 总结
操作系统是计算机系统中的核心软件之一,它为应用程序提供了抽象和接口,使其能够在硬件资源上运行,并为用户提供了友好的交互方式。不同类型的计算机系统有不同的操作系统,如Windows、macOS、Linux、UNIX等,它们都具有不同的特点和用途。操作系统对于计算机系统的性能、安全和稳定性都起着重要作用。
1.1.4. 接收发送信息实例
1.2 初识Linux
1.2.1. Linux诞生
Linux诞生于1991年,由芬兰程序员林纳斯·托瓦兹(Linus Torvalds)创建。当时,托瓦兹是一名赫尔辛基大学的计算机科学学生,他为了学习操作系统内核设计和开发,开始着手创建一个自己的操作系统。
托瓦兹的目标是基于类似于UNIX的操作系统,但可以在个人计算机上运行,并且可以自由地进行修改和分发。他开始编写一些简单的内核代码,并在1991年8月25日发布了第一个版本,称之为Linux 0.01。这个版本仅包含了一个简单的内核,并没有完整的操作系统功能,但它标志着Linux操作系统的诞生。
随着时间的推移,越来越多的程序员为Linux内核作出贡献,不断改进和扩展了它的功能。Linux逐渐成为一个完整的操作系统,支持多用户、多任务、网络连接等功能,并且具有出色的稳定性和性能。现在,Linux已经成为世界上最受欢迎的操作系统之一,被广泛应用于服务器、嵌入式系统、移动设备和超级计算机等各种领域。此外,Linux还成为了自由和开放源代码软件运动的旗帜,吸引了全球大量的开发者和用户。
1.2.2. 什么是Linux内核
Linux内核是一个开源的操作系统内核,它是Linux操作系统的核心组件。它负责管理计算机的硬件和软件资源,并为用户提供一个稳定、高效的操作系统环境。Linux内核是由Linus Torvalds在1991年开始编写的,目前已经成为了世界上最流行的操作系统内核之一。
Linux内核具有以下特点:
(1)开源:Linux内核的源代码是公开的,任何人都可以查看和修改它。
(2)可定制性:Linux内核可以根据用户的需求进行定制,用户可以添加或删除特定功能模块。
(3)良好的兼容性:Linux内核可以运行在多种不同的硬件平台上,例如PC、服务器、移动设备等。
(4)高效性:Linux内核具有高效的资源管理和调度功能,可以最大限度地利用计算机的资源。
(5)安全性:Linux内核的安全性较高,因为它实现了许多安全功能,例如访问控制、加密等。
(6)支持多任务处理:Linux内核支持多任务处理,可以同时运行多个程序,并且能够有效地分配计算机资源。
1.2.3 Linux发行版
(1)Linux内核是免费开源的,任何人都可以下载开发,如果自己开发出应用程序与Linux内核相结合,则构成了完整的Linux系统。
(2)Linux发行版(Linux distribution)是一个包含Linux内核和各种系统工具、应用程序和软件包的操作系统的集合。Linux发行版由不同的开发者和组织维护和发布,每个发行版都有其独特的特性和功能。
(3)Linux内核是Linux发行版的核心组件,它提供了操作系统的核心功能。除了内核之外,Linux发行版还包括许多其他组件,如桌面环境、窗口管理器、系统工具、应用程序和各种软件包。
1.3虚拟机VMware安装
虚拟机是一种在计算机上创建虚拟计算环境的软件程序。它可以在一台物理计算机上运行多个虚拟操作系统,使多个应用程序能够同时运行而不会相互干扰。虚拟机可以模拟计算机的硬件和系统资源,包括CPU、内存、硬盘和网络接口等。虚拟机技术可以实现资源共享和隔离,提高资源的利用率,同时也提供了一种灵活的方式来测试和部署软件应用程序。常见的虚拟机软件包括VMware、VirtualBox和Hyper-V等。
1.3.1VMware虚拟机下载
- 网站:VMware下载网站
- 下载试用版一个月
1.3.2VMware安装
1.3.3检查虚拟网卡有没有安装
- 进入设置页面:
- 网络设置
- 确保有VMnet1和VMnet8虚拟网卡:后期保证虚拟机正常上网
1.4虚拟机中安装Linux系统
1.4.1下载Linux操作系统CentOS\
-
Linux操作系统下载网址
1.4.2配置虚拟机
系统自动安装:
点击用户名,输入密码进入系统界面:
1.5远程链接Linux系统
1.5.1使用虚拟机操作Linux系统的弊端
虚拟机中Linux系统自带图形化操作页面和命令操作两种方式:
在VMWare虚拟机中我们可以对Linux系统进行操作,可以使用里面的图形操作,也可以使用命令进行操作,但毕竟是在window系统下运行虚拟机,在开启对Linux系统的使用,不太方便,所以接下来将使用辅助工具,在window下直接对Linux进行链接,不再代开虚拟机使用Linux系统。
1.5.2FinalShell第三方连接软件安装
安装成功后自动跳入官方网站,并打开软件:
1.5.3使用FinalShell连接Linux系统
- 使用VMWare虚拟机打开Linux系统,并登录账号密码:
- 空白桌面鼠标右键打开终端,输入ifconfig查询虚拟机IP地址:
- 回到FinalShell
在虚拟机中查询文件与第三方软件FinalShell查询结果对比:
(1)虚拟机:
(2)Finalshell:
1.6VMware创建快照
在使用虚拟机中的Linux系统时有可能会出现系统损坏等各种情况,为了能够处理这种情况可以通过给目前系统状态添加快照,当后面某一时间节点系统出现问题时可以回到快照节点,恢复正常:
当需要恢复时直接选择上面对应快照,并点击转到即可:
二,Linux基础命令
2.1Linux目录结构
- 与Windows系统不同,Linux系统并不分C,D,E盘,而是以 / 为根目录:
2.两种系统的文件表示方式不同:
(1)在Windows上,文件路径使用反斜杠(\)作为目录分隔符,例如:C:\Users\username\Documents\file.txt。
(2)而在Linux上,文件路径使用斜杠(/)作为目录分隔符,例如:/home/username/Documents/file.txt。
(3)此外,在Linux上,文件路径区分大小写,而在Windows上,文件路径通常不区分大小写
2.2Linux命令
2.2.1命令格式
- 命令 [选项] [参数]
其中,命令是需要执行的Linux命令,选项是可选的,可以控制命令的行为和输出的方式,参数是命令需要操作的对象,比如文件名、目录名等。
2.2.2常用命令
2.2.3展示当前目录内容命令:ls
- ls 命令是Linux系统中常用的命令之一,用于列出目录中的文件和子目录。以下是一些常用的 ls 命令选项:
(1)ls
:列出当前目录中的所有文件和子目录。
(2)ls -l
:以长格式列出当前目录中的所有文件和子目录,并显示文件的权限、所有者、文件大小、修改日期和时间等详细信息。列表形式
(3)ls -a
:列出当前目录中的所有文件和子目录,包括隐藏文件和目录。
(4)ls -lh
:以人类可读的格式列出当前目录中的所有文件和子目录,文件大小以K、M等单位显示。
例1:展示根目录内容:
(1)ls /
(2)ls -a
列出多有文件,以 . 开头的是隐藏文件:
(3)ls -l
:以列表形式展示
(4)混合使用选项:ls -la
(5)-h选项要和-l选项一起用,因为要将列表中的数据文件大小以K、M等单位显示。
2.2.4目录切换命令cd,pwd
- Linux中,cd命令用于更改当前工作目录,而pwd命令用于显示当前工作目录的绝对路径。要更改当前工作目录,请使用cd命令,后跟要更改为的目录的路径。例如,要更改到名为“documents”的目录,您可以输入:
cd documents
- 如果要返回到上一级目录,请使用“…”表示。例如,要返回到上一级目录,请输入:
cd ..
- 要显示当前工作目录的绝对路径,请使用pwd命令。只需输入
pwd
该命令将显示类似于“/home/user/documents”的输出,其中“/”表示根目录,后面是从根目录到当前工作目录的完整路径。
4.切换到上一次所在的目录
cd -
2.2.5相对路径,绝对路径
- 绝对路径是从根目录开始指定的完整路径。它包括所有的目录和子目录,以及文件名或目录名。例如,在Linux系统中,绝对路径通常以“/”开头。例如,/home/user/documents/myfile.txt 是一个绝对路径,它指向根目录下的 home 目录、user 目录、documents 目录下的 myfile.txt 文件。
- 相对路径是相对于当前工作目录的路径。它只包括目录和子目录,以及文件名或目录名。例如,在当前工作目录为/home/user/documents时,相对路径myfile.txt表示文件/documents/myfile.txt。
- 相对路径的常用符号有:".“表示当前目录,”. .“表示上一级目录,”~"表示HOME目录,
cd ~
切换到HOME目录。例如,../myfile.txt
表示上一级目录
中的myfile.txt文件。
2.2.6创建文件夹目录mkdir(make direction)
- 语法:
mkdir [p] Linux路径
- 参数必填:表示创建的文件夹路径,相对路径,绝对路径都可以。
- p选项可选:表示创建不存在的父目录,适合创建连续多级目录。例如:
mkdir -p ./Test1/test1
在当前目录创建Test1/test1目录,因为Test1不存在,前面加了选项-p,会自动创建,相当于创建了多层目录。
练习:
注意:mkdir创建的是文件夹,不是文件.txt,使用touch创建文件
2.2.7文件创建与查看命令
- touch创建文件
touch Linux路径
例: 在Dic1文件夹内创建文件test.txt
通过虚拟机中的用户界面手动添加数据到test.txt文件:
- cat查看文件内容
cat Linux路径
- more 查看文件内容
more Linux路径
与cat区别:cat直接将内容显示出来,more支持通过空格翻页,q退出查看,如果文件内较多则可以选择more进行查看内容。
- 总结:
2.2.8文件复制,移动,删除命令
- cp命令(copy): 复制文件或文件夹
cp [-r -i -v] 目前路径 目标路径
-r:选项,可选,用于复制文件夹使用,表示递归拷贝文件夹中所有文件,当拷贝的是文件夹时必须加上,如果只是单个文件可不加。
-i:显示提示信息,如果目标地址中存在于拷贝的文件名字相同的文件需要使用-i选项提示是否将目标路径中的同名文件进行覆盖。
-v:显示拷贝后的路径描述
例1:将目前文件夹中的test.txt复制一份到test1文件夹:
2. mv移动文件或文件夹
mv 被移动文件路径 目标路径
- rm删除文件/文件夹
rm [-r -f -i] 参数1 参数2
-r:用于删除文件夹使用,当删除的是文件夹时必须加上,如果只是单个文件可不加。
-f:表示force,强制删除(不会弹出提示信息)。普通用户删除不会有提示,只要root用户才会有提示,可以通过输入su root
然后输入密码进入root模式,操作完之后使用exit
命令退出root,返回普通用户。
-i:在执行删除操作时给出提示:是否删除?
参数表示需要删除的文件路径,可删除多个文件,路径中间用空格隔开。
4. 总结:
2.2.9查找命令find,grep
- 我们所使用是LInux命令其实本体就是一个个的二进制可执行程序。和Windows里 的.exe文件。我们可以通过which命令查询命令的程序文件在哪里:使用which命令:which命令可以查找指定命令的位置。例如,要查找ls命令所在的位置,可以在终端中输入:which ls。
- 使用man命令:man命令可以查看Linux中的手册页面,包括命令的详细说明、使用方法、参数等。例如,要查找ls命令的使用方法,可以在终端中输入:man ls。按q退出。
- 使用find命令:find命令可以在指定目录中查找符合条件的文件。例如,要在当前目录中查找所有以“txt”结尾的文件,
find 起始路径 -name “文件名”
可以在终端中输入:find . -name "*.txt"
- 使用通配符星号做模糊查询:符号 * 表示通配符,即匹配任意内容:
(1)find /home -name test*
:匹配以test开头的内容
(2)find /home -name *test*
:匹配任何包含test的内容
(3)find /home -name *test
:匹配以test结尾的内容
2.2.10grep过滤,wc统计命令,管道符
- grep命令:从文件中通过关键字过滤文件行
(1)语法:grep [-n -v -i] 关键字 文件路径
(2)-n :可选,表示在结尾显示匹配的行号;-v:显示不包含匹配文本的所有行;-i:忽略大小写
(3)关键字:必填,表示 过滤的关键字,带有空格或其他特殊符号,建议使用" "括起来
(4)创建test2文件,并输入内容
(5)用grep命令过滤查询存在good 的行有哪些?
grep -n "good" /home/root1/Test1/Dic2/test2.txt
主输出存在“good”的行并标红:
2. wc统计文件内容
(1)语法:wc [-c -m -l -w]
文件路径
(2)-c:统计bytes数量
(3)-m:统计字符数量
(4)-l:统计行数
(5)-w:统计单词数量
wc /home/root1/Test1/Dic2/test2.txt
统计字节数:
单词数:
3. 管道符:结"|"输入
管道符可以将左边命令的结果作为右边命令的输入
例如:查找文件中含有good单词的行中有几个单词:
grep good /home/root1/Test1/Dic2/test2.txt|wc -w /home/root1/Test1/Dic2/test2.txt
管道符右边可以不用输入路径:
管道符可以嵌套使用:A|B|C,A的结果给B,A|B的结果给C
练习:
2.2.11查看命令帮助的方式
命令帮助操作 | 说明 |
---|---|
–help | command --help |
man | man command |
– | – |
查看命令帮助的目的是查看命令选项及命令选项的说明
- main命令:
操作按键 | 说明 |
---|---|
空格 | 向下翻页 |
回车 | 显示下一行信息 |
b | 向上翻页 |
q | 退出 |
2.2.12echo命令,重定向,tail命令
- echo命令:类似于print语句在屏幕输出值。
- 反引号`将内容包围,内容作为命令执行
- 重定向:> 将左侧内容覆盖到右侧指定文件中,>>将左侧内容追加到右侧文件中
- tail命令查看文件尾部内容,跟踪文件的最新更改
(1)语法:tail [-f -num] 文件路径
(2)-f:持续跟踪,Ctrl+C退出
(3)-num:表示跟踪尾部多少行,不填默认十行
先向test2中添加数据:
tail后五行数据:
持续跟踪后五行数据:
另外开一个系统连接,向文件添加内容,持续跟踪的文件会立马显示结果:
在系统2中向文件添加数据,系统1会立马显示:
Ctrl+C退出:
2.3vim编辑器
-
vim是vi的加强版,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同的字体来辨别语法的正确性,极大的方便了程序的设计和编辑性。
-
vim三种编辑模式
(1)命令模式:命令模式下所输入的内容均为命令,以命令驱动执行不同的功能,此模式下,不能自由进行文本编辑。
(2)输入模式:即编辑模式,插入模式,此模式下对文本文件进行自由编辑。
(3)底线模式:以冒号开始:通常用于文件的保存,退出。 -
进入test2.txt所在的文件夹,使用
vim test2.txt
进入命令模式:
快捷键:
(1)YY P复制光标所在行并黏贴
(2)DD 删除当前行
(3)U撤销刚才的操作:
(4)由于Linux中vim命令模式下,已经存在的内容不能通过回车键控制换行,所以如果想在两行已经存在的内容之间插入内容需要使用快捷键:命令模式下输入 小o:例如准备在Music和Pictures行之间新开辟一行用来输入内容:将光标移动到Music所在行
按o,自动开辟新行并进入编辑模式:
(5)同理,大O则是在光标所在行的上面一行开辟新行并进入输入模式。其他在命令模式下的快捷键如下: -
按下i进入输入模式:
按ESC退出编辑模式,进入命令模式 -
按下 :进入底线模式,输入wq保存并退出(w保存,q退出)
三,Linux权限管控
3.1root用户
- root用户拥有最大的操作权限,而普通用户在许多地方的权限是受限的。普通用户一般只在home内不受限制。出了home一般只拥有只读和执行权限,无修改权限。
- 例如在根目录下创建目录,普通用户会显示权限不够:
- 切换root用户后创建目录:
su - root
,su:switch user切换用户。在root用户下输入exit或者快快捷键“Ctrl+D”退出回到上一个用户。
3.2sudo临时root命令
- 当我们知道root用户的密码时,可以通过su
-root,输入密码切换root用户,但不推荐长期使用root用户,避免进行错误的操作损坏系统。 - 我们可以通过使用sudo命令加在其他命令之前,临时以root身份执行命令,语法:
sudo 其他命令
- 只有获得sudo认证的用户才能使用此命令,需要为普通用户配置sudo认证。
- 进入root用户,使用命令
visudo
进入vi编辑器,对文件进行编辑,按小o进入最后一行,输入:root1是需要给他sudo权限的用户,不同的用户名更换名字即可。
按下esc进入命令模式,输入:wq
保存退出即可
3.3用户,用户组管理
-
Linux系统可配置多个用户或者用户组,用户也可以加入用户组,以便于给用户或者用户组权限控制。例如:某个组内的用户都拥有某一权限。
-
用户组管理命令:需要root用户去设置
(1)创建用户组:groupadd 用户组名
(2)删除用户组:groupdel 用户组名
-
用户管理
(1)创建用户:useradd [-g -d] 用户名
-g:指定用户属于哪一个组,如果没有指定则会自动创建同名的组自动加入,指定组的话,需要这个组已经存在
-d:指定用户home路径,不指定则HOME目录默认在/home/用户名
(2)删除用户:userdel [-r] 用户名
-r:删除用户的HOME目录,不适用-r,HOME目录保留
(3)查看用户所属组bash id[用户名]
(4)修改用户组:usermod -aG 用户组 用户名
-
getent命令
适用getent命令可以查看系统中有哪些用户:
最下面是自己创建的:
getent group
可以查看存在哪些组
四,Linux实用操作
4.1常用快捷键
- Ctrl+C:强制停止,对于Linux某些运行的程序,如tail跟踪命令,想要停止它,或者命令输入错误,都可以使用。
- Ctrl+d:退出或登出,退出账号登录,或者退出某些特定页面,如python编辑页面,vim不可以,vim用esc退出。
- history命令:查看历史输入过的命令
可通过Ctrl+r输入内容去匹配历史命令,如果搜索的是需要的,回车执行,键盘左右键可得到此但命令不执行。
- 光标快捷键
4.2yum命令软件安装
在Linux中软件安装包是.rpm
- yum:rpm包软件管理器用于自动化安装配置Linux软件,并可以自动解决依赖问题。
- 语法:
yum [-y] [install | remove |search] 软件名
- 选项:y:自动确认,无需手动确认安装或卸载过程,install:安装,remove:卸载,search:搜索应用商店有么有
注意:yum命令需要root授权 - wget:用于实现联网皆可以从网站下载的操作,但由于Linux中没有该程序,需要下载安装它:
yum -y install wget
(1)搜索是否存在此程序:
(2)安装wget程序:
- 卸载,搜索
yum -y remove wget
yum search wget
4.3systemctl命令
- Linux用于很多内置或第三方软件,均支持systemctl命令控制:启动,停止,开机自启,能够被systemctl管理的软件,一般也称之为服务。
- 语法:`systemctl start|stop|status|enable|disable 服务器名
- 系统内置服务
- 安装httpd服务器软件
查看运行状态:inacticity未运行
总结:部分软件在安装后会自动集成到systemctl中,可以通过systemctl命令来查看或设置服务状态,有些则不会,需要手动添加,后续讲解。
4.4ln命令创建软连接
- Linux软连接(symbolic link)是一种特殊的文件,它指向另一个文件或目录。与硬链接(hard link)不同,软连接不是实际的文件副本,而是一个指向目标文件或目录的引用。类似于Windows系统中软件的快捷方式。
- 创建软连接可以使用ln命令,其中 -s选项表示创建软连接。例如,要将 /home/user1/data 目录创建软连接到 /home/user2/backup 目录,可以使用以下命令:
ln -s /home/user1/data /home/user2/backup
-s:表示创建的是软连接。
这将在 /home/user2/backup 目录中创建一个名为 data 的软连接,它指向 /home/user1/data 目录。
- 使用软连接有很多好处,其中最常见的是可以创建指向其他计算机上的文件或目录的链接,或者创建指向在移动硬盘等可移动媒体上的文件或目录的链接。此外,软连接还可以用于简化目录结构,当一些经常使用的文件的路径非常深的时候可以使用软连接简化目录,使用户可以轻松地访问需要的文件或目录。
4.5日期和时间
4.5.1日期查询
- 在Linux系统中,date命令用于显示或设置系统的日期和时间。格式:
date [-d] [+格式化字符串]
-d按照给定的字符串显示日期,一般用于日期计算
格式化字符串:通过特定字符串标记,控制显示日期的格式
(1)显示当前时间:date
(2)显示当前日期:
date +%Y-%m-%d
(3)显示当前时间
date +%H:%M:%S
(4)显示当前完整日期和时间:
date +"%Y-%m-%d %H:%M:%S"
4.5.2日期加减
-d选项,可以按照给定的字符串显示,一般用于日期计算
4.5.3修改时区
- 首先,使用命令timedatectl查看当前系统时区:
- 如果需要修改时区,可以使用以下命令
sudo timedatectl set-timezone <时区>
例如,如果需要将时区修改为北京时间(中国标准时间),可以使用以下命令:
sudo timedatectl set-timezone Asia/Shanghai
3. 方法二:
4. 方法三:时间自动校准
安装ntp程序,
自动校准时间,yum -y install ntp
并设置开机自启:systemctl enable ntpd
4.5IP地址,主机名
4.5.1IP地址
- 概念:IP地址是Internet Protocol
(IP)地址的缩写,它是用于在Internet上识别和定位设备的数字地址(唯一)。IP地址用于将数据包从一个设备发送到另一个设备,类似于邮寄地址的作用。
IPv4是Internet协议版本4的缩写,它是目前最广泛使用的IP协议版本之一。IPv4地址由32位二进制数字组成,通常用4个用点分隔的十进制数表示。 - 格式:a.b.c.d其中a,b,c,d表示0~255的数字,例如,192.168.1.1就是一个IPv4地址。
- 通过命令
ifconfig
查看本机的IP地址。 - 特殊IP:127.0.0.1:IP地址127.0.0.1是回环地址或本地主机地址,是一种特殊用途的IP地址,用于指代本地计算机。当程序需要与本地计算机通信时,可以使用127.0.0.1作为目标IP地址,这样数据包将被发送到计算机的网络接口,然后立即被回送到同一台计算机上的应用程序,因此127.0.0.1通常用于测试和调试网络应用程序。
- 0.0.0.0地址:IP地址0.0.0.0是一种特殊的IP地址,被称为"未指定地址"或"通配地址"。它用于表示网络中所有可用的IP地址,通常在以下两种情况下使用:
(1)当一台设备正在配置网络连接时,可以将其IP地址设置为0.0.0.0,以指示该设备尚未被分配一个有效的IP地址。
(2)在服务器端,当服务需要监听所有可用的网络接口并等待客户端连接时,可以将服务器绑定到IP地址0.0.0.0上,以表示该服务器将接受来自任何可用网络接口的连接。这在一些应用程序中比较常见,比如Web服务器或FTP服务器等
4.5.2主机名
-
概念:主机名是计算机在网络上的名称标识符,它通常是一个字符串,用于标识特定计算机或设备。在Internet上,主机名通常与IP地址相关联,这使得计算机之间可以通过名称而不是IP地址进行通信。
主机名通常由字母、数字和连字符组成,长度可以从1到63个字符不等。在计算机上,主机名可以用来识别和访问不同的网络资源,例如文件共享、打印机、Web服务器和电子邮件服务器等。在网络上,主机名通常用DNS(Domain Name System)系统进行解析,将主机名映射到相应的IP地址 -
查看Linux和Windows主机名
-
修改Linux主机名(root权限)
格式:
hostnamectl set-hostname 主机名
实例:修改前:root是用户,bogon是Linux系统的主机名
修改后重新连接Linux查看:
4.5.3域名解析
- 概念:IP地址太难记,我们可以直接输入域名,例如www.baidu.com,通过域名解析成对应的IP,域名解析是将域名转换为IP地址的过程。
- 当您在浏览器中输入网站的域名时,浏览器需要通过域名解析来找到对应的IP地址,以便连接到服务器并获取网页内容。具体地说,当您输入域名并按下回车键时,浏览器会向本地 DNS服务器发出请求,询问该域名对应的IP地址。如果本地DNS服务器已经缓存了该域名的IP地址,则直接返回给浏览器;否则,本地DNS服务器会向 根域名服务器发送请求,以获取负责该域名的顶级域名服务器的IP地址。然后本地DNS服务器会向该顶级域名服务器发送请求,获取负责该域名的次级域名服务器的IP地址。最终,本地DNS服务器会向负责该域名的次级域名服务器发送请求,获取该域名对应的IP地址,并将其返回给浏览器。
整个域名解析过程需要经过多次查询和响应,因此可能会存在一定的延迟。不过,一旦本地DNS服务器缓存了域名的IP地址,下次访问相同的域名时就不需要再次进行域名解析了,从而提高访问速度。
- 根据其访问顺序,我们可以将某些域名与Ip 的映射关系添加到本地hosts中,当我们输入域名时不联网也能找到。接下来我们将Linux的主机名centos1与IP地址:192.168.111.129进行映射。
找到文件夹:
- 测试:
4.6设置固定IP
- DHCP概念DHCP(动态主机配置协议)是一种网络协议,用于为计算机或其他设备提供IP地址、子网掩码、默认网关和其他网络配置信息。 DHCP可以在网络上自动分配和管理IP地址,从而简化了网络管理的任务。
DHCP服务器是在网络上运行的一种程序,它可以向客户端设备提供网络配置信息,例如IP地址、子网掩码、默认网关、DNS服务器等。DHCP服务器可以减少手动分配IP地址的工作量,并且可以确保每个设备都具有唯一的IP地址。当客户端设备连接到网络上时,它们会向DHCP服务器发送请求以获取网络配置信息。 DHCP服务器会响应客户端请求,将必要的配置信息提供给客户端,从而使客户端可以正确地连接到网络。
DHCP动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP频繁的变更。 - 为什么需要固定IP
Linux系统需要固定IP地址的主要原因是为了使其更易于管理和定位。当计算机使用固定IP地址时,管理员可以轻松地了解哪些设备位于网络上,它们的IP地址是什么,以及它们所处的位置。
另一个原因是,许多网络服务和应用程序需要使用特定的IP地址来正常工作。如果IP地址是动态分配的,则可能会发生IP地址冲突的情况,这将导致网络故障和服务中断。
此外,固定IP地址还可以提高网络安全性。通过限制连接到网络的设备数量,并使用固定IP地址来限制网络访问,可以更好地控制网络流量,并减少未经授权的访问和安全威胁的风险。
总之,固定IP地址可以提高网络可靠性、安全性和管理效率,因此在许多情况下,对于Linux系统和其他操作系统,使用固定IP地址是一个很好的选择。 - VMware中配置gudingIP
(1)在VMware中配置IP地址网关和网段(IP地址的范围)
(2)在Linux系统手动修改配置文件,固定IP
使用vim编辑网卡配置文件:
IPADDR="192.168.111.130"
NETMASK="255.255.255.0"
GATEWAY="192.168.111.2"
DNS1="192.168.111.2"
重启网卡:systemctl restart network
4.7网络请求与下载
4.7.1使用ping命令检查服务器是否可连通
- 概念:在Linux中,ping命令用于测试与另一个网络设备的连接。它使用Internet控制消息协议(ICMP)来发送数据包到指定的目标主机,并且等待响应。以下是ping命令的用法:
ping [options] destination
其中,options是ping命令的可选参数,而destination是目标主机的IP地址或主机名。以下是一些常用的ping选项:
-c count:指定要发送的ICMP数据包数,即检查是否连通的次数。默认值为4。
-i interval:指定每个数据包之间的发送时间间隔,单位为秒。默认值为1秒。
-t ttl:设置数据包的生存时间(TTL)。默认值为64。
-s packetsize:指定发送数据包的大小(以字节为单位)。默认值为56字节。
-w deadline:指定等待响应的最长时间(以秒为单位)。默认值为无限制。
ping www.google.com # 使用默认参数向www.google.com发送ICMP数据包
ping -c 10 192.168.1.1 # 向192.168.1.1发送10个ICMP数据包
ping -i 0.5 -s 1000 8.8.8.8 # 每0.5秒发送一个大小为1000字节的数据包到8.8.8.8
随便输入一个不存在的IP测试不通的状态:
4.7.2使用wget命令下载文件
- 下载网络文件:
wget [-b] url
:-b:可选,后台下载,会将日志写入当前工作目录的wget-log文件
wget http://example.com/file.txt
- 下载hadoop
4.7.3使用curl命令发起网络请求
- curl可以发送http网络请求,可用于下载文件,获取信息等,语法:
curl [-O] url
,-O:当用于下载文件时,可以使用此选项保存文件 - 如果只是发起链接不需要-O,会返回网站信息,相当于在浏览器在访问网址直接看到界面,而此处返回的是html文件,只不过在命令行中无法将网页渲染出来。
4.8端口
- 端口分为物理端口和虚拟端口,物理端口:USB端口等可见的端口,虚拟端口是指计算机内部的端口,不可见,用来操作系统和外部进行交互使用的。
- 通过IP地址我们能够唯一确定一台电脑,但一台电脑中拥有很多应用程序,只有通过端口才能确定,IP相当于小区地址,端口相当于门牌号锁定住户。
- LInux中0~1023端口一般用于系统内特定的程序
4.8.1查看端口占用情况
- 安装nmap:
yum -y install nmap
- 查看端口占用情况
nmap 127.0.0.1
4.8.2查看指定端口占用情况
- 安装net-tool使用netstat命令:
netstat -anp|grep 6000
用grep过滤管道符前面得到的内容。
4.9进程查看
-
可以通过ps命令查看系统中进程:
ps -ef
-e:显示全部进程,-f:以完全格式化形式展示信息 -
通过管道符进行过滤
-
关闭进程:
命令:kill [-9] 进程ID
,-9表示强制关闭进程,不使用此选项会向进程发送信号要求关闭,但是否关闭还要看进程本身处理机制。
4.10环境变量
-
环境变量是在操作系统中设置的一些变量,用于指定各种程序运行时所需的参数和配置信息。环境变量在大多数操作系统中都是全局可见的,因此可以被任何运行在该操作系统上的程序所访问。在Linux中,一些常见的环境变量包括PATH、HOME、USER、LANG等,与其他操作系统类似。用户也可以自定义环境变量,以存储应用程序的配置信息或自定义参数。
-
可以使用env命令查看当前系统中的环境变量,环境变量是KeyValue型
-
$符号:用于取变量的值,环境变量记录的信息可以通过此符号取出
取出环境变量PATH的值。 -
设置环境变量:在Linux中,可以使用export命令来设置环境变量。例如,下面的命令可以将名为MYVAR的环境变量设置为值"hello world":
export MYVAR="hello world"
可以使用echo命令来查看已定义的环境变量的值。例如echo $MYVAR
4.11通过finalshell进行文件上传,下载
- 在finalshell窗口下方找到需要下载的文件,直接右键点击下载,即可下载到Windows系统内
下载的文件在Windows系统桌面的fsdownload文件夹: - 对于FinalShell命令窗口下方的文件列表权限由当前的登录的用户决定
- 对于window内的文件,如果想上传到Linux中直接拖拽到对应的文件夹即可。
- 通过命令实现:rz,sz命令,需要安装程序:
sudo yum -y install lrzsz
- rz回车:会弹出Windows的文件界面,直接选择后自动上传,上传的速度会非常慢,对于大文件还是通过拖拽的方式更快。 6.
sz 文件名
:文件自动下载到桌面
4.12tar命令压缩与解压
4.12.1压缩文件
- tar命令
(1).tar:简单的将文件组装到一个.tar文件内,并没有太多文件体积的减少,只是简单的封装。
(2).gz:使用gzip压缩算法将文件压缩到一个文件内,压缩速度快,体积有所减少。
(3)语法tar [-c -v -f -z -C] 文件1 文件2 文件3......
- 实操:
(1)创建文件夹ZipFile_test,并创建三个txt文件
(2)将这三个文件压缩到test.tar文件
tar -cvf test.tar test1.txt test2.txt test3.txt
(3)将三个文件压缩成.gar格式
tar -zcvf test.tar.gz test1.txt test2.txt test3.txt
4.12.2解压文件
(1)将选项-c换成-x,先将原来三个文件删除再解压
(2)解压:tar -xvf test.tar
将文件解压到当前目录
(3)将文件解压到指定目录:tar -xvf test.tar -C 目录
(4)解压.gz格式:tar -zxvf test.tar.gz -C 目录
:以Gzip的模式解压文件,并解压到指定目录
4.12.3总结
- -f选项必须位于最后,且后面跟的要解压或压缩成的文件名
- -z选项建议放在开头
- -C选项单独使用,和解压所需的其他参数分开
4.13zip命令压缩
注意解压时如果有同名文件会被覆盖,注意压缩包中文件是否有与现在文件夹文件同名的。
五,实战软件部署
5.1yum仓库
5.1.1yum概念
yum是一种在Linux操作系统中用于管理软件包的工具。它允许用户从特定的软件源(已配置好的仓库) 搜索、安装、更新和删除软件包。而这些软件源就被称为仓库(repository)。仓库是一个包含预编译软件包的集合,这些软件包可以在Linux系统中安装和运行。当使用yum安装或更新软件包时,它会从一个或多个 已配置的仓库中查找该软件包。如果找到了匹配的软件包,yum会下载它并安装或更新它。
5.1.2. yum的功能
(1)安装软件包:yum可以从已配置的仓库中下载和安装软件包,使用户能够轻松地获取和安装所需的软件包。例如,要安装Apache web服务器,可以使用yum install httpd命令。
(2)更新软件包:yum还可以更新已安装的软件包,包括操作系统本身。这有助于确保系统中的软件保持最新、稳定和安全。例如,要更新所有已安装的软件包,可以使用yum update命令。
(3)搜索软件包:如果用户不确定要安装哪个软件包,他们可以使用yum search命令搜索软件包。yum会在所有已配置的仓库中搜索软件包,并显示与搜索条件匹配的软件包列表。
(4)删除软件包:如果用户不再需要某个软件包,他们可以使用yum remove命令卸载该软件包。yum会删除软件包及其依赖项,以确保系统的稳定性和安全性。
(5)管理仓库:yum还可以管理已配置的仓库,包括添加、删除和启用/禁用仓库。这允许用户根据需要更改软件源,以便获取所需的软件包。
5.1.3. yum仓库的概念
(1)yum仓库(Yum repository)是在Linux操作系统中用于存储和管理软件包的集合。它是yum软件包管理器的重要组成部分,yum可以从配置的yum仓库中下载、安装、更新和删除软件包。
(2)Linux操作系统通常会预配置一些常用的yum仓库,例如CentOS官方仓库、EPEL仓库等。用户还可以添加、删除、启用和禁用其他yum仓库,以便获取特定的软件包或版本。
5.2linux中安装mysql5.7
- 配置yum仓库:
(1)更新秘钥rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
(2)安装mysql yum库rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
- 使用yum命令安装mysql社区版
(1)命令:yum -y install mysql-community-server
(2)设置mysql开机启动
mysql安装好之后会自动配置:mysqld的服务,可以通过systemctl来管理
systemctl start mysqld #启动
systemctl enable mysqld #开机自启
3. 配置mysql
主要配置管理员用户root的密码以及配置允许远程登录的权限。
(1) 获取初始密码-》用于后面登录
#通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
cat /var/log/mysqld.log|grep 'temporary password'
(2)登录数据库
mysql -uroot -p
#输入密码:;LrplpXJk2et
# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登陆
# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
(3)修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
#密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
如果想要设置简单密码:
# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级
别低
set global validate_password_length=4; # 密码长度最
低4位即可
# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中
不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
4. 配置root远程登录
(1)在设置好的电脑中通过命令mysql -uroot -p
然后输入密码可以直接登录,但是如果在其他电脑上通过网络连接登录则不行,需要设置远程登录。默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统请注意,允许root远程登录会带来安全风险
(2)设置文章来源:https://www.toymoban.com/news/detail-848730.html
#授权root远程登录
grant all privileges on *.* to root@"IP地址"
identified by '密码' with grant option;
# IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址密码表示给远程登录独立设置密码,和本地登陆的密码可以不同
# 刷新权限,生效
flush privileges;
- 退出mysql:Ctrl+D 或者exit
- 检查端口:mysql默认绑定在3306端口
通过以下命令过滤需要查看的端口占用情况:
netstat -anp | grep 端口号
文章来源地址https://www.toymoban.com/news/detail-848730.html
六,脚本&自动化
七,项目实战
八,云平台技术
到了这里,关于Linux从基础到入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!