APN

  1. 简介:https://blog.csdn.net/sjz4860402/article/details/78522871

APN(Access Point Name):即“接入点名称”,用来标识GPRS的业务种类,是通过手机上网时必须配置的一个参数,手机可以访问的外部网络类型有很多,例如:Internet、WAP网站、集团企业内部网络、行业内部专用网络。而不同的接入点所能访问的范围以及接入的方式是不同的,网络侧如何知道手机激活以后要访问哪个网络从而分配哪个网段的IP呢,这就要靠APN来区分了,即APN决定了用户的手机通过哪种接入方式来访问什么样的网络。从运营商角度看,APN就是一个逻辑名字,APN一般都部署在GGSN设备上或者逻辑连接到GGSN上,用户使用GPRS上网时,都通过GGSN代理出去到外部网络,因此,APN设置、过滤、统计等,就成为一个对GPRS计费、GPRS资费有重要参考价值的参数之一(因为APN可以区分一个业务或者外部网络)。

雪茄–初探 —蒙特4号;

第一档:高希霸 Cohiba  

第二档:蒙特 Montecristo  帕特加 Partagas  罗密欧 Romeo Y Jjlieta  蒙特利 Hoyo de Monterrey  优民 H. Upmann

第三档:逢赛克 Fonseca  彼亚赛 Jose L. Piedra

关于口味:

高希霸:平衡的香味,集合古巴雪茄之大成,卡斯特罗送礼的官方标准,可以说是人见人爱,花见花开。世纪系列大众熟知也最爱(世纪346最有特点),经典系列(长矛、特冠、宾丽)也是各个顶尖;

蒙特:仅次于高希霸的世界知名品牌,陈年后爆发力极强,蒙特2号,埃德蒙是老茄客必选,蒙特银管2011的皮革、咖啡豆、坚果香混合且独特乃极品,蒙4.5属于短时间的最佳选择之一;

帕特加:喜维亚4号俗称D4乃是世界闻名的型号(胡椒、咖啡、泥土、奶混合),E2感觉是D4加强版但更均衡且丰富,尖顶2号(胡椒、烟草、皮革)口感直接畅快;

罗密欧:古巴雪茄里销量最大的世界品牌,大家熟知罗密欧123号铝管、贝伟达(价格实惠),经典型号是丘吉尔银管,展览4号,宽身丘吉尔,短丘吉尔;

蒙特利:口感轻到中,逍遥二号为经典,可可、烟草、坚果香;

优民:俗称乌普曼,经典为鉴赏家1号2011(香草、花香、烟草味)、玛瑙50(品牌最经典型号)

彼亚赛:俗称小比,经典款型为猎人,世界范围内的古巴入门茄。(他仅仅是一款入门雪茄,不要神话他,口感就那样而已)

单支/小包组合购买:

500-600元新手:

比亚赛猎人、优民君主、罗密欧银管2、3号、罗密欧福尔士、帕特金管、帕特大冠银管,蒙特4、5号;

推荐理由:单支购买,多品尝不同品牌有助于了解主线;

800-1500元进阶:

帕特加喜维亚D4,P2,E2、优民鉴赏家1号,玛瑙50,蒙特银管2011,蒙特1、2、3号、埃德蒙,罗密欧展览4号,宽身丘吉尔,蒙特利逍遥2号、高希霸奥秘、世纪1、2、宾丽、吉仕途、俱乐部;

推荐理由:这个阶段可以掌握每个品牌的世界知名主打型号,比如帕特加D4;

1500-3000品鉴:

包含进阶型的所有型号,高希霸特冠,世纪3、4、6、天才;

解释:各阶新手尽可能初次品尝多几类品牌的单支,便于挑选喜欢的口味。掌握了各个品牌的主线味道之后,再整盒购买更划算。

作者:雪茄123

链接:https://www.jianshu.com/p/7abc8328f9d8

藏红花相关

(1)藏红花是什么?有什么功效?

藏红花(Saffron)也叫番红花,是常见的香料,产于土耳其和伊朗一带的植物,伊朗是世界最大的番红花出产地,占世界总产量90%以上。其次是西班牙,是全世界最贵的香料,大约要170,000朵番红花才能收集到1kg的雌蕊柱头,因为每一朵紫色的番红花只有三个柱头,而柱头的取得必须在日出前以人工完成采摘以避免花朵枯萎而失去采收价值,采收后必须再干燥脱水后才能分级出售。
藏红花主要用于食物香料上,譬如西班牙人用它做海鲜饭,伊朗人的传统美食khoresh(一种肉汤)也需要它,意大利人则用它做传统的米兰炖饭。中世纪的欧洲人使用番红花治疗呼吸道感染(咳嗽和感冒)、猩红热、天花、癌症和哮喘。此外,番红花还会用来医治血液和其他疾病包括:失眠、瘫痪、心脏病、胀气、胃病、痛风、慢性子宫出血、闭经、婴儿绞痛和眼疾等。在中国,《本草纲目》上记载藏红花具有镇静、镇痛、活血去瘀等功效。但因同时由于有通经、堕胎,促进子宫收缩的作用,所以孕妇不宜使用。古波斯人和埃及人,也会用番红花来壮阳、解毒、帮助消化,以及治疗痢疾和麻疹。在藏传佛教里常看到的藏传佛教徒以红花来供养舍利子使舍利子增生,传统的藏传佛教徒会把红花放在八供水里,让水变成橘红色,非常漂亮,以此供佛菩萨。现代医学上,有抑癌、抗氧化、免疫调节等作用。藏红花一般经口食用时并不会造成危险,但若大量食用会有急性中毒的危险,一次摄取5g以上的量会有严重的副作用,致死量大约在12~20g之间。 

用法:

* 用量:每次取3~8根,不要超过8根,每日或隔日,食用1次。开始几次可以吃3根,因为它会刺激肠道,便秘的人会顺畅,肠敏感的人会拉肚子,适应了就可以逐步加量。上午食用为佳,不要在睡前喝。一盒5克装大约可以吃8-10个月。小主每年都会购买头年新花
* 泡水喝:冷热水皆可,三杯之后,吞下花蕊。
* 烹美食:炖盅、做汤、煮饭皆可,藏红花是与鹅肝、鱼子酱和黑松露并称“三王一后”的美食皇后,是欧洲料理最青睐的香料,是日常的食疗佳品。
* 女性:孕期禁用。生理期,正常体质者停吃,因为藏红花活血效果此刻就会直观地显现;如生理期淤结不畅者,可在经期头1天吃,缓解淤结。
* 男性:四季皆可吃,改善心血肝的功效,缓解情绪淤结,强健生理功能。

(2)藏红花有什么副作用?

* 孕妇禁用
* 有溃疡病及出血性疾病者慎用,如:胃出血等
* 肠道敏感特别容易腹泻者慎用
* 此外,藏红花会让神经愉悦兴奋,不宜睡前吃

(3)如何购买?通常的价格?

藏红花的等级如下图所示:

极品:全为花蕊顶端,全红,无黄色,看起来较粗壮。极品藏红花产量低,药用价值相对较高,价格昂贵。极品花丝比特级更长更整齐更粗壮,市场上基本见不到,基本为特供;
特级:全红,无黄色,是藏红花顶端部分,与极品不同的是,特级藏红花为顶端柱头全部部分,包含极品藏红花部分。伊朗市场上大部分都是这种;
 一级:全红加黄根,即带有一点黄色的花杆。黄根占到1/3,属于中下等品质,黄根无药效,价格较低。
二级:黄根部分占整体重量大约三分之二,属于下等品质,
同时,采摘部位,花蕊的粗壮程度、花蕊的长度、完整度、干湿程度、韧度、新鲜度、断碎程度、混杂成色等都会影响藏红花的级别划分。

Oracle专题

#########################前言########################

一、特殊符号ascii定义

制表符 chr(9)

换行符 chr(10)

回车符 chr(13)

###################

在我们遇到问题时,就应该不断深入研究,直至问题的核心本质,这样通过一个案例或实际问题的诊断学习和研究,我们就可以带动很多连带知识的学习,这样从一个点深入下去就形成一条线,再横向扩展就可以形成一个知识网,解决和研究的问题多了,就可以逐渐覆盖一个面,形成一个知识体系,这样慢慢的你就会觉得学习不再困难,而是一件得心应手的事情。

而且,认真思考和深入研究本身就是对DBA的一项基本素质要求

!!!!对于一个候选人来说,我希望他勤奋、严谨、具有钻研精神及独立思考能力。技术其实往往并不是我最关心的内容,因为具备了前面的素质之后,经过1~2年的锻炼,一个人绝对不会知道的太少。!!!!!!

DBA生存之四大守则:

1.备份重于一切

我们必需知道,系统总是要崩溃的,没有有效的备份只是等哪一天死!我经常开玩笑的说,唯一会使DBA在梦中惊醒的就是:没有有效的备份。

在进行重要的操作(如恢复尝试、升级操作等)之前,一定要做好备份,保留现场,以便必要时可以从头再来。

2.三思而后行

Think thrice before you act。

任何时候都要清楚你所做的一切,否则宁可不做!对于DBA来说,有时候一个回车,一条命令就会造成不可恢复的灾难,所以,你必需清楚确认你所做的一切,以及这些操作可能带来的后果,并且在必要时保护现场。

DBA切忌想当然。

3.rm是危险的

要知道在UNIX/Linux下,这个操作意味着你可能将永远失去后面的东西,所以,确认你的操作!!!

太多的人在 “rm -rf” 上悲痛欲绝,当年写下这条守则时,是一个凌晨被一个朋友吵醒,他说误操作rm -rf删除掉了200G的数据库,并且没有备份。

我当时能告诉他的只有一句话:要保持冷静.

4.你来制定规范

良好的规范是减少故障的基础。所以,作为一个DBA,你需要来制订规范,规范开发甚至系统人员,这样甚至可以规避有意或是无意的误操作,减少数据库的风险。

见过太多管理混乱的开发环境,经常出现程序员连错生产环境误操作的案例,所以规范实在是非常的重要

不以规矩,不成方圆。

这四个守则有的部分是相互关联,密不可分的,希望每个DBA都能谨慎认真,少犯错误

#######################################################

1.存储过程一:

DECLARE v_CreateSql VARCHAR2(4000);v_ExecuteSql VARCHAR2(4000);v_Pos NUMBER;

BEGIN  SELECT CREATE_SQL INTO v_CreateSql FROM DYN_TABLE

WHERE BASE_TABLE_NAME = ‘EVENT_USAGE’ ;

v_CreateSql := REPLACE(v_CreateSql, ‘&BILLING_CYCLE_ID’, 237 );

v_Pos := INSTR(v_CreateSql, ‘;’);  IF v_Pos = 0 THEN      v_Pos := length(v_CreateSql);

 END IF;  WHILE (v_Pos > 0) LOOP  v_ExecuteSql := SUBSTR(v_CreateSql, 1, v_Pos -1);

 EXECUTE IMMEDIATE(v_ExecuteSql);  v_CreateSql := SUBSTR(v_CreateSql, v_Pos+1);  

 v_Pos := INSTR(v_CreateSql, ‘;’);   END LOOP;   END;

##########################################################3

(1)declare定义变量;

(2)create_sql :

CREATE TABLE EVENT_CDR_&BILLING_CYCLE_ID

PARTITION BY HASH(SUBS_ID) PARTITIONS 64 STORE IN(TAB_RB)

AS

SELECT * FROM EVENT_CDR

WHERE ROWNUM<1;

CREATE INDEX IDX_EVENT_CDR_SUBS_ID_&BILLING_CYCLE_ID ON EVENT_CDR_&BILLING_CYCLE_ID (

  SUBS_ID ASC

)

LOCAL STORE IN(IDX_RB);

(3)replace函数:

replace(原字段,“原字段旧内容“,“原字段新内容“,)

语句:update sys_frmattachmentdb  set filefullname = replace(filefullname,’历城区,’北京区)

(4)instr()函数的格式  (俗称:字符查找函数)

格式一:instr( string1, string2 )    /   instr(源字符串, 目标字符串)

格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )   /   instr(源字符串, 目标字符串, 起始位置, 匹配序号)

解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。

 注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。

<span style="font-family: Courier;"–<——实例————————————————

格式一

1 select instr(‘helloworld’,’l’) from dual; –返回结果:3    默认第一次出现“l”的位置2 select instr(‘helloworld’,’lo’) from dual; –返回结果:4    即:在“lo”中,“l”开始出现的位置3 select instr(‘helloworld’,’wo’) from dual; –返回结果:6    即“w”开始出现的位置

格式二

1 select instr(‘helloworld’,’l’,2,2) from dual;  –返回结果:4    也就是说:在”helloworld”的第2(e)号位置开始,查找第二次出现的“l”的位置

2 select instr(‘helloworld’,’l’,3,2) from dual;  –返回结果:4    也就是说:在”helloworld”的第3(l)号位置开始,查找第二次出现的“l”的位置

3 select instr(‘helloworld’,’l’,4,2) from dual;  –返回结果:9    也就是说:在”helloworld”的第4(l)号位置开始,查找第二次出现的“l”的位置

4 select instr(‘helloworld’,’l’,-1,1) from dual;  –返回结果:9    也就是说:在”helloworld”的倒数第1(d)号位置开始,往回查找第一次出现的“l”的位置

5 select instr(‘helloworld’,’l’,-2,2) from dual;  –返回结果:4    也就是说:在”helloworld”的倒数第1(d)号位置开始,往回查找第二次出现的“l”的位置

6 select instr(‘helloworld’,’l’,2,3) from dual;  –返回结果:9    也就是说:在”helloworld”的第2(e)号位置开始,查找第三次出现的“l”的位置

7 select instr(‘helloworld’,’l’,-2,3) from dual; –返回结果:3    也就是说:在”helloworld”的倒数第2(l)号位置开始,往回查找第三次出现的“l”的位置

注:MySQL中的模糊查询 like 和 oracle中的 instr() 函数有同样的查询效果; 如下所示:

select * from tableName a where name like ‘%helloworld%’;

select * from tableName a where instr(name,’helloworld’)>0;  –这两条语句的效果是一样的

(5) := 是Declare 与 Begin之间声明的变量、常量赋值符号,如 v_Total Number(14,2) := 100;

= 是Begin 与 End之间常用在SQL检索条件或者判断用的比较符号,如 …Where Rownum = 10; if v_Total = 100 then … end if;

(6)在oracle中,比较常见的可能是length、substr,至少我看到的大部分都是这两个,要不是昨天看代码发现了lengthb、substrb,估计我也遗忘了。length表示的是字符串的字符长度,lengthb表示的是字符串的字节长度;substr表示根据字符长度获取子串,substrb表示根据字节长度来获取字串

(7)substr(字符串,截取开始位置,截取长度) //返回截取的字

substr(‘Hello World’,0,1) //返回结果为 ‘H’  *从字符串第一个字符开始截取长度为1的字符串

substr(‘Hello World’,1,1) //返回结果为 ‘H’  *0和1都是表示截取的开始位置为第一个字符

substr(‘Hello World’,2,4) //返回结果为 ‘ello’

substr(‘Hello World’,-3,3)//返回结果为 ‘rld’ *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

测试:select substr(‘Hello World’,-3,3) value from dual;

(8)while loop 循环;

execute immediate:意思就是执行语句,在编写存储过程也是常用到的;

(9)power函数:

POWER(n2, n1)   返回n2的n1次方结果

2.oracle查看建表语句:

增加字段语法:alter table tablename add (column datatype [default value][null/not null],….);

说明:alter table 表名 add (字段名 字段类型 默认值 是否为空);

  例:alter table sf_users add (HeadPIC blob);

  例:alter table sf_users add (userName varchar2(30) default ‘空’ not null);

修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);

说明:alter table 表名 modify (字段名 字段类型 默认值 是否为空);

  例:alter table sf_InvoiceApply modify (BILLCODE number(4));

删除字段的语法:alter table tablename drop (column);

说明:alter table 表名 drop column 字段名;

  例:alter table sf_users drop column HeadPIC;

字段的重命名:

说明:alter table 表名 rename  column  列名 to 新列名   (其中:column是关键字)

  例:alter table sf_InvoiceApply rename column PIC to NEWPIC;

表的重命名:

说明:alter table 表名 rename to  新表名

  例:alter table sf_InvoiceApply rename to  sf_New_InvoiceApply;

3.删表,drop,或者直接plsql tables中删除

一次插入一条数据

insert into 表名 (字段名1,字段名2) values (字段值1,字段值2);

例如:

insert into customer (id,name) values (1,‘xiaozhang’);

注意:字符类型的数据需要添加

一次插入多条条数据

例如:

insert all

into seller values(1,‘A服装店’,‘1300000000’,‘中国北京朝阳区’,www.a.com,‘5’,‘经营各式服装’)

into seller values(2,‘B数码店’,‘1580000000’,‘中国浙江省杭州市拱墅区’,www.b.com,‘4’,‘经营各类电子’)

into seller values(3,‘c电器店’,‘1370000000’,‘中国广东深圳莲花港’,www.c.com,‘4’,‘经营各类家电’)

into seller values(4,‘D书店’,‘1590000000’,‘中国山东崂山’,www.d.com,‘5’,‘经营各类实体书与电子书’)

select * from dual;

注意:字符类型的数据需要添加

4.Oracle报错:“ORA-02292:违反完整约束条件(XXX.FKXXX)- 已找到子记录

1、找到以”FKXXX“为外键的表A的子表,直接运行

select a.constraint_name, a.table_name, b.constraint_name

from user_constraints a, user_constraints b

where a.constraint_type = ‘R’

and b.constraint_type = ‘P’

and a.r_constraint_name = b.constraint_name

and a.constraint_name = ‘FKXXX’

2、删除相应的子表记录

3、删除主表记录

##############rownum##############

1.作用:查询返回结果的编号,用于限制返回的条数;只能查询rownum<某个数的结果,针对>默认为false,但是可以用子查询进行;

select * from(select rownum no ,id,name from student) where no>2;

2.默认排序是按照插入顺序排序的,用子查询;

select rownum ,id,name from (select * from student order by name);

#################trunc函数##################

/*

TRUNC(number,num_digits) 

Number 需要截尾取整的数字。 

Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。

TRUNC()函数截取时不进行四舍五入

*/

##################表空间和数据文件#######################

首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。 

每一个Oracle数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引等)的数据物理地存储在数据库的数据文件中。数据文件通常为*.dbf格式,例如:userCIMS.dbf。数据文件有下列特征:①、一个数据文件仅与一个数据库联系;②、一旦建立,数据文件只增不减;③、一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。 

其次,我们再来叙述一下Oracle的逻辑结构:Oracle的逻辑结构包括表空间(tablespace),段(segment),数据块(data block)以及模式对象(schema object)。 

Oracle数据库在逻辑上是由多个表空间组成的,表空间在物理上包含一个或多个数据文件。而数据文件大小是块大小的整数倍;表空间中存储的对象叫段,比如数据段,索引段和回退段。段由区组成,区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大小的整数倍,区的大小可以不相同;数据块是数据库中的最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值应设置为操作系统块大小的整数倍。 

⑴、表空间(tablespace) 

表空间是数据库中最大的逻辑单位,每一个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。每一个数据库都有一个SYSTEM表空间,该表空间是在数据库创建或数据库安装时自动创建的,用于存储系统的数据字典表,程序系统单元,过程函数,包和触发器等,也可用于存储用户数据表,索引对象。表空间具有在线(online)和离线(offline)属性,可以将除SYSTME以外的其他任何表空间置为离线。 

⑵、段(segment) 

数据库的段可以分为四类:数据段、索引段、回退段和临时段。 

⑶、区 

区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区存储与段中,它由连续的数据块组成。 

⑷、数据块 

数据块是数据库中最小的数据组织单位与管理单位,是数据文件磁盘存储空间单位,也是数据库I/O的最小单位,数据块大小由DB_BLOCK_SIZE参数决定,不同的Oracle版本DB_BLOCK_SIZE的默认值是不同的。 

⑸、模式对象 

模式对象是一种应用,包括:表、聚簇、视图、索引序列生成器、同义词、哈希、程序单元、数据库链等。 

最后,在来说一下Oracle的用户、表空间和数据文件的关系: 

一个用户可以使用一个或多个表空间,一个表空间也可以供多个用户使用。用户和表空间没有隶属关系,表空间是一个用来管理数据存储的逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。 

总结一下:解释数据库、表空间、数据文件、表、数据的最好办法就是想象一个装满东西的柜子。数据库其实就是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。

#######################索引#############################

<span style="font-size: 13px; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(245, 245, 245); color: rgb(0, 0, 0); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal;"–<   从物理上说,索引通常可以分为:分区和非分区索引、常规B树索引、位图(bitmap)索引、翻转(reverse)索引等。其中,B树索引属于最常见的索引。

-=- 提高查询速度的方法还有在表上建立主键,主键与唯一索引的差别在于唯一索引可以空,主键为非空,

—rowid, 存储了row在数据文件中的具体位置

<span style="font-size: 14px; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(0, 0, 0); font-family: "Microsoft YaHei", Verdana, sans-serif, SimSun; font-variant-caps: normal; font-variant-ligatures: normal;"–<基本概念:

1、 类似书的目录结构

2、 Oracle 的“索引”对象,与表关联的可选对象,提高SQL查询语句的速度

3、 索引直接指向包含所查询值的行的位置,减少磁盘I/O

4、 与所索引的表是相互独立的物理结构

5、 Oracle 自动使用并维护索引,插入、删除、更新表后,自动更新索引

6、 语法:CREATE INDEX index ON table (column[, column]…);

7、 B-tree结构(非bitmap):

########################################union and union all##########################

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。

union(或称为联合)的作用是将多个结果合并在一起显示出来。

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

可以在最后一个结果集中指定Order by子句改变排序方式。

############################################################

#########################那些年ora报的那些数字#################

(1)ORA-14402:更新分区关键字列将导致分区更改(分区表注意)

建立完分区表后一定要和开发确认一点,就是是否会修改分区字段。因为update分区字段到其他分区时候,会报错。

解决办法:开启表的行转移功能,这样在update以后,会在老分区删除数据,新分区插入数据。

1
alter table XX enable row movement

(2) ORA-01348:值大于为此列指定的允许精度

(3) ora-00054;oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT. https://www.cnblogs.com/Ronger/archive/2011/12/19/2293509.html

 select session_id from v$locked_object;
 SELECT sid, serial#, username, osuser FROM v$session where sid = 31;

足球相关的英语单词

(1)场上人员称谓:

Assistant referee:助理裁判(名词) :The assistant referee held up his flag to show the referee that the ball was still in play.
Attacker: 前锋(forward)Striker:前锋
goalkeeper:守门员 The goalkeeper for France dived to the ground and saved Ronaldo’s shot.
Defender:后防队员
Midfielder:中场 Mesut Ozil is one of the best midfielders in the world.
Substitute (Sub):替补When Sir Alex Ferguson saw that his players were getting tired, he always substituted them.
Bench:板凳[席]/替补席
Skipper:[担任]队长
Full-back,边后卫
central defender,中卫
——其他的说法;
后卫: Back
前卫: Midfielder
前锋: Forward
中锋: Striker
自由人: libero
中后卫: Center Back
全能选手: utility player
守门员: Goalkeeper, Goalie
左(右)后卫: Left (Right) Back
清道夫, 拖后中卫: Sweeper
左(右)前卫: Left (Right) Midfielder
攻击型前卫, 前腰: Attacking Midfielder
防守型前卫, 后腰: Defending Midfielder

(2)一些比较出名的球队以及球员:

西甲—Barcelona:巴萨

Lionel Messi:
Luis Suárez,苏牙
Griezmann,格列兹曼
Dembélé,登贝莱
Semedo:塞梅多
Piqué,皮克
Umtiti,乌姆蒂蒂
Frenkie de Jong,德容
ter Stegen,特尔施特根

—皇马,Real Madrid

Hazard,阿扎尔
Benzema,本泽马
Bale,贝尔
Jović,约维奇
Rodrygo,罗德里格
Isco,伊斯科
James Rodríguez,哈梅斯·罗德里格斯
Valverde,巴尔韦德
Casemiro,卡塞米罗
Modric,莫德里奇
Kroos,克罗斯
Marcello,马塞洛
Varane,瓦拉内
Ramos,拉莫斯
Cavajal,卡瓦哈尔
Courtois,库尔图瓦

–Atletico Madrid,马竞

Costa,科斯塔
Félix,菲利克斯
Lemar,勒马尔
Oblak,奥布拉克

英超—曼联Manchester United

Rashford,拉什福德
Martial,马夏尔
Pogba,博格巴
Maguire,马奎尔
de Gea,德赫亚

曼城-Manchester City

Sterling,斯特林
Jesus,赫苏斯
Agüero,阿圭罗
Sané,萨内
Bernardo Silva,貝納多·席尔瓦
Bruyne,德布劳内
Hernandez,罗德里
Cancelo,坎塞骆
Laporte,拉波泽特
Otamendi,奥塔门迪
Ederson,埃德森

利物浦-Liverpool

Salah,萨拉赫
Mané,马内
Firmino,菲尔米诺
Fabinho,法比尼奥
Henderson,亨德森
van Dijk,范戴克
Lovren,洛夫伦
Arnold,阿诺德
Alisson,阿里森

切尔西-Chelsea

Pulisic,普利西奇
Giroud,吉鲁
Willian,威廉
Kovačić,科瓦西奇
Kanté,坎特
Jorginho,若日鸟
Alonso,阿隆索
Kepa,卡帕

阿森纳-Arsenal

Aubameyang,奥巴梅扬
Pépé,佩佩
Lacazette,拉卡泽特
Özil,厄齐尔
Ceballos,塞巴略斯
Mustafi,穆斯塔菲
Leno,莱诺

热刺-Tottenham Hotspur

Kane,凯恩
Son Heung-min,孙兴憨
Ndombele,恩东贝莱
Eriksen,埃里克森
Alli,阿里
Sanchez,桑切斯
Lloris,洛里斯

意甲,尤文图斯-Juventus

Cristiano Ronaldo,罗纳尔多
Dybala,迪巴拉
Costa,科斯塔
Higuaín,伊瓜因
Pjanić,皮亚尼奇
Ramsey,拉姆塞
Rabiot,拉比奥特
Bentancur,本坦库尔
Chiellini,基耶利尼
de Ligt,德利赫特
Bonucci,博努奇
Sandro,桑德罗
Demiral,德米拉尔
Szczęsny,什琴斯尼
Buffon,布冯

国米-Internazionale Milano

Lukaku,卢卡库
Sánchez,桑切斯
Martínez,马丁内斯
Barella,巴雷拉
Godín,戈丁
Handanovič,汉达诺维奇

德甲,拜仁-Bayern

Lewandowski,莱万
Müller,穆勒
Thiago,蒂亚戈
Martínez,马丁内斯
Tolisso,托里索
Lucas,卢卡斯
Kimmich,基西米
Alaba,阿拉巴
Neuer,诺伊尔

法甲-巴黎圣日尔曼,Paris Saint-Germain,

Neymar,内马尔
Mbappé,姆巴配
Icardi,伊卡尔迪
Cavani,卡瓦尼
Verratti,维拉蒂
Di María,迪马利亚
Silva,席尔瓦
Navas,纳瓦斯

(3)其他词汇;

Away game:客场比赛;
Corner:角球
Locker room:更衣室(locker是储存柜的意思)
Draw:打平/平局 The game ended in a draw, and the final score was 2-2.
Equalizer:扳平比分的进球,In the last minute, Marcello was able to run past the defense and score an equalizer.
Extra time:加时赛 They were lucky the game went into extra time because they ended up winning.
Fit:健康/状态良好(形容词)取自单词 fitness。如果说球员 fit,就表示他们状态良好,可以上场比赛
Foul:犯规
ree kick:任意球
Full-time:终场 The referee blew his whistle three times to tell everyone it was full-time.
Half-time:中场休息 The players ran off the pitch and had a meeting during half-time.
Handball:手球 When the ball hit Matt on the arm, the referee blew his whistle and the other team was given a penalty.
Header:头球(名词)Ronaldo’s teammate passed the ball high to him. He jumped up and managed to score a goal with a header.
Home game:主场比赛(名词)反义词:Away Game(客场比赛)
Injury time:伤停补时
Kick off:开球 Do you have any idea what time is kickoff?
Match:比赛
Offsides:越位 传球的一刹那,在进攻球员和对方门线之间必须至少有 2 名防守队员,否则,将吹罚进攻球员越位。The fans in the stadium shouted angrily when the referee blew his whistle to say that Messi was offsides; he had been very close to scoring a goal.
Pass:传球
penalty area:禁区
Penalty shootout:点球大战 Spot kick:点球
Pitch:球场,Because it had been raining for a couple of days, the pitch was muddy and difficult to play on.
Red card:红牌
Shoot:射门/攻门/打门
Spectator:观众
Stands:看台
Tackle:断球
Throw in:[掷]界外球
Touchline:边线(名词)足球场的长边,也作 sideline
Wall:人墙
Yellow card:黄牌
——得分进球相关的词
Concede:失球,Defeat:输球/失利(名词) suffer a defeat 意为输掉比赛。
Goal difference:分差/进球差距 Because all of the teams in the Premier League are really strong, the goal difference is usually small.
Premier League,超级联赛
Knock out:淘汰 In the last World Cup, New Zealand was knocked out of the competition by Mexico.
The Lead:领先 At the end of the first half Real Madrid were in the lead, but Chelsea won in the end.
Score:比分
Scoreboard:记分牌/板 The time on the scoreboard shows there’s only 5 minutes left of the match.
Advantage:攻方有利 The ref held up his hand to call advantage.
Bicycle kick:倒钩 Scissor kick:剪刀脚
Booking:吃[黄]牌 After two bookings for fighting with the other team, Jonathan was sent off
Boot:踢球
Box:禁区
Coin toss:掷硬币(名词) Toss a coin:掷硬币(动词)
Dead ball:死球
Division:[联赛]级别(名词)联赛的等级。All the top teams of the UK are in the premier division (league).
Fixture:赛程 All the World Cup fixtures are chosen out of a hat to make sure it’s completely fair.
Mark:盯人
Own goal:乌龙球
Pep talk:动员[讲话](名词)主教练鼓舞球队士气的简短讲话。The players sat and listened to their coach give them a pep talk in the changing rooms.
Promotion:升级(名词) Promote:升级
Rivals:对头/死敌(名词)对头/死敌。Manchester United and Manchester City have been rivals for years.
Relegation:降级(名词) Relegate:降级(动词)
Transfer fee:转会费
---装备
Cleats:鞋钉
Gloves:手套
Goal posts:门柱
Jersey:球衣
Kit:全套足球服
Net:球网
Soccer socks:球袜
Shin-pads:护腿板
Strip:队服

—解说:
Clinical finish:控制准确的进球(名词)指射门时对球的控制非常出色的进球。
Commentator:解说员
Keep possession:掌控球权/控球
Long-ball game:长传冲吊
One-touch football:一脚出球
Prolific goal scorer:高产得分手
Put eleven men behind the ball:“把十一个人都用在防守上”/龟缩防守/摆大巴(动词短语)指一只球队在防守端投入重兵而缺乏主动进球得分的意愿。
Replay:回放
Underdog:不被看好者
Get stuck in:投入
Have a lot of pace:速度快
Have a sweet left foot:金左脚
Man on!:“来人了”
Pull off a great/amazing save:做出精彩扑救
Put it in the back of the net:送入网窝
We were robbed!:“我们被抢了!”(短语)当你认为比赛存在不公时用以发泄怨气。
Broadcast:转播(名词/动词)电视、网络或电台实时播放比赛。
Fever pitch:狂热
Group stage:小组赛阶段
Host country:主办国/东道主
National anthem:国歌 National team:国家队
Knockout stage:淘汰赛阶段
Qualify:出线
Quarter-finals:四分之一决赛
Runners-up:亚军
Semi-finals:半决赛
Sponsor:赞助[商]
The finals:决赛阶段 一届赛事的最后阶段,包括四分之一决赛和半决赛。
The final:决赛
Trophy:奖杯


欧洲联赛:
Italian Seria A 意大利甲级联赛 
Germany Bundes liga 德国甲级联赛 
France Le Chanpionnat 法国甲级联赛 
Spain La Liga ;Primera división de Liga,简称La Liga西班牙甲级联赛
England Premiership英格兰超级联赛 
Eredivisie 荷兰甲级联赛 
Scottish Premier League 苏格兰超级联赛
 
 
欧洲足球赛事: 
European Championship; European Cup 欧洲杯(欧洲锦标赛)
UEFA Champion League 欧洲冠军联赛 
The UEFA Cup 联盟杯 
Toto Cup托托杯 
UEF Aunion of European Football Associations 欧洲足球联合会

足球相关英语词汇.doc

——参考:

足球英语终极词汇手册

少年维特的烦恼–歌德(巴蜀译翁)

       晚年的歌德在其回忆青年时代的生活的自传《诗与真》中说,他的作品“仅仅是一篇巨大的自白的一个个片段”,可以说,《少年维特的烦恼》在一定程度上反映了青年歌德的生活经历,字里行间打下了他思想感情的烙印。1772年歌德在帝国高等法院实习的时候,一次乡村舞会上认识了天真美丽的少女夏绿蒂,对她产生了炙烈的爱情,但夏绿蒂已与他的朋友订婚在先,歌德因此绝望而痛苦,脑子里不时也出现自杀的念头,4个月后才毅然不辞而别,回到法兰克福,一个月后,突然受到大学同学在维兹拉尔因恋慕同事的妻子遭到拒斥,工作中常受上司的挑剔,社交场上被贵族男女轻侮而自杀。1774年,从前认识并有好感的马克西米琳娜来到法兰克福嫁给一个富商,重逢后两个人很高兴,因此过从甚密,富商对两个年轻人的关系产生嫉妒,与歌德发生了激烈冲突,使歌德愤而提笔,下决心抒写出两年来自己在爱情生活中所经历和感受的全部痛苦,这就是本书的历史背景。

        少年维特的烦恼,在我看来,是少年维特发自内心对自己周遭环境的事物的深入思考,不人云亦云,也不屈从于环境的条条框框。

       对于身边的人,他认为“跟到处的人一样!人类嘛都是一个模子铸出来的。多数人为了生活,不得不忙忙碌碌,花去大部分的时间;剩下一点点余暇确使他们泛起愁来,非想法设法打发掉不可,这就是人类的命运啊。”何尝不是如此,在信息如此发达,多媒体缤纷的时代,我们愈发的无法让自己的内心平静,与自己独处。在周末,下班之后的时间,我们总是想法设法的将其打发掉,可时间本来就在流逝,何须我们来进行打发呢?我们生来都是有此惰性的,可是,只要我们能又一次鼓起勇气克服了它,接下去便会顺顺当当,并在活动中获得真正的愉快。”很多时候,我们实际上是知道自己哪些地方做的不好的,可世界最容易寻找且取之不尽的就是“借口”,是么?晚上,我下定决心要享受日出,到了早晨却起不来床;白天,我希望能欣赏月色,天黑了又待在房中出不去。我闹不明白,我干嘛起身,干嘛就寝。” 何尝不是这样,再刷会儿手机吧,等一会儿再来,我要早起明天,今年我要减肥等等,当下的我们有时候是不是也是这种状态?

       “大大小小的学究们一致断定,小孩儿是不知何所欲求的;岂止小孩儿,成人们还不是在地球上东奔西闯,同样不清楚自己打哪儿来,往哪儿去,同样干起事来漫无目的,同样受着饼干,蛋糕和桦木鞭子的支配”,两千多年前柏拉图就抛出了这人生三问,可又有多少人深入的发自内心的思考过呢?这与大脑更加偏爱轻松简单的方法有一定的关系,无目的,散漫,随波逐流总是更加的轻松自在;你信上说,我母亲希望看见我有所作为。这使我感到好笑。难道我眼下不是在做事吗?归根到底,不管我是摘豌豆还是摘扁豆,不都一样吗?世界上的一切事情,说穿了全都无聊。一个人要是没有热情,没有需要,仅仅为了他人的缘故去逐利追名,苦苦折腾,这个人便是傻瓜。”让自己忙起来,从早忙到晚,不花时间思考似乎也就没有烦恼,但实际上真的是这样么?

        基于我们当前的学识和状态,我们总是会有“那儿好好,我要能去看看该多好”这样的想法真美啊,我能来到这儿的小丘上,眺望那道美丽的峡谷,那周围的景物竟是如此地吸引着我。那儿有一座小小的树林!–你要能到林荫中去有多好!那儿有一座高高的山峰!–你要能从峰顶俯瞰辽阔的原野有多好!那儿有连绵的丘陵,幽静的沟壑!–你要能徜徉其间,流连忘返有多好!”,可当有一天,当我们真的赶上去,当那儿成了这儿,当未来的一切仍一如既往,唉!我们就发现自己仍然平庸,仍然浅陋;我们的灵魂仍然焦渴难当,切盼着吸吮那已经流走了的甘霖。这样,浪迹天涯的游子最终又会思恋故土,并在自己的茅屋内,在妻子的怀抱里,在儿女们的簇拥下,在为维持生计的忙碌操劳中,找到他在广大的世界上不曾寻得的欢乐。”何其现实,如此的一针见血。

    “唉,我知道的东西谁都可以知道;而我的心却为我所独有”,所谓“千金易得,知己难寻”,大千世界的人总是因为这样那样的原因接近你,当得到自己想要的东西之后又忽然消失的无影无踪,但维特需要的是心之神交,但在当时的社会环境下就更难找到了,《维特》同时也有着异常强烈的时代精神,书中所提出的问题具有时代的普遍意义:欧洲当时正处于从封建制度向资本主义过渡的转折时期,经过文艺复兴,宗教改革和启蒙运动,新兴市民阶级已经觉醒,青年一代感情激荡,对于自己政治上的无权和社会上受歧视的地位深感不满。强烈渴望打破等级界限,建立符合自然的社会秩序和平等的人与人之间的关系。“ 我认为谁如果觉得自己有必要疏远所谓下等人以保持尊严,那他就跟一个因为怕失败而躲避敌人的懦夫一样可耻。” 开篇的时候维特帮忙把水放到使女的肩上的时候发出了这样的感慨;在自己任职期间到侯爵家中做客碰巧遇到聚会被排挤,封·B小姐的责怪等也可以看出当时社会等级的不平等。同时,就德国范围而言,《维特》乃是当时方兴未艾的“狂飙突进”运动最丰硕的果实。此运动深受卢梭的影响,追求“返归自然”,书中“自然”似乎也成了维特检验一切的准绳:他赞颂自然之美,亲近自然的人—天真的儿童和淳朴的村民,鄙视迂腐的贵族、虚伪的市民,主张艺术皈依自然,让天才自由发挥,不受束缚。因此维特发出了“只有自然,才是无穷丰富;只有自然,才能造就大艺术家” 的感慨,同时对于束缚,又做出了“朋友们啊!你们不是奇怪天才的巨流为什么难得激涨汹涌,奔腾澎湃,掀起使你们惊心动魄的狂涛吗?—亲爱的朋友,那是因为在这巨流的两边岸上,住着一些四平八稳的老爷,他们担心自己的庭园,花畦,花圃会被洪水冲毁,为了防范于未然,已及时地筑好堤,挖好沟了。”这样的比喻。

     中国有句俗语:“青年男子谁个不善钟情?妙龄女人谁个不善怀春?”少年的我们总是有这样的想法:“我喜欢ta,我就要和他永远在一起”,“爱ta,ta就是全部”,“爱就要付出一切”等等,因此书中的维特也有这样“自此,日月星辰尽可以安安静静地升起又落下,我却再也分不清白天和黑夜,周围的整个世界会全给抛到了脑后”的心头小鹿乱撞,“好的,亲爱的绿蒂,我将一切照办,一切办妥;你只管多多给我任务吧,常常给我任务吧!可有一件,我求求你,以后千万别再往你写给我的字条上撒沙子。今天我一接着它就送到嘴上去吻,结果弄得牙齿里全嘎吱嘎吱的。”的欣喜无措,思念时“么空虚啊!我的胸口觉得可怕的的空虚!—我常常想,哪怕你能把她拥抱在心口一次,仅仅一次,这整个的空虚就会填满了”的无限空洞,又有“我具有再多精力,也会被对她的热情吞噬掉;我具有再多天赋,没有她一切都将化作乌有一时心乱如麻等等的描写,他们三个人的关系也让我一时想起了梁思成,林徽因,徐志摩的故事,爱一个人的时候,我们总会在心中勾勒出一副对方“极度完美,极度适合自己”的构想,从而不断给自己推波助澜,而冷静下来的林徽因明确的指出了徐志摩所勾勒出来的并不是真正的自己,因而最终拒绝了,这也如同绿蒂对维特的提醒“我担心,我害怕,仅仅是因为不可能实现,才使这个占有我的欲望对你如此有诱惑力的”,正如歌词“得不到的永远在骚动”中描述的那样,年少的我们总是一根经,认定了一件事即使明知前路茫茫,也要不撞南墙不回头,但这也是年轻的我们积累下来的经验和财富,有一天,男孩总会长大,但只要保留心中的那份美好,去寻找另外适合自己的那一个,这需要一个过程,也需要有人进行引导,正如龙应台在《儿子给我上的爱情课》中讲到的那样,刚开始坚信不疑老师的话,“你们可不要相信这种‘纯纯’的爱。事实上,爱情能持久多半是因为两人有一种‘互利’的基础。没有‘互利’的关系,爱情是不会持久的。”,并且分析的头头是道,但是在龙应台进一步的表示疑问的时候,他也疑惑了,“妈,可是我才17岁啊,好像不该知道那么多,还是应该相信一点什么吧”,男孩需要不断推翻重建自己的认知,慢慢的获得成长;最怕的是陷入死循环中不得自己,就如维特一般,“绿蒂啊,只要能为你死,为你献身,我就是幸福的!我愿勇敢地死,高高兴兴地死,只要我的死能给你的生活重新带来宁静,带来快乐。可是,唉,人世间只有很少高尚的人肯为自己的亲眷抛洒热血,以自己的死在他们的友朋中鼓动起新的、百倍的生之勇气。”觉着如此一死便能解决一切。

     “唉,我不过是个漂泊者,是个在地球上来去匆匆的过客!难道你们就不是吗?”维特发出了这样的感慨,既然在此间无法得到绿蒂,他就漂泊到另一个地方,在那里等着。

——摘抄:

·是的,好朋友,诚如你所说:人们要是不这么没完没了地运用想象力去唤起昔日痛苦的回忆--上帝才知道为什么把人造成这个样子--而是多考虑考虑如何挨过眼前的话,人间的痛苦本来就会少一些的;
·我再次发现误解与成见,往往会在世界上铸成比诡诈与恶意更多的过错。
·我认为谁如果觉得自己有必要疏远所谓下等人以保持尊严,那他就跟一个因为怕失败而躲避敌人的懦夫一样可耻。
·你要是问这儿的人怎么样,我只能回答:跟到处的人一样!人类嘛都是一个模子铸出来的。多数人为了生活,不得不忙忙碌碌,花去大部分的时间;剩下一点点余暇确使他们泛起愁来,非想法设法打发掉不可,这就是人类的命运啊。(这与当下的与自己独处极其类似)
·大大小小的学究们一致断定,小孩儿是不知何所欲求的;岂止小孩儿,成人们还不是在地球上东奔西闯,同样不清楚自己打哪儿来,往哪儿去,同样干起事来漫无目的,同样受着饼干,蛋糕和桦木鞭子的支配。这个道理谁都不肯相信,但我想却是显而易见的。
·谁要虚怀若谷,正视这一切将会有怎样的结果;谁要能看见每一个殷实市民如何循规蹈矩,善于将自己的小小花园变成天国,而不幸者也甘负重荷,继续气喘吁吁地行进在人生的道路上,而且人人同样渴望多见一分钟阳光·是的,谁能认识到和看到这些,他也会心安理得,自己为自己创造一个世界,并且为生而为人感到幸福,这样,他尽管处处受着限制,内心却永远怀着甜滋滋的自由感觉,因为只要他愿意,他随时可以离开这座监狱。
·只有自然,才是无穷丰富;只有自然,才能造就大艺术家。
·朋友们啊!你们不是奇怪天才的巨流为什么难得激涨汹涌,奔腾澎湃,掀起使你们惊心动魄的狂涛吗?—亲爱的朋友,那是因为在这巨流的两边岸上,住着一些四平八稳的老爷,他们担心自己的庭园,花畦,花圃会被洪水冲毁,为了防范于未然,已及时地筑好堤,挖好沟了。
·诗人要做的只是发现美好的事物,并大胆地表达出来。
·亲爱的威廉,对于人们心中那种想要自我扩张,想要发现新事物,想要四处走走,见见世面的欲望,我曾经考虑的很多很多,后来,对于他们的逆来顺受,循规蹈矩,对周围任何事情都漠不关心的本能,我又作了种种思索。  真美啊,我能来到这儿的小丘上,眺望那道美丽的峡谷,那周围的景物竟是如此地吸引着我。那儿有一座小小的树林!--你要能到林荫中去有多好!那儿有一座高高的山峰!--你要能从峰顶俯瞰辽阔的原野有多好!那儿有连绵的丘陵,幽静的沟壑!--你要能徜徉其间,流连忘返有多好!  我匆匆赶去,去而复返,却不曾找到我所希望的东西。呵,对远方的希冀犹如对未来的憧憬!它就像一个巨大的、朦胧的整体,静静地呈现在我们面前,我们的感觉却和我们的视觉一样,在它里边也变得迷茫模糊了;但我们仍然渴望着,哎!渴望着献出自己的整个生命,渴望着让那唯一的伟大而奇妙的感情来充溢自己的心。—可是,当我们真的赶上去,当那儿成了这儿,当未来的一切仍一如既往,唉!我们就发现自己仍然平庸,仍然浅陋;我们的灵魂仍然焦渴难当,切盼着吸吮那已经流走了的甘霖。这样,浪迹天涯的游子最终又会思恋故土,并在自己的茅屋内,在妻子的怀抱里,在儿女们的簇拥下,在为维持生计的忙碌操劳中,找到他在广大的世界上不曾寻得的欢乐。
·是的,威廉,在这个世界上离我的心最近的是孩子们,每当我从旁观察他们,从细小的事情中发现他们有朝一日所需要的种种品德与才能到萌芽,从他们今日的固执任性中看出将来的坚毅与刚强,从今日的顽皮放肆中看出将来的幽默乐观以及轻松愉快地应付人世危难的本领,每当我发现这一切还丝毫未经败坏、完整无损,我便一次一次地,反反复复地,吟味人类的导师的这句金言:“可叹呀,你们要是不能变成小孩子的样子!”然而他们,好朋友,这些我们的同类,这些本应被我们视为楷模的人,我们对待他们却像对奴隶,竟不允许他们有自己的意志!--我们难道没有自己的意志吗?我们凭什么该享受这个特权吗?—因为我年长一些,懂事一些!—天国中的仁慈上帝呵,你可是把人类仅仅分成年长的孩子和年幼的孩子的;至于你更喜欢哪一类孩子,你的圣子可早已有所宣示呀。然而人们尽管信奉他。却并不听他的话,—这也是个老问题---因而都在照着自己的模样教育自己的孩子······
·我平生最讨厌的莫过于人与人之间相互折磨了,尤其是生命力旺盛的青年,他们本该坦坦荡荡,乐乐呵呵,实际上却常常板起面孔,仅有的几天好时光也被彼此给糟蹋掉,等到日后省悟过来,却已追悔莫及。
·我们生来都是有此惰性的,可是,只要我们能又一次鼓起勇气克服了它,接下去便会顺顺当当,并在活动中获得真正的愉快。--------很多缺点都一样,我们知道,但又习惯性的选择屈服。
·你信上说,我母亲希望看见我有所作为。这使我感到好笑。难道我眼下不是在做事吗?归根到底,不管我是摘豌豆还是摘扁豆,不都一样吗?世界上的一切事情,说穿了全都无聊。一个人要是没有热情,没有需要,仅仅为了他人的缘故去逐利追名,苦苦折腾,这个人便是傻瓜。
·的确,我们生来就爱拿自己和其他人反反复复比较,所以,我们是幸福或是不幸,全取决于我们与之相比的是些什么人;所以,最大最大的危险,就莫过于孤身独处了,我们的脑子生就是朝上想的,加之受到诗里的幻境的激发,便常常臆造出一些地位无比优越于我们的人来,好像他们个个都比自己杰出,个个都比自己完美。而且这似乎理所当然。经常地,我们感到自己身上有这样那样的缺陷;在我们看来,我们所欠缺的,别人偏偏都有。不仅如此,我们还把自己所有的品质全加在他的身上,外搭着某种心满意足,这样,一个幸福的人就完成了,只不过是我们自己的创造而已; 反之,如果我们不顾自己的衰弱和吃力,只管一个劲儿往前赶,我们常常便会发现,我们虽然步履踉跄,不断迷路,却仍比其他又张帆又划桨的人走得远—而且,一旦你与其他人并驾齐驱,或者甚至超越了他们,你就会真正感觉自身的价值。
·谁是第一号人物呢?我认为是那个眼光超过常人,有足够的魄力和心计把别人的力量和热情全动员起来实现自己计划的人。
·晚上,我下定决心要享受日出,到了早晨却起不来床;白天,我希望能欣赏月色,天黑了又待在房中出不去。我闹不明白,我干嘛起身,干嘛就寝。
·再说,他之重视我的智慧和才气,也胜过重视我的心;殊不知我的心才是我唯一的骄傲,才是我的一切力量、一切幸福、一切痛苦以及一切一切的唯一源泉!唉,我知道的东西谁都可以知道;而我的心却为我所独有。
·唉,我不过是个漂泊者,是个在地球上来去匆匆的过客!难道你们就不是吗?

———对于绿蒂的描述

·自此,日月星辰尽可以安安静静地升起又落下,我却再也分不清白天和黑夜,周围的整个世界会全给抛到了脑后。
·“我将要见到她啦!”清晨我醒来,望着东升的旭日,兴高采烈地喊道,“我将要见到她啦!”除此我别无希求,一切的一切,全融汇在这个期待中了。
·好的,亲爱的绿蒂,我将一切照办,一切办妥;你只管多多给我任务吧,常常给我任务吧!可有一件,我求求你,以后千万别再往你写给我的字条上撒沙子。今天我一接着它就送到嘴上去吻,结果弄得牙齿里全嘎吱嘎吱的。
·我打算去哪儿?让我对你说实话吧。我不得不在此地再逗留十四天,然后准备考虑去参加X地的一些矿井;但参观矿井压根儿不算回事,目的还是想借此离绿蒂近一些,如此而已。我自己也不禁笑起自己这颗心来,但笑尽管笑,却仍然迁就了它。
·我有时真不能理解,怎么还有另一个人能够爱她,可以爱她;要知道我爱她爱的如此专一,如此深沉,如此毫无保留,除她以外,我就什么也不知道,什么也不了解,什么也没有了呵。
·多么空虚啊!我的胸口觉得可怕的的空虚!—我常常想,哪怕你能把她拥抱在心口一次,仅仅一次,这整个的空虚就会填满了。
·我具有再多精力,也会被对她的热情吞噬掉;我具有再多天赋,没有她一切都将化作乌有。
~绿蒂说的,”我担心,我害怕,仅仅是因为不可能实现,才使这个占有我的欲望对你如此有诱惑力的。“
·它们经过了你的手,你还擦去了上面的灰尘;我把它们吻了一遍又一遍,因为你曾接触过它们。绿蒂呵,我的天使,是你成全我实现自己的决心!是你,绿蒂,是你把枪交给了我;我曾经渴望从你手中接受死亡,如今我的心愿得以满足了!
·绿蒂啊,只要能为你死,为你献身,我就是幸福的!我愿勇敢地死,高高兴兴地死,只要我的死能给你的生活重新带来宁静,带来快乐。可是,唉,人世间只有很少高尚的人肯为自己的亲眷抛洒热血,以自己的死在他们的友朋中鼓动起新的、百倍的生之勇气。

分开旅行–陶立夏 读书笔记整理

偶然间拿起这本书,是我在出差去中东的路上,在9个小时的飞行过程中,我在一只长着翅膀的金属庞然大物之中,思绪随着作者飘散到了世界各地。作者带着寻找永恒的初衷(“天空里没有恒星的恒心,只有风雨的无常,我要为我们两个人,去看一看永恒。”)出发,旅行的最后发现,原来我是去寻找我自己,与自己做个和解(“翻过着千山万水,我终于让你,自由,而我也可以重新去爱”)

——意大利:“我们在爱情里期待永恒,但这世间真的存在永恒不变的东西吗?

和餐厅老板告别的时候,他说:“有些风景,一个人看才更漂亮”,此时作者依旧存疑,把这句当成了老板的经验之谈。听了卡布里宫主人的故事后,感慨道“梦露,杰奎琳,卡拉斯。男人将她们串在一起,这三个赢得了全世界仰慕的女人,没能完整地拥有一个属于自己的爱人”,从圣·米歇尔别墅的过往住客亚克塞尔·蒙特的故事中,写下了“当我们失去,我们还可以靠回忆来拥有,我们也只能如痴,但谁又知道,这不是更好的拥有方式?那些失去了的,永不会再失去;”而别墅前的千年橄榄树又让作者开始思考人生的意义“在这么漫长的岁月里,我们稍纵即逝的存在是为了什么?我们随肉身消散的情感又有什么意义?”

爱里所说的永恒,在历史的长河中又算是多长时间呢?或许,是自己太执着了吧,于是你说“我看见了迷惘,也看见了,挽留的徒劳无益”,开始有了放下的初念。

—伦敦:”从荒芜到繁华,学生时代的记忆再次回来,温言暖语,终成冰炭“

在作者与M相遇的城市,故地重游,似乎已是物是人非,景色依旧,而过去的人又在何方:“这条河目睹过罗马人的入侵,伊丽莎白一世的舰队,以及全世界来这里淘金的商船。它就像一把标尺,你可以用它来衡量整个世界的改变。懂了泰晤士河,就懂了伦敦,懂了伦敦,即是懂了人世的悲欢离合。”
—国家美术馆和伦敦其他美术馆,博物馆一样免费开放,这是个依旧存在着阶层的城市,生活着皇室,贵族与平民,连超市购物袋都能泄露你的收入和身份,但最珍贵的东西又往往是免费的,或许这正是“无价”一词的本义。
—或许,消亡是一件缓慢的事,我们都不该匆忙地去做。比如烛火的熄灭,比如感情的冷却。在逐渐升起的暮色中,想起伦敦所代表的那个大英帝国,她的伟大,荣耀与失落,背负这么多前尘往事,也难怪这城市时常有张沉思而阴郁的面容。亨利·詹姆斯在《英国风情》中写道:“只有那些热情的朝拜者,茫然的外国人和其他剥夺了特权的人们,才能欣赏这个令人赞叹的国家的’特点’。

–北德:”在往北就是秋天了,我去北德拜访勃拉姆斯,还有他对克拉拉无望的爱情“

--怪不得聂鲁达说,我喜欢船员的爱情,只一个吻就可以告别;
—吕内堡居然不是白色的,那种惊讶就如同有人告诉我,拔河的作品是不对称的。
---古典音乐史的高峰是“三B”,Bach,Beethoven,Brahms(巴赫,贝多芬,勃拉姆斯),贝多芬的音乐一贯如那些乐曲的名字,个性鲜明、风格突出,而单恋了克拉拉·舒曼一辈子的勃拉姆斯最懂的深刻与克制的含义,巴赫呢,他总给他的作品编号,仿佛那是流水线上下俩的作品,有人推测《哥德堡变奏》是首支让听众感到无聊的催眠曲,这也不足为奇。
—一切美好而有序,奢华,平静而妖娆。这是波德莱尔形容巴黎的言辞,不过用来评价巴赫的音乐也不错。
--君特·格拉斯在他的回忆录《剥洋葱》里说:那些曾让你觉得隐隐作痛的事,依旧隐隐作痛。每座城市,就像每个人一样,多少都带着伤痕。骄傲的吕贝克人却已经把它们一一抹平了。
— 谁不是这样呢,活在过去与未来的微醺里。
--我在它的纪念碑上读到:它能躲避二战战火,是因为这个地区有众多湖泊。当年盟军计划在夜晚轰炸什未林车站,切断德军运输线。湖水倒映着月光闪闪发亮,飞行员大概没读过什未林旅游宣传手册,认为这样的湖区一定属于乡间,于是把炸弹投在了郊外的一间工厂。

—蒙古:”每次回程飞机遭遇颠簸,就知已到达乌拉尔山脉,我想去看看,这片荒芜里有什么“

--如果不能直面人世的复杂,那么,去看一看人世的荒芜吧。
--韩国人与日本人来了,于是乌兰巴托有一条大街被命名为首尔街,姑娘们喜欢用韩国化妆品。最直接的影响是:日本车是右侧驾驶,韩国车则左侧驾驶,于是蒙古人依靠好骑手与生俱来的良好平衡感,习惯了驾驶时左右开弓。
--在人生最后的岁月中,成吉思汗想到自己的后代将结束艰苦的游牧生活而转向定居生活时,痛苦地反思:"我们的后裔将穿戴织金衣,吃鲜美肥食……但他们不说:'这都是由我们的父兄得来的',他们将忘掉我们和这个伟大的日子。"事实上他的话在800年后,有了一种微妙的阐述。
--以欧洲为代表的西方世界一度不愿正视成吉思汗的征服史,不承认成吉思汗的骑兵与马其顿方阵、罗马军团一样治军严谨、战策英明。不过,近年来成吉思汗却作为个体获得了崇高待遇,印有他画像的纪念品总是很畅销。这样的转变或许与美国式个人英雄主义的传播不无关系。他足够铁腕,足够英勇,足够强大,至于他确立蒙古文字、开创蒙古帝国最初的政治体制等这些建树反而在其次。我也同样在他非凡的经历里获得启示:要毫不犹豫地去相信你想相信的事,并付诸实践,尽管这自由意志代价高昂。
--蒙古谚语说:人唯有在开阔广大之地,才能具备真正的眼界。我决定出发到戈壁去。
--Muugi说飞马是戈壁也是蒙古的图腾,这让我想起威尼斯的标志:长着翅膀的狮子。有了翅膀,它们就可以征服天与地。
--在这片土地上,并不是拥有的越多就越富有,而是需要的越少,就越容易觉得满足。

—肯尼亚:《夜航西飞》《走出非洲》”乞力马扎罗山上的雪,马赛马拉的牧群,我好像开始怀念你了,像怀念一个故人“

—---这么年轻,为什么不快乐?没看见么?这个世界都是你的!
—---哈,中东很安全,不安全的,不过是人心。
----从来没有过问你经历了什么,独自承担了些什么,你的心为什么会改变,不就是人世与人心嘛,谁和谁不都一样?看着窗外纹丝不动的夜色,我独自想。你可以说这样很冷血,说这样很残忍,也可以说这是智慧,这是看透,“不见得你比别人更痛些,只不过你表达得精彩些。”黄碧云这话,算是句风凉话,但是真的,你走这么远赶来,不过是为了一时的心痛。
----欧美上流社会中曾流行在获得一笔丰厚遗产后买张到肯尼亚的机票,一下飞机就换上全身卡其布装束,扛上猎枪,带上几叠白色餐巾再雇一堆仆佣,浩浩荡荡向着狮子与大象进发。中间当然也有蚊虫叮咬,帐篷内缺水少电这样无伤大雅的小麻烦,他们最后都成为海明威的灵感,写进了《非洲的青山》以及《乞力马扎罗的雪》。
—--马赛人认为跳得高的是英雄,跳得越高就可以获得越多女朋友。
—---入睡前,我想起伯瑞尔·马卡姆在《夜航西北》中的句子,这个在肯尼亚长大的英国奇女子曾这样形容肯尼亚的寂静:“世间有许多种不同的静默,每一种都有不同的意味。有一种寂静是伴随清晨的树林一同降临,它有别于一座寂静是伴随清晨的树林一同降临,它有别于一座安睡的城市的寂静。有暴风雨前的寂静以及暴风雨后寂静,这两者也不尽相同。有虚无的静默,惊惧的静默,疑惑的静默······它是无声的回响。”
-----乞力马扎罗山越来越近,关于它的故事之一是英女王在19世纪末将它作为生日礼物送给了德国皇帝,乞力马扎罗也因此被划入德国殖民统治下的坦桑尼亚版图。事实上,事情并非如此简单,作为交换,英国人获得了印度洋海上贸易重镇桑给巴尔的控制权,肯尼亚的海岸线得到了巩固。在经历了无数纷争后,如今肯尼亚人对游客说:乞力马扎罗依旧是肯尼亚的,因为它最美的一面,只在肯尼亚才能看见。
——我们都说威尼斯要沉了,而乞力马扎罗山的雪正在融化,它们代表着某种无法转圜的遗憾。世界上当然还有许多其他的美景,我以为能做的,只是经过千山万水走到她们面前,然后为她们的美,屏住呼吸,忍住泪水。但是当我真的站在乞力马扎罗山下,才明白事情并非如此简单。或许我们走那么远,不是为了看风景,而是为了去天地的尽头会一会自己。因为只有在那遥远的地方,你才能把喧嚣的人世抛在身后。M,原来走这么远,我不是要寻找你,而是要寻找自己。
---放下餐巾走到空地上,静静看着基博峰耀目的折光,那一刻,我明白了海明威写《乞力马扎罗的雪》时感到的那种恐惧,一种来自迷惘的,竭泽之鱼般的恐惧,原来生命可以像烈酒般一饮而尽,吞下腹去不知所终。我们都像是书中失败的作家哈利,贪图安逸,逃避辛劳,最后一无所获,满心惆怅。
---我们顾虑太多,要求太多,到最后绕了很远的路回来,留在手心里,也还是最初的那一点感动,以为只要缱绻过一时,就能用这样的心去爱一世。但是在这激流一样的人世间,谁真的能够?我现在不会再觉得心痛,只有一种难言的怅惆。因为我更加懂得你,懂得了人世的不确定。
--仿佛只有到了拉姆,才真正明白了人的一生在时间长河中的意义,正如同庄子两千多年前在蜉蝣身上得到的那个小小启示。
--游客走过风景,而旅行者则让风景从自己的内心走过(A tourist goes through the scenery and a traveler let the scenery go through himself .)
—-肯尼亚告诉我,在时间的河上,人的一生何其短暂,她告诉我,我们索取得那么多,而真正需要的,又是那么少。

—印度:《宝莱坞生死恋》”我经过印度洋,一路北上去看望世界上最寂寞的阳台,原来有些人,确实深深爱过“

---其实所有景色都那么美,只是路这么远,到后来,就觉得有几分荒凉。
—沙杰汗的寝宫正朝着泰姬陵的方向,以白色大理石建造,上面刻满了繁复的花纹,这是世界上最精美的监狱,站在阳台外,凝视着不远处的泰姬陵,我仿佛懂得了沙杰汗的心,可望而不可及的无奈与绝望,他是否曾经祈祷时间快点过去,早日安睡在爱人身边。
—现在,人们都忘记了沙杰汗的荒淫跋扈,只记住了他执着一念的爱情。代价就是:除却星期五,每天都有人去瞻仰她们的爱情,永无安宁。

—赫尔辛基:”赫尔斯基的火车站,由你最喜欢的建筑师设计。走了这么多路,却没有与你重逢。“

---只知道我们总是战胜空间,却对时间无能为力。
—--爱或许真的是很恐怖的事情,因为我们爱的时候,心内总是无比挂碍,有太多颠倒梦想。而结局,永远无法按着你的愿望实现。

—墨尔本:”这里是蔷薇和长羽鸟的天堂。世界的另一端,也许远离,才能靠近。

—在自然的博大广阔与人类的渺小狭隘之间,产生出深深的热爱与敬意。
—甲之熊掌,乙之砒霜。世间许多事都如人饮水,冷暖自知。
—在山间的溪流中看三文鱼逆流而上,顺应生命中无可解释的召唤,从海中回到山间产卵。不知道那些倔强的鱼可曾有问过原因,当时间到来,一定要历经艰难、不眠不休地回到当初出生的地方。作为人类的我们,时常迷惘,时常想大声呼喊,时常在问为什么。但其实很多事情没有缘由。就如同,爱若死了,就是死了,捡拾不起,呼唤不应。
—1909年,著名作家、编剧尤金·奥尼尔从宿醉中醒来,发现自己娶了一个陌生女人。怀着强烈的自我厌恶之情,他登上了一艘游轮,并在海上漂流了七个月,正是在游轮上,他获得了那些海上独幕剧的灵感,他为那些剧集取名为:The Moon of the Caribbees and Six Other Plays of the Sea。一百年后,我们带着各式各样的装备与情绪上船旅行。或许想要用无所事事的悠闲将自己灌醉,或许想要从千篇一律的海景中获得人生启示。但或许,麦特的话就是真理:“无论你希望从这座移动城堡上获得什么,都请不要只坐在舱房内看海景,因为所有的快乐与真理都在外面,Get Out There!”
—但当你决定将心放在他人的手里,又怎能计算代价。

—新加坡:“在轮船轰鸣中等待日出。我写了满满的三页信给你,最后寄出的却是空白”

---很多事情我们以为自己明白,其实,未必透彻。《夜航西飞》中有这样一句话:“我独自度过了太多的时光,沉默已成习惯。”
—李光耀曾说:“新加坡是个小岛,退潮时,面积只有 214平方公理。”新加坡人就在这个什么都有限的小岛上,努力活得像热带植物一样丰盛。而乔治·艾略特则说,“The happiest women,like the happiest nations,have no history”.我想不出哪个国家比新加坡更适合乔治·艾略特的这句类比。
---旅行很容易,出发很容易,逃避很容易,但寻找答案并不容易,我也开始知道,爱一个人很难,不爱一个人更难,而最难的是真正离开一个人,当你离开一个人,他并不会瞬间消失在街角,他是慢慢在你生命中消失的,就像渐渐干涸的水渍。那是一种缓慢而迟钝的折磨。我清楚的直销,你不能回赠我同样的深情与激烈,只要伸一伸手就能将我拥入怀中,而你只会抿紧嘴唇,双手握拳,看我抹着泪远走。但我更清楚的知晓,不管爱不爱你,时间都一样会过去,在这条暗流汹涌的长河里,我倔强地选择你,做我心上那道深不可测亦无法愈合的伤口。M,我们的明天不会来了,我感到,好遗憾,原来关于命运,我们都猜错。

—-得克萨斯州:“颓废的美国南方,劈柴喂马的生活,我们有自由的灵魂,也有永恒的孤寂”

--世界上有两个巴黎,一个在法国,还有一个在美国的德克萨斯州。
—孤星旗是唯一可与美国国旗并列的州旗。
—这自由不仅代表着没有拘束的生活,也代表着责任、创造和勤奋。就像德克萨斯人常说的那句:“勇敢去梦想、执着去实现。”

——日本:德川家康,织田信长,丰臣秀吉;“人生是一期一会的事,就像樱花。古都奈良的一杯茶,吉野山上的一段经。悸动的心渐渐静了。”

—-当那年冬季终于过去,我恍然发现时至今日生命中不需要任何人亦能活得很健康。我们常常失去,也常常有所得。只是与失去的绝对相比较,生命中的音乐,原本皆是恩赐。原来,我们都曾是孩子,将在手的幸福看的太理所当然了一些。
---或许等待真是最好的方式。
---如果不可以触碰,如何体会,如果不靠近,有如何明了。
—--之所以如此,是因为不常在眼睛,才能久留于心中。

——以色列:“见过死海,就当是死过一回,一切重新开始。我在哭墙前对世界上所有的神明说,让我们自由。”

—可能等你过完自己的一生,到最后却发现了解别人胜过了解你自己。你学会观察他人,但你从不观察自己,因为你在与孤独苦苦抗争。假如你阅读,或玩纸牌,或照料一条狗,你就是在逃避自己,对孤独厌恶就如同想要生存的本能一样自然,如果不是这样,人类就不会费神创造什么字母表,或是从动物的叫喊中总结出语言,也不会穿梭在各大洲之间---每个人都想知道别人是什么样子。
——“拣尽寒枝不肯栖”,是殊不容易的执着,其实何必?人都是有欠有还,才能相逢。
—我最爱的《圣经》章节是“传道书”,里面写道“已行的事,后必再行。日光之下,并无新事。”

—米兰:“我回到这段旅行的起点,去看《最后的晚餐》。这是最后的告别,我终于可以重新去爱了”。

—你知道吗,在爱里,本没有好与坏,也没有是与非。因为被爱的人,总是可以在爱他的人心里摆脱道德的审判。我不恨你,但是却开始想要忘记你。是不是这一路太漫长,终让我变得冷酷?
—在诸多与时间对抗的技艺中,写作大概是最简单的一种,从事这份工作只需要你可以抵抗孤独;大量时间的独处,不间断的阅读,自我否定过程中获得的自信,我喜欢这种不张望的专注,并决定在写作以及与时间的对峙中,贯彻始终。
  • something

---罗马:威尼斯广场(因为附近的威尼斯宫(Palazzo Venezia)而得名,罗马最大的圆形广场,五条大街交汇处,维克多·埃曼纽尔二世纪念堂的外观像极了结婚蛋糕,是为庆祝1870年意大利统一而建造的纪念堂,耗时25年建成,台阶下两组喷泉寓意深刻:右边的象征第勒尼安海,左边的象征亚得里亚海,中央骑马的人物塑像就是完成了意大利统一大业的维克多·埃曼纽尔二世。建筑物上面有两座巨大的青铜雕像,右边的代表“热爱祖国的胜利”,左边代表的是“劳动的胜利”,注,图片和介绍摘自https://www.jianshu.com/p/914ca37d7201);马可斯.布鲁图斯刺杀凯撒;
--伊丽莎白一世:是都铎王朝的第五位也是最后一位君主。她终生未婚,因此有“童贞女王”(The Virgin Queen)之称,她即位时英格兰处于内部因宗教分裂的混乱状态,但她不但成功地保持了英格兰的统一,而且在经过近半个世纪的统治后,使英格兰成为欧洲最强大和最富有的国家之一,她的统治期在英国历史上称为“伊丽莎白时代”,亦称为“黄金时代”。伊丽莎白为人谨慎,她的座右铭是“明察无言”(拉丁语:video et taceo)
---世界上有三个国中之国,一个是梵蒂冈,一个是圣马力诺,还有一个是莱索托王国。
---那不勒斯:圣塞维诺小堂,主人雷蒙德.迪.桑格罗让雕塑师创作了《覆纱的耶稣》;但丁在神曲中暗示,地狱的入口在那不勒斯郊外;
---波斯塔诺:小镇的特别之处,在于从海边顺着悬崖而上的小巧白房子以及变幻的海景
---卡布里:卡布里宫酒店有随处可见的“海绵女士”系列,设计师解释“海绵是来自海洋的皇冠,他相信唯有用最廉价朴素的材料,才能还原最本真的内心,而时常出现的浴缸则象征生命源泉,躲在浴缸里,男孩们幻想自己成为将军迎击海盗,女孩们幻想自己成为美人鱼等待王子的船经过”;
--特拉法尔加海战是19世纪初英国舰队与法国西班牙联合舰队之间的一场大规模海战,因海战地点在西班牙大西洋沿岸特拉法尔加角(靠近加的斯城市和港口)附近而得名,是帆船海战史上以少胜多的一场漂亮的歼灭战,也是19世纪规模最大的一次海战。纳尔逊在这场海战中敢于突破陈旧的战斗序列理论,运用灵活机动的战术,使法国和西班牙联合舰队一败涂地,并用自己的生命换来了不列颠皇家海军荣耀的巅峰,将胜利之剑牢牢地插在大洋中心。
--伦敦朗廷酒店,阿瑟·柯南·道尔在这里撰写福尔摩斯的冒险,拿破仑三世将这里当作他客居他客居伦敦时的行宫,丘吉尔在这里主持“二战”大局,奥斯卡·王尔德在这里说,“没有危险倾向的想法不配被称为想法”。朗廷酒店开出的最大账单应该属于温莎公爵,他在这里与辛普森夫人初次相遇,为了这次相逢,他付出了整个大英帝国的代价。
--汉堡著名的“米歇尔”(Michel) 教堂不仅是德国北部最重要的巴洛克式教堂,也可以被视为全球最高的灯塔之一,因为它是易北河上航运的重要陆标。 从 106 米高的观景台上可以一览汉堡和港口的全景,夜景则更为迷人。
--在牛津也有这样的纪念品。1555年拉提摩尔和雷德利两位主教在这里被信仰天主教的玛丽皇后下令烧死,拉提摩尔主教对一同殉道的伙伴喊道:"今天我们以上帝的恩慈在英格兰点燃这样一支蜡烛,我相信它永不会熄灭。"拉提摩尔所谓的蜡烛指的是新教徒的信仰。一年后的1556年,克兰麦大主教也在同一地点被处死。柴堆的火焰烧焦了贝列尔学院在几尺开外的大门。后来大门被拆下来重新安装到内庭入口,那些焦痕如今依旧清晰可见。人类总是为了不同的追求,付出相同的代价。
---乞力马扎罗在斯瓦西里语中的意思,璀璨发光的山。(斯瓦希里语(kiswahili),中文也称斯瓦希里文,属于班图语族,是非洲语言使用人数最多的语言之一(5500万多人),和阿拉伯语及豪萨语并列非洲三大语言)
—“Dhows”,意为单桅三角帆船,并且专指阿拉伯人在印度洋地区使用的帆船,位于肯尼亚东南海岸线的拉姆群岛主要由拉姆、曼达、帕泰和基瓦由四个大岛组成,附近还散布着较小的岛屿,其中最大的城镇建在拉姆岛上,因为群岛中只有拉姆的地下有淡水。

—对美酒爱好者来说,达拉斯是冰镇玛格丽特的诞生地,1971年,玛丽克诺·玛格丽特为了制造这种柔滑醒神的饮品,还特意发明了特殊的机器。

—-日本人处世哲学:万事取其长,为自己用。

—-佛罗伦萨,在意大利稳重写作Firenze,意为“繁花之地”,这便是徐志摩诗作中的“翡冷翠“。

Linux就该这样学—-笔记整理

第一章部署安装Linux;

--RPM有点像Windows系统中的控制面板,会建立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系。
----Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。systemd初始化进程服务采用了并发启动机制,开机速度得到了不小的提升。
-----Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd用目标(target)代替了System V init中运行级别的概念
-----如果想要将系统默认的运行目标修改为“多用户,无图形”模式,可直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录:
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

第二章:

-----计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。
Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该   状态。
D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
T(停止):进程收到停止信号后停止运行。

-----pidof命令,用于查询某个指定服务进程的PID值;
-----last,这些信息都是以日志文件的形式保存在系统中
-----ls -l “-l”参数可以查看文件的属性、大小等详细信息。
-----看行号的时候,cat命令后面追加一个-n参数:
-----“tr [原始字符] [目标字符]” 某个文本内容中的英文全部替换为大写,cat anaconda-ks.cfg | tr [a-z] [A-Z]
-----wc命令:
-l  只显示行数
-w  只显示单词数
-c  只显示字节数
-----diff命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”。在使用diff命令时,不仅可以使用--brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器。
------对touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。                touch命令的参数及其作用
-a  仅修改“读取时间”(atime)
-m  仅修改“修改时间”(mtime)
-d  同时修改atime与mtime
接下来,我们先使用ls命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的呢):
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1213 May  4 15:44 anaconda-ks.cfg
[root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 Aug  2 01:26 anaconda-ks.cfg
[root@linuxprobe ~]# touch -d "2017-05-04 15:44" anaconda-ks.cfg
[root@linuxprobe ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 May  4 15:44 anaconda-ks.cfg
-------Linux系统中有一个名为/dev/zero的设备文件,因为这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。dd命令的参数及其作用如表2-13所示。
dd命令的参数及其作用
if       输入的文件名称
of       输出的文件名称
bs       设置每个“块”的大小
count    设置要复制“块”的个数
dd if=/dev/zero of=560_file count=1 bs=560M
如果您想把光驱设备中的光盘制作成iso格式的镜像文件,在Windows系统中需要借助于第三方软件才能做到,但在Linux系统中可以直接使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像:dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
-------file命令用于查看文件的类型,格式为“file 文件名”
------如果要在整个系统中搜索权限中包括SUID权限的所有文件(详见第5章),只需使用-4000即可:
[root@linuxprobe ~]# find / -perm -4000 -print

第三章

命令 < 文件           将文件作为命令的标准输入
命令 << 分界符         从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2   将文件1作为命令的标准输入并将标准输出到文件2
----通配符就是通用的匹配信息的符号,比如星号(*)代表匹配零个或多个字符,问号(?)代表匹配单个字符,中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,而中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。
----单引号保持字符属性,双引号会进行变量切换;

第四章

---vim, n显示搜索命令定位到的下一个字符串,N是上一个;u撤销上一步操作;
---例如$0对应的是当前Shell脚本程序的名称,$#对应的是总共有几个参数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值,而$1、$2、$3……则分别对应着第N个位置的参数值,
---[]条件表达式,作用
-d  测试文件是否为目录类型
-e  测试文件是否存在
-f  判断是否为一般文件
-r  测试当前用户是否有权限读取
-w  测试当前用户是否有权限写入
-x  测试当前用户是否有权限执行


---SGID主要实现如下两种功能:
让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);
在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
部门内的任何人员在里面创建的任何文件都会归属于该目录的所属组,而不再是自己的基本用户组。此时,我们用到的就是SGID的第二个功能,即在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
[root@linuxprobe ~]# cd /tmp
[root@linuxprobe tmp]# mkdir testdir
[root@linuxprobe tmp]# ls -ald testdir/
drwxr-xr-x. 2 root root 6 Feb 11 11:50 testdir/
[root@linuxprobe tmp]# chmod -Rf 777 testdir/    确保普通用户可以写;
[root@linuxprobe tmp]# chmod -Rf g+s testdir/
[root@linuxprobe tmp]# ls -ald testdir/
drwxrwsrwx. 2 root root 6 Feb 11 11:50 testdir/
-----chmod和chown命令是用于修改文件属性和权限的最常用命令,它们还有一个特别的共性,就是针对目录进行操作时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。

----SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。当目录被设置SBIT特殊权限位后,文件的其他人权限部分的x执行权限就会被替换成t或者T,原本有x执行权限则会写成t,原本没有x执行权限则会被写成T。

-----隐藏属性:
chattr命令用于设置文件的隐藏权限,格式为“chattr [参数] 文件”。如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”。chattr命令中可供选择的隐藏权限参数非常丰富,具体如表5-6所示。
表5-6                                  chattr命令中用于隐藏权限的参数及其作用
参数
作用
i
无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a
仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S
文件内容在变更后立即同步到硬盘(sync)
s
彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A
不再修改这个文件或目录的最后访问时间(atime)
b
不再修改文件或目录的存取时间
D
检查压缩文件中的错误
d
使用dump命令备份时忽略本文件/目录
c
默认将文件或目录进行压缩
u
当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t
让文件系统支持尾部合并(tail-merging)
x
可以直接访问压缩文件中的内容
-----lsattr命令用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”。

----文件访问控制权限:
如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。通俗来讲,基于普通文件或目录设置ACL其实就是针对指定的用户或用户组设置文件或目录的操作权限。另外,如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;若针对文件设置了ACL,则文件不再继承其所在目录的ACL。
-----针对目录文件需要使用-R递归参数;针对普通文件则使用-m参数;如果想要删除某个文件的ACL,则可以使用-b参数。
setfacl -Rm u:linuxprobe:rwx /root
getfacl命令用于显示文件上设置的ACL信息,格式为“getfacl 文件名称”。


-----su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)。
只有root管理员才可以使用visudo命令编辑sudo服务的配置文件。
在sudo命令的配置文件中,按照下面的格式将第99行(大约)填写上指定的信息:
谁可以使用  允许使用的主机=(以谁的身份)  可执行命令的列表
[root@linuxprobe ~]# visudo
96 ##
97 ## Allow root to run any commands anywhere
98 root ALL=(ALL) ALL
99 linuxprobe ALL=(ALL) ALL

第六章:

---系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等;
-----一般的硬盘设备都会是以“/dev/sd”开头的。而一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也很有讲究:
主分区或扩展分区的编号从1开始,到4结束;逻辑分区从编号5开始。
----/dev目录中sda设备之所以是a,并不是由插槽决定的,而是由系统内核的识别顺序来决定的,而恰巧很多主板的插槽顺序就是系统内核的识别顺序,因此才会被命名为/dev/sda。
-----sda3只能表示是编号为3的分区,而不能判断sda设备上已经存在了3个分区。
-----/dev/sd5的意思是/dev/目录中保存的应当是硬件设备文件;其次,sd表示是存储设备;然后,a表示系统中同类接口中第一个被识别到的设备,最后,5表示这个设备是一个逻辑分区。一言以蔽之,“/dev/sda5”表示的就是“这是系统中第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件”。
---硬盘设备是由大量的扇区组成的,每个扇区的容量为512字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用446字节,分区表为64字节,结束符占用2字节;其中分区表中每记录一个分区信息就需要16字节,这样一来最多只有4个分区信息可以写到第一个扇区中,这4个分区就是4个主分区。
-----为了解决分区个数不够的问题,可以将第一个扇区的分区表中16字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像是一个占用16字节分区表空间的指针—一个指向另外一个分区的指针。这样一来,用户一般会选择使用3个主分区加1个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来满足多分区(大于4个)的需求。
-----XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,
-----拿到了一块新的硬盘存储设备后,也需要先分区,然后再格式化文件系统,最后才能挂载并正常使用
-----Linux只是把每个文件的权限与属性记录在inode中,而且每个文件占用一个独立的inode表格,该表格的大小默认为128字节,里面记录着如下信息:
该文件的访问权限(read、write、execute);
该文件的所有者与所属组(owner、group);
该文件的大小(size);
该文件的创建或内容修改时间(ctime);
该文件的最后一次访问时间(atime);
该文件的修改时间(mtime);
文件的特殊权限(SUID、SGID、SBIT);
该文件的真实数据地址(point)。
而文件的实际内容则保存在block块中(大小可以是1KB、2KB或4KB),一个inode的默认大小仅为128B(Ext3),记录一个block则消耗4B。当文件的inode被写满后,Linux系统会自动分配出一个block块,专门用于像inode那样记录其他block块的信息,这样把各个block块的内容串到一起,就能够让用户读到完整的文件内容了。对于存储文件内容的block块,有下面两种常见情况(以4KB的block大小为例进行说明)。

-----Linux有众多的文件系统,但我们平时操作的时候都不用关心,这是因为“计算机系统在发展过程中产生了众多的文件系统,为了使用户在读取或写入文件时不用关心底层的硬盘结构,Linux内核中的软件层为用户程序提供了一个VFS(Virtual File System,虚拟文件系统)接口,这样用户实际上在操作文件时就是统一对这个虚拟文件系统进行操作了。”
----------https://www.cnblogs.com/xiexj/p/7214502.html
------linux文件存储:
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
----iNode大小:
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。这也决定了硬链接不能跨越文件系统;
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。df -i
-----iNode号码:每个inode都有一个号码,操作系统用inode号码来识别不同的文件。
这里值得重复一遍,Unix/linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。
表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
使用ls -i命令,可以看到文件名对应的inode号码:

----Unix/Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件。
目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。

---软硬链接:但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。
这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。node信息中有一项叫做"链接数",记录指向该inode的文件名总数,这时就会增加1。
反过来,删除一个文件名,就会使得inode节点中的"链接数"减1。当这个值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。testfile的inode count增加了一个。而且testfile和testfile.hard这两个的Inode number是一样的。这个硬链接就是重新创建了一个文件名对应到原文件的Inode。实质就是在Directory中增加了一个新的对应关系。通过这个例子,你是不是更清楚了,这个Inode count的含义了。他就是指,一个Inode对应了多少个文件名。

--文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。
-----注意事项:
硬链接不能对目录进行创建,只能对文件创建硬链接

----删除文件
他实质上就是减少link count,当link count为0时,就表示这个Inode可以使用,并把Block标记为可以写,但并没有清除Block里面数据,除非是有新的数据需要用到这个block。

-----当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。
-----对于比较新的Linux系统来讲,一般不需要使用-t参数来指定文件系统的类型,Linux系统会自动进行判断。而mount 中的-a参数则厉害了,它会在执行后自动检查/etc/fstab文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。
-----如果想让硬件设备和目录永久地进行自动关联,就必须把挂载信息按照指定的填写格式“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”(各字段的意义见表6-4)写入到/etc/fstab文件中。
字段的意义
设备文件  :一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)
挂载目录  :指定要挂载到的目录,需在挂载前创建好
格式类型  :指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项  :若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份  :若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检  :若为1则开机后自动进行磁盘自检,为0则不自检
-----umount命令用于撤销已经挂载的设备文件,格式为“umount [挂载点/设备文件]”。

------在Linux系统中,管理硬盘设备最常用的方法就当属fdisk命令了。fdisk命令用于管理磁盘分区,格式为“fdisk  [磁盘名称]”,它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。
------输入partprobe命令手动将分区信息同步到内核,而且一般推荐连续两次执行该命令,效果会更好。
------mkfs命令很贴心地把常用的文件系统名称用后缀的方式保存成了多个命令文件,用起来也非常简单—mkfs.文件类型名称。例如要格式分区为XFS的文件系统,则命令应为mkfs.xfs /dev/sdb1。
-------du -sh /*命令来查看在Linux系统根目录下所有一级目录分别占用的空间大小
-------在生产环境中,交换分区的大小一般为真实物理内存的1.5~2倍
-------使用SWAP分区专用的格式化命令mkswap,使用swapon命令把准备好的SWAP分区设备正式挂载到系统中。我们可以使用free -m命令查看交换分区的大小变化
-------使用quota命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。quota命令还有软限制和硬限制的功能。
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。
!!!!!!---存储设备却默认没有开启对quota的支持,此时需要手动编辑配置文件, 例如,/etc/fstab
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults,uquota 1 2
-------xfs_quota命令是一个专门针对XFS文件系统来管理quota磁盘容量配额服务而设计的命令,格式为“xfs_quota [参数] 配额 文件系统”。其中,-c参数用于以参数的形式设置要执行的命令;-x参数是专家模式,让运维人员能够对quota服务进行更多复杂的配置。
-------edquota命令用于编辑用户的quota配额限制,格式为“edquota [参数] [用户] ”。在为用户设置了quota磁盘容量配额限制后,可以使用edquota命令按需修改限额的数值。其中,-u参数表示要针对哪个用户进行设置;-g参数表示要针对哪个用户组进行设置。edquota命令会调用Vi或Vim编辑器来让root管理员修改要限制的具体细节。

--------在Linux系统中存在硬链接和软连接两种文件。
硬链接(hard link):可以将它理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。

软链接(也称为符号链接[symbolic link]):仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷方式”具有一样的性质。

ln命令中可用的参数以及作用
-s   创建“符号链接”(如果不带-s参数,则默认创建硬链接)
-f   强制创建文件或目录的链接
-i   覆盖前先询问
-v   显示创建链接的过程

第七章:raid和lvm管理;

---RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。
---RAID 1是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。
---RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;
---RAID 10技术需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。
----mdadm命令用于管理Linux系统中的软件RAID硬盘阵列,格式为“mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”。
-C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称;-a yes参数代表自动创建设备文件;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而-l 10参数则代表RAID 10方案;

======== mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
在格式化,创建挂载点即可;

——lvm:

-----物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。

----新建物理卷:pvcreate /dev/sdb /dev/sdc
----加入卷组:vgcreate storage /dev/sdb /dev/sdc
----切割逻辑卷:lvcreate -n vo -l 37 storage
----格式化:mkfs.ext4 /dev/storage/vo
----挂载:mount /dev/storage/vo /linuxprobe

--------扩容实验:
lvextend -L 290M /dev/storage/vo
检查完整性:e2fsck -f /dev/storage/vo
重置硬盘容量:resize2fs /dev/storage/vo
重新挂载:mount -a

-------缩小实验:相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉。
检查完整性:e2fsck -f /dev/storage/vo
把逻辑卷vo的容量减小到120MB,先把文件系统缩小  resize2fs /dev/storage/vo 120M
缩小逻辑卷大小            lvreduce -L 120M /dev/storage/vo
重新挂载:mount -a


-----快照:快照卷的容量必须等同于逻辑卷的容量;快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除。
---由于快照需要与逻辑卷大小相同,所以先查看逻辑卷大小:vgdisplay
-----使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作。
lvcreate -L 120M -s -n SNAP /dev/storage/vo

-----恢复,记得先卸载掉逻辑卷设备与目录的挂载
-----umount /linuxprobe
[root@linuxprobe ~]# lvconvert --merge /dev/storage/SNAP

第八章:防火墙:

---iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,或者说,它们只是一种服务。iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。
----iptables服务的术语中分别是ACCEPT(允许流量通过)、REJECT(拒绝流量通过)、LOG(记录日志信息)、DROP(拒绝流量通过)。“允许流量通过”和“记录日志信息”都比较好理解,这里需要着重讲解的是REJECT和DROP的不同点。就DROP来说,它是直接将流量丢弃而且不响应;REJECT则会在拒绝流量后再回复一条“您的信息已经收到,但是被扔掉了”信息,从而让流量发送方清晰地看到数据被拒绝的响应信息。

—–iptables相关;

防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。

—-Firewalls:

—–firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面)版本,支持通过tab键进行命令补齐;

---firewalld配置的防火墙策略默认为运行时(Runtime)模式,又称为当前生效模式,而且随着系统的重启会失效。如果想让配置策略一直存在,就需要使用永久(Permanent)模式了,方法就是在用firewall-cmd命令正常设置防火墙策略时添加--permanent参数,这样配置的防火墙策略就可以永久生效了。但是,永久生效模式有一个“不近人情”的特点,就是使用它设置的策略只有在系统重启之后才能自动生效。如果想让配置的策略立即生效,需要手动执行firewall-cmd --reload命令。

—–常见的实验:

查看firewalld服务当前所使用的区域:
[root@linuxprobe ~]# firewall-cmd --get-default-zone
public
查询eno16777728网卡在firewalld服务中的区域:
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=eno16777728
public
把firewalld服务中eno16777728网卡的默认区域修改为external,并在系统重启后生效。分别查看当前与永久模式下的区域名称:
[root@linuxprobe ~]# firewall-cmd --permanent --zone=external --change-interface=eno16777728
success
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=eno16777728
public
[root@linuxprobe ~]# firewall-cmd --permanent --get-zone-of-interface=eno16777728
external
把firewalld服务的当前默认区域设置为public:
[root@linuxprobe ~]# firewall-cmd --set-default-zone=public
success
[root@linuxprobe ~]# firewall-cmd --get-default-zone
public
启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用):
[root@linuxprobe ~]# firewall-cmd --panic-on
success
[root@linuxprobe ~]# firewall-cmd --panic-off
success
查询public区域是否允许请求SSH和HTTPS协议的流量:
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https
no
把firewalld服务中请求HTTPS协议的流量设置为永久允许,并立即生效:
[root@linuxprobe ~]# firewall-cmd --zone=public --add-service=https
success
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@linuxprobe ~]# firewall-cmd --reload
success
把firewalld服务中请求HTTP协议的流量设置为永久拒绝,并立即生效:
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --remove-service=http
success
[root@linuxprobe ~]# firewall-cmd --reload
success
把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效:
[root@linuxprobe ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp
success
[root@linuxprobe ~]# firewall-cmd --zone=public --list-ports
8080-8081/tcp
把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:
流量转发命令格式为firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
success
[root@linuxprobe ~]# firewall-cmd --reload
success
在客户端使用ssh命令尝试访问192.168.10.10主机的888端口:
[root@client A ~]# ssh -p 888 192.168.10.10
The authenticity of host '[192.168.10.10]:888 ([192.168.10.10]:888)' can't be established.
ECDSA key fingerprint is b8:25:88:89:5c:05:b6:dd:ef:76:63:ff:1a:54:02:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.10.10]:888' (ECDSA) to the list of known hosts.
root@192.168.10.10's password:此处输入远程root管理员的密码
Last login: Sun Jul 19 21:43:48 2017 from 192.168.10.10
firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的。比如,我们可以在firewalld服务中配置一条富规则,使其拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务(22端口):
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success
[root@linuxprobe ~]# firewall-cmd --reload
success
在客户端使用ssh命令尝试访问192.168.10.10主机的ssh服务(22端口):
[root@client A ~]# ssh 192.168.10.10
Connecting to 192.168.10.10:22...
Could not connect to '192.168.10.10' (port 22): Connection failed.

—-图形化界面;

--使用firewall-config工具配置完防火墙策略之后,无须进行二次确认,因为只要有修改内容,它就自动进行保存。下面进行动手实践环节。
----尝试添加一条防火墙策略规则,使其放行访问8080~8088端口(TCP协议)的流量,并将其设置为永久生效,以达到系统重启后防火墙策略依然生效的目的。在按照图8-4所示的界面配置完毕之后,还需要在Options菜单中单击Reload Firewalld命令,让配置的防火墙策略立即生效(见图8-5)。这与在命令行中执行--reload参数的效果一样。

—-SNAT(Source Network Address Translation,源网络地址转换)技术。SNAT是一种为了解决IP地址匮乏而设计的技术,它可以使得多个内网中的用户通过同一个外网IP接入Internet。在图8-6所示的局域网中有多台PC,如果网关服务器没有应用SNAT技术,则互联网中的网站服务器在收到PC的请求数据包,并回送响应数据包时,将无法在网络中找到这个私有网络的IP地址,所以PC也就收不到响应数据包了。在图8-7所示的局域网中,由于网关服务器应用了SNAT技术,所以互联网中的网站服务器会将响应数据包发给网关服务器,再由后者转发给局域网中的PC。

—–使用iptables命令实现SNAT技术是一件很麻烦的事情,但是在firewall-config中却是小菜一碟了。用户只需按照图8-8进行配置,并选中Masquerade zone复选框,就自动开启了SNAT技术。

—-将本机888端口的流量转发到22端口,且要求当前和长期均有效,

—可以把网卡与防火墙策略区域进行绑定

——服务的访问控制列表

TCP Wrappers是RHEL 7系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作。换句话说,Linux系统中其实有两个层面的防火墙,第一种是前面讲到的基于TCP/IP协议的流量过滤工具,而TCP Wrappers服务则是能允许或禁止Linux系统提供服务的防火墙,从而在更高层面保护了Linux系统的安全运行。

TCP Wrappers服务的防火墙策略由两个控制列表文件所控制,用户可以编辑允许控制列表文件来放行对服务的请求流量,也可以编辑拒绝控制列表文件来阻止对服务的请求流量。控制列表文件修改后会立即生效,系统将会先检查允许控制列表文件(/etc/hosts.allow),如果匹配到相应的允许策略则放行流量;如果没有匹配,则去进一步匹配拒绝控制列表文件(/etc/hosts.deny),若找到匹配项则拒绝该流量。如果这两个文件全都没有匹配到,则默认放行流量。

—-配置原则:

在配置TCP Wrappers服务时需要遵循两个原则:
1. 编写拒绝策略规则时,填写的是服务名称,而非协议名称;
2. 建议先编写拒绝策略规则,再编写允许策略规则,以便直观地看到相应的效果。

—-SSH服务

----RHEL和CentOS系统默认使用NetworkManager来提供网络服务,这是一种动态管理网络配置的守护进程,能够让网络设备保持连接状态。可以使用nmcli命令来管理Network Manager服务。nmcli是一款基于命令行的网络配置工具
----NM_CONTROLLED参数实时生效,修改后无需重启网卡,一般关闭;

<span style="font-weight: bold;"–<–实验,配置两种场景,公司和家里使用不同的网路配置;

可以使用nmcli命令并按照“connection add con-name type ifname”的格式来创建网络会话。假设将公司网络中的网络会话称之为company,将家庭网络中的网络会话称之为house,现在依次创建各自的网络会话。

使用con-name参数指定公司所使用的网络会话名称company,然后依次用ifname参数指定本机的网卡名称(千万要以实际环境为准,不要照抄书上的eno16777736),用autoconnect no参数设置该网络会话默认不被自动激活,以及用ip4及gw4参数手动指定网络的IP地址:

[root@linuxprobe ~]# nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1

Connection 'company' (86c71220-0057-419e-b615-38f4014cfdee) successfully added.

使用con-name参数指定家庭所使用的网络会话名称house。因为我们想从外部DHCP服务器自动获得IP地址,因此这里不需要进行手动指定。

[root@linuxprobe ~]# nmcli connection add con-name house type ethernet ifname eno16777736

Connection 'house' (44acf0a7-07e2-40b4-94ba-69ea973090fb) successfully added.

在成功创建网络会话后,可以使用nmcli命令查看创建的所有网络会话:

[root@linuxprobe ~]# nmcli connection show

NAME UUID TYPE DEVICE

house 44acf0a7-07e2-40b4-94ba-69ea973090fb 802-3-ethernet —

company 86c71220-0057-419e-b615-38f4014cfdee 802-3-ethernet —

eno16777736 ec77579b-2ced-481f-9c09-f562b321e268 802-3-ethernet eno16777736

使用nmcli命令配置过的网络会话是永久生效的,这样当我们下班回家后,顺手启用house网络会话,网卡就能自动通过DHCP获取到IP地址了。

[root@linuxprobe ~]# nmcli connection up house

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

—–bond网卡;前提条件,两个网卡的模式要一样;USERCTL=no为是否允许非root用户控制该网卡;

[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

DEVICE=eno16777736

MASTER=bond0

SLAVE=yes

[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554968

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

DEVICE=eno33554968

MASTER=bond0

SLAVE=yes

还需要将绑定后的设备命名为bond0并把IP地址等信息填写进去,这样当用户访问相应服务的时候,实际上就是由这两块网卡设备在共同提供服务。(系统默认启动networkmanager,实验过程中重启网卡以后发现bond IP是正确的,但是没有流量,关闭NM后重启网卡,成功,不是很清楚为什么NM_CONTROLLED=no参数为什么没有作用

[root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes

USERCTL=no

DEVICE=bond0

IPADDR=192.168.10.10

PREFIX=24

DNS=192.168.10.1

NM_CONTROLLED=no

让Linux内核支持网卡绑定驱动。常见的网卡绑定驱动有三种模式—mode0、mode1和mode6。下面以绑定两块网卡为例,讲解使用的情景。

mode0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。

mode1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。

mode6(平衡负载模式):平时两块网卡均工作,且自动备援,无须交换机设备提供辅助支持。

用Vim文本编辑器创建一个用于网卡绑定的驱动文件,使得绑定后的bond0网卡设备能够支持绑定技术(bonding);同时定义网卡以mode6模式进行绑定,且出现故障时自动切换的时间为100毫秒。

[root@linuxprobe ~]# vim /etc/modprobe.d/bond.conf

alias bond0 bonding

options bond0 miimon=100 mode=6

第4步:重启网络服务后网卡绑定操作即可成功。正常情况下只有bond0网卡设备才会有IP地址等信息:

[root@linuxprobe ~]# systemctl restart network

###############sshd#####################

<span style="font-size: 12px; color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<-常用参数

<span style="box-sizing: border-box; text-indent: 1em; font-size: 12px; letter-spacing: normal; orphans: 2; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<——安全密钥验证

----在客户端主机中生成“密钥对”。ssh-keygen
-----把客户端主机中生成的公钥文件传送至远程主机: ssh-copy-id 192.168.10.10
-----对服务器进行设置,使其只允许密钥验证,拒绝传统的口令验证方式。记得在修改配置文件后保存并重启sshd服务程序。vim /etc/ssh/sshd_config
PasswordAuthentication no

<span style="font-size: 9pt; color: rgb(61, 68, 80); font-family: "Microsoft Yahei";"–<–scp(secure copy)是一个基于SSH协议在网络之间进行安全传输的命令,其格式为“scp [参数] 本地文件 远程帐户@远程IP地址:远程目录”。两台服务器都必须为Linux系统;

<span style="box-sizing: border-box; text-indent: 1em; font-size: 12px; letter-spacing: normal; orphans: 2; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<–screen是一款能够实现多窗口远程控制的开源服务程序,简单来说就是为了解决网络异常中断或为了同时控制多个远程终端窗口而设计的程序。

会话恢复:即便网络中断,也可让会话随时恢复,确保用户不会失去对远程会话的控制。
多窗口:每个会话都是独立运行的,拥有各自独立的输入输出终端窗口,终端窗口内显示过的信息也将被分开隔离保存,以便下次使用时依然能看到之前的操作记录。
会话共享:当多个用户同时登录到远程服务器时,便可以使用会话共享功能让用户之间的输入输出信息共享。

----screen命令能做的事情非常多:可以用-S参数创建会话窗口;用-d参数将指定会话进行离线处理;用-r参数恢复指定会话;用-x参数一次性恢复所有的会话;用-ls参数显示当前已有的会话;以及用-wipe参数把目前无法使用的会话删除,等等。 screen -x 带上会话的名称,则可以同步对应会话的信息;

<span style="box-sizing: border-box; text-indent: 1em; font-size: 12px; letter-spacing: normal; orphans: 2; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<———10,静态网站;—————–

-----我们平时访问的网站服务就是Web网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务。
-----目前能够提供Web网络服务的程序有IIS、Nginx和Apache等。其中,IIS(Internet Information Services,互联网信息服务)是Windows系统中默认的Web服务程序,这是一款图形化的网站管理工具,不仅可以提供Web网站服务,还可以提供FTP、NMTP、SMTP等服务。
----区域配置参数则是单独针对于每个独立的子站点进行设置的

<span style="box-sizing: border-box; text-indent: 1em; font-size: 12px; letter-spacing: normal; orphans: 2; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<———配置参数:

<span style="font-size: 9pt; color: rgb(61, 68, 80); font-family: "Microsoft Yahei"; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: bold; line-height: 23px;"–<–按理来说,只有在网站的首页面文件不存在或者用户权限不足时,才显示httpd服务程序的默认首页面。

<span style="box-sizing: border-box; text-indent: 1em; font-size: 12px; letter-spacing: normal; orphans: 2; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<—selinux安全子系统:

-----RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。
-----所有文件无法访问数据库远程连接报错等都和selinux相关;它能够从多方面监控违法行为:对服务程序的功能进行限制(SELinux域限制可以确保服务程序做不了出格的事情);对文件资源的访问限制(SELinux安全上下文确保文件资源只能被其所属的服务程序进行访问)。
例如:/home目录是用来存放普通用户的家目录数据的,而现在,httpd提供的网站服务却要去获取普通用户家目录中的数据了,这显然违反了SELinux的监管原则。
ls -Z 查看上下文信息,就是文件的Selinux信息,可以理解为用户对该文件(夹)的权限;
----在文件上设置的SELinux安全上下文是由用户段、角色段以及类型段等多个信息项共同组成的。其中,用户段system_u代表系统进程的身份,角色段object_r代表文件目录的角色,类型段httpd_sys_content_t代表网站服务的系统文件。

SELinux服务有三种配置模式,具体如下。

enforcing:强制启用安全策略模式,将拦截服务的不合法请求。

permissive:遇到服务越权访问时,只发出警告而不强制拦截。

disabled:对于越权的行为不警告也不拦截。

<span style="font-size: 12px; color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<–管理命令:semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]”。

-l参数用于查询;

-a参数用于添加;

-m参数用于修改;

-d参数用于删除。

例如,可以向新的网站数据目录中新添加一条SELinux安全上下文,让这个目录以及里面的所有文件能够被httpd服务程序所访问到:
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
注意,执行上述设置之后,还无法立即访问网站,还需要使用restorecon命令将设置好的SELinux安全上下文立即生效。在使用restorecon命令时,可以加上-Rv参数对指定的目录进行递归操作,以及显示SELinux安全上下文的修改过程。最后,再次刷新页面,就可以正常看到网页内容了,结果如图10-8所示。
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/

安装论坛的时候出现过一个问题,将目录和权限赋予Apache用户,但是仍然显示没有权限,wp博客已经赋予了数据库权限,仍无法连接;本地连接没有问题,通过Apache连接有问题;

###########配置个人用户主页功能:

<span style="box-sizing: border-box; text-indent: 1em; font-size: 12px; letter-spacing: normal; orphans: 2; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;"–<-配置文件:/etc/httpd/conf.d/userdir.conf  第17行的UserDir disabled参数前面加上井号(#),表示让httpd服务程序开启个人用户主页功能;同时再把第24行的UserDir public_html参数前面的井号(#)去掉(UserDir参数表示网站数据在用户家目录中的保存目录名称,即public_html目录)。修改目录权限755,重启服务;

<span style="font-size: 9pt;"–<-接下来使用getsebool命令查询并过滤出所有与HTTP协议相关的安全策略。其中,off为禁止状态,on为允许状态。getsebool -a | grep http

<span style="font-size: 9pt;"–<–setsebool命令后面加上-P参数,让修改后的SELinux策略规则永久生效且立即生效

<span style="font-size: 9pt;"–<—Apache的虚拟主机功能是服务器基于用户请求的不同IP地址、主机域名或端口号,实现提供多个网站同时为外部提供访问服务的技术,如图10-12所示,用户请求的资源不同,最终获取到的网页内容也各不相同。

<span style="font-size: 9pt;"–<–Apache可以基于源主机名、源IP地址或源主机上的浏览器特征等信息对网站上的资源进行访问控制。它通过Allow指令允许某个主机访问服务器上的网站资源,通过Deny指令实现禁止访问。在允许或禁止访问网站资源时,还会用到Order指令,这个指令用来定义Allow或Deny指令起作用的顺序,其匹配原则是按照顺序进行匹配,若匹配成功则执行后面的默认指令。比如“Order Allow, Deny”表示先将源主机与允许规则进行匹配,若匹配成功则允许访问请求,反之则拒绝访问请求。

###########11章################

FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。FTP协议有下面两种工作模式。

主动模式:FTP服务器主动向客户端发起连接请求。

被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)。

PAM(可插拔认证模块)是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。要想把PAM功能和作用完全讲透,至少要一个章节的篇幅才可以(对该主题感兴趣的读者敬请关注本书的进阶篇,里面会详细讲解PAM)。

通俗来讲,PAM是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改。PAM采取了分层设计(应用程序层、应用接口层、鉴别模块层)的思想,其结构如图11-2所示。

图11-2  PAM的分层设计结构

<span style="box-sizing: border-box; text-indent: 1em; font-size: 12px; letter-spacing: normal; orphans: 2; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); color: rgb(61, 68, 80); font-family: "Microsoft Yahei", Helvetica, Arial, sans-serif; font-variant-caps: normal; font-variant-ligatures: normal; line-height: 23px;"–<—-在RHEL 7系统中,TFTP服务是使用xinetd服务程序来管理的。xinetd服务可以用来管理多种轻量级的网络服务,而且具有强大的日志功能。简单来说,在安装TFTP软件包后,还需要在xinetd服务程序中将其开启,把默认的禁用(disable)参数修改为no: