基础知识讲解【运维开发】"/>
Linux基础知识讲解【运维开发】
文章目录
- 前言
- 一、Linux基础知识
- 初识Linux
- 虚拟机
- 在VMware虚拟机上安装CentOS操作系统
- 安装FinalShell
- 虚拟机快照
- Linux基础命令
- 用户和权限
- 用户组
- 权限控制
- 实用快捷键
- 软件安装
- 软连接
- 日期、时区
- ip、主机名
- 域名解析
- 网络传输
- 端口
- 进程
- 环境变量
- linux 文件的上传、 下载、压缩、解压
前言
2023年3月2日09:49:42 目前项目在测试阶段。公司任务也不重。一天也是闲着,改改BUG。闲着也是闲着,就学学运维开发吧。
本人是按着上述的步骤来指定学习路线的。 既然要学,就得有体系的、有系统性的学习。
一、Linux基础知识
为什么要学Linux操作系统?
因为Linux操作系统是作用于服务器端领域。只要你玩服务器,就必须会Linux
怎么学LInux?
一句话:手会了,你就会了。
初识Linux
常见的操作系统:
PC端:【Windows、Linux、macOS】 移动端【iOS15、HarmonyOS、andirod】
Linux内核:
调度CPU、调度内存、调度文件系统、调度IO
系统程序:
Linux厂家自带的应用程序
Linux内核官网下载,请点击…
不需要下载,就是看一下。Linux操作系统是开源的、免费的。
Linux发行版:
Linux操作系统是由内核+应用程序构成的。现在内核能容易拿到,那么再提供一个系统级的应用程序是不是就可以创造出专属于自己的Linux系统了?
是的,比如:ubuntu 、centOS、redhat、Puppy、archlinux等这些操作系统的内核都是Linux内核。仅仅是应用程序不同而已。这些不同的操作系统称为Linux发行版。
那这么多Linux发行版,我们用哪一个呢?
CentOS ,因为一个字: 火!
虚拟机
为什么要有虚拟机?
为Linux操作系统提供一个环境。直白的说,就是没钱再去买个电脑去装载Linux系统。只能玩虚拟机。
安装虚拟机:
VMware虚拟机官网下载,请点击…
下载完毕后,就可以安装了。安装步骤没什么注意事项。自定义安装目录即可。
检测是否安装成功:
在我的电脑,打开 【设置】–> 【网络和Internal】–>【更多网络适配器选项】
如果出现这两个适配器,则表示安装成功。
在VMware虚拟机上安装CentOS操作系统
CentOS官网下载,请点击…
下载完毕后,打开虚拟机
选中【创建新的虚拟机】
加载CentOS镜像文件
设置账户信息【尽量使用英文】
设置虚拟机的存储位置
设置虚拟机的存储内存
全局查看虚拟机的配置参数,因为我的E盘内存有1T,所以设置成80G的存储大小。这个需要看你的存储磁盘的容量估计。
选中开启虚拟机,就可以自动安装了。
安装很漫长。最后显示这个页面效果,就表示安装成功了。
安装FinalShell
FianlShell有什么作用?
安装了FinalShell后,就可以不用在虚拟机中去打开终端输入命令了。FinaShell可以远程连接虚拟机。
FinalShell官网下载,请点击…
安装也是自定义路径安装,无额外的注意事项。最后是如下的页面效果。就表示安装成功了。
远程连接虚拟机:
在查询虚拟机的IP地址之前,虚拟机应当联网!只有联网的虚拟机才有ip地址。
虚拟机联网设置:
打开虚拟机 【编辑】—> 【虚拟网络编辑器】
在NAT设置中查看子网IP等信息
打开虚拟机设置,查看网络适配器
开启虚拟机,打开Wired Settings,选择齿轮【设置】
哔站的一位大佬,2分钟的虚拟机联网技巧,我也是看的这个视频。请点击…
最后,打开虚拟机的浏览器测试即可。
查询虚拟机的IP地址:
联网成功后,就有属于虚拟机的IP地址。其实,刚才的Address就是虚拟机的IP
双击,然后有下述效果。则表示FinalShell远程连接虚拟机成功。
这里就可以看出FinalShell的功能:把虚拟机的终端搬到了Windows操作系统上。以后,虚拟机就可以挂起了【虚拟机界面是真的看着难受(- -)】。
ifconfig 查看ContOS系统的IP地址
虚拟机快照
快照的作用:类似于备份。玩操作系统时,不可避免的会损坏操作系统。有个备份,能让你玩得更大胆。玩坏了大不了重来。快照是虚拟机自带的功能。鼠标左键点击我的虚拟机。打开【快照】选项。
选择拍摄快照,就能对当前的虚拟机的状态进行备份。切记:虚拟机必须要关机。
Linux基础命令
之前关于虚拟机的准备工作已经完成了。现在开始学Linux命令吧。
Linux的目录路径:
可以看出根目录是 ‘/’ ;Linux是只有一个树形结构,并没有盘符的概念。Linux的路径层级关系是左斜杠。所以有时候是 [//home/hang],其开头的两个左斜杠,分别表示根目录和层级关系。
ls [-a -l -h] [目标文件夹路径]
【显示指定路径下的文件及文件夹】【-a 列出全部文件(包括隐藏文件) | -l 以列表的形式展示文件 | -h 显示文件大小| 默认是平铺 】【显示指定路径下的文件,可以是相对路径,也可以是绝对路径 | 默认是当前路径】
这里只展示了部分命令效果。自己动手,才能记忆。光看,没两天就忘记了。说明一下,只要是带有 . (点)文件 类型的。在Linux中就被当做隐藏文件。终端的初始化的目录是home目录级。 …/ 表示上一级目录
cd [路径]
【切换到指定的路径下】【指定路径,可以是相对路径,也可以是绝对路径 | 默认是/home】
路径说明:
- cd ./Desktop 表示切换到当前目录下的Desktop文件夹,与cd Desktop 效果是一样的。
- cd …/… 表示切换到上二级目录
pwd
【查看当前的工作目录】【not option】
mkdir [-p] [path]
【创建新的文件夹】【-p 自动创建不存在的文件夹】【指定创建文件夹的路径】
注意:创建文件夹会涉及权限问题。在home目录下创建文件夹是该用户的权限。但在/的其他目录下就没有权限创建文件夹。
touch [path]
【创建文件】【文件路径+文件名】
cat [path]
【查看文件内容】【指定文件路径】
more [path]
【查看文件内容】【指定文件路径】【more与cat的区别是:more是以分页的形式展现内容,空格表示下一页,q表示退出;cat是展示全部内容】
cp [-r] [oldPath][newPath]
【赋值文件、文件夹】【 -r 用于复制文件夹使用,表示递归】【被复制的文件、文件夹】【表示将要复制去的路径】
注意:cp 不用【-r】时,表示复制的文件 ;用【-r】表示复制的文件夹
mv [oldPath] [newPath]
【移动文件、文件夹】【被移动的文件、文件夹的路径】【表示要移动去的路径,有改名的效果】
rm [-r -f] [path01][path02][path03]
【删除文件、文件夹】【-r 表示删除的对象时文件夹 | - f 表示强制删除,普通用户一般用不到这个参数】【 … path 可以批量删除文件、文件夹】
如果说,我要删除 test01.txt 、text02.txt、text03.txt多个文件。每个文件都定位一次,显得太麻烦。这时候就引入了通配符*的概念。
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任何以test结尾的内容
- (星)test(星),表示匹配任何包含test的内容
find [startPath] -name "被查找文件名"
【搜索文件】【在startPath路径下搜索】【-name 表示按照文件名搜索,还有 -size 即按照文件大小搜索。因为 -size 不常用就不介绍了】【文件名,同样可以使用通配符】
grep [-n] [keyWord] [path]
【通过关键字过滤文件中的内容行】【-n 表示在结果中显示匹配的行的行号】 【关键字】【表示要过滤内容的文件路径,不能是文件夹的路径】
echo "[内容]" [> >>] [path]
【输入】【写入指定文件的内容】 【> 表示覆盖 | >>表示追加】【指定的文件路径】
上诉命令是常用的命令。至于哪些一辈子也用不了几回的命令。就没必要去记了。用到的时候,在介绍即可。
VI、VIM编辑器:
vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。直白的说:VI有的,VIM都有;VIM有的,VI不一定有。所以,学VIM就行了
vim [path]
- 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
- 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
vim 的两种工作模式:
- 命令行模式 :进入vi编辑器会进入命令模式。在命令模式内,按键盘 : ,进入底线命令模式
- 输入模式:输入键盘指令,可以进入输入模式
- 底线命令模式:按esc回退会命令模式
命令模式切换到输入模式:
底线命令模式:
命令是记不住的,只能上手联系。命令也是学不完的,只能在工作中慢慢积累。
用户和权限
超级管理员:
超级管理员:一个跳出规则之外的男人!它叫root
普通用户切换到root管理员:
su - root
从超级管理员用户回退到上次切换的用户:
exit
频繁的切换用户,太麻烦。而且长期的去使用root,就万一破坏了Linux的内核文件,就白玩了。所以,我们可以使用sudo命令去跟普通用户说:我是超级管理员的使者,超级管理员没空理会你们,给你们一些权限。自己玩泥巴去。
为普通用户配置sudo认证:
切换到root用户,执行
visudo
命令。自动通过VI编辑器打开:etc/sudoers 文件。
在打开sudoer文件夹后,按O将光标定位到行尾。添加一行
(你想给权限的用户) ALL=(ALL) NPPASSWD =:ALL
即可。注意,执行visudo命令是root的权限。
可以这么理解:root是上帝,普通用户是教徒。教徒如果想要上帝的权利,就要通过祷告的方式【输密码】去告诉上帝。一个两个教徒,上帝还能听过来。当教徒多了以后,上帝听得脑壳大。所以,上帝想了个办法。把信得过的教徒加到sudo中,以后用上帝的权利就不需要祷告了【输密码】,直接用就是。终端怎么判断一个普通用户输入放入命令是上帝给的权限命令呢?
在命令前加上sudo即可
用户组
涉及用户组的命令,必须具备超级管理员权限。 可以理解为:超级管理员是班主任,学生是一个用户。班主任可以让多个学生组成一个小组,称为用户组。一个学生也可以在班主任的委派下,在多个小组之间切换。
groupadd [用户组名]
用户组的创建必须是root用户才能去创建。
groupdel [用户组名]
删除指定的用户组
getent group
查看用户组
useradd [-g -d] username
-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
userdel [-r] username
-r 删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留【一般是保留的】
id 【username】
用户名,被查看的用户,如果不提供则查看自身
usermod -aG [用户组] [用户名]
将指定用户加入指定用户组
getent passwd
查看当前系统中有哪些用户
权限控制
分析:
rwx到底代表什么呢?
- r表示读权限
- w表示写权限
- x表示执行权限
权限信息能看懂了,接下来就是修改权限信息了。
chmod [-R] [u=rwx,g=rw,o=r][文件、文件夹]
修改指定文件、文件夹的权限
注意,只有文件、文件夹的所属用户或root用户可以修改。
-R,对文件夹内的全部内容应用同样的操作,只针对文件夹。一般不用。
u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
比如,chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x–x
chown [-R][用户][:][用户组][文件、文件夹]
使用chown命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
比如,chown root hang.txt,将hang.txt所属用户修改为root
用户、用户组、权限控制这些知识点,以后做Linux服务器运维估计也用不上。所以,就粗略的讲了一下。记不住上面的命令也没事。以后用得多了,自然就记住了。我只想说,上面的知识点不重要,不必花过多的时间去学习。人也别轴,别把学习的干劲给消耗没了...
实用快捷键
ctrl + c
强制停止、取消当前命令
ctrl + d
退出账户的登录【类似于exit】、进入到程序的专属页面【mysql】,也可以退出
history
查看历史命令
ctrl + l
清理终端【clear】
软件安装
yum:
yum:RPM 包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。直白的说,就是通yum命令才能安装第三方软件。
RPM 包就是 .rpm 文件包
yun [-y] [install or remove or search] [软件名称]
- -y,自动确认,无需手动确认安装或卸载过程
- install:安装 | remove:卸载 | search:搜索
- yum命令需要root权限哦,可以su切换到root,或使用sudo提权。且需要联网。
yum search wget
yum 类似于 Windows的微软商场,是CentOS 7 自带的下载软件包;wget 是非官方的下载软件包。
检测安装
systemctl:
systemctl 命令的作用:控制软件或服务的启动、停止、开机自启等
systemctl [start or stop or status or enable or disable] 服务名
- start 启动
- stop 关闭
- status 查看状态
- enable 开启开机自启
- disable 关闭开机自启
系统内置的服务:
- NetworkManager,主网络服务
- network,副网络服务
- firewalld,防火墙服务
- sshd,ssh服务
系统内置的服务会自动受systemctl控制,一些第三方软件安装后会自动注册为系统的服务。一些第三方软件不会注册为服务,但是会集成到systemctl中。然而,更多的一些第三方软件需要手动的去集成到systemctl中。
第三方软件介绍:
- wget 从网络上自动下载文件的自由工具。
- ntp 时间同步;该软件安装后会自动注册为服务,服务名为ntpd
- httpd 安装Apache服务器软件,安装后会自动集成到systemctl中。
软连接
Linux的软连接类似于Windows快捷方式。
ln -s [被连接的文件、文件夹路径] [要连接去的目的路径]
日期、时区
date [-d] [ + 时间格式字符串]
时区切换为中国的东八区:
修改时区必须具备root权限
rm -f /etc/localtime
删除系统自带的时区
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
软连接,导入东八区到本地时区文件中
ip、主机名
ip:
主机名:
域名解析
还记得我们之前联网配置的DNS吗?
114.114.114.114 与8.8.8.8 其实是网络上公开的DNS服务器。DNS服务器是进行域名解析的。
域名解析流程图:
windows下的域名映射本地存储:
我们是否可以在windows的hosts文件中去配置虚拟机的一个域名-ip地址关系。然后,Windows上去访问虚拟机时,是不是就可以直接写域名了?这样就不用去写虚拟机的IP地址了?可以实现。
检测是否连接成功
效果
网络传输
ping [-c number] [ip地址 or 域名]
检测指定的网络服务器是否是处于可联通状态。
wget [-b] [url]
wget是非交互式的文件下载器,可以在命令行内下载网络文件。
-b 后台下载
url 下载软件的url地址
curl [-o] url
-o 用于下载文件。如果只是请求url,则不要写 -o
url 资源网络地址
端口
ip是定位服务器的;端口是定位服务器内部的程序。
- 1—1023 是系统程序专用端口。千万被去占用。
- 1024–49151 用于绑定一些程序【可以随便用】
- 49152–65535 也可以随便用,但是一般是用作程序对外进行网络连接。【临时使用】
只要不用1–1023之间的端口,就没有什么大问题。
安装nmap
nmap可以去嗅探指定的ip的主机上的公开的端口。
yum -y install nmap
nmap [ip地址]
安装 net-tools
可以通过netstat命令去查看指定端口的占用情况。
yum -y install net-tools
netstat -anp|grep 端口号
grep 参数 管道过滤
进程
ps -ef
查看CentOS操作系统中的进程。没怎么用,会这一个命令差不多就可以了。
环境变量
env
查看环境变量
PATH路径:
用户自定义变量:
在当前用户下的 ~/.bashrc 文件中编辑变量的key-value .然后通过
source .bashrc
去保存文件资源。最后,就可以使用变量了。注意,在当前用户下配置的变量只能由该变量去使用。
vi ~/.bashrc
source .bashrc
重新加载 .basgrc 文件信息
用户自定义环境变量:
vim /etc/profile
修改系统的环境变量文件profile
在MyEnv文件夹中写一个脚本文件
在任意目录下,执行 hang 脚本文件
以后,第三方的环境变量就可以配置在SystemConfig/MyEnv文件夹中了。
linux 文件的上传、 下载、压缩、解压
如果是本地的虚拟机与本地电脑去进行文件的交换,是很简单的。直接拖拽即可。但是,如果是云服务器与本地电脑进行数据交换时,就只能使用命令去完成文件的上传与下载了。
yum -y install lrzsz
zr
进行上传sz
[指定下载文件的路径] 下载文件,下载的文件一般会放在桌面上
在Linux操作系统中,常用的压缩文件格式为:tar、gzip、zip
- 针对 .tar 、.gz 为后缀的文件,可以使用 tar 命令来解压 or 压缩
tar [-c -v -x -f -C] 文件
- -c,创建压缩文件,用于压缩模式
- -v,显示压缩、解压过程,用于查看进度
- -x,解压模式
- -f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
- -C,选择解压的目的地,用于解压模式
- -z,gzip模式,不使用-z就是普通的tarball格式
上述命令会用就行。重点还是环境变量的配置!后期,安装软件,绝对会进行环境变量的配置。
更多推荐
Linux基础知识讲解【运维开发】
发布评论