Linux_Study

标题文件系统目录结构

总结:
(1)Linux的目录中有且只有一个根目录 /
(2)Linux的各个目录存放的内容是规划好的,不用乱放文件
(3)Linux是以文件的形式管理我们的设备,因此Linux系统中,一切皆为文件
(4)Linux的各个文件目录下存放什么内容,必须要有一个详细认识!
尚硅谷P12讲中的内容!

Linux系统连接远程服务器

Linux系统中查看IP地址

终端机中输入ifconfig指令
在这里插入图片描述

Linux系统开启远程ssh服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
xshell中新建一个会话
在这里插入图片描述

第一次连接,密钥,默认接授,输入Linux系统的用户名跟密码即可连接到远程服务器!
连接后,便可看到对应的账户了:
在这里插入图片描述

远程上传下载文件-XFTP7
在这里插入图片描述

vi和vim的使用

vi和vim模式的相互切换图:

在这里插入图片描述

vi和vim模式中常用的快捷键命令

复制粘贴命令

新建一个vim文件,点a/i进去插入模式,编写五行代码,点ESC回到正常模式(一般模式)下,将光标(上下键可移动)定到所要复制的行上,点击两下yy即可复制当前行,找到要粘贴的地方,点击p即可完成粘贴!复制多行原理也一样,只是在双击yy前,输入要复制的行数即可。

删除当前行命令或多行命令

用法跟复制命令差不多,将光标定到所要删除的行前,输入dd即可,删除多行道理也一样!

查找文件中的某个关键字的命令 / 和 n

在打开的文件中,进入命令模式,冒号输入 / 查找的关键字 回车即可定位到第一个关键字的位置上,如果想查找下一个,可按一下n

设置文件的行号和取消文件的行号的命令

命令模式下 :set nu 和 :set nonu

快速到达文件的最末行和最首行命令

正常模式下,输入G可到达文件的最末行,输入gg可到达文件的最首行!

在一个文件中快速撤销某个命令
在插入模式下,切回正常模式,冒号 u 回车即可撤销!

编辑 /etc/profile文件,并将光标移到 第20行 shift+g

第一步:显示行号:set nu
第二步:输入20这个数(正常模式下)
第三步:输入shift+g

开机、重启和用户注销

开机、重启:

shutdown -h now 立刻进行关机
shutdown -h 1 “hello,1分钟后会关机”
shutdown -r now 现在重新启动计算机
halt 关机,作用和上面一样
reboot 现在重新启动计算机
sync 把内存中的数据同步到磁盘

用户注销:

远程控制上输入:
logout命令

用户管理

介绍:
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
Linux的用户需要至少要属于一个组。

创建用户指定密码

创建用户命令:useradd 用户名
说明:当创建用户成功后,会自动的创建和用户同名的家目录;
也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
在这里插入图片描述

给新用户修改密码:
passwd 新用户名

删除用户

命令:userdel 用户名 (保留家目录,对应用户的文件夹会依然存在)
在这里插入图片描述

命令:userdel -r 用户名 (家目录跟用户名会被全部删除,工作中一般不会连家目录也删除,家目录下会保留有很多该员工在工作中的源代码)

查询和切换用户

查询用户指令:id 用户名

切换用户

在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root

指令:su - 切换的用户名

使用说明:
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要;
当需要返回到原来用户时,使用exit指令

查看当前用户名

whoami

用户组的管理

类似于角色,系统可以对有共性的多个用户进行统一的管理。
增加组的指令:groupadd 组名
删除组的指令:groupdel 组名

指定用户在哪一个组的用法:
useradd -g 组名 用户名
示例:
图片: https://uploader.shimo.im/f/tTu1z5lUhDXG6dG6.jpg

修改用户组的指令:
usermod -g 用户组 用户名
示例:
图片: https://uploader.shimo.im/f/LzTTxjOmj5GUf8mi.jpg

用户和组的相关文件

1、/etc/passwd文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名 :口令 :用户标识号:注释性描述:主目录:登录shell

2、/etc/shadow文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

3、/etc/group文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组织标号:组内用户列表

实用指令

指定运行级别

以下是CentOS6版本以前的运行级别:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别分别是3和5,要修改默认的运行级别可修改文件:/etc/inittab 的id:5:initdefault:这一行中的数字
命令:init[012356]
图解如下:
在这里插入图片描述

CentOS 7后默认只有3和5这两个级别而已了!
在这里插入图片描述

直接命令:init 3或5可切换到对应的运行级别下!

获取开机默认运行级别
命令:systemctl get-default

设置开机默认运行级别
命令:systemctl set-default multi-user.target 或 graphical.target
multi-user.target 相当于3
graphical.target 相当于5
在这里插入图片描述

root密码找回

由于版本不同,老师使用的是CentOS6,而我则是7,所以这里没有进行演示,但我百度了一下,发现网上关于CnetOS7的root密码找回的教程还是挺多,所以,等哪一时我脑抽了不记得了,再去研究吧!(远程无法找回root密码,必须机房,服务器所在的地方)

帮助指令

man

命令:man 指令名 如:man ls

ls -a 表示显示所有文件包括隐藏文件!
图片: https://uploader.shimo.im/f/O0dIfOSmuieoYG6g.jpg

help

命令:help 指令名 如:help cd (p是退出)

实在看不懂文档,可以直接百度相关指令的用法!

目录类指令

pwd 指令

显示当前工作目录的绝对路径。如:usr/lib

ls指令

常用选项:
-a :显示当前目录所有的文件和目录,包括隐藏的。
在这里插入图片描述

-l:以列表的方式显示息
在这里插入图片描述

cd指令

cd 参数

功能:切换到指定目录
常用参数有:
~ 回到自己的家目录(或者直接cd也可以回到家目录) 如:cd ~
… 回到当前目录的上一级目录 如:cd …

绝对路径跟相对路径的解释:
绝对路径:/home 即从根目录开始定位
相对路径:…/home 从当前工作目录开始定位到需要的目录去

示例:此时用户在usr/lib目录,用相对路径的表示方法,快速回到/root目录下
cd …/…/root
图片: https://uploader.shimo.im/f/vfgnRvPEWS9Lwdx1.jpg

mkdir指令

用于创建目录。

mkdir [参数] 要创建的目录名
常用参数:
-p :创建多级目录
图片: https://uploader.shimo.im/f/AVCBtrOQWWZbt7HM.jpg

rmdir指令

删除空目录

rmdir 空目录名
图片: https://uploader.shimo.im/f/QU3AysfrXc5o98wQ.jpg

非空删除指令:rm -rf 要删除的目录

touch指令

创建空文件

touch 文件名称

一次性创建多个文件:
touch 文件1 文件2 …
图片: https://uploader.shimo.im/f/1ZeZg6GDFfD6aLZ0.jpg

cp指令

拷贝文件到指定目录

cp [参数] source[所要复制的源文件] dest[目标文件夹]

常用参数:
-r :递归复制整个文件夹
图片: https://uploader.shimo.im/f/Pb733pb2zRPk1P4q.jpg

强制覆盖指令:
\cp
图片: https://uploader.shimo.im/f/9XMH4vfoXiGbgi9V.jpg

快捷键使用小技巧:
上下箭头的使用,可以快速定位到原来使用过的指令!

rm指令

移除文件或目录。

基本语法:
rm [参数] 要删除的文件或目录
常用参数:
-r:递归删除整个文件夹
图片: https://uploader.shimo.im/f/s3j2wX5JAGhuXhRz.jpg

-f:强制删除不提示
图片: https://uploader.shimo.im/f/D6CvXmJbVeC5ss66.jpg

mv指令

移动文件、目录或者重命名

基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
mv 文件或目录 目标文件夹(功能描述:移动文件或目录)
图片: https://uploader.shimo.im/f/vTsJTMLGVSfhewrz.jpg

cat指令

查看文件内容,只能以只读的方式打开

基本语法:
cat [参数] 要查看的文件名
常用参数:
-n :显示行号
图片: https://uploader.shimo.im/f/0egRkcV2b51t4IdI.jpg

注意:cat 指令只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more(more表示分页显示)
图片: https://uploader.shimo.im/f/sBYIkQj5zxyIWNDg.jpg
空格往下翻页,鼠标滚轮往上可以向上阅读!

more指令

more指令是一个基于vi编辑器的文本过滤器,它可以全屏幕的方式按页显示文本文件的内容。more中的一些常用快捷键说明:
空格键:表示向下翻一页
enter:表示向下翻一行
q:表示立刻离开more,不在显示该文件内容
Ctrl+F:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行的行号
:f 输出文件名和当前行的行号

基本语法:
more [参数] 文件名

less指令

less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要而加载内容,对于显示大型文件具有较高的效率。

基本语法:
less 要查看的文件

查看大型日志文件可使用less指令来操作!
常用快捷键跟more中的差不多!

>指令和>>指令

输出重定向 :会将原来的文件的内容覆盖

追加 : 不会覆盖原来的文件内容

基本语法:
(1)ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
图片: https://uploader.shimo.im/f/6zXPSS8J6OsY6t8k.jpg

如果home目录下没有a.txt文件则新建一个,有则进行列表内容覆盖写入a.txt文件中!

(2)ls -l >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
图片: https://uploader.shimo.im/f/7DHkfNxaqY9WOUOu.jpg

(3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2中去)

(4)echo “内容” >> 追加的文件名(不覆盖)
图片: https://uploader.shimo.im/f/yDi4VDhmHPNZcTXU.jpg

覆盖写入则将>> 改为 >

显示当前日历指令:cal
示例:将当前日历信息写入某个文件中。
图片: https://uploader.shimo.im/f/JjUKWQ1d0SXITeLc.jpg

覆盖写入:
图片: https://uploader.shimo.im/f/73h95mN7W0tX2aNY.jpg

echo指令

输出内容到控制台

基本语法
echo [参数] [输出内容]

示例:输出系统变量
图片: https://uploader.shimo.im/f/M1beqOulKxTybYxF.jpg

head指令

head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

基本语法:
head 文件名 (功能描述:查看文件头10行内容)
head -n 5 文件名 (功能描述:查看文件头5行内容,5可以是任意行数)
图片: https://uploader.shimo.im/f/DcLEgGYTnNGOyICG.jpg

tail指令

tail用户输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。

基本语法:
tail 文件名 (功能描述:查看文件后10行内容)
tail -n 5 文件名 (描述:查看文件后5行内容,5可以是任意行数)
tail -f 文件名 (描述:实时追踪该文档的所有更新)
图片: https://uploader.shimo.im/f/i4Oe8ER3aFceIxkY.jpg

Ctrl + c退出文件追踪

ln指令

软链接也叫符号链接,类似于Windows里的快捷方式,主要放了链接其他文件的路径。

基本语法:
ln -s [原文件或目录] [软链接名] (描述:给原文件创建一个软链接)

示例:
(1)在/home目录下创建一个软链接 linkToRoot,连接到/root目录
图片: https://uploader.shimo.im/f/3odwlq0STAMfiAjd.jpg

(2)删除软链接linkToRoot
图片: https://uploader.shimo.im/f/tyIe0ha69RiYIP6N.jpg

细节说明:
当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。

history指令

查看已经执行过的历史命令,也可以执行历史命令。

基本语法:
history (描述:查看已经执行过的历史命令)

示例:
(1)显示最近执行过的十个指令。
图片: https://uploader.shimo.im/f/e0knon4rgpDu2SAX.jpg

(2)执行历史编号为5的指令。
图片: https://uploader.shimo.im/f/SlJ7ldXKKd0ss83m.jpg

时间日期类指令

date指令-显示当前日期

基本语法
date (描述:显示当前时间)
date+%Y (描述:显示当前年份)
date + %m (描述:显示当月份)

示例:
显示当前年月日。
图片: https://uploader.shimo.im/f/htavqU3Yi4xYDxrs.jpg

显示当前年月日时分秒。
图片: https://uploader.shimo.im/f/COtcp0vJ7adRjLCs.png

date指令-设置日期

基本语法:
date -s 字符串时间

示例:
设置系统当前时间,比如设置成2050年4月7日 15:19:45
图片: https://uploader.shimo.im/f/SuBEvchN8ZvhJsMS.png

cal指令

查看日历指令。
基本语法
cal [选项] (描述:不加选项,显示本月日历)

示例:
显示2050年日历。
图片: https://uploader.shimo.im/f/WtmU0PdlAB3bdWvO.png

搜索查找类指令

find指令

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。

基本语法:
find [搜索范围] [选项]
选项说明:
-name<查询的方式> (描述:按照指定的文件名查找)
在这里插入图片描述

-user<用户名> (描述:查找属于指定用户名所有文件)
在这里插入图片描述

-size<文件大小> (描述:按照指定的文件大小查找文件)
在这里插入图片描述
注:+ 表示所要查找的文件是大于参数的文件,- 表示所要查找的文件是小于参数的文件,= 表示所要查找的文件等于设定的参数。这里是将大于20M的文件全部显示出来!

locate指令

locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

基本语法:
locate 搜索文件

特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。

示例:
使用locate指令快速定位a.txt文件所在的目录。
图片: https://uploader.shimo.im/f/W87l0W3RpgFyEUPm.png

grep指令和 管道符号

grep 过滤查找,管道符:“|” 表示将前一个命令的处理结果输出传递给后面的命令处理。

基本语法:
grep [选项] 查找内容 源文件
常用选项:
-n : 显示匹配行及行号
-i :忽略字母大小写

示例:
图片: https://uploader.shimo.im/f/LU0jgLlawUCTjIH0.png

压缩和解压类

gzip/gunzip指令

gzip用于压缩文件,gunzip用于解压文件的。

基本语法:
gzip 文件 (描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (描述:解压文件命令)

压缩后,源文件不复存在!

zip/unzip指令

zip用于压缩文件,unzip用户解压文件。这两个在项目打包发布中很常用。

基本语法:
zip [选项] 压缩后的文件名.zip 将要压缩的内容 (描述:压缩文件和目录的命令)
unzip [选项] 文件名.zip (描述:解压缩文件)

常用选项:
-r :递归压缩,即压缩目录

-d <目录> 指定解压后的文件的存放目录
示例:
(1)将/home 下的所有文件进行压缩成mypackage.zip文件
在这里插入图片描述在这里插入图片描述

(2)将mypackage.zip文件解压到/opt/tmp目录下
在这里插入图片描述

tar指令

tar 指令是打包指令,最后打包后的文件是.tar.gz的文件。

基本语法:
tar [选项] 打包后的文件名.tar.gz 打包内容 (描述:打包目录,压缩后的文件格式.tar.gz)

选项说明:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件

示例:
(1)压缩多个文件,将/home/a.txt和b.txt压缩成 a.tar.gz
图片: https://uploader.shimo.im/f/CNRsZJAN6WvVuM1b.png

注:压缩参数必须是:-zcvf
(2) 将/home的文件夹 压缩成 myhome.tar.gz
图片: https://uploader.shimo.im/f/uiLQM76Pm9NhcP9a.png

(3)将a.tar.gz 解压到当前目录
在这里插入图片描述

(4)将myhome.tar.gz 解压到 /opt/目录下
图片: https://uploader.shimo.im/f/nsAU8QjrwrpvNBUa.png

注:解压到的目录原先必须存在!否则解压失败.

组管理和权限管理(重点、难点)

组管理

Linux组的基本认识
在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中的每个文件有所有者、所在组、其他组的概念。

文件/目录所有者

一般是文件的创建者,谁创建了该文件,谁自然的就是该文件的所有者。

查看文件的所有者指令

ls -ahl

示例:
(1)创建一个组police ,再创建一个用户tom,将tom放在police组,然后使用 tom 来创建一个文件 ok.java
图片: https://uploader.shimo.im/f/DtBSUYiT0ATTM4UD.png
在这里插入图片描述

修改文件所有者指令

chown 新用户名 文件名

示例:使用root创建一个文件apple.txt,然后将其所有者修改成 tom
图片: https://uploader.shimo.im/f/i9H4PXKLd0NaOFti.png
在这里插入图片描述

组的创建

groupadd 组名

实例:
创建一个组,组名:monster
创建一个用fox,并放入到monster组中
图片: https://uploader.shimo.im/f/JhzLAXS6eVMipkZf.png

文件/目录所在组

当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。

查看文件/目录所在组

ls -ahl指令

修改文件所在组

基本指令:
chgrp 组名(新组名) 文件名
图片: https://uploader.shimo.im/f/7xDkcuD7Xreu0jBS.png

其他组

除了文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。

改变用户所在组(root用户有该权限)

在添加用户时,可以指定该用户添加到哪个组中,同样的用root的管理权限也可以改变某个用户所在的组。

指令:
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录

实例:
创建一个bandit组,将用户tom从police组改到bandit组中。
图片: https://uploader.shimo.im/f/3ApiCaP8rP0qr9Gm.png
图片: https://uploader.shimo.im/f/gjwGXqbFi4hQy5KF.png

权限管理

权限的基本了解

文件类型:- 普通文件 d: 目录 l :软链接 c:字符设备【键盘、鼠标】 b:块文件,硬盘
图片: https://uploader.shimo.im/f/Usxmd0DnIafCtB7b.png

各部分图解:
图片: https://uploader.shimo.im/f/jrN6D8liWrZJXzwi.png

rw- 表示文件所有者权限,读或写权限、不可被执行。

rwx权限详细学习

rwx作用到文件

(1)[r] 代表可读(read):可以读取、查看
(2)[w] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。
(3)[x]代表可执行(execute):可以被执行

rwx作用到目录

(1)[r]代表可读(read):可以读取,ls查看目录内容
(2)[w]代表可写(write):可以修改,目录内创建+删除+重命名目录
(3)[x]代表可执行(execute):可以进入该目录。

修改权限-chmod(所有者、root账号可修改)

基本说明:
通过chmod指令,可以修改文件或者目录的权限。

第一种方式:+、-、=变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
(1)chmod u =rwx ,g=rx,o=x 文件目录名
(2)chmod o+w 文件目录名
(3)chmod a-x 文件目录名

实例:
(1)给apple.txt文件 的所有者读写执行的权限,给所有组读执行权限,给其它组读执行权限。
图片: https://uploader.shimo.im/f/QNANVC2mJoolodLv.png
(2)给apple.txt文件的所有者除去执行的权限,增加组写的权限。
图片: https://uploader.shimo.im/f/xTrrdwtPp2fcdEXp.png

(3)给apple.txt文件的所有用户添加读的权限。
图片: https://uploader.shimo.im/f/wtNmJ8CWH4L5sogE.png

第二种方式:通过数字变更权限

规则:r=4 w=2 x=1 ,rwx=4+2+1=7

基本语法:
chmod 权限数字 文件路径

实例:
将/home/a.txt文件的权限修改成 rwxr-xr-x ,使用数字的方式实现。
图片: https://uploader.shimo.im/f/GMDEcdGgFaQgJ7ws.png

修改文件所有者-chown

chmod newowner file 改变文件的所有者
chmod newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录,则使其下所有子文件或目录递归生效。

实例:
(1)将/tom/abc.txt文件的所有者修改成tom
图片: https://uploader.shimo.im/f/fFlQdiXT0WwIcJrY.png

(2)将/home/mulu1/下的ab文件的所有者修改为tom
图片: https://uploader.shimo.im/f/Gz7TGjZ2xll2VXr4.png

修改文件所在组-chgrp

chgrp newgroup file 改变文件的所有组名
图片: https://uploader.shimo.im/f/C3CAxFBUJ6pS5yGa.png

递归修改所有组命令:
chgrp -R newgroup 所在组的目录
图片: https://uploader.shimo.im/f/kFt5kyq8c3z1oSFc.png
在这里插入图片描述

课堂练习1:
建立两个组(神仙、妖怪)
建立四个用户(唐僧、悟空、八戒、沙僧)
设置密码
把悟空、八戒放入妖怪 唐僧、沙僧放在神仙
用悟空建立一个文件(monkey.java 该文件要输出 i am monkey)
给八戒一个可以rw 的权限 (组修改)
八戒修改monkey.java 加入一句话(i am pig)

唐僧 沙僧 对该文件没有权限
把 沙僧 放入妖怪组
让 沙僧 修改 该文件monkey.java 加入一句话(“我是沙僧,现在是你们的三师弟了!”)

课堂练习2
用root登录,建立用户mycentos,设置一个密码
用mycentos登录,在主目录下建立目录test/t11/t1
在t1中建立一个文本文件aa,用vim编辑其内容为 ls -al
改变aa的权限为可执行文件【可以将当前日期追加到该文件中】,运行该文件

删除新建里的目录test/t11/t1
删除用户mycentos及其主目录中的内容
将Linux设置成进入到图形界面的
重新启动Linux系统

定时任务调度

crond任务调度

crond 进行定时任务的设置。

概述:
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分:1、系统工作:有些重要的工作必须周而复始的执行。譬如病毒扫描等。
2、个别用户工作:个别用户可能希望执行某些程序,比如对MySQL数据库的备份。
基本语法:
crontab [选项]
常用选项:
-e :编辑crontab 定时任务
-l :查询crontab任务
-r :删除当前用户所有的crontab任务

创建一个定时任务

指令 crontab -e

编写定时任务规则:
图片: https://uploader.shimo.im/f/QlMM294znLCKyutd.png
创建成功标识:
图片: https://uploader.shimo.im/f/6vyezbcl8FjDtcZO.png
查看执行后的定时任务:
图片: https://uploader.shimo.im/f/79FdUUl2IFkQsDWX.png

具体创建定时任务规则,可到如下网址进行查看:
https://www.bejson.com/othertools/cron/

实例:
1、每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
(1)先编写一个文件 /home/mytask1.sh
图片: https://uploader.shimo.im/f/cDizAjlLA27Ugn1P.png

将下面的语句写入mytask1.sh文件中:
date >> /tmp/mydate
(2)给mytask1.sh文件一个可执行权限
chmod 744 /home/mytask1.sh
图片: https://uploader.shimo.im/f/YGyZYXBxyKKOkw2K.png
(3)crontab -e
(4)*/1 * * * * /home/mytask1.sh
图片: https://uploader.shimo.im/f/yJHA7EE1V6h4qucQ.png

(5)结果
图片: https://uploader.shimo.im/f/EDsOniFfIc0futUr.png
图片: https://uploader.shimo.im/f/PPgSXy8uqS2pGRdK.png
图解:
图片: https://uploader.shimo.im/f/zvZyF8bOiuqsJejU.png

实例2:
每天凌晨2:00将MySQL数据库 testdb,备份到文件中 mydb.bak中。
(1)先编写一个文件 /home/mytask2.sh
/usr/local/mysql/bindump -u root -p 密码 testdb > /tmp/mydb.bak
(2)给mytask2.sh一个可执行权限。
chmod 744 /home/mytask2.sh

(3)crontab -e
(4) 0 2 * * * * /home/mytask2.sh

crond相关命令

crontab -r :终止任务调度
crontab -l:列出当前有哪些任务调度
图片: https://uploader.shimo.im/f/oLvliLa7ORUl4sGW.png
service crond restart 重启任务调度

Linux磁盘分区、挂载

原理:Linux无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。
示意图:
图片: https://uploader.shimo.im/f/uVZykglTIejfE01b.png

图片: https://uploader.shimo.im/f/SbGGccbEIcnbU633.png

图片: https://uploader.shimo.im/f/9hcOdhrISTkNufMs.png

硬盘说明:
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘;
对于IDE硬盘,驱动器标识符为 “hdx”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。譬如,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区;hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
对于SCSI硬盘则表示为“sdx~”,SCSI硬盘是用“sb”来表示分区所在设备的类型,其余则和IDE硬盘的表示方法一样!
老师示意图:
图片: https://uploader.shimo.im/f/Ggr9lW6G3fTGTXPd.png

挂载经典案例

磁盘与文件系统的示意图:
图片: https://uploader.shimo.im/f/Y5oIOWrZQ5rlgUNa.png

虚拟机增加硬盘步骤

1、在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间有选择磁盘大小的地方需要修改,这个可以根据自己的需要来设置,直至完成,然后重启系统(才能识别)。
2、分区命令 fdisk /dev/sdb
m 显示命令列表
p 显示磁盘分区
n 增加分区
d 删除分区
w 写入并退出

说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。

3、格式化磁盘
分区命令:mkfs -t ext4 /dev/sdb1
其中ext4表示分区类型。

4、挂载
将一个分区与一个目录联系起来,
指令:mount 设备名称 挂载目录
例如:mount /dev/sdb1 /newdisk
断掉挂载目录指令:
umount 设备名称或者挂载目录
例如:umount /dev/sdb1 或者 umount /newdisk
图片: https://uploader.shimo.im/f/7u3ARp6XZ5XG3It7.png
注:用命令挂载,虚拟机重启后,会失效!

5、永久挂载
通过修改/etc/fstab实现挂载:
打开命令:vim /etc/fstab
输入如下指令进行保存:
图片: https://uploader.shimo.im/f/RbdnJY7chw6Vl2zS.png
wq退出后,执行如下命令:
mount -a 即刻生效!

这会可以在输入查看磁盘命令:
lsblk -f
图片: https://uploader.shimo.im/f/YEDCVRcTgMUp8Drs.png

磁盘情况查询

df -h指令

查询系统整体磁盘使用情况
基本语法:
df -h
图片: https://uploader.shimo.im/f/DmvsuP0kAKot9ncv.png

du -h指令

查询指定目录的磁盘占用情况。
基本语法:
du -h /目录

选项:
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
-max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值

磁盘情况-实用指令

实例:
1、查询/opt 目录的磁盘占用情况,深度为1
图片: https://uploader.shimo.im/f/f1BrDDxVcyI1GDEe.png
2、统计/home文件夹下文件的个数
图片: https://uploader.shimo.im/f/gHQzOJNfBRdA6qMJ.png
过滤条件中,-代表 文件

3、统计/home文件夹下目录的个数
在这里插入图片描述
d代表目录。

4、统计/home文件夹下文件的个数,包括子文件夹里的
图片: https://uploader.shimo.im/f/wxTfd7e0WXfTz7kc.png

5、统计/home文件夹下目录的个数,包括子文件夹里的
图片: https://uploader.shimo.im/f/iwoaEBS5FMyXeHkK.png

6、以树状显示目录结构
先安装tree指令:
图片: https://uploader.shimo.im/f/yCpbP9b4RRQgU8Ad.png
安装完毕后,输入tree指令,即可看到如下效果:
图片: https://uploader.shimo.im/f/6cYBEuoFDN52cl8b.png

网络配置

Linux网络配置原理图(含虚拟机)
现在网络配置采用的是NAT模式
图片: https://uploader.shimo.im/f/hDxu4ZoAkPOIhvpF.png

ping指令的使用

图片: https://uploader.shimo.im/f/dYsO8kxzcISrsQf5.png
图片: https://uploader.shimo.im/f/1opct862C57B3pU7.png
网络互通的前提下是可以相互访问的!

Linux网络环境配置

第一种方式(自动获取):

登陆账后,默认或自动获取ip来进行网络连接。
图片: https://uploader.shimo.im/f/VNKrb6LdAXt1aosF.png
特点:Linux启动后会自动获取ip。缺点就是每次获取的ip地址可能不一样!这个不适用于做服务器,因为服务器的ip需要随时固定的。

第二种方法(指定固定的ip)

使用说明:直接修改配置文件来指定ip,并可以连接到外网(程序员必备的),编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0

要求:将ip地址配置为静态的,ip地址为192.168.220.132
P47没通过!!!

进程管理

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

显示系统执行的进程

ps指令

ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。
ps显示的信息选项:
PID 进程识别号
TTY 终端机号
TIME 此进程所耗CPU时间
CMD 正在执行的命令或进程名

ps -a 显示当前终端的所有进程信息
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
图片: https://uploader.shimo.im/f/4bEkOdHXVgJHQBv6.png

实例:
(1)查看有没有sshd服务
图片: https://uploader.shimo.im/f/JX9AmYIEHl4H3nLP.png
(2)以全格式显示当前所有的进程,查看进程的父进程。
图片: https://uploader.shimo.im/f/0qFPEGZo3XrVObPU.png
ps -ef 是以全格式显示当前所有的进程
-e 显示所有进程,-f 全格式。
ps -ef | grep XXX
实例:显示sshd的父进程
图片: https://uploader.shimo.im/f/AfeunymHDGmDXnlb.png

终止进程kill和killall

若是某个进程执行一半需要停止时,或是已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。

基本语法:
kill [选项] 进程号 (描述:通过进程号杀死进程)
killall 进程名称 (描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时使用很有用)

常用选项:
-9:表示强迫进程立即停止。

最佳实践:
1、踢掉某个非法登陆用户
图片: https://uploader.shimo.im/f/M0q1jCwvQiifNiLT.png
2、终止远程登录服务sshd,在适当时候再次重启sshd服务
图片: https://uploader.shimo.im/f/Km3MrL5HB6UZHoDs.png

图片: https://uploader.shimo.im/f/DVrbsGk3q6CTLuiv.png
开启远程服务指令:service sshd restart

3、终止多个gedit编辑器【killall 通过进程名称来终止进程】
图片: https://uploader.shimo.im/f/VRhhXBP3S7DAjqOd.png

图片: https://uploader.shimo.im/f/6cg9mtPKZAGA419a.png

4、强制杀掉一个终端
图片: https://uploader.shimo.im/f/HVw3aP1JHt0N2mo6.png

查看进程树pstree

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

常用选项:
-p :显示进程的PID
-u 显示进程的所属用户

实例:
1、树状图的形式显示进程的pid
图片: https://uploader.shimo.im/f/rFshwVmSGnmqDyhu.png
2、树状图的形式显示进程的用户id
图片: https://uploader.shimo.im/f/LYExSc6zmxUSWApT.png

服务(service)管理

服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如MySQL、sshd、防火墙等,因此我们又称为守护进程,是Linux中非常重要的知识。
原理图:
图片: https://uploader.shimo.im/f/2uYQCEGQFGDCDouO.png

service管理治理

service 服务名 [start | stop | restart | reload | status]
CentOS 7后的指令是:systemctl

实例:
查看当前防火墙的状况,关闭防火墙和重启防火墙。
图片: https://uploader.shimo.im/f/HtbdVbAntyy4Yp4T.png
关闭防火墙:
图片: https://uploader.shimo.im/f/edgkYH31QF3m1kfX.png
重启防火墙:
图片: https://uploader.shimo.im/f/Zumsxh94kDGWgBWW.png
重启远程服务:
图片: https://uploader.shimo.im/f/2jhYr2hzV1dknW2e.png
注意细节:
(1)关闭或者启用防火墙后,立即生效。[teInet 测试 某个端口即可]
(2)这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
(3)如果希望设置某个服务自启动或关闭永久生效,要使用setup指令。

查看服务名
setup指令

这里可以设置哪些服务永久生效!
图片: https://uploader.shimo.im/f/4og41ulXnzvIp0YF.png
注:tab是切换键,空格是是否选择,Enter是确定,箭头表示上下

或者使用systemctl list-unit-files指令也可以查看
图片: https://uploader.shimo.im/f/mlMmPzVTVYX9Cbm8.png

服务的运行级别

跟运行级别差不多,CentOS6中有7个服务级别,而CentOS7中只有两个而已了(3和5)

查看当前运行级别指令:
图片: https://uploader.shimo.im/f/I4uouY83zmyxIJSM.png
N表示当前运行的级别

vim /etc/inittab指令可以查看系统的全部级别数!

动态监控进程

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

选项说明:
-d 秒数 :指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令
-i 使top不显示任何闲置或僵死进程
-p 通过指定监控进程ID来仅仅监控某个进程的状态。

实例:
1、监视特定用户
top:输入此命令,按回车键,查看执行的进程。
图片: https://uploader.shimo.im/f/GcN4YcAKEo8FOqNL.png

u :查看指定用户的进程
图片: https://uploader.shimo.im/f/9aaB0yjA8g2PpmNt.png
2、终止指定的进程。
top:输入此命令,按回车键,查看执行的进程。
k : 然输入k 回车,再输入要结束的进程ID
图片: https://uploader.shimo.im/f/qTQQQtf5jMZK0CBg.png
3、指定系统状态更新时间(每十秒自动更新一次,默认是三秒)
图片: https://uploader.shimo.im/f/Vin0TbjEIiKx5CmM.png

监控网络状态

查看系统网络情况netstat
基本语法:
netstat [选项]
选项说明:
-an 按一定顺序排列输出
-p 显示哪个进程在调用

实例:
查看所有的网络服务。
图片: https://uploader.shimo.im/f/vkNfHDwWU6mxQdEe.png

查看服务名为sshd的服务信息。
图片: https://uploader.shimo.im/f/s7F1fu87KyPTT9l5.png

RPM与YUM

RPM包的管理

简介:
一种用户互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似Windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用suse、Redhat、CentOS 等等。

rpm包的简单查询指令

查询已安装的rpm 列表
rpm -qa | grep XXX

查找所有已安装rpm
图片: https://uploader.shimo.im/f/aSFRu0TsksnO48c5.png
查找火狐浏览器安装包
图片: https://uploader.shimo.im/f/rVIpa6ZB2cMrQ11c.png

查看安装时间
图片: https://uploader.shimo.im/f/dyKfR9Zvx2EX5alV.png

查看软件位于哪个文件中
图片: https://uploader.shimo.im/f/spVeeMMnShD8MWhe.png
根据文件目录,查看该目录下安装有哪些软件:
rpm -qf 文件全路径名
图片: https://uploader.shimo.im/f/LsjIkn6xlij6FaZs.png

卸载rpm包

基本语法:
rpm -e RPM包名称

强制删除指令:
rpm -e nodes 软件名

实例:
删除Firefox软件包。
图片: https://uploader.shimo.im/f/aCmqvdEjhDnZrSK0.png

注:已卸载成功!!!

安装rpm包

基本语法
rpm -ivh rpm包全路径名称

参数说明:
i=install 安装
v=verbose 提示
h =hash 进度条
实例:
安装火狐浏览器。
图片: https://uploader.shimo.im/f/SkufdMTdaRLwyq8G.png

博客实例:
https://blog.csdn.net/ligaofeng/article/details/39079749

YUM包管理

简介:
Yum是一个shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用yum的前提是Linux系统上可以连上网络。

yum的基本指令

查询yum服务器是否有需要安装的软件
yum list | grep XXX (描述:软件列表)
安装指定的yum包
yum install XXX (描述:下载安装)
实例:安装Firefox浏览器
图片: https://uploader.shimo.im/f/sOVgwdOs5N9XXznI.png
默认点击y!

JavaEE定制篇

搭建JavaEE开发环境

jdk安装

直接用yum指令来安装(相关依赖、变量啥的,一般解决好了!)
图片: https://uploader.shimo.im/f/zwNnTffCZOw0VjTF.png

实例:
编写一个简单的hello.java程序。输出HelloWord!语句。
新建一个hello.java文件,vim hello.java打开该文件,编写如下语句:
图片: https://uploader.shimo.im/f/Z0A8995yk6OeJPVQ.png
图片: https://uploader.shimo.im/f/aWBuERFE9rnRXWKe.png

MySQL安装

图片: https://uploader.shimo.im/f/RgJJszWiaGx3G89Y.png

Tomcat安装

图片: https://uploader.shimo.im/f/MszC3Q86t3SLRcRe.png

实例:
运行Tomcat服务器。
博客:https://blog.csdn.net/qq_33621542/article/details/88417969

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值