第一章 Centos 简介与安装
第一节 :Centos 简介
Centos作为主流的一种Linux操作系统,以后java1234课程中,比如后期讲Redis,以及部署一些项目,会把Centos作为服务器操作系统,我们选用Centos,主要是免费,以及稳定。

Centos详细介绍,请参考 百度百科

第二节 :VMware 虚拟机安装
我们一般用户使用的是windows ,那如何装一个Centos呢,我们一般学习的话,是搞一个VM虚拟机,
在虚拟机里安装一个Centos操作系统来学习,当然正式部署的话 我们一般是从阿里云或者西部数码购买服务器的时候,
选择Centos,那就是一个现成的系统了。

我们这边提供下64位的VM12 安装包: http://pan.baidu.com/s/1bpzoXQZ

我们双击压缩包

下一步








要激活码呵呵我随便百度下,然后贴了个 5A02H-AU243-TZJ49-GTC7K-3C61N

第三节 :在 VM 虚拟机中安装 Centos 操作系统
首先我们要下载 Centos
https://www.centos.org/ 这个是Centos官方 最新版本 7
https://www.centos.org/download/
提供有 DVD安装版本 完整版 以及Min版;
我们为了方便在虚拟机中安装 我们要下载DVD版本,由于是国外线路 比较慢,我们一般是建议下载国内镜像。
有很多科研机构 院校 大型互联网IT公司都提供有镜像下载,我个人推荐 阿里云镜像 https://mirrors.aliyun.com/centos/7/isos/x86_64/
下载那个 DVD版本即可。
我们打开之前安装的VM,
点击 “创建新的虚拟机”


我们选 典型 安装 简单点 然后下一步:

我们稍后安装操作系统 ,点下一步:

这里选 Linux 然后下拉 选CentOS 64位,然后下一步

这里我们选择下虚拟机的位置 (不要太复杂);

默认 下一步:

点完成,


OK 至此 一个类似没有操作系统的空壳“机器”安装好了;
接下来,我们在这个“机器”上安装下 Centos操作系统;
在安装操作系统之前 我们来给这个“机器”搞下配置;

双击这些配置项,进入配置界面:

这里有个CD/DVD要配置下:

选择使用ISO镜像,要选择我们下载的Centos操作系统的文件;
以及网络适配器要改下:

改成“桥接模式”,这样可以使我们的真是机器和虚拟机能通信;
接下来 我们点击 VM里的 “开启此虚拟机”来安装Centos操作系统

https://jingyan.baidu.com/article/fc07f98976710e12ffe519de.html

选第一个 安装;

按 “Enter”,开始安装程序;执行一会会出现如下,进入图形界面配置:

我们选中文简体,然后 点“继续”:

这里 假如有 感叹号的地方 要双击进去配置下 然后点“开始安装”:


这里要给最好权限用户 Root 设置下密码 正式环境要复杂点 我们学习的话 简单点的 123456 即可;
然后再等个大概10分钟,让它慢慢安装吧;

安装完后,点下 “重新启动”;

进入系统后,收入用户名Root 以及密码123456 即可进入系统:



OK 至此 Centos在虚拟机中安装成功 接ip下来就是学习下这个系统;

第四节 :XShell 安装
这里之所以是查看下IP ,是我们后面要建一个Centos远程工具Xshell 连接Centos的时候,需要IP地址,所以我们这里先
学会查看虚拟机里的Centos7的IP地址
首先我们登录操作系统 用户名root 密码 123456r
然后我们输入ip查询命名 ip addr

发现 ens33 没有 inet 这个属性,那么就没法通过IP地址连接虚拟机。
接着来查看ens33网卡的配置: s v 注vi意vi后面加空格
vi是Linux内置的文本编辑器命令 打开文件vi的意思(配置网络命令vi/etc/sysconfig/network-scripts/ifcfg-IFACE)

从配置清单中可以发现 CentOS 7 默认是不启动网卡的(ONBOOT=no)。
把这一项改为YES(ONBOOT=yes),

然后按 Esc 退出 再出入命令 :wq 再按Enter即可 (备注 :wq 是保存然后退出的意思 后面会专门讲下vi)s
然后重启网络服务: sudo service network restart

然后我们再输入 ip addr 命令

这里 inet属性显示了 虚拟机里的IP 192.168.1.107 (你们的可能和我不一样)

Xshell就是一个远程控制Centos的软件;(用XShell比较方便,试用的都知道,界面也人性化)
详细介绍请看 百度百科
我随便百度下载了一个中文版的 给下地址 http://pan.baidu.com/s/1qXGPqaS
下面我们来安装下这个工具:
双击exe

点下一步:

选 免费的 然后下一步:(免费的功能足够用了)

点接受,然后下一步:

选一个位置:然后下一步:


下一步:

安装:

OK 点完成;

这里我们要新建一个连接:

点新建:


这里我们输入名称,主机地址 协议 ssh 端口 22 不用改;

我们再保存下 连接主机的用户名和密码:

然后点 确定:

选中 连接:

这样我们就连上了 192.168.1.107 虚拟机的Centos了。我们通过这个工具,能更方便的管理多台服务器;

第二章 文件处理命令
第一节 :命令格式
第二节 :常见目录介绍
我们先切换到系统根目录 / 看看根目录下有哪些目录
[root@localhost ~]# cd /
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[root@localhost /]#

这里首先看下 根目录/ 下的 bin 和 sbin;
在user下也有bin和sbin
[root@localhost /]# ls usr/
bin games lib libexec sbin src
etc include lib64 local share tmp
[root@localhost /]#

根目录下的bin和sbin,usr目录下的bin和sbin,
这四个目录都是用来保存系统命令的。

bin:
bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。

/usr/bin:
主 要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。

/sbin:
主 要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。

/usr/sbin:

放置一些网路管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等

bin目录下的命令普通用户和root用户都可以执行,
但是sbin下的命令只有root用户可以执行;

/boot目录,是启动目录,存的是启动相关的文件
该目录下不要乱存东西;

/dev设备文件保存目录
/etc配置文件保存目录
/home普通用户的家目录
/lib系统库保存目录
/mnt系统挂载目录
/media挂载目录
/root超级用户的家目录
/tmp临时目录
/proc直接写入内存的,虚拟文件系统
/sys直接写入内存的,虚拟文件系统
/var系统相关文档内容

第三节 :查询目录内容 ls 命令

首先解释下这块, root代表当前登录用户,localhost代表主机名, ~代表当前主机目录,#代表用户权限 #表示超级用户,$表示普通用户;
查询目录中内容命令 ls (list缩写)
格式 ls [选项] [文件或目录]
选项:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
超级用户root默认的当前目录是 root目录
我们可以用pwd命名(Print Working Directory 打印当前工作目录)看到

我们打印下当前目录下文件信息:
[root@localhost ~]# ls
anaconda-ks.cfg
只有一个文件
假如我们要列出所有文件 用 ls -a 把隐藏文件也显示出来
[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_logout .bashrc .tcshrc
… .bash_history .bash_profile .cshrc
多了一些文件
我们也可以看其他目录的文件:
[root@localhost ~]# ls /etc/
adjtime modprobe.d
aliases modules-load.d
aliases.db motd
alternatives mtab
anacrontab my.cnf
asound.conf my.cnf.d
audisp NetworkManager
audit networks
同样也可以看具体某个文件
[root@localhost ~]# ls -l /etc/vconsole.conf
-rw-r–r--. 1 root root 37 6月 10 05:23 /etc/vconsole.conf
我们用 -l 或者 -la 组合 列出详细信息;

[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1237 6月 10 05:24 anaconda-ks.cfg
[root@localhost ~]# ls -la
总用量 24
dr-xr-x—. 2 root root 135 6月 11 21:13 .
dr-xr-xr-x. 17 root root 224 6月 10 05:23 …
-rw-------. 1 root root 1237 6月 10 05:24 anaconda-ks.cfg
-rw-------. 1 root root 0 6月 11 21:13 .bash_history
-rw-r–r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r–r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r–r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r–r--. 1 root root 100 12月 29 2013 .cshrc
-rw-r–r--. 1 root root 129 12月 29 2013 .tcshrc
[root@localhost ~]#
这里第一列 比如 dr-xr-xr-x. 代表文件类型以及所有者,所属组以及其他者权限
第一位d代表文件类型 常见的有 - 文件 d目录 | 软件链接文件
后面9位 每3位一个组 分别是 所有者u 所属组g 以及 其他者o的权限
权限分三种 r读 w写 x执行
比如 dr-xr-xr-x 这个目录 所有者 所属组 以及其他者 都有 读和执行权限;
比如 -rw------- 这个文件 所有者有读写权限 所属组以及其他者没有权限;
第二列 那个数字 是 硬链接次数 后面再说;
第三列 root 是 所有者;
第四列 root 是 所属组;
第五列 是文件大小;假如看不惯 可用 ls -lh
[root@localhost ~]# ls -lh
总用量 4.0K
-rw-------. 1 root root 1.3K 6月 10 05:24 anaconda-ks.cfg
第六列的日期是该文件最后一次修改时间;
最后一列 是文件名称;
查看目录属性 要加 -d
[root@localhost ~]# ls -ld /etc/
drwxr-xr-x. 78 root root 8192 6月 13 15:50 /etc/
[root@localhost ~]#
查看文件的inode属性 类似 主键 唯一识别文件的Id 用 -i
[root@localhost ~]# ls -li
总用量 4
33574979 -rw-------. 1 root root 1237 6月 10 05:24 anaconda-ks.cfg
[root@localhost ~]#
33574979 就是inode属性

第四节 :目录处理命令
创建目录 mkdir
删除空目录 rmdir
删除文件或目录 rm -rf
-r 删除目录
-f 强制删除
复制命令
cp [选项] [源文件或目录] [目标目录]
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr
剪切或改名命令:mv (move)
mv [原文件或目录] [目标目录]
linux中 关于目录 有几个重要概念
一个是 / 根目录 还有一个当前用户的家目录 比如 root用户的家目录是 /root 普通用户的家目录是/home/xxx 下

root登录 默认家目录 是root 我们这里先用 cd … 进入 / 根目录
[root@localhost ~]# cd …
[root@localhost /]#

然后我们看下 根目录 / 下有哪些目录
[root@localhost /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@localhost /]#

我们用 cd 回到家目录
[root@localhost /]# cd
[root@localhost ~]#

创建目录命令 mkdir (make directories)
比如在/root 下建一个 书籍目录
[root@localhost ~]# mkdir 书籍
[root@localhost ~]# ls
anaconda-ks.cfg 书籍
[root@localhost ~]#

假如我们要递归创建目录和文件
[root@localhost ~]# mkdir 书籍2/java编程思想
mkdir: 无法创建目录"书籍2/java编程思想": 没有那个文件或目录
发现失败了 默认不准递归创建 要递归创建的话 家-p
[root@localhost ~]# mkdir -p 书籍2/java编程思想
[root@localhost ~]# ls
anaconda-ks.cfg 书籍 书籍2
[root@localhost ~]# ls /root/书籍2/
java编程思想
[root@localhost ~]#

切换所在目录,cd (change directory)

简化操作
cd ~ 进行当前用户的家目录
cd
cd - 进入上次目录
cd … 进入上一级目录
cd . 进入当前目录

我们先进入 /root/书籍2/ 目录
然后cd ~ 回到家目录 /root/
然后 cd - 进入上次目录 也就是 /root/书籍2/ 目录
再cd… 进入 /root/目录
cd .没啥意义(注意cd后面要加个空格);
[root@localhost ~]# cd /root/书籍2/
[root@localhost 书籍2]# cd ~
[root@localhost ~]# cd -
/root/书籍2
[root@localhost 书籍2]# cd …
[root@localhost ~]# cd.
-bash: cd.: 未找到命令
[root@localhost ~]# cd .
[root@localhost ~]#

目录补全以及命名补全 tag键
比如 切换目录 /usr 假如记不清楚 直接 /u 然后 tag键,则自动补全;
[root@localhost ~]# cd .
[root@localhost ~]# cd /usr/
[root@localhost usr]#

比如要输入一些命令 useradd 假如记不清出了
直接输入 user 然后tab键
[root@localhost ~]# user
useradd userdel usermod usernetctl users
[root@localhost ~]# useradd
会把所有user开头的命令都显示出来;

pwd命令(print working directory)打印工作目录
就是打印当前位置
[root@localhost ~]# pwd
/root
[root@localhost ~]#

删除空目录: rmdir (remove empty directories)
rmdir [目录名]
我们删除root下的空目录 书籍 试下
[root@localhost ~]# ls
anaconda-ks.cfg 书籍 书籍2
[root@localhost ~]# rmdir 书籍/
[root@localhost ~]# ls
anaconda-ks.cfg 书籍2
[root@localhost ~]#
发现没问题
我们删除 书籍2目录时,
[root@localhost ~]# rmdir 书籍2/
rmdir: 删除 “书籍2/” 失败: 目录非空
[root@localhost ~]#
报错了,因为 书籍2 目录 非空;
这里的话 假如要删除 书籍2 目录 我们需要先把书籍2里面的文件或者目录先删除,然后才能删除书籍2目录,
这个是非常不现实的,所以 rmdir命令了解即可,以后基本不用的。

删除文件或目录:rm (remove)
rm -rf [文件或目录]
选项:
-r 删除目录
-f 强制
我们用 touch命令新建一个空文件
然后用rm命令删除
[root@localhost ~]# touch java牛
[root@localhost ~]# ls
anaconda-ks.cfg java牛 书籍2
[root@localhost ~]# rm java牛
rm:是否删除普通空文件 “java牛”?n
[root@localhost ~]# ls
anaconda-ks.cfg java牛 书籍2
[root@localhost ~]# rm java牛
rm:是否删除普通空文件 “java牛”?y
[root@localhost ~]# ls
anaconda-ks.cfg 书籍2
[root@localhost ~]#
删除文件会提醒是否删除,输入n 不删除 输入y 删除;
假如我们删除 书籍2 目录
[root@localhost ~]# rm 书籍2/
rm: 无法删除"书籍2/": 是一个目录
报错,假如要用rm删除目录,必须 加 -r
[root@localhost ~]# rm -r 书籍2/
rm:是否进入目录"书籍2/"? y
rm:是否删除目录 “书籍2/java编程思想”?y
rm:是否删除目录 “书籍2/”?y
[root@localhost ~]# ls
anaconda-ks.cfg
依然提示我们是否要删除,假如有一万个文件 那得输入y到手麻;
我们用 mk -rf 来强制删除 无需提醒
[root@localhost ~]# mkdir -p 书籍2/java编程思想
[root@localhost ~]# ls
anaconda-ks.cfg 书籍2
[root@localhost ~]# rm -rf 书籍2/
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]#
这样方便很多 直截了当;以后用删除 就用 rm -rf 命令即可;

复制命令:cp (copy)
cp [选项] [源文件或目录] [目标目录]
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr
我们复制下文件
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# cp anaconda-ks.cfg /tmp/abc
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# ls /tmp/
abc
ks-script-p0Ci4J
systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r
systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt
systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy
systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX
systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0
systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl
yum.log
把 root下的anaconda-ks.cfg复制到了 tmp下 并且重名为 abc
假如 cp anaconda-ks.cfg /tmp/abc 不加文件名 则新文件名称不变
[root@localhost ~]# cp anaconda-ks.cfg /tmp/
[root@localhost ~]# ls /tmp/
abc
anaconda-ks.cfg
ks-script-p0Ci4J
systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r
systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt
systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy
systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX
systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0
systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl
yum.log

假如复制目录:
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# mkdir -p 书籍2/java编程思想
[root@localhost ~]# ls
anaconda-ks.cfg 书籍2
[root@localhost ~]# cp 书籍2/ /tmp/
cp: 略过目录"书籍2/"
我们需要加 -r
[root@localhost ~]# cp -r 书籍2/ /tmp/
[root@localhost ~]# ls /tmp/
abc
anaconda-ks.cfg
ks-script-p0Ci4J
systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r
systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt
systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy
systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX
systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0
systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl
yum.log
书籍2
这里我们用 ls -l 或者缩写命令 ll 来看下 文件的详细信息:

时间不一样;第二个是复制文件的当前时间;
假如我们需要把目录或者文件的属性一起复制 我们加 -a命名;

剪切或改名命令:mv (move)
mv [原文件或目录] [目标目录]
我们把 root下的 书籍2 剪切到 tmp 下 并且重命名
[root@localhost ~]# ls
anaconda-ks.cfg 书籍2
[root@localhost ~]# mv 书籍2 /tmp/书籍2哈哈
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# ls /tmp/
abc
anaconda-ks.cfg
ks-script-p0Ci4J
systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r
systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt
systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy
systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX
systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0
systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl
yum.log
书籍2
书籍2哈哈

假如在同一个目录 那就是重新命令操作了
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# mkdir -p 书籍2/java.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 书籍2
[root@localhost ~]# mv 书籍2/ 牛逼/
[root@localhost ~]# ls
anaconda-ks.cfg 牛逼
[root@localhost ~]# ls 牛逼/
java.pdf
[root@localhost ~]#

第五节 :链接命令
链接命令:ln (link)
ln -s [源文件] [目标文件]
功能描述:生成链接文件
选项: -s 创建软链接
链接命令:ln (link)
ln -s [源文件] [目标文件]
功能描述:生成链接文件
选项: -s 创建软链接

硬链接特征:
1,拥有相同的i节点和存储block块,可以看作是同一个文件;
2,可通过i节点识别;
3,不能跨分区;
4,不能针对目录使用;

我们把/root下的anaconda-ks.cfg创建一个硬链接到/tmp下
[root@localhost ~]# ls
anaconda-ks.cfg 牛逼
[root@localhost ~]# ln /root/anaconda-ks.cfg /tmp/ana.hard
[root@localhost ~]# ll
总用量 4
-rw-------. 2 root root 1237 6月 10 05:24 anaconda-ks.cfg
drwxr-xr-x. 3 root root 22 6月 18 11:03 牛逼
[root@localhost ~]# ll /tmp/
总用量 16
-rw-------. 1 root root 1237 6月 18 10:12 abc
-rw-------. 1 root root 1237 6月 18 10:16 anaconda-ks.cfg
-rw-------. 2 root root 1237 6月 10 05:24 ana.hard
-rwx------. 1 root root 836 6月 10 05:24 ks-script-p0Ci4J
drwx------. 3 root root 17 6月 12 23:50 systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r
drwx------. 3 root root 17 6月 17 17:42 systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt
drwx------. 3 root root 17 6月 16 04:51 systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy
drwx------. 3 root root 17 6月 10 05:26 systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX
drwx------. 3 root root 17 6月 14 06:38 systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0
drwx------. 3 root root 17 6月 11 04:08 systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl
-rw-------. 1 root root 0 6月 10 05:19 yum.log
drwxr-xr-x. 3 root root 30 6月 18 10:24 书籍2
drwxr-xr-x. 3 root root 30 6月 18 10:24 书籍2哈哈
[root@localhost ~]#

看着基本一样;
我们用vi 打开文件 vi /root/anaconda-ks.cfg

我们随便修改下这个文件 (不要担心,这个文件是安装时候产生的,就算删除了也没事)
然后 esc :wq 保存并且退出;

我们打开/tmp下的ana.hard文件

假如我们修改 硬链接里的内容,anaconda-ks.cfg里的同样修改;(大伙自己测试下)
这里说明同一个文件相当于有两个入口,我们可以查看下两个入口的inode;
[root@localhost ~]# ls -i /root/anaconda-ks.cfg /tmp/ana.hard
33574979 /root/anaconda-ks.cfg 33574979 /tmp/ana.hard
[root@localhost ~]#
我们发现 inode节点号一样;

就算我们把其中一个删除,也不会影响文件另外一个的访问;(大伙如果舍不得删除这个文件,可以自己新建文件测试)

硬链接的一些特性,比如不能跨分区,不能针对目录使用,以及容易误操作文件。所以我们一般不推荐使用,我们推荐使用软链接,类似windows里的快捷方式;

软链接特征:
1,类似Windows快捷方式;
2,软链接拥有自己的I节点和Block块,但是数据块中只保存原有文件的文件名和I节点号,并没有实际的文件数据;
3,lrwxrwxrwx l 软链接 软链接文件权限都为 rwxrwxrwx
4,修改任意文件,另一个都改变;
5,删除原文件,软链接不能使用;

软链接和硬链接的重要区别是 假如把原文件删除,软链接则不能用,但是假如是硬链接,删除原文件的话,不影响硬链的使用;

我们在root下 用touch命令新建一个a文件
然后用echo命令追加点内容进入 ,再用cat命令打印下内容
[root@localhost ~]# touch a
[root@localhost ~]# echo 1111 >> /root/a
[root@localhost ~]# cat /root/a
1111
[root@localhost ~]#

然后在/tmp/下创建一个软链接
ln -s /root/a /tmp/a.soft

我们来看下这个两个文件的inode节点
[root@localhost ~]# ll -i /tmp/a.soft /root/a
33575024 -rw-r–r--. 1 root root 5 6月 19 16:01 /root/a
17066258 lrwxrwxrwx. 1 root root 7 6月 19 16:41 /tmp/a.soft -> /root/a

我们发现是不一样的,我们可以把软链接理解成是指向原文件的引用 存的仅仅是地址,这样,假如原文件删除了,那软链接就没啥用了。但是这里 我们无论是修改两个文件的任意一个,另外一个始终能看到最终结果;
[root@localhost ~]# echo 2222 >> /root/a
[root@localhost ~]# cat /root/a
1111
2222
[root@localhost ~]# cat /tmp/a.soft
1111
2222
[root@localhost ~]#

我们修改了原文件a 然后我们打开软链接 能看到结果
[root@localhost ~]# echo 3333 >> /tmp/a.soft
[root@localhost ~]# cat /tmp/a.soft
1111
2222
3333
[root@localhost ~]# cat /root/a
1111
2222
3333
[root@localhost ~]#
我们修改软链接,用a.soft 和a打开 都能看到最终结果;

假如我们删除原文件
[root@localhost ~]# rm -rf /root/a
[root@localhost ~]# cat /tmp/a.soft
cat: /tmp/a.soft: 没有那个文件或目录
[root@localhost ~]#
我们打开软链接 报错。

第三章 文件搜索命令
第一节 :locate 命令
命令语法:locate 文件名
在后台数据库中按文件名搜索,搜索速度更快
updatedb
更新数据库
配置文件地址:/etc/updatedb.conf
locate 优点是 搜索速度快 ,缺点是只能按文件名搜索;
locate命令
locate 文件名
在后台数据库中按文件名搜索,搜索速度更快

/var/lib/mlocate
#locate命令所搜索的后台数据库

updatedb
更新数据库

locate搜索速度比较快;

[root@localhost ~]# ls
222 anaconda-ks.cfg 牛逼
[root@localhost ~]# locate 牛
-bash: locate: 未找到命令

我们用locate命令的时候 发现 为找到命令,我们用Yum命令远程安装下locate
[root@localhost ~]# yum -y install mlocate
已加载插件:fastestmirror
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/4): extras/7/x86_64/primary_db | 168 kB 00:00
(2/4): base/7/x86_64/group_gz | 155 kB 00:02
(3/4): base/7/x86_64/primary_db | 5.6 MB 00:04
updates/7/x86_64/primary_db FAILED
http://mirrors.nju.edu.cn/centos/7.3.1611/updates/x86_64/repodata/01ced03ac066a40f0d778eda08908656cc9f5b2f6433274ed482582f9d86c88a-primary.sqlite.bz2: [Errno 12] Timeout on http://mirrors.nju.edu.cn/centos/7.3.1611/updates/x86_64/repodata/01ced03ac066a40f0d778eda08908656cc9f5b2f6433274ed482582f9d86c88a-primary.sqlite.bz2: (28, ‘Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds’)
正在尝试其它镜像。
(4/4): updates/7/x86_64/primary_db | 5.7 MB 00:01
Determining fastest mirrors

  • base: mirrors.163.com
  • extras: mirrors.163.com
  • updates: mirrors.163.com
    正在解决依赖关系
    –> 正在检查事务
    —> 软件包 mlocate.x86_64.0.0.26-6.el7 将被 安装
    –> 解决依赖关系完成

依赖关系解决

============================================================================
Package 架构 版本 源 大小

正在安装:
mlocate x86_64 0.26-6.el7 base 113 k

事务概要

安装 1 软件包

总下载量:113 k
安装大小:378 k
Downloading packages:
警告:/var/cache/yum/x86_64/7/base/packages/mlocate-0.26-6.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
mlocate-0.26-6.el7.x86_64.rpm 的公钥尚未安装
mlocate-0.26-6.el7.x86_64.rpm | 113 kB 00:01
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
用户ID : “CentOS-7 Key (CentOS 7 Official Signing Key) security@centos.org”
指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
软件包 : centos-release-7-3.1611.el7.centos.x86_64 (@anaconda)
来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : mlocate-0.26-6.el7.x86_64 1/1
验证中 : mlocate-0.26-6.el7.x86_64 1/1

已安装:
mlocate.x86_64 0:0.26-6.el7

完毕!

这样就安装完了。

[root@localhost ~]# locate 牛
/root/牛逼
/root/牛逼/java.pdf

这样 我们就能测试通过;

假如我们新建一个文件,然后再搜索
[root@localhost ~]# touch 牛牛
[root@localhost ~]# ls
222 anaconda-ks.cfg 牛逼 牛牛
[root@localhost ~]# locate 牛
/root/牛逼
/root/牛逼/java.pdf

我们发现 搜索不了。
原因是 locate命令搜索的是 /var/lib/mlocate 下的mlocate.db数据库
这个数据库不是实时更新的,所以我们需要更新下数据库;

我们updatedb下,然后再搜索
[root@localhost ~]# updatedb
[root@localhost ~]# locate 牛
/root/牛牛
/root/牛逼
/root/牛逼/java.pdf
[root@localhost ~]#
结果就出来了;

locate优点是 搜索速度快 ,缺点是只能按文件名搜索;

更新数据库配置文件/etc/updatedb.conf配置文件
我们用vi打开下
[root@localhost ~]# vi /etc/updatedb.conf

PRUNE_BIND_MOUNTS = “yes”
PRUNEFS = “9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs”
PRUNENAMES = “.git .hg .svn”
PRUNEPATHS = “/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp”

~
“/etc/updatedb.conf” 4L, 513C

这里PRUNE_BIND_MOUNTS="yes"开启搜索限制
PRUNEFS = 搜索时,不搜索的文件系统
PRUNENAMES = 搜索时,不搜索的文件类型
PRUNEPATHS = 搜索时,不搜索的路径

比如这里的tmp路径的文件 默认配置是搜索不到的;

第二节 :find 命令
命令格式:find [搜索范围] [搜索条件]
如果我们需要进行模糊查询,我们要使用通配符;

  • 匹配任意内容
    ?匹配任意一个字符
    []匹配任意一个中括号的字符
    find [搜索范围] [搜索条件]
    #搜索文件
    find / -name install.log
    #避免大范围搜索,会非常耗费系统资源
    #find是在系统当中搜索符合条件的文件名。如果需要匹配,
    使用通配符匹配,通配符是完全匹配。
    [root@localhost ~]# ls
    222 anaconda-ks.cfg 牛逼 牛牛
    [root@localhost ~]# find / -name 牛牛
    /root/牛牛
    /tmp/牛牛
    [root@localhost ~]# find / -name 牛
    [root@localhost ~]#
    我们发现 搜索牛牛 能搜索到结果,但是搜索牛,么有结果,
    所以说 find搜索 是完全匹配搜索;

如果我们需要进行模糊查询,我们要使用通配符;

  • 匹配任意内容
    ?匹配任意一个字符
    []匹配任意一个中括号的字符

我们创建一些文件来测试
[root@localhost ~]# ls
222 anaconda-ks.cfg 牛逼 牛逼2 牛牛 牛牛2
[root@localhost ~]#

[root@localhost ~]# find / -name “牛*”
/root/牛逼
/root/牛牛
/root/牛逼2
/root/牛牛2
/tmp/牛牛
查找开头是 “牛”的所有文件

[root@localhost ~]# find /root -name “牛?”
/root/牛逼
/root/牛牛
查找root目录下,所以“牛”开头然后后面接一位字符的文件

[root@localhost ~]# find /root -name “牛[牛逼]2”
/root/牛逼2
/root/牛牛2
[root@localhost ~]#
查找首尾分别是“牛”“2”,中间字符串是“牛逼”当中的任一字符的文件

find /root -iname anaconda-ks.cfg
不区分大小写
find /root -user root
根据所有者搜索
find /root -nouser
查找没有所有者的文件

[root@localhost ~]# find /root -iname Anaconda-ks.cfg
/root/anaconda-ks.cfg
[root@localhost ~]# find /root -name Anaconda-ks.cfg
[root@localhost ~]#
linux是严格区分大小写的,假如用iname 查询时不区分大小写;

[root@localhost ~]# find /root -user root
/root
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
/root/.cshrc
/root/.tcshrc
/root/anaconda-ks.cfg
/root/.bash_history
/root/牛逼
/root/牛逼/java.pdf
/root/222
/root/牛牛
/root/牛逼2
/root/牛牛2
root用户的所有文件

find /var/log/ -mtime +10
查找10天前修改的文件

-10 10天内修改的文件
10 10天当前修改的文件
+10 10天前修改的文件

atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容

[root@localhost ~]# find /var/log -mtime +10
/var/log/ppp
查找10天前的日志

find /root -size 2k
查找文件大小是1到2KB的文件(进一法)
-2k 小于2KB的文件
2k 等于2KB的文件
+2k 大于2KB的文件

find /root -inum 262422
查找i节点是262422的文件

[root@localhost ~]# find /root -size 2k
/root/anaconda-ks.cfg
/root/.bash_history
[root@localhost ~]# find /root -size -2k
/root
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
/root/.cshrc
/root/.tcshrc
/root/牛逼
/root/牛逼/java.pdf
/root/222
/root/牛牛
/root/牛逼2
/root/牛牛2
[root@localhost ~]# find /root -size +2k
[root@localhost ~]#

[root@localhost ~]# ls -i
33575031 222 801541 牛逼 33575023 牛牛
33574979 anaconda-ks.cfg 33605192 牛逼2 33605193 牛牛2
[root@localhost ~]# find /root -inum 33575023
/root/牛牛
[root@localhost ~]#
根据i节点来搜索

find /etc -size +20k -a -size -50k
查找/etc/目录下,大于20KB并且小于50KB的文件

-a and 逻辑与 ,两个条件都满足
-o or 逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh{} \ ;
查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息;
-exec/-ok 命令{} ; 对搜索结果执行操作;

[root@localhost ~]# find /etc -size +20k -a -size -50k
/etc/selinux/targeted/active/modules/100/apache/hll
/etc/selinux/targeted/active/modules/100/init/hll
/etc/selinux/targeted/active/modules/100/staff/cil
/etc/selinux/targeted/active/modules/100/staff/hll
/etc/selinux/targeted/active/modules/100/sysadm/cil
/etc/selinux/targeted/active/modules/100/sysadm/hll
/etc/selinux/targeted/active/modules/100/unprivuser/hll
/etc/selinux/targeted/active/modules/100/virt/hll
/etc/selinux/targeted/active/modules/100/xguest/hll
/etc/selinux/targeted/active/modules/100/xserver/hll
/etc/selinux/targeted/contexts/files/file_contexts.homedirs.bin
/etc/sysconfig/network-scripts/network-functions-ipv6
/etc/ld.so.cache
/etc/dnsmasq.conf
/etc/postfix/access
/etc/postfix/header_checks
/etc/postfix/main.cf
[root@localhost ~]# find /etc -size +20k -a -size -50k -exec ls -lh {};
find: 遗漏“-exec”的参数
[root@localhost ~]# find /etc -size +20k -a -size -50k -exec ls -lh {} ;
-rw-r–r--. 1 root root 25K 11月 12 2016 /etc/selinux/targeted/active/modules/100/apache/hll
-rw-r–r--. 1 root root 31K 11月 12 2016 /etc/selinux/targeted/active/modules/100/init/hll
-rw-r–r--. 1 root root 21K 11月 12 2016 /etc/selinux/targeted/active/modules/100/staff/cil
-rw-r–r--. 1 root root 36K 11月 12 2016 /etc/selinux/targeted/active/modules/100/staff/hll
-rw-r–r--. 1 root root 30K 11月 12 2016 /etc/selinux/targeted/active/modules/100/sysadm/cil
-rw-r–r--. 1 root root 46K 11月 12 2016 /etc/selinux/targeted/active/modules/100/sysadm/hll
-rw-r–r--. 1 root root 31K 11月 12 2016 /etc/selinux/targeted/active/modules/100/unprivuser/hll
-rw-r–r--. 1 root root 29K 11月 12 2016 /etc/selinux/targeted/active/modules/100/virt/hll
-rw-r–r--. 1 root root 21K 11月 12 2016 /etc/selinux/targeted/active/modules/100/xguest/hll
-rw-r–r--. 1 root root 30K 11月 12 2016 /etc/selinux/targeted/active/modules/100/xserver/hll
-rw-r–r--. 1 root root 44K 11月 12 2016 /etc/selinux/targeted/contexts/files/file_contexts.homedirs.bin
-rw-r–r--. 1 root root 27K 9月 12 2016 /etc/sysconfig/network-scripts/network-functions-ipv6
-rw-r–r--. 1 root root 27K 6月 10 05:21 /etc/ld.so.cache
-rw-r–r--. 1 root root 25K 11月 12 2016 /etc/dnsmasq.conf
-rw-r–r--. 1 root root 21K 6月 10 2014 /etc/postfix/access
-rw-r–r--. 1 root root 22K 6月 10 2014 /etc/postfix/header_checks
-rw-r–r--. 1 root root 27K 6月 10 2014 /etc/postfix/main.cf
[root@localhost ~]#

第三节 :grep 命令
grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串
grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除指定字符串

[root@localhost ~]# grep “work” anaconda-ks.cfg

Network information

network --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
network --hostname=localhost.localdomain
[root@localhost ~]#
我们可以找到anaconda-ks.cfg 文件中含有"work"字符串的行

[root@localhost ~]# grep -v “work” anaconda-ks.cfg
#version=DEVEL
#sdfsddsd
System authorization information
auth --enableshadow --passalgo=sha512

Use CDROM installation media

cdrom

Use graphical install

graphical

Run the Setup Agent on first boot

firstboot --enable

Keyboard layouts

keyboard --vckeymap=cn --xlayouts=‘cn’

System language

lang zh_CN.UTF-8

Root password

rootpw --iscrypted 666G7eVijyXAp8DMSXi$bKh/vjEbEdH.4WmgXjhpw08/jYzjGDgaTnc8ZNFfUREgFX0Kepz39OwQsjhlFBaYUPwUUuI.RcsCAgkqrWeSJ1

System services

services --disabled=“chronyd”

System timezone

timezone Asia/Shanghai --isUtc --nontp

System bootloader configuration

bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm

Partition clearing information

clearpart --none --initlabel

%packages
@^minimal
@core
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb=‘auto’

%end

%anaconda
pwpolicy root --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy luks --minlen=6 --minquality=50 --notstrict --nochanges --notempty
%end
[root@localhost ~]#
加了 -v 就查找不包含"work"的行;

第四节 :命令搜索命令 whereis 与 which
whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
-b :只查找可执行文件位置
-m:只查找帮助文件
which 文件名
搜索命令所在路径及别名
Centos之命令搜索命令whereis与which

whereis 命令名
#搜索命令所在路径及帮助文档所在位置
选项:
-b :只查找可执行文件位置
-m:只查找帮助文件

[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@localhost ~]# whereis -b ls
ls: /usr/bin/ls
[root@localhost ~]# whereis -m ls
ls: /usr/share/man/man1/ls.1.gz
我们可以查到ls命令的位置以及帮助文档的位置

which 文件名
搜索命令所在路径及别名
[root@localhost ~]# which ls
alias ls=‘ls --color=auto’
/usr/bin/ls

相比 ,多了个别名;

第四章 压缩和解压缩命令
第一节 :压缩和解压命令
.zip .gz .bz2 .tar.gz .tar.bz2

第二节 :压缩命令和解压缩命令
zip 格式压缩
zip 压缩文件名 源文件
压缩文件
zip -r 压缩文件名 源目录
压缩目录
.zip 解压缩
unzip 压缩文件
解压缩.zip 文件
.gz 格式压缩
gzip 源文件 (压缩文件名)
压缩为.gz 格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件
压缩为.gz 格式,源文件保留
gzip -r 目录
压缩目录下所有的子文件,但是不能压缩目录
.gz 格式解压缩
gzip -d 压缩文件
解压缩文件
gunzip 压缩文件
解压缩文件

.bz2 格式压缩
bzip2 源文件
压缩为.bz2 格式,不保留源文件
bzip2 -k 源文件
压缩之后保留源文件
.bz2 格式解压缩
bzip2 -d 压缩文件
bunzip2 压缩文件
#解压缩,-k 保留压缩文件

打包命令 tar
tar -cvf 打包文件名 源文件
选项:
-c :打包
-v :显示过程
-f :指定打包后的文件名
解打包命令
tar -xvf 打包文件名
选项:
-x : 解打包
-v :显示过程
-f :指定打包后的文件名

.tar.gz 压缩格式
其实.tar.gz 格式是先打包为.tar 格式,再压缩为.gz 格式
tar -zcvf 压缩名.tar.gz 源文件
选项:
-z :压缩为.tar.gz 格式
tar -zxvf 压缩包名.tar.gz
选项:
-x:解压缩.tar.gz 格式
.tar.bz2 压缩格式
其实.tar.bz2 格式是先打包为.tar 格式,再压缩为.bz2 格式
tar -jcvf 压缩名.tar.bz2 源文件
选项:
-j :压缩为.tar.bz2 格式
tar -jxvf 压缩包名.tar.bz2
选项:
-x:解压缩.tar.bz2 格式
tar -jxvf java 书籍.tar.bz2 -C /tmp/ 解压到指定位置
tar -zcvf /tmp/test.tar.gz java 书籍 java 牛逼 压缩多文件到指定目录
tar -ztvf /tmp/test.tar.gz 查看压缩包(不解压)

常用压缩格式:.zip .gz .bz2
常用压缩格式:.tar.gz .tar.bz2

zip格式压缩
zip压缩文件名 源文件
压缩文件

zip -r 压缩文件名 源目录
压缩目录

[root@localhost ~]# zip 牛牛.zip 牛牛
-bash: zip: 未找到命令
我们压缩 牛牛
报错 zip 未找到命令
我们用yum命令安装下
yum -y install zip

[root@localhost ~]# zip 牛牛.zip 牛牛
adding: 牛牛 (stored 0%)
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 牛牛.zip
[root@localhost ~]#

成功用zip命令压缩了牛牛文件

[root@localhost ~]# mkdir 书籍
[root@localhost ~]# touch 书籍/java.pdf
[root@localhost ~]# touch 书籍/php.pdf
[root@localhost ~]# touch 书籍/asp.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 牛牛.zip 书籍
[root@localhost ~]# ls /root/书籍/
asp.pdf java.pdf php.pdf
[root@localhost ~]#
我们新建了一个书籍目录 然后目录下放了几个文件

[root@localhost ~]# zip -r 书籍.zip 书籍
adding: 书籍/ (stored 0%)
adding: 书籍/java.pdf (stored 0%)
adding: 书籍/php.pdf (stored 0%)
adding: 书籍/asp.pdf (stored 0%)
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 牛牛.zip 书籍 书籍.zip
[root@localhost ~]#
压缩目录

.zip解压缩
unzip 压缩文件
解压缩.zip文件

我们先删除原文件
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 牛牛.zip 书籍 书籍.zip
[root@localhost ~]# rm -rf 牛牛
[root@localhost ~]# rm -rf 书籍
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛.zip 书籍.zip
[root@localhost ~]#

[root@localhost ~]# unzip 牛牛.zip
-bash: unzip: 未找到命令
发现unzip没安装
安装下
yum install -y unzip

[root@localhost ~]# unzip 牛牛.zip
Archive: 牛牛.zip
extracting: 牛牛
[root@localhost ~]# unzip 书籍.zip
Archive: 书籍.zip
creating: 书籍/
extracting: 书籍/java.pdf
extracting: 书籍/php.pdf
extracting: 书籍/asp.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 牛牛.zip 书籍 书籍.zip
[root@localhost ~]#
解压成功

.gz格式压缩
gzip 源文件
压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件
压缩为.gz格式,源文件保留
例如:gzip -c 书籍 > 书籍.gz
gzip -r 目录
压缩目录下所有的子文件,但是不能压缩目录

[root@localhost ~]# rm -rf *.zip
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍
[root@localhost ~]#
先删除zip
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍
[root@localhost ~]# gzip 牛牛
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛.gz 书籍
[root@localhost ~]#
压缩文件

[root@localhost ~]# gzip -r 书籍
[root@localhost ~]# ls
aaa anaconda-ks.cfg 牛牛.gz 书籍
[root@localhost ~]# ls 书籍/
asp.pdf.gz java.pdf.gz php.pdf.gz
[root@localhost ~]#
压缩目录

.gz格式解压缩
gzip -d 压缩文件
解压缩文件
gunzip 压缩文件
解压缩文件
[root@localhost ~]# gzip -d 牛牛.gz
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍
[root@localhost ~]#

用gunzip 牛牛.gz 效果一样
[root@localhost ~]# gunzip -r 书籍
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍
[root@localhost ~]# ls 书籍/
asp.pdf java.pdf php.pdf
[root@localhost ~]#
解压目录

.bz2格式压缩
bzip2 源文件
压缩为.bz2格式,不保留源文件
bzip2 -k 源文件
压缩之后保留源文件

注意:bzip2命令不能压缩目录

[root@localhost ~]# bzip2 牛牛
-bash: bzip2: 未找到命令
[root@localhost ~]# yum -y install bzip2
命令不存在,我们就安装下;
[root@localhost ~]# bzip2 牛牛
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛.bz2 书籍
[root@localhost ~]#
源文件没了,假如要保留源文件 bzip2 -k 牛牛

.bz2格式解压缩
bzip2 -d 压缩文件
#解压缩,-k保留压缩文件

bunzip2 压缩文件
#解压缩,-k 保留压缩文件

[root@localhost ~]# bzip2 -d 牛牛.bz2
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍
[root@localhost ~]#

打包命令tar
tar -cvf 打包文件名 源文件
选项:
-c :打包
-v :显示过程
-f :指定打包后的文件名
例如
tar -cvf 牛牛.tar 牛牛

[root@localhost ~]#
[root@localhost ~]# tar -cvf 书籍.tar 书籍
书籍/
书籍/java.pdf
书籍/php.pdf
书籍/asp.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar
[root@localhost ~]#
打包书籍目录

[root@localhost ~]# gzip 书籍.tar
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar.gz
[root@localhost ~]#
把书籍.tar压缩gz

[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar.gz
[root@localhost ~]# gzip -d 书籍.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar
[root@localhost ~]# bzip2 书籍.tar
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar.bz2
[root@localhost ~]#
把书籍.tar压缩成bzip2

解打包命令
tar -xvf 打包文件名
选项:
-x : 解打包
例如:
tar -xvf 书籍.tar

[root@localhost ~]# bzip2 -d 书籍.tar.bz2
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar
[root@localhost ~]# tar -xvf 书籍.tar
书籍/
书籍/java.pdf
书籍/php.pdf
书籍/asp.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar
[root@localhost ~]# ls 书籍/
asp.pdf java.pdf php.pdf
[root@localhost ~]#

.tar.gz压缩格式
其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式
tar -zcvf 压缩名.tar.gz 源文件
选项:
-z :压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
选项:
-x:解压缩.tar.gz格式

.tar.bz2压缩格式
其实.tar.bz2格式是先打包为.tar格式,再压缩为.bz2格式
tar -jcvf 压缩名.tar.bz2 源文件
选项:
-j :压缩为.tar.bz2格式
tar -zxvf 压缩包名.tar.bz2
选项:
-x:解压缩.tar.bz2格式

[root@localhost ~]# rm -rf 书籍.tar
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍
[root@localhost ~]# tar -zcvf 书籍.tar.gz 书籍
书籍/
书籍/java.pdf
书籍/php.pdf
书籍/asp.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar.gz
[root@localhost ~]#
压缩tar.gz

[root@localhost ~]# rm -rf 书籍
[root@localhost ~]# tar -zxvf 书籍.tar.gz
书籍/
书籍/java.pdf
书籍/php.pdf
书籍/asp.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar.gz
[root@localhost ~]#
解压缩tar.gz

[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar.gz
[root@localhost ~]# tar -jcvf 书籍.tar.bz2 书籍
书籍/
书籍/java.pdf
书籍/php.pdf
书籍/asp.pdf
[root@localhost ~]# ls
anaconda-ks.cfg 牛牛 书籍 书籍.tar.bz2 书籍.tar.gz
[root@localhost ~]#
压缩tar.bz2

[root@localhost ~]# tar -jxvf 书籍.tar.bz2 -C /tmp/
书籍/
书籍/java.pdf
书籍/php.pdf
书籍/asp.pdf
[root@localhost ~]# ls /tmp/
ks-script-NSb_Xk
systemd-private-7113799c2057477ab6ee497261ae7a13-vmtoolsd.service-pskbnQ
systemd-private-b37fa00ba37a4d119a61ec71ea2c7116-vmtoolsd.service-t7gach
systemd-private-dec75be7d6a64814b5ba654e693bd541-vmtoolsd.service-xituVu
yum.log
书籍
[root@localhost ~]# ls /tmp/书籍/
asp.pdf java.pdf php.pdf
[root@localhost ~]#
解压缩到其他目录

压缩多文件到指定目录
[root@localhost ~]# tar -zcvf /tmp/test.tar.gz 书籍 anaconda-ks.cfg
书籍/
书籍/java.pdf
书籍/php.pdf
书籍/asp.pdf
anaconda-ks.cfg
[root@localhost ~]# ls /tmp/
ks-script-NSb_Xk
systemd-private-7113799c2057477ab6ee497261ae7a13-vmtoolsd.service-pskbnQ
systemd-private-b37fa00ba37a4d119a61ec71ea2c7116-vmtoolsd.service-t7gach
systemd-private-dec75be7d6a64814b5ba654e693bd541-vmtoolsd.service-xituVu
test.tar.gz
yum.log
书籍
[root@localhost ~]#

查看压缩包(不解压)
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# tar -ztvf test.tar.gz
drwxr-xr-x root/root 0 2017-06-22 14:53 书籍/
-rw-r–r-- root/root 0 2017-06-22 14:42 书籍/java.pdf
-rw-r–r-- root/root 0 2017-06-22 14:42 书籍/php.pdf
-rw-r–r-- root/root 0 2017-06-22 14:42 书籍/asp.pdf
-rw------- root/root 1235 2017-06-22 01:34 anaconda-ks.cfg
[root@localhost tmp]#
第五章 关机和重启命令
第一节 :关机命令
shutdown命令
shutdown [选项] 时间
-c:取消前一个关机命令
-h:关机
-r:重启

[root@localhost ~]# date
2017年 06月 21日 星期三 15:48:33 CST
[root@localhost ~]# shutdown -r 17:30
Shutdown scheduled for 三 2017-06-21 17:30:00 CST, use ‘shutdown -c’ to cancel.
[root@localhost ~]#

可以指定重启时间

[root@localhost ~]# shutdown -c

Broadcast message from root@localhost.localdomain (Wed 2017-06-21 15:50:40 CST):

The system shutdown has been cancelled at Wed 2017-06-21 15:51:40 CST!

[root@localhost ~]#

用-c终止

shutdown -r now 是立即重启
shutdown -h now 是立即关机

其他关机命令 (不太安全 不建议使用 )
halt
poweroff
init 0

其他重启命名
reboot (安全)
init 6

系统运行级别
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启

cat /ect/inittab
修改系统默认运行级别
id:3:initdefalult

runlevel
查询系统运行级别

退出登录命令
logout

第二节 :重启命令
shutdown 命令
shutdown [选项] 时间
-c:取消前一个关机命令
-h:关机
-r:重启

第六章 常见软件安装

第一节 :安装 vsftp 服务
我们需要向centos操作系统的服务器上上传文件或者下载文件,这时候,ftp有必要安装下,
我们选择主流的vsftp;

第一步:安装vsftp
yum install -y vsftpd

第二步:设置开机启动
systemctl enable vsftpd

第三步:启动ftp服务
systemctl start vsftpd.service

第四步:打开防火墙
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload

(永久添加tcp 21端口)
(添加ftp服务)
(重启防火墙)

第五步:添加用户
useradd -g root -d /home/data -s /sbin/nologin java1234
新建java1234用户 添加到root组
但是不允许用户登录,仅仅可以ftp登录
ftp登录后的默认目录是/home/data

第六步:设置用户密码
passwd java1234
taixi123456

第七步:设置权限
chown -R java1234:root /home/data
setsebool -P ftpd_full_access on

第八步:修改vsftp配置文件,禁止匿名登录
vi /etc/vsftpd/vsftpd.conf
把:anonymous_enable=YES 改为: anonymous_enable=NO
输入—> :wq! 保存退出

最后是验证:
我一般用FTP Rush这个软件
配置下 连接即可;

默认权限只能上传文件到/home/data里面
OK了 然后有更加细致的需求时,我们可以配置/etc/vsftpd/vsftpd.conf,大伙可以自行研究下;

第二节 :安装和配置 jre1.8
在正式环境里 我们可以不安装jdk ,仅仅安装Java运行环境 jre即可;
第一步:下载jre
我们去oracle官方下载下jre
http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html
下载 server jre

这里提供下百度云下载地址: http://pan.baidu.com/s/1pL6YYaZ
第二步:上传jre到/home/data/下

第三步:解压以及剪切到/home/java/目录
[root@localhost ~]# cd /home/data/
[root@localhost data]# ls
server-jre-8u131-linux-x64.tar.gz
[root@localhost data]# tar -zxvf server-jre-8u131-linux-x64.tar.gz
进入/home/data/ 解压tar.gz压缩包
[root@localhost data]# ls
jdk1.8.0_131 server-jre-8u131-linux-x64.tar.gz

[root@localhost ~]# mkdir /home/java
[root@localhost ~]# ls /home/
data java
[root@localhost ~]#
在/home下新建java文件夹,用来放jre

[root@localhost ~]# mv /home/data/jdk1.8.0_131/ /home/java/
[root@localhost ~]# ls /home/java/
jdk1.8.0_131
[root@localhost ~]#
把/home/data/下的jre剪切到/home/java/下

第四步:jre目录以及子目录授予root权限
chown root:root -R /home/java/jdk1.8.0_131/

第五步:配置环境变量
编辑环境变量配置文件
vi /etc/profile
在文件末尾加入下面代码,强制保存(w!)退出
export JAVA_HOME=/home/java
export JRE_HOME=/home/java/jdk1.8.0_131
export CLASSPATH=JREHOME/lib/rt.jar:JRE_HOME/lib/rt.jar:JREH​OME/lib/rt.jar:JRE_HOME/lib/ext
export PATH=PATH:PATH:PATH:JRE_HOME/bin

使环境变量即时生效
source /etc/profile
第六步:测试
[root@localhost ~]# java -version
java version “1.8.0_131”
Java™ SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot™ 64-Bit Server VM (build 25.131-b11, mixed mode)

以及java和javac命令都行

第三节 :安装和配置 Mysql5.7
第一步:获取mysql YUM源
进入mysql官网获取RPM包下载地址
https://dev.mysql.com/downloads/repo/yum/

右击 复制链接地址 https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

得到这个 这个就是Yum仓库的rpm包 其实就是一个下载地址

第二步:下载和安装mysql源
先下载 mysql源安装包
[root@localhost ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
-bash: wget: 未找到命令
我们先安装下wget
yum -y install wget
然后执行 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安装mysql源
yum -y localinstall mysql57-community-release-el7-11.noarch.rpm

第三步:在线安装Mysql
yum -y install mysql-community-server
下载的东西比较多 要稍微等会;

第四步:启动Mysql服务
systemctl start mysqld

第五步:设置开机启动
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl daemon-reload

第六步:修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。
[root@localhost ~]# vi /var/log/mysqld.log

这里的临时密码 eMV.R#mWe3ha

[root@localhost ~]# mysql -u root -p
Enter password:
输入临时密码 进入mysql命令行;
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Caofeng2012@’;
Query OK, 0 rows affected (0.00 sec)
修改密码为 Caofeng2012@ (备注 mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位)

第七步:设置允许远程登录
Mysql默认不允许远程登录,我们需要设置下,并且防火墙开放3306端口;
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘Caofeng2012@’ WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> exit;
Bye
退出下;
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]#
开放3306端口

第八步:配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect=‘SET NAMES utf8’

[root@localhost ~]# vi /etc/my.cnf

编辑保存完 重启mysql服务;
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]#
查看下编码:
mysql> show variables like ‘%character%’;
±-------------------------±---------------------------+
| Variable_name | Value |
±-------------------------±---------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
±-------------------------±---------------------------+
8 rows in set (0.00 sec)

第九步:测试
我们用本机的sqlyog远程连接下虚拟机里的mysql

OK 至此 Mysql安装配置完毕;

第四节 :安装和配置 Tomcat8
第一步:下载Tomcat8压缩包
进入 http://tomcat.apache.org/download-80.cgi

第二步:用ftp工具把压缩包上传到/home/data/下

第三步:解压以及新建目录
[root@localhost ~]# ls /home/data/
apache-tomcat-8.5.16.tar.gz server-jre-8u131-linux-x64.tar.gz
[root@localhost ~]# cd /home/data/
[root@localhost data]# tar -zxvf apache-tomcat-8.5.16.tar.gz
[root@localhost data]# ls
apache-tomcat-8.5.16 server-jre-8u131-linux-x64.tar.gz
apache-tomcat-8.5.16.tar.gz

我们新建/home/tomcat/目录 把tomcat剪切进去
[root@localhost data]# cd
[root@localhost ~]# mkdir /home/tomcat/
[root@localhost ~]# ls /home/
data java tomcat

[root@localhost ~]# mv /home/data/apache-tomcat-8.5.16/ /home/tomcat/
[root@localhost ~]# ls /home/tomcat/
apache-tomcat-8.5.16

第四步:配置tomcat server.xml
server.xml可以配置端口,编码以及配置项目等等,我们这里就配置一个端口,把默认的8080,修改成80
vi /home/tomcat/apache-tomcat-8.5.16/conf/server.xml

这里 我们把8080端口改成80,然后保存退出;

第五步:配置防火墙,开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

第六步:启动tomcat
[root@localhost ~]# /home/tomcat/apache-tomcat-8.5.16/bin/startup.sh
Using CATALINA_BASE: /home/tomcat/apache-tomcat-8.5.16
Using CATALINA_HOME: /home/tomcat/apache-tomcat-8.5.16
Using CATALINA_TMPDIR: /home/tomcat/apache-tomcat-8.5.16/temp
Using JRE_HOME: /home/java/jdk1.8.0_131
Using CLASSPATH: /home/tomcat/apache-tomcat-8.5.16/bin/bootstrap.jar:/home/tomcat/apache-tomcat-8.5.16/bin/tomcat-juli.jar
Tomcat started.
说明启动成功

第七步:浏览器测试
地址栏输入:http://192.168.1.108/

说明配置OK

总结:
cd (切换路径)

ls (展示当前文件夹和文件)

vi + i + esc + :wq (查看、修改、退出、保存)

:q (退出)

mkdir -p 1234/456.txt (创建文件夹或文件)

touch 7777 (创建文件)

rm -rf 1234 (递归删除)

ip addr (查询ip)

cp -r 1234/456.txt 5678(复制1234文件夹里面的456.txt文件到5678文件夹里面)

mv 1234/456.txt 5678 (移动1234文件夹里面的456.txt文件到5678文件夹里面)

yum -y install mlocate(安装locate命令工具)

updatedb(更新数据库,才能使用locate)

locate 1234(只能根据文件名进行搜索)

find /home -name ‘123’ (在文件夹home里面进行名字的模糊搜索)

yum -y install zip (安装压缩工具)

zip -r 111.zip 1234 5678 999 (把1234 5678 999文件或者文件夹压缩到111.zip当中)

yum install -y unzip (安装解压工具)

unzip -o 111.zip (解压111.zip文件并替换相同的文件)

rz (上传文件)

sz 111.zip(下载111.zip文件)

shutdown -h now(关机)

shutdown -r now(重启)

reboot (重启)

logout (退出登录命令)

catalica.out (清除文件里面的内容)

安装vsftp
1、安装vsftp
yum install -y vsftpd

2、设置开机启动
systemctl enable vsftpd

3、启动ftp服务
systemctl start vsftpd.service

4、打开防火墙
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
(永久添加tcp 21端口)
(添加ftp服务)
(重启防火墙)

5、添加用户
useradd -g root -d /home/data -s /sbin/nologin java1234

6、设置用户密码
passwd java1234
taixi123456

7、设置权限
chown -R java1234:root /home/data
setsebool -P ftpd_full_access on

8、修改vsftp配置文件,禁止匿名登录
vi /etc/vsftpd/vsftpd.conf
把:anonymous_enable=YES 改为: anonymous_enable=NO
输入—> :wq! 保存退出

使用FTP Rush进行文件上传和下载
默认权限只能上传文件到/home/data里面

安装jre
1、下载jre
server-jre-8u131-linux-x64.tar.gz
http://www.oracle.com/technetwork/java/javase/downloads/server-jre8-downloads-2133154.html
http://pan.baidu.com/s/1pL6YYaZ

2、上传jre到/home/data/下
yum install -y tar

解压tar.gz压缩包
tar -zxvf server-jre-8u131-linux-x64.tar.gz

3、解压以及剪切到/home/java/目录
mkdir /home/java

mv /home/data/jdk1.8.0_131/ /home/java/

4、jre目录以及子目录授予root权限
chown root:root -R /home/java/jdk1.8.0_131/

5、配置环境变量
编辑环境变量配置文件
vi /etc/profile
在文件末尾加入下面代码,强制保存(w!)退出
export JAVA_HOME=/home/java
export JRE_HOME=/home/java/jdk1.8.0_131
export CLASSPATH=JREHOME/lib/rt.jar:JRE_HOME/lib/rt.jar:JREH​OME/lib/rt.jar:JRE_HOME/lib/ext
export PATH=PATH:PATH:PATH:JRE_HOME/bin

使环境变量即时生效
source /etc/profile

6、测试
[root@localhost ~]# java -version
java version “1.8.0_131”
Java™ SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot™ 64-Bit Server VM (build 25.131-b11, mixed mode)

以及java和javac命令都行

安装和配置 Mysql5.7
1、获取mysql YUM源
根据这个网址https://dev.mysql.com/downloads/repo/yum/
获取YUN地址https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2、下载和安装mysql源

yum install -y wget

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmhttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

yum -y localinstall mysql57-community-release-el7-11.noarch.rpm

3、在线安装Mysql
yum -y install mysql-community-server

4、启动Mysql服务
systemctl start mysqld

5、设置开机启动
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl daemon-reload

6、修改root本地登录密码
vi /var/log/mysqld.log

临时密码:_ho_tU7gE.sD

mysql -u root -p
_ho_tU7gE.sD

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Caofeng2012@’;

7、设置允许远程登录
Mysql默认不允许远程登录,我们需要设置下,并且防火墙开放3306端口;
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘Caofeng2012@’ WITH GRANT OPTION;
exit;
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

8、配置默认编码为utf8
vi /etc/my.cnf
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置

character_set_server=utf8
init_connect=‘SET NAMES utf8’

:wq

systemctl restart mysqld

mysql -u root -p
Caofeng2012@

show variables like ‘%character%’;

9、测试
使用sqlyog或者navitcat进行登录数据库

安装和配置 Tomcat8
1、下载Tomcat8压缩包
进入 http://tomcat.apache.org/download-80.cgi

2、用ftp工具把压缩包上传到/home/data/下

3、解压以及新建目录
tar -zxvf apache-tomcat-8.5.16.tar.gz
mv /home/data/apache-tomcat-8.5.16/

4、配置tomcat server.xml
server.xml可以配置端口,编码以及配置项目等等,我们这里就配置一个端口,把默认的8080,修改成80

5、配置防火墙,开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

6、启动tomcat
启动
sh startup.sh
/home/tomcat/apache-tomcat-8.5.28/bin/startup.sh

关闭
sh shutdown.sh
/home/tomcat/apache-tomcat-8.5.28/bin/shutdown.sh

第一章 Centos 简介与安装相关推荐

  1. QGIS从零开始进阶 第一章 QGIS简介与安装

    这里写自定义目录标题 第一章 QGIS简介与安装 第一节 QGIS介绍 第二节 QGIS下载与安装 第一章 QGIS简介与安装 第一节 QGIS介绍 QGIS(原称Quantum GIS)是一个自由软 ...

  2. 高可用高性能负载均衡软件HAproxy详解指南-第一章(简介、安装)

    第一章:HAproxy简介及安装配置 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 目录 HAproxy简 ...

  3. 第一章 Mysql 简介及安装和配置

    Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...

  4. 《RabbitMQ 实战指南》第一章 RabbitMQ 简介

    <RabbitMQ 实战指南>第一章 RabbitMQ 简介 文章目录 <RabbitMQ 实战指南>第一章 RabbitMQ 简介 一.什么是消息中间件 二.消息中间件的作用 ...

  5. 第一章:Google简介

    第一章:Google简介 Google(www.Google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于 ...

  6. 第一章 huggingface简介

    HuggingFace/transformers系列文章 第一章 huggingface简介 文章目录 HuggingFace/transformers系列文章 前言 一.Bert简介 二.Huggi ...

  7. STM32单片机开发应用教程 (HAL库版) ---基于国信长天嵌入式竞赛实训平台(CT117E-M4)教程汇总 与第一章 硬件平台简介

    写在前面-- 作为<STM32单片机开发应用教程(HAL库版)-基于国信长天嵌入式竞赛实训平台(CT117E-M4)>教程汇总,第一章将介绍国信长天嵌入式竞赛实训平台(CT117E-M4) ...

  8. ESP32第一章esp32简介

    ESP32第一章esp32简介 ESP32模块及开发板 ESP-IDF ESP32模块及开发板 ESP32是乐鑫信息科技(以下简称乐鑫)推出的一块WIFI芯片.ESP32 集成了天线开关.射频 bal ...

  9. DVB-S 相关知识点第一章--卫星电视简介

    目录 前言 系列文章 卫星电视标准: 卫星电视特点 卫星电视系统组成: 卫星电视信号传输过程: 卫星电视节目来源 卫星信号传输图 卫星天线系统简介 卫星天线组成: 卫星天线种类: 卫星天线系统组成简介 ...

最新文章

  1. 示范园谋定小农户-丰收节交易会·万祥军:衔接现代农业
  2. 2336: [HNOI2011]任务调度 - BZOJ
  3. 实战-130W表增加字段耗时
  4. jvm 架构_不可变的基础架构,热部署和JVM
  5. 战略分析思路——商业模式及沙盘推演
  6. 内置函数之sorted,filter,map
  7. linux好用的编译器,推荐几款Linux下比Notepad++好的编辑器软件
  8. Java基础入门笔记-使用变量并打印
  9. 54 MM配置-评估和科目设置-将评估分为群集分组
  10. android 点击热区,增大UIButton的点击热区
  11. Microsoft Azure Remoteapp使用自定义镜像创建桌面服务
  12. eclipse - 自动换行
  13. oracle中脚本是什么意思,ORACLE常用脚本命令
  14. Wacom 驱动安装 或者 失败重装
  15. RANSAC算法与原理(二)
  16. 嵌入式(二)——Jlink接口定义
  17. 身份证号判断是否合法(具体代码)
  18. 使用计算机时什么是死机,电脑死机的原因是什么,电脑死机怎么办? - 电脑死机的原因 电脑死机怎么办 - 安全专题...
  19. 【CentOS7】启动 CentOS7 系统时卡在开机界面 7 解决办法
  20. R语言——ggplot2的绘图逻辑

热门文章

  1. mysql 如何看索引命中_mysql索引命中规则讲解
  2. Docker安装及镜像配置(常用命令介绍)
  3. Unity DOTS系统概览
  4. 回顾 Exchange 2007 SCC 安装-供需要的人参考!
  5. 自动驾驶高精地图调研
  6. VectorMapNet | 端到端的矢量化高精地图学习
  7. ☀️从0到1部署Hadoop☀️基于网站日志进行大数据分析【❤️建议收藏❤️】
  8. Oracle安装时物理内存检查失败的解决方案:
  9. 大数据之路读书笔记-01总述
  10. TwinCAT PLC 使用