一,初始linux
1,了解Linux
Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时(1991年)出于个人爱好而编写的。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
linux系统的组成如下:
* Linux系统内核
*系统级应用程序
内核提供系统最核心的功能,如:调度CPU,调度内存,调度文件系统,调度网络通讯,调度IO等。
系统级应用程序,可以理解为出厂自带程序,可供用户快速上手操作系统,如:文件管理器,任务管理器,图片查看,音乐播放等。
如,播放音乐,无论用户使用自带音乐播放器或是自行安装的第三方播放器,均是由播放器程序,调用内核提供的相关功能,由内核调度CPU解码,音响发声等。
内核是免费,开源的,这就代表了:
*任何人都可以获得并修改内核,并且自行集成系统级程序
*提供了内核+系统级程序的完整封装,称之为Linux发行版
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包。
Linux内核下载地址:
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
2,安装VMware Workstation虚拟软件:
Download VMware Workstation Pro
验证网络适配器是否正常配置:
ncpa.cpl
存在:
下载CentOS镜像文件:
下载链接:
Index of /7.6.1810/isos/x86_64 (centos.org)
3,远程连接Linux系统(FinalShell)
第三方软件,FinalShell,远程连接到Linux操作系统之上。
并通过FinalShell去操作Linux系统。
FinalShell下载地址:
FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.3 - FinalShell官网 (hostbuf.com)
傻瓜式安装。
查询虚拟机的IP地址:
虚拟机要先联网
FinalShell配置远程链接:
4,拓展:
window11、10,配置WSL (Ubuntu)环境
WSL:windows Subsystem for Linux ,是用于Windows系统之上的Linux子系统。
作用:可以在windows系统中获得Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件。
Windows10的WSL功能,可以无需单独虚拟一套硬件设备就可以直接使用主机的物理硬件,构建Linux操作系统,并不会影响Windows系统本身的运行。
WSL作为Windows10系统带来的全新特性,正在逐步颠覆开发人员既有的选择。
*传统方式获取Linux操作系统环境,是安装完整的虚拟机,如VMware
*使用WSL,可以非常轻量化的方式得到Linux系统环境,简单好用省内存
WSL部署:
Windows10:
Windows11:
然后重启就好了。
在微软商店下载Ubuntu:
报错了:因为我的是window11
解决方法:
在cmd命令:
wsl --set-default-version 1
成功:
安装Windows Termmial软件:
Ubuntu自带的终端窗口不太好用,使用微软推出的Windows Termial软件
我的Windows11好像自带了。
打开:并打开Ubuntu命令
更改默认打开的配置文件:
虚拟机快照:
VMware虚拟机(Workstation和Funsion)支持为虚拟机制作快照。
通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。
关机制造比较快速。
二,Linux基础命令
1,Linux操作系统的目录结构:
Linux没有盘符的概念,只有一个顶级目录,称之为:根目录 就是 / 所有文件都在它下面。
Linux的目录结构是一个树形结构
Windows系统有多个顶级目录,即各个盘符
/ 在Linux系统中表示
* 出现在开头的 / 表示:根目录
* 出现在后面的 / 表示:层次关系
Linux路径的描述方式:
* 在Linux系统中,路径之间的层级关系,使用: / 来表示
* 在Windows系统中,路径之间的层级关系,使用: \ 来表示
2,Linux命令:
命令行:即Linux终端*(terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。
命令:即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈
Linux命令基础格式:
无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
command [-options] [parameter]
- command :命令本身
- -options : [可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
- parameter:[可选,非必填] 命令的参数,多数用于命令的指向目标等
- [ ] :表示可选的意思
ls 命令
ls命令的作用是列出目录下的内容:
ls [-a -l -h] [Linux路径]
当不使用选项和参数时,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录(默认HOME目录)下的内容
HOME目录:每一个用户在Linux系统的专属目录,默认在:/home/用户名
当前工作目录:Linux命令行在执行命令的时候,需要一个工作目录,打开命令行程序(终端)默认设置工作目录在用户的HOME目录
-a 选项,可以展示出隐藏的内容
以 . 开头的文件或文件夹默认被隐藏,需要-a才能显示出来
-l 选项,以列表(竖向排列)的形式展示内容,并展示更多细节
-h 选项,需要和-l选项搭配使用,列出文件的大小 ,如 K,M G
命令行的选项是可以组合使用的:如:ls -lah,等同于 ls -a -l -h
cd 命令
切换工作目录(Change Directory)
当Linux终端打开的时候,默认以用户 的HOME目录作为当前的工作目录
通过cd命令,更改工作目录
语法:
cd [Linux路径]
- cd 命令无需选项,只有参数,表示要切换到哪个目录下
- cd命令直接执行,不写参数,表示回到用户的HOME目录
pwd 命令
查看当前工作目录 print work directory
语法: pwd
无选项,无参数,直接输入pwd即可
路径
绝对路径:以根目录为起点,描述路径的一种写法,路径描述以 / 开头
相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以 / 开头
特殊路径:
- . 表示当前目录,比如 cd ./Desktop表示切换到当前目录下的Desktop目录内,等于 cd Desktop
- .. 表示上一级目录,比如:cd .. 即可切换到上一级目录, cd ../.. 切换到上二级的目录
- ~ 表示用户的HOME目录,比如: cd ~ 即可切换到用户的HOME目录 或 cd ~/Desktop,切换到HOME内的Desktop目录
cd 和 cd ~ 相同:是到用户的HOME目录
mkdir命令
make directory 通过mkdir命令可以创建新的目录(文件夹)
语法:
mkdir [-p] Linux路径
- 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
- -p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
touch命令
可以通过touch命令创建文件
语法:
touch Linux路径
touch命令无选项,参数必填,表示要创建的文件路径,相对,绝对,特殊路径均可以使用
cat命令
查看文件内容
语法:
cat Linux路径
cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对,绝对,特殊路径符都可以使用
more命令
more命令同样可以查看文件内容,同cat不同的是:
cat是直接将内容全部显示出来
more支持翻页,如果文件内容过多,可以一页页的展示
语法:
more Linux路径
同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对,绝对,特殊路径符都可以使用。
在查看的过程中,通过空格翻页
通过 q 退出查看
cp命令
cp命令可以用于复制文件\文件夹,cp命令来自 :copy
语法:
cp [-r] 参数1 参数2
- -r 选项,可选,用于复制文件夹使用,表示递归
- 参数一,Linux路径,表示被复制的文件或文件夹
- 参数二,Linux路径,表示要复制去的地方
mv命令
mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move
语法:
mv 参数1 参数2
- 参数1,Linux路径,表示被移动的文件或文件夹
- 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
rm命令
rm命令可用于删除文件,文件夹
rm命令来自英文单词:remove
语法:
rm [-r -f ] 参数1,参数2,,,参数N
同cp命令一样,-r 选项用于删除文件夹
-f 表示force,强制删除(不会弹出提示确认信息)
- 普遍用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
- 所以一般普通用户用不到-f选项
参数1,参数2,,,表示要删除的文件或文件夹路径,按照空格隔开
通配符:
rm命令支持通配符 * ,用来做模糊匹配
符号 * 表示通配符,即匹配任意内容(包含空)
- test*,表示任何以test开头的内容
- *test,表示任何以test结尾的内容
- *test*,表示匹配任何包含test的内容
root用户删除文件、文件夹会有提示,
用 -f 选项可以不给出提示,强制删除
可以通过 su - root ,并输入密码切换到root用户,
通过exit命令,退回普通用户。
rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候。谨慎使用
如下命令,不能在root管理员用户下执行:
rm -rf /
rm -rf /*
效果等同于在Windows上执行C盘格式化。
which命令
查找命令的程序文件
我们在前面学习的Linux命令,其实他们的本体就是一个个的二进制可执行程序。
和Windows系统中的.exe文件,是一个意思。
which 命令,查看所使用的一系列命令的程序文件存放在哪里
语法:
which 要查找的命令
只能查找Linux命令,要查找指定的文件用find 命令。
find 命令
查找指定文件。 "" 可有可无
按照文件名字查找文件:
语法: find 起始路径 -name "被查找文件名"
支持使用通配符 * 来做模糊查询。
按照文件大小查找文件
语法: find 起始路径 -size +|- n[kMG]
- + - 表示大于和小于
- n表示大小数字
- kMG表示大小单位,k(小写字母)表示kb,M表示MB,G 表示GB。
示例:
查找小于10kB的文件:find / -size -10k
查找大于1GB的文件:find / -size +1G
grep 命令
可以通过grep命令,从文件中通过关键字过滤文件行。
语法: grep [-n] 关键字 文件路径
- 选项 -n ,可选,表示在结果中显示匹配的行的行号。
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号时建议使用 " " 将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口(管道符的输入)
wc命令
wc命令做数量统计
可以通过wc命令统计文件的行数,单词数量等
语法 : wc [-c -m -l -w ] 文件路径
- 选项,-c ,统计bytes数量
- 选项,-m , 统计字符数量
- 选项, -l ,统计行数
- 选项, -w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口(管道符的输入)
不写选项查询出来的是:
行数 单词数量 字节数量 文件名称
| 管道符
学习了grep命令后,我们学习一下管道符
含义:将管道符左边命令的结果,作为右边命令的输入
如上图:cat test 命令的输出结果(文件内容)作为grep 命令的输入(被过滤文件)
echo 命令
可以使用echo命令在命令行内输出指定内容
语法: echo 输出的内容
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用 " " 包围
例:
在终端上显示:hello world
反引号 `
` 也称为飘号。
想要输出当前的工作路径,但是pwd被作为普通字符输出了:
通过飘号可以解决,飘号包围的内容会被作为命令执行,而非普通字符
重定向符
重定向符:> 和 >>
> ,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>> ,将左侧命令的结果,追加写入到符号右侧指定的文件中
例:
tail 命令
使用 tail 命令,可以查看文件尾部内容,跟踪文件的最新更改。
语法: tail [-f -num] Linux路径
- 参数,Linux路径,表示被跟踪的文件路径
- 选项,-f ,表示持续跟踪
- 选项,-num ,表示查看尾部多少行,不填默认10行
vi,vim编辑器
vi\vim是visual interface的简称,是Linux中最经典的文本编辑器
vim是vi 的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有Shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大的方便了程序的设计和编辑性。
vi、vim 编辑器的三种工作模式:
命令模式 command mode
- 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。
- 此模式下不能自由进行文本编辑
输入模式 insert mode
- 也就是所谓的编辑模式,插入模式
- 此模式下,可以对文件内容进行自由编辑
底线命令模式 Last line mode
- 以:开始,通常用于文件的保存,退出。
使用方式:
vi 文件路径
vim 文件路径
- 如果文件路径不存在,那么此命令会用于编辑新文件
- 如果文件路径存在,那么此命令用于编辑已有文件
步骤:
进入的时候是命令模式
按i 进入输入模式 ,按esc 退回命令模式,按 "i" 进入底线命令模式,输入wq 保存退出。
命令模式的一些快捷键:
- i 在点前光标位置进入 输入模式
- a 在当前光标位置之后进入输入模式
- I 在当前行的开头,进入输入模式
- A 在当前行的结尾,进入输入模式
- o 在当前光标下一行进入输入模式
- O 在当前光标上一行进入输入模式
- k 向上移动光标
- j 向下移动光标
- h 向左移动光标
- l 向后移动光标
- 0 移动光标到当前行的开头
- $ 移动光标到当前行的结尾
- PgDn 向下翻页
- PgUp 向上翻页
- / 进入搜索模式
- n 向下继续搜索
- N 向上继续搜索
- dd 删除光标所在行的内容
- ndd n是数字,表示删除当前光标向下n行
- yy 复制当前行
- nyy n是数字,复制当前行和下面的n行
- p 粘贴复制的内容
- u 撤销修改
- ctrl + r 反向撤销修改
- gg 跳到首行
- G 跳到行尾
- dG 从当前行开始,向下全部删除
- dgg 从当前行开始,向上全部删除
- d$ 从当前光标开始,删除到本行的结尾
- d0 从当前光标开始, 删除到本行的开头
三,Linux权限管控
用户和权限
无论是Windows,macOS,Linux均采用多用户的管理模式进行权限管理
在Linux系统中,拥有最大权限的账户名为:root(超级管理员)
而在前期,我们一直使用的账户是普通的用户
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。
普通用户的权限,一般在其HOME目录内是不受限的
一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
su 和 exit 命令
在前面,我们接触过su 命令切换到 root 账户
su 命令就是用于账户切换的系统命令,其来源英文单词:Switch User
语法:su [-] [用户名]
- - 符号是可选的,表示是否在切换用户后加载环境变量
- 参数:用户名,表示要切换的用户,用户也可以省略,表示切换到root
- 切换用户后,可以通过exit命令 退回上一个用户,也可以使用快捷键 : ctrl +d
- 使用普通用户切换到其他用户需要输入密码,如切换到root用户
- 使用root用户切换到其他用户,无需密码,可以直接切换
sudo 命令
在我们得知root 密码的时候,可以通过su 命令切换到root得到最大权限
但我们不建议长期使用root用户,避免带来系统损坏。
我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。
语法: sudo 其它命令
- 在其它命令之前,带上sudo ,即可为这一条命令临时赋予root权限
- 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证。
为普通用户配置sudo认证:
切换到root 用户,执行 visudo 命令,会自动通过vi 编辑器打开:/etc/sudoers
在文件的最后添加:
普通用户名 ALL=(ALL) NOPASSWD: ALL
例如:
其中最后的 NOPASSWD:ALL 表示使用sudo命令无需输入密码。
最后通过wq 保存。
用户和用户组
Linux系统中可以:
- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组中
Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。
以下命令需root用户执行
创建用户组
groupadd 用户组名
删除用户组
groupdel 用户组名
以下命令需root用户执行:
创建用户
useradd [-g -d] 用户名
- 选项,-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g 需要组已经存在,如已存在同名组,必须使用-g
- 选项:-d 指定用户HOME路径,不指定,HOME目录默认在: /home/用户名
删除用户
userdel [-r] 用户名
选项 -r 删除用户的HOME目录,不使用 -r ,删除用户时,HOME目录保留
查看用户所属组
id[用户名]
参数:用户名,被查看的用户,如果不提供则查看自身
修改用户所属组
usermod -aG 用户组 用户名
将指定用户加入指定用户组
查看系统中的用户
语法:getent passwd
共有7份信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看系统所有用户组
语法: getent group
包含三份信息:组名称:组认证(显示为x):组ID
查看权限控制信息
- 序号1:表示文件,文件夹的权限控制信息
- 序号2:表示文件,文件夹所属用户
- 序号3:表示文件,文件夹所属用户组
序号1的权限信息:
drwxr-xr-x
d表示文件夹,rwx表示用户的权限,r-x表示用户组的权限,r-x表示其他用户的权限
- r表示读权限---read
- w表示写权限---write
- x表示执行权限---execute
针对文件和文件夹,rwx的含义有细微差别:
r,针对文件可以查看内容,针对文件夹,可以查看文件夹内容
w,针对文件表示可以修改此文件,针对文件夹,表示可以在文件夹内创建,删除,改名等操作
x,针对文件表示可以将文件作为程序执行,针对文件夹表示可以更改工作目录到此文件夹,即cd进入
修改权限信息
我们可以使用chmod命令,修改文件,文件夹的权限信息。
注意,只有文件文件夹的所属用户或root用户可以修改。
chmod命令
语法:chmod [-R] 权限 文件或文件夹
选项:-R ,对文件夹内的全部内容应用同样的操作。
示例:
chmod u=rwx,g=rx,o=x hello.txt
将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.
权限可以用3位数字来代表,第一位数字表示用户权限,第二位数字表示用户组权限,第三位数字表示其他用户权限。
数字的细节如下: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
所以751表示:rwx(7)r-x(5)--x(1)
修改文件\夹用户和用户组
使用chown命令,可以修改文件,文件夹的所属用户和用户组
普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行
chown命令
语法:chown [-R] [用户]:[用户组] 文件或文件夹
- 选项 :-R,同chmod,对文件夹内全部内容应用相同规则
- 选项:用户,修改所属用户
- 选项:用户组,修改所属用户组
- :用于分隔用户和用户组
四,Linux实用操作
快捷键
- ctrl+c 强制停止
- ctrl+d 退出或登出(退出账户登录,退出某些特定程序的专属页面)
历史命令相关:
- history 查看历史输入过的命令
- 可以通过 ! 命令前缀,自动执行上一次匹配前缀的命令
- 可以通过快捷键:ctrl + r,输入内容去匹配历史命令,如果搜索到的内容是你需要的,那么:回车键直接执行 ,键盘左右键可以得到此命令(不执行)
- ctrl +a ,跳到命令开头
- ctrl +e,跳到命令结尾
- ctrl+ 键盘左键,向左跳一个单词
- ctrl +键盘右键,向右跳一个单词
- Ctrl+l ,清空终端内容
- 或通过clear 清空终端内容
软件安装
Linux命令行内的“应用商店”,yum 命令安装软件:
yum命令
yum :RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。
语法:
yum [-y] [install | remove | search] 软件名称
- 选项:-y 自动确认,无需手动确认安装或卸载过程
- install :安装
- remove: 卸载
- search:搜索
yum命令需要root权限,可以su 切换到root,或使用sudo 提权。
yum命令需要联网
apt命令
电脑自动配置了sudo权限,因此切换root用户可以执行:sudo su 命令 切换
systemctl命令控制软件启动关闭
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动,停止,开机自启动
- 系统内置服务均可被systemctl控制
- 第三方软件,如果自动注册了可以被systemctl控制
- 第三方软件,如果没有自动注册,可以手动注册
能够被systemctl管理的软件,一般也称之为:服务
语法:systemctl start | stop | status | enable | disable 服务名
- start 启动
- stop 关闭
- status 查看状态
- enable 开启开机自启
- disable 关闭开机自启
系统内置的服务比较多,比如:
- NetworkManager, 主网络服务
- network ,副网络服务
- firewalld,防火墙服务
- sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
软链接
在系统中创建软链接,可以将文件,文件夹链接到其它位置。
类似Windows系统中的《快捷方式》
语法:ln -s 参数1 参数2
- -s 选项,创建软链接
- 参数1;被链接的文件或文件夹
- 参数2:要链接去的目的地
例:
日期和时区
使用date命令可以在命令行中查看系统的时间。
查看时间
语法:date [-d] [+格式化字符串]
- -d 按照给定的字符串显示日期,一般用于日期计算
- 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
- %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到现在的秒数(时间戳)
例:
date命令本体,无选项,直接查看时间:
按照格式查看:
如上,由于中间带有空格,所以使用双引号包围格式化字符串,作为整体。
进行日期计算:
-d 选项,可以按照给定的字符串显示日期,一般用于日期计算
当天日期:
显示后一天日期:
前一天日期:
其中支持的时间标记为:
- year 年
- month 月
- day 天
- hour 小时
- minute 分钟
- second 秒
修改Linux时区:
系统默认的时区非中国的东八区。因此date查看的时间不准确。
修改时区:
使用root权限执行如下命令:修改时区为东八时区
rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
意思:将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可。
ntp程序
我们可以通过ntp程序自动校准系统时间
安装ntp: yum -y install ntp
启动并设置开机自启:
手动校准时间(需要root权限):ntpdate -u ntp.aliyun.com
通过阿里云提供的服务网址配合ntpdate(安装ntp后会附带这个命令)命令自动校准
IP地址和主机名
IP地址
每一台联网的电脑都会有一个地址,用于和其他计算机进行通讯
ip地址主要有两个版本,V4版本和V6版本
IPv4版本的地址格式是:a.b.c.d ,其中abcd 表示0~255的数字,如192.168.88.101就是一个标准的IP地址。
可以通过:ifconfig,查看本机的ip地址,无法使用ifconfig命令,可以安装:yum -y install net-tools
两个特殊的ip地址:
-
127.0.0.1,表示本机
-
0.0.0.0
-
可以表示本机
-
也可以表示任意IP(看使用场景)
-
主机名
每一台电脑除了对外联络地址(ip地址)以外,也可以有一个名字,称之为主机名。
无论是Windows或Linux系统,都可以给系统设置主机名。
功能:Linux系统的名称
查看:hostname
设置:hostnamectl set-hostname 主机名
修改主机名需要root权限。
重新登陆,主机名就改变了:
域名解析
实际上我们通过字符化的地址去访问服务器,很少指定ip地址
比如我们在浏览器上打开:www.baidu.com 会打开百度的网址
其中,www.baidu.com是百度的网址,我们称之为:域名
不是通过IP地址才能访问服务器吗?为什么域名这种字符也可以呢?其实是域名解析帮助我们解决的。
即:
1,先查看本机的记录(私人地址本)
- Windows看:C:\Windows\System32\drivers\etc\hosts
- Linux看: /etc/hosts
2 ,再联网去DNS服务器(如114.114.114.114, 8.8.8.8等)询问。
因此我们可以给Linux系统的IP地址配置域名映射,打开C:\Windows\System32\drivers\etc\hosts,编辑:
FinalShell就可以通过centos主机名来连接Linux系统了:
配置Linux固定ip
1,打开虚拟网络编辑器:配置IP地址网关和网段(IP地址的范围)
2,在Linux系统中手动修改配置文件,固定ip
使用命令: vim /etc/sysconfig/network-scripts/ifcfg-ens33
填入如下内容:
IPADDR="192.168.88.130"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"
重启服务systemctl restart network
:虚拟的的网络适配器要需要改为NAT模式:
现在虚拟机的IP就变成自己设置的 192.168.88.130 了。它是个固定的IP了。
网络请求和下载
ping 命令
可以通过ping 命令,检查指定的网络服务器是否是可连通的状态
语法: ping [-c num] ip或主机名
- 选项 :-c ,检查的次数,不适用-c 将无限次持续检查
- 参数:ip或主机名,被检查的服务器的ip地址或主机名地址
例:
wget命令
wget 是非交互式的文件下载器,可以再命令内下载网络文件
语法:wget [-b] url
- 选项:-b 可选,后台下载,会将日志写入到当前工作目录的wget-log文件
- 参数:url ,下载链接
例:
下载apache-hadoop 3.30版本:
http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
在后台下载:
通过tail命令可以监控后台下载进度: tail -f wget-log
注意:无论是否下载完成,都会生成要下载的文件,如果未下载完成,请删除未完成的不可用文件。
curl 命令
curl 可以发送http网络请求,可用于:下载文件,获取信息等
语法 : curl [-O] url
- 选项:-O ,用于下载文件,当url 是下载链接时可以用此选项保存文件
- 参数:url ,要发起请求的网络地址
例:向cip.cc发起网络请求:
向python.itheima.com发起网络请求:
通过curl下载apache-hadoop 3.30安装包:
端口:
nmap命令
可以通过Linux命令去查看端口的占用情况。
使用nmap命令(用此命令先安装:yum -y install nmap)
语法:nmap 被查看的ip地址
例:
可以看到本机(127.0.0.1)上有4个端口被程序占用了
22端口:一般是SSH服务,即FinalShell远程连接Linux所使用的端口。
netstat命令
可以通过netstat命令,查看指定端口的占用情况。
没有这个程序可以安装:yum -y install net-tools
语法:
查看全部端口:netstat -anp
过滤需要查看的端口号:netstat -anp | grep 端口号
例:
查看36000端口:
可以看到此端口被2115进程占用了。
查看12345端口:
可以看到12345端口没有被占用。
进程管理
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程ID(进程号)
ps命令
功能:查看进程信息
语法: ps [-e -f]
- -e,显示出全部的进程
- -f , 以完全格式化的形式展示信息(展示全部信息)
一般来说,固定用法就是:ps -ef 列出全部进程的全部信息
例:
查看指定进程:
搭配grep做过滤:ps -ef | grep 指定信息
例:
过滤不仅仅过滤名称,进程号,用户ID等,都可以被grep过滤
如:ps -ef | grep 30001,过滤带有00:00:11关键字的进程信息:
关闭进程:
在Windows系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。
同样,在Linux中,可以通过kill命令关闭进程。
语法:kill [-9] 进程id
- 选项:-9 ,表示强制关闭进程,不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
主机状态监控
可以通过top命令查看cpu ,内存使用情况,类似Windows的任务管理器
默认每5秒刷新一次,语法:直接使用top即可,按q 或ctrl + c退出
top命令结果详解:
top 的选项:
top的交互式选项
df命令
查看磁盘占用
语法: df [-h]
- -h:以更人性化的单位显示
iostat命令
查看CPU、磁盘的相关信息
语法:iostat [-x] [num1] [num2]
- -x :显示更多信息
- num1 :数字,刷新间隔(秒),num2:数字,刷新几次
tps:该设备每秒的传输次数,“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。
使用iostat -x显示更多信息:
rrqm/s: 每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS 将请求发到各个FS,如果FS发现不同的读取请求读取的是相同的Block的数据,FS会将这个请求合并Merge,提高IO利用率,避免重复调用);
sar 命令
网络状态监控(sar命令非常复杂,这里仅简单用于统计网络)
语法:sar -n DEV num1 num2
- -n ,查看网络,DEV表示查看网络接口
- num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)
环境变量
环境变量是操作系统(Windows,Linux,Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。
env 命令
在Linux系统中执行:env 命令即可查看当前系统中记录的环境变量
环境变量是一种KeyValue型结构,即名称和值。
$符号
在Linux系统中,$符号被用于取“变量”的值。
环境变量记录的信息,除了给操作系统自己使用外,如果我们想要取用,也可以使用。
取得环境变量的语法: $环境变量
比如: echo $PATH
或者:echo ${PATH}ABC
当和其他内容混合在一起的时候,可以通过{}来标注取的变量是谁
自己设置环境变量
Linux环境变量可以用户自行设置,分为:
临时设置,语法:export 变量名=变量值
永久生效:
- 针对当前用户生效,配置在当前用户的: ~/.bashrc 文件中
- 针对所有用户生效,配置在系统的: /etc/profile 文件中
并通过语法:source 配置文件,进行立即生效,或重新登录FinalShell生效。
记得这里切换用户用 su - 用户名, - 的作用是加载环境变量
自定义环境变量PATH
环境变量PATH 这个项目里面记录了系统执行命令的搜索路径。
这些搜索路径我们也可以自行添加到PATH中。
例:
- 临时修改PATH
- 或将export PATH=$PATH:/root/myenv 填入到用户环境变量文件(~/.bashrc )或系统环境变量文件(/etc/profile)中去。
此时 PATH 中的内容:
用户环境变量文件(~/.bashrc )中添加内容:
并通过语法:source 配置文件,进行立即生效
这里用的是针对用户生效 配置文件是: ~/.bashrc
现在:
可以在别的目录运行此程序了。
上传和下载
第一种:用命令方式:要先安装程序:yum -y install lrzsz
rz 命令
进行上传 语法 :rz
自动弹出选择文件。
sz 命令
进行下载,把虚拟机的文件下载到本地。
语法:sz 要下载的文件
文件会自动下载到桌面的:fsdownload文件夹中。
第二种:通过FinalShell工具:方便的和虚拟机进行数据交换。
下载(把虚拟机的文件下载到本地电脑):
上传(把本地的电脑上传到虚拟机):
压缩和解压
Linux用的压缩格式有:tar ,gzip, 和zip
.tar 称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内并没有太多体积的减少,仅仅是简单的封装。
.gz 也常见为 .tar.gz , gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的压缩文件体积。
tar命令
针对这两种格式,使用tar命令均可以进行压缩和解压的操作。
语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
一, tar压缩案例:
记住 tar -cvf ...和 tar -zcvf... 。第一个是压缩为.tar文件,第二个是压缩为.gz格式。
二, tar解压案例:
常见的tar解压组合有
- tar -xvf test.tar
解压test.tar,将文件解压到当前目录
- tar -xvf test.tar -C /home/lcy
解压test.tar ,将文件解压到指定目录:/home/lcy
- tar -zxvf test.tar.gz -C /home/lcy
以Gzip模式解压test.tar.gz. 将文件解压到指定目录 :/home/lcy
注意:
- -f选项,必须在选项组合体的最后一位
- -z 选项,建议在开头位置
- -C 选项单独使用,和解压所需的其他参数分开
上面是使用tar命令压缩解压tar或gzip文件那zip文件呢??
zip命令
可以使用zip命令,压缩文件为zip压缩包。
语法: zip [-r] 参数1 参数2 ...参数N
- -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 a.txt b.txt
- 将test文件夹和两个文件a.txt b.txt,压缩到test.zip文件内。
unzip命令
使用unzip命令,可以方便的解压zip压缩包。
语法:unzip [-d] 参数
- -d ,指定要解压去的位置,同tar的-C选项
- 参数,被解压的zip压缩文件
未完待续。。
五,实战软件部署
p45集