文章目录
- 1. Linux的应用领域
- 2. Linux基础篇
-
- 2.1. 概述
- 2.2. 安装Linux
- 2.3. 虚拟机克隆
- 2.4. 虚拟机快照
- 2.5. 虚拟机的迁移和删除
- 2.6. 安装vmtools
- 2.7. Linux目录结构
- 3. Linux实操篇
-
- 3.1. 远程登录到Linux服务器
-
- 3.1.1 文件上传下载
-
- 3.2.1 基本使用
- 3.2.2 常用快捷键
- 3.3. 开机、重启和用户注销
- 3.4. 用户管理
-
- 3.4.1 基本介绍
- 3.4.2 添加用户
- 3.4.3 指定/修改密码
- 3.4.4 删除用户
- 3.4.5 查询用户信息指令
- 3.4.6 切换用户
- 3.4.7 查看当前用户/登陆用户
- 3.4.8 用户组
- 3.4.9 用户和组相关万件
- 3.5. 实用指令
-
- 3.5.1 指令运行级别
- 3.5.2 找回root密码
- 3.5.3 帮助
- 3.5.4 文件目录
- 3.5.5 时间日期
- 3.5.6 搜索查找
- 3.5.7 压缩和解压
- 3.6. 组管理和权限管理
-
- 3.6.1 Linux组基本介绍
- 3.6.2 文件/目录 所有者
- 3.6.3 组的创建
- 3.6.4 文件/目录 所在组
- 3.6.5 权限的基本介绍
- 3.6.6 修改权限
- 4. 定时任务调度
-
- 4.1 crond 任务调度
- 4.2 at定时任务
- 5. Linux分区、挂载
-
- 5.1 Linux分区
- 5.2 磁盘情况查询
- 6. 络配置
-
- 6.1 查看 络IP和 关
- 6.2 linux 络环境配置
- 6.3 设置主机名和hosts映射
- 7. 进程管理
-
- 7.1 基本介绍
- 7.2 显示系统执行的过程
- 7.3 终止进程kill和killall
- 7.4 查看进程树
- 7.5 服务(service)管理
- 7.6 动态监控进程
- 7.7 监控 络状态
- 8. rpm 与 yum
-
- 8.1 rpm
- 8.2 yum
- 9. 搭建开发环境
-
- 9.1 搭建JavaEE环境
- 10. 日志管理
-
- 10.1 日志管理服务
- CentOS7.0 和 CentOS8.0 的区别
1. Linux的应用领域
-
服务器领域
? linux在服务器领域的应用是最强的
? linux免费、稳定、高效等特点在这里得到了很好的体现, 尤其在一些高端领域尤为广泛 (C/C++/PHP/Java/Python/Go)
-
嵌入式领域
? linux运行稳定、对 络的良好支持、低成本, 且可以根据需要进行软件裁剪, 内核最小可以达到几百KB等特点, 使其近些年来在嵌入式领域的应用的到非常大的提高
? 主要应用: 机顶盒、数字电视、 络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域。
2. Linux基础篇
2.1. 概述
-
linux 是一个开源、免费的操作系统, 其稳定性、安全性、处理多并发已经得到业界的认可, 目前很多企业级的项目都会部署到Linux/unix系统上
-
常见的操作系统(windows、IOS、Android、MacOS、Linux、Unix)
-
Linux之父 — Linus Torvalds
世界著名黑客
最新版本linux内核源码下载地址: https://www.kernel.org/
-
Linux 主要的发行版:
Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE
2.2. 安装Linux
- vmware下载
- 官方地址: https://www.vmware.com/cn.html
- linux 下载
- 官方地址: https://linux.org
虚拟机 络连接模式
- 桥接模式
- 虚拟系统可以和外部系统通讯, 但是容易造成IP冲突
- NAT 模式
- 络地址转换模式, 虚拟系统可以和外部系统通讯, 不造成IP冲突
- 主机模式
- 独立的系统
2.3. 虚拟机克隆
- 方式一: 直接拷贝一份安装好的虚拟机文件
- 方式二: 使用vmware的克隆操作, 注意, 克隆时, 需要先关闭系统
2.4. 虚拟机快照
? 如果你在使用虚拟机系统的时候, 你想回到原先的某一个状态, 也就是说你担心可能有些误操作造成系统异常, 需要回到原先某个正常运行的状态, vmware也提供了这样的功能, 就叫快照管理
- 应用实例
- 安装好系统后, 先做一个快照A
- 进入到系统。创建一个文件夹, 再保存一个快照B
- 回到系统刚刚安装好的状态, 即快照A
2.5. 虚拟机的迁移和删除
? 虚拟机系统安装好, 它的本质就是文件(放在文件夹的).因此虚拟系统的迁移很方便, 你可以把安装好的虚拟系统这个文件夹整体拷贝或者剪切到另外位置使用。删除也很简单, 用vmware进行移除
2.6. 安装vmtools
- 介绍
- vmtools安装后, 可以让我们在windows下更好的管理vm虚拟机
- 可以设置windows和centos的共享文件夹
2.7. Linux目录结构
-
基本介绍
- linux的文件系统是采用级层式的树状目录结构, 在此结构中的最上层是根目录”/”, 然后在此目录下再创建其他的目录
- 深刻理解linux树状文件目录是非常重要的
- 在Linux世界里, 一切皆文件
-
具体的目录结构
-
/bin [常用] (/usr/bin、/usr/local/bin)
是Binary的缩写, 这个目录存放着最经常使用的命令
-
/sbin (/usr/sbin、/usr/local/sbin)
s就是Super User的意思, 这里存放的是系统管理员使用的系统管理程序
-
/home [常用]
存放普通用户的主目录, 在Linux中每一个用户都有一个自己的目录, 一般该目录名是以用户的账 命名
-
/root [常用]
该目录为系统管理员, 也称作超级权限者的用户主目录
-
/lib
系统开机所需要最基本的动态连接共享库, 其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
-
/lost + found
这个目录一般情况下是空的, 当系统非法关机后, 这里就存放了一些文件
-
/etc [常用]
所有的系统管理所需要的配置文件和子目录, 比如安装mysql数据库my.conf
-
/usr [常用]
这是一个非常重要的目录, 用户的很多应用程序和文件都放在这个目录下, 类似与windows下的program files目录
-
/boot [常用]
存放的是启动Linux时使用的一些核心文件, 包括一些连接文件以及镜像文件
-
/proc [不能动]
这个目录是一个虚拟的目录, 它是系统内存的映射, 访问这个目录来获取系统信息
-
/srv [不能动]
service缩写, 该目录存放一些服务启动之后需要提取的数据
-
/sys [不能动]
这是 linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
-
/temp
这个目录是用来存放一些临时文件的
-
/dev
类似于windows的设备管理器, 把所有的硬件用文件的形式存储
-
/media [常用]
linux 系统会自动识别一些设备, 例如U盘、光驱等等, 当识别后, linux会把识别的设备挂载到这个目录下
-
/mnt [常用]
系统提供该目录是为了让用户临时挂载别的文件系统的, 我们可以将外部的内存挂载在/mnt/上, 然后进入该目录就可以查看里面的内容了
-
/opt
这是给主机额外安装软件所摆放的目录。如安装Oracle数据库就可放到该目录下。默认为空
-
/usr/local [常用]
这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
-
/var [常用]
这个目录中存放着在不断扩充着的东西, 习惯将经常被修改的目录放在这个目录下。包括各种日志文件
-
/selinux [security-enhanced linux]
SELinux 是一种安全子系统, 它能控制程序只访问特定文件, 有三种工作模式, 可以自行设置
-
3. Linux实操篇
3.1. 远程登录到Linux服务器
- linux服务器是开发小组共享
- 正式上线的项目是运行在公
- 因此程序员需要远程登录到Linux进行项目管理或者开发
- 远程登录客户端由Xshell6、Xftp6 或者使用mac/linux自带的terminal也可以
? 远程登录命令: ssh 用户@IP地址 然后输入密码即可登陆
3.1.1 文件上传下载
-
从服务器上下载文件
例如:就是将服务器上的/root/test.txt下载到本地的/Users/mac/Desktop目录下。注意两个地址之间有空格!
-
上传本地文件到服务器 ;
例如
-
从服务器下载整个目录 (本地目录)
例如:
-
上传目录到服务器
例如: 把当前目录下的test目录上传到服务器的/root/ 目录
? Vim具有程序编写的能力, 可以看作是 Vi的增强版本, 可以主动以字体颜色辨别语法的正确性, 方便程序设计。代码补全、编译及错误跳转等方便编程的功能特别丰富, 在程序员中被广泛使用
3.2.1 基本使用
-
正常模式
以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用[上下左右]案件来移动光标, 你可以使用[删除字符] 或[删除整行] 来处理档案内容, 也可以使用 [复制、粘贴] 来处理你的文件数据
-
插入模式
-
命令行模式
在这个模式当中, 可以提供你相关指令, 完成读取、存盘、替换、离开 vim、显示行 等的动作则是在此模式中达成的!
:wq (保存退出) :q(退出) :q!(强制退出, 不保存)
3.2.2 常用快捷键
- 拷贝当前行 , 拷贝当前行向下的 5行 , 粘贴
- 删除当前行 , 删除当前向下的5行
- 在文件中查找某个单词[命令行下, 回车 查找, 输入 就是查找下一个]
- 设置文件的行 , 取消文件的行 [命令行下 和 ]
- 在一个文件中输入后, 撤销动作
3.3. 开机、重启和用户注销
- 基本介绍
- shutdown -h now 立刻进行关机
- shutdown -h 1 1分钟后关机
- shutdown -r now 重启
- halt 关机
- reboot 重启
- sync 把内存的数据同步到磁盘
- 注意细节
- 不管是重启系统还是关闭系统, 首先要运行sync命令, 把内存中的数据写到磁盘中
- 目前的 shutdown/reboot/halt 等命令均已在关机前进行了 sync
- 用户登录和注销
- 基本介绍
- 登陆时尽量少用 root 账 登录, 因为它是系统管理员, 最大的权限, 避免操作失误。可以利用普通用户登录, 登陆后再用 “su -用户名” 命令来切换成系统管理员身份
- 在提示符下输入 logout 即可注销用户
- 基本介绍
3.4. 用户管理
3.4.1 基本介绍
? Linux系统是一个多用户多任务的操作系统, 任何一个要使用系统资源的用户, 都必须首先向系统管理员申请一个账 , 然后以这个账 的身份进入系统
3.4.2 添加用户
-
基本语法
-
应用案例
- 添加一个用户 milan, 默认该用户的家目录在 /home/milan
-
细节说明
- 当创建用户成功后, 会自动的创建和用户同名的家目录
- 也可以通过 , 给新创建的用户指定家目录
3.4.3 指定/修改密码
-
基本语法
3.4.4 删除用户
-
基本语法
-
应用案例
- 删除用户, 保留用户/home目录
- 删除用户以及用户/home
- 一般情况下建议保留用户目录
3.4.5 查询用户信息指令
-
基本语法
3.4.6 切换用户
-
介绍
在操作 Linux 中, 如果当前用户的权限不够, 可以通过 su – 指令, 切换到高权限用户, 比如root
-
基本语法
-
细节说明
- 从权限高的用户切换到全线低的用户, 不需要输入密码, 反之需要
- 当需要返回到原来用户时, 使用 exit/logout 指令
3.4.7 查看当前用户/登陆用户
-
基本语法
/
3.4.8 用户组
-
介绍
类似于角色, 系统可以对有 共性/权限 的多个用户进行统一的管理
-
新增组
-
删除组
-
增加用户时直接加上组
-
修改用户的组
3.4.9 用户和组相关万件
-
/etc/passwd 文件
用户(user) 的配置文件, 记录用户的各种信息
每行的含义: 用户名:口令:用户标识 :组标识 :注释性描述:主目录:登陆shell
-
/etc/shadow 文件
口令的配置文件
每行的含义: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
-
/etc/group 文件
组(group) 的配置文件, 记录 Linux包含的组的信息
每行的含义 组名:口令:组标识 :组内用户列表
3.5. 实用指令
3.5.1 指令运行级别
-
基本介绍
运行界别说明
0 关机
1 单用户 [找回丢失密码]
2 多用户状态没有 络服务
3 多用户状态有 络服务
4 系统未使用保留给用户
5 图形界面
6 系统重启
常用运行级别是 3 和 5 , 也可以指定默认运行级别
-
命令
-
指定运行级别
-
CentOS7 后运行级别说明
在centos7以前, /etc/inittab 文件中进行了简化, 如下:
mylti-user.target : analogous to runlevel 3
graphical.target : analogous to runlevel 5
比如: systemctl set-default graphical.target
-
3.5.2 找回root密码
3.5.3 帮助
-
获得帮助信息
基本语法: (功能描述: 获得帮助信息)
在linux下, 隐藏文件是以.开头
-
指令
基本语法: 命令(功能描述: 获得shell 内置命令的帮助信息)
3.5.4 文件目录
-
指令
基本语法: (功能描述: 显示当前工作目录的绝对路径)
-
指令
基本语法:
: 显示当前目录所有的文件和目录, 包括隐藏的
: 以列表的方式显示信息
: 显示占用单位
-
指令
基本语法: (功能描述: 切换到指定目录)
理解: 绝对路径和相对路径
回到当前目录的上一级目录
-
指令
基本语法:
创建多级目录
-
指令
touch 指令创建空文件 语法:
-
指令
cp 指令拷贝文件到指定目录
基本语法:
常用选项: 递归复制整个文件夹
强制覆盖不提示的方法: cp
-
指令
rm指令移除文件或目录
基本语法:
常用选项:
: 递归删除整个文件夹
: 强制删除不提示
-
指令
mv移动文件与目录或重命名
基本语法:
(功能描述: 重命名)
(功能描述: 移动文件)
-
指令
cat查看文件内容
基本语法:
常用选项: 显示行
使用细节: cat只能浏览文件, 而不能修改文件, 为了浏览方便, 一般会带上管道命令
-
指令
操作 功能说明 空格(space) 向下翻一页 Enter 向下翻一行 q 立刻离开 more, 不再显示该文件内容 control + F 向下滚动一屏 control + B 返回上一屏 = 输出当前行 :f 输出文件名和当前行的行 -
指令
less 指令用来分屏查看文件内容, 它的功能与more指令类似, 但是比more指令更加强大, 支持各种显示终端。less指令在显示文件内容时, 并不是一次将这个文件加载之后才显示, 而是根据显示需要加载内容, 对于显示大型文件具有较高的效率
语法:
操作 功能说明 空白键 向下翻动一页 [pagedown] 向下翻动一页 [pageup] 向上翻动一页 /字串 向下搜寻[字串]的功能; n向下查找 N向上查找 串 向上搜寻[字串]的功能; n向上查找 N向下查找 q 离开less -
指令
echo输出内容到控制台
基本语法:
输出环境变量比如: P A T H 、 PATH、 PATH、HOSTNAME
-
指令
head用于显示文件开头部分内容, 默认情况下head指令显示文件的前十行内容
基本语法:
(查看文件前十行的内容)
(查看文件前五行的内容, 5可以是任意行数)
-
指令
tail用于输出文件中尾部的内容, 默认情况下tail指令显示文件的后十行的内容
基本语法:
(查看文件尾十行内容)
(查看文件尾五行的内容, 5可以是任意行数)
(实时追踪该文档的所有更新)
-
指令和 指令
> 输出重定向和 >> 追加
基本语法:
- (列表的内容写入文件a.txt中(覆盖写))
- (列表的内容追加到文件aa.txt的末尾)
- (将文件1的内容覆盖到文件2)
- (追加内容到文件)
-
指令
软连接也称为符 连接, 类似于windows里的快捷方式, 主要存放了连接其他文件的路径
基本语法:
(给源文件创建一个软连接)
删除软连接
-
指令
查看已经执行过的历史命令, 也可以执行历史命令
基本语法: 查看最近执行的n条命令 执行编 为 n 的命令
3.5.5 时间日期
-
指令-显示当前日期
基本语法:
- 显示当前时间
- 显示当前年份
- 显示当前月份
- 显示当前是哪一天
- 显示年月日时分秒
设置日期 :
比如:
-
指令 查看日历
基本语法
不加选项, 显示本月日历
2021年日历
3.5.6 搜索查找
-
指令
find指令将从指定目录向下递归地遍历其各个子目录, 将满足条件的文件或者目录显示在终端
基本语法:
选项说明:
选项 功能 -name 按照指定的文件名查找模式查找文件 -user 查找属于指定用户名所有文件 -size 按照指定的文件大小查找文件 案例
-
查找整个linux系统下小于 100M 的文件 (+n 大于 -n 小于 n 等于, 单位有 k, M, G)
-
指令
locate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统, 查询速度较快。为了保证查询结果的准确度, 管理员必须定期更新locate时刻
基本语法
由于locate指令基于数据库进行查询, 所以第一次运行前, 必须使用updatedb指令创建 locate数据库。
-
指令
可以查看某个指令在哪个目录下比如
-
指令和管道符
grep过滤查找, 管道符 | 表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法:
常用选项
选项 功能 -n 显示匹配行及行 -i 忽略字母大小写
3.5.7 压缩和解压
-
指令
tar指令是打包指令, 最后打包后的文件是 文件
基本语法:
(打包目录, 压缩后的文件格式 .tar.gz)
选项说明:
选项 功能 -c 产生 .tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解包 .tar文件 压缩
解压
3.6. 组管理和权限管理
3.6.1 Linux组基本介绍
? 在Linux中的每个用户必须属于一个组, 不能独立于组外, 在Linux中每个文件有所有者、所在组、其他组的概念
- 所有者
- 所在组
- 其他组
- 改变用户所在组
3.6.2 文件/目录 所有者
? 一般为文件的创造者, 谁创建了该文件, 就自然的成为该文件的所有者
-
查看文件的所有者
第三列
-
修改文件所有者
改变所有者
改变所有者和所在组
- 如果是目录 则使其下所有子文件或目录递归生效
3.6.3 组的创建
-
基本指令
3.6.4 文件/目录 所在组
? 当某个用户创建了一个文件后, 这个文件的所在组就是该用户所在的组
-
查看文件/ 目录所在组
第四列
-
修改文件所在组
3.6.5 权限的基本介绍
中显示的内容如下:
-rwxrw-r–. 1 root root 1213 11月 2 18:22 orange.txt
0 – 9 位说明
-
第 0 位确定文件类型 (d, -, l, c, b)
l 是链接, 相当于 windows 的快捷方式
d 是目录, 相当于 windows 的文件夹
c 是字符设备文件, 鼠标, 键盘
b 是块设备, 比如硬盘
– 代表是一个普通文件
-
第 1-3 位确定所有者 (该文件的所有者) 拥有该文件的权限。—User
- 作用到文件
- 代表可读 (read): 可以读取, 查看
- 代表可写(write): 可以修改, 但是不代表可以删除该文件, 删除一个文件的前提条件是对该文件所在的目录有写权限, 才能删除该文件
- 代表可执行(execute): 可以被执行
- 作用到目录
- 代表可读(read): 可以读取, ls查看目录内容
- 代表可写(write): 可以修改, 对目录内创建 + 删除 + 重命名目录
- 代表可执行(execute): 可以进入该目录
- 作用到文件
-
第 4-6 位确定所属组 (同用户的组) 拥有该文件的权限。—Group
-
第 7-9 位确定其他用户拥有该文件的权限。 —Other
10个字符确定不同用户能对文件干什么
第一个字符代表文件类型: – l d c b
其余字符每三个一组(rwx) 读? 写(w) 执行(x)
第一组rwx: 文件拥有者的权限是读、写、执行
第二组rw-: 与文件拥有者同一组的用户权限是读、写但不能执行
第三组r–: 不与文件拥有者同组的其他用户的权限是读不能写不能执行
可用数字表示为: r=4, w=2, x=1 因此 rwx = 7
其他说明
1 文件: 硬连接数或 目录: 子目录数
root 用户
root 组
1213 文件大小(字节), 如果是文件夹, 显示 4096字节
11月 2 18:22 最后修改的日期
orange.txt 文件名
-rwxrw-r–. 1 root root 1213 11月 2 18:22 orange.txt
3.6.6 修改权限
-
基本说明:
通过 指令, 可以修改文件或目录的权限
-
第一种方式: 、、 变更权限
: 所有者 : 所在组 : 其他人 : 所有人(u、g、o的总和)
-
第二种方式: 通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
相当于
4. 定时任务调度
4.1 crond 任务调度
crontab 进行定时任务调度
-
概述
任务调度: 是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
系统工作:有些重要的工作必须周而复始的执行。如扫描病毒等
个别用户工作: 个别用户可能希望执行某些程序, 比如对mysql数据库的备份
-
基本语法
常用选项
-e -l 查询crontab任务 -r 删除当前用户所有的crontab任务 service crond restart 重启任务调度 -
快速入门
设置任务调度文件: /etc/crontab
设计个人任务调度。执行 命令
接着输入任务到调度文件
如: */1* * * * ls -l /etc/ > /tem/to.txt
意思是每小时的每分钟执行 ls -l /etc/ > /tem/to.txt 命令
占位符的说明
项目 含义 范围 第一个 * 一小时当中的第几分钟 0-59 第二个 * 一天当中的第几小时 0-23 第三个 * 一个月当中的第几天 1-31 第四个 * 一年当中的第几月 1-12 第五个 * 一周当中的星期几 0-7 (0和7都代表星期日) -
特殊符 的说明
特殊符 含义 * 代表任何时间。比如第一个 * 就代表一小时中每分钟都执行一次的意思 , 代表不联系的时间。比如 “0 8,12,16 * * * 命令”, 就代表在每天的8点0分, 12点0分, 16点0分都执行一次命令 – 代表连续的时间范围。比如 “0 5 * * 1-6 命令” 代表在周一到周六的凌晨5点0分执行命令 */n 代表每隔多久执行一次。比如 ” */10 * * * * 命令”, 代表每隔10分钟就执行一遍命令 -
特定时间执行任务案例
时间 含义 45 22 * * *命令 在22点45分执行命令 0 17 * * 1 命令 周一的17点0分执行命令 0 5 1,15 * * 命令 每月1 和15 的凌晨5点0分执行命令 40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命令 */10 4 * * * 命令 每天的凌晨4点, 每隔10分钟执行一次命令 0 0 1,15 * 1 命令 每月1 和15 , 每周1的0点0分都会执行命令。注意: 星期几和几 最好不要同时出现 -
应用实例
-
每隔一分钟, 就将当前的日期信息, 追加到 /tmp/mydate 文件中
-
每隔一分钟, 将当前日期和日历都追加到 /home/mycal 文件中
shell脚本:
-
每天凌晨 2:00 将mysql数据库 testdb, 被分到文件中。
步骤一
步骤二
-
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!