Linux

本文是作者学习尚硅谷Linux视频的整理,涵盖了从Linux入门、VMware和CentOS安装、远程登录、vi/vim编辑器使用,到用户管理、磁盘分区、任务调度、网络配置、进程管理等多个方面,深入浅出地介绍了Linux系统的各项基础操作和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇文章是我观看尚硅谷Linux视频时做的整理,供记忆和以后复习用,有些地方有所省略

第1章 Linux入门


1.1 Linux介绍

  1. Linux怎么读【李纽克斯,利尼克斯,里纳克斯】
  2. Linux是一款操作系统,免费,开源,高效,稳定,处理高并发非常强悍,现在很多的企业级项目都部署到Linux/unix服务器运行。
  3. Linux创始人:linus 林纳斯,吉祥物:企鹅
  4. Linux主要的发行版:

在这里插入图片描述

1.2 Linux和Unix的关系

http://c.biancheng.net/view/707.html

1.3 Linux和Windows比较

在这里插入图片描述

第2章 VM和Centos安装(主要细节部分)


2.1 虚拟机的三种网络模式

https://note.youdao.com/ynoteshare1/index.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note

2.2 Centos的磁盘分区

https://blog.youkuaiyun.com/u012052268/article/details/77145427/
在Linux中挂载时:
必须分区的有:
1、/ (根分区)
2、swap分区 (交换分区,不超过内存2倍)
推荐分区:
3、/boot (启动分区,200M)

2.3 Linux的目录结构

Linux的目录中有且只有一个根目录
Linux是以文件的形式管理设备的

在这里插入图片描述

目录具体
/bin
[usr/bin 、/usr/local/bin]
是Binary的缩写,这个目录存放最经常使用的命令
/sbin
[usr/sbin 、/usr/local/sbin]
s就是SuperUser的意思,这里存放的是系统管理员使用的账号命名的
/root该目录为系统管理员,也称超级权限者的用户主目录
/bin
[usr/bin 、/usr/local/bin]
是Binary的缩写,这个目录存放最经常使用的命令
/lib系统开启所需要的最基础的动态连接共享库,其作用类似于Windows中的DLL文件,几乎所有的应用程序都要用到这些共享库
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
/etc所有的系统管理所需要的配置文件和字母录
/usr这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录
/boot存放的启动Linux的一些重要文件,包括一下连接文件和镜像文件
/proc这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
/srvservice的缩写,该目录存放一些服务启动之后需要提取的数据
/sys这是Linux2.6内核的一个重大变化,该目录下安装了2.6内核中新出现的一个文件系统
/tmp这个目录是用来存放一些临时文件的
/dev类似于Windows的设备管理器,把所有的硬件以文件的形式存储
/mediaLinux系统会自动识别一些设备,例如U盘,光驱等,当识别后,会把设备挂载到这个目录下
/mnt系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以把外部的存储挂载到该目录下,然后进入该目录就可以查看里面的内容了
/opt这是给主机额外安装软件所摆放的目录,默认为空
/usr/local这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式来安装的程序
/var这个目录中存放着不断扩充着的东西,习惯被经常修改的目录放在这个目录下,包含各种日志文件
/selinux [security-enhanced linux]是一个安全子系统,它能控制程序只能访问特定文件

第3章 远程登录Linux系统


XShell:远程登录到Linux 【前提Linux启用了SSHD服务,该服务会监听22端口】
XFtp:上传和下载文件软件

第4章 vi 、vim编辑器


所有的Linux系统都会内置vi文本编辑器
vim具有程序编辑的能力,可以看做是vi的增强版本:字体颜色辨别,代码补全,编译及错误跳转等编程的功能特别丰富。

4.1 三种模式

  1. 正常模式:可以使用快捷键
  2. 插入模式:可以输入内容,一般输入 i 进入此模式
  3. 命令行模式:可以提供相关指令,完成读取,存盘,离开,显示行号等的动作实在此模式中达成的

在这里插入图片描述

4.2 常用的快捷键

  1. 拷贝光标当前行:[yy] ,拷贝当前光标行向下的五行:[5yy], 粘贴到光标处:[p]
  2. 删除当前行:[dd],删除当前行向下5行:[5dd]
  3. 在文件中查找某个单词: [/关键字],回车查找,输入n就是查找下一个
  4. 到文档的最末行:[G] ,最首行:[gg]
  5. 撤销输入:[u]
  6. 显示文件的行号:[:set nu] ,不显示文件的行号:[:set nonu]
  7. 将光标移动到20行[第一步(可以省略):显示行号 :set nu;第二步:输入20;第三步:输入shift+g]

第5章 开机、重启、用户登录注销


5.1 开机&重启命令

shutdown -h now: 表示立刻关机
shutdown -h 1: 表示一分钟后关机
shutdown -r now: 现在重新启动计算机
halt: 直接使用,等价于关机
reboot: 就是重启系统
syn: 把内存的数据同步到磁盘

5.2 用户登录和注销

logout:注销登录用户(在图形运行级别无效)

第6章 用户管理


6.1 基本语法

  1. useradd 用户名:添加一个用户,当创建用户成功后,会自动创建和用户同名的家目录,也可以通过useradd -d 指定目录 用户名,给新创建的用户指定家目录。
  2. passwd 用户名:为该用户设置或修改密码。
  3. userdel 用户名:删除该用户,但保存家目录。
  4. userdel -r 用户名:删除该用户,同时删除家目录。
  1. id 用户名:查询用户信息。

如果当前用户的权限不够,需要切换到高权限用户,比如root.

  1. su - :用户名 :切换用户 【从权限高的用户到低的用户,不需要输入密码,反之需要】。
  1. whoami【who am i 】:查看当前登录用户。

用户组:类似于角色,系统可以对有共性的多个用户进行统一的管理

  1. groupadd 组名:创建一个组。
  2. groupdel 组名:删除一个组。
  3. useradd -g 用户组 用户名:创建用户时直接加入组。
  4. usermod -g 用户组 用户名:修改用户的组。

6.2 用户和组的相关文件

  1. /etc/password文件:用户(user)的配置文件,记录用户的各种信息
    每行的含义:用户名:口令:用户标识符:组标识号:注释性描述:主目录:登录shell。
  2. /etc/shadow文件:口令的配置文件
    每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:
    标志.
  3. /etc/group文件:组的配置文件
    每行含义:组名:口令:组标识号:组内用户列表

第7章 实用指令


7.1 指定运行级别

在这里插入图片描述

系统的运行级别配置文件:/etc/inittab
切换到指定运行级别的指令: init [0123456]

如何找回root密码?
思路:进入到单用户模式,然后修改root密码,然后重启。

7.2 帮助指令

  1. man [命令或配置文件] :功能描述,获得帮助信息
  2. help :获得shell内置命令的帮助信息

7.3 文件目录类指令

  1. pwd:显示当前工作目录的绝对路径。
  2. ls [目录或文件]:查看当前目录的所有内容信息。
    常用选项:-a:显示当前所有的文件和目录。包含隐藏的、-l: 以列表的方式显示信息。
  3. cd [参数]:切换到指定目录,cd ~或者cd:回到自己的家目录,cd …/ 回到当前目录的上一级目录。
  4. mkdir [选项] 要创建的目录:;常用选项: -p:创建多级目录。
  5. rmdir [选项] 要删除的空目录:rmdir删除的是空目录,如果目录下有内容时是无法删除的,如果删除非空目录,需要使用 rm -rf 要删除的目录。
  6. touch 文件名称:创建一个空文件,也尅一一次性创建多个。
  7. cp [选项] source dest:将source复制到dest中。 常用选项:-r:递归复制整个文件夹,强制覆盖不提示的方法:\cp 。
  8. rm [选项] 要删除的文件或目录:移除文件或目录。
    常用选项:-r:递归删除整个文件夹,-f:强制删除不提示。
  9. mv oldNameFile newNameFile :重命名、mv 目录1 目录2:移动文件 。
  10. cat [选项] 要查看的文件:查看文件内容,以只读的方式。为了浏览方便,一般会带上 | more
    常用选项:-n:显示行号。
  11. more:是一种基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件中的内容
    快捷键:space:向下翻一页、Enter:向下翻一行、q:退出、Ctrl+F:向下滚动一屏、Ctrl+B:返回上一屏
  12. less:用来分屏查看文件内容。less指令在先说文件内容时,并不是一次性将整个文件加载之后才显示,而是根据显示加载内容,对于大型文件具有较高的效率。
    快捷键:space:向下翻动一页、pagedown:向下翻动一页、pageup:向上翻动一页、q:退出
  13. >输出重定向指令 和 >> 追加指令
    基本语法:ls -l > 文件:将列表的内容覆盖写入文件中;ls -l >> 文件:将列表的内容追加到文件的末尾;cat 文件1 > 文件2:将文件1的内容覆盖到文件2中;echo “内容” >> 文件。
  14. echo [选项] [输出内容]: 输出内容到控制台:例如echo $PATH
  15. head 文件:查看文件头10行内容;head -n 5 文件:查看文件头5行内容
  16. tail 文件:查看文件后10行内容;tail -n 5 文件:查看文件后5行内容;tail -f 文件:实时追踪该文档的所有更新
  17. ln指令:软链接也叫符号链接,类似于windows里的快捷方式。 基本语法:ls -s [原文件或目录] [软链接名] 细节说明:当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
  18. history指令:查看已经执行过的历史命令。 显示最近的十个指令:history 10; 执行历史编号为5的指令:!5

7.4 时间日期类

  1. data指令:显示当前日期 基本语法:data:显示当前时候;data “+%Y”:显示当前年份;data “+%m”:显示当前月份; data “+%d”:显示当前是哪一天;data “+%Y-%m-%d %H:%M:%S”:显示年月日时分秒。
    设置日期:data -s “2019-10-10 11:11:12”
  2. cal指令:查看日历 基本语法:显示当前日历 :cal;显示2019年的日历:cal 2019

7.5 搜索查找类

  1. find指令:从指令目录向下递归遍历其子目录,将满足条件的文件或目录显示在终端 基本语法:find [搜索范围] [选项] 选项说明:-name 文件名:按照指定的文件名查找模式查找文件;-user 用户名:查找属于指定用户名所有文件;-size +n/-
    n/n size:按照指定的大小查找文件 。
  2. locate指令:可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,locate指令无需遍历整个文件系统,查询速度极快,为了保证查询结果的准确度,管理员必须定期更新locate数据库。
    基本语法:locate 搜索文件 特别说明:由于locate指令基于数据库进行查询,所有第一次运行前,必须使用updatedb指令创建locate数据库。
  3. grep指令和管道符号:grep过滤查找,管道符"|",表示将前一个命令的处理结果输出传递给后面的命令处理 基本语法:grep [选项] 查找文件 源文件 选项:-n:显示匹配行及行号;-i:忽略字母大小写

7.6 压缩和解压缩指令

  1. gzip/gunzip:gzip用于压缩文件,gunzip用于解压缩
    基本语法:gzip 文件名 ;gzip 文件名.gz
    细节说明:当使用gzip压缩文件后,不再保留原来的文件。
  2. zip/unzip:zip用于压缩文件或目录,unzip用于解压
    基本语法:zip [选项] xxx.zip 将要压缩的内容;unzip [选项] xxx.zip
    zip常用选项:-r:递归查询,即压缩命令
    zip常用选项:-d <目录>:指定解压后文件的存放目录
  3. tar:打包指令,最后打包后的文件是tar.gz的文件
    基本语法:tar [选项] xxx.tar.gz 打包的内容
    选项说明:-c:产生tar打包文件;-v:显示详细信息;-f:指定压缩后的文件名;-z:打包同时压缩;-x:解包 .tar文件
    例子:压缩:tar -zcvf 要打包的文件;解压到指定目录:tar -zxvf a.tar.gc -c 已经存在的目录

7.7 组管理和权限管理

  1. 文件/目录 所有者:一般为文件的创建者
    查看文件所有者指令:ls -ahl
  2. 修改文件所有者:
    指令:chown 用户名 文件名
  3. 修改文件所在的组
    指令:chgrp 组名 文件名
  4. 修改用户所在组/登录的初始目录
    指令:usermod -g 组名 用户名;usermod -d 目录名 用户名 改变该用户登录的初始目录

7.8 权限查看及详解

ls -l 中先显示的内容如下
-rwxrw-r-- 1 root root 12213 Feb 2:09:39 abc.txt

第1位第2-4位第5-7位第8-10位1rootroot12213Feb 2:09:39abc.txt
文件的类型:- 普通文件;d 目录;l 软链接;c字符设备【键盘、鼠标】;b 块文件,硬盘表示文件所有者的权限表示所在组的用户的权限表示文件其它组的用户的权限如果是文件,表示硬链接的数,如果是目录,表示该目录的子目录个数文件所属用户文件所属组如果是文件,表示的是文件大小,如果是目录,显示4096文件的最后修改时间文件名

rwx [421] 权限详解

文件目录
[ r ]
代表可读
可以读取查看可以读取,ls查看目录内容
[ w ]
代表可写
可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在目录有写权限,才能删除该文件可以修改,目录内创建+删除+重命名目录
[ r ]
代表可执行
可以被执行可以进入该目录

7.9 修改权限-chmod

通过chmod指令。可以修改文件或目录的权限

  1. 通过 “+、- 、=”变更权限
    chmod u=rwx,g=rx,o=x 文件目录名
    chmod o+w 文件目录名
    chmod a-x 文件目录名 (a代表所有)
  2. 通过数子变更权限
    rwx = 4+2+1 = 7
    chmod 755 文件目录名
  3. 修改文件所有者
    chown newowner file :修改文件所有者
    chown newowner:newgroup file:改变用户的所有者和所有组
    -R 如果是目录,则使其下所有子文件或目录递归生效

第8章 任务调度-crond


任务调度:是指系统在某个时间执行的特定的命令或程序。
基本语法:crontab [选项]
常用选项:

  • -e:编辑crontab定时任务;
  • -l:查询crontab任务:
  • -r:删除当前用户所有者的crontab任务。

    例子:
    crontab -e
    */1 * * * * ls -l /etc/> /tem/to.txt
    当保存退出后执行
    在每一分钟都会执行 ls -l /etc/ > tmp/to.txt

    说明:
  • 时间单位从左到右的含义:分钟,小时,天,月,星期。
  • 特殊符号的说明:" " * “号:代表任何时间;”,":代表不连续的时间,"-“代表连续的时间;”/n":代表每隔n执行一次。

第9章 磁盘分区、挂载

9.1 分区基本知识

  1. mbr分区
  • 最多支持四个主分区
  • 系统只能安装在主分区
  • 扩展分区要占一个主分区
  • MBR最大只支持2TB,但拥有最好的兼容性
  1. gtp分区
  • 支持无限多个分区(但操作系统可能限制,比如windiws 下最多128个分区)
  • 最大支持18EB的最大容量(EB=1024PB,PB=1024TB)
  • windows7 64位以后支持gtp

9.2 Linux分区

  1. Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。

  2. Linux采用了一种叫"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。

  3. 查看系统的分区和挂载情况
    在这里插入图片描述

9.3 如何增加一块硬盘

步骤:
1. 虚拟机添加硬盘
2. 分区fdisk /dev/sdb
3. 格式化mkfs -t ext4 /dev/sdb1
4. 挂载先创建一个要挂载的目录挂载
mount /dev/sdb1 要挂载到的目录
5. 设置可以自动挂载(永久挂载)vim /etc/fstab
/dev/sdb1 要挂载到的目录 ext4 defaults 0 0

9.4 磁盘情况查询

9.4.1 查看系统整体磁盘使用情况

基本语法:df -h
应用实实例
在这里插入图片描述

9.4. 2查看指定目录的磁盘占用情况

基本语法: du -h 目录 查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
-max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值

应用实例:查询 /boot 目录的磁盘占用情况,深度为1
在这里插入图片描述

9.5 磁盘查询实用指令

  1. 统计/home 文件夹下目录的个数:[ ls -l /home | grep " ^- " | wc -l ]
  2. 统计/home 文件夹下文件的个数:[ ls -l /home | grep " ^d " | wc -l ]
  3. 统计/home 文件夹下文件的个数,包括子文件夹里的:[ ls -lR /home | grep " ^- " | wc -l ]
  4. 统计/home 文件夹下目录的个数,包括子文件夹里的:[ ls -lR /home | grep " ^d " | wc -l ]
  5. 以树状显示目录结构:[ yum install tree ; tree ]

10 网络配置


10.1 查看网络IP和网关

10.1.1 查看虚拟机中虚拟网络编辑器

在这里插入图片描述

10.1.2 windows中网络适配器

在这里插入图片描述

10.2 Linux网络环境配置

10.2.1 自动获取

在这里插入图片描述

缺点:linux启动后会自动获取IP,每次获取的IP地址可能不一样,这个不适用于做服务器。因为我们服务器的IP是需要固定的

10.2. 2 指定固定的IP

直接修改配置文件来指定IP,并可以连接到外网,vim /etc/sysconfig/network-scripts/ifcfg-eth()

在这里插入图片描述
在这里插入图片描述

10 Linux进程管理

10.1进程的基本介绍

  1. 在Linux中,每个执行的程序都称为一个进程,每个进程都分配一个ID号。
  2. 每一个进程都对应一个父进程,而这个父进程可以复制多个子进程。
  3. 每个进程都可能以两种方式存在的:前台与后台所谓前台进程就是用户目前的屏幕上可以操作的,后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式运行。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

10.2 显示系统执行的进程

ps命令是用来查看目前系统中正在执行的进程
常用参数:

  • -a:显示当前终端的所有进程信息
  • -u:以用户的格式显示进程信息
  • -x:显示后台进程运行的参数
10.2.1 ps显示的信息选项

在这里插入图片描述

字段说明
USER用户名称
PID进程识别号
%CPU进程占用CPU的百分比
%MEM进程占用物理内存的百分比
VSZ进程占用的虚拟内存大小 单位kb
PSS进程占用的物理内存大小 单位kb
TTY终端名称,缩写
STAT进程状态,其中s-休眠 ,表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或被停止等等
TIME此进程所消耗的CPU时间
COMMAND启动进程所用的命令和参数,如果过长会被截断显示
10.2.2 以全格式显示当前所有的进程

指令:ps -ef

  • -e :显示所有进程
  • -f:全格式

在这里插入图片描述

字段说明
UID用户ID
PID进程ID
PPID父进程ID
CCPU
STIME进程启动的时间
PSS进程占用的物理内存大小 单位kb
TTY完整的终端名称
TIME此进程所消耗的CPU时间
CMD启动进程所用的命令和参数,如果过长会被截断显示

10.3 终止进程kill和killall

若某个进程执行到一半需要停止时,或是消耗了很大的系统资源,此时可以考虑停止该进程。 基本语法:

  • kill [选项] 进程号 (通过进程号杀死进程)
  • killall 进程名称 (通过进程名杀死进程,也支持通配符) 常用选项:
  • 9 :表示强迫进程立即停止

最佳实践:

  • 1.踢掉某个非法用户:[ ps -aux | grep sshd ;kill 进程号;]
  • 2.终止远程登录服务sshd,在适当的时候再重启sshd服务:[ ps -aux | grep sshd ;kill 进程号;]
  • 3.终止多个gedit 编辑器:[ killall gedit;]
  • 4.强制杀掉一个终端:[ ps -aux | grep bash ;kill -9 进程号 ;]

10.4 查看进程树

基本语法: pstree [选项] :可以更直观的来看进程信息

常用选项:

  • -p :显示进程的PID
  • -u :显示进程的所属用户

10.5 Linux 服务管理

10.5.1 介绍

服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如mysql,sshd,防火墙等,因此我们又称为守护进程。

10.5.2 service管理指令

service 服务名 [start | stop | restart | reload | status ] centos7.0后:不再使用service,而是systemctl
在这里插入图片描述

10.5.3在windows中测试服务器的某个端口是否开放: telnet ip port

在这里插入图片描述

10.5.4 查看服务名
  1. 使用setup -> 系统服务
  2. /etc/init.d/服务名称
10.5.5 chkconfig指令

通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭 基本语法:

  • 查看服务: chkconfig --list | grep xxx
  • chkconfig 服务名 --list
  • chkconfig --level 5 服务名 on/ off

10.6 动态监控进程

top与ps命令很相似,它们都用来显示正在执行的进程,区别在于,top执行一段时间可以更新正在执行的进程 基本语法:top [选项]

选项说明:

  • -d 秒数 :指定top命令每隔几秒更新,默认是三秒
  • -i :使top不显示任何闲置或僵死进程
  • -p:通过指定监控进程ID来仅仅监控某个进程的状态

交互操作说明:

  • p:以CPU使用率排序,默认就是此项
  • M:以内存的占用率排序
  • N:以PID排序
  • q:退出top
    在这里插入图片描述

查看系统网络情况 netstat

基本语法:

  • netstat [选项]
  • netstat -anp

选项说明:

  • -an:按一定的顺序排列输出
  • -p:显示哪个进程在调用

11 RPM YUM

11.1 rpm包的管理

11.1.1 介绍

一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中,它生产具有。RPM扩展名的文件。RPM是RedHat Package
Manager(RedHat软件包管理工具)的缩写。

11.1.2 简单查询指令

查询已安装的rpm列表:rpm -qa | grep xx
查询rpm软件包信息:rpm -qi xx
查询rpm软件包中的文件:rpm -ql xx
查询文件所属的软件包:rpm -qf 文件路径名

11.1.3 卸载rpm包

基本语法:rpm -e RPM包的名称 如果其他软件
软件包依赖于要卸载的软件包,卸载时会产生错误信息,可以增加参数–nodeps强制删除:rpm -e --nodeps RPM软件包的名称

11.1.4 安装rpm包

基本语法:rpm -ivh RPM软件包

参数说明:
i = install 安装
v = varbose 提示
h = hash 进度条

11.2 rpm包的管理

11.2.1 介绍

Yum是一个shell前端软件管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次性安装所有依赖的软件包.

基本指令:
查询yum服务器是否有需要安装的软件:yum list | grep xxx
安装指定的yum包:yum install xx

12 搭建JavaEE开发环境

12.1 安装JDK

  1. 官网下载JDK压缩包到 /opt 目录下(可以在Linux系统浏览器直接下载,也可以使用windows下载后使用Xftp上传至Linux系统)
  2. 解压此JDK压缩包:tar -zxvf 压缩包名
    在这里插入图片描述
  3. 配置环境变量:vim /etc/profile
    在这里插入图片描述
  4. 注销用户,环境变量配置才能生效
  5. 编写一个Hello.java,测试编译运行是否成功 在这里插入图片描述

12.2 安装Tomcat

  1. 官网下载Tomcat压缩包到 /opt 目录下(可以在Linux系统浏览器直接下载,也可以使用windows下载后使用Xftp上传至Linux系统)
  2. 解压此压缩包:tar -zxvf 压缩包名
    在这里插入图片描述
  3. 启动tomcat ./startup.sh
    在这里插入图片描述
    4 .在浏览器中出现此页面则说明安装成功
    在这里插入图片描述
  4. 开放端口 vim /etc/sysconfig/iptables (只有开放端口,其他机器才可以通过此端口访问这个web服务器) 在这里插入图片描述
    在这里插入图片描述

12.1 安装MySql

使用yum安装特定版本的数据库,此方法w认为是最简便的,下面这篇博客描述的很详细:
https://blog.youkuaiyun.com/weixin_38187469/article/details/79257694

13 Shell编程

13.1 Shell是什么

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起。停止甚至是编写一些程序。

13.2 Shell快速入门-Shell脚本的执行方式

13.2.1 脚本格式要求:
  1. 脚本以==#!bin/bash== 开头
  2. 脚本需要有可执行权限
13.2.2 编写第一个Shell脚本

需求说明: 创建一个Shell脚本,输出hello world
在这里插入图片描述

13.2.3 执行Shell脚本

在这里插入图片描述

13.3 Shell的变量

13.3.1 Shell的变量的介绍
  1. Linux Shell中的变量分为:系统变量和用户自定义变量。
  2. 系统变量:$HOME、$PWD、$SHELL、$USER 等等。
  3. 显示当前Shell中所有变量:set
13.3.2 Shell的变量的定义

基本语法

  1. 定义变量:变量 = 值
  2. 撤销变量: unset 变量
  3. 声明静态变量:readonly 变量,注意:不能unset

变量定义规则

  1. 变量名称可以由字母数字和下划线组成,但是不能以数字开头
  2. 等号两侧不能有空格
  3. 变量名称一般习惯为大写

将变量的返回值赋给变量

  1. A=`ls-la` 反引号,运行里面的命令,并把结果返回给变量A
  2. A=$(ls-la) 等价于反引号

13.4 设置环境变量

13.4.1 基本语法

  1. export 变量名=变量值 :将shell变量输出为环境变量
  2. source /etc/profile :让新添加的环境变量立即生效
  3. echo $变量名 :查询环境变量的值

13.5 位置参数变量

当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用位置参数变量 比如:./myshell sh 100 200
,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息

基本语法

  1. $n:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
  2. $*:这个变量代表命令行中所有的参数
  3. $@:这个变量也代表命令行中所有的参数。不过把每个参数区分对待
  4. $#:这个变量代表命令行中所有参数的个数
    在这里插入图片描述

13.6 预定义变量

基本介绍:

  • . 就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用

基本语法

  1. $$:当前进程的进程号PID
  2. $! :后台运行的最后一个进程的进程号PID
  3. $?:最后一次执行的命令的返回状态,如果这个变量的值为0.证明上一个命令正确执行;如果这个变量的值为非0,则证明上一个命令执行不准确

13.7 运算符

基本语法

  1. $((运算符)) 或 $[运算式]
  2. expr m [ + ,-,* ,/ ,%] n :注意expr运算符间要有空格,有些符号需要添加转义符

13.8 条件判断

基本语法 :[ condition ] :注意condition前后要有空格

判断语句

两个整数的比较
= 字符串比较

  • lt 小于
  • le 小于等于
  • eq 等于
  • gt 大于
  • ge 大于等于
  • ne 不等于

按照文件权限进行判断

  • -r 有读的权限
  • -w 有写的权限
  • -x 有执行的权限

按照文件类型进行判断

  • -f 文件存在并且是一个常规文件
  • -e 文件存在
  • -d 文件存在并且是一个目录

13.9 流程控制

13.9.1 if判断

if [ 条件判断式 ]; then
程序
fi
或者
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
fi
在这里插入图片描述

13.9.2 case语句

基本语法:
case $变量名 in
“值1”)
如果变量的值等于值1,则执行程序1
;;
“值2”)
如果变量的值等于值1,则执行程序2
;;
…省略群其他分支
*)
如果变量的值都不是以上的值,则执行此程序
esac
在这里插入图片描述

13.9.3 for循环

基本语法1:
for 变量 in 值1 值2 值3…
do
程序
done
在这里插入图片描述
基本语法2:
for ((初始值;循环控制条件;变量变化))
do
程序
done
在这里插入图片描述

13.9.3 while循环

基本语法
while [ 条件判断式 ]
do
程序
done
在这里插入图片描述

13.10 read读取控制台输入

基本语法
read 选项 变量名
选项:

  • -p:指定读取值时的提示符
    -t:指定读取值时等待的时间(秒),如果没有在指定的时间输入,就不在等待了。
    在这里插入图片描述

13.11 函数

函数介绍
shell编程和其他编程语言一样,有系统函数。也有自定义函数。

13.11.1 系统函数,这里我们介绍两个

  • basename 基本语法:返回完整路径最后 / 的部分,常用于获取文件名
  • basename [pathname] [suffix]
  • basename [string] [suffix]
  • suffix为后缀。如果suffix被指定了,basename会将pathname或string中的suffix去掉
  • dirname基本语法
    功能:返回完整路径最后 / 的前面部分,常用语返回路径部分

在这里插入图片描述

13.11.2 自定义函数

基本语法
[function] funname[()]
{
Action
[return int;]
}

调用直接写函数名:funname[值]

在这里插入图片描述

14 shell综合案例

将数据库定期备份到特定的目录下
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值