3

学习yum命令:

  • 安装(C编译器)gcc与(C++编译器)gcc-c++
yum install gcc -y
yum install gcc-c++ -y
  • 卸载命令
yum remove gcc
  • 注意事项
yum命令简单并自动安装依赖,一般用于安装工具使用,核心程序请使用编译安装

命令到底是什么?如何执行命令?

  • 命令其实就是一个可执行程序(win中就是exe,而linux就是文件)
  • 命令执行有2种:带路径不带路径
带路径例如:./wmb或/root/demo/wmb (自定义命令)
不带路径例如: ls或pwd (系统命令) 默认查找bin目录或usr/bin目录中命令,有就执行,不查找sbin目录

如何使用gcc进行编译?

  • 简单编译(没有引入外部函数库)
gcc wmb.c -o wmb
  • 联合编译(引入自定义函数库或外部库)
gcc xxx.c aaa.c -o bbb
  • 一般安装程序不会使用以上2种,都是直接使用make命令
先安装make
yum install make
在执行make这个命令的文件夹下必须要有Makefile文件(程序制作者提供,大小写不限)
执行make后,会自动寻找文件夹下的Makefile文件进行自动编译

如何下载?

wget是Linux最常用的下载命令, 一般的使用语法是: wget + 空格 + 要下载文件的url路径
curl也可以进行下载

压缩文件格式有哪些?每种格式如何解压?

  • Linux中压缩文件的格式有如下:
常见格式:.tar | .tar.gz | .tar.Z | .tar.bz | .tar.bz2 | .zip | .rar
  • 各种格式对应的解压命令:
.tar 
解包:tar -xvf FileName.tar 
打包:tar -cvf FileName.tar DirName 
(注:tar是打包,不是压缩!) 
------------------------------------------
.gz 
解压1:gunzip FileName.gz 
解压2:gzip -d FileName.gz 
压缩:gzip FileName 
------------------------------------------
.tar.gz 
解压:tar -zxvf FileName.tar.gz 
压缩:tar -zcvf FileName.tar.gz DirName 
------------------------------------------
.tar.bz2 
解压:tar -jxvf FileName.tar.bz2 
压缩:tar -jcvf FileName.tar.bz2 DirName 
------------------------------------------
.zip 
解压:unzip FileName.zip 
压缩:zip FileName.zip DirName 
------------------------------------------
.tar.bz 
解压:tar -jxvf FileName.tar.bz 
压缩:未知 
------------------------------------------
.tar.Z 
解压:tar -Zxvf FileName.tar.Z 
压缩:tar -Zcvf FileName.tar.Z DirName 
------------------------------------------
.rar 
解压:rar e FileName.rar 
压缩:rar a FileName.rar 

rar请到:http://www.rarsoft.com/download.htm 下载! 
解压后请将cp rar /usr/bin 

Linux安装软件有几种方式?编译安装步骤是什么?编译安装注意事项是什么?

  • 安装方式yum方式源码编译方式rpm方式(不推荐)
  • 源码编译步骤
1、./configure
在解压的软件目录中执行,主要用于配置安装参数(安装位置、支持软件设置、软件依赖检查等),生成对应安装配置文件

2、make
根据上面生成的 安装配置文件Makefile文件 进行编译,生成二进制文件

3、make install
把上面编译生成的二进制文件复制到指定位置

  • 编译安装注意事项
1、./configure 到底怎样知道有什么安装参数可以配置呢?

使用 ./configure --help 命令

2、如果不配置安装位置(./configure --prefix=/usr/local/xxx),采用默认位置,那默认位置到底是哪里?怎样知道?

如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较分散,不好后期管理与卸载(卸载有其他办法),当然不是所有软件的默认安装位置都是这样的,具体要查看./configure生成的配置文件中的配置

Linux 编译安装的软件如何卸载?注意事项是什么?

  • 源码编译安装如果不指定--prefix软件安装路径的话,可以使用下面办法:
./configure ---> make distclean #删除./configure产生的文件
make ---> make clean #只删除make时产生的临时文件
make install ---> make uninstall #干掉make install命令时装进去的文件,需要管理员身份
  • 如果指定--prefix安装路径,直接删除软件安装目录就可以了

echo 命令如何输出换行?如何追加内容?

  • echo输出内容到文件的语法如下:
echo "abscc" > error.log #默认是覆盖模式,echo默认在输出内容的后面自动添加换行
  • 输出换行要使用 -e 参数:
echo -e "abs\ncc" > error.log
  • 要追加内容,如下
echo "xxx" >> error.log

shell 脚本中变量如何定义与赋值?

  • 变量定义与使用
FILE_LOG = "file.txt"

if [ -f $FILE_LOG ]
  • 变量赋值(命令返回的结果)
CURRENT_DATE = `date +"%Y-%m-%d %H:%M:%S"`

Linux 中进程和守护进程分别是什么?多进程是什么?

  • 一个进程对应一个程序,进程分为普通进程守护进程
普通进程守护进程的区别

普通进程:成它的父进程不是元老进程,由其他进程生成而已 (例如Bash进程,Bash进程杀掉后普通进程也会死亡)
守护进程:成它的父进程是元老进程,PPID是1,只要元老级进程代表Linux系统,如果系统挂了,守护进程才会死掉,当然守护进程内部执行完也是会自己死掉

  • 多进程:一个程序启动会会产生多个进程,其中1个父进程产生多个子进程

Apache Httpd 2.4.X 源码编译安装与启动

  • 所需依赖
1、apr与apr-util : http://apr.apache.org/download.cgi
2、pcre : ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 
注:3个依赖直接默认安装
  • httpd 2.4.x 编译安装
1、 ./configure --prefix=/usr/local/apache2 --enable-so --enable-module=all
2、 make
3、 make install
  • 启动Apache2两种方式
1、 ./httpd -k start
2、 ./apachectl start (推荐)
  • 注意:httpd启动时,第一个进程就是守护进程

如何生成守护进程?守护进程的应用场景?

  • 生成守护进程的前提: 既然说守护,就必须要有守护的对象,所以**程序必须创建子进程才能生成守护进程**
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
  int pid;
  pid=fork();
  if(pid>0)
  {
    exit(0);
  }
  setsid();
  while(1)
  {

  }
}
  • 主要应用于:作为服务运行的程序:例如apache/nginx/mysql/redis等

如何把程序作为服务?作为服务有什么好处?使用service xxx start命令启动应用,该应用是不是已经是服务?

  • 作为服务的好处:可以开机自启动,无需手动启动(当然手动也是可以的),作为服务统一管理
  • 使用service xxx start命令运行某程序,只是另外一种写法罢了,与./xxx一样,此时该应用还不是服务,因为没有注册成服务,只是单纯把脚本放在/etc/init.d/目录下而已
  • 注册服务的步骤:
1、把程序启动的Shell脚本放到/etc/init.d目录下 (注意是shell脚本,不是二进制可执行程序
2、编辑shell脚本,在最前面添加如下代码:
#!/bin/bash
# chkconfig: 2345 20 80
# description: xxx
# processname: sshd
3、注册服务 使用chkconfig命令把程序注册为服务
chkconfig --add sshd
  • 删除服务:chkconfig --del sshd

shell 脚本如何接受参数?如何返回结果?

  • 接收参数
$1-$n : 代表添加到shell脚本的各参数值,$1代表第一个参数,$2代表第二个参数
$$ : 代表shell脚本本身的PID
$? : 代表返回值
$# : 代表接收的参数个数
$0 : 代表shell脚本的文件名
  • 返回结果

shell 脚本如何杀进程?

  • pkill 进程名 :批量删除指定进程名
  • pgrep 进程名 :过滤出进程出来

php 源码编译安装与apache相关配置

  • php与apache关联的3种方式
1、CGI
2、FASTCGI
3、作为apache模块(推荐)
  • php安装所需依赖libxml2
yum install libxml2 libxml2-devel
  • 安装PHP(最简安装)
1、 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc
2、 make && make install

##安装完成后,apache的moudle目录下就会产生libphpX.so模块
  • 最后修改apache配置:在httpd.conf中添加AddType application/x-httpd-php .php

怎样知道当前CPU是几核?

cat /proc/cpuinfo | grep processor | wc -l

如何把目录加入环境变量呢?

永久性修改环境变量:
编辑/etc/profile文件,在最后添加下面代码
export PATH=$PATH:/root/demo

MySQL 编译安装

  • 前提条件:
1、Git yum install git
2、GCC GCC-C++ yum install gcc gcc-c++
3、ncurses ncurses-devel yum install ncurses ncurses-devel
  • 创建用户
useradd mysql -M -s /sbin/nologin
-M 代表不生成Home目录
  • 使用 cmake 生成 Makefile 文件
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_DATADIR=/var/mysql/data -DWITH_BOOST=boost
  • 编译安装
make && make install
  • 修改文件夹所有者
chown -R mysql:mysql /var/lib/mysql
注意: 修改目录的所有者,该目录下的文件与文件夹的所有者也会跟着修改
  • 初始化mysql
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql/data

Curl 使用

  • curl的作用
1、命令行的浏览器
2、模拟提交
  • curl与wget区别
相同点:下载文件
不同点:curl功能更加强大,可模拟表单提交
  • curl 参数
-d 以POST方式提交
-I 输出响应头
-s 静默模式

配置默认yum源

  • 首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  • 下载对应的源文件
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

163 yum使用帮助

  • 运行以下命令生成缓存
yum clean all
yum makecache

定时任务Crontab

  • 定时任务分类
1、系统定时任务  (存放在/etc/crontab文件)
2、用户定时任务  (存放在/var/spool/cron/  目录下的文件)
  • 定时任务文件中的内容定义

图片描述

其中:

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
  • crontab 命令语法

SSH安全协议 Client与Sever之间连接必备

  • 服务端安装SSH服务
yum install openssh-server
  • 启动SSH
service sshd start
  • 设置为开机自启动
chkconfig sshd on
  • 客户端安装SSH工具
windows:Xshell

Linux: yum install openssh-clients
连接命令:ssh root@192.10.20.11
  • SSH Config命令
修改的是ssh客户端工具的配置文件,以后连接只要:ssh xxx就可以了,无需:ssh root@192.10.20.11

104828720
1.4k 声望222 粉丝

编程其实很枯燥,所以一定要有追求。


« 上一篇
JS Q&A
下一篇 »
MySQL Q&A