当前位置:文档之家› 马哥linux课程学习资料(手写)

马哥linux课程学习资料(手写)

马哥linux课程学习资料(手写)
马哥linux课程学习资料(手写)

目录

马哥linux学习资料 (2)

第一章awk基础 (2)

1.1 print (2)

1.2 printf (2)

1.3输出重定向 (3)

1.4 awk (3)

第二章Cacti (7)

2.1 snmp (7)

2.2 RRDTool (8)

2.3 Cacti (11)

第三章软件包管理 (14)

第四章企业常用防火墙iptables相关原理详解 (17)

4.1 防火墙的类型: (17)

4.2 防火墙的功能: (17)

4.3 iptables用法 (18)

4.4 自定义链 (22)

4.5 限定链接速率 (24)

4.6 限定连接数 (24)

4.7 网卡的源地址转发模拟 (25)

第五章Linux Shell 学习 (26)

5.1 bash变量类别: (26)

5.2 本地变量 (26)

5.3 环境变量 (27)

5.3 特殊变量 (28)

5.4 命令替换 (28)

5.5 变量保存 (28)

5.6 命令别名 (29)

5.7 shell脚本 (29)

5.8 标准输入/输出 (30)

5.9 重定向 (30)

5.10 管道 (31)

5.11 正则表达式 (31)

5.12 用户管理 (33)

5.13 用户权限 (36)

5.14 文件权限 (36)

5.15 用户切换 (37)

5.16 算术运算 (38)

5.17 逻辑运算 (39)

第六章DNS服务器 (40)

6.1 DNS软件 (40)

6.2 配置DNS服务器正向解析 (41)

6.3配置DNS服务器反向解析 (44)

第七章MYSQL (47)

7.1概论 (47)

7.2 MySQL 安装 (48)

7.3 vsftpd (51)

7.4 mysqladmin (54)

7.5 Developing With MySQL (56)

7.6 实验环境搭建 (56)

7.8 配置主从服务器: (57)

第八章linux 启动过程 (59)

8.1 启动流程 (59)

马哥linux学习资料

第一章awk基础

1.1print

print的使用格式:

print item1,item2, ….

要点:

1.各项目自己使用逗号隔开,而输出时则以空白字符分隔;

2.输出的item可以为字符串或者数值,当前记录的字段(如$1)、变量或者awk的表达式;数值会先转换为字

符串,而后再输出;

3.print的命令后面的item可以省略,此时其功能相当于print $0,因此,如果想输出空白行,则需要使用

print “”;

例子:

# awk ‘BEGIN ,print “line one\nline two\nline three”-’

awk –F: ‘,print $1,$2-’ /etc/passwd

内置变量:

ORS(output record sepatator)

OFS(output field separator)

FS: field separator,默认是空白字符;

RS:Record separator,默认是换行字符;

NR:The number of input records,awk命令所处理记录数:如果有多个文件,这个数目会把处理的多个文件中行统一计数;

NF:Number of Field,当前记录的field个数;

FNR:与NR不同的是,FNR用于记录正处理的行是当前这一文件中被总共处理的行数;

ARGV:数组,保存命令行本身这个字符串,如awk’,print $0-’ a.txt b.txt这个命令中,ARGV[0]保存awk,ARGV[1]保存a.txt;

ARGC:awk命令的参数的个数;

1.2printf

print命令的使用格式:

printf format,item1,item2,….

要点:

1.与其print命令的最大不同是,printf需要指定format;

2.format用于指定后面的每个item的输出格式;

3.printf语句不会自动打印换行符;

format格式的指示符都以%开头,后跟一个字符;如下:

%c:显示字符的ASCII码:

%d,%i: 十进制整数:

%e,%E:科学计数法显示数值;

%f:显示浮点数;

%g,%G:以科学计数法的格式或浮点数的格式显示数值;

%s:显示字符串

%u:无符号整数

%%:显示%自身

修饰符:

N:显示宽度;

-:做对齐

+:显示数值符号

例子:

#awk –F: ‘,printf “%-15s %\n”,$1,$3 -’ /ect/passwd

1.3输出重定向

print items > output-file

print items >> output-file

特殊文件描述符:

/dev/stdin:标准输入

/dev/stdout:标准输出

/dev/stderr:错误输出

/dev/df/N:某特定文件描述符,如/dev/stdin 就相当于/dev/fd/0;

例子

awk –F: ‘,printf “%-15s %i\n”,$1,$3 > “/dev/stderr”-’ /etc/passwd 1.4awk

awk 的使用格式:

awk [options] ‘script’ file1,file2,….

awk *options+ ‘PATTERN ,action-’ file1,file2, ….

-F :

1、算术操作符:

-x:负值

+x:转换为数值

x^y:

x**y:次方

x*y:

x+y:

x-y:

x%y:

2、字符串操作符:

只有一个,而且不用写出来,用于实现字符串连接:

3、赋值操作符:

=、+=、-=、*=、/=、%=、^=、**=

++、--

需要注意的是,如果某模式为=号,此时使用/=/可能会有语法错误,应该为/[=]/代替

4、布尔值

awk中,任何非0值或非空字符串都为真,反之就为假;

5、比较操作符:

x < y 、x <=y、x > y、x >=y、x==y、x!= y、x~y、x!~ y

6、表达式间的逻辑关系:

&&、||

7、条件表达式

selector?if-true-exp:if-false-exp

$A > $B? echo $A:echo $B

8、行数调用

function_name (para1,para2)

9、awk的模式:

awk ‘program’ input-file1 input-file2 ….

其中的program为:

pattern { action }

pattern { action }

….

常见的模式类型:

1、Regexp:正则表达式,格式为/regular expression/

2、expression:表达式,其中值非0或为空字符时满足条件,如:$1 ~/foo/ 或$1==”magedu”,用运算符~(匹配)和~!

(不匹配)

3、Ranges:指定的匹配范围,格式为pat1,pat2

4、BEGIN/END:特殊模式,仅在awk命令执行前运行一次或结束前运行一次

5、Empty(空模式):匹配任意输入行;

常见的Action有:

1、Expressions

2、Control statements

3、Compound statements

4、Input statements

5、Output statements

/正则表达式/:使用通配符的扩展集

关系表达式:可以用下面运算符表中的关系符进行操作,可以是字符串或者数值的比较多,如$2 > $1 选择第二个字段比第一个字段长的行。

awk –F: ‘$3 >= 500 ,print $1-’ /ect/passwd

awk –F: ‘$3 >= 500 ,print $1,$3-’ /ect/passwd

awk –F: ‘$3 >= 500 ,printf “%-15s%s\n”,$1,$3-’ /ect/passwd

awk –F: ‘$3 >= 500 ,print “Username UID”;printf “%-15s%s”,$1,$3-’ /ect/passwd

模式匹配表达式:

模式,模式:指定一个行的范围,该语法不能包括BEGIN和END模式

BEGIN:让用户指定在第一条输入记录被处理之前说发生的动作,通常可在这里设置全局变量。

END:让用户在最后一条输入记录被读取之后发生的动作

awk –F: ‘BEGIN ,print “Username UID”-,printf “%-15s%s”,$1,$3-’ /ect/passwd

awk –F: ‘BEGIN ,print “Username UID”-,printf “%-15s%s”,$1,$3-END,print “Over-’ /ect/passwd

awk ‘BEGIN ,print “a” “b”-’

awk –v FS=: ‘,print $1-’ /etc/passwd

awk ‘BEGIN,FS=”:”-,print $1-’ /ect/passwd

例子:

vim a.txt

welcome to redhat linux.

how are you?

awk ‘,print $1-’ a.txt

df –h

df –h |awk ‘,print $1-’

df –hP |awk ‘,print $1-’

awk ‘,print $1-’ /etc/passwd

awk –F: ‘,print $1-’ /etc/passwd

awk –F: ‘,print $1,$7-’ /etc/passwd

awk –F: ‘,print $NF-’ /etc/passwd

awk ‘,print $NF-’ a.txt

awk –v FS=: ‘,print $NF-’ /etc/passwd

awk ‘,print $1 $2-’ a.txt

awk ‘,print $1,$2-’ a.txt

awk -v OFS=: ’,print $1,$2-’ a.txt

awk ‘,printf “%-10s,%s\n”,$1,$2-’ a.txt

awk ‘,printf “%-10s%s\n”,$1,$2-’ a.txt

awk ‘BEGIN,print “a” “b”-’

awk –F:‘$1 ~ /^root/,print $3,$4,$NF-’ /ect/passwd

awk –F:‘$1 !~ /^root/,print $3,$4,$NF-’ /ect/passwd

awk –F: ‘/bash/,print $0-’ /etc/passwd

awk –F: ‘/bash/,print$1-’ /etc/passwd

控制语句

1、if-else

语法:if(condition)(then-body) else{[ else-body]}

例子:

awk –F: ‘,if ($1==”root”) print $1, “admin”;else print $1,”Common User”-’ /ect/passwd

awk –F: ‘,if($1==”root”) printf “%-15s:%s\n”,$1,”Admin”;else printf “%-15s:%s\n”,$1, “Common User”-’ /ect/passwd awk –F: -v sum=0 ‘,if ($3 >= 500) sum ++-END ,print sum-’ /ect/passwd

2、while

语法:while (condition) ,statements1;statements2;……-

awk –F: ‘,i=1;while (I <= 3) ,print $1;i++--’ /ect/passwd

awk –F: ‘ $1!~/root/ ,i=1;while (i <= 4) ,print $1;i++--’ /ect/passwd

awk –F: ‘ $1!~/root/ ,i=1;while (i <= NF) ,print $1;i+=2--’ /ect/passwd

awk –F: ‘ $1!~/root/ ,i=2;while (i <= NF) ,print $1;i+=2--’ /ect/passwd

3、do-while

语法:do ,statements1;statements2;……- while (condition)

awk –F: ‘,i=1; do ,print $i;i++- while (i <=3) -’ /etc/passwd

4、for

语法:for (variable assignment;condition; iteration process ) ,statements1;statements2;…-

awk –F: ‘,for (i=1;i<=3;i++) print $1-’ /ect/passwd

awk –F: ‘,for (i=1;i<=NF;i+=2) print $i-’ /ect/passwd

for循环还可以用来遍历数组元素:

语法:for (i in array ) ,statements1;statements2;……-

awk –F: ‘$NF!~/^$/,BASH*$NF+++-END,for (A in BASH) ,printf “%15s:%i\n”,A,BASH*A+--’ /ect/passwd

5、case

语法:seitch (expression) ,case VALUE or /ERGEXP/: statements1;statements2;…default statements0 -

6、break和continue

常用于循环或case语句中

7、next

提前结束对本行文本的处理,并接着处理下一行

awk 内置变量:

FS: field separator,默认是空白字符;

RS:Record separator,默认是换行字符;

NR:The number of input records,awk命令所处理记录数:如果有多个文件,这个数目会把处理的多个文件中行统一计数;

NF:Number of Field,当前记录的field个数;

FNR:与NR不同的是,FNR用于记录正处理的行是当前这一文件中被总共处理的行数;

ARGV:数组,保存命令行本身这个字符串,如awk’,print $0-’ a.txt b.txt这个命令中,ARGV[0]保存awk,ARGV[1]保存a.txt;

ARGC:awk命令的参数的个数;

for Iin {0 .. 10}

print A[$i]

for (A in ARRAY) {print ARRAY[A]}

awk ‘BEGIN ,A*“m”+=”hello”;A*“n”+=”world”;for (B in A) print A*B+-’

awk中使用数组

array[index-expression]

index-expression 可以使用任意字符串,需要注意的是,如果某数据组元素事项不存在,那么在应用其时,awk会自动创建此元素并初始化为空串;因此,要判断某数据组中是否存在某元素,需要使用indexin array的方式。

要遍历数组中的每一个元素,需要使用如下的特殊结构:

for (var in array) ,statement1,…-

其中,var用于引用数组下标。

例子:

netstat –n|awk ‘/^tcp/ ,++S*$NF+- END ,for (a in S) print a,S*a+-’

netstat –ant |grep “LISTEN” |wc –l

netstat –ant | awk ‘$1 ~/tcp/{S[$NF]++}END{for (A in S) print A,S[A]}’

netstat –ant | awk ‘$1 ~/tcp/,S*$NF+++-END,for (A in S) printf “%10s:%s\n”, A,S*A+-’

awk –F: ‘$NF!~/^$/,SHELL*$NF+++-END,for (A in SHELL) print A,SHELL*A+-’ /etc/passwd

awk ‘,IP *$1+++-END,for (A in IP) print A,IP*A+-’ /usr/local/apach/logs/access_log

每出现一被/^tcp/模式匹配到的行,数组S[$NF]就加一,NF为当前匹配的行的最后一个字段,此处用其值作为数组S的元素索引;

awk ‘,count*$1+++-;END ,for (url in counts) print counts[url],url-’ /var/log/httpd/access_log

用法与上一个例子相同,用于统计日志文件中IP地址的访问量

awk ‘BEGIN,A*x+=”hello”;A*y+=”world”;print A*x+,A*y+-’

awk的内置函数

split (string, array [,fieldsep [,seps]])

功能:将string表示的字符串以filedsep为分隔符进行分割,并将分隔后的结果保存至array为名的数组中netstat –ant | awk ‘/:80/ ,split($5,clients,”:”);IP*client*1++++-END ,for (i in IP) ,print IP*i+,i--’|sort –rn |head -50

将netstat查询结果的第五列开始以:为分隔符开始切割,切割的结果保存在client数组中,并累计。

length([string])

功能:返回string字符串中字符的个数

substr (string ,start[, length])

功能:取string字符串中的子串,从start开始,取length个,start从1开始计数;

system(command)

功能:执行系统command并将结果访问至awk命令

systime()

功能:取系统当前时间

awk *options+ ‘PATTERN,cation-’ input_file

第二章Cacti

2.1snmp

net-snmp (Agent)

net-snmp-utils (NMS:command)

rpm –ql net

/etc/inid.d/snmpd start

netstat –unlp

snmpwalk –v 2c –c public localhost host

snmpwalk –v 2c –c public localhost

ls /usr/share/snmp/mibs

vim /etc/snmp/snmp.conf

less SNMPv2-MIB.txt

snmpget –v 2c –c public localhost HOST-RESOURCES-MIB::hrSystemUptime.0

less TCP-MIB.txt

vim /ect/snmp/snmp.conf

--添加TCP的MIB

/etc/init.d/snmpd restart

snmpwalk –v 2c –c public localhost tcp

snmpwalk –v 2c –c public localhost tcp |grep established |wc –l

vim /etc/snmp/snmp.conf

/etc/init.d/snmpd restart

snmpwalk –v 2c –c mypublic 172.16.100.1 tcp

snmpnetstat –v 2c –c mypublic –Ca –Cp tcp 172.16.100.1 ---返回主机所有的TCP端口或者服务

snmpnetstat –v 2c –c mypublic –Can –Cp tcp 172.16.100.1

snmpwalk -v 2c -c public 10.1.0.45 HOST-RESOURCES-MIB::hrSWRunName |awk -v NF=\" '{print $4}'

chkconfig snmpd on

2.2 RRDTool

RRD:

PDP:Primary Data Point

RRA:Round Robin Archive

CDP:Consolidation Data Point

rrd文件:

DS:(Data Source)数据源tool

2.2.1 RRD创建文件格式:

rrdtool create test.rrd --step 5 DS:testds:GAUGE:8:0:U RRA:AVERAGE:0.5:1:17280 RRA:AVERAGE:0.5:10:3456 RRA:AVERAGE:0.5:100:1210

ls –l

rrdtool info test.rrd

2.2.2 RRD提供数据格式:

rrdtool {update | updatev} filename [--template |-t ds-name [:ds-name]...][--]N|timestamp:value[:value...]

filename

-- template|-t ds-name[:ds-name] ...

rrdtool create test.rrd DS:ds1 DS:ds2

rrdtool update test.rrd N:30:40

rrdtool update test.rrd –t ds2:ds1 40:30

rrdtool update test.rrd N:$RANDOM

rrdtool fetch test.rrd AVERAGE ----nan 表示unkonw

vim genval.sh

#!/bin/bash

while true; do

rrdtool update test.rrd N:$RANDOM

sleep 5

done

chmod +x genval.sh

./genval.sh

rrdtool fetch --r 5 test.rrd AVERAGE

rrdtool fetch --r 50 test.rrd AVERAGE

rrdtool fetch --r 500 test.rrd AVERAGE

rrdtool fetch --r 10 test.rrd AVERAGE ---和5s是一样的

2.2.3 RRD绘图格式:

rrdtool graph|graphy filename [option ...] [data definition ..] [data calculation ...] [variable definition ...] [graph element ...] [ptinr element ...] ---filename为生成图片的名称

[-s|--start time] [-e|--end time][-S|--step seconds]

[-t|--title string] [-v|--veritical-label string]

[-w|--width pixels] [-h|--height pixels] [-j|--only-graph] [-D|--full-size-mode]

[-u|--upper-limit value] [-l|--lower-limit value] [-r|--rigid]

[-A|--alt-autoscale]

[-J|--alt-autoscale-min]

[-M|--alt-autoscale-max]

[-N|--no-gridfit]

X-Axis

[-x|--x-grid GTM:GST:MTM:MST:LTM:LST:LPR:LFM]

GTM:GST ---基准网格线(灰色线)

MTM:MST ---主网格线(红色线)

LTM:LST ---横轴网格线每隔多久显示一次

LPR:LFM ---显示日期时间

[-x|--x-grid none]

e.g: --x-grid MINUTE:10:HOUR:1:HOUR:4:0:%X

---横轴基准网格线为10分钟,主网格线为1个小时,每4个小时打印一次日期时间

Y-Axis

[-y|--y-grid grid step:label factor]

[-y|--y-grid none]

[-Y|--alt-y-grid]

2.3.4 RRD获取数据

DEF:vname=rrdfile:ds-name:CF[:step=step][:strat=time][:end=time]

CDEF:vname=RPN expression

VDEF:vanme=RPN expression

LINE[width]:value[#color][:legend][:STACK][:dashes[=on_s[,off_s[,on_s,off_s]...]][:dash-offset=offser]]

AREA:value[#color][:legend][:STACK]]

rrdtool graph a.png–step 5 –s [start time] –t Test –v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE LINE1:vtest#ff0000:”testline”

rrdtool graph a.png–step 50 –s [start time] –t Test –v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE LINE1:vtest#ff0000:”testline”

rrdtool graph b.png –s [start time] –t Test –v vtest DEF:vtest=/root/test.rrd:testds:AVERAGE:step=5 DEF:vtest=/root/test.rrd:testds:AVERAGE:step=50 LINE1:vtes t#ff0000:”5_testline” LINE2:vtest#00ff00:”50_testline”

完整的例子:

rrdtool create mysql.rrd --step 3 DS:myselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAGE:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880

mysql –e “SHOW GLOBAL STATUS LIKE ‘com_select’”

mysql --batch –e “SHOW GLOBAL STATUS LIKE ‘com_select’”

mysql --batch –e “SHOW GLOBAL STATUS LIKE ‘com_select’” |awk ‘/Com_select/|print $2-’

vim getselect.sh

#!/bin/bash

while true;do

SELECT=`mysql --batch –e “SHOW GLOBAL STATUS LIKE ‘com_select’” |awk ‘/Com_select/|print $2-’`

rrdtool update mysql.rrd N:$SELECT

sleep 3

done

bash –x getselect.sh

mysql –uroot –p

show database;

create database testdb;

create table tb1 (ID INT UNSIGNED Not NULL AUTO_INCREMENT PRIMARYKEY,NAME CHAR(50) NOT NULL)

\q

vim insert.sh

#!/bin/bash

for I in {1..20000};do

mysql –e “INSERT INTO testdb.tb1(NAME) VALUES (‘stu$I’)”

mysql –e “SELECT * FROM testdb.tb1 ” &> /dev/null

done

bash –x insert.sh

rrdtoolfetch–r 5 mysql.rrd AVERAGE

rrdtoolfetch–r 30 mysql.rrd AVERAGE

rrdtoolfetch–r 5 mysql.rrd MAX

rrdtoolfetch–r 5 mysql.rrd LAST

rrdtool graph mysql.png –s [start time] –t “mysql select” –v “select/3s” DEF:select3=mysql.rrd:myselect:AVERAGE:step=3 LINE1:select3#ff0000:”SELECT”

rrdtool graph mysql.png –s [start time] –t “mysql select” –v “select/30s” DEF:select30=mysql.rrd:myselect:AVERAGE:step=30 LINE1:select30#ff0000:”SELECT”

rrdtool graph mysql.png –s [start time] –t “mysql select” –v “select/3s” DEF:select3=mysql.rrd:myselect:AVERAGE:step=3 DEF:max3=mysql.rrd:myselect:MAX:step=3 DEF:last3=mysql.rrd:myselect:LAST:step=3 LINE1:select3#ff0000:”SELECT” LINE2:max3#ff0000:”SELECT”LINE3:last3#ff0000:”SELECT”

GPRINT:max3:MAX:”MAXIMUM\:%6.21f”GPRINT:last3:LAST:”CURRENT\:%10.21f” GPRINT:select3:AVERAGE:”AVERAGE\:%6.21f”

2.3 Cacti

rrdtool create

周期性执行能够取得数据的命令,并将取回的数据保存至rrd文件中

利用rrdtool绘图展示

php开发网页程序

LAMP,LNMP

--enable-sockets

插件机制

thold

模板

图像模板

数据模板

主机模板

路径:

默认安装路径:/var/www/html/cacti

默认web访问路径:http://IP/cacti

例子(其他路径配置):

新添加路径:/web/vhosts/cacti

web访问路径:https://www.doczj.com/doc/2818441360.html,

修改配置文件:

vi /etc/httpd/conf/httpd.conf

ServerName https://www.doczj.com/doc/2818441360.html,

DocumentRoot /web/vhosts/cacti

options Indexes

AllowOverride none

Require all granted

ErrorLog “logs/cacti-error_log”

CustomLog “logs/cacti-access_log” common

tar xf cacti-0.8.8a.tar.gz –c /web/vhosts

cd /web/vhost

ls –l

ln –sv cacti-0.8.8a cacti

/etc/inid.d/httpd restart

cd cacti

ls –l

mysqladmin create cactidb --- 创建数据库在此管理员没有密码

mysql cactidb < cacti.sql

mysql –e “GRANT ALL ON cactidb.* TO cactiuser@localhost IDENTIFIED BY ‘cactiuser’”

---创建cactiuser用户,密码是cactiuser

mysqladmin flush-privileges

mysql –ucactiuser –p

show database;

\q

cd include

vi config.php

$url_path= “/” ---使用根目录

useradd cactiuser

chown –R cactiuser:cactiuser rra/ log

安装cacti:

输入IP地址:https://www.doczj.com/doc/2818441360.html,

Next >>

Next >>

Finish

User Login

User Name:admin

Password:admin

登陆之后修改密码:123456

收集方法:数据收集方法

数据查询:xml格式数据收集方法

数据输入方法:命令或者脚本

脚本:

只需要制定如何获取数据,并且获取到的数据经过处理后要按规定输出

TAG:data TAG:data

input:30 output:40

poller.php –-指定脚本执行周期单线程

spine ----指定脚本执行周期多线程

创建周期性计划:

方法1:echo ‘*/5 * * * * /usr/bin/php /web/vhost/cacti/pooler.php &>/dev/null’ > /var/spool/cron/cactiuser ---- */5 * * * * 每隔5分钟执行一次

---- /usr/bin/php →php的执行文件默认路径为/usr/bin/php

----/web/vhost/cacti/pooler.php →pooler.php路径

----/var/spool/cron/cactiuser →给cactiuser用户创建一个周期性计划

方法2:crontab –u cactiuser –e

*/5 * * * * /usr/bin/php /web/vhost/cacti/pooler.php &>/dev/null

手动执行一次

su – cactiuser

/usr/bin/php /web/vhost/cacti/pooler.php

特殊问题:

vi /ect/php.ini

data.timezone= Asia/Shanghai

service httpd restart

cd /web/vhosts/cacti/log

ls

tail cacti.log

ls ../rra

date

hwclock –s

date

date 0725162712 ---2012年7月25日16:27

创建脚本:

vi tcpxonn.sh

#!/bin/bash

#$1:hostname or IP

#$2:snmp comminity

SNMPNETSTAT=/usr/bin/snmpnetstat

$SNMPNETSTAT –v 2c –c $2 –Can –Cp tcp $1 --end

chmod +x tcpconn.sh

./tcpconn.sh 10.1.0.102 public

vi tcpxonn.sh --脚本添加新的功能

ESTABLISHED=‘$SNMPNETSTAT –v 2c –c $2 –Can –Cp tcp $1 |grep –i ‘established’ |wc –l’echo –n “established:$ESTABLISHED” ---end

cp tcpconn.sh /web/vhosts/cacti/scripts/

添加脚本:

https://www.doczj.com/doc/2818441360.html,

Console→Collection Methods→Data Input Methods→add

Name: SNMP-tcp connections

Input Type: Script/Command

Input String: /bin/bash /scripts/tcpconn.sh →Create

Output Fields→add

Field[Output]: established

Friendly Name: TCP Established

Update RRD File: 打钩

→Create

Data Templates→add→

Name: SNMP-TCP connections

Data Source

第三章软件包管理

软件包的组成:

二进制程序

配置文件

组成方式:

单文件

将主配置文件切割成为多个小文件,并放置于某个目录中

etc/profile, /etc/profile.d/*

etc/pam.conf, /etc/pam.d/*

etc/yum.conf, /etc/yum.conf.d/*

单文件,在内部风格为多个片段

库文件(二进制,可执行):

静态库

动态库

帮助文件

手册页

文档(/usr/share/doc)

linux:GNU/Linux

Kernel

Application

N种功能

编译进了大多数常用飞功能

源程序:

编辑

应用程序存放的位置:

二进制程序

/bin,/sbin:自身启动

/usr/bin ,/usr/sbin:系统功能

/usr/local/bin, /usr/local/sbin :系统的补充功能

库文件:

/lib, /usr/lib

/etc/ld.so.conf /etc/ld.so.conf/*.conf

置文件:

/etc

/etc/httpd/

/usr/local/etc

帮助文件:

/usr/share/man

/etc/man.config

/usr/share/doc

库:功能模块

start() :函数,功能,function

头文件:/usr/include

一个代码片段,能完成某独立功能,并可以被其他程序所调用

一个操作系统的组成部分:Kernel,glibc,app

软件管理管理:

安装、卸载、升级、查询、检验

依赖关系:z→y→x

windows系统依赖关系使用的是注册表

linux系统yum、apt-get

debian:

应用程序:

二进制、库、配置文件、帮助文件

dpkg→ apt-get

数据库

每一个软件安装生成的文件的相关信息

deb格式

RedHat(rpm)

Redhat Package Manager:RPM

.rpm

标准的软件管理格式:

SUSE

硬件架构:

x86、x64、powerpc、sparc、arm

二进制程序:有格式,特定于某硬件平台(编译器自身会在软件编译时对软件在特定平台上进行优化) rpm格式的软件包如何命名:

name-version-release.arch.rpm

子包:name-subname-version-release.arch.rpm

version:(例如2.1.3)

major(整体格局等)、minor(新功能)、release(bug等)

x86 32bit

i386、i486、i586、i686

一个软件包未来在管理上的方便,在制作成rpm包的时候,可以分为多个功能相对独立的rpm包:name-version :主包

name-subname-version :子包

name-devel-version :库文件,头文件等

依赖关系:

x→y→z→a+b→c

自动判断依赖关系,又能自动解决依赖关系的软件管理工具

yum:yellowdog update modifier

linux上软件包的安装途径:

1、rpm包

rpm命令、yum命令

2、源码包

编译安装

3、编译好的二进制压缩包,解压后配置使用

MySql、MongoDB、fetion

rpm命令:

安装

rpm –ivh package1 package2 ...

卸载

rpm –e package_name1 package_name2 ...

程序

rpm –q

升级

rpm –U|-F package1 package2 ...

校验

rpm –v package_name1 package_name2 ...

rpm包中包含的内容

要安装的文件

要执行的脚本:pre、post、preun、postun

安装:(依赖的东西叫capacity)

rpm –i

-v

-h

--test

--nodeps 忽略依赖关系

--replacepkgs 替换性的安装

--force 强行安装(无视冲突)

卸载:x→y

rpm –e package_name

--nodeps

升级:old→new;new→old

rpm

-F:old→new 无old,则不new

-U:old→new 无old,则安装new

-v

-h

注意:内核不应该升级安装,内核允许多版本并存,可以直接安装多个不同版本的内核--oldpackage:降级

查询:

rpm –q package_name

rpm –qa|grep package_name 所有rpm

rpm –qi package_name

第四章企业常用防火墙iptables相关原理详解4.1 防火墙的类型:

包过滤型防火墙:(IP/TCP)

简单包过滤、带状态检查包过滤(连接状态)

简单包过滤

带状态检测包过滤:连接状态

应用层网关防火墙:(对特定的应用层协议做检查)

硬件:

Netscreen、checkpoint

linux内核:

TCP/IP:网络子系统

打开linux系统转发功能:/proc/sys/net/ipv4/ip_forward

linux路由表查看:route –n、netstat –rn

ipfw ---linux kernel2.0

ipchains ---linux kernel 2.2

iptables ---linux kernel 2.4以后

iptables:用户空间工具

编写规则:

netfilter

内核中,框架(framework)

hook function

规则链INPUT、OUTPUT、FORWARD、PREROUTING 、POSTROUTING

源地址转换:SNAT --在即将出去的网卡地址做转换

目标地址转换:DNAT --在刚刚进来的网卡地址做转换

端口地址转换:PNAT --

4.2 防火墙的功能:

filter ---过滤

nat ---转换

mangle---修改

raw

数据包过滤匹配流程:

转发数据流向:

到本机

Prerouting→Input

转发

Prerouting→Forward→Postrouting

由本机发出

Output→Postrouting

table:

raw

Prerouting、Output

mangle

Prerouting、Input 、Output 、Forward、Postrouting

nat

Prerouting、Output、Postrouting

filter

Input 、Output 、Forward

过滤:

匹配条件

netfilter,检查模块

拓展模块

处理动作

Accept

Drop,Reject

4.3 iptables用法

iptables [-t TABLE] COMMAND CHAIN [CRETIRIA] –j ACTION -t 后跟的table:raw mangle nat filter[默认]

COMMAND:对链或者对链中的规则进行管理操作

链中规则:

-A ---在链中最后添加一条新的规则

-I # ---插入一条规则,#表示插入为第几条

-R # ---替换第几条规则

-D # ---删除第几条规则或者–D CRETAERIA删除链中规则

链:

-N ---新建一个自定义链

-X ---删除一个自定义的空链

-E ---重命名一条自定义链

-F ---清空指定链,如果不指定链,就会清空整个表中的链

-P ---设置链的默认策略

-Z ---置零(每条规则,包括默认策略都有两个计算器,一个是被本规则匹配到的所有数据包的个数,另一个是被本规则匹配到的所有数据包的大小之和)

-L ---查看

-v --详细

-vv --更加详细

--line-munbers ---行号

-x --显示精确值

-n --不要对地址或者名称做反解【显示数字地址】

ipatbes:

服务脚本:/ect/rc.d/init.d/iptables

脚本配置文件:/ect/sysconfig/iptables-config

规则保存位置:/etc/sysconfig/iptables

service iptables {status|start|stop|restart|save}

ls /ect/rc.d/init.d

…iptables …

ls /ect/sysconfig

…iptables-config …

service iptables status

cat /etc/sysconfig/iptables

service iptabes start

touch /etc/sysconfig/iptables

service iptabes start

iptabels –L –n

iptabels –L raw –n

iptabels –L nat –n

iptabels –L managle–n

iptabels –L raw –n -v

匹配条件:

通用匹配:

-s --源地址

-d --目标地址

IP

NETWORK/MASK

!

-p {icmp|tcp|udp} --协议

-i IN_INTERFACE --指定流入接口

-o OUT_INTERFACE --指定流出接口

-j TARGET

ACCEPT

DROP

REJECT

REDIRECT

DNAT

SNAT

MASQUERADE

LOG

扩展匹配:

隐式扩展

-p tcp

--sport PORT[-PORT2]

--dport PORT[-PORT2]

--tcp-flags SYN,ACK,RST,FIN SYN (=--syn )

-p udp

--sport PORT[-PORT2]

--dport PORT[-PORT2]

-p icmp

--icmp-type

0:echo-reply ---响应

8:echo-request ---请求

显示扩展

netfilter扩展模块引入的扩展,用于扩展匹配条件,通常需要额外专用选项来定义

-m state --用于实现链接的姿态检测

--state

NEW,ESTABLISHED,

RELATED[例如fdp],INVALID[无效的]

-m multiport

--source-ports

--destination-ports

--ports

rpm –ql iptables

……

/lib/iptables/libipt_state.so ---扩展state模块

……

/lib/iptables/libipt_mutiport --扩展mutiport模块

…….

iptabes –t filter –A INPUT –s 172.16.0.0/16 –p icmp –-icmp-type 8 –j DROP

---不允许172.16.0.0/16网段的用户ping本机

iptables –t filter –L –n

……

target port opt source destination

DROP icmp -- 172.16.0.0/16 0.0.0.0/0 icmp type 8

Linux操作系统基础教程

Linux操作系统基础教程 清华大学信息学院计算机系 目录 前言 (2) 第一讲 Linux基础 (2) 一.什么是Linux? (2) 二.安装Linux的好处? (3) 三.如何得到Linux? (3) 四.如何得到Linux的最新消息? (3) 五.Linux操作系统上有什么应用? (4) 六.在那里可以找到讨论区? (5) 七.安装过程 (5) 第二讲 Linux基础进阶 (5) 一.Linux的文件系统结构 (6) 二. 文件类型 (7) 三.Linux基本操作命令 (8) 四.基本的系统管理命令 (14) 五.关於 Process 处理的指令 (16) 六. 关於字串处理的指令 (17) 七. 网路上查询状况的指令 (17) 八. 网路指令 (18) 九. 关於通讯用的指令 (21) 十. 编译器( Compiler ) (22) 十一. 有关列印的指令 (22) 第三讲 Linux下的网络服务,配置问题和常用工具 (24) 一.Linux下的网络服务 (24) 二.几种重要的配置文件 (26) 三.Linux下常用的工具软件 (28) 尾语 (31)

前言 Linux是在1991年发展起来的与UNIX兼容的操作系统,可以免费使用,它的源代码可以自由传播且可任人修改、充实、发展,开发者的初衷是要共同创造一个完美、理想并可以免费使用的操作系统。 我们并不能使同学们通过这次系列讲座成为一个UNIX类操作系统的高手,这次系列讲座的目的就是在同学们中间普及Linux基础知识,为今后我们更加接近的了解Linux做一个好的开端。 第一讲 Linux基础 在这一讲中,我们主要是了解一下Linux的概况,以及对Linux有一个初步的感性认识。 一.什么是Linux? Linux是一个以Intel系列CPU(CYRIX,AMD的CPU也可以)为硬件平台,完全免费的UNIX兼容系统,完全适用于个人的PC。它本身就是一个完整的32位的多用户多任务操作系统,因此不需要先安装DOS或其他的操作系统(MS Windows, OS2, MINIX..)就可以进行直接的安装。Linux的最早起源是在1991年10月5日由一位芬兰的大学生Linux Torvalds (Torvalds@kruuna.helsinki.fi)写了Linux核心程序的0.02版开始的,但其后的发展却几乎都是由互联网上的Linux社团(Linux Community)互通交流而完成的。Linux不属于任何一家公司或个人,任何人都可以免费取得甚至修改它的源代码(source code)。Linux上的大部分软件都是由GNU倡导发展起来的,所以软件通常都会在附着GNU Public License(GPL)的情况下被自由传播。GPL是一种可以使你免费获得自由软件的许可证,因此Linux使用者的使用活动基本不受限制(只要你不将它用于商业目的),而不必像使用微软产品是那样,

linux基础篇之常用命令(一)

Linux常用命令(一) 虽然Linux发行版支持各种各样的饿GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快速的。Bash和Linux Shell需要输入命令来完成任务,因而被称为命令行接口。 命令是计算机执行任务的指令。可以使用命令去关闭计算机,或者列出当前目录的文件列表,或当前文本的内容,或者屏幕显示一条消息。 如果你是一个新手,并尝试使用命令行接口,我们收集了各种基本的Linux命令来供你学习,帮你在各种Linux发行版中完成各种任务。虽然不是很详细,但是对Linux初学者,或普通用火,或管理员都是很有用的。 1.Is-List ls会列举出当前工作目录的内容(文件或文件夹),就跟你在GUI中打开一个文件夹去看里面的内容一样。 2.mkdir —Make Directory mkdir 用于新建一个新目录 3.pwd —Print Working Directory pwd显示当前工作目录 4.cd—Change Directory 对于当前在终端运行的会中中,cd 将给定的文件夹(或目录)设置成当前工作目录。

5.rmdir—Remove Directory rmdir 删除给定的目录。 6.rm—Remove rm 会删除给定的文件或文件夹,可以使用rm -r 递归删除文件夹 7.cp—Copy cp 命令对文件或文件夹进行复制,可以使用cp -r 选项来递归复制文件夹。 8.mv—Move mv 命令对文件或文件夹进行移动,如果文件或文件夹存在于当前工作目录,还可以对文件或文件夹进行重命名。

献给初学者:谈谈如何学习Linux操作系统

献给初学者:谈谈如何学习Linux操作系统 一、选择适合自己的linux发行版 谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是 有一点是可以肯定的,linux正在变得越来越流行,面对这么多的Linux发行版,打算从其他系统转到linux系统来的初学者可能会感到困惑,即便是忠实的 Linux用户也没有时间和精力去挨个尝试,因此初学者在学习linux的之前,需 要有一个明确的方向,选择一个适合自己的系统开始学习linux至关重要!下面 我们就分类介绍。 1.1初学者入门首选-redhat系列 在学习redhat系列linux之前,首先要了解以下redhatlinux各个发行版本之 间的关系。 1.RedHatLinux RedHatLinux是redhat最早发行的个人版本的linux,其1.0版本于1994年11月3日发行。虽然其历史不及其它linux发行版本悠久,但比起很多的Linux 发行套件,RedHat的历史悠久得多。自从RedHat9.0版本发布后,RedHat公司就不再开发桌面版的Linux发行套件,RedHatLinux停止了开发,而将全部 力量集中在服务器版的开发上,也就是RedHatEnterpriseLinux版。2004年4 月30日,RedHat公司正式停止对RedHat9.0版本的支持,标志著RedHatLinux的正式完结。原本的桌面版RedHatLinux发行套件则与来自开源 社区的Fedora进行合并,成为FedoraCore发行版本。 目前RedHat分为两个系列:由RedHat公司提供收费技术支持和更新的RedHatEnterpriseLinux,以及由社区开发的免费的FedoraCore。 2.FedoraCore FedoraCore(缩写为FC)被红帽公司定位为新技术的实验场地,许多新的技 术都会在FC中检验,如果稳定的话红帽公司则会考虑加入RedHatEnterpriseLinux中。 FedoraCore1发布于2003年年末,而FC的定位便是桌面用户。FC提供了 最新的软件包,同时,它的版本更新周期也非常短,仅6个月。由于版本更新 频繁,性能和稳定性得不到保证,因此,一般在服务器上不推荐采用FedoraCore。 其实可以这么认为,Fedora就是RedHat发行RedHat企业版linux的一个 实验版本,以用户做测试,为RedHat企业版发布奠定基础。 3.RedHatEnterpriseLinux RedHatEnterpriseLinux(缩写为RHEL,RedHat的企业版)。RedHat现在主要做服务器版的linux开发,在版本上注重了性能和稳定性以及对硬件的支持。由于企业版操作系统的开发周期较长,注重性能、稳定性和服务端软件支持, 因此版本更新相对较缓慢。

xlib库基本图形编程技术文档新手入门linux时代开源、自由、共享...

xlib库基本图形编程技术文档新手入门linux时代开源、自 由、共享... Xlib库基本图形编程 Basic Graphics Programming With The Xlib Library http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/ xlib-programming.html 1. Preface 2. The Client And Server Model Of The X Window System 3. GUI programming - the Asynchronous Programming Model 4. Basic Xlib Notions 1. The X Display 2. The GC - Graphics Context 3. Object Handles 4. Memory Allocation For Xlib Structures 5. Events 5. Compiling Xlib-Based Programs 6. Opening And Closing The Connection To An X Server 7. Checking Basic Information About A Display 8. Creating A Basic Window - Our "hello world" Program 9. Drawing In A Window

1. Allocating A Graphics Context (GC) 2. Drawing Primitives - Point, Line, Box, Circle... 10. X Events 1. Registering For Event Types Using Event Masks 2. Receiving Events - Writing The Events Loop 3. Expose Events 4. Getting User Input 1. Mouse Button Click And Release Events 2. Mouse Movement Events 3. Mouse Pointer Enter And Leave Events 4. The Keyboard Focus 5. Keyboard Press And Release Events 5. X Events - A Complete Example 11. Handling Text And Fonts 1. The Font Structure 2. Loading A Font 3. Assigning A Font To A Graphics Context 4. Drawing Text In A Window 12. Windows Hierarchy 1. Root, Parent And Child Windows 2. Events Propagation 13. Interacting With The Window Manager

Linux入门

1Linux基础+常见命令 今日大纲 了解Linux系统 安装Linux虚拟机 学习Linux的常用命令 多用户以及权限学习 Linux实战 技术亮点: Linux的使用 它作为服务器有什么优势?为什么最终部署不选择windows,而选择Linux? 1.1Linux介绍 1.1.1Unix Unix是一个强大的多用户、多任务操作系统。 于1969年在AT&T的贝尔实验室开发。 Unix的商标权由国际开放标准组织(The Open Group)所拥有。 Unix操作系统是商业版,需要收费,价格比windows正版要贵一些。 1.1.2Linux Linux是基于Unix的。 诞生于1991年10月5日。 Linux是一个自由的,免费的,源码开放的操作系统。 Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。

Linux的历史 Linux最初是由芬兰赫尔辛基大学学生Linus Torvalds由于自己不满意教学中使用的MINIX操作系统,所以在1990年底由于个人爱好设计出了Linux系统核心。后来发布于芬兰最大的ftp服务器上,用户可以免费下载,所以他的周边的程序越来越多,Linux 本身也逐渐发展壮大起来,之后Linux在不到三年的时间里成为了一个功能完善,稳定可靠的操作系统。 1.1.3应用领域 *服务器系统 Web应用服务器、数据库服务器、接口服务器、DNS、FTP等等; 嵌入式系统 路由器、防火墙、手机、PDA、IP分享器、交换器、家电用品的微电脑 控制器等等; 高性能运算、计算密集型应用 Linux有强大的运算能力 桌面应用系统 移动手持系统 1.1.4Linux版本 Linux的版本分为两种:内核版本和发行版本; 内核版本是指在Linus领导下的内核小组开发维护的系统内核的版本号; 发行版本是一些组织和公司根据自己发行版的不同而自定的;

初学者Linux上安装JDK、_达梦数数据库(史上最细腻)

Linux系统上安装Java环境指南Java_Linux_Install_Guide 2012-05-09 修订记录

目录Content 概述 (3) 达梦数据库的安装 (3) 原Linux系统中JDK的卸载 (8) 安装新的的JDK (11)

一、概述 1、介绍 请以root用户在系统桌面上运行终端。 2、用到的工具 1)用于在win和Linux之间FTP 2)Linux版本(麒麟系统): 3)达梦数据库DMDBMS: 4)JDK : 二、安装达梦数据库的(DMDBMS) 1、准备工作: 用File Zilla工具把达梦数据库、JDK等上传到目的 Linux中,建议新建一个文件夹,以便后期维护; 2、安装达梦数据库 第一步:检查系统资源限制。使用命令ulimit –a。如下图:

需要注意的有4个选项: ①data seg size(kbytes,-d),建议设置为1048576(1G)或unlimited(无限制)。 ②file size(blocks,-f),建议用户设置为unlimited(无限制)。 ③open file(-n),建议设置为65536以上或unlimited(无限制)。 ④virtual memory(kbytes,-v),建议设置为1048576(1G)或unlimited(无限制)。修改其大小的方法以open file为例:ulimit –n 65536。或者到/etc/profile里添加这句话。 第二步:安装,如果没有执行权限,请赋予文件X 权限,执行下面步骤前请回到Linux X Window 界面,不要在SSH这样的远程工具上操作,因为要弹出界面操作。 #tar -zxvf dm7_noeky6.tar.gz #cd dm7_neoky6 #chmod 777 DMInstall.bin #./DMInstall.bin *** 赋予执行权限命令:chmod u+x 或者chmod 777 可能会报错“tmp目录不够600M”,此时需要对/tmp目录进行扩容(具体方法上网查阅)。或者更换安装目录,操作如下: DM_INSTALL_TMPDIR=/opt/tmp Export DM_INSTALL_TMPDIR 注意:目录可以自己更改,但是前提是需有足够空间。 查看空间大小命令是:df –h /tmp 第二步:配置DMDBMS,上面的命令等待数秒后会弹出图形界面,见下图 因为我的是英文环境,所以弹出,

Linux运维从入门到高级全套案例v3

Linux运维入门到高级 目录 1. Linux入门篇 (3) 1. 1 Linux操作系统简介 (3) 1. 2 Linux发展趋势 (4) 1. 3 Linux系统安装 (4) 1. 4 Linux学习技巧 (19) 2. Linux系统篇 (20) 2.1 Linux系统管理 (20) 2.1. 1 Linux目录初识 (20) 2.1. 2 Linux常用命令 (21) 2.1. 3 Linux用户权限 (22) 2.1. 4 Linux网络配置 (23) 3. Linux服务篇 (25) 3.1 Linux服务部署 (25) 3.1. 1 构建NTP时间服务器 (25) 3.1. 2 构建DHCP服务器 (27) 3.1. 3 搭建Samba服务器 (29) 3.1. 4 搭建NFS服务器 (32) 3.1. 5 搭建FTP服务器 (33) 3.1. 6 构建Apache WEB服务器 (35) 3.1. 7 构建MySQL服务器 (38) 3.1. 8 LAMP架构网站搭建 (42) 3.1. 9 Cacti监控平台搭建 (46) 3.1. 10 Nagios监控平台搭建 (50) 3.1. 11 Kickstart自动化安装平台 (56) 4. Linux编程篇 (60) 4.1 Linux Shell编程 (60) 4.1. 1 Shell编程简介 (60) 4.1. 2 Shell变量设置 (61) 4.1. 3 Shell流程控制语句 (62) 4.1. 4 Shell脚本案例 (67) 4.1. 5 Shell数组编程 (71) 5. Linux深入篇 (72) 5. 1 构建Nginx WEB服务器 (72) 5.1. 1 Nginx WEB安装 (73)

linux基础知识总结

linux基础知识总结 1 linux 概述 1.1 linux 结构 1.1.1 linux的四部分 可以把Linux系统看作由四部分构成:内核、用户界面、文件结构和实用工具 /bin 普通用户的可执行文件,系统的任何用户都可以执行该目录中的命令 /boot 存放Linux操作系统启动时所需要的文件 /dev 系统中所有设备文件 /etc 系统中的配置文件 /home 普通用户的宿主目录,每个用户在该目下都有一个于用户名同名的目录。 /mnt 中的子目录用于系统中可移动设备的挂载点 /root 超级用户root的宿主目录 /sbin 系统中的管理命令,普通用户不能执行 /tmp 系统的临时目录 /usr 系统应用程序的相关文件 /var 系统中经常变化的文件如日志文件和用户邮件 / / \ / \ etc home

/ / / / profilexiaoming / \ 配置系统 .bash_profile 环境变量配置用户的环境变量 环境变量:配置.bashrc文件可以指定某些程序在用户登录的时候就自动启动 系统环境变量设置:在root目录下 Vi .bash_profile 修改PATH=$PATH:$HOME/bin :/安装目录/bin 需要退出(quit),重新登陆 当希望临时加入某个环境变量:用export PATH =$PATH : $HOME /bin:/root/test/t1 已定义好的环境变量: SHELL:默认的shell PATH:路径 USER:当前登录用户的用户名 显示变量内容:echo $PATH echo $USER echo $SHELL 也可以使用env命令显示环境变量 通配符: * 代表多个字母或数字 ?一个 别名: 命令:alias显示系统当前定义的所有alias aliascp ='cp-i' aliasll='ls -l --color = tty' 2. linux 基本命令 2.0 重启 shutdown - h now 立刻关机 shutdown - r now 重启 reboot 重启 2.1 文件查看和连接命令 cat cat[选项]

linux基础教程考试及答案

linux基础教程考试及答案 1 / 8

————————————————————————————————作者:————————————————————————————————日期: 2 / 8

(由于大部分内容是本人做的,如果答案有疑问 或错误的请和我联系) 一、填空题 1、某文件的权限为:drw-r--r--,用数值形式表示该权限,则该八进 制数为:( 644 ) 2、使用vi编辑器后,在指令模式下输入( wq )保存编辑的文件 后离开vi编辑环境。 3、在控制台登陆后,可以通过键入( sartx )或 xinit来启动图形 化桌面。 4、在终端上假设当前登陆的用户是Test,切换登陆的用户为Student 的命令是( su student )。 5、启动Apache服务器的命令是( service httpd start )。 6、查看文件sneakers.txt开始的十行( head sneakers.txt )。 7、显示所有文件的命令是( ls -a ) 8、挂载U盘(设U盘设备名为sda2,具体用fdisk –l命令查看U盘 设备名)中的内容,至/mnt/usb/sda下的命令是(ls -a mount /dev/sda2 /mnt/usb/sda ) 9、在linux系统上做备份可以有两种类型:(用户备份) 和(系统备份)。 10、链接分为:(硬链接)和(符号链接)。 11、安装Linux系统对硬盘分区时,必须有两种分区类型:(文件 系统分区)和(交换分区)。 12、vi编辑器具有两种工作模式:(命令模式)和(输入 模式)。 13、Sendmail邮件系统使用的两个主要协议是:(SMTP )和( POP),前者用来发送邮件,后者用来接收邮件。 14、mv 命令可以(移动文件和目录),还可以(重命名文件、目录)。 15、shell不仅是(用户命令的解释器),它同时也是一种功能强大的编程语言。(bash )是Linux的缺省shell。 16、增加一个用户的命令是:(adduser )或(useradd )。 二、单项选择题(30分,每题2分) 1、在命令: [root@teacher root]# rpm -qa|grep vsftpd的功能是( A )。 A. 安装vsftpd B. 启动vsftpd C. 检查系统是否已安装vsftpd D. 运行vsftpd程序 2、删除文件命令为:( D )。 A. mkdir B. rmdir C. mv D. rm 3、关闭linux系统(不重新启动)可使用( A )命令。 A.power off B. ctrl+alt+del C. shutdown -r D. reboot 4、对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是( D )。 A. -rwxr-xr-x B. -rwxr--r— C. -r--r--r— D. -r-xr-x—x 5、下面不是对Linux操作系统特点描述的是(B ) A、良好的可移植性 B、单用户 C、多用户 D、设备独立性 6、下面哪个命令不能用来显示文本的内容(C) A、more B、less C、find D、cat 3 / 8

linux基础知识与基本命令

Linux基本命令与操作 一:linux基本知识与命令操作 二:linux下的实践(操作系统的安装以及oracle数据库的安装) 三:linux下关于产品的操作(产品环境的部署,备份与恢复) 四:linux服务器的安全配置以及oracle数据库的调优. 一:linux基本知识 1:Linux是由一个芬兰Helsinki大学的学生Linus Torvalds开发的UNIX的克隆。在Linus上大学的时候,由于AT&T与加州大学伯克莱分校在BSD版权问题上发生了法律纠纷,导致BSD的源代码还不能自由使用,所以Linus写了他自己的UNIX版本. 2:Linux只是一个内核,是由Linus Torvalds个人维护的。作为一个完整的系统,Linux中还加入了许多GNU的东西。所以Linux更确切的称呼应该是GNU/Linux。 Linux有很多发行商,像Redhat,SuSe,Caldera,Debian,Slackware等等,它们互相之间是不兼容的,各个厂商都加入了很多自己的东西。所以说Linux正在像当年的UNIX一样走向分裂。不过,幸运的是已经有权威人士意识到了这一点。 3:Linux与UNIX有什么不同? Linux也是属于UNIX家族的一员,它有许多特性是与UNIX相同的,它们之间的最大区别在于以下两点: 1)UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上; 2)UNIX是商业软件,而Linux是自由软件,免费、公开源代码的。 常见的unix系统有sun solairs IBM AIX,hp hp-unix. 经过咱们产品测试的unix系统有sun solairs, hp-unix,产品可以在这两种unix系统上运行,理论上产品也可以在IBM AIX上面运行,但是没有经过测试. 4:RedHat Linux有哪些特点? RedHat Linux是最成熟的一种Linux发行版,其无论在销售还是装机量上都是市场上的老大。在中国老一辈Linux爱好者中几乎都是RedHat的使用者。市场上有大量的文章是针对RedHat 来说的。RedHat Linux朴实、简洁、稳定,是作为商业应用、钻研Linux的好平台。 5: RedHat Linux分类 Red Hat linux: (1)Red Hat linux 个人版 (2)Red Hat Enterprise Linux 企业版 Red Hat linux 个人版 linux6.1 7.0 7.3 8.0 9.0 关于7.3(最稳定的版本)

Ubuntu Linux 入门

Ubuntu Linux 入门 安装Ubuntu Linux 前的准备工作 1. 确认电脑是否可以安装Ubuntu 如今Ubuntu 的硬件支持已经相当完善,只要不是特别少见的硬件都可以正常使用。而且Ubuntu 可以自动侦测安装硬件驱动程序,除了少数硬件需要安装版权受限的附加驱动之外,大多数硬件都不需要手动安装驱动程序。如果不能确定硬件是否能够正常工作,可以尝试使用Wubi 安装Ubuntu 进行测试,具体步骤可参阅Ubuntu Linux 入门(二):安装Ubuntu Linux 。 Ubuntu 的系统配置要求不高,以Ubuntu 11.04 桌面版本为例,最低硬件需求如下:CPU:主频1 GHz 以上 内存:384 MB 以上 硬盘:5 GB 以上 对于目前主流的个人计算机来说,达到上述配置并不困难,主要需要保证的是有足够的硬盘空间,推荐保留给Ubuntu 的自由空间为20 GB 以上。 2. 下载Ubuntu 光盘镜像 推荐大家到 Ubuntu 官方网站下载Ubuntu 光盘镜像,推荐大家下载最新版本的Ubuntu 11.04 Desktop CD光盘镜像。 访问https://www.doczj.com/doc/2818441360.html,/download/ubuntu/download,页面中会有两个选项可供选择: 版本:目前可供下载的版本有“Ubuntu 11.04 –Latest version”和“Ubuntu 10.04 LTS –Long-term support”。前者是当前的最新版本,后者则是当前最新的长期支持版版本。对于普通使用者来说,推荐大家选择最新版本。 架构:Ubuntu 支持32 位和64 位的计算机,Linux 的可移植性强于Windows,所以使用64 位Ubuntu 所出现的兼容性问题较Windows 少,但是部分专有软件如Adobe Flash Player 对64 位Linux 的支持仍然不甚完美,因此推荐大家下载32 位版本。 设置完毕之后点击Download 按钮就可以开始下载,Ubuntu 网站会自动寻找距离你较近的服务器提供下载。 3. 选择安装方式 Ubuntu 有两种安装方式,一种是将Ubuntu 安装到某个Windows 分区,也就是所谓的Wubi 安装;另一种则是将Ubuntu 安装到独立的Linux 分区之中。 Wubi 是Windows-based Ubuntu Installer 的缩写,意为基于Windows 的Ubuntu 安装程序。就如字面所说,Wubi 是一个建基于Windows 的Ubuntu 安装程序,是将Ubuntu 以一个软件的形式安装在Windows 系统之中。 对于新手来说,Wubi 安装较为简便,可以直接在Windows 中安装,不需要准备可启动的安装介质,也不涉及调整分区的操作。Wubi 还有一个有趣的功能,就是用户可以在Windows 的“添加或删除程序”中卸载Ubuntu。 不过,采用Wubi 安装的Ubuntu 不支持休眠,性能上有一些损失,Wubi 的文件系统也比普通的文件系统更脆弱。而且,Wubi 在某些计算机上会出现不明的错误而无法正常安装。因此,建议大家使用Wubi 安装作为测试体验之用。对于希望深入学习Linux 的朋友来说,我认为最好还是将Ubuntu 安装到独立的Linux 分区之中,以获得一个稳定性更强、性能更好的操作系统。 Wubi 安装和将Ubuntu 安装到独立的Linux 分区的具体步骤请参阅 Ubuntu Linux 入门(二):安装Ubuntu Linux 。 4. 准备安装介质

[图文] linux sed入门的15个小操作

[图文] linux sed入门的15个小操作 E-mail:nathanielwen@https://www.doczj.com/doc/2818441360.html, 近期在学习Linux Shell编程中关于sed工具的部分,出于习惯,在经历各种百度、各种论坛、各种资料之后,一定会整理一份文档作为自己学习的小小总结,也希望可以帮助很多跟我一样渴望进入Linux世界的新手们,这里要推荐两个很好的资源: https://www.doczj.com/doc/2818441360.html,/command/ UNIX.shell范例精解(第4版) 这份文档里面的很多知识点,包括使用的databook文件等都来自于这两个资源,如果有侵犯版权问题,也请见谅~ 关于文档的几点说明: (没有耐心的童鞋可以跳过这一页) 1、注释部分用“#” 2、指令部分用黄色的底色标出,在其后附上指令运行截图 3、每个操作涉及的选项或者参数均用红色加粗字体显示 4、部分操作之后会附加知识点拓展和常用操作,希望可以更有效的使用sed工具 5、文档正文部分结束后附录I会有一些知识点的补充,难度上没有增加,只是不方便安排在常用操作中 6、关于元字符和正则表达式的部分,难度较大,再其他文档中会有讲解,或者也可以参阅《UNIX.shell范例精解(第4版)》,该书扫描版的pdf文档可以上网下载或者发邮箱联系我,很欢迎可以分享优秀的资源 7、文档的附录II部分,列出了文件databook的内容 我也是新手,理解能力,表达能力不足,很多内容不可能面面俱到,同时,必然也会存在很多纰漏,希望大家指正、见谅,我已经尽力了,thank you~

#首先介绍一下命令的基本格式: sed [options] '{command}' [filename] 例如sed -n '1,3p' databook 出于个人习惯在接下来的例子中,通常将命令等价的表示为 cat filename | sed [options] '{command}' 例如 cat databook | sed -n '1,3p' #在正式开始之前,我们还需要一个用于操作的文本文件datafile,该文件会在附在附录II 里 #操作一:“s”参数,替换某个单词,例如将Steve Blenheim替换为Steve Jobs 为了方便阅读,我们将第一行截取,存至temp文件 cat databook | head -n 1 > temp (这里的“>”是重定向符号,将默认显示在终端上的内容,写入到temp文件中)

一篇非常好的linux学习笔记分享(Linux入门绝佳)

作者:佚名字体:[增加减小] 来源:互联网时间:03-06 21:54:44我要评论 一篇非常好的linux学习笔记分享,对于常用命令整理的比较详细,推荐使用。 linux目录架构 / 根目录 /bin 常用的命令binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心(kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需RAM Disk /dev 系统周边设备 /etc 系统相关设定文件 /etc/DIR_COLORS 设定颜色 /etc/HOSTNAME 设定用户的节点名 /etc/NETWORKING 只有YES标明网络存在 /etc/host.conf 文件说明用户的系统如何查询节点名 /etc/hosts 设定用户自已的IP与名字的对应表 /etc/hosts.allow 设置允许使用inetd的机器使用 /etc/hosts.deny 设置不允许使用inetd的机器使用 /etc/hosts.equiv 设置远端机不用密码 /etc/inetd.conf 设定系统网络守护进程inetd的配置 /etc/gateways 设定路由器 /etc/protocols 设定系统支持的协议 /etc/named.boot 设定本机为名字服务器的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 设置IP /etc/resolv.conf 设置DNS /etc/X11 X Window的配置文件,xorg.conf 或XF86Config 這兩個X Server 的設定檔/etc/fstab 记录开机要mount的文件系统 /etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel /etc/issue 记录用户登录前显示的信息 /etc/group 设定用户的组名与相关信息 /etc/passwd 帐号信息 /etc/shadow 密码信息 /etc/sudoers 可以sudo命令的配置文件 /etc/securetty 设定哪些终端可以让root登录 /etc/login.defs 所有用户登录时的缺省配置

linux基础知识

Linux基础知识 ?什么是Linux ?–简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 –Linux操作系统是可以运行在许多不同类型的计算机上的一种操作系统的“内核”。它是提供命令行或者程序与计算机硬件之间接口的软件的核心部分。 ?Linux操作系统遵从GNU公共许可证(GNU Public License,简称GPL)的规定。Linux对外的一个重要的特点就是”Free”,自由和免费。Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改和无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。 目录 一、虚拟机搭建linux学习环境 (2) 二、Linux目录结构介绍 (5) 三、Linux文件类型介绍 (8) 四、文件权限管理 (16) 五、vim介绍与使用 (19) 六、压缩解压管理.................. .... ..24 2010-6-301

一、虚拟机搭建linux学习环境 介绍使用虚拟机搭建linux学习环境 1.为什么要选择Linux作为学习平台? 2.Linux发行版本介绍 3.虚拟机软件VMWare介绍 4.利用虚拟机安装Linux操作系统(Centos 安装文档) .为什么要选择Linux作为学习平台? 1.1windows: 全自动洗衣机。设计哲学:让普通人都可以方便的使用计算机 1.2linux/unix:手动洗衣机。设计哲学:制作一个稳定的操作系统。概念简单,设计可靠2010-6-302

linux菜鸟教程

https://www.doczj.com/doc/2818441360.html, 兄弟连IT教育版权所有 linux菜鸟教程 很多Linux初学者不知从何处开始学起,怎么学,感觉很茫然。Linux菜鸟要成为Linux高手,要有一个好的学习计划和规划,要不然时间花了很多,却没有效果。这里介绍学习Linux的步骤和建议,希望对初学者有帮助。 Linux学习步骤: 1、准备阶段。 (1)了解Linux培训是什么,有什么优缺点,发展历史和现状,应用领域; (2)赶快找一部计算机,赶快安装一个 Linux 发行版本,要自己亲手安装一遍Linux操作系统(包括虚拟机的Linux环境和完整真实的Linux环境); (3)熟悉Linux环境和Linux基本操作。 2、菜鸟阶段之选教程。 选择一本好的工具书对学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。 (1)应该选一本较好的较全面经典的Linux入门进行深入系统学习,不要贪多,另外还有准备若干书籍参考,随便看看或者用的时候翻翻看看; (2)网上下载Linux电子书,百度一下有很多很多,如“pdf版经典Linux 学习教程”,一搜几十本,最好自己建下个人资料库; (3)最重要的是要做好学习笔记或者写写技术博客,把心得点滴记下来; 3、菜鸟阶段之系统命令。 Linux命令是必须好好学习和经常使用,而不要经常去使用菜单操作。一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统: (1)安装和登录命令:login、 shutdown、 halt、reboot 、mount、umount 、chsh; (2)系统安全相关命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho。 (3)系统管理相关命令: df、 top、 free、 quota 、at、 lp、 adduser、groupadd kill、 crontab、 tar、 unzip、 gunzip 、last; (4)网络操作命令:ifconfig、ip 、ping 、 netstat 、telnet、 ftp、route、 rlogin rcp 、finger 、mail 、nslookup; (5)文件处理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、cat、 ln;

真实记录我的学习linux的经验(长,带图)

为何要学习Linux?这个问题可能困扰着很多Linux初学者或者爱好者,其实我也说不上来为何要学习Linux,可能最实在的理由就是----Linux相关工作岗位很多。在“见到”Linux 的第一面并不会感觉到此物有多么惊艳和神奇,但经历了漫长的学习和接触之后,你会发现此物是如此的让人神往和愉悦。 那么我今天要谈的是,如何才能学好Linux呢? 第一、抱着良好的心态去学习。 学习Linux一定要保持一个良好的心态,切忌怀疑自己的学习方向和成果。拿我自 己的经验来说,我学Linux是因为要比赛,学习Linux成了我每天的任务,就像“出 租车司机每天一起床就欠200百元钱”一样,苦于学校没有专业的老师,只好一心 扑在“圣贤书”之上,在经历了半年的强制学习和强制灌输,我产生了严重的自我 怀疑,“学习Linux有什么用?那么多命令记到死啊?还比什么赛,干脆退赛完事”。 这些不良的情绪直接阻碍了我学习的动力和效率,但试问这世间有什么是容易的呢? 还记得你敲出的第一条命令在一个“黑漆漆”的窗口中显示了什么样的神迹吗?学 习Linux绝非是件易事,但请不要怀疑你自己的方向和成果,你所付出的终将会给 丰厚的回报。 “善终若始,则无败势”这句话就总结了我上面说的一些乱七八糟的话,如果一件 事情结束的时候你还能保持像你开始那样心态的话,那么你将立于不败之地。 这一段最后补充一个小的问题吧,不要纠结去学习哪个Linux发行版,没毛用都一 样的。 第二、合适的学习方式和教材 上面也说了,楼主最开始学习Linux的时候纯自学,经历了“鸟哥”的厚重,以及 Linux从入门到“进坑”,各种各样的书籍和视频充斥着我本来就不太大的脑容量, 说实话《鸟哥的Linux私房菜》是一本特别好的书,清晰明了、幽默风趣,但因为 此书“厚如砖头”以及目前Linux的版本情况,所以不太推荐初学者拿此书系统的 学习Linux,当然如果第四版出了还是赶紧拜读一下的好。 又扯了一堆废话,那么来个明确的问题,选择视频还是书籍? 很多初学者比较倾向于找一些视频教程来看,其实这真是极好的,但是你得找一些 质量高、口碑好,最好是一些大型培训机构内部的视频,当然如何获得就是你的事 情了。但是请不要一直依赖视频,毕竟视频除了没有互动是跟上课一样的,所以看 视频的唯一缺点就是学习成本的增加,这个成本包括了取得费用和时间成本,所以 在你什么都不懂而且看书看“懵逼”的时候先看看视频吧,当你把Linux基础命令 用熟练了,理解简单的服务原理并可以独立配置简单的服务的时候,那么就去看书 吧,看书可以大大的节省你的时间、金钱成本。

Linux基础知识的总结

Linux基础知识总结 一.课程结构: (一)预科部分: 1.初始Linux (1)了解Linux的历史 (2)对Linux操作系统的认知 (3)体会Linux的优点 (4)理解Linux的基本思想 2.学会如何安装Linux操作系统 3.掌握Linux下的常规操作(登陆和注销) 4.了解Linux的目录结构 5.掌握Linux下的常规操作 6.Linux下的常规网络配置 7.制作yum源(本地、远程)及yum命令的基本操作 (二)Linux系统知识: 1.RedHat7下图形界面使用(包括gedit使用)、字符界面和图形界面的切换 2.使用nautilus以图形方式管理文件(显示隐藏文件、访问远程ftp) 3.熟悉redhat的文档阅读(redhat官方网站下载或者在本地owncloud处下载redhat7文档并阅读) 4.配置本机系统时钟(ntpdate、system-config-date使用) 5.shell的简介和使用 6.管理物理存储(磁盘分区) 7.使用LVM灵活存储(LVM的创建、使用、扩展、销毁) 8.使用man手册获取帮助 9.查看管理系统进程(关键字:ps、top、kill使用) 10.建立网络链接(关键字:DNS、子网掩码、ping) 11.系统服务的管理(关键字:systemctl) 12.管理系统用户和组 13.文件权限(文件权限的意义和修改) 14.使用ssh远程管理系统(关键字:公私钥、ssh-keygen) 15.apache、vsftpd和vnc服务器的配置 16.管理物理存储(关键字:tune2fs、swap交换分区) 17.seLinux和iptables基本设置(设置文件的seLinux标签、关闭打开iptables) 18.软链接和硬链接(ln命令) 19.归档和压缩(关键字:tar命令)

经典:Linux菜鸟入门级命令大全

经典:Linux菜鸟入门级命令大全 发布时间:2005.08.16 11:51 来源:https://www.doczj.com/doc/2818441360.html, 作者:Linux论坛 1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。 2. ls 查看目录或者文件的属*,列举出任一目录下面的文件 eg: ls /usr/man ls -l a.d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是一个连接文件(link) b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x)。 3. cp 拷贝文件 eg: cp filename1 filename2 //把filename1拷贝成filename2 cp 1.c netseek/2.c //将1.c拷到netseek目录下命名为2.c 4. rm 删除文件和目录 eg: rm 1.c //将1.c这个文件删除 5. mv 移走目录或者改文件名 eg: mv filename1 filename2 //将filename1 改名为filename2 mv qib.tgz ../qib.tgz //移到上一级目录 6. cd 改变当前目录 pwd 查看当前所在目录完整路径 eg: pwd //查看当前所在目录路径 cd netseek //进入netseek这个目录 cd //退出当前目录 7. cat,more命令 将某个文件的内容显示出来。两个命令所不同的是:cat把文件内容一直打印出来,而 more则分屏显示 eg; cat>1.c //就可以把代码粘帖到1.c文件里,按ctrl+d 保存代码。 cat 1.c 或more 1.c //都可以查看里面的内容。 gcc -o 1 1.c //将1.c编译成.exe文件,我们可以用此命编译出代码。 8.chmod 命令权限修改用法:chmod 一位8进制数 filename。 eg: chmod u+x filenmame //只想给自己运行,别人只能读 //u表示文件主人, g 表示文件文件所在组。 o 表示其他人 ;r 表可读,w 表可写,x 表可以运行 chmod g+x filename //同组的人来执行 9. clear,date命令 clear:清屏,相当与DOS下的cls;date:显示当前时间。 10. mount 加载一个硬件设备 用法:mount [参数] 要加载的设备载入点 eg: mount /dev/cdrom cd /mnt/cdrom //进入光盘目录

相关主题
文本预览
相关文档 最新文档