linux中的yum和rpm

1.在linuxyumrpm都是用来安装rmp包的。所不同的是yum是从网络安装源上下载rpm包自动安装,并且自行解决依赖包的安装。rpm命令是安装本地已下载的rpm包安装,依赖关系需要手动下载和安装。如果是rpm是自己修改编译的,那么只能用rpm命令安装了。

2.值得注意的是yum自行安装的版本有点低,而rpm命令可以下载高版本安装,但需解决依赖关系。

3.yum

#yum -y install包名     安装

#yum remove 包名 卸载

4.rpm命令

1.)rpm -qa | grep httpd   #查看是否安装了apache

   rpm -i packageName.rpm   #安装以.rpm结尾的包

2.)有些是以.src.rpm结尾的软件包,如:a.src.rpm

#rpm -i a.src.rpm

#cd /usr/src/redhat/SPECS

#rpmbuild -bp a.specs

#cd /usr/src/redhat/BUILD/a

#./configure

#make

#make install

3.)yum不同的还有rpm可以指定安装的路径,这样的好处是卸载方便。

rpm -ivh –relocate /=/etc/install a.rpm     #relocate参数进行安装

rpm -ivh –prefix=/etc/install a.rpm

4.卸载rpm软件包

rpm -e 包名    #卸载时不可以有后缀名.rpm

5.查看软件包的版本信息如:

rpm -q myssql #单个查看某个软件包的版本信息

rpm -qa   #查看所有的rpm安装包

6.查看软件包的安装路径如:rpm -ql mysql

linux中的正则表达式

1.正则表达式在linux中有不可估量的作用,一般配合命令使用(grep/expr/sed/awd/ls/vi),让您得心应手。它描述了一种字符串匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

2.元符及其含义

*       #匹配前面字符0个或者n个普通字符

. #匹配任意一个字符

^ #匹配行首,或者后面字符的非

$ #匹配行末 如:#ls -l | grep “dd$” 表示显示以dd结尾的文件

^$ #表示空行

^.$ #表示只有一个任意字符   如:ls | grep “^.$”

[] #匹配括号里的任意字符 如:ls | grep “a[a-z]” 以a开头a–z的任意一个字符

[^] #匹配括号外任意一个字符 如:[^0-9] 匹配一个非数字的字符

\ #转意符,消除元字符的特殊含义 如:\^  消除^的特殊含义

\{n\} #匹配前面字符出现n

\{n,\} #匹配前面的字符至少出现n

\{n,m\} #匹配前面的字符出现n–m

\<then\> #精确匹配then这个单词

 

\b #匹配一个单词边界,列如:”ue\d”能匹配true

\B #匹配一个非边界的单词

\w #匹配包括下划线的任何单词字符。等价于”[a-zA-Z0-9_]”

\W #匹配任何非单词字符。等价于”[^]a-zA-Z0-9_”

\d #匹配一个数字字符。等价于”[0-9]”

\D #匹配一个非数字字符。等价于”[^0-9]”

\n #匹配一个换行符

\r #匹配一个回车符

\t #匹配一个制表符

\s #匹配任何空白字符,包括空格、制表符、换页符等等

\S #匹配任何非空字符

\v #匹配一个垂直制表符

 

3.扩展应用

[0-9]\{6\}  匹配从09的任意6个数

ls -F | grep “/$”    作用:列出目录。-F参数的作用列出文件类型的指示符号

df -h |grep “sda1” | awk ‘{print $5}’ | cut -d “%” -f 1  

[hermit auto=”1″ loop=”1″ unexpand=”1″ fullheight=”1″]remote#:2,1[/hermit]

linux下bash的数据流量重导向

1.linux下的字符界面中在执行某些命令是会出现一下安装/正确/错误等的一下信息,如果我们不愿看到它们,可以把它输出到指定的文件中。我们把它叫做数据重导向,stdin/stdout/sdterr,shell编写中经常用到。

2.表示方法

标准输入     stdin   0表示  使用<或者<<

标准输出     stdout  1表示  使用>或者>>   1>  1>>

标准错误输出 stderr   2表示  使用2>或者2>>

注意:单个尖括号代表覆盖原有的,双尖括号代表在原有的基础上添加。

3.列如:

yum install httpd > /dev/null 把输出的信息丢到垃圾桶中

/etc/init.d/httpd 2>> /home/error.txt 把错误信息输出到文件中,以供分析

/etc/init.d/httpd > list.txt 2>>&1   把正确输出和错误输出都放在同一个文件中,也可以写为:

/etc/init.d/httpd &> list

command < file1 >file2  command命令以文件file1作为标准输入,以file2作为标准输出。

commande < file1 command命令以文件file1作为标准输入

command out.txt 2>1&  stdinstdout都输入到out.txt

test命令

1.字符串判断

-n string   判断字符串是否为非0,若为空字符串,返回false,不空则为true

-z string   判断字符串是否为0,若为空字符串,返回true

string1 = string2 判断两字符是否相等,若相等返回true

string1 != string2 判断两字符串不相等,若相等返回false

2.整数判断

integer1 -eq integer2  判断两个整数是否相等

integer1 -ge integer2  判断integer1是否大于等于integer2

integer1 -gt integer2  判断interger1是否大于integer2

integer1 -le integer2  判断interger1是否小于等于integer2

integer1 -lt integer2  判断interger1是否小于integer2

integer1 -ne integer2  判断interger1不等于integer2,若不等则为true

3.判断俩个文件

file1 -ef file2   判断文件file1file2是否是同一个文件,主要通过inode号来判断

file1 -nt file2   判断文件file1是否比文件file2

file1 -ot file2   判断文件file1是否比文件file2

4.文件判断

-b file   判断文件是否为块设备

-c file   判断文件是否为字符character special设备

-d file   判断文件是否为一个目录

-e file   判断该文件是否存在

-f file   判断是否问文件

-g file   判断该文件是否具有SGID 的属性?

-L file   判断该文件是否为一个链接的文档?

-S file   判断该文件是否为一个socket文档?

-p file    该文件名是否为一个 FIFO (pipe) 文件?

5.文件的权限判断

-r file  判断对文件是否具有读权限?

-w file  判断对文件是否具有写权限?

-x file  判断对文件时候具有执行权限?

6.多重条件判断

-a(and的缩写)两状况同时成立  列如: test -r file -a -x file 判断文件file是否同时具有读执行权限,返回true,否则false

-o(or的缩写)两个条件只要成立一个就返回true

7.当您做以上测试的时候为了更直观,您可以在用&& echo “true” || echo “false”

: #test -r file && echo “true” || echo “false” 

top命令

top命令是linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况,类似于windows任务管理器。

 

从上图中我们可以大体知道一些英文单词表示的含义:

第一行是任务队列信息,同 uptime 命令的执行结果一样:第一列表示当前时间、第二列表示系统运行了多久、第三列表示当前登陆人数、最后的load average表示的是系统负载(三个值分别是:1分钟、5分钟、15分钟前到现在的负载平均值)

第二列表示的是进程的信息,很直观。

第三列表示的是使用cpu信息:

% us  用户空间占用CPU百分比

% sy   内核空间占用CPU百分比

% ni   用户进程空间内改变过优先级的进程的CPU百分比

% id  空间CPU百分比

% wa 等待输入输出的CPU时间百分比

% hi   硬件CPU中断占用百分比

% si  软件中断占用百分比

% st  虚拟机占用百分比

第四列分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;

第五列表示了交换空间的信息;

linux查看网卡流量的命令

方法一:#watch ifconfig

方法二:#iftop

1.使用yum在线安装

#yum install  libpcap libpcap-devel ncurses ncurses-devel

#yum install  flex byacc

#wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

#rpm -ivh epel-release-6-8.noarch.rpm

#yum install iftop

一般情况下执行最后一条命令就可以了,yum会自动寻找依赖包。

2.参数含义                                                     

-i指定需要监测的网卡                                           

-n将输出的主机信息都通过IP显示,不进行DNS反向解析                 

-B将输出以bytes为单位显示网卡流量,默认是bits                    

-p以混杂模式运行iftop,此时iftop可以作为网络嗅探器使用            

-N只显示连接端口号,不显示端口对应的服务名称                      

-P显示主机以及端口信息,这个参数非常有用                          

-F显示特定网段的网卡进出流量     如:iftop -F 192.168.12.0/24                                 

-m设置iftop输出界面中最上面的流量刻度最大值,流量刻度分五个大段显示  

2.iftop使用

安装好iftop后,可以直接输入iftop命令即可显示网卡实时流量信息。iftop默认的是显示第一块网卡的流量信息,如果要显示指定网卡流量信息,通过“-i”参数实现。

执行:iftop -P -i eth1得出以下流量信息:


iftop的输出从整体上可以分为三大部分:

第一部分。是iftop输出中最上面的一行,此行信息是流量刻度,用于显示网卡带宽流量。

第二部分。是iftop输出中最大的一个部分,此部分又分为左、中、右三列,左列和中列记录了哪些IP或主机正在和本机的网络进行连接。其中,中列的“=>”代表发送数据,“<=”代表接收数据,通过这个指示箭头可以很清晰地知道两个IP之间的通信情况。最右列又分为三小列,这些实时参数分别表示外部IP连接到本机2秒内、10秒内和40秒内的平均流量值。另外,这个部分还有一个流量图形条,流量图形条是对流量大小的动态展示,以第一部分中的流量刻度为基准。通过这个流量图形条可以很方便地看出哪个IP的流量最大,进而迅速定位网络中可能出现的流量问题。

第三部分位于iftop输出的最下面,可以分为三行,其中,“TX”表示发送数据,“RX”表示接收数据,“TOTAL”表示发送和接收全部流量。与这三行对应的有三列,其中“cum”列表示从运行iftop到目前的发送、接收和总数据流量。“peak”列表示发送、接收以及总的流量峰值。“rates”列表示过去2s10s40s的平均流量值。

centOS中前台和后台简单操作

1.linux的工作终端分为前台(foreground)和后台(background),我们所看到的是前台,当您在执行某一个命令,您还想执行其它的命令,就可以把当前的命令放入到后台。

2.把一条命令放入到后台执行格式:就是在后面加入&符合如:想把/etc目录做备份

  #tar -jcv -f ctc.tar.bz2 /etc &

  

3.当您在vi中编辑某文件时,想退出查看其它文件:就可以esc(进入命令行模式)在按组合键ctrl+z

4.jobs命令来查看后台执行的工作,并且看到工作号(jobsnumber)[1]:

 

5.fg n ——将后台执行进程n跳到前台执行。

6.bg n ——将后台挂起的进程,让它继续执行。

7.ctrl+c ——在前台终止进程

8.kill %jobsnumber ——杀死后台的某个进程

linux下修改myql的root密码

1. 在知道旧密码的情况下使用mysqladmin命令修改:

#mysqladmin –u root –p password “新密码

Enter password:旧密码

2. 如果不幸遗失了旧密码,那么进到root用户下:

#vi /etc/my.cnf   [mysqld]中加入:skip-grant-tables

#/etc/init.d/mysqld restart

#mysql

mysql >use mysql;

mysql >UPDATE user SET password=password(“新密码) WHERE user=’root’;

mysql>flush privileges;

mysql>exit;

#vi /etc/my.cnf     skip-grant-tables删除

#/etc/init.d/mysqld restart

3. ok密码修改完成

 

简述linux下的定时任务管理器crond

1.我们使用linux系统看中的是它的稳定性,除此之外我们还可以使用crond来定时管理系统。一般情况下linux系统的cron是默认安装的,先查看一下是否存在!

#rpm -qa | grep cron       #查看是否安装

#chkconfig –list | grep crond #查看cron的启动状态

#chkconfig crond on     #让cron开机自启动

#/etc/init.d/crond start  #启动crond

#/etc/init.d/crond stop   #关闭crond

 

2.crontab中几个主要的参数

#crontab -l   #查看当前都有那些定时任务

#crontab -r  #删除当前的定时任务

#crontab -e   #对定时任务的编辑、删除、增加等操作

3.crond配置文件中的格式

* * * * * 命令

1.)注意每个星号之间是有空格的。

2.)第一个星号表示:分钟,每个小时的第几分钟0-59。

3.)第二个星号表示:小时,每天中的第几个小时0-23。

4.)第三个星号表示:天,每个月的第几天1-31。

5.)第四个星号表示:月,每年的第几个月1-12。

6.)第五个星号表示:周,表示每周的第几天执行,范围从0-6,0和7是星期天。

7.)最后一个就是命令了,写入要执行的命令和参数。

4.例如:在每个星期1和星期5的凌晨3点执行/home/me目录下的a.sh文件。

终端中输入:crontab -e 回车

* 3 * * 1,5 ./home/me/a.sh

Linux下apache配置虚拟主机

1.在linux中用apache来配置虚拟主机,也就是说在一个ip地址上建立许多个网站,域名都指向这个ip.

2.在这里我们建立两个网站为例,分别是:www.domainname1.com  www.domainname2.com

打开vi /etc/httpd/conf/httpd.conf 在文件的最后加入:

ServerName 192.168.1.107

NameVirtualHost *:80

<VirtualHost *:80>

ServerName www.domainname1.com

DocumentRoot /home/www/domainname1

<Directory “/home/www/domainname1”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow.deny

Allow from all

</Directory>

</VirtualHost>

 

<VirtualHost *:80>

ServerName www.domainname2.com

DocumentRoot /var/www/domainname2

<Directory “/var/www/domainname2”>

Options Indexes FollowSymLinks

AllowOverride None

Order allow.deny

Allow from all

</Directory>

</VirtualHost>

3.NameVirtualHost 192.168.1.107很重要,没有这个,虚拟主机是不可以建立成功的。重启一下apache后到目录domainname1和目录domainname2中写入不同的index.php文件测试了。当然您的把selinux给关掉哦,要不然重启apache时出现错误:Starting httpd: Warning: DocumentRoot [/var/www/domainname1] does not exist

4.关闭SELINUX

   vi /etc/selinux/config

  #SELINUX=enforcing  #注释掉

  #SELINUX=targeted   #注释掉

  SELINUX=disabled    #增加

  :wq  #保存和关闭

  Shutdown -r now #重启系统