From f892e2d22a9d36001a527bc8b8fefca8c081e9d4 Mon Sep 17 00:00:00 2001 From: heibaiying <2806718453@qq.com> Date: Wed, 3 Jul 2019 15:29:17 +0800 Subject: [PATCH] =?UTF-8?q?Linux=E5=B8=B8=E7=94=A8shell=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/RabbitMQ/rabbitmq-basis/pom.xml | 20 + .../main/java/com/heibaiying/Consumer.java | 45 + .../main/java/com/heibaiying/Producer.java | 45 + notes/Java并发.md | 79 + notes/Linux常用Shell命令.md | 744 ++++++++ notes/RabbitMQ简介.md | 112 ++ .../RabbitMQ单机环境搭建.md | 169 ++ notes/installation/Redis单机环境搭建.md | 58 + .../《Linux就该这么学》读书笔记.md | 1672 ----------------- pictures/RabbitMQ-访问限制.png | Bin 0 -> 11038 bytes pictures/rabbitmq-架构.jpg | Bin 0 -> 39876 bytes pictures/rabbitmq-管控台.png | Bin 0 -> 19872 bytes pictures/vim不同模式间的切换.png | Bin 0 -> 16082 bytes pictures/大数据技术栈.xmind | Bin 178538 -> 0 bytes pictures/线程完整生命周期.jpg | Bin 0 -> 66114 bytes 15 files changed, 1272 insertions(+), 1672 deletions(-) create mode 100644 code/RabbitMQ/rabbitmq-basis/pom.xml create mode 100644 code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Consumer.java create mode 100644 code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Producer.java create mode 100644 notes/Java并发.md create mode 100644 notes/Linux常用Shell命令.md create mode 100644 notes/RabbitMQ简介.md create mode 100644 notes/installation/RabbitMQ单机环境搭建.md create mode 100644 notes/installation/Redis单机环境搭建.md delete mode 100644 notes/《Linux就该这么学》读书笔记.md create mode 100644 pictures/RabbitMQ-访问限制.png create mode 100644 pictures/rabbitmq-架构.jpg create mode 100644 pictures/rabbitmq-管控台.png create mode 100644 pictures/vim不同模式间的切换.png delete mode 100644 pictures/大数据技术栈.xmind create mode 100644 pictures/线程完整生命周期.jpg diff --git a/code/RabbitMQ/rabbitmq-basis/pom.xml b/code/RabbitMQ/rabbitmq-basis/pom.xml new file mode 100644 index 0000000..08e987b --- /dev/null +++ b/code/RabbitMQ/rabbitmq-basis/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.heibaiying + rabbitmq-basis + 1.0 + + + + com.rabbitmq + amqp-client + 5.6.0 + + + + \ No newline at end of file diff --git a/code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Consumer.java b/code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Consumer.java new file mode 100644 index 0000000..db55bda --- /dev/null +++ b/code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Consumer.java @@ -0,0 +1,45 @@ +package com.heibaiying; + +import com.rabbitmq.client.*; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +/** + * 消费者 + */ +public class Consumer { + + private static final String QUEUE_NAME = "queue-hello"; + private static final String USER_NAME = "root"; + private static final String PASSWORD = "root"; + private static final String IP_ADDRESS = "192.168.200.229"; + /* RabbitMQ 服务默认的连接端口号 */ + private static final int PORT = 5672; + + public static void main(String[] args) throws Exception { + ConnectionFactory factory = new ConnectionFactory(); + factory.setHost(IP_ADDRESS); + factory.setPort(PORT); + factory.setUsername(USER_NAME); + factory.setPassword(PASSWORD); + Connection connection = factory.newConnection(); + final Channel channel = connection.createChannel(); + // 设置客户端最多接收多少个未被 Ack 的消息, 0 代表没有限制 + channel.basicQos(64); + DefaultConsumer consumer = new DefaultConsumer(channel) { + @Override + public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { + System.out.println("收到消息:" + new String(body)); + // 消息 Ack + channel.basicAck(envelope.getDeliveryTag(), false); + } + }; + channel.basicConsume(QUEUE_NAME, consumer); + // 等到回调函数执行后再关闭连接 + TimeUnit.SECONDS.sleep(5); + channel.close(); + connection.close(); + + } +} diff --git a/code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Producer.java b/code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Producer.java new file mode 100644 index 0000000..fa1b8cd --- /dev/null +++ b/code/RabbitMQ/rabbitmq-basis/src/main/java/com/heibaiying/Producer.java @@ -0,0 +1,45 @@ +package com.heibaiying; + +import com.rabbitmq.client.*; + +/** + * 生产者 + */ +public class Producer { + + private static final String EXCHANGE_NAME = "exchange-hello"; + private static final String ROUTING_KEY = "routingkey-hello"; + private static final String QUEUE_NAME = "queue-hello"; + private static final String USER_NAME = "root"; + private static final String PASSWORD = "root"; + private static final String IP_ADDRESS = "192.168.200.229"; + /* RabbitMQ 服务默认的连接端口号 */ + private static final int PORT = 5672; + + + public static void main(String[] args) throws Exception { + // 创建连接工厂 + ConnectionFactory factory = new ConnectionFactory(); + factory.setHost(IP_ADDRESS); + factory.setPort(PORT); + factory.setUsername(USER_NAME); + factory.setPassword(PASSWORD); + // 获取新的连接 + Connection connection = factory.newConnection(); + // 创建信道 + Channel channel = connection.createChannel(); + // 创建一个 type="direct"、持久化的、非自动删除的交换器 + channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.DIRECT, true, false, null); + // 创建一个持久化、非排他的、非自动删除的队列 + channel.queueDeclare(QUEUE_NAME, true, false, false, null); + // 将交换器与队列通过路由键绑定 + channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, ROUTING_KEY); + String message = "hello world"; + // 发送一条持久化的文本消息 + channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes()); + // 关闭信道 + channel.close(); + // 关闭连接 + connection.close(); + } +} diff --git a/notes/Java并发.md b/notes/Java并发.md new file mode 100644 index 0000000..1ce660c --- /dev/null +++ b/notes/Java并发.md @@ -0,0 +1,79 @@ +# Java 并发编程基础 + +## 一、线程基础 + +### 1.1 创建线程 + +创建线程通常以下两种方式: + +- 实现 Runnable 接口: + +```java +public class MyRunnable implements Runnable { + @Override + public void run() { + System.out.println("Runnable:" + Thread.currentThread().getId()); + } +} + +Thread thread = new Thread(new MyRunnable()); +thread.start(); +``` + +- 采用匿名内部类: + +```java +// 1.创建线程 +Thread thread = new Thread(new Runnable() { + @Override + public void run() { + System.out.println("Thread:" + Thread.currentThread().getId()); + } +}); +// 2.启动线程 +thread.start(); +``` + +```java +// 使用Java 8的lambda可以简写如下: +new Thread(() -> System.out.println("Thread:" + Thread.currentThread().getId())).start(); +``` + +由于 Thread类 实现了 Runnable 接口,所以两种方式本质上还是同一种。需要注意的是,当你使用 `new` 关键字创建了一个线程后,此时线程并没有开始执行,所以你还需要调用`start`方法启动线程。启动一个线程的实质是请求 Java 虚拟机运行相应的线程,而这个线程具体何时能够运行是由线程调度器(Scheduler)决定的,线程可能立即执行,也可能稍后运行,甚至有可能永远不会被执行。 + +### 1.2 线程属性 + +**编号(ID)** :用于标识线程的唯一编号,只读属性。 + +**名称(Name)**:用于区分不同线程的名称,可读可写。 + +**线程类别(Daemon)**:布尔类型,为 true 表示是守护线程,否则为用户线程,用户线程会阻止 Java 虚拟机正常停止,守护线程则不会。通常可以把一些不重要的线程设置为守护线程,比如监控其他线程工作的线程,当工作线程停止后,虚拟机就可以正常退出。在开发中我们可以使用`setDaemonn`方法设置线程为守护线程,该方法必须在`start`方法前调用,如果在其后调用,则会抛出`IllegalThreadStateException`异常。 + +**优先级(Priority)**:Java 线程支持 1~10 的 10个优先级,默认值为5,代表一般优先级。Java 线程的优先级本质上只是给线程调度器一个提示信息,它并不能保证线程一定按照优先级的高低顺序运行,所以它是不可靠的,需要谨慎使用。 + +需要说明的是在 Java 平台中,一个线程的线程类别,优先级都默认与其父线程相同。 + +### 1.3 线程状态 + +Java 线程的生命周期分为以下几个状态: + +**RUNABLE**:该状态包括两个子状态:READY 和 RUNING。处于 READY 状态的线程被称为活跃线程,被线程调度器选中后则开始运行,转化为 RUNING 状态。 + +**BLOCKED**:一个线程发起一个阻塞式 IO 操作后,或者申请一个由其他线程持有的独占资源(比如锁)时,相应的线程就会处于该状态。 + +**WAITING**:线程处于无时间限制的等待状态。 + +**TIMED_WAITING**:有时间限制的等待状态,如果在指定时间内并没有执行的特定的操作,则该线程自动转换为 RUNABLE。 + +**TERMINATED**:`Thread.run()`正常返回或者由于抛出异常而提前终止,则对应的线程都会处于终止状态。 + +各个状态之间的转换关系如下图: + +![线程完整生命周期](D:\Full-Stack-Notes\pictures\线程完整生命周期.jpg) + +## 二、线程同步机制 + + + + + diff --git a/notes/Linux常用Shell命令.md b/notes/Linux常用Shell命令.md new file mode 100644 index 0000000..8de6001 --- /dev/null +++ b/notes/Linux常用Shell命令.md @@ -0,0 +1,744 @@ +# Linux 常用Shell命令 + + + +## 一、Linux目录结构 + +| 目录名称 | 应放置文件的内容 | +| ----------- | --------------------------------------------------------- | +| /boot | 开机所需文件—内核、开机菜单以及所需配置文件等 | +| /dev | 以文件形式存放任何设备与接口 | +| /etc | 配置文件 | +| /home | 用户主目录 | +| /bin | 存放单用户模式下还可以操作的命令 | +| /lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 | +| /sbin | 开机过程中需要的命令 | +| /media | 用于挂载设备文件的目录 | +| /opt | 放置第三方的软件 | +| /root | 系统管理员的家目录 | +| /srv | 一些网络服务的数据文件目录 | +| /tmp | 任何人均可使用的“共享”临时目录 | +| /proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 | +| /usr/local | 用户自行安装的软件 | +| /usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 | +| /usr/share | 帮助与说明文件,也可放置共享文件 | +| /var | 主要存放经常变化的文件,如日志 | +| /lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 | + +## 二、帮助命令 + +想要查看某个命令的帮助信息,可以使用 man 命令。执行 man 命令后,就进入到浏览页面,浏览页面常用按键及其用途如下: + +| 按键 | 用处 | +| --------- | ---------------------------------- | +| 空格键 | 向下翻一页 | +| PaGe down | 向下翻一页 | +| PaGe up | 向上翻一页 | +| home | 直接前往首页 | +| end | 直接前往尾页 | +| / | 从上至下搜索某个关键词,如“/linux” | +| ? | 从下至上搜索某个关键词,如“?linux” | +| n | 定位到下一个搜索到的关键词 | +| N | 定位到上一个搜索到的关键词 | +| q | 退出帮助文档 | + +## 三、Yum相关命令 + +| 命令 | 列出所有仓库 | +| ------------------------- | ---------------------------- | +| yum repolist all | 列出所有仓库 | +| yum list all | 列出仓库中所有软件包 | +| yum info 软件包名称 | 查看软件包信息 | +| yum install 软件包名称 | 安装软件包 | +| yum reinstall 软件包名称 | 重新安装软件包 | +| yum update 软件包名称 | 升级软件包 | +| yum remove 软件包名称 | 移除软件包 | +| yum clean all | 清除所有仓库缓存 | +| yum check-update | 检查可更新的软件包 | +| yum grouplist | 查看系统中已经安装的软件包组 | +| yum groupinstall 软件包组 | 安装指定的软件包组 | +| yum groupremove 软件包组 | 移除指定的软件包组 | +| yum groupinfo 软件包组 | 查询指定的软件包组信息 | + +## 四、服务相关命令 + +服务的启动、重启、停止、重载、查看状态等常用命令如下: + +| System V init 命令(RHEL 6系统) | systemctl命令(RHEL 7 系统) | 作用 | +| -------------------------------- | ----------------------------- | ------------------------------ | +| service foo start | systemctl start foo.service | 启动服务 | +| service foo restart | systemctl restart foo.service | 重启服务 | +| service foo stop | systemctl stop foo.service | 停止服务 | +| service foo reload | systemctl reload foo.service | 重新加载配置文件(不终止服务) | +| service foo status | systemctl status foo.service | 查看服务状态 | + +服务开机启动、不启动、查看各级别下服务启动状态等常用命令: + +| System V init 命令(RHEL 6系统) | systemctl命令(RHEL 7 系统) | 作用 | +| -------------------------------- | ---------------------------------------- | ---------------------------------- | +| chkconfig foo in | systemctl enable foo.service | 开机自动启动 | +| chkconfig foo off | systemctl disable foo.service | 开机不自动启动 | +| chkconfig foo | systemctl is-enable foo.service | 查看特定服务是否为开启自动启动 | +| chkconfig --list | systemctl list-unit-files --type=service | 查看各个级别下服务的启动与禁用情况 | + + +## 五、常用系统命令 + +### 1. echo + +echo 命令用于在终端输出字符串或变量提取后的值,格式为:echo [字符串 | $变量]。 + +```shell +[root@hadoop001 ~]# echo hello +hello +[root@hadoop001 ~]# echo $JAVA_HOME +/usr/java/jdk1.8.0_201 +``` + +### 2. date + +date 命令用于显示及设置系统的时间或日期。 + +**表: date命令中的参数以及作用** + +| 参数 | 作用 | +| ---- | -------------- | +| %t | 跳格[Tab键] | +| %H | 小时(00~23) | +| %I | 小时(00~12) | +| %M | 分钟(00~59) | +| %S | 秒(00~59) | +| %j | 今年中的第几天 | + +按照默认格式查看当前时间: + +```shell +[root@hadoop001 ~]# date +2019年 07月 02日 星期二 14:07:34 CST +``` + +按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的date命令如下所示: + +```shell +[root@hadoop001 ~]# date "+%Y-%m-%d %H:%M:%S" +2019-07-02 14:07:52 +``` + +设置系统时间: + +```shell +[root@hadoop001 ~]# date -s "20190702 14:10:10" +2019年 07月 02日 星期二 14:10:10 CST +``` + +### 3. reboot + +reboot 命令用于重启系统,其格式为 reboot。 + +### 4. poweroff + +poweroff 命令用于关闭系统,其格式为 poweroff。 + +### 5. wget + +wget 命令用于在终端中下载网络文件,格式为: wget [参数] 下载地址。 + +**表:wget 命令的参数以及作用** + +| 参数 | 作用 | +| ---- | ------------------------------------ | +| -b | 后台下载模式 | +| -P | 下载到指定目录 | +| -t | 最大尝试次数 | +| -c | 断点续传 | +| -p | 下载页面内所有资源,包括图片、视频等 | +| -r | 递归下载 | + +示例:下载百度首页的内容到`/usr/baidu`目录下: + +```shell +[root@hadoop001 usr]# wget -r -p www.baidu.com -P /usr/baidu +``` + +### 6. ps + +ps 命令用于查看系统中的进程状态,格式为:ps [参数] ,常用参数如下: + +| 参数 | 作用 | +| ---- | ---------------------------------- | +| -a | 显示所有进程(包括其他用户的进程) | +| -u | 用户以及其他详细信息 | +| -x | 显示没有控制终端的进程 | + +在 Linux 系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。 + +- **R(运行)**:进程正在运行或在运行队列中等待。 +- **S(中断)**:进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。 +- **D(不可中断)**:进程不响应系统异步信号,即便用kill命令也不能将其中断。 +- **Z(僵死)**:进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。 +- **T(停止)**:进程收到停止信号后停止运行。 + +示例如下: + +```shell +[root@hadoop001 usr]# ps -u +USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND +root 2688 0.0 0.0 110092 856 tty1 Ss+ 13:45 0:00 /sbin/agetty -- +root 3679 0.0 0.1 115572 2216 pts/0 Ss 13:52 0:00 -bash +root 12471 0.0 0.1 155360 1888 pts/0 R+ 14:17 0:00 ps -u +``` + +各个参数的含义如下: + +| USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND | +| ------------ | -------- | ------------ | ---------- | ------------------------ | -------------------------- | -------- | -------- | ------------ | ----------------- | -------------- | +| 进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 | + +### 7. top + +top 命令用于动态地监视进程活动与系统负载等信息,其格式为 top。 + +```shell +top - 14:21:25 up 35 min, 1 user, load average: 0.00, 0.02, 0.05 +Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie +%Cpu(s): 0.5 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st +KiB Mem : 1882148 total, 1316728 free, 203592 used, 361828 buff/cache +KiB Swap: 2097148 total, 2097148 free, 0 used. 1497748 avail Mem + + PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND + 3680 root 20 0 113444 1776 1344 S 0.3 0.1 0:06.45 bash +13685 root 20 0 161880 2200 1560 R 0.3 0.1 0:00.09 top + 1 root 20 0 193696 6656 4180 S 0.0 0.4 0:03.10 systemd +``` + +top 命令执行结果的前5行为系统整体的统计信息,其所代表的含义如下: + +**第1行**:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。 + +**第2行**:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。 + +**第3行**:用户占用资源百分比(us)、系统内核占用资源百分比(sy)、改变过优先级的进程资源百分比(ni)、空闲的资源百分比(id)等。其中数据均为CPU数据并以百分比格式显示,例如`98.7 id`意味着有 98.7% 的 CPU 处理器资源处于空闲。 + +**第4行**:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。 + +**第5行**:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。 + +### 8. pidof + +pidof 命令用于查询某个指定服务进程的 PID 值,格式为:pidof \[参数][服务名称]。 + +### 9. kilL + +kill 命令用于终止某个指定 PID 的服务进程,格式为:kill \[参数][进程 PID]。 + +### 10. killall + +killall 命令用于终止某个指定名称的服务所对应的全部进程,格式为:killall \[参数][服务名称]。 + + + +## 六、状态检测命令 + +### 1. ifconfig + +ifconfig 命令用于获取网卡配置与网络状态等信息,格式为:ifconfig \[网络设备][参数]。 + +### 2. uname + +uname 命令用于查看系统内核与系统版本等信息,格式为:uname [-a]。-a 参数用来查看详细信息,主要有内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。 + +```shell +[root@hadoop001 ~]# uname -a +Linux hadoop001 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux +``` + +如果要查看当前系统版本的详细信息,可以使用如下命令: + +```shell +[root@hadoop001 ~]# cat /etc/redhat-release +CentOS Linux release 7.6.1810 (Core) +``` + +### 3. uptime + +uptime 用于查看系统的负载信息。显示**当前系统时间**、**系统已运行时间**、**启用终端数量**以及**平均负载值**等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况。 + +```shell +[root@hadoop001 ~]# uptime + 14:32:06 up 46 min, 1 user, load average: 0.00, 0.01, 0.05 +``` + +### 4. free + +free 用于显示当前系统中内存的使用量信息,格式为:free [-h]。 执行`free -h`命令后的输出信息如下: + +| | 内存总量 | 已用量 | 可用量 | 进程共享的内存量 | 磁盘缓存的内存量 | 缓存的内存量 | +| ----- | -------- | ------ | ------ | ---------------- | ---------------- | ------------ | +| | total | used | free | shared | buffers | cached | +| Mem: | 1.8G | 198M | 1.3G | 8.5M | 353M | 1.4G | +| Swap: | 2.0G | 0B | 2.0G | | | | + +swap 全称为 swap place,即交换区,当内存不够的时候,被踢出的进程被暂时存储到交换区。当需要这条被踢出的进程的时候,就从交换区重新加载到内存,否则它不会主动交换到真实内存中。 + +### 5. who + +who 用于查看当前登入主机的用户终端信息,格式为:who [参数]。 + +``` +[root@hadoop001 ~]# who +``` + +**表: 执行who命令的结果** + +| 登陆的用户名 | 终端设备 | 登陆到系统的时间 | +| ------------ | -------- | ---------------- | +| rootpts/0 | pts/0 | 2019-07-02 13:52 | + +### 6. last + +last 命令用于查看所有系统的登录记录,格式为:last [参数]。 + +### 7. history + +history 命令用于显示历史执行过的命令,格式为:history [-c],默认显示最近1000条命令记录。可以使用 `!序号` 的方式来重复执行某条命令。 + +### 8. sosreport + +sosreport 命令用于收集系统配置及架构信息并输出诊断文档。使用时如果找不到该命令,则需要先使用`yum install sos`命令来安装 sos 包。 + + + +## 七、目录相关命令 + +### 1. pwd + +显示当前所在的路径信息。 + +### 2. cd + +切换到指定目录,`cd -`命令返回到上一次所处的目录。 + +### 3. ls + +显示当前路径下的文件信息。想要查看文件的详细信息可以使用`ls -l `,也可以简写为`ll`。 + +## 八、文件编辑命令 + +### 1. cat + +cat 命令用于查看内容较少的纯文本文件,格式为:cat \[选项][文件]。常用参数为`-n`,代表带行号显示。 + +### 2. more + +more 命令用于查看内容较多的纯文本文件,格式为:more [选项]文件。可以使用空格键或回车键向下翻页。 + +### 3.head + +head 命令用于查看纯文本文档的前N行,格式为:head \[选项][文件]。 + +```shell +head -n 20 hdfs-site.xml +``` + +### 4. tail + +tail 命令用于查看纯文本文档的后N行或持续刷新内容,格式为:tail \[选项][文件]。 + +```shell +head -n 20 hdfs-site.xml +``` + +tail 命令可以持续观察一个文件新写入的内容,此时命令为:tail -f 文件名。 + +### 5. stat + +stat 命令用于查看文件的具体存储信息和时间等信息,示例如下: + +```shell +[root@hadoop001 hadoop]# stat hdfs-site.xml + 文件:"hdfs-site.xml" + 大小:1021 块:8 IO 块:4096 普通文件 +设备:fd00h/64768d Inode:3305180 硬链接:1 +权限:(0644/-rw-r--r--) Uid:( 1106/ UNKNOWN) Gid:( 4001/ UNKNOWN) +环境:unconfined_u:object_r:usr_t:s0 +最近访问:2019-07-02 14:50:22.700674460 +0800 +最近更改:2019-04-30 16:06:24.421716553 +0800 +最近改动:2019-04-30 16:06:24.423716557 +0800 +创建时间:- +``` + +### 6. diff + +diff 命令用于比较多个文本文件的差异,格式为:diff [参数] 文件。 常用参数如下: + +- 使用`-c`参数来详细比较出多个文件的差异之处 ; +- 使用`--brief`参数来确认两个文件是否不同。 + +```shell +diff -c diff_A.txt diff_B.txt +diff --brief diff_A.txt diff_B.txt +``` + +## 九、文件管理命令 + +### 1. touch + +touch 命令用于创建空白文件或设置文件的时间,格式为:touch \[选项][文件]。常用参数如下: + +| 参数 | 作用 | +| ---- | ----------------------- | +| -a | 仅修改读取时间(atime) | +| -m | 仅修改修改时间(mtime) | +| -d | 同时修改atime与mtime | + +```shell +[root@hadoop001 hadoop]# touch -d "2018-08-08 08:08" hdfs-site.xml +``` + +### 2. mkdir + +mkdir 命令用于创建空白的目录,格式为:mkdir [选项] 目录。常用参数为`-p`,代表递归创建: + +```shell +mkdir -p a/b/c/d/e +``` + +### 3. cp + +cp 命令用于复制文件或目录,格式为:`cp [选项] 源文件 目标文件`。 常用参数如下: + +| 参数 | 作用 | +| ---- | -------------------------------------------- | +| -p | 保留原始文件的属性 | +| -d | 若对象为“链接文件”,则保留该“链接文件”的属性 | +| -r | 递归持续复制(用于目录) | +| -i | 若目标文件存在则询问是否覆盖 | +| -a | 相当于 -pdr(p、d、r为上述参数) | + +### 4. mv + +mv 命令用于剪切文件或将文件重命名,格式为:`mv [选项] 源文件 [目标路径|目标文件名]`。 如果在同一个目录中对一个文件进行剪切操作,等价于对其进行重命名: + +```shell + mv yarn-site.xml hello.xml +``` + +### 5. rm + +rm 命令用于删除文件或目录,格式为:rm [选项] 文件。 常用参数如下: + +- `-f`:参数来强制删除; +- `-r` :参数递归删除文件夹。 + +### 6. file + +file 命令用于查看文件的类型,格式为:file 文件名。 + +```shell +[root@hadoop001 hadoop]# file yarn-site.xml +yarn-site.xml: XML 1.0 document, UTF-8 Unicode text +``` + + + +## 十、压缩与搜索命令 + +### 1. tar + +tar 命令用于对文件进行压缩或解压,格式为:tar \[选项] [文件]。 常用参数如下: + +| 参数 | 作用 | +| ---- | ---------------------- | +| -c | 创建压缩文件 | +| -x | 解开压缩文件 | +| -t | 查看压缩包内有哪些文件 | +| -z | 用Gzip压缩或解压 | +| -j | 用bzip2压缩或解压 | +| -v | 显示压缩或解压的过程 | +| -f | 目标文件名 | +| -p | 保留原始的权限与属性 | +| -P | 使用绝对路径来压缩 | +| -C | 指定解压到的目录 | + +常用打包命令:`tar -czvf 压缩包名称.tar.gz 要打包的目录`; + +常用解压命令:`tar -xzvf 压缩包名称.tar.gz`。 + +### 2. grep + +grep 命令用于执行关键词搜索,并显示匹配的结果,格式为:grep \[选项][文件]。 常用参数如下: + +| 参数 | 作用 | +| ---- | ------------------------------------------------ | +| -b | 将可执行文件(binary)当作文本文件(text)来搜索 | +| -c | 仅显示找到的行数 | +| -i | 忽略大小写 | +| -n | 显示行号 | +| -v | 反向选择——仅列出没有关键词的行。 | + +```shell +[root@hadoop001 hadoop]# cat core-site.xml | grep hadoop -n +22: hdfs://hadoop001:8020 +25: hadoop.proxyuser.root.hosts +29: hadoop.proxyuser.root.groups +``` + +### 3. find + +find 命令用于按照指定条件来查找文件,格式为:`find [查找路径] 寻找条件 操作`。 常用命令如下: + +| 参数 | 作用 | +| ------------------ | ------------------------------------------------------------ | +| -name | 匹配名称 | +| -perm | 匹配权限(mode为完全匹配,-mode为包含即可) | +| -user | 匹配所有者 | +| -group | 匹配所有组 | +| -mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) | +| -atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) | +| -ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) | +| -nouser | 匹配无所有者的文件 | +| -nogroup | 匹配无所有组的文件 | +| -newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 | +| --type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) | +| -size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) | +| -prune | 忽略某个目录 | +| -exec …… {}\; | 后面可跟用于进一步处理搜索结果的命令 | + +获取到指定目录中所有以 host 开头的文件列表,可以执行如下命令: + +```shell +find /etc -name "host*" -print +``` + + + +## 十一、用户管理相关命令 + +### 1. useradd + +useradd 命令用于创建新的用户,格式为:useradd [选项] 用户名。使用该命令创建用户账户时,默认的用户家目录会被存放在`/home`目录中,默认的 Shell 解释器为`/bin/bash`,默认会创建一个与该用户同名的基本用户组。常用配置如下: + +| 参数 | 作用 | +| ---- | ---------------------------------------- | +| -d | 指定用户的家目录(默认为/home/username) | +| -e | 账户的到期时间,格式为YYYY-MM-DD. | +| -u | 指定该用户的默认UID | +| -g | 指定一个初始的用户基本组(必须已存在) | +| -G | 指定一个或多个扩展用户组 | +| -N | 不创建与用户同名的基本用户组 | +| -s | 指定该用户的默认 Shell 解释器 | + +```shell +[root@hadoop001 ~]# useradd heibaiying +[root@hadoop001 ~]# id heibaiying +uid=1000(heibaiying) gid=1000(heibaiying) 组=1000(heibaiying) +``` + +UID就相当是用户的唯一标识,其赋值规则如下: + +- 管理员UID为0:系统的管理员用户。 +- 系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。 +- 普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。 + +### 2. groupadd + +groupadd 命令用于创建用户组,格式为:groupadd [选项] 群组名。 + +### 3. usermod + +创建后用户的信息保存在`/etc/passwd`文件中,可以直接对其进行编辑来修改用户参数,或使用 usermod 命令。常用参数如下: + +| 参数 | 作用 | +| ----- | ------------------------------------------------------------ | +| -c | 填写用户账户的备注信息 | +| -d -m | 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 | +| -e | 账户的到期时间,格式为YYYY-MM-DD | +| -g | 变更所属用户组 | +| -G | 变更扩展用户组 | +| -L | 锁定用户禁止其登录系统 | +| -U | 解锁用户,允许其登录系统 | +| -s | 变更默认终端 | +| -u | 修改用户的UID | + +```shell +[root@hadoop001 ~]# id heibaiying +uid=9999(heibaiying) gid=1000(heibaiying) 组=1000(heibaiying) +``` + +### 4. passwd + +passwd 命令用于设置或修改用户密码、过期时间、认证信息等,格式为:passwd \[选项][用户名]。常用参数如下: + +| 参数 | 作用 | +| ------- | ------------------------------------------------------------ | +| -l | 锁定用户,禁止其登录 | +| -u | 解除锁定,允许用户登录 | +| --stdin | 允许通过标准输入修改用户密码,如echo "NewPassWord" \| passwd --stdin Username | +| -d | 使该用户可用空密码登录系统 | +| -e | 强制用户在下次登录时修改密码 | +| -S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 | + +```shell +[root@hadoop001 ~]# passwd +更改用户 root 的密码 。 +新的 密码: +重新输入新的 密码: +passwd:所有的身份验证令牌已经成功更新。 +``` + +### 5. userdel + +userdel 命令用于删除用户,格式为:userdel [选项] 用户名。常用参数如下: + +| 参数 | 作用 | +| ---- | ------------------------ | +| -f | 强制删除用户 | +| -r | 同时删除用户及用户家目录 | + +## 十二、文件权限相关命令 + +使用 `ll` 命令可以查看到文件的详细属性,各个属性的含义如下: + +
+- -:普通文件。 +- d:目录文件。 +- l:链接文件。 +- b:块设备文件。 +- c:字符设备文件。 +- p:管道文件。 + +### 1. chmod + +chmod 用于设置文件或目录的权限,格式为:chmod [参数] 权限 文件或目录名称。 权限支持字符表示和数字表示两种形式,其对应关系如下: + +
+示例如下: + +``` +[root@hadoop001 ~]# ll test.txt +-rw-r--r--. 1 root root 0 7月 3 14:49 test.txt +[root@hadoop001 ~]# chmod 760 test.txt +[root@hadoop001 ~]# ll test.txt +-rwxrw----. 1 root root 0 7月 3 14:49 test.txt +``` + +### 2. chown + +chown 设置文件或目录的所有者和所属组,格式为:chown [参数] 所有者:所属组 文件或目录名称。 + +```shell +[root@hadoop001 ~]# stat test.txt +...... +权限:(0760/-rwxrw----) Uid:( 0/ root) Gid:( 0/ root) +...... +[root@hadoop001 ~]# chown heibaiying:heibaiying test.txt +[root@hadoop001 ~]# stat test.txt +...... +权限:(0760/-rwxrw----) Uid:( 9999/heibaiying) Gid:( 1000/heibaiying) +...... +``` + + +### 3. 软硬链接 + +**硬链接(hard link)**:可以将它理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。 + +**软链接(也称为符号链接[symbolic link])**:仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,与Windows系统中的快捷方式类似。 + +ln命令用于创建链接文件,格式为:ln [选项] 目标。常用参数如下: + +| 参数 | 作用 | +| ---- | ------------------------------------------------ | +| -s | 创建符号链接(如果不带-s参数,则默认创建硬链接) | +| -f | 强制创建文件或目录的链接 | +| -i | 覆盖前先询问 | +| -v | 显示创建链接的过程 | + +## 十三、Vim编辑器常用命令 + +Vim编辑器有三种状态模式: + +- 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。 +- 输入模式:正常的文本录入。 +- 末行模式:保存或退出文档,以及设置编辑环境。 + +
+命令模式中常用的命令如下: + +| 命令 | 作用 | +| ---- | -------------------------------------------------- | +| dd | 删除(剪切)光标所在整行 | +| 5dd | 删除(剪切)从光标处开始的5行 | +| yy | 复制光标所在整行 | +| 5yy | 复制从光标处开始的5行 | +| n | 显示搜索命令定位到的下一个字符串 | +| N | 显示搜索命令定位到的上一个字符串 | +| u | 撤销上一步的操作 | +| p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 | + +末行模式中可用的命令如下: + +| 命令 | 作用 | +| ------------- | --------------------------------------- | +| :w | 保存 | +| :q | 退出 | +| :q! | 强制退出(放弃对文档的修改内容) | +| :wq! | 强制保存退出 | +| :set nu | 显示行号 | +| :set nonu | 不显示行号 | +| :命令 | 执行该命令 | +| :整数 | 跳转到该行 | +| :s/one/two | 将当前光标所在行的第一个 one 替换成 two | +| :s/one/two/g | 将当前光标所在行的所有 one 替换成 two | +| :%s/one/two/g | 将全文中的所有 one 替换成 two | +| ?字符串 | 在文本中从下至上搜索该字符串 | +| /字符串 | 在文本中从上至下搜索该字符串 | + +使用 a、 i、 o 三个键从命令模式切换到输入模式。其中, a 键与 i 键分别是在光标后面一位和光标当前位置切换到输入模式,而 **o 键则是在光标的下面再创建一个空行**,此时可敲击 a 键进入到编辑器的输入模式。 + +## 十四、输入输出重定向 + +输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。同时输出重定向又分为标准输出重定向和错误输出重定向。 + +- 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。 +- 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。 +- 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。 + +输入重定向中用到的符号及其作用如下: + +| 符号 | 作用 | +| -------------------- | -------------------------------------------- | +| 命令 < 文件 | 将文件作为命令的标准输入 | +| 命令 << 分界符 | 从标准输入中读入,直到遇见分界符才停止 | +| 命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 | + +输出重定向中用到的符号及其作用如下: + +| 符号 | 作用 | +| ------------------------------------- | ------------------------------------------------------------ | +| 命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件的数据) | +| 命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) | +| 命令 >> 文件 | 将标准输出重定向到一个文件中(追加到原有内容的后面) | +| 命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有内容的后面) | +| 命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) | + + + +## 参考资料 + +[《Linux 就该这么学》刘遄](https://www.linuxprobe.com/chapter-00.html) \ No newline at end of file diff --git a/notes/RabbitMQ简介.md b/notes/RabbitMQ简介.md new file mode 100644 index 0000000..fef54a7 --- /dev/null +++ b/notes/RabbitMQ简介.md @@ -0,0 +1,112 @@ +# RabbitMQ 简介 + +## 一、简介 + +RabbitMQ 是目前最为广泛使用的开源消息中间件,它具备以下的特点: + +支持多种消息传递协议,拥有丰富的交换器类型,能够将消息灵活路由到各个队列; + +轻量级,支持多种部署方式,易于部署在公共云和私有云中; + +支持跨语言开发,如:Java,.NET,PHP,Python,JavaScript,Ruby,Go; + +可以通过集群来实现高可用性和高吞吐,还可以通过 Federation 插件来连接不同的服务; + +插拔式的身份验证和授权,支持TLS和LDAP; + +支持持续集成,能够使用各种工具和插件进行灵活地扩展; + +能够使用多种方式进行监控和管理,如 HTTP-API,命令行工具和 UI 界面。 + +## 二、模型架构 + +![rabbitmq-架构](D:\Full-Stack-Notes\pictures\rabbitmq-架构.jpg) + +### 2.1 核心概念 + +**1. Exchange(交换器)** + +负责将消息路由到一个或者多个队列中。 + +**2. Queue(消息队列)** + +用于存储消息。多个消费者可以订阅同一个消息队列,此时候队列中的消息会被平均分配给多个消费者进行处理。 + +**3. BindingKey (绑定键)** + +交换器与队列通过 BindingKey 进行绑定。 + +**4. Routingkey (路由键)** + +生产者将消息发给交换器的时候,一般会指定一个 RountingKey,用来指定这个消息的路由规则。当 RountingKey 与 BindingKey 在规则上相符合时,消息被路由到对应的队列中。 + +### 2.2 运转流程 + +**生产者发送消息过程**: + +1. 生产者连接到RabbitMQ Broker , 建立一个连接(Connection), 开启一个信道(Channel); +2. 生产者声明一个交换器,并设置相关属性; +3. 生产者声明一个队列并设置相关属性; +4. 生产者通过路由键将交换器与队列绑定起来; +5. 生产者发送消息至 RabbitMQ Broker ,其中包含路由键、交换器等信息; +6. 相应的交换器根据接收到的路由键查找相应的匹配队列; +7. 如果找到,则将从生产者发送过来的消息存入相应的队列中; +8. 如果没有找到,则根据生产者配置的属性选择丢弃还是回退给生产者; +9. 关闭信道; +10. 关闭连接。 + +**消费者接收消息的过程**: + +1. 消费者连接到 RabbitMQ Broker, 建立一个连接(Connection), 开启一个信道(Channel); +2. 消费者向 RabbitMQ Broker 请求消费相应队列中的消息,可能会设置相应的回调函数; +3. 等待 RabbitMQ Broker 回应并投递相应对列中的消息,消费者接收消息; +4. 消费者确认(ack)接收到的消息; +5. RabbitMQ 从队列中删除相应已经被确认的消息; +6. 关闭信道; +7. 关闭连接。 + +### 2.3 连接与信道 + +生产者和消费者都需要与 Broker 建立 TCP 连接,但由于创建和销毁 TCP 的操作非常昂贵,所以 RabbitMQ 采用了连接复用的方式,在同一个 TCP 连接上建立多个互相独立的信道。 + +## 三、交换器类型 + +### 3.1 fanout + +把消息路由到与该交换器绑定的所有队列中。 + +### 3.2 direct + +把消息路由到 BindingKey 和 RountingKey 完全一样的队列中。 + +### 3.3 topic + +将消息路由到 BindingKey 和 RountingKey 相匹配的队列中,匹配规则如下: + +- RountingKey 和 BindingKey 由多个单词使用`.`号进行连接; +- BindingKey 支持两个特殊符号:`#`和`*` 。其中`*`用于匹配一个单词,`#`用于匹配零个或者多个单词。 + +以下是官方文档中的示例,交换器与队列的 BindingKey 如图所示: + +![topic-exchange](D:\Full-Stack-Notes\pictures\topic-exchange.png) + ++ 路由键为`lazy.orange.elephant`的消息会发送给所有队列; ++ 路由键为`quick.orange.fox`的消息只会发送给第一个队列; ++ 路由键为`lazy.brown.fox`的消息只会发送给第二个队列; ++ 路由键为`lazy.pink.rabbit`的消息只会发送给第二个队列; ++ 路由键为`quick.brown.fox`的消息与任何绑定都不匹配; ++ 路由键为`orange`或`quick.orange.male.rabbit`的消息也与任何绑定都不匹配。 + +### 3.4 headers + +在 Queue 与 Exchange 进行绑定时可以指定一组键值对作为 BindingKey;在发送消息的 headers 中的可以指定一组键值对属性,当这些属性与 BindingKey 相匹配时,则将消息路由到该队列。同时还可以使用 `x-match`指定匹配模式: + +- **x-match = all** :所有的键值对都相同才算匹配成功; +- **x-match = any**:只要有一个键值对相同就算匹配成功。 + +## 四、死信队列 + + + + + diff --git a/notes/installation/RabbitMQ单机环境搭建.md b/notes/installation/RabbitMQ单机环境搭建.md new file mode 100644 index 0000000..a166910 --- /dev/null +++ b/notes/installation/RabbitMQ单机环境搭建.md @@ -0,0 +1,169 @@ +# RabbitMQ 单机环境搭建 + +## 一、前置条件 + +RabbitMQ 由 Erlang 语言所编写,所以在安装 RabbitMQ 前需要安装 Erlang 。两者的版本兼容关系如下。本篇文章选用的 RabbitMQ 版本为 3.7.15 , Erlang 版本为 22.0 。 + +| RabbitMQ version | Minimum required Erlang/OTP | Maximum supported Erlang/OTP | +| :----------------------------------------------------------- | :-------------------------- | :--------------------------- | +| 3.7.15 | 20.3.x | 22.0.x | +| 3.7.7 ~ 3.7.14 | 20.3.x | 21.3.x | +| 3.7.0 ~ 3.7.6 | 19.3 | 20.3.x | + +> 表格来源:https://www.rabbitmq.com/which-erlang.html + + + +## 二、Erlang 安装 + +### 2.1 下载并解压 + +Erlang 源码包下载地址:http://erlang.org/download/ ,下载后进行解压: + +```shell +# 下载 +wget http://erlang.org/download/otp_src_22.0.tar.gz +# 解压 +tar -zxvf otp_src_22.0.tar.gz +``` + +### 2.2 编译和安装 + +Erlang 的编译过程中使用到了 `ncurses-devel` 库,需要预先安装: + +``` +yum install ncurses-devel +``` + +进入解压后的根目录: + +```shell +# 配置安装目录 +./configure --prefix=/usr/app/erlang +# 编译 +make +# 安装 +make install +``` + +### 2.3 验证安装结果 + +进入安装目录的 bin 目录下,执行 `erl`命令,出现对应的版本号信息则代表安装成功: + +```shell +[root@hadoop001 bin]# ./erl +Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] +Eshell V10.4 (abort with ^G) +``` + +### 2.4 配置环境变量 + +```she +vim /etc/profile +``` + +配置环境变量: + +```shell +export ERLANG_HOME=/usr/app/erlang +export PATH=$PATH:$ERLANG_HOME/bin +``` + +使得配置的环境变量立即生效: + +```shell +source /etc/profile +``` + + + +## 三、RabbitMQ 安装 + +### 3.1 下载并解压 + +从 RabbitMQ 的 GitHub 仓库进行下载,地址为:https://github.com/rabbitmq/rabbitmq-server/releases/ : + +```shell +# 下载 +wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz +# 解压 +tar -Jxf rabbitmq-server-generic-unix-3.7.15.tar.xz + +``` + +### 3.2 配置环境变量 + +```she +vim /etc/profile +``` + +配置环境变量: + +```shell +export RABBITMQ_HOME=/usr/app/rabbitmq_server-3.7.15 +export PATH=$PATH:$RABBITMQ_HOME/sbin +``` + +使得配置的环境变量立即生效: + +```shell +source /etc/profile +``` + +### 3.3 启动 RabbitMQ 服务 + +以后台守护进程的方式启动 RabbitMQ ,命令如下: + +```shell +rabbitmq-server start -detached +``` + +### 3.4 查看服务状态 + +```shell +rabbitmqctl status +``` + + + +## 四、Web UI界面 + +### 4.1 启动 Web UI + +想要使用 RabbitMQ 的 Web UI 界面,需要启动管理插件,命令如下: + +```shell +rabbitmq-plugins enable rabbitmq_management +``` + +访问端口为 `15672`。默认的用户名和密码都是 `guest` 。如果你所用浏览器和 RabbitMQ 服务不在同一台主机上,此时应该无法登录,并出现下面的提示 : + +![RabbitMQ-访问限制](D:\Full-Stack-Notes\pictures\RabbitMQ-访问限制.png) + +之所以会出现这个提示,是因为出于安全考虑,RabbitMQ 只允许在本机使用默认的`guest`用户名登录。想要在其他主机上登录,可以使用自定义的账户。 + +### 4.2 新增账户 + +新增用户,用户名和密码都是 root : + +```sh +rabbitmqctl add_user root root +``` + +赋予用户在默认的名为 `/` 的 Virtual Host 上的所有权限: + +```shell +rabbitmqctl set_permissions -p / root '.*' '.*' '.*' +``` + +设置用户的角色为管理员: + +``` +rabbitmqctl set_user_tags root administrator +``` + +### 4.3 使用新账户登录 + +登录后可以查看到RabbitMQ 和 Erlang 的版本号,以及对应的账户信息: + +![rabbitmq-管控台](D:\Full-Stack-Notes\pictures\rabbitmq-管控台.png) \ No newline at end of file diff --git a/notes/installation/Redis单机环境搭建.md b/notes/installation/Redis单机环境搭建.md new file mode 100644 index 0000000..7e2589d --- /dev/null +++ b/notes/installation/Redis单机环境搭建.md @@ -0,0 +1,58 @@ +# Redis 单机环境搭建 + +### 一、下载并解压 + +下载地址:http://download.redis.io/releases/ ,下载后进行解压: + +```shell +# 下载 +http://download.redis.io/releases/redis-5.0.5.tar.gz +# 解压 +tar -zxvf redis-5.0.5.tar.gz +``` + +### 二、编译 + +进入解压后的根目录,执行下面的命令: + +```shell +make +``` + +### 三、启动服务 + +进入`src`目录,执行下面的命令,启动 Redis 服务: + +```shell +redis-server +``` + +### 四、启动客户端 + +在`src`目录下,执行以下命令启动客户端: + +```shell +# 不加任何参数默认连接的也是 127.0.0.1:6379 +redis-cli -h 127.0.0.1 -p 6379 +``` + +### 五、修改访问配置 + +默认情况下,不能从其他主机访问 Redis 服务。如果想要从其他主机访问 Redis 服务,需要修改根目录下的` redis.conf`: + +```shell +bind 127.0.0.1 +``` + +默认绑定的是本机地址,可以改成其他地址。如果想要所有主机都能访问,需要注释掉上面一行,同时将保护模式关闭: + +```shell +protected-mode no +``` + +修改完成后,以指定配置的方式启动: + +```shell +./redis-server ../redis.conf +``` + diff --git a/notes/《Linux就该这么学》读书笔记.md b/notes/《Linux就该这么学》读书笔记.md deleted file mode 100644 index cd6937d..0000000 --- a/notes/《Linux就该这么学》读书笔记.md +++ /dev/null @@ -1,1672 +0,0 @@ - - -# 《linux就该这么学》读书笔记 - -## 目录
-第一章 部署虚拟环境安装Linux系统
-    1.6 Yum 软件仓库
-    1.7 systemd 初始化进程
-第二章 新手必须掌握的Linux命令
-    2.2 执行查看帮助命令
-    2.3 常用系统工作命令
-        1. echo命令
-        2. date命令
-        3. reboot 命令
-        4. poweroff命令
-        5. wget命令
-        6. ps 命令
-        7. top 命令
-        8. pidof 命令
-        9. kill命令
-        10. killall 命令
-    2.4 系统状态检测命令
-        1. ifconfig 命令
-        2. uname 命令
-        3. uptime 命令
-        4. free 命令
-        5. who 命令
-        6. last 命令
-        7. history 命令
-        8. sosreport 命令
-        1. pwd 命令
-        2. cd 命令
-        3. ls命令
-    2.6 文本文件编辑命令
-        1. cat 命令
-        2. more 命令
-        3.head 命令
-        4. tail 命令
-        5. tr 命令
-        6. wc 命令
-        7. stat 命令
-        8. cut命令
-        9. diff 命令
-        1. touch 命令
-        2. mkdir 命令
-        3. cp 命令
-        4. mv 命令
-        5. rm 命令
-        6. dd 命令
-        7. file命令
-    2.8 打包压缩与搜索命令
-        1. tar 命令
-        2. grep 命令
-        3. find命令
-第三章 管道符、重定向与环境变量
-    3.1 输入输出重定向
-    3.2 管道运算符
-    3.3 命令通配符
-    3.4 常用的转义字符
-    3.5 重要的环境变量
-第四章 Vim 编辑器与 shell 脚本命令
-    4.1 vim编辑器
-    4.2 编写的脚本
-        4.2.1 编写简单的脚本
-        4.2.2 接受用户参数
-4.3 流程控制语句
-4.4 计划任务服务程序
-第五章 用户身份与文件权限
-    5.1 用户身份与能力
-        1. useradd 命令
-        2. groupadd 命令
-        3. usermod 命令
-        4. passwd 命令
-        5. userdel 命令
-    5.2 文件权限与归属
-    5.3 文件的特殊权限
-        5.3.1 SUID
-        5.3.2 SGID
-            1.chmod命令
-            2.chown命令
-        5.3.3 SBIT
-    5.4 文件的隐藏属性
-        1. chattr命令
-        2. lsattr 命令
-    5.5 文件访问控制列表
-        5.5.1 setfacl 命令
-        5.5.2 getfacl 命令
-    5.6 su命令与sudo服务
-第六章 存储结构与磁盘划分
-    6.1 一切从“/”开始
-    6.2 物理设备的命名规则
-    6.4 挂载硬件设备
-        1.挂载
-        2.永久挂载
-        3.撤消挂载
-    6.8 软硬链接连接方式
-        1. ln 命令
-第八章 Iptables与Firewalld防火墙
-    8.2 iptables
-        8.2.1 策略与规则链
-        8.2.2 基本的命令参数
-    8.3 Firewalld
-        8.3.1 终端管理工具
-## 正文
- - -## 第一章 部署虚拟环境安装Linux系统 - -### 1.6 Yum 软件仓库 - -**表:常见的yum命令** - -| 命令 | 列出所有仓库 | -| ------------------------- | ---------------------------- | -| yum repolist all | 列出所有仓库 | -| yum list all | 列出仓库中所有软件包 | -| yum info 软件包名称 | 查看软件包信息 | -| yum install 软件包名称 | 安装软件包 | -| yum reinstall 软件包名称 | 重新安装软件包 | -| yum update 软件包名称 | 升级软件包 | -| yum remove 软件包名称 | 移除软件包 | -| yum clean all | 清除所有仓库缓存 | -| yum check-update | 检查可更新的软件包 | -| yum grouplist | 查看系统中已经安装的软件包组 | -| yum groupinstall 软件包组 | 安装指定的软件包组 | -| yum groupremove 软件包组 | 移除指定的软件包组 | -| yum groupinfo 软件包组 | 查询指定的软件包组信息 | - - - -### 1.7 systemd 初始化进程 - -**表:systemctl 管理服务的启动、重启、停止、重载、查看状态等常用命令** - -| System V init 命令(RHE6系统) | systemctl命令(RHEL 7 系统) | 作用 | -| ------------------------------ | ----------------------------- | ------------------------------ | -| service foo start | systemctl start foo.service | 启动服务 | -| service foo restart | systemctl restart foo.service | 重启服务 | -| service foo stop | systemctl stop foo.service | 停止服务 | -| service foo reload | systemctl reload foo.service | 重新加载配置文件(不终止服务) | -| service foo status | systemctl status foo.service | 查看服务状态 | - - - -**表:systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令** - -| System V init 命令(RHE6系统) | systemctl命令(RHEL 7 系统) | 作用 | -| ------------------------------ | ---------------------------------------- | ---------------------------------- | -| chkconfig foo in | systemctl enable foo.service | 开机自动启动 | -| chkconfig foo off | systemctl disable foo.service | 开机不自动启动 | -| chkconfig foo | systemctl is-enable foo.service | 查看特定服务是否为开启自动启动 | -| chkconfig --list | systemctl list-unit-files --type=service | 查看各个级别下服务的启动与禁用情况 | - - - -```shell -[root@localhost ~]# chkconfig docker -注意:正在将请求转发到“systemctl is-enabled docker.service”。 -enabled -``` - - - -## 第二章 新手必须掌握的Linux命令 - -### 2.2 执行查看帮助命令 - -**表:man命令中常用按键以及用途** - -| 按键 | 用处 | -| --------- | ---------------------------------- | -| 空格键 | 向下翻一页 | -| PaGe down | 向下翻一页 | -| PaGe up | 向上翻一页 | -| home | 直接前往首页 | -| end | 直接前往尾页 | -| / | 从上至下搜索某个关键词,如“/linux” | -| ? | 从下至上搜索某个关键词,如“?linux” | -| n | 定位到下一个搜索到的关键词 | -| N | 定位到上一个搜索到的关键词 | -| q | 退出帮助文档 | - -### 2.3 常用系统工作命令 - -#### 1. echo命令 - -echo 命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。 - -```shell -[root@localhost ~]# echo hello -hello -[root@localhost ~]# echo $SHELL -/bin/bash -``` - -#### 2. date命令 - -date命令用于显示及设置系统的时间或日期。 - -**表: date命令中的参数以及作用** - -| 参数 | 作用 | -| ---- | -------------- | -| %t | 跳格[Tab键] | -| %H | 小时(00~23) | -| %I | 小时(00~12) | -| %M | 分钟(00~59) | -| %S | 秒(00~59) | -| %j | 今年中的第几天 | - -按照默认格式查看当前系统时间的date命令如下所示: - -```shell -[root@linuxprobe ~]# date -Mon Aug 24 16:11:23 CST 2017 -``` - -按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的date命令如下所示: - -```shell -[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S" -2017-08-24 16:29:12 -``` - -将系统的当前时间设置为2017年9月1日8点30分的date命令如下所示: - -```shell -[root@linuxprobe ~]# date -s "20170901 8:30:00" -Fri Sep 1 08:30:00 CST 2017 -``` - -再次使用date命令并按照默认的格式查看当前的系统时间,如下所示: - -```shell -[root@linuxprobe ~]# date -Fri Sep 1 08:30:01 CST 2017 -``` - -date命令中的参数%j可用来查看今天是当年中的第几天。 - -```shell -[root@linuxprobe ~]# date "+%j" -244 -``` - -#### 3. reboot 命令 - -reboot 命令用于重启系统,其格式为 reboot。 - -#### 4. poweroff命令 - -poweroff 命令用于关闭系统,其格式为 poweroff。 - -#### 5. wget命令 - -wget 命令用于在终端中下载网络文件,格式为“wget [参数] 下载地址”。 - -**表:wget 命令的参数以及作用** - -| 参数 | 作用 | -| ---- | ------------------------------------ | -| -b | 后台下载模式 | -| -P | 下载到指定目录 | -| -t | 最大尝试次数 | -| -c | 断点续传 | -| -p | 下载页面内所有资源,包括图片、视频等 | -| -r | 递归下载 | - -wget 命令递归下载 www.linuxprobe.com 网站内的所有页面数据以及文件,下载完后会自动保存到当前路径下一个名为 www.linuxprobe.com 的目录中。 - -```shell -[root@localhost ~]# wget -r -p http://www.linuxprobe.com -``` - -#### 6. ps 命令 - -ps 命令用于查看系统中的进程状态,格式为“ps [参数]”。 - -**表:ps 命令的参数以及作用** - -| 参数 | 作用 | -| ---- | ---------------------------------- | -| -a | 显示所有进程(包括其他用户的进程) | -| -u | 用户以及其他详细信息 | -| -x | 显示没有控制终端的进程 | - -在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。 - -> **R(运行)**:进程正在运行或在运行队列中等待。 -> -> **S(中断)**:进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。 -> -> **D(不可中断)**:进程不响应系统异步信号,即便用kill命令也不能将其中断。 -> -> **Z(僵死)**:进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。 -> -> **T(停止)**:进程收到停止信号后停止运行。 - -| USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND | -| ------------ | -------- | ------------ | ---------- | ------------------------ | -------------------------- | -------- | -------- | ------------ | ----------------- | -------------- | -| 进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 | - -```shell -USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND -root 1 0.0 0.6 128148 6736 ? Ss 09:41 0:03 /usr/lib/systemd -root 2 0.0 0.0 0 0 ? S 09:41 0:00 [kthreadd] -root 3 0.0 0.0 0 0 ? S 09:41 0:00 [ksoftirqd/0] -root 5 0.0 0.0 0 0 ? S< 09:41 0:00 [kworker/0:0H] -root 7 0.0 0.0 0 0 ? S 09:41 0:00 [migration/0] -root 8 0.0 0.0 0 0 ? S 09:41 0:00 [rcu_bh] -root 9 0.0 0.0 0 0 ? R 09:41 0:01 [rcu_sched] -root 10 0.0 0.0 0 0 ? S< 09:41 0:00 [lru-add-drain] -root 11 0.0 0.0 0 0 ? S 09:41 0:00 [watchdog/0] -root 13 0.0 0.0 0 0 ? S 09:41 0:00 [kdevtmpfs] -``` - -#### 7. top 命令 - -top 命令用于动态地监视进程活动与系统负载等信息,其格式为 top。 - -```shell -top - 10:59:52 up 1:18, 2 users, load average: 0.00, 0.01, 0.05 -Tasks: 90 total, 2 running, 88 sleeping, 0 stopped, 0 zombie -%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st -KiB Mem : 1015508 total, 586988 free, 116684 used, 311836 buff/cache -KiB Swap: 1048572 total, 1048572 free, 0 used. 730224 avail Mem - - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 1890 root 20 0 161840 2164 1552 R 0.7 0.2 0:00.18 top - 1000 root 20 0 573816 19080 6060 S 0.3 1.9 0:01.53 tuned - 1812 root 20 0 0 0 0 S 0.3 0.0 0:01.92 kworker/0:0 - 1 root 20 0 128148 6736 4216 S 0.0 0.7 0:03.38 systemd - 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd - 3 root 20 0 0 0 0 S 0.0 0.0 0:00.17 ksoftirqd/0 - 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H - 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 - 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh - 9 root 20 0 0 0 0 R 0.0 0.0 0:01.09 rcu_sched - 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-dr -``` - -top命令执行结果的前5行为系统整体的统计信息,其所代表的含义如下。 - -> 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。 -> -> 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。 -> -> 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着有97.1%的CPU处理器资源处于空闲。 -> -> 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。 -> -> 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。 - -#### 8. pidof 命令 - -pidof 命令用于查询某个指定服务进程的 PID 值,格式为“pidof \[参数][服务名称]”。 - -#### 9. kill命令 - -kill 命令用于终止某个指定 PID 的服务进程,格式为“kill \[参数][进程 PID]”。 - -#### 10. killall 命令 - -killall 命令用于终止某个指定名称的服务所对应的全部进程,格式为:“killall \[参数][服务名称]”。 - - - -### 2.4 系统状态检测命令 - -#### 1. ifconfig 命令 - -ifconfig命令用于获取网卡配置与网络状态等信息,格式为“ifconfig \[网络设备][参数]”。 - -#### 2. uname 命令 - -uname命令用于查看系统内核与系统版本等信息,格式为“uname [-a]”。 - -在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。 - -```shell -[root@linuxprobe ~]# uname -a -Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux -``` - -顺带一提,如果要查看当前系统版本的详细信息,则需要查看redhat-release文件,其命令以及相应的结果如下: - -```shell -[root@linuxprobe ~]# cat /etc/redhat-release -Red Hat Enterprise Linux Server release 7.0 (Maipo) -``` - -#### 3. uptime 命令 - -uptime用于查看系统的负载信息。 - -显示**当前系统时间**、**系统已运行时间**、**启用终端数量**以及**平均负载值**等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。 - -```shell -[root@linuxprobe ~]# uptime -22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18 -``` - -#### 4. free 命令 - -free 用于显示当前系统中内存的使用量信息,格式为“free [-h]”。 - -**swap**全称为swap place,即交换区,当内存不够的时候,被踢出的进程被暂时存储到交换区。当需要这条被踢出的进程的时候,就从交换区重新加载到内存,否则它不会主动交换到真实内存中。 - -**表:执行free -h命令后的输出信息** - -| | 内存总量 | 已用量 | 可用量 | 进程共享的内存量 | 磁盘缓存的内存量 | 缓存的内存量 | -| ------------------ | -------- | ------ | ------ | ---------------- | ---------------- | ------------ | -| | total | used | free | shared | buffers | cached | -| Mem: | 1.8G | 1.3G | 542M | 9.8M | 1.6M | 413M | -| -/+ buffers/cache: | | 869M | 957M | | | | -| Swap: | 2.0G | 0B | 2.0G | | | | - -#### 5. who 命令 - -who用于查看当前登入主机的用户终端信息,格式为“who [参数]”。 - -``` -[root@linuxprobe ~]# who -``` - -**表: 执行who命令的结果** - -| 登陆的用户名 | 终端设备 | 登陆到系统的时间 | -| ------------ | -------- | --------------------- | -| root | :0 | 2017-08-24 17:52 (:0) | -| root | pts/0 | 2017-08-24 17:52 (:0) | - -#### 6. last 命令 - -last 命令用于查看所有系统的登录记录,格式为“last [参数]”。 - -#### 7. history 命令 - -history命令用于显示历史执行过的命令,格式为“history [-c]”。 - -执行history命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。如果觉得1000不够用,还可以自义/etc/profile文件中的HISTSIZE变量值。在使用history命令时,如果使用-c参数则会清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令。 - -#### 8. sosreport 命令 - -sosreport命令用于收集系统配置及架构信息并输出诊断文档,格式为sosreport。 - - - -### 2.5 工作目录切换命令 - -#### 1. pwd 命令 - -#### 2. cd 命令 - -“cd -”命令返回到上一次所处的目录 - -#### 3. ls命令 - - - -### 2.6 文本文件编辑命令 - -#### 1. cat 命令 - -cat 命令用于查看纯文本文件(内容较少的),格式为“cat \[选项][文件]”。 - -- -n 带行号显示。 - -#### 2. more 命令 - -more 命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”。 可以使用空格键或回车 -键向下翻页。 - -#### 3.head 命令 - -head 命令用于查看纯文本文档的前 N 行,格式为“head \[选项][文件]”。 - -```shell -head -n 20 initial-setup-ks.cfg -``` - -#### 4. tail 命令 - -tail 命令用于查看纯文本文档的后 N 行或持续刷新内容,格式为“tail \[选项][文件]”。 - -```shell -head -n 20 initial-setup-ks.cfg -``` - -tail 命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为“tail -f 文件名”。 - -#### 5. tr 命令 - -tr 命令用于替换文本文件中的字符,格式为“tr \[原始字符][目标字符]”。 - -```shell -cat anaconda-ks.cfg | tr [a-z] [A-Z] -``` - -#### 6. wc 命令 - -wc 命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。 - -| 参数 | 作用 | -| ---- | ------------ | -| -l | 只显示行数 | -| -w | 只显示单词数 | -| -c | 只显示字节数 | - -#### 7. stat 命令 - -stat 命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。 - -```shell -stat anaconda-ks.cfg -``` - -#### 8. cut命令 - -cut 命令用于按“列”提取文本字符,格式为“cut [参数] 文本”。 - -- -f 参数来设置需要看的列数, -- -d 参数来设置**间隔符号** - -```shell -cut -d: -f1 /etc/passwd -``` - -#### 9. diff 命令 - -diff 命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”。 - -- 使用-c 参数来详细比较出多个文件的差异之处 -- 使用--brief 参数来确认两个文件是否不同 - -```shell -diff --brief diff_A.txt diff_B.txt -diff -c diff_A.txt diff_B.txt -``` - -### 2.7 文件目录管理命令 - -#### 1. touch 命令 - -touch 命令用于创建空白文件或**设置文件的时间**,格式为“touch \[选项][文件]”。 - - **表: touch命令的参数及其作用** - -| 参数 | 作用 | -| ---- | ------------------------- | -| -a | 仅修改“读取时间”(atime) | -| -m | 仅修改“修改时间”(mtime) | -| -d | 同时修改atime与mtime | - -```shell -touch -d "2017-05-04 15:44" anaconda-ks.cfg -``` - -#### 2. mkdir 命令 - -mkdir 命令用于创建空白的目录,格式为“mkdir [选项] 目录”。 - -- -p 参数来递归创建出具有嵌套叠层关系的文件目录 - -```shell -mkdir -p a/b/c/d/e -``` - -#### 3. cp 命令 - -cp 命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。 - -**表: cp命令的参数及其作用** - -| 参数 | 作用 | -| ---- | -------------------------------------------- | -| -p | 保留原始文件的属性 | -| -d | 若对象为“链接文件”,则保留该“链接文件”的属性 | -| -r | 递归持续复制(用于目录) | -| -i | 若目标文件存在则询问是否覆盖 | -| -a | 相当于-pdr(p、d、r为上述参数) | - -#### 4. mv 命令 - -mv 命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。 如果在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名: - -```shell -mv x.log linux.log -``` - -#### 5. rm 命令 - -rm 命令用于删除文件或目录,格式为“rm [选项] 文件”。 - -- -f 参数来强制删除 -- -r 参数递归删除文件夹 - -#### 6. dd 命令 - -dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。 - -**表: dd命令的参数及其作用** - -| 参数 | 作用 | -| ----- | -------------------- | -| if | 输入的文件名称 | -| of | 输出的文件名称 | -| bs | 设置每个“块”的大小 | -| count | 设置要复制“块”的个数 | - -用 dd 命令从/dev/zero 设备文件中取出一个大小为 560MB 的数据块,然后保存成名为 560_file 的文件 - -```shell -dd if=/dev/zero of=560_file count=1 bs=560M -``` - -在 Linux 系统中可以直接使用 dd 命令来压制出光盘镜像文件,将它变成一个可立即使用的 iso 镜像 - -```shell -dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso -``` - -#### 7. file命令 - -file 命令用于查看文件的类型,格式为“file 文件名”。 - -```shell -file anaconda-ks.cfg -``` - - - -### 2.8 打包压缩与搜索命令 - -#### 1. tar 命令 - -tar 命令用于对文件进行打包压缩或解压,格式为“tar \[选项][文件]”。 - -**表:tar命令的参数及其作用** - -| 参数 | 作用 | -| ---- | ---------------------- | -| -c | 创建压缩文件 | -| -x | 解开压缩文件 | -| -t | 查看压缩包内有哪些文件 | -| -z | 用Gzip压缩或解压 | -| -j | 用bzip2压缩或解压 | -| -v | 显示压缩或解压的过程 | -| -f | 目标文件名 | -| -p | 保留原始的权限与属性 | -| -P | 使用绝对路径来压缩 | -| -C | 指定解压到的目录 | - -常用打包命令 : “**tar -czvf 压缩包名称.tar.gz 要打包的目录**”; - -常用解压命令 :“**tar -xzvf 压缩包名称.tar.gz**”。 - - - -#### 2. grep 命令 - -grep 命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep \[选项][文件]”。 - -**表: grep命令的参数及其作用** - -| 参数 | 作用 | -| ---- | ---------------------------------------------- | -| -b | 将可执行文件(binary)当作文本文件(text)来搜索 | -| -c | 仅显示找到的行数 | -| -i | 忽略大小写 | -| -n | 显示行号 | -| -v | 反向选择——仅列出没有“关键词”的行。 | - -```shell -[root@localhost dic]# cat index.html |grep html -n -1: -3: -75: -``` - -#### 3. find命令 - -find 命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。 - -**表:find命令中的参数以及作用** - -| 参数 | 作用 | -| ------------------ | ------------------------------------------------------------ | -| -name | 匹配名称 | -| -perm | 匹配权限(mode为完全匹配,-mode为包含即可) | -| -user | 匹配所有者 | -| -group | 匹配所有组 | -| -mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) | -| -atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) | -| -ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) | -| -nouser | 匹配无所有者的文件 | -| -nogroup | 匹配无所有组的文件 | -| -newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 | -| --type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) | -| -size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) | -| -prune | 忽略某个目录 | -| -exec …… {}\; | 后面可跟用于进一步处理搜索结果的命令(下文会有演示) | - -获取到指定目录中所有以 host 开头的文件列表,可以执行如下命令: - -```shell -find /etc -name "host*" -print -``` - -如果要在整个系统中搜索权限中包括 SUID 权限的所有文件,只需使用-4000 即可: - -```shell -find / -perm -4000 -print -``` - - - -## 第三章 管道符、重定向与环境变量 - -### 3.1 输入输出重定向 - -> 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。 -> -> 标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。 -> -> 错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。 - -**对于输入重定向来讲,用到的符号及其作用如表3-1所示。** - -表3-1 输入重定向中用到的符号及其作用 - -| 符号 | 作用 | -| -------------------- | -------------------------------------------- | -| 命令 < 文件 | 将文件作为命令的标准输入 | -| 命令 << 分界符 | 从标准输入中读入,直到遇见分界符才停止 | -| 命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入并将标准输出到文件2 | - -**对于输出重定向来讲,用到的符号及其作用如表3-2所示。** - -表3-2 输出重定向中用到的符号及其作用 - -| 符号 | 作用 | -| ------------------------------------- | ------------------------------------------------------------ | -| 命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件的数据) | -| 命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) | -| 命令 >> 文件 | 将标准输出重定向到一个文件中(追加到原有内容的后面) | -| 命令 2>> 文件 | 将错误输出重定向到一个文件中(追加到原有内容的后面) | -| 命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写入到文件中(追加到原有内容的后面) | - -```shell -man bash > readme.txt -``` - -### 3.2 管道运算符 - -管道命令符的作用也可以用一句话来概括“**把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入**”。 - -### 3.3 命令通配符 - -- 星号(*)代表匹配零个或多个字符; -- 问号(?)代表匹配单个字符; -- 中括号内加上数字[0-9]代表匹配 0~9 之间的单个数字的字符; -- 而中括号内加上字母[abc]则是代表匹配 a、 b、 c 三个字符中的任意一个字符 - -```shell - ls -l /dev/sda* - ls -l /dev/sda? - ls -l /dev/sda[0-9] - ls -l /dev/sda[135] -``` - -### 3.4 常用的转义字符 - -> 反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。 -> -> 单引号(''):转义其中所有的变量为单纯的字符串。 -> -> 双引号(""):保留其中的变量属性,不进行转义处理。 -> -> 反引号(``):把其中的命令执行后返回结果。 - -```shell -[root@linuxprobe ~]# PRICE=5 -[root@linuxprobe ~]# echo "Price is $PRICE" -Price is 5 - -[root@linuxprobe ~]# echo "Price is \$$PRICE" -Price is $5 - -[root@linuxprobe ~]# echo `uname -a` -Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2017 -x86_64 x86_64 x86_64 GNU/Linux -``` - -### 3.5 重要的环境变量 - -表3-3 Linux系统中最重要的10个环境变量 - -| 变量名称 | 作用 | -| ------------ | -------------------------------- | -| HOME | 用户的主目录(即家目录) | -| SHELL | 用户在使用的Shell解释器名称 | -| HISTSIZE | 输出的历史命令记录条数 | -| HISTFILESIZE | 保存的历史命令记录条数 | -| MAIL | 邮件保存路径 | -| LANG | 系统语言、语系名称 | -| RANDOM | 生成一个随机数字 | -| PS1 | Bash解释器的提示符 | -| PATH | 定义解释器搜索用户执行命令的路径 | -| EDITOR | 用户默认的文本编辑器 | - -```shell - echo $HOME -``` - -设置一个名称为 WORKDIR 的变量 : - -```shell -[root@linuxprobe ~]# mkdir /home/workdir -[root@linuxprobe ~]# WORKDIR=/home/workdir -[root@linuxprobe ~]# cd $WORKDIR -[root@linuxprobe workdir]# pwd -/home/workdir -``` - -但是,这样的变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用。如果工作需要,可以使用 **export 命令**将其提升为全局变量 。 - - - -## 第四章 Vim 编辑器与 shell 脚本命令 - -### 4.1 vim编辑器 - -> 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。 -> -> 输入模式:正常的文本录入。 -> -> 末行模式:保存或退出文档,以及设置编辑环境。 - -表4-1 Vim中常用的命令 - -| 命令 | 作用 | -| ---- | -------------------------------------------------- | -| dd | 删除(剪切)光标所在整行 | -| 5dd | 删除(剪切)从光标处开始的5行 | -| yy | 复制光标所在整行 | -| 5yy | 复制从光标处开始的5行 | -| n | 显示搜索命令定位到的下一个字符串 | -| N | 显示搜索命令定位到的上一个字符串 | -| u | 撤销上一步的操作 | -| p | 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面 | - -表4-2 末行模式中可用的命令 - -| 命令 | 作用 | -| ------------- | ------------------------------------ | -| :w | 保存 | -| :q | 退出 | -| :q! | 强制退出(放弃对文档的修改内容) | -| :wq! | 强制保存退出 | -| :set nu | 显示行号 | -| :set nonu | 不显示行号 | -| :命令 | 执行该命令 | -| :整数 | 跳转到该行 | -| :s/one/two | 将当前光标所在行的第一个one替换成two | -| :s/one/two/g | 将当前光标所在行的所有one替换成two | -| :%s/one/two/g | 将全文中的所有one替换成two | -| ?字符串 | 在文本中从下至上搜索该字符串 | -| /字符串 | 在文本中从上至下搜索该字符串 | - -使用 a、 i、 o 三个键从命令模式切换到输入模式。其中, a 键与 i 键分别是在光标后面一位和光标当前位置切换到输入模式,而 **o 键则是在光标的下面再创建一个空行**,此时可敲击 a 键进入到编辑器的输入模式。 - -### 4.2 编写的脚本 - -#### 4.2.1 编写简单的脚本 - -```shell -[root@linuxprobe ~]# vim example.sh -#!/bin/bash -pwd -ls -al -``` - -#### 4.2.2 接受用户参数 - -- $0 对应的是当前 Shell 脚本程序的名称, -- $# 对应的是总共有几个参数, -- $* 对应的是所有位置的参数值, -- $? 对应的是显示上一次命令的执行返回值, -- 而$1、$2、 $3……则分别对应着第 N 个位置的参数值 - -```shell -[root@linuxprobe ~]# vim example.sh -#!/bin/bash -echo "当前脚本名称为$0" -echo "总共有$#个参数,分别是$*。" -echo "第1个参数为$1,第5个为$5。" -[root@linuxprobe ~]# sh example.sh one two three four five six -当前脚本名称为example.sh -总共有6个参数,分别是one two three four five six。 -第1个参数为one,第5个为five。 -``` - -**按照测试对象来划分,条件测试语句可以分为4种**: - -> 文件测试语句; -> -> 逻辑测试语句; -> -> 整数值比较语句; -> -> 字符串比较语句。 - -表4-3 文件测试所用的参数 - -| 操作符 | 作用 | -| ------ | -------------------------- | -| -d | 测试文件是否为目录类型 | -| -e | 测试文件是否存在 | -| -f | 判断是否为一般文件 | -| -r | 测试当前用户是否有权限读取 | -| -w | 测试当前用户是否有权限写入 | -| -x | 测试当前用户是否有权限执行 | - -表4-4 可用的整数比较运算符 - -| 操作符 | 作用 | -| ------ | -------------- | -| -eq | 是否等于 | -| -ne | 是否不等于 | -| -gt | 是否大于 | -| -lt | 是否小于 | -| -le | 是否等于或小于 | -| -ge | 是否大于或等于 | - -表4-5 常见的字符串比较运算符 - -| 操作符 | 作用 | -| ------ | ---------------------- | -| = | 比较字符串内容是否相同 | -| != | 比较字符串内容是否不同 | -| -z | 判断字符串内容是否为空 | - -下面使用文件测试语句来判断/etc/fstab是否为一个目录类型的文件,然后通过Shell解释器的内设$?变量显示上一条命令执行后的返回值。如果返回值为0,则目录存在;如果返回值为非零的值,则意味着目录不存在: - -```shell -[root@linuxprobe ~]# [ -d /etc/fstab ] -[root@linuxprobe ~]# echo $? -1 -``` - -## 4.3 流程控制语句 - -**结构**: - -```shell -# if单分支结构 -if 条件测试操作 - then 命令序列 -fi - - -# if双分支结构 -if 条件测试操作 - then 命令序列1 - else 命令序列2 -fi - - -# if多分支结构 -if 条件测试操作1 ; - then 命令序列1 -elif 条件测试操作2 ; - then 命令序列2 -else - 命令序列3 -fi - - -# for 条件循环语句 -for 变量名 in 取值列表 -do - 命令序列 -done - - -# while 条件循环语句 -while 条件测试操作 -do - 命令序列 -done - - -# case 条件测试语句 -case 变量值 in -模式1) - 命令序列1 - ;; -模式2) - 命令序列2 - ;; - ..... -*) - 默认命令序列 -esac -``` - -**示例**: - -```shell -# if单分支结构 -#!/bin/bash -DIR="/media/cdrom" -if [ ! -e $DIR ] -then -mkdir -p $DIR -fi - - -# if双分支结构 -#!/bin/bash -ping -c 3 -i 0.2 -W 3 $1 &> /dev/null -if [ $? -eq 0 ] -then -echo "Host $1 is On-line." -else -echo "Host $1 is Off-line." -fi - - -# if多分支结构 -#!/bin/bash -read -p "Enter your score(0-100):" GRADE -if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then -echo "$GRADE is Excellent" -elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then -echo "$GRADE is Pass" -else -echo "$GRADE is Fail" -fi - - -# for 条件循环语句 -#!/bin/bash -read -p "Enter The Users Password : " PASSWD -for UNAME in `cat users.txt` -do -id $UNAME &> /dev/null -if [ $? -eq 0 ] -then -echo "Already exists" -else -useradd $UNAME &> /dev/null -echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null -if [ $? -eq 0 ] -then -echo "$UNAME , Create success" -else -echo "$UNAME , Create failure" -fi -fi -done - - -# while 条件循环语句 -#!/bin/bash -PRICE=$(expr $RANDOM % 1000) -TIMES=0 -echo "商品实际价格为0-999之间,猜猜看是多少?" -while true -do -read -p "请输入您猜测的价格数目:" INT -let TIMES++ -if [ $INT -eq $PRICE ] ; then -echo "恭喜您答对了,实际价格是 $PRICE" -echo "您总共猜测了 $TIMES 次" -exit 0 -elif [ $INT -gt $PRICE ] ; then -echo "太高了!" -else -echo "太低了!" -fi -done - - -# case 条件测试语句 -#!/bin/bash -read -p "请输入一个字符,并按Enter键确认:" KEY -case "$KEY" in -[a-z]|[A-Z]) -echo "您输入的是 字母。" -;; -[0-9]) -echo "您输入的是 数字。" -;; -*) -echo "您输入的是 空格、功能键或其他控制字符。" -esac -``` - - - -## 4.4 计划任务服务程序 - -> 一次性计划任务:今晚11点30分开启网站服务。 -> -> 长期性计划任务:每周一的凌晨3点25分把/home/wwwroot目录打包备份为backup.tar.gz。 - -**一次性计划任务:** - -- 设置一次性计划任务 “at 时间” -- 查看已设置好但还未执行的一次性计划任务,可以使用“at -l”命令 -- 删除用“atrm 任务序号” - -```shell -[root@linuxprobe ~]# at 23:30 -at > systemctl restart httpd -at > 此处请同时按下Ctrl+d来结束编写计划任务 -job 3 at Mon Apr 27 23:30:00 2015 -[root@linuxprobe ~]# at -l -3 Mon Apr 27 23:30:00 2016 a root -[root@linuxprobe ~]# echo "systemctl restart httpd" | at 23:30 -job 4 at Mon Apr 27 23:30:00 2015 -[root@linuxprobe ~]# at -l -3 Mon Apr 27 23:30:00 2016 a root -4 Mon Apr 27 23:30:00 2016 a root -[root@linuxprobe ~]# atrm 3 -[root@linuxprobe ~]# at -l -4 Mon Apr 27 23:30:00 2016 a root -``` - -**周期性任务**: - -- 创建、编辑计划任务的命令为“crontab -e” -- 查看当前计划任务的命令为“crontab -l” -- 删除某条计划任务的命令为“crontab -r” -- 另外,如果您是以管理员的身份登录的系统,还可以在 crontab 命令中加上-u 参数来编辑他人的计划任务 - -表4-6 使用crond设置任务的参数字段说明 - -| 字段 | 说明 | -| ---- | ---------------------------------------- | -| 分钟 | 取值为0~59的整数 | -| 小时 | 取值为0~23的任意整数 | -| 日期 | 取值为1~31的任意整数 | -| 月份 | 取值为1~12的任意整数 | -| 星期 | 取值为0~7的任意整数,其中0与7均为星期日 | -| 命令 | 要执行的命令或程序脚本 | - -**在crond服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,如果不知道绝对路径,请用whereis命令进行查询** - -```shell -[root@linuxprobe ~]# crontab -e -no crontab for root - using an empty one -crontab: installing new crontab -[root@linuxprobe ~]# crontab -l -#假设在每周一、三、五的凌晨3点25分,都需要使用tar命令把某个网站的数据目录进行打包处理,使其作为一个备份文件。 -25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot - - -[root@linuxprobe ~]# whereis rm -rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz /usr/share/man/man1p/rm.1p.gz -[root@linuxprobe ~]# crontab -e -crontab: installing new crontab -[root@linuxprobe ~]# crontab -l -#每周一至周五的凌晨1点钟自动清空/tmp目录内的所有文件 -25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot -0 1 * * 1-5 /usr/bin/rm -rf /tmp/* -``` - -**计划任务中的“分”字段必须有数值,绝对不能为空或是*号,而“日”和“星期”字段不能同时使用,否则就会发生冲突。** - - - -## 第五章 用户身份与文件权限 - -### 5.1 用户身份与能力 - -> 管理员UID为0:系统的管理员用户。 -> -> 系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。 -> -> 普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。 - -#### 1. useradd 命令 - -useradd命令用于创建新的用户,格式为“useradd [选项] 用户名”。 - -可以使用useradd命令创建用户账户。使用该命令创建用户账户时,默认的用户家目录会被存放在/home目录中,默认的Shell解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。这些默认设置可以根据表5-1中的useradd命令参数自行修改。 - -表5-1 useradd命令中的用户参数以及作用 - -| 参数 | 作用 | -| ---- | ---------------------------------------- | -| -d | 指定用户的家目录(默认为/home/username) | -| -e | 账户的到期时间,格式为YYYY-MM-DD. | -| -u | 指定该用户的默认UID | -| -g | 指定一个初始的用户基本组(必须已存在) | -| -G | 指定一个或多个扩展用户组 | -| -N | 不创建与用户同名的基本用户组 | -| -s | 指定该用户的默认Shell解释器 | - -```shell -[root@linuxprobe ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe -[root@linuxprobe ~]# id linuxprobe -uid=8888(linuxprobe) gid=8888(linuxprobe) groups=8888(linuxprobe) -``` - -#### 2. groupadd 命令 - -groupadd 命令用于创建用户组,格式为“groupadd [选项] 群组名”。 - -#### 3. usermod 命令 - -usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。 - -前文曾反复强调,Linux系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。用户的信息保存在/etc/passwd文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息。 - -表5-2 usermod命令中的参数及作用 - -| 参数 | 作用 | -| ----- | ------------------------------------------------------------ | -| -c | 填写用户账户的备注信息 | -| -d -m | 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去 | -| -e | 账户的到期时间,格式为YYYY-MM-DD | -| -g | 变更所属用户组 | -| -G | 变更扩展用户组 | -| -L | 锁定用户禁止其登录系统 | -| -U | 解锁用户,允许其登录系统 | -| -s | 变更默认终端 | -| -u | 修改用户的UID | - -```shell -[root@linuxprobe ~]# usermod -u 8888 linuxprobe -[root@linuxprobe ~]# id linuxprobe -uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root) -``` - -#### 4. passwd 命令 - -passwd命令用于修改用户密码、过期时间、认证信息等,格式为“passwd \[选项][用户名]”。 - -表5-3 passwd命令中的参数以及作用 - -| 参数 | 作用 | -| ------- | ------------------------------------------------------------ | -| -l | 锁定用户,禁止其登录 | -| -u | 解除锁定,允许用户登录 | -| --stdin | 允许通过标准输入修改用户密码,如echo "NewPassWord" \| passwd --stdin Username | -| -d | 使该用户可用空密码登录系统 | -| -e | 强制用户在下次登录时修改密码 | -| -S | 显示用户的密码是否被锁定,以及密码所采用的加密算法名称 | - -```shell -[root@linuxprobe ~]# passwd -l linuxprobe -Locking password for user linuxprobe. -passwd: Success -[root@linuxprobe ~]# passwd -S linuxprobe -linuxprobe LK 2017-12-26 0 99999 7 -1 (Password locked.) -[root@linuxprobe ~]# passwd -u linuxprobe -Unlocking password for user linuxprobe. -passwd: Success -[root@linuxprobe ~]# passwd -S linuxprobe -linuxprobe PS 2017-12-26 0 99999 7 -1 (Password set, SHA512 crypt.) -``` - -#### 5. userdel 命令 - -userdel命令用于删除用户,格式为“userdel [选项] 用户名”。 - -表5-4 userdel命令的参数以及作用 - -| 参数 | 作用 | -| ---- | ------------------------ | -| -f | 强制删除用户 | -| -r | 同时删除用户及用户家目录 | - -### 5.2 文件权限与归属 - -> -:普通文件。 -> -> d:目录文件。 -> -> l:链接文件。 -> -> b:块设备文件。 -> -> c:字符设备文件。 -> -> p:管道文件。 - -

- -

- -### 5.3 文件的特殊权限 - -#### 5.3.1 SUID - -SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效) - -#### 5.3.2 SGID - -SGID主要实现如下两种功能: - -> 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置); -> -> 在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。 - -##### 1.chmod命令 - -chmod是一个非常实用的命令,能够用来设置文件或目录的**权限**,格式为“chmod [参数] 权限 文件或目录名称”。 - -##### 2.chown命令 - -chown设置文件或目录的**所有者和所属组**,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。 - -```shell -[root@linuxprobe ~]# chmod 760 test -[root@linuxprobe ~]# ls -l test --rwxrw----. 1 linuxprobe root 15 Feb 11 11:50 test -[root@linuxprobe ~]# chown root:bin test -[root@linuxprobe ~]# ls -l test --rwxrw----. 1 root bin 15 Feb 11 11:50 test -``` - -#### 5.3.3 SBIT - -SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。 - -### 5.4 文件的隐藏属性 - -#### 1. chattr命令 - -chattr命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。 - -表5-6 chattr命令中用于隐藏权限的参数及其作用 - -| 参数 | 作用 | -| ---- | ------------------------------------------------------------ | -| i | 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 | -| a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) | -| S | 文件内容在变更后立即同步到硬盘(sync) | -| s | 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) | -| A | 不再修改这个文件或目录的最后访问时间(atime) | -| b | 不再修改文件或目录的存取时间 | -| D | 检查压缩文件中的错误 | -| d | 使用dump命令备份时忽略本文件/目录 | -| c | 默认将文件或目录进行压缩 | -| u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 | -| t | 让文件系统支持尾部合并(tail-merging) | -| x | 可以直接访问压缩文件中的内容 | - -```shell -[root@linuxprobe ~]# echo "for Test" > linuxprobe -[root@linuxprobe ~]# chattr +a linuxprobe -[root@linuxprobe ~]# rm linuxprobe -rm: remove regular file ‘linuxprobe’? y -rm: cannot remove ‘linuxprobe’: Operation not permitted -``` - -#### 2. lsattr 命令 - -lsattr命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。 - -```shell -[root@linuxprobe ~]# lsattr linuxprobe ------a---------- linuxprobe -[root@linuxprobe ~]# chattr -a linuxprobe -[root@linuxprobe ~]# lsattr linuxprobe ----------------- linuxprobe -[root@linuxprobe ~]# rm linuxprobe -rm: remove regular file ‘linuxprobe’? y -``` - -### 5.5 文件访问控制列表 - -#### 5.5.1 setfacl 命令 - -setfacl 命令用于管理文件的 ACL 规则,格式为“setfacl [参数] 文件名称”。文件的 ACL提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用 setfacl 命令可以**针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制**。其中: - -- 针对目录文件需要使用-R 递归参数; -- 针对普通文件则使用-m 参数; -- 如果想要删除某个文件的 ACL,则可以使用-b 参数。 - -下面来设置用户在/root 目录上的权限: - -```shell -[root@linuxprobe ~]# setfacl -Rm u:linuxprobe:rwx /root -``` - -#### 5.5.2 getfacl 命令 - -getfacl命令用于显示文件上设置的ACL信息,格式为“getfacl 文件名称”。 - -### 5.6 su命令与sudo服务 - -su 命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,**即把环境变量信息也变更为新用户的相应信息**,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)。 - -sudo 命令用于给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务,格式为“sudo [参数] 命令名称”。 - -表5-7 sudo服务中的可用参数以及作用 - -| 参数 | 作用 | -| ---------------- | ------------------------------------------------------ | -| -h | 列出帮助信息 | -| -l | 列出当前用户可执行的命令 | -| -u 用户名或UID值 | 以指定的用户身份执行命令 | -| -k | 清空密码的有效时间,下次执行sudo时需要再次进行密码验证 | -| -b | 在后台执行指定的命令 | -| -p | 更改询问密码的提示语 | - -## 第六章 存储结构与磁盘划分 - -### 6.1 一切从“/”开始 - -表6-1 Linux系统中常见的目录名称以及相应内容 - -| 目录名称 | 应放置文件的内容 | -| ----------- | --------------------------------------------------------- | -| /boot | 开机所需文件—内核、开机菜单以及所需配置文件等 | -| /dev | 以文件形式存放任何设备与接口 | -| /etc | 配置文件 | -| /home | 用户主目录 | -| /bin | 存放单用户模式下还可以操作的命令 | -| /lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 | -| /sbin | 开机过程中需要的命令 | -| /media | 用于挂载设备文件的目录 | -| /opt | 放置第三方的软件 | -| /root | 系统管理员的家目录 | -| /srv | 一些网络服务的数据文件目录 | -| /tmp | 任何人均可使用的“共享”临时目录 | -| /proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 | -| /usr/local | 用户自行安装的软件 | -| /usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 | -| /usr/share | 帮助与说明文件,也可放置共享文件 | -| /var | 主要存放经常变化的文件,如日志 | -| /lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 | - -### 6.2 物理设备的命名规则 - -表6-2 常见的硬件设备及其文件名称 - -| 硬件设备 | 文件名称 | -| ------------- | ------------------ | -| IDE设备 | /dev/hd[a-d] | -| SCSI/SATA/U盘 | /dev/sd[a-p] | -| 软驱 | /dev/fd[0-1] | -| 打印机 | /dev/lp[0-15] | -| 光驱 | /dev/cdrom | -| 鼠标 | /dev/mouse | -| 磁带机 | /dev/st0或/dev/ht0 | - -由于现在的IDE设备已经很少见了,所以一般的硬盘设备都会是以“/dev/sd”开头的。而一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也很有讲究: - -> 主分区或扩展分区的编号从1开始,到4结束; -> -> 逻辑分区从编号5开始。 - -

- -### 6.4 挂载硬件设备 - -当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。 - -#### 1.挂载 - -mount命令用于挂载文件系统,格式为“mount 文件系统 挂载目录”。 - -表6-3 mount命令中的参数以及作用 - -| 参数 | 作用 | -| ---- | ------------------------------------------------------------ | -| -a | 挂载所有在/etc/fstab中定义的文件系统,会在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。 | -| -t | 指定文件系统的类型。 对于比较新的Linux系统来讲,一般不需要使用-t参数来指定文件系统的类型 | - -```shell -[root@linuxprobe ~]# mount /dev/sdb2 /backup -``` - -#### 2.永久挂载 - -如果想让硬件设备和目录永久地进行自动关联,就必须把挂载信息按照指定的填写格式“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”(各字段的意义见表6-4)写入到**/etc/fstab**文件中。 - -表6-4 用于挂载信息的指定填写格式中,各字段所表示的意义 - -| 字段 | 意义 | -| -------- | ------------------------------------------------------------ | -| 设备文件 | 一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier) | -| 挂载目录 | 指定要挂载到的目录,需在挂载前创建好 | -| 格式类型 | 指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等 | -| 权限选项 | 若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async | -| 是否备份 | 若为1则开机后使用dump进行磁盘备份,为0则不备份 | -| 是否自检 | 若为1则开机后自动进行磁盘自检,为0则不自检 | - -如果想将文件系统为ext4的硬件设备/dev/sdb2在开机后自动挂载到/backup目录上,并保持默认权限且无需开机自检,就需要在/etc/fstab文件中写入下面的信息,这样在系统重启后也会成功挂载。 - -```shell -[root@linuxprobe ~]# vim /etc/fstab -# -# /etc/fstab -# Created by anaconda on Wed May 4 19:26:23 2017 -# -# Accessible filesystems, by reference, are maintained under '/dev/disk' -# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info -# -/dev/mapper/rhel-root / xfs defaults 1 1 -UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2 -/dev/mapper/rhel-swap swap swap defaults 0 0 -/dev/cdrom /media/cdrom iso9660 defaults 0 0 -# 永久挂载 -/dev/sdb2 /backup ext4 defaults 0 0 -``` - -#### 3.撤消挂载 - -umount命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”。 - -```shell -[root@linuxprobe ~]# umount /dev/sdb2 -``` - -### 6.8 软硬链接连接方式 - -**硬链接(hard link)**:可以将它理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。 - -**软链接(也称为符号链接[symbolic link])**:仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷方式”具有一样的性质。 - -#### 1. ln 命令 - -ln命令用于创建链接文件,格式为“ln [选项] 目标”。 - -表6-6 ln命令中可用的参数以及作用 - -| 参数 | 作用 | -| ---- | -------------------------------------------------- | -| -s | 创建“符号链接”(如果不带-s参数,则默认创建硬链接) | -| -f | 强制创建文件或目录的链接 | -| -i | 覆盖前先询问 | -| -v | 显示创建链接的过程 | - -```shell -# 软连接 -[root@linuxprobe ~]# echo "Welcome to linuxprobe.com" > readme.txt -[root@linuxprobe ~]# ln -s readme.txt readit.txt -[root@linuxprobe ~]# cat readme.txt -Welcome to linuxprobe.com -[root@linuxprobe ~]# cat readit.txt -Welcome to linuxprobe.com -[root@linuxprobe ~]# ls -l readme.txt --rw-r--r-- 1 root root 26 Jan 11 00:08 readme.txt -[root@linuxprobe ~]# rm -f readme.txt -[root@linuxprobe ~]# cat readit.txt -cat: readit.txt: No such file or directory - -# 硬连接 删除原文件后 链接文件任然有效 -[root@linuxprobe ~]# echo "Welcome to linuxprobe.com" > readme.txt -[root@linuxprobe ~]# ln readme.txt readit.txt -[root@linuxprobe ~]# cat readme.txt -Welcome to linuxprobe.com -[root@linuxprobe ~]# cat readit.txt -Welcome to linuxprobe.com -[root@linuxprobe ~]# ls -l readme.txt --rw-r--r-- 2 root root 26 Jan 11 00:13 readme.txt -[root@linuxprobe ~]# rm -f readme.txt -[root@linuxprobe ~]# cat readit.txt -Welcome to linuxprobe.com -``` - -## 第八章 Iptables与Firewalld防火墙 - -### 8.2 iptables - -#### 8.2.1 策略与规则链 - -iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下: - -> 在进行路由选择前处理数据包(PREROUTING); -> -> 处理流入的数据包(INPUT); -> -> 处理流出的数据包(OUTPUT); -> -> 处理转发的数据包(FORWARD); -> -> 在进行路由选择后处理数据包(POSTROUTING)。 - -#### 8.2.2 基本的命令参数 - -表8-1 iptables中常用的参数以及作用 - -| 参数 | 作用 | -| ----------- | -------------------------------------------- | -| -P | 设置默认策略 | -| -F | 清空规则链 | -| -L | 查看规则链 | -| -A | 在规则链的末尾加入新规则 | -| -I num | 在规则链的头部加入新规则 | -| -D num | 删除某一条规则 | -| -s | 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外 | -| -d | 匹配目标地址 | -| -i 网卡名称 | 匹配从这块网卡流入的数据 | -| -o 网卡名称 | 匹配从这块网卡流出的数据 | -| -p | 匹配协议,如TCP、UDP、ICMP | -| --dport num | 匹配目标端口号 | -| --sport num | 匹配来源端口号 | - -```shell -# 在iptables命令后添加-L参数查看已有的防火墙规则链: -iptables -L -# 在iptables命令后添加-F参数清空已有的防火墙规则链: -iptables -F -# 把INPUT规则链的默认策略设置为拒绝: -iptables -P INPUT DROP -# 向INPUT链中添加允许ICMP流量进入的策略规则: -iptables -I INPUT -p icmp -j ACCEPT -# 删除INPUT规则链中刚刚加入的那条策略(允许ICMP流量),并把默认策略设置为允许: -iptables -D INPUT 1 -iptables -P INPUT ACCEPT -# 将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量: -iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT -iptables -A INPUT -p tcp --dport 22 -j REJECT -# 向INPUT规则链中添加拒绝所有人访问本机12345端口的策略规则: -iptables -I INPUT -p tcp --dport 12345 -j REJECT -iptables -I INPUT -p udp --dport 12345 -j REJECT -# 向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口(Web服务)的策略规则: -ptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT -# 向INPUT规则链中添加拒绝所有主机访问本机1000~1024端口的策略规则: -iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT -iptables -A INPUT -p udp --dport 1000:1024 -j REJECT -``` - -### 8.3 Firewalld - -表8-2 firewalld中常用的区域名称及策略规则 - -| 区域 | 默认规则策略 | -| -------- | ------------------------------------------------------------ | -| trusted | 允许所有的数据包 | -| home | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量 | -| internal | 等同于home区域 | -| work | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量 | -| public | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量 | -| external | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 | -| dmz | 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量 | -| block | 拒绝流入的流量,除非与流出的流量相关 | -| drop | 拒绝流入的流量,除非与流出的流量相关 | - -#### 8.3.1 终端管理工具 - -表8-3 firewall-cmd命令中使用的参数以及作用 - -| 参数 | 作用 | -| ----------------------------- | ---------------------------------------------------- | -| --get-default-zone | 查询默认的区域名称 | -| --set-default-zone=<区域名称> | 设置默认的区域,使其永久生效 | -| --get-zones | 显示可用的区域 | -| --get-services | 显示预先定义的服务 | -| --get-active-zones | 显示当前正在使用的区域与网卡名称 | -| --add-source= | 将源自此IP或子网的流量导向指定的区域 | -| --remove-source= | 不再将源自此IP或子网的流量导向某个指定区域 | -| --add-interface=<网卡名称> | 将源自该网卡的所有流量都导向某个指定区域 | -| --change-interface=<网卡名称> | 将某个网卡与区域进行关联 | -| --list-all | 显示当前区域的网卡配置参数、资源、端口以及服务等信息 | -| --list-all-zones | 显示所有区域的网卡配置参数、资源、端口以及服务等信息 | -| --add-service=<服务名> | 设置默认区域允许该服务的流量 | -| --add-port=<端口号/协议> | 设置默认区域允许该端口的流量 | -| --remove-service=<服务名> | 设置默认区域不再允许该服务的流量 | -| --remove-port=<端口号/协议> | 设置默认区域不再允许该端口的流量 | -| --reload | 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则 | -| --panic-on | 开启应急状况模式 | -| --panic-off | 关闭应急状况模式 | diff --git a/pictures/RabbitMQ-访问限制.png b/pictures/RabbitMQ-访问限制.png new file mode 100644 index 0000000000000000000000000000000000000000..784b0574cbda4c5df8d6500815ad01490fe81bdf GIT binary patch literal 11038 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 literal 0 HcmV?d00001 diff --git a/pictures/rabbitmq-架构.jpg b/pictures/rabbitmq-架构.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a26cd51fdc8c10fd2dda3726ae49b21d70692845 GIT binary patch literal 39876 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 E7s_2pn*aa+ literal 0 HcmV?d00001 diff --git a/pictures/rabbitmq-管控台.png b/pictures/rabbitmq-管控台.png new file mode 100644 index 0000000000000000000000000000000000000000..c864ad7681ef77e33a58ea903ae09c552131cb84 GIT binary patch literal 19872 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 Z+MdC*WcRmY9dINakoqDoRw=3<@PDHO%jW<9 literal 0 HcmV?d00001 diff --git a/pictures/大数据技术栈.xmind b/pictures/大数据技术栈.xmind deleted file mode 100644 index 3f28a1757ca5b3cd3aad88f8e83c80dd92b9b431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178538 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%0Ddqf+9Icam?H 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 XmxlOuZ2$ns@5>wn0J!|F008`ds5FbE diff --git a/pictures/线程完整生命周期.jpg b/pictures/线程完整生命周期.jpg new file mode 100644 index 0000000000000000000000000000000000000000..74383f7feb60722b5f289bb8ce960b4641853b25 GIT binary patch literal 66114 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ν|8|d(9br+rC+I@Hg6hOp{UU3ZV@YBSv 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 literal 0 HcmV?d00001