Linux基础(五) | 青训营笔记

101 阅读3分钟

前言

这是我在字节第六届前端青训营的学习第十二篇笔记

今天要讲的是关于Linux基础的一些操作命令

八、http 服务

1. http 服务

随着计算机与 Internet 技术的蓬勃发展,形形色色的 Web 站点成为直接面向用户的中坚力量。在各种网站服务器软件中,Apache HTTP Server 无疑是其中的佼佼者。

Apache 配置

server 上配置一个 web 站点 www.example.com

将文件 index.html 拷贝到 DocumentRoot 目录下

DocumentRoot 目录为/web

[root@server ~]$ yum -y install httpd 
[root@server ~]$ mkdir /web
[root@server ~]$ chcon -t httpd_sys_content_t /web
[root@server ~]$ vim /etc/httpd/conf.d/www.conf

修改www.conf配置文件

<VirtualHost *:80>
  DocumentRoot "/web"
  ServerName www.example.com 
</VirtualHost>
<Directory "/web"> 
  AllowOverride None
  Require all granted 
</Directory>

启动httpd服务

[root@server ~]$ systemctl enable httpd
[root@server ~]$ systemctl start httpd
[root@server ~]$ firewall-cmd --permanent --add-service=http 
[root@server ~]$ firewall-cmd --reload

九、脚本

1. 创建定时备份脚本

server 上编写/root/filebk.sh 脚本

要求

备份并压缩/etc目录的所有内容,存放到/root/bak目录,存放的形式2019-06-10_etc.tar.gz

#!/bin/bash
​
Date=$(date +%F)
BKDir=/root/bak
[ ! -d $BKDir ] && mkdir -p $BKDir
cd /
tar czf $BKDir/${Date}_etc.tar.gz etc

要求

每月第一天 2:30自动完成备份

[root@server ~]$ crontab -e
30 2 1 * * /root/filebk.sh &>/dev/null

2. 创建脚本判断文件是否存在

server 上创建判断备份目录是否存在脚本/root/backdir.sh

  • 运行脚本时带的参数是一个已经存在的目录

    /root/backdir.sh /opt,则输出:

    backup directory already exist.

    不做任何操作

#!/bin/bashif [ $# -ne 1 ] ;then
  echo “Usage:/root/backdir.sh direxit
fi
  • 运行脚本时带中参数是一个不存在的目录

    /root/backdir.sh /aaa,则输出:

    backup directory is not exist,will make it.

    创建该目录

if [ -d $1 ];then
  echo “backup directory already exist.”
  • 运行脚本时如果参数错误则输出

    Usage:/root/backdir.sh dir

else
  echo “backup directory is not exist,will make it.” 
  mkdir -p $1
fi

有关编写脚本的详细教程和更多知识,留意明天的Shell脚本和编程笔记吧~

十、源码编译安装

Step By Step 一步步安装

# 0. 解压源码包
tar -xvf 源码.tar.xz
cd ./源码
# 1. Configure 配置
./configure --prefix=[路径] # 不指定路径默认安装到/usr/local
# 2. Make 编译
make
# 3. Install 安装
make install
# 如果安装不成功,重新安装需要先清理编译的文件
make clean

One Command 一步到位

./configure && make && make install
  • configure 配置

    这一步是配置,一般用来生成 Makefile,为下一步的编译做准备,可以通过在configure 后加上参数来对安装进行控制

    ./configure --prefix=[路径]
    # --prefix  指定安装路径
    # --sys-config  指定配置文件路径
    # --help  查看帮助
    

    程序各部分安装路径

    • 执行文件 => [路径]/bin
    • 资源文件 => [路径]/share
    • 库文件 => [路径]/lib
    • 配置文件 => [路径]/etc

    默认路径为/usr/local

    *注意: *如果不配置--prefix选项,安装后比较凌乱

  • make编译

    这一步就是编译,大多数的源代码包都经过这一步进行编译 (有些perlpython编写的软件需要调用perlpython来进行编译)

    可能遇到的错误:make *** 没有指明目标并且找不到 makefile, 停止。问题很明了,没有Makefile,怎么办,原来是要先./configure 一下,再make

  • make install安装

    这条命令来进行安装

    (有些软件需要先运行make checkmake test来进行一些测试) 指定文件安装位置:

    make install PREFIX=[路径] install
    # 指定安装路径
    # prefix默认是/usr/local
    # make install 和 make install prefix=/usr/local 等价
    make install DESTDIR=[路径] install
    # 指定程序所有文件存放的位置(防止污染系统目录)
    # 安装到临时目录,该目录不是运行包的位置
    # 没有该目录则自动创建
    make install prefix=[路径2] destdir=[路径1] sysconfdir=[路径3]
    # 编译的文件会放在 [路径1]/[路径2]/ 下
    # 执行文件 => [路径1]/[路径2]/bin
    # 库文件 => [路径1]/[路径2]/lib 
    # 头文件 => [路径1]/[路径2]/include
    # 配置文件 => [路径1]/[路径3]
    

    *注意: *此步骤不是必须的,因为在上一步make命令中就已经编译出了可执行的文件了,此时的make install只是为了安装到系统中常用的位置上,因为从那个目录下运行程序有些不便