资讯专栏INFORMATION COLUMN

Linux Q&A

shleyZ / 711人阅读

摘要:表示小时,可以是从到之间的任何整数。要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

学习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路径

例子:# wget http://www.linuxsense.org/xxx...

wget的断点续传:wget -c http://the.url.of/incomplete/...

curl也可以进行下载

例子:# curl -o xxx.tar.gz http://www.linuxsense.org/xxx...

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

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
cc" > 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 
#include 
#include 
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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10141.html

相关文章

  • Linux Q&A

    摘要:表示小时,可以是从到之间的任何整数。要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。 学习yum命令: 安装(C编译器)gcc与(C++编译器)gcc-c++ yum install gcc -y yum install gcc-c++ -y 卸载命令 yum remove gcc 注意事项 yum命令简单并自动安装依赖,一般用于安装工具使用,核心程序请使用编译安装 ...

    jayce 评论0 收藏0
  • Linux Q&A

    摘要:表示小时,可以是从到之间的任何整数。要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。 学习yum命令: 安装(C编译器)gcc与(C++编译器)gcc-c++ yum install gcc -y yum install gcc-c++ -y 卸载命令 yum remove gcc 注意事项 yum命令简单并自动安装依赖,一般用于安装工具使用,核心程序请使用编译安装 ...

    Richard_Gao 评论0 收藏0
  • 使用python爬虫实现子域名探测问题

      大家都知道,在python当中,需要面对是各种各样的问题,比如我们需要用到的是:使用python爬虫实现子域名探测,这种技能是值得我们去进行学习的,但是学习的话,内容还是比较多的,下面就具体的内容,给大家做出一个详细解答。  前言  意义:子域名枚举是为一个或多个域查找子域的过程,它是信息收集阶段的重要组成部分。  实现方法:使用爬虫与字典爆破。  一、爬虫  1.ip138  defsear...

    89542767 评论0 收藏0
  • 如何随机&&去重返回新数组

    摘要:问题起因姐毫无征兆的在我们的水群里发来一段代码她的目的是想从中随机抽取个不重复的值组成一个新数组问我代码是否有问题很遗憾因为我刚睡醒随便贴了一下代码运行了一下就说没问题很快我就被打脸了也是如果没问题的话她问个毛大家可以先找一下问题下面先 1.问题起因 W姐毫无征兆的在我们的水群里发来一段代码: var arr = [{q:1+1=?,a:2,b:3,c:1},{q:1+2=?,a:2,...

    Apollo 评论0 收藏0
  • python3 queue多线程通信

      小编写这篇文章的主要目的,主要是给大家介绍关于python3 queue多线程通信,这里面有很多的技术性的难点,那么,该怎么去进行处理呢,下面小编给大家进行详细的解答一下。  queue分类  python3 queue分三类:  先进先出队列  后进先出的栈  优先级队列  他们的导入方式分别是: fromqueueimportQueue   fromqueueimportLifoQueue...

    89542767 评论0 收藏0

发表评论

0条评论

shleyZ

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<