文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux操作系统详解(最详细)

2023-09-01 14:17

关注

Linux操作系统

文章目录

一. linux操作系统的基本介绍

​ Linux是一套免费使用和自由传播的类unix操作系统。那么什么是类unix操作系统呢?在1969年由unix之父Ken Thompson在AT&T(American Telephone & Telegraph, 美国电话电报公司,现在为美国第二大运营商,第一大运营商为Verizon Wireless)的贝尔实验室主导研发的,当时完全是出于好奇或者兴趣。

​ 在1974年7月首次unix首次与外界接触,当unix到达第五版的时候,以“仅用于教育目的”为协议,提供给各大学作为教学之用,成为当时操作系统课程中的范例教材。各大学公司开始通过Unix源码对Unix进行了各种各样的改进和扩展。于是,Unix开始广泛流行。在1979年,unix的V7版本发布,许可证开始禁止大学使用Unix的源码,包括在授课中学习。到了1980年,unix开始一发不可收拾地开发不停地出现各种各样的变种。

​ Linux操作系统包括但不限于unix所有的功能,是开源免费的,不需支付任何费用便能获取到它的源代码,可以根据自己的需求进行修改。Linux操作系统是由Linus Benedict Torvalds(林纳斯·本纳第克特·托瓦兹)在大学的时候编写的,并邀请大家进行完善,从此Linux操作系统成为服务器领域的首选操作系统。

​ 我们所熟知的Centos、redhat、ubuntu等操作系统都是基于linux内核(kernel)基础上进行开发,形成了自己的产品。那么在本次课程中我们为大家使用的是ubuntu操作系统讲解Linux操作系统的基本使用。


二. Linux操作系统的安装

​ ubuntu操作系统安装以及链接工具的安装参照视频,视频地址为:


三. Linux的目录结构

​ linux的目录结构与windows有很大的区别,windows有盘符的概念,例如C盘,D盘等。而Linux的目录结构类似于一棵倒着的树,最顶层的就是根目录:如下图所示

在这里插入图片描述

目录名作用
/bin存放最经常使用的命令
/boot存放启动Linux操作系统的时候的一些核心文件
/etc存放系统管理和配置文件
/dev用于存放设备文件
/home存放的用户的目录,每个用户都有一个属于自己的目录
/opt额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/usr用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录
/var用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。

四. Linux系统的基本操作

1. 目录的切换(change directory)

2. 文件内容的查看

3. 查看文件夹中的内容

在这里插入图片描述

查看到文件夹的详细信息后,会看到有七栏,那么我们分别来解释一下是什么意思:

​ 第一栏:有10个符号,第一个符号表示表示文件的属性,-表示是文件,d是目录,l是连接文件;后面9为分别分三组,每组均为rwx,r是可读,w是可写,x是可执行,第一组表示当前的用户的权限,第二组是用户组的权限;第三组是其他用户的权限。

​ 第二栏:是文件或者文件夹的个数,如果说文件就为1,如果目录的情况下就是该目录下文件夹的个数,其中包括当前目录和上级目录。

​ 第三栏:当前文件或者文件夹所属的用户。

​ 第四栏:当前文件或者文件夹所属的用户组。

​ 第五栏:当前文件或者文件夹的大小,单位为KB。

​ 第六栏:创建的时间。

​ 第七栏:文件或者文件夹或者链接的名字。

4. 相对路径、绝对路径

​ 要高清相对路径首先要搞清楚.和…的这两个概念,一个点表示当前目录,即我们当前操作所处的目录;两个点表示上一级目录。

​ 相对路径,所谓相对就必须要有一个参照物,例如两个同学A和他的同桌B,并且他们两个此时此刻正坐在一起。假如现在有人问A:“B在哪里?”,A回答道:“B就在我身边呀。”,那么此时A的回答就是以自己为参照物,B就在他身边。

​ 绝对路径,就是以一个顶级的地址,而且这个地址我们都知道,例如“宇宙”、“地球”、“中国”、“北京”等都可以选择作为我们的顶级地址,我们同样以上面提到过的A和B这两个同桌为例,A还有另外一种回答:“他在地球上中国北京市昌平区区XX路XX楼X层XX房第X排第X个”,那么A这种回答的方式就是以地球作为顶级目录,然后逐层往下找。

​ 那么我们在Linux操作系统中,相对路径所选择的参照物就是我们当前执行操作所处的目录;绝对路径所选择的顶级目录就是我们的根(/)目录。

5. 文件夹、文件的创建

6. 文件、文件夹的删除

7. 文件或者文件夹的拷贝

8.文件、文件夹的移动

9.文件、文件夹的重命令


五. 文件、文件夹的上传、下载

​ 我们可以直接使用xshell提供的工具实现文件的上传与下载。

在这里插入图片描述


六. vi、vim的使用

​ vi为linux操作系统自带的文本编辑器,其功能非常的强大,我们必须要掌握其使用,为我们修改各种配置或者编写脚本文件奠定基础。其快捷键命令如下:

命令含义命令的模式
Esc (重点)从编辑模式进入到命令行模式编辑模式
i (重点)在当前字符前插入编辑模式
a在当前字符后插入编辑模式
A在当前行末进行插入编辑模式
I在当前开头进行插入编辑模式
o (重点)进入到当前行的下一行进行编辑编辑模式
O (重点)进入到当前行的上一行进行编辑编辑模式
yy (重点)复制一行编辑模式
p (重点)粘贴yy复制的一行内容编辑模式
dd (重点)删除一行编辑模式
h (重点)向左移动光标编辑模式
l (重点)向右移动光标编辑模式
j (重点)光标向上移动编辑模式
k (重点)光标向下移动编辑模式
G光标移动文件的末尾命令行模式
gg光标移动到文件的开头命令行模式
q退出文件命令行模式
:wq (重点)保存并退出命令行模式
:set nu! (重点)设置或取消行号命令行模式
u (重点)撤销上一次操作命令行模式
w光标跳到下一个单词的首字母命令行模式
b光标跳到上一个单词的首字母命令行模式
$光标跳到该行的末尾命令行模式
0光标跳到该行的开头命令行模式
:/public查找出public这个单词命令行模式
n跳转到下一个查找到内容命令行模式
N查找到上一个查找到的内容命令行模式
:/public\c大小写不敏感查找命令行模式
:%s/abc/QQ将当前行的第一个abc换成QQ命令行模式
:%s/abc/QQ/g将整行所有的abc替换为QQ命令行模式
:%s/abc/QQ/gi将全文的所有的abc忽略大小写换成qq,命令行模式
:5,12s/abc/QQ/gi将第5到12行所有的abc忽略大小写换成QQ命令行模式
ctrl + j在编辑模式实现换行操作编辑模式
数字 + G直接跳转到对应的行命令行模式

七. 内容过滤

八. 管道操作

**管道操作就是将上一步操作的结果作为下一部操作的数据源,使用 “|” 符号。**例如:

练习:1. 查看/etc/passwd文件的第5到第8行的内容。(head -8 passwod | tail -4)

​ 2.查看/etc/passwd文件的倒数第10行到倒数第3行的内容。

九. 进程的管理

1. 查看所有的进程

2.关闭进程(杀死进程)

​ 在关闭进程之前我们需要查看需要杀死的进程的pid,然后通过kill命令关闭进程。通过kill -l 命令查看可以使用的杀死进程的方式,如下图所示:

在这里插入图片描述

那么杀死进程的方式如下:

​ 为什么可以使用 -kill 或者 -9 呢?我们通过kill -l 可以看到杀死进程的方式有64种,所有的方式都形如SIG***,我们将SIG去掉后的单词,就可以作为kill后的参数;又或者我们直接使用该命令对应的变好,例如 SIGKILL 对应的编号为9,所以我们也可以使用 -9 作为参数。

九.服务管理

关闭防火墙命令: systemctl stop firewalld

十.软件的解压与压缩

​ 在linux操作系统中我们最常见的两种文件是tar.gz和zip文件,那么针对这两种文件我们有不同的压缩和解压缩的方式。

tar.gz文件的解压、压缩,在实际工作中参数v不需要加,可能会导致机器卡死:

zip文件的压缩与解压,在使用zip解压缩文件需要安装zip软件:

注意:在使用unzip或者zip命令的时候,会报错,原因是因为没有zip的这个软件,需要使用yum install zip这个命令进行安装。

十一.用户、用户组的管理

1.用户相关的操作

2.用户组相关操作

十二. yum的方式安装软件

12.1 配置yum源

/etc/yum.repo.d/Centos-Base.repo 进行备份:

mv CentOS-Base.repo CentOS-Base.repo.bak

下载阿里的yum源:http://mirrors.aliyun.com/repo/Centos-7.repo, 然后将文件上传到/etc/yum.repo.d/, 命名为:Centos-Base.repo

12.2 安装软件

安装 unzip: yum install -y unzip

十三. 文件权限的管理

​ 前面我们已经讲过,对于一个文件或者文件夹,我们用户和用户组可以有rwx的权限。那么我们可以通过chmod命令修改文件的读写和执行权限。

写权限:a) 对于文件夹,写权限表示是否可以在文件夹下新建文件(文件夹),以及删除删除。

​ b) 对于文件来说,就是无法写入内容。

执行权限:a) 对于文件,表示进入文件夹的权限;就算拥有了写权限,那么也是无法进入的。

​ b) 对于文件来讲,一般都是shell脚本(.sh结尾的文件),是否可以执行。

读权限:对于文件来说,是无法查看文件内容的。

13.1 文件夹的授权

apache-tomcat-8.5.59 整个文件夹按照递归的方式,将所有权授予 test 用户。

chown -R test apache-tomcat-8.5.59

十四. 软件的安装

1.jdk的安装

​ a. 解压 tar -zxvf jdk-8u60-linux-x64.tar.gz

​ b.进入到jdk的家目录,拷贝其家目录的路径。

​ c.配置环境变量,需要修改/etc/profile文件,加上如下两行内容

export JAVA_HOME=/datas/jdk1.8.0_60export PATH=$JAVA_HOME/bin:$PATH

​ d.刷新环境变量:source /ect/profile

2.tomcat的安装

​ a.解压:tar -zxvf apache-tomcat-8.5.42.tar.gz

​ b.进入到/datas/apache-tomcat-8.5.42/bin/

​ c. ./startup.sh

3.mysql的安装

第一步,安装wget:

yum install -y wget   #安装wget

第二步,安装mysql专有yum源:

wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpmyum localinstall -y mysql57-community-release-el7-7.noarch.rpm

第三步,导入密钥

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

第四步,安装mysql:

yum install -y mysql-community-server

第五步,启动mysql:

systemctl status mysqldsystemctl start mysqld

第六步,进入mysql:

mysql -uroot -p  #会提示输入密码,/var/log/mysqld.log文件,中记录着mysql的临时密码。

第七步,重置为自己的密码:

alter user 'root'@'localhost' identified by 'Ab123456cd!!';

第八步(可选),如果想让其他机器的用户访问该myql,需要授权:

grant all on *.* to 'root'@'%' identified by 'Ab123456cd!!';  #授权flush privileges; 

第八步,开启自动启动:

systemctl enable mysqld

十五. 磁盘扩容

​ 磁盘扩容使用到LVM(Logic Volume Manager)技术.

​ a. 在虚拟机上增加一块磁盘。

​ b. 对磁盘进行分区:fdisk /dev/sdb​

root@ubuntu:~# fdisk /dev/sdbWelcome to fdisk (util-linux 2.31.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x927bf0e2.Command (m for help): nPartition type   p   primary (0 primary, 0 extended, 4 free)   e   extended (container for logical partitions)Select (default p): pPartition number (1-4, default 1): First sector (2048-20971519, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): Created a new partition 1 of type 'Linux' and of size 10 GiB.Command (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.

​ c. 对磁盘格式化:mkfs -t ext4 /dev/sdb1,可以通过mount命令查看文件的格式。

root@ubuntu:~# mkfs -t ext4 /dev/sdb1mke2fs 1.44.1 (24-Mar-2018)Creating filesystem with 2621184 4k blocks and 655360 inodesFilesystem UUID: e7746867-675b-4c59-9fe1-7e0011e4fc8aSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632Allocating group tables: doneWriting inode tables: doneCreating journal (16384 blocks): doneWriting superblocks and filesystem accounting information: done 

​ d. 创建物理卷:pvcreate /dev/sdb1

root@ubuntu:~# pvcreate /dev/sdb1  WARNING: Device for PV iM84L6-hkJb-P91v-J48U-gGeD-uBhp-Xf6tGv not found or rejected by a filter.WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y  Wiping ext4 signature on /dev/sdb1.  Physical volume "/dev/sdb1" successfully created.

​ e. 查看所有的物理卷:pvscan

root@ubuntu:~# pvscan  PV /dev/sda3   VG ubuntu-vg       lvm2 [<19.00 GiB / <15.00 GiB free]  PV /dev/sdb1                      lvm2 [<10.00 GiB]  Total: 2 [<29.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [<10.00 GiB]

​ f. 查看卷组:vgdisplay

root@ubuntu:~# vgdisplay  --- Volume group ---  VG Name               ubuntu-vg  System ID               Format                lvm2  Metadata Areas        1  Metadata Sequence No  2  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               1  Max PV                0  Cur PV                1  Act PV                1  VG Size               <19.00 GiB  PE Size               4.00 MiB  Total PE              4863  Alloc PE / Size       1024 / 4.00 GiB  Free  PE / Size       3839 / <15.00 GiB  VG UUID               41dd8K-nWqX-rrVd-seqy-dW6H-ypLL-8Sd8vw

​ g. 将 /dev/sdb1加入到 ubuntu-vg这个组:vgextend ubuntu-vg /dev/sdb1

root@ubuntu:~# vgextend ubuntu-vg /dev/sdb1  Volume group "ubuntu-vg" successfully extended

​ h.再次查看卷组信息:vgdisplay

root@ubuntu:~# vgdisplay  --- Volume group ---  VG Name               ubuntu-vg  System ID               Format                lvm2  Metadata Areas        2  Metadata Sequence No  3  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               1  Max PV                0  Cur PV                2  Act PV                2  VG Size               28.99 GiB  PE Size               4.00 MiB  Total PE              7422  Alloc PE / Size       1024 / 4.00 GiB  Free  PE / Size       6398 / 24.99 GiB  VG UUID               41dd8K-nWqX-rrVd-seqy-dW6H-ypLL-8Sd8vw

​ i. 查看物理卷信息:pvscan

root@ubuntu:~# pvscan  PV /dev/sda3   VG ubuntu-vg       lvm2 [<19.00 GiB / <15.00 GiB free]  PV /dev/sdb1   VG ubuntu-vg       lvm2 [<10.00 GiB / <10.00 GiB free]  Total: 2 [28.99 GiB] / in use: 2 [28.99 GiB] / in no VG: 0 [0   ]

​ k. 扩展逻辑卷:lvextend -L +5G /dev/ubuntu-vg/ubuntu-lv

root@ubuntu:~# lvextend -L +5G /dev/ubuntu-vg/ubuntu-lv  Size of logical volume ubuntu-vg/ubuntu-lv changed from 4.00 GiB (1024 extents) to 9.00 GiB (2304 extents).  Logical volume ubuntu-vg/ubuntu-lv successfully resized.

​ l. 刷新磁盘:resize2fs /dev/ubuntu-vg/ubuntu-lv

root@ubuntu:~# resize2fs /dev/ubuntu-vg/ubuntu-lvresize2fs 1.44.1 (24-Mar-2018)Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing requiredold_desc_blocks = 1, new_desc_blocks = 2The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 2359296 (4k) blocks long.

十六. nginx安装

第一步,一些准备工作

yum install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-devel

第二步,下载解压,下载地址:http://nginx.org/en/download.html,然后上传到linux上,然后解压

第三步,进入到解压目录,开始安装

./configure makemake install

第四步,查看nginx安装地址

whereis nginx

第五步,进入到sbin目录下,启动 nginx

./nginx

十七. 前后端分离项目部署流程

17.1 服务端

先根据实际的情况修改响应的配置:

  1. 数据库的地址,用户名、密码等信息;
  2. jwt的过期日期

将spring-boot项目打包,打包的方式,执行maven命令:package,会在target下生产一个jar包,将jar包上传到 Linux,然后启动springboot项目,启动的命令如下:

java -jarmall-manager-backend.jar  --server.port=8080

17.2 前端部署

第一步,安装nginx

第二步,修改响应的配置信息,例如修改 @/utils/request.js 文件中服务端的请求地址,以及请求token过期的跳转地址。

第二步,前端项目进行打包,打包的命令参考 package.json 文件,命令如下:

npm run build:prod

执行完如上命令之后,会在项目下产生一个 dist 目录。

第三步,将dist目录下的内容上传到 nginx 安装目录下的 html 目录下即可,启动nginx即可访问。

十七. 其他命令

来源地址:https://blog.csdn.net/asdf12388999/article/details/128833863

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯