1、Linux的介绍
1.1 应用领域
1.2 学习路线和方法
1.3 基本介绍
1.4 Linux和Unix的关系
- Unix的产生
- Linux的产生
- 两者的关系
- Linux和Windows的比较
2、环境搭建和工具安装
我有阿里云服务器。。。。
2.1 文件基础目录结构
1.基本介绍
2.具体介绍
- 总结
1、linux的目录中有且只要有一个根目录
2、linux的各个目录存放的内容是规划好的,不要乱放文件
3、linux是以文件的形式管理我们的设备,因此linux系统,一切皆为文件
4、linux的各个文件目录下面存放什么内容,需要有个认识
5、要有一个linux目录树的概念
3、远程登录和文件下载
3.1 远程登录--Xshell
- 图解
- 说明
我的帐号 : root
密码 : 大小写加@
- 命令测试
cd /home/
touch hello
3.2 上传下载文件--Xftp
4、vi和vim编辑器
4.1基本介绍
4.2 vi和vim的三种常见模式
4.3 入门案例
- 模式切换
| 命令 | 含义 |
|---|---|
| wq | 保存并退出 |
| q | 退出 |
| q! | 强制退出 |
- 实操
-
先输入 vim Hello.java
-
按 i 进入插入模式
-
public class Hello{ public static void main(String[] args){ System.out.println("Hello,Linux!"); } } -
输入 : ESC 退出 插入模式
-
输入 : ":" 进入 命令行模式
-
输入: "wq"命令 表示写入并退出文档
4.4 快捷键的使用
注意:所有的快捷键都需要在正常模式下输入,在插入模式下只能输入文本字符
-
拷贝光标所在当前行 : 【yy】 ; 拷贝多行 : 【__yy】 ; 在光标所在行粘贴 : 【p】
-
删除光标所在当前行 : 【dd】 ; 删除多行 : 【__dd】
-
在文件中查询某个单词 : 先在正常模式下输入 :【/】 ; 然后在输入要查询的单词
-
设置文件的行号,取消文件的行号 : 在命令模式下输入 【set nu】 或者 【set nonu 】
-
查看 /etc/profile 文件 , 使用快捷键到文档的最末行【G】 和 最首行【gg】
-
撤销动作 【u】
-
移动光标到20行 先输入【20】 , 在输入【shift+g】
-
键盘图
5、关机、重启、注销
5.1 关机&重启命令
| 命令 | 说明 |
|---|---|
| shutdown -h now | 表示立即关机 |
| shutdown -h 1 | 表示1分钟之后关机 |
| shutdown -r now | 立即重启 |
| halt | 直接使用,效果等效于关机 |
| reboot | 就是重启系统 |
| syn | 把内存的数据同步到磁盘上· |
5.2 用户的登录和注销
6、用户管理
6.1基本介绍
6.2 添加用户
-
添加语法 :
【useradd (选项) 用户名】 -
结果
- 细节说明
- 当用户创建成功,会自动在home目录下创建同名子目录
- 也可以使用 【useradd -d (指定目录)新的用户名】来创建
6.3 指定密码和修改密码
-
基本语法
【passwd 用户名】 -
结果
=
6.4 删除用户
- 基本语法
-
【userdel 用户名】 保留了home目录下面的用户子目录
-
【userdel -r 用户名】 删除了home目录下的子目录 (最好还是要保留)
6.5 查询、切换用户
-
基本语法
- 查询用户 : 【id 用户名】
- 切换用户 : 【su 】
- 查看当前用户 :【whoami / who am i】
-
结果
6.6 组的管理
-
基本语法
- 创建组 : 【groupadd 组名】
- 删除组 : 【groupdel 组名】
- 增加用户时加上组名 : 【useradd -g 用户组 用户名】
- 修改用户组 : 【usermod -g 新用户组 用户名】
-
结果
6.7 用户和组的配置文件
7、实用指令
7.1 运行级别和找回root密码
- 运行级别
- 找回root密码
注意:主要一点是进入到单用户模式
7.2 帮助指令类
1.man指令
-
基本语法
【man 指令】 -
实例
2.help指令
-
基本语法
【help 指令】 -
实例
7.3 文件目录类
1. pwd指令(路径)
-
基本语法
显示当前目录的绝对路径 【pwd】 -
实例
- 查看绝对路径
2. ls指令(显示目录)
-
基本语法
【ls (选项)(目录或是文件)】 -
常用选项
- -a 显示目录所有的文件和目录,包括隐藏的
- -l 以列表的方式显示信息
- 实例
3. cd指令(跳转)
-
基本语法
【cd (参数)】 -
常用参数
- 绝对路径:从根目录开始定位
- 相对路劲:从当前工作目录开始定位到指定目录
- cd ~ :回到自己的家目录
- cd .. :回到当前目录的上级目录
- 案例
- 绝对目录和相对目录
- 回到当前目录的上级目录
- 回到自己的家目录
4. mkdir指令(创建空目录)
-
基本语法
用于创建目录 【mkdir (选项) 目录】 -
常用选项
- -p :创建多级目录
- 实例
5. rmdir指令(删除空目录)
-
基本语法
删除空目录 【rmdir (选项) 要删除的空目录】 -
实例
- 删除空目录
- 删除非空目录(失败)
- 删除非空目录( 【使用 rm -rf 目录】)
6. touch指令(创建空文件)
-
基本语法
创建空文件 【touch 文件名】 -
实例
- 创建空文件Hello.txt
- 一次创建多个文件
7. cp指令(拷贝)
-
基本语法
拷贝文件到指定目录 【cp (选项) 指定目录 】 -
常用选项
- -r : 递归复制整个文件夹
- 实例
- 将/home/aaa.txt 拷贝到 /home/bbb 目录下
- 使用 -r 选项 将 bbb目录全部拷贝到test目录下
- 再次拷贝(提示覆盖)
- 通过使用 \cp 来取消提示
8. rm指令(删除)
-
基本语法
指令移除文件或者目录 【rm (选项) 要删除的文件或者目录】 -
常用选项
- -r : 遍历删除整个文件夹
- -f : 强制删除不要提示
- 实例
- 删除文件
- 删除整个文件夹
- 删除但不提示
9. mv指令(移动)
-
基本指令
移动文件或目录或重命名 【mv old new】:重命名 【mv 文件名 指定地点 】:移动 -
案例
- 重命名文件
- 移动文件或者目录
10. cat指令(查看)
-
基本语法
查看文件内容 【cat (选项)要查看的文件】 -
常用选项
- -n : 显示行号
- 实例
- 以只读的方式,显示行号的打开
- 分页的方式 加上【| more】(管道命令)打开文件查看
11. more指令(高级查看)
- 基本语法

12. less指令(查看大文件)
- 基本语法
- 实例
- 看小说
13. 输出重定向和追加指令(> 和 >>)
- 基本语法
-
【 ls -l > 文件】 : 列表内容覆盖写入到文件中
-
【ls -al >> 文件】: 列表内容追加到文件的末尾
-
【cat 文件1 >> 文件2】: 将文件1的内容追加到文件2
- 实例
- 列表覆盖
- 列表追加
- 内容覆盖
14. echo指令(输出内容)
-
基本语法
输出内容到控制台 【echo (选项)输出内容】 -
实例
- 输出环境变量
- 指令输出:“hello world”
15. head指令(看开头)
-
基本语法
显示文件的开头部分,默认是前十行 【head 文件】 【head -n (行数) 文件】 -
实例
- 默认的
- 自定义行数
16. tail指令(结尾、更新)
-
基本语法
输出文件中尾部的内容,默认后十行 【tail 文件】 【tail -n (行数) 文件】 【tail -f 文件】 : 实时追踪该文件的所有更新 -
实例
- 默认
- 自定义
- 追踪更新
一个用户使用 【tail -f 文件】来查看该文件 ,这时如果该文件的内容出现了变化,则发生的变化会实时的显示出来。。。常用于查看日志文件,调试
17. ln 指令(链接)
-
基本语法
给原文件创建一个快捷方式 【ln -s (原文件)(链接文件名)】 -
实例
- 给root目录创建一个软链接
- 详细内容
- 使用
虽然路径名不是 /root
但是可以看见root下的所有文件
- 删除链接
18. history指令(历史)
-
基本语法
可以查看已经执行过的指令,或者执行历史指令 【history】 -
实例
- 查看所有历史指令
- 显示历史10个指令
-
执行历史上第 ?个指令
【!(指令行数)】
7.4 时间日期类
1. date指令(当前日期)
- 基本语法

- 实例
- 显示当前日期
- 显示当前年份
- 显示当前月份
- 显示当前天
- 显示年月日时分秒
- 显示年月日
- 多种变化,【 “ ” 】中任意拼接
2. 设置时间
-
基本语法
设置当前系统时间 【date -s 时间】 -
实例
3. 当前硬件时间
-
基本语法
【hwclock --show】 : 查看硬件时间 【hwclock --hctosys】:以硬件时间为基准,修改系统时间
4. cal指令(日历)
-
基本语法
【cal (选项)】 -
实例
- 显示当前日历时间
- 显示2020年日历
- 显示2020年2月的日历
- 显示2222年2月22日的日历
7.5 搜索查找类
1. find指令
-
基本语法
从指定目录开始,向下遍历查找目录。。符合条件的输出在控制台 【find (搜索范围) (选项)】 -
选项说明
文件大小 : +n 表示大于 -n 表示小于 =n 表示等于
- 实例
- 按文件名
- 按用户名
- 按文件大小
- 大于28M
- 等于28M
- 查找带txt后缀的文件
2. locate指令
- 建立locate数据库
- 查询Test.txt
3. grep指令和管道符号|
-
基本语法
grep过滤查找, 管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。 【 grep (选项)查找内容 原文件】 -
常用选项
- 实例
- 在root下的Test.txt查找ok333,显示行号
- 用cat指令查看该文件,把结果传递给后面的grep来过滤
- 不区分大小写的查看
7.6 压缩和解压缩类
1. gzip和gunzip指令
-
基本语法
【gzip 文件】 : 用于压缩文件 【gunzip 文件.gz】: 用于解压缩文件 -
注意 : 使用gzip压缩后,原文件会消失
-
实例
- gzip压缩
- gunzip解压缩
2. zip和unzip指令
-
基本语法
【zip (选项)(xxx.zip) 内容】 : 压缩内容(文件或者目录) 【unzip (选项)(xxx.zip)】:解压缩文件 -
常用选项
-
-r : 递归压缩,压缩目录 -
-d <路径> : 指定解压后内容放在哪里
- 实例
- 压缩文件
- 解压文件到指定位置
- 压缩目录
- 解压是目录的压缩包
3. tar指令
-
基本语法
打包指令,为 *.tar.gz 的文件 【tar (选项) 文件.tar.gz】 【tar -czvf】:压缩 【tar -xzvf】:解压 -
常用选项
- 实例
- 压缩多个文件
- 将/home下的所有文件打包
- 解压文件到当前目录
- 解压文件到指定路径
8、组管理和权限管理
8.1 组管理
1. 组的基本介绍



2. 对文件/目录的所有者操作



- 实例
- 创建属于police 的 用户 tom , 用tom 创建 ok.txt 文件

- 查看创建的文件

- 修改文件的所有者
将由root创建的okk文件,所有者修改为tom

- 修改文件的所在组

- 改变用户所在组

8.2 权限的基本介绍
1.图示

2. rwx的权限详解

3. 实际案例

8.3 权限管理
1. 修改权限(chmod)
- 基本语法


- 实例
- 给abc文件设置权限

- 给abc文件的所有者除去执行权限,增加组写的权限

- 给所有的用户添加读

2. 修改文件所有者(chown)
- 基本语法

- 案例
- 修改abc的所有者为tom

- 修改root/Test/的所有文件所有者为tom,组为bandit

3. 修改文件所在组(chgrp)

8.4 总结案例
- 题目

- 实操
- 创建组

- 创建用户


- jack创建文件,修改权限


- jack修改文件的限权

- xh投靠警察,看看是否可以读写文件


9、任务调度(crontab)

9.1 概述

9.2 使用
-
基本语法
【crontab (选项)】 -
常用选项

- 实例

- 输入crontab -e 进入编辑模式
- 输入 : 【 */ * * * * ls -l /etc/ >> /tmp/to.txt 】
- 当保存退出后就启动程序
- 每分钟都会自动生成文件的输入命令
- 参数说明



9.3 几个应用实例

- 每隔1分钟就写入日期


- 每隔1分钟就从/home/mycal.sh 中读取指令 (将日期和日历写入)(要注意给mycal.sh 执行和写的权限)



10、磁盘分区、挂载
10.1 磁盘分区基本知识


10.2 Linux分区
- 基本原理

- 硬盘说明


10.3 查看磁盘分区
- 查看系统分区和挂载情况

- 查看内存大小

10.4 给Linux增加分区

- 添加硬盘

- 新增分区处理

- 格式化磁盘



10.5 磁盘情况查询
1. 基本查询

- 实例


- 实例
- -h 选项

- -s 选项

- -a 选项

- --max-depth = 1

2. 工作实用

- 显示home所有文件 , 然后交给后面筛选“-”打头的(^ 是定位符), 然后交给后面(wc)统计个数

- 显示home所有文件 , 然后交给后面筛选“d”打头的(^ 是定位符), 然后交给后面(wc)统计个数




11、网络配置
- 模式图

- 查看 linux 的ip地址

- 查看 Windows 的ip地址

12、进程管理
12.1 基本介绍

12.2 查看进程(ps指令)



- 实例
- 【ps -aux | more】

- 只查看sshd服务 【ps -aux | grep sshd】

- 显示父进程 【ps -ef | more】

12.3 终止进程(kill指令)
-
基本语法
【kill (选项) 进程号】 : 通过进程号杀死进程 【killall 进程名称】: 通过进程名杀死进程,支持使用通配符,这在系统运行缓慢时,很有用 -
常用选项
- -9 表示强迫进程停止
- 实例

- 发现tom登录,踢出tom
- 发现登录

- 踢出 kill tom的进程号

- 踢出成功

- 终止远程服务sshd,需要时再开启


- 强制终止一个终端

- 查看进程树


12.4 服务管理
1. 介绍

2. 防火墙指令

- 案例
- 下载安装防火墙,查看防火墙状态

- 关闭防火墙

- 细节讨论

3. 查看服务
-
基本语法
【ls -l /etc/init.d/】 -
实例

4. 服务器的运行级别(重点)


5. chkconfig指令

- 实例
- 查看服务

12.5 查看网络状况

- 实例
- 查看服务名为sshd的服务信息

- 查看所有的网络服务

12.6 动态监控进程
-
基本语法
【top (选项)】 -
常用选项


- 实例
- top 查看 进程

- 终止指定进程

13、RPM管理
13.1 基本介绍

13.2 软件包查询指令
-
基本语法
【 rpm - qa | grep (应用名称)】


- 实例
- 查找Python的软件包

- 查询所有的软件包

- 查询软件包信息

- 查看软件包的文件和所在位置

- 查询文件所属软件包

13.3 卸载软件包
-
基本语法
【rpm -e RPM包的名称】

13.4 安装RPM包
-
基本语法
【rpm -ivh 软件包的路径名】 -
参数说明
- i : install 安装
- v :verbose 提示
- h : hash 进度条
- 实例


14、YUM管理
14.1 基本介绍


14.2 使用
- 实例
- 查看yum服务器提供的所有包

- 查看指定的包

- 安装 【yum install 软件名】

15、javaEE定制

- 文件上传

15.1 JDK的安装和配置
- 解压文件 【tar -xzvf jdk-7u79-linux-x64.gz】

- 配置环境变量

环境变量注册完后要注销用户,重新登录
- 测试 java命令

- 写一个简单的java文件

15.2 Tomcat的安装和配置
- 解压

- 启动(在tomcat的bin目录下,启动)

- 要注意防火墙的设置
- 启动防火墙和放行端口

- 重启防火墙

- 监听端口

- 找到8080端口,说明tomcat启动成功

- 测试成功

15.3 MySql的安装和配置
- 查询本机是否有mysql

- 有的话,删除
rpm -e mysql-libs
rpm -e mysql-common
- 安装编译环境
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
- 解压mysql
tar -xzvf mysql-5.6.14.tar.gz
- 编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1-DMYSQL_DATADIR=/var/mysql/data-DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
- 安装
make && make install
mount -t iso9660 -o loop /dev/cdrom /mnt/rheliso/
- 查看是否有Mysql用户组

- 如果没有,则创建用户组