一、Linux基础
1.1 Linux(CentOS)和VM的安装
1.1.1 开启windows虚拟化
1.1.2 安装VM和CentOS
1.1.3 安装CentOS注意事项
1.2 vmtools安装
1.2.1 作用
1.3 Xshell 远程连接
1.4 远程连接失败查询(初级)
1.4.1 检查道路是否通畅
[jerry@jerry ~]$ ping 192.168.254.132
PING 192.168.254.132 (192.168.254.132) 56(84) bytes of data.
64 bytes from 192.168.254.132: icmp_seq=1 ttl=64 time=0.061 ms
64 bytes from 192.168.254.132: icmp_seq=2 ttl=64 time=0.072 ms
64 bytes from 192.168.254.132: icmp_seq=3 ttl=64 time=0.080 ms
64 bytes from 192.168.254.132: icmp_seq=4 ttl=64 time=0.073 ms
1.4.2 检查是否提供服务
telnet 192.168.254.132 22
[jerry@jerry ~]$ telnet 192.168.254.132 22
Trying 192.168.254.132...
Connected to 192.168.254.132.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
1.5 Bash特点
1.5.1 Bash概述
1.5.2 Linux命令格式
1.5.3 文件相关命令
#ls list列表,查看目录下面的内容(只有名字)
[jerry@jerry ~]$ ls /
bin/ dev/ home/ lib64/ mnt/ proc/ run/ srv/ tmp/ var/
boot/ etc/ lib/ media/ opt/ root/ sbin/ sys/ usr/
[jerry@jerry ~]$ ls /etc/
abrt dnsmasq.d issue openldap services
adjtime dracut.conf issue.net opt sestatus.conf
#ls -l 查看详细信息 d代表目录
[jerry@jerry ~]$ ls -l /tmp/
总用量 32
-rw-r--r--. 1 root root 1148 8月 5 14:11 anaconda.log
drwxr-xr-x. 2 root root 18 8月 5 13:57 hsperfdata_root
-rw-r--r--. 1 root root 415 8月 5 14:10 ifcfg.log
#ls -la /fileName/显示 /root/ 目录中所有文件,包含隐藏文件
#以"."开头的文件或者目录就是隐藏文件
#cd change directory进入目录
cd /tmp
#pwd 显示当前所在位置
#cd ~ 快速回到根目录
#cd .. 上一级目录cd
#cd - 返回上一次所在目录
#tree 以树形显示目录内容
#centOS安装软件(熟悉)
yum install -y tree #需要虚拟机可以连网
1.6 Linux目录结构
-
/home
-
/root
-
/lib
-
/etc
-
/usr
-
/boot
-
/proc(不能动)
-
/srv (不能动)
-
/sys (不能动)
-
/tmp
- 临时文件
-
/dev
-
/mnt
-
/opt
-
/var [常用]
1.7 vi和vim
Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,
方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。Linux系统会内置vi文本编辑器
1.7.1 常用三种模式
1.7.2 各种模式相互切换
1.7.3 快捷键
1.8 命令
1.8.1 关机和重启
- shutdown -h now 立该进行关机
- shutdown -h 1 “hello, 1分钟后会关机了”
- shutdown -r now 现在重新启动计算机
- halt 关机,作用和.上面一样。
- reboot 现在重新启动计算机
- sync 把内存的数据同步到磁盘。
- 注意细节
1.8.2 用户登录和注销
- 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用
su - 用户名
命令来切换成系统管理员身份. - 在提示符下输入logout即可注销用户
- 使用细节
1.9 用户管理
1.9.1 添加用户
-
细节注意
1.9.2 设置密码
1.9.3 删除用户
1.9.4 查询用户信息
1.9.5 切换用户
-
su - 用户名
-
输入
who am i
可以查询自己是哪个用户
1.9.6 用户组
groupadd 组名
新增组groupdel 组名
删除组useradd -g 用户组 用户名
增加用户时直接加上组usermod -g 用户组 用户名
修改用户的组groups 用户名
查看用户所在组
1.9.7 用户和组相关文件
2.0 运行级别
-
init 3
init 5
…
2.0.1 指定运行级别
2.1 找回root密码
-
往下找到:
-
接着,在光标闪烁的位置中输入:
mount -o remount,rw /
(注意:各个单词间有空格,逗号左右不要有空格),完成后按键盘的回车键(Enter),再在新的一行输入passwd
。 如图
– -
输入完成后进入新的一行
-
接着,在鼠标闪烁的位置中(最后一行中)输入:
touch /.autorelabel
(注意:touch后面有一个空格),完成后按键盘的回车键 -
继续在光标闪烁的位置中,输入:
exec /sbin/init
(注意: exec后面有一个空格),完成后按键盘的回车键 ,等待 系统自动修改密码(这个过程时间可能有点长,耐心等待),完成后,系统会自动重启,新的密码生效了,这个界面记住多等久一点!!! -
记住多等久一点!!!
2.2 帮助指令
2.3 文件目录指令
-
pwd指令
-
ls指令
-
cd指令
-
rmdir 指令删除空目录
-
touch指令创建空文件
-
more指令
-
less指令
-
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各
种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示
需要加载内容,对于显示大型文件具有较高的效率。
2.4 时间日期指令
2.5 查找指令
-
locate指令可以快速定位文件路径。locate指令利用事先建 立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
-
常用选项:
2.6 压缩和解压
二、Linux实操篇
1.1 Linux组的基本介绍
1.1.1 基本概念
1.1.2 文件/目录 所有者
-
查看文件所有者,所在组
- 指令:ls -ahl
1.1.3 组的创建和修改文件所在组
1.1.4 改变用户所在组
1.2 权限基本介绍
1.2.1 rwx权限详解
1.2.2 最佳实例
xh, xq:土匪
1.创建组
2.创建用户
3.jack创建一个文件 ,自己可以读写,本组人可以读,其它组没人任何权限
4.jack修改该文件,让其它组人可以读,本组人可以读写
5.xh投靠警察,看看是否可以读写.
#创建组
groupdel police
groupadd police
groupadd bandit
useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
#2
passwd {username} #设置密码
#3
vim jack.txt
chmod 640 jack.txt
#4
chmod o=r,g+w jack.txt
#5 切换root用户
usermod -g police xh
1.3 crond任务调度
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类: 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
-
基本语法 crontab「选项]
-
5个占位符*的说明
-
案例说明:
1.4 at定时任务
at命令是一次性定时计划任务, at的守护进程atd会以后台模式运行,检查作业队列来运行。
默认情况下, atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
-
at 命令格式
-
选项
-
at 时间定义
- 接受在当天的hh:mm (小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如:
04:00 - 使用midnight (深夜),noon (中午) , teatime (饮茶时间,一般是下午4点)等比较模糊的词语来指
定时间。 - 采用12小时计时制,即在时间后面加上AM (上午)或PM (下午)来说明是上午还是下午。例如: 12pm
指定命令执行的具体日期,指定格式为month day (月日)或mm/dd/yy (月/日/年)或dd.mm.yy
(日.月年), 指定的日期必须跟在指定时间的后面。例如 : 04:00 2021-03-1 - 使用相对计时法。指定格式为: now + count time-units , now就是当前时间, time- units是时间单位这里能够是minutes (分钟)、hours (小时)、days (天)、weeks (星期)。count是时间的数量,
几天,几小时。例如: now + 5 minutes - 直接使用today (今天)、tomorrow (明天)来指定完成命令的时间。
- 接受在当天的hh:mm (小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如:
-
实例:
1.5 Linux分区
Linux来说无论有几个分区,分给哪一月录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
lsblk
查看分区 -f
-
硬盘说明:
- Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
- 对于IDE硬盘,驱动器标识符为”hdx~”其中”hd”表明分区所在设备的类型,这里是指IDE硬盘
了。”x”为盘号( a为基本盘, b为基本从属盘, c为辅助主盘, d为辅助从属盘) “~”代表分区,
前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例, hda3表示为
第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展
分区。 - 对于SCSI硬盘则标识为”sdx~” , SCSI硬盘是用”sd” 来表示分区所在设备的类型的,其余则和
IDE硬盘的表示方法一样。
-
虚拟机增加硬盘步骤1
-
虚拟机增加硬盘步骤2
-
虚拟机增加硬盘步骤3
-
虚拟机增加硬盘步骤4
-
虚拟机增加硬盘步骤5
1.6 磁盘情况查询
1.7 磁盘情况-工作实用指令
- 统计/opt文件夹下文件的个数
- 统计/opt文件夹下目录的个数
- ls -l /opt/ | grep “^d” | wc -l (wordcount)
- 统计/opt文件夹下文件的个数,包括子文件夹里的
- ls -lR /opt/ | grep “^-” | wc -l (wordcount)
- 以树状显示目录结构tree目录,注意,如果没有tree ,则使用yum install tree安装
1.8 Linux网络配置
1.8.1 ping测试主机之间网络连通性
1.8.2 linux网络环境配置(获取ip或者固定ip)
-
第二种方法(指定ip)
-
直接修改配置文件来指定IP,并可以连接到外网(程序员推荐)
编辑vi /etc/sysconfig/network–scripts/ifcfg-ens33
要求:将ip地址配置的静态的,比如: ip地址为192.168.111.111 -
ifcfg-ens33文件说明
- DEVICE=eth0 #接口名(设备,网卡)
- HWADDR-O0:0C:2x:6x:Ox:xx #MAC地址
- TYPE=Ethernet #网络类型(通常是Ethemet ,
- UUID-926a57ba-92c6-4231-bacb-f27e5e6a9f44 #随机id#系统启动的时候网络接口是否有效( yes/no )
- ONBOOT=yes
- IP的配置方法[nonelstatic[bootp|dhcp] (引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
- BOOTPROTO=static
- #IP地址
- IPADDR=192.168.111.111
- #网关
- GATEWAY=192.168.111.1
- #域名解析器
- DNS1=192.168.111.1
-
1.9 设置主机名和hosts映射
1.9.1 设置主机名
三、进程
3.1 基本介绍
3.2 显示系统执行的进程
-
选项:
-
含义
3.3 终止进程kil和killall
-
语法:
-
常用选项:
- -9 :表示强迫进程立即停止
3.4 查看进程树pstree
3.5 服务管理
3.5.1 介绍
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld, sshd防火墙等) ,因此我们又称为守护进程,是Linux中非常重要的知识点。[原理图]
-
查看服务名:
3.5.2 服务的运行级别
- 运行级别0 :系统停机状态,系统默认运行级别不能设为0 ,否则不能正常启动
- 运行级别1 :单用户工作状态, root权限,用于系统维护,禁止远程登陆
- 运行级别2 :多用户状态(没有NFS) ,不支持网络
- 运行级别3 :完全的多用户状态(有NFS) ,登陆后进入控制台命令行模式
- 运行级别4 :系统未使用,保留
- 运行级别5 : X11控制台,登陆后进入图形GUI模式
- 运行级别6 :系统正常关闭并重启,默认运行级别不能设为6 ,否则不能正常启动
3.5.3 CentOS7后运行级别说明
-
在/etc/initab
3.5.4 chkconfig指令
-
chkconfig基本语法
3.5.5 systemctl 指令
-
基本语法:
-
systemctl设置服务的自动启动和关闭
-
3.5.6 打开指定端口
- firewall指令
3.6 动态监控进程
选项 | 说明 |
---|---|
-d描述 | 指定top命令每隔几秒更新。默认是3秒 |
-i | 使top不显示任何闲置或者僵死进程 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |
-
按下:
-
案例1.监视特定用户,比如我们监控tom用户
top : 输入此命令,按回车键,查看执行的进程。
u:然后输入”u”回车,再输入用户名,即可, -
案例2 :终止指定的进程。
top :输入此命令,按回车键,查看执行的进程。
k:然后输入”k”回车,再输入要结束的进程ID号
案例3:指定系统状态更新的时间(每隔10秒自动更新)
3.7 监控网络状态
3.8 rpm包的管理
rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager ( RedHat软件包管理工具)的缩写,类似windows的setup.exe , 这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
3.8 yum
3.9 安装jdk
- 如果需要在Linux下进行JavaEE的开发,我们需要安装如下软件
- 安装步骤:
- mkdir /opt/jdk
- 通过xftp 上传到/opt/jdk下
- cd /opt/jdk
- 解压tar -zxvf jdk-8u261-linux-x64.tar.gz
- mkdir /usr/local/java
- mv /opt/jdk/jdk1.8.0 261 /usr/local/java
- 配置环境变量的配置文件vim /etc/profile
- export JAVA_HOME= /usr/local/java/jdk1.8.0_301
- export PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
- source /etc/profile [让文件生效,刷新]
- 测试
3.10 安装tomcat
-
步骤
-
测试是否安装成功:
3.11 安装Idea
四、Shell
4.1 Shell编程
-
脚本格式要求
-
案例:
4.2 Shell变量
-
Linux Shell中的变量分为,系统变量和用户自定义变量。
- 系统变量:
H
O
M
E
、
HOME、
- 显示当前shell中所有变量: set
- 系统变量:
-
shell变量的定义
-
-
:<<! 注释内容 !
-
4.2.2 位置参数变量
-
当我们执行一个shell脚本时 ,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
比如: ./myshell.sh 100 200,这个就是一个执行shell的命令行 ,可以在myshell脚本中获取到参数
信息 -
基本语法:
- $n ( 功能描述: n为数字, $0代表命令本身,$1-
9
代表第一到第九个参数
,
十以上的参数
,
9代表第一到第九个参数 ,十以上的参数,十以上的 参数需要用大括号包含,如
- $* (功能描述:这个变量代表命令行中所有的参数, $*把所有的参数看成一 个整体)
-
@
(
功能描述
:
这个变量也代表命令行中所有的参数,不过
@ (功能描述:这个变量也代表命令行中所有的参数,不过
- $# (功能描述:这个变量代表命令行中所有参数的个数)
- $n ( 功能描述: n为数字, $0代表命令本身,$1-
-
案例:编写一个shell脚本position.sh ,在脚本中获取到命令行的各个参数信息。
-
#!/bin/bash echo "$0 $1 $2" echo "$*" echo "$@" echo "$#"
-
4.2.3 预定义变量
五、运算符
5.1 运算符
5.2 条件判断
5.3 case语句
5.4 for语句
-
基本语法1
-
基本语法2
-
案例1 :从1加到100的值输出显示
5.5 while 循环
-
基本语法:
5.6 read读取控制台输入
-
基本语法:read(选项)(参数)
-
案例:
六、函数
6.1 系统函数
6.1.1 basename
-
基本语法:
6.1.2 dirname
6.2 自定义函数
-
基本语法:
6.3 Shell编程综合案例
6.3.1 定时备份数据库
1.每天凌晨2:30备份数据库hspEduDB到/data/backup/db
2.备份开始和备份结束能够给出相应的提示信息
3.备份后的文件要求以备份时间为文件名,并打包成.tar.gz 的形式,比如: 2021-03-12 230201.tar.gz
4.在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除。
-
#!/bin/bash #备份目录 BACKUP=/data/backup/db #获取当前时间 DATETIME=$(date +%Y-%m-%d_%H%M%S) echo "$DATETIME" #数据库的地址 HOST=localhost #数据库用户名 DB_USER=root #数据库密码 DB_PWD=ROOT #备份的数据库 DATABASE=hspEduDB #创建备份目录,如果不存在就创建 [ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}" #备份数据库 mysqldump -u${DB_USER} -p${DB_PWD} --host=${HOST} -q -R --database ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz #将文件处理成tar.gz cd ${BACKUP} tar -zcvf $DATATIME.tar.gz $DATATIME #删除对应的备份目录 rm -rf ${BACKUP}/${DATATIME} #删除十天前的备份文件 find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} ; echo "备份数据库${DATABASE}成功~"
6.2 自定义函数
-
基本语法:
6.3 Shell编程综合案例
6.3.1 定时备份数据库
1.每天凌晨2:30备份数据库hspEduDB到/data/backup/db
2.备份开始和备份结束能够给出相应的提示信息
3.备份后的文件要求以备份时间为文件名,并打包成.tar.gz 的形式,比如: 2021-03-12 230201.tar.gz
4.在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除。
-
#!/bin/bash #备份目录 BACKUP=/data/backup/db #获取当前时间 DATETIME=$(date +%Y-%m-%d_%H%M%S) echo "$DATETIME" #数据库的地址 HOST=localhost #数据库用户名 DB_USER=root #数据库密码 DB_PWD=ROOT #备份的数据库 DATABASE=hspEduDB #创建备份目录,如果不存在就创建 [ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}" #备份数据库 mysqldump -u${DB_USER} -p${DB_PWD} --host=${HOST} -q -R --database ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz #将文件处理成tar.gz cd ${BACKUP} tar -zcvf $DATATIME.tar.gz $DATATIME #删除对应的备份目录 rm -rf ${BACKUP}/${DATATIME} #删除十天前的备份文件 find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} ; echo "备份数据库${DATABASE}成功~"
原文地址:https://blog.csdn.net/m0_65778338/article/details/129962586
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_33408.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!