h1ddenadm1n.github.io's People
h1ddenadm1n.github.io's Issues
Python 四舍五入
分享已知的五种四舍五入方法;真正解决四舍五入不准确的问题
四舍五入方法一
def 四舍五入_法一(float_num: float, ndigits: int = 0) -> float:
"""
四舍五入_法一: 不准确,例1.035 ❌
:param float_num: 待四舍五入的浮点数
:param ndigits: 保留的小数位数
:return: 四舍五入后的浮点数
"""
multiplier = 10**ndigits
return int(float_num * multiplier + 0.5) / multiplier
四舍五入方法二
def 四舍五入_法二(float_num: float, ndigits: int = 0) -> float:
"""
四舍五入_法二: 不准确,例1.035 ❌
:param float_num: 待四舍五入的浮点数
:param ndigits: 保留的小数位数
:return: 四舍五入后的浮点数
"""
return round(float_num, ndigits)
四舍五入方法三
def 四舍五入_法三(float_num: float, ndigits: int = 0) -> float:
"""
四舍五入_法三: 不准确,例1.035 ❌
:param float_num: 待四舍五入的浮点数
:param ndigits: 保留的小数位数
:return: 四舍五入后的浮点数
"""
return f"{float_num:.{ndigits}f}"
四舍五入方法四
def 四舍五入_法四(float_num: float, ndigits: int = 0) -> float:
"""
四舍五入_法四: 准确 ✅
:param float_num: 待四舍五入的浮点数
:param ndigits: 保留的小数位数
:return: 四舍五入后的浮点数
"""
import decimal
decimal.getcontext().rounding = decimal.ROUND_HALF_UP
return round(decimal.Decimal(str(float_num)), ndigits)
四舍五入方法五
def 四舍五入_法五(float_num: float, ndigits: int = 0) -> float:
"""
四舍五入_法五: 准确 ✅
:param float_num: 待四舍五入的浮点数
:param ndigits: 保留的小数位数
:return: 四舍五入后的浮点数
"""
import decimal
quantize_exp = decimal.Decimal((0, (1,), -ndigits))
return decimal.Decimal(str(float_num)).quantize(
quantize_exp, rounding=decimal.ROUND_HALF_UP
)
四舍五入测试一
def 四舍五入_测试一() -> None:
"""
四舍五入_测试一
:return: None
"""
a = 1.125
print(f"{a:.20f}")
print(四舍五入_法一(a, 2)) # 1.13 ✅
print(四舍五入_法二(a, 2)) # 1.12 ❌
print(四舍五入_法三(a, 2)) # 1.12 ❌
print(四舍五入_法四(a, 2)) # 1.13 ✅
print(四舍五入_法五(a, 2)) # 1.13 ✅
a = 1.035
print(f"{a:.20f}")
print(四舍五入_法一(a, 2)) # 1.03 ❌
print(四舍五入_法二(a, 2)) # 1.03 ❌
print(四舍五入_法三(a, 2)) # 1.03 ❌
print(四舍五入_法四(a, 2)) # 1.04 ✅
print(四舍五入_法五(a, 2)) # 1.04 ✅
print()
for j in range(1, 3):
for i in range(1, 10**j):
s = f"1.{i:0{j}}4"
a = float(s)
print(
f"s={s}, a={a:.20f}, 四舍五入_法四={四舍五入_法四(a, j)}, 四舍五入_法五={四舍五入_法五(a, j)}"
)
print()
for j in range(1, 3):
for i in range(1, 10**j):
s = f"1.{i:0{j}}5"
a = float(s)
print(
f"s={s}, a={a:.20f}, 四舍五入_法四={四舍五入_法四(a, j)}, 四舍五入_法五={四舍五入_法五(a, j)}"
)
print()
for j in range(1, 3):
for i in range(1, 10**j):
s = f"1.{i:0{j}}6"
a = float(s)
print(
f"s={s}, a={a:.20f}, 四舍五入_法四={四舍五入_法四(a, j)}, 四舍五入_法五={四舍五入_法五(a, j)}"
)
Add Windows Terminal for Win10 LTSC
1. 下载
下载并解压 Windows Terminal zip到C:\SSS\terminal\
。
2. 固定到磁贴
2.1 配置JSON
点击 打开JSON文件,添加:
{
"profiles": {
"defaults": {
"startingDirectory": null,
}
}
}
2.2 添加快捷方式和磁贴
在 shell:startup
(C:\ProgramData\Microsoft\Windows\Start Menu\Programs
) 创建快捷方式 C:\SSS\terminal\WindowsTerminal.exe -d "~"
。(其中 -d "~"
表示启动后切换到用户主目录。)
3. 添加右键菜单项
使用ContextMenuManager添加右键菜单 Open Terminal here
。注意 命令参数 为空。
时间复杂度-中文版图片
简述 enum.Enum、dataclasses.dataclass(frozen=True)、pydantic.BaseModel 使用场景区别,并举例说明
import datetime
from dataclasses import dataclass
from datetime import datetime
from enum import Enum
from pydantic import BaseModel
# enum.Enum
# 使用场景:
# 当你需要定义一组具有唯一性的命名常量时,例如状态码、选项值或具有特定意义的符号。
# 用于表示一组互斥的选项或类型。
class StatusCode(Enum):
SUCCESS: int = 200
NOT_FOUND: int = 404
SERVER_ERROR: int = 500
# 使用
print(StatusCode.SUCCESS.name) # SUCCESS
print(StatusCode.SUCCESS.value) # 200
# StatusCode.SUCCESS = 2333 # AttributeError: cannot reassign member 'SUCCESS'
status = StatusCode.SUCCESS
print(status.name) # SUCCESS
print(status.value) # 200
# status.value = 2333 # AttributeError: <enum 'Enum'> cannot set attribute 'value'
# print(status.value)
# dataclasses.dataclass(frozen=True)
# 使用场景:
# 当你需要创建轻量级的数据容器,特别是当类的主要目的是存储数据而不是提供方法时。
# 用于定义记录或实体,其中数据在创建后不应被修改。
@dataclass(frozen=True)
class Point:
x: int = 0
y: int = 0
# 使用
print(Point.x) # 0
print(Point.y) # 0
Point.x = (
2333 # 这里你试图修改类字段,这是可以的,因为类字段是静态的,不会影响实例的状态。
)
print(Point.x) # 2333
p1 = Point()
print(p1.x) # 0 因为实例字段没有创建副本,所以它们是静态的
print(p1.y) # 0
p2 = Point(x=1, y=2)
print(p2.x) # 1
print(p2.y) # 2
# p2.x = 3 # dataclasses.FrozenInstanceError: cannot assign to field 'x'
# print(p2.x)
p3 = Point(
x="not a number", y="not a number"
) # dataclass 没有动态类型检查,所以这里不会报错
print(p3.x) # not a number
print(p3.y) # not a number
# pydantic.BaseModel
# 使用场景:
# 用于数据验证和设置类型注解,特别是在Web应用程序和服务中,需要确保输入数据的有效性和类型安全。
# 当你需要自动将输入数据转换为正确的类型,并提供详细的错误信息时。
class User(BaseModel, frozen=True):
name: str = "name"
age: int = 0
# 使用
# print(User.name) # raise AttributeError(item)
# print(User.age) # raise AttributeError(item)
user = User(name="Alice", age=30)
print(user.name)
print(user.age)
# 尝试修改age字段,这将引发异常,因为模型是不可变的
# user.age = "thirty" # raise pydantic_core.ValidationError.from_exception_data(self.__class__.__name__, [error]) pydantic_core._pydantic_core.ValidationError: 1 validation error for User age
# print(user.age)
# user = User(name="Bob", age="not a number") # pydantic_core._pydantic_core.ValidationError: 1 validation error for User age Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='not a number', input_type=str] For further information visit https://errors.pydantic.dev/2.8/v/int_parsing
# print(user.age)
# print(user.name)
# 同时使用enum.Enum、dataclasses.dataclass和pydantic.BaseModel
# 使用enum.Enum定义文章状态
import enum
from dataclasses import dataclass, field
from pydantic import BaseModel
# 使用enum.Enum定义文章状态
class ArticleStatus(enum.Enum):
DRAFT = "draft"
PUBLISHED = "published"
ARCHIVED = "archived"
# 使用pydantic.BaseModel定义文章元数据
class ArticleMetadata(BaseModel):
title: str = "title"
content: str = "content"
author: str = "author"
status: ArticleStatus = ArticleStatus.DRAFT
# 使用dataclasses.dataclass定义文章
@dataclass(frozen=True)
class Article:
id: int = 0
metadata: ArticleMetadata = field(default_factory=lambda: ArticleMetadata())
create_datetime: datetime = datetime.now()
# 使用
# 创建文章元数据实例
metadata = ArticleMetadata(
title="Python学习笔记",
content="笔记内容",
author="user0",
status=ArticleStatus.PUBLISHED,
)
# metadata2 = ArticleMetadata(
# title=2333, # ❗ not a string
# content="笔记内容",
# author="user0",
# status=ArticleStatus.PUBLISHED,
# ) # 🤢 pydantic_core._pydantic_core.ValidationError: 1 validation error for ArticleMetadata
# 创建文章实例
article = Article(id=1, metadata=metadata)
# 打印文章信息
print(f"Article ID: {article.id}")
print(f"Article Title: {article.metadata.title}")
print(f"Article Content: {article.metadata.content}")
print(f"Article Author: {article.metadata.author}")
print(f"Article Status: {article.metadata.status.value}")
print(f"Article Create Time: {article.create_datetime}")
# article.id = 2333 # 🤢 dataclasses.FrozenInstanceError: cannot assign to field 'id'
article.metadata.title = "JAVA学习笔记" # 这里可以修改,因为BaseModel未设置frozen=True
article.metadata.content = (
"笔记内容笔记内容笔记内容" # 这里可以修改,因为BaseModel未设置frozen=True
)
article.metadata.author = "user1" # 这里可以修改,因为BaseModel未设置frozen=True
article.metadata.status = (
ArticleStatus.ARCHIVED
) # 这里可以修改,因为BaseModel未设置frozen=True
# article.metadata.status.value = "archived" # 🤢 raise AttributeError(AttributeError: <enum 'Enum'> cannot set attribute 'value'
# article.create_datetime = datetime(
# 2024, 1, 1, 0, 0, 0
# ) # 🤢 dataclasses.FrozenInstanceError: cannot assign to field 'create_datetime'
# 打印文章信息
print(f"Article ID (frozen dataclass, 不能修改): {article.id}")
print(
f"Article Title (pydantic.BaseModel 未设置frozen=True, 可以修改): {article.metadata.title}"
)
print(
f"Article Content (pydantic.BaseModel 未设置frozen=True, 可以修改): {article.metadata.content}"
)
print(
f"Article Author (pydantic.BaseModel 未设置frozen=True, 可以修改): {article.metadata.author}"
)
print(
f"Article Status (enum.Enum status.value不能修改, 但是status可以改变): {article.metadata.status.value}"
)
print(f"Article Create Time (frozen dataclass, 不能修改): {article.create_datetime}")
常见配置文件格式
.py
直接使用python存储配置信息,通常使用字典数据类型。
# python
{
'id': 1,
'name': "Jason",
'human': True,
'hobbies': [
'eating',
'playing',
],
'features': {
'assets': None,
'weight': 60,
},
}
{
"id": 1,
"name": "Jason",
"human": true,
"hobbies": [
"eating",
"playing"
],
"features": {
"assets": null,
"weight": 60
}
}
.ini
INI
INI(Initialization File)是Windows系统中最常见的配置文件格式,它使用键值对的形式存储配置信息。通常只支持字符串类型,虽然一些解析器可能支持其他类型,但这不是标准的INI格式。不支持复杂的数据结构,扩展性较差,不适合表示复杂或层次深的数据。
INI语法细节
INI文件由节(sections)、键(keys)和值(values)组成。节由方括号包围的节名表示,键和值成对出现,用等号或冒号分隔。
[Profile]
name=Jason
age=18
hobbies=eating,playing
{
"Profile": {
"name": "Jason",
"age": 18,
"hobbies": "eating,playing"
}
}
.json
JSON
JSON(JavaScript Object Notation) 一种人类可读的文本数据格式。它源于 JavaScript、标准开放、独立于具体编程语言、常用于数据交换。
JSON标准中一共定义了六种值类型
数据类型(Type) | 示例(Example) |
---|---|
数组(Array) | [值1, 值2, 值3, ...] |
布尔值(Boolean) | true, false, null |
数值(Number) | 100, 3.14, -20 |
对象(Object) | {字符串: 值, 字符串: 值, ...} |
字符串(String) | "一定要用双引号包裹" |
// javascript
{
id: 1,
name: "Jason",
human: true,
hobbies: [
'eating',
'playing',
],
features: {
assets: null,
weight: 60,
},
}
通过将其中的所有单引号换为双引号,将对象中的键名改为由双引号包裹的同名字符串,再将对象与数组中最后出现的多余逗号去掉,我们便可以得到与其相对应的JSON数据。
{
"id": 1,
"name": "Jason",
"human": true,
"hobbies": [
"eating",
"playing"
],
"features": {
"assets": null,
"weight": 60
}
}
# python
{
'id': 1,
'name': "Jason",
'human': True,
'hobbies': [
'eating',
'playing',
],
'features': {
'assets': None,
'weight': 60,
},
}
Python字典与JSON格式的主要区别
- 字符串键:在JSON中,对象(类似于Python的字典)的键必须是字符串。虽然在Python 3.6+中,字典会保留插入的顺序,但在Python 3.6之前,字典是无序的,而在JSON中,对象的键总是被认为是有序的。
- 字符串引号:在JSON中,字符串必须使用双引号(")包裹。在Python中,你可以使用单引号(')、双引号(")或三引号('''或""")。
- 数据类型:JSON支持的数据类型包括字符串、数字(整数和浮点数)、布尔值(true/false)、数组(类似于Python的列表)、对象(类似于Python的字典)和null。Python字典的值可以是任何数据类型,包括字符串、数字、列表、字典、元组、集合等。对于布尔值和空值类型,JSON使用true/false/null,而Python的True/False/None。
- 注释:Python字典允许在源代码中添加注释,而JSON不支持注释。
- 尾随逗号:在Python中,字典的键值对可以有一个尾随逗号,而在标准的JSON中,尾随逗号是不允许的(尽管在某些实现中可能被宽容处理)。JSON 5是一个JSON的扩展,它允许尾随逗号。
- 复杂对象:Python字典可以包含任何Python对象,包括函数、类实例等。而JSON只能表示简单的数据结构。
JSON 5
JSON 5
JSON 5是一个JSON的扩展,它增加了对一些JavaScript对象字面量特性的支持,例如注释、尾随逗号、单引号字符串等。这使得JSON 5更容易阅读和编写,同时也更易于与JavaScript对象字面量互相转换。
尽管JSON 5提供了更多的灵活性和便利性,但它并不是一个官方的ECMAScript标准,因此在某些环境下可能不被支持。
{
// json5
id: 1, // 属性名没有双引号,尾随逗号
name: "Jason",
human: true,
hobbies: [
'eating',
'playing', // 数组尾部的尾随逗号
],
features: {
assets: null, // 对象尾部的尾随逗号
weight: 60,
},
}
.yaml
YAML
YAML(Yet Another Markup Language / YAML Ain't Markup Language)不再是一种标记语言,而是一种人类可读的数据序列化语言,它常用于配置文件,可被多种编程语言解析。YAML的定位与JSON相近,但具有自己的特色。
YAML语法细节
字符串(String)
Jason
"Jason"
'Jason'
"Jason"
列表(List)
- Jason
- 18
[Jason, 18,]
[
"Jason",
18
]
关联数组(Associative Array)
name: Jason
age: 18
{name: Jason, age: 18,}
{
"name": "Jason",
"age": 18
}
缩进结构(Indentation)
Profile:
name: Jason
age: 18
hobbies:
- eating
- playing
Profile:
name: Jason
age: 18
hobbies:
- eating
- playing
Profile:
name: Jason
age: 18
hobbies:
- - eating
- playing
{
"Profile": {
"name": "Jason",
"age": 18,
"hobbies": [
"eating",
"playing"
]
}
}
{
"Profile": null,
"name": "Jason",
"age": 18,
"hobbies": [
"eating",
"playing"
]
}
{
"Profile": {
"name": "Jason",
"age": 18
},
"hobbies": [
[
"eating",
"playing"
]
]
}
注释(Comment)
Profile: # 这是一条注释
name: Jason
age: 18
{
"Profile": {
"name": "Jason",
"age": 18
}
}
区块字符(Block Character)
Profile:
I'm Jason,
in Shanghai.
{
"Profile": "I'm Jason, in Shanghai."
}
# 保留换行
Profile: |
I'm Jason,
in Shanghai.
{
"Profile": "I'm Jason,\nin Shanghai.\n"
}
# 折叠换行
Profile: >
I'm Jason,
in Shanghai.
{
"Profile": "I'm Jason, in Shanghai.\n"
}
# 去掉末尾换行符
Profile: |-
I'm Jason,
in Shanghai.
{
"Profile": "I'm Jason,\nin Shanghai."
}
# 保留末尾换行符
Profile: >+
I'm Jason,
in Shanghai.
{
"Profile": "I'm Jason, in Shanghai.\n\n"
}
锚点与引用(Anchor & Reference)
name: Jason
age: name
addr: &addr Shanghai
ship-to: *addr
{
"name": "Jason",
"age": "name"
"addr": "Shanghai",
"ship-to": "Shanghai"
}
标签(Tag)
name: Jason
age: 18
money: !!str null
# 全局标签
!! str
!<tag:yaml.org,2002:str>
# 本地标签
!str
!<!str>
# 控制标签解析行为
%TAG ! tag:yaml.org,2002:
---
name: Jason
age: 18
money: !str null
{
"name": "Jason",
"age": 18,
"money": "null"
}
文档(Doc)
%TAG ! tag:yaml.org,2002:
--- # 文档开始
name: Jason
age: 18
money: !str null
... # 文档结束
--- # 另一个文档开始
name: Alice
age: 24
money: 1000
... # 另一个文档结束
{
"name": "Jason",
"age": 18,
"money": "null"
}
{
"name": "Alice",
"age": 24,
"money": 1000
}
YAML支持
语言 | 库 |
---|---|
C/C++ | LibYAML |
Go | go-yaml |
Java | jvyaml / JYAML |
JavaScript | eemeli/yaml |
Python | PyYAML |
Objective-C | Cocoa-Syck |
C# | YamlDotNet |
YAML 比较 JSON 的优势
更方便的文本内联
html: >-
<p class="tag">
Jason
</p>
{
"html": "<p class=\"tag\">\n Jason\n </p>"
}
更易读的数据关系
addr: &addr Shanghai
ship-to: *addr
{
"addr": "Shanghai",
"ship-to": "Shanghai"
}
YAML 比较 JSON 的劣势
复杂语法结构
%TAG !yaml! tag:yaml.org,2002:
---
omap: !yaml!omap
- name: Jason
- humal: !!bool true
- date: 2024-09-10
- ? money
{
"omap": [
{
"name": "Jason"
},
{
"humal": true
},
{
"date": "2024-09-10T00:00:00.000Z"
},
{
"money": null
}
]
}
容易形成RCE漏洞
!!python/object/apply:subprocess.Popen
- - echo
- "You have been hacked :)"
# PyYAML
from yaml import load, Loader
# ...
result = load(
request.from['file'],
Loader=Loader
)
print(result)
.toml
TOML
TOML(Tom's Obvious, Minimal Language)是Tom Preston-Werner在2013年发明的一种语义明确、配置最小化语言,旨在成为一个小规模、易于使用的语义化配置文件格式,它被设计为可以无二义性地转换为一个哈希表。
语法细节
键值对(Key/Value Pair)
name = "Jason"
age = 18
addr = "Shanghai" # 缩进不影响
profile.age = 18 # 点表示嵌套
profile.addr = "Shanghai"
about.pets.cats = "Pipi"
# profile = "Jason" # 错误,键名不能重复
{
"name": "Jason",
"age": 18,
"addr": "Shanghai",
"profile": {
"age": 18,
"addr": "Shanghai"
},
"about": {
"pets": {
"cats": "Pipi"
}
}
}
字符串(String)
name = "Jason"
name2 = """Jason
Yu
"""
name3 = """
Jason \
Yu\
"""
name4 = 'Jason\nYu'
name5 = '''
Jason
Yu
'''
{
"name": "Jason",
"name2": "Jason\nYu\n",
"name3": "Jason Yu",
"name4": "Jason\\nYu\n",
"name5": "Jason\nYu\n"
}
数组(Array)
hobbies = [
"eating",
"playing",
]
hobbies2 = [
[
"eating",
"playing",
]
]
{
"hobbies": [
"eating",
"playing"
],
"hobbies2": [
[
"eating",
"playing"
]
]
}
表(Table)
profile.age = 18
profile.addr = "Shanghai"
profile.jobs.EfficLab = true
about.pets.cats = "Pipi"
[profile]
age = 18
addr = "Shanghai"
jobs = { EfficLab = true } # 内联表 只能写在一行
[about.pets]
cats = "Pipi"
# [about.pets] # 错误,表名与键名都不能重复定义
{
"profile": {
"age": 18,
"addr": "Shanghai",
"jobs": {
"EfficLab": true
}
},
"about": {
"pets": {
"cats": "Pipi"
}
}
}
表数组(Array of Tables)
[[profile]]
name = "Jason"
age = 18
[[profile]] # 不同与表 表数组可以重复定义
name = "Alice"
age = 20
profile = [
{ name = "Jason", age = 18 },
{ name = "Alice", age = 20 }
]
{
"profile": [
{
"name": "Jason",
"age": 18
},
{
"name": "Alice",
"age": 20
}
]
}
注释(Comment)
# 单行注释
name = "Jason" # 这是一个注释
{
"name": "Jason"
}
使用限制
顶层表数据无法后置
name = "Jason"
[profile]
age = 18
addr = "Shanghai"
{
"name": "Jason",
"profile": {
"age": 18,
"addr": "Shanghai"
}
}
[profile]
age = 18
addr = "Shanghai"
name = "Jason" # 会被归类到 profile 表
{
"profile": {
"age": 18,
"addr": "Shanghai",
"name": "Jason"
}
}
内联表无法换行
profile = [
{ name = "Jason", age = 18 },
{ name = "Alice", age = 20 },
]
{
"profile": [
{
"name": "Jason",
"age": 18
},
{
"name": "Alice",
"age": 20
}
]
}
可读性依赖于写法
[profile]
age = 18
addr = "Shanghai"
name.surname = "Yu"
[[pets.cat]]
name = "Pipi"
[about]
job = "EfficLab"
[pets.cat.children]
[about.desc]
skill = "CS"
{
"profile": {
"age": 18,
"addr": "Shanghai",
"name": {
"surname": "Yu"
}
},
"pets": {
"cat": [
{
"name": "Pipi",
"children": {}
}
]
},
"about": {
"job": "EfficLab",
"desc": {
"skill": "CS"
}
}
}
Hello World
Gmeek
一个博客框架,超轻量级个人博客模板。完全基于Github Pages
、 Github Issues
和 Github Actions
。不需要本地部署,从搭建到写作,只需要18秒,2步搭建好博客,第3步就是写作。
安装
-
【创建仓库】点击通过模板创建仓库,建议仓库名称为
XXX.github.io
,其中XXX
为你的github用户名。 -
【启用Pages】在仓库的
Settings
中Pages->Build and deployment->Source
下面选择Github Actions
。 -
【开始写作】打开一篇issue,开始写作,并且必须添加一个
标签Label
(至少添加一个),再保存issue后会自动创建博客内容,片刻后可通过https://XXX.github.io 访问(可进入Actions页面查看构建进度)。 -
【手动全局生成】这个步骤只有在修改
config.json
文件或者出现奇怪问题的时候,需要执行。
通过Actions->build Gmeek->Run workflow->里面的按钮全局重新生成一次
提交问题
特性
- UI界面和Github同源,只引入了Github原生CSS:primer.style
- 博客写作在Issues中完成后,自动触发Actions执行部署任务
- 评论系统引入utteranc.es
- 使用
jinja2
对html进行渲染,可通过模板自定义UI主题
赞赏
如果本项目对你有帮助,可以用微信赞赏一下作者,让项目有继续更新维护下去的动力,谢谢!
鸣谢
License
请保留页面底部和console界面版权信息,谢谢!
英耀篇
简介
江湖四大秘本是**传统文化中与江湖术数相关的四部经典文献,主要流传于民间相士、算命先生之间,用于揣摩人心、观察人情、行骗获利等目的。这四部秘本分别是《英耀篇》、《军马篇》、《扎飞篇》和《阿宝篇》,各自有着独特的主题和应用技巧。
-
英耀篇:此秘本侧重于心理学的揣摩,教导如何通过观察人的言行举止、表情神态来判断其性格、情绪以及背后的故事。它强调的是对人性深刻的理解和利用,通过言语诱导和心理暗示来操控对方,使其信服。《英耀篇》可以说是研究人心、掌握人际交往艺术的高度总结。
-
军马篇:这部秘本的内容涉及策略布局与形势判断,类似于古代兵法中的用兵之道。在江湖术士的语境中,“军马”可能比喻为如何在复杂的人际关系和社会环境中运用智慧,灵活应对各种情况,包括如何布置场面、营造氛围以及如何在不同的“战役”中取得优势。
-
扎飞篇:《扎飞篇》则更倾向于神秘主义和仪式感,教授如何通过装神弄鬼、借助超自然的力量来影响他人。它包含了一系列利用人们对未知的恐惧或敬畏,通过表演性质的宗教或迷信活动来达到控制或欺骗的目的。这种手法通常包括所谓的“跳大神”、祈福驱邪等,以达到让信众相信并依赖术士的能力。
-
阿宝篇:此秘本专注于欺诈技巧和手段,特别是通过设计精妙的骗局来骗取财物。《阿宝篇》传授的是一系列欺诈方案,比如虚构故事、扮演角色、制造紧急情况等,以吸引目标并诱使其自愿交出财物。这些技巧往往结合了心理学和社会工程学的原理,旨在利用人的贪婪、同情或其他弱点。
总的来说,江湖四大秘本反映了**古代社会中一种特殊的文化现象,它们不仅包含了对人性深刻洞察的心理战术,也有着丰富的民俗文化色彩和历史背景,虽然其中的许多技巧在现代社会被视为不道德甚至非法,但在历史上却对了解民间信仰、心理操纵和社会互动提供了有趣的视角。
一、英耀篇
《英耀赋》或《英耀篇》是**古代江湖术士使用的一种相术口诀。这种相术不依赖于八字测算或风水观察,而是完全依靠观察者的眼力和对被观察者一举一动的细致观察。例如,通过言谈、神情、习惯动作等细节,相术士能够洞察对方的底细和事情背后隐藏的玄机。"英"在这里指的是神,"耀"指的是捉,因此"英耀"实际上是指捕捉和运用神髓,这是江湖术士看相的核心技巧。
《英耀篇》的原文包含了许多关于如何通过观察和交流来判断一个人性格、命运和心意的具体指导。例如,它教导术士在与人交谈时要注意对方的言辞和态度,如何通过对方的言行来推测其性格和近期的运势等。
这种相术在古代可能被用于算命或心理战术,但现代来看,它更多地被视为一种古代文化现象,而不是实际的预测工具。
《英耀赋》作为古代相术的一部分,其原始形式可能已经不再被广泛使用。然而,相术作为一种文化现象,其影响可能仍然存在于现代的一些算命、心理咨询或人际交往的实践中。现代的这些实践可能借鉴了《英耀赋》中的一些基本原则,比如观察人的言行举止来推断其性格或心理状态。
现代心理学可能会将《英耀赋》中的技巧视为一种早期的行为观察和人际交往分析。虽然《英耀赋》的技巧并非建立在科学原理之上,但它们确实涉及了对人类行为的一些基本观察,这些观察在一定程度上与现代心理学中的一些概念相似。
例如,现代心理学中的行为主义学派强调可观察行为的重要性,这与《英耀赋》中通过观察人的外在行为来推断其内在特质的方法有相似之处。此外,一些心理学的领域,如身体语言、非言语交流、微表情分析等,也涉及到通过观察人的非言语行为来推断其情感和心理状态。
然而,现代心理学更注重实证研究和可重复验证的实验结果,而《英耀赋》的技巧往往是基于个人经验和直觉,缺乏科学验证。因此,虽然《英耀赋》中的一些观察可能与现代心理学的一些观点不谋而合,但它们在方法论和验证标准上存在着根本的差异。
总的来说,现代心理学可能会对《英耀赋》中的技巧持一种批判性的态度,同时也会承认其中包含的一些对人类行为的基本洞察。现代心理学家可能会尝试从科学的角度理解和解释这些技巧,而不是直接采纳它们作为实践指导。
《英耀篇》的智慧跨越了时间的界限,与现代心理学的理论和实践相结合,为我们在个人发展、社会交往、教育、领导、冲突解决、健康和社会责任等多个领域提供了深刻的洞见和实用的指导。通过这些原则和技巧的应用,我们不仅能够更好地理解自己和他人,还能够更有效地参与到社会和组织的建设与发展中,为实现个人与集体的和谐与进步做出贡献。
原文 与 解析
原文
入门先观来意,既开言切莫踌躇。
天来问追欲追贵,追来问天为天忧。
八问七,喜者欲凭七贵,怨者实为七愁。
七问八,非八有事,定然子息艰难。
士子问前程,生孙为近古。
叠叠问此件,定然此件缺,频频问原因,其中定有因。
一片真诚,自说慕名求教,此人乃是一哥,笑问看我贱相如何?此人若非火底,即是畜生。
解析
相士在开始相面之前,首先要观察对方的来意和心态。一旦开始对话,就要果断,不要犹豫。如果对方显得急躁不安,可能是在追求财富或地位;如果对方显得忧虑,可能是心中有烦恼。观察对方的来意和心态是一种非言语沟通的分析,与心理学中的“情境分析”相似,强调了对个体行为背后动机的解读。在客户服务和销售中,通过观察客户的行为和语言来预判需求,从而提供个性化服务。
父母来问子女,必然是希望子女未来富贵,希望未来可以凭子贵。子女来问父母,必然是为父母担忧,父母可能现在身体不好。
妻子问丈夫,面色喜悦的,是希望凭借丈夫的贵族身份,面露愁容的,是在为丈夫最近的表现忧愁。
丈夫问妻子,要么妻子有事,要么就是生孩子困难。
读书人来问命算卦,多半是为了功名前程,希望有飞黄腾达之日,光宗耀祖之时;商人来问卜,则因为近来生意不好的缘故。
如果对方反复询问某件事情,说明在这件事情上他/她有所缺失或不满意;如果对方不断追问原因,说明他/她内心深处有困扰。
如果对方表现出真诚的态度,称自己是慕名前来求教,那么这个人可能是信神信命信卦的“一哥”——即虔诚的问卜求卦者;如果他/她笑着询问自己的面相如何,那么他/她可能是一个性格直率的人;如果态度恶劣,那么他/她可能是一个性格暴躁的人。
原文
砂砾丛中辨金石,衣冠队内别鱼龙。
僧道纵清,不忘利欲,庙廊达士,志在山林。
初贵者志极高超,久困者志无远大,聪明之子,家业常寒,百拙之夫,财终不匮。
眉精眼锐,白手兴家之人,碌碌无能,终生工水之辈。
破落户穷极不离鞋袜,新发家初起好炫金饰。
神暗额光,不是孤孀亦弃妇,妖婆媚笑,倘非花底定宠姬。
满口好对好,久居高位,连声是是是,出身卑微。
解析
相士应该具备辨别真伪的能力,就像在砂砾中辨识金石一样,在人群中,要能区分谁是贤才谁是庸才。
那些身居高位的达官贵人,**阶级,别看嘴面上冠冕堂皇,一心为公,其实个个都很贪婪,希望爵禄更丰,希望以权谋私搞更多的钱而不被察觉。只有真正的开明之士,才有志于功成名就后归隐山林,清白退休。
初显贵的人志向通常很高,而长期受困的人则可能志向不远大。聪明人的家业可能并不富裕,而看似笨拙的人却可能财富不断。刚刚开始发家的人喜欢炫耀自己的财富,注重物质享受。个体在经历贫困后,一旦获得财富,可能会过度强调物质展示。心理学中的“补偿心理”和“社会认同”概念可以解释这种行为,即个体可能会通过物质展示来弥补过去的不足或寻求社会认同。
面相眉毛整齐、眼睛有神,通常表示此人精明能干,从无到有,未来可能靠自己的努力创业成功。面相平凡无奇,通常表示此人没有特殊才能,未来可能一生劳碌,像水一样奔波劳碌。
破落户的特征是:白嫩肉,精神憔悴,衣饰寒酸,仍然穿鞋套袜不打赤脚,现代社会或可能是衣着毕挺,行为做作,腰上皮带是破旧的,脖上领带是皱褶的,脚上皮鞋是破旧或没擦的,领口衬衫是花的,鼻上眼镜片是脏的,腕上的手表是廉价的。
那些新发迹的富人特征是:尽管穿着平常如旧,但是喜欢炫耀自己新买来的金玉饰物,人一阔,脸就变,现代社会还有可能是手里捏个大哥大,动辄“喂喂喂”叫个不停,生怕人家不知道他有手机……不管何种表现,总之有意无意地“炫耀”是其特征。
眼神暗淡、额头明亮,通常表示此人内心孤独或有所忧虑,此人可能是失去丈夫的寡妇或是被丈夫抛弃的妇女。一个人面容憔悴或表情忧郁,可能与心理健康状态有关。心理学中的“抑郁症”和“焦虑症”等情绪障碍可能会导致个体的面部表情和神态发生变化。
笑容妩媚,像妖婆一样迷人,如果不是因为身处风月场所,那么此人很可能是被某个有权势的男人宠爱的小妾。
总是在同意或赞许,可能是身份地位很高的人,总是在随声附和,没有自己的主见,可能是较低的社会阶层或贫苦家庭出身。
原文
面带愁容,而心神不定,家有祸争,招子闪烁,而故作安祥,祸发自身。
好勇斗狠,多遭横祸。怯懦无能,常受人欺。
志大才疏,终生咄咄空抱恨。才偏性执,不遭大祸亦奇穷。
治世重文学之臣,乱世发草莽英雄。
通商大邑竞工商,穷乡僻壤争林田。
解析
如果一个人面带愁容而又心神不定,恍恍惚惚,带神经质的,可能是因为家中发生了争执或不幸。
如果一个人眼神闪烁,却故作镇定,可能是因为他/她自己遇到了麻烦。
表面的情绪表达与内心状态的不一致,与心理学中的“情绪不协调”概念相符,可能涉及深层的情绪问题。在心理咨询中,帮助个体识别和处理内心的真实情绪,以改善心理健康。
性格好斗、容易冲动的人,容易因为冲突而遭受意外的灾祸。
性格怯懦、缺乏能力的人,他们往往因为软弱而被人欺负。
心理学认为,缺乏自信和自尊的人可能会散发出易受攻击的信号,从而吸引到那些喜欢操控和欺负他人的人。
志向很大但才能不足的人,一生都会处于不满和遗憾之中。
心理学上,这种状态可能指的是理想自我与现实自我之间的差距过大,导致个人长期处于挫败感和焦虑中。
才华出众但性格固执的人,即使没有遇到大灾难,也会过着非常艰难的生活。
心理学认为,固执的性格可能会使人忽视适应环境和变通的重要性,导致生活陷入困境。
在不同的时代,人们的价值和成就也不同。在和平时期,重视文学才能的官员更受欢迎;而在乱世,那些出身草莽的英雄人物则有机会崭露头角。
在不同地方人们的生活方式和竞争内容。在商业发达的大城市,人们竞争的是工商业的成就;而在偏远的乡村,人们则可能为了土地和林业资源而争斗。
原文
急打慢千,轻敲响卖,隆卖齐施,敲打审千并用,十千九响,十隆十成。
敲其天,而推其比,审其一而知其三。
一敲即应,不妨打蛇随棍上,再敲不吐,何仿拨草寻蛇。
先千后隆,无往不利,有千无隆,帝寿之材,故曰无千不响,无隆不成。
学者可执其端,而理其绪,举一隅而知三隅,随机应变,鬼神莫测,分寸己定,任意纵横,慎重传人,师门不出帝寿,斯篇玩熟,定教四海扬名。
解析
“急打慢千”是相命时的基本要领,就是说给人算命时,必须瞅准时机,突然发问,击中要害,陷对方于猝不及防的境地,使对方在仓促时间忘记来时的戒备心理而透露出真情实况。所谓“急打”,要有突发性,打对方一个措手不及,使其无暇自顾,从而瓦解他的心理防线,如此,不愁他不从实招来。所谓“慢千”,就是在获悉对方的“情报”后,要运用恐吓的手段,再给对方以强烈的刺激,使他惊诧、惧怕,担心有大祸临头之感。这样,他自然会求教于你,向你讨教消灾避祸的法术。算命中,对方的担心和忧虑是最好的诱饵,有了这种意思,你就可以牵着他的鼻子悠哉悠哉了。为什么“千”要慢呢?因为你要组织有条理有递进感的一套“军马”(即语言),来打击对方,语调必须做到平稳而有力,切忌急躁和语无伦次,一字一句一板一眼慢慢吐出,威严,阴森可怖,掷地有声,震慑对方的意志,粉碎他的抵抗。
“轻敲而响卖”,就是说,在套取对方的情况时,要采取旁敲侧击的手法,不能直敲直槌,敲错地方。一敲就要敲到与对方心事有关联之处,起到敲山震虎的功效,使“虎”叫啸起来,自我暴露隐藏在深处的目标。“响卖”就是经“敲”又揣摩到对方的底细线索后,顺藤摸瓜,以肯定的语气把底牌亮出来,端出已见,使对方大为惊异并且深深地佩服你的高明。所谓“响”,就是一经探明路数,就要毫不犹豫,果断地出击直点对方的“穴位”,牢牢地抓住对方,在对方心中树立你的信念和权威感,由此,你可以左右逢源,条条道路通罗马了。“卖”,也是一种打击,是更深一层的刺激。然而,仅仅有打击和刺激,是不行的,还必须配之以“隆”,就是奉承恭维,夸赞和鼓励,给对方以希望,使他相信时来运转可以消为避祸之说,一切不幸均可化解;使他相信厄运之下,他仍是富贵命,幸运将降福于他。这一点很要紧,一个直到算命终场仍然一脸沮丧的人是不肯把更多的钱交给相命先生的。所以“卖”和“隆”要结合起来加以实施,单有卖,会把对方吓跑。你越是给他看到吉祥如意之光环,他越会乖乖地听你的“调遣”。算命结束,两者皆大欢喜,如若结局不是如此,那就失败了。同样道理,“敲打”、“审千”也必须并用不悖,缺一不可。这样自会“十千九响,十隆九成”。
把求问者的各种情况都敲清了,又经过“响卖”,这时候就可以“落千”了。“千”,其意不光指“恐吓”,还有一层意思,就是击中对方的要害,抨击其最铭心刻骨之事。如指出他的不幸遭遇,是“千”,抨击世态炎凉,社会的不公,亲戚朋友的背离抛弃,也是“千”。“千”之后要“隆”,要抚慰他,要给他描绘未来。这种预言式、希望式的隆,是给对方一种心理暗示,给予其精神力量。无千就不会有好效果,因为“千”多半是说明和非难过去,“千”得准会使对方依赖你,那么你对未来的“隆”他也就不怀疑了。这就是“无千不响,无隆不成”的道理所在。
“审、敲、打、千、隆、卖”要兼施并用,这实质上是一套高级的算卦骗术。具体怎么运用?江湖术士心中有数,他们或者“千、隆、卖”齐施,或者“敲、打”与“审、千”结合,或者“审、千”与“隆、卖”结合,或者只使用其中的某一字,或者六个字一齐运用。总之是灵活的,视求卦者的具体情况而决定方略法术。
交流的节奏和力度的控制与心理学中的“沟通技巧”有关,强调了在沟通中适时调整策略的重要性。在谈判和说服技巧中,通过调整语速、语调和内容来影响听众的反应和决策。
通过观察对方的行为,推测其内心的意图,通过了解对方的一方面,来推测其他方面。如果对方对某个话题有积极的反应,就应该趁机深入探讨,就像打蛇随棍上一样,顺着对方的反应进一步行动。如果对方对进一步的尝试没有反应,那么就应该改变策略,像拨开草丛寻找蛇一样,尝试不同的方法来引导对方。
先进行恐吓,然后安抚,这样做通常能够取得成功。如果只有恐吓没有安抚,那么对方可能会认为你是在胡闹,你就是个愚蠢之才。所以说,没有恐吓不要安抚,没有安抚就无法成功诈骗。
这句话鼓励学者们深入研究,掌握事物的本质,从一个角度出发,了解更全面的情况。调了灵活性和不可预测性在人际交往和策略应对中的重要性。在掌握了分寸之后,就可以在各种情境中自由应对。在选择传承人时要非常慎重,确保他们具有深思熟虑、稳健不冲动的品质,这样师门才不会教出愚蠢的人。深入研究并熟练掌握这些策略,如果能够做到这一点,就能在全世界获得名声。
原文
入门先观来意,出言先要拿心。
先千后隆,乃兵家之妙法。轻敲响卖,是江湖之秘宗。
有问不可迟答,无言切勿先声。
谈男命,先千后隆,谈女命,先隆后千。
人人后运好,个个子孙贤。
三五成群,须防有假。嘻呵成片,必定无心。
来意殷勤,前运必非好景。言词高傲,近来必定佳途。
解析
在与他人交往之初,首先要观察对方的意图和目的。在谈话之前,要把握对方的心理状态和需求。
在与对方交涉时,先进行恐吓,再安抚,这是策略中的高明之处。旁敲侧击地获取信息,再抛出自己的观点,,这是江湖中的秘密技艺。
面对他人的提问,应迅速回答,不可迟疑;若对方没有问,则不应该先发起谈论。
在算命时,对男性先进行恐吓,然后再安抚。对女性则先进行安抚,然后再恐吓。
通常人们在算命时都希望听到好话,所以术士常常会预言对方未来的运势会好转,子孙也会出人才。
当人们结伴前来时,可能存在作假或隐藏真实意图的情况,很可能是来找茬找事的,需特别小心。如果一群人嘻嘻哈哈有说有笑的来的,可能表明他没有太多的心机,是来被骗的。
如果一个人过分热情于算命,他未来一定没有好结果。如果一个人言辞傲慢,可能表明他最近运势不错,有恃无恐。
原文
言不可多,言多必败。千不可极,千极必隆。
父年高而母年细,定必偏生庶出。己年细妻年高,当然苟合私逃。子年与妻年仿佛,非填房定偏室坐正。父年与己年相等,不是过继定螟蛉。
老年问子,虽多亦寡,忧愁可断。少年问子,虽有亦女,立即分清。
早娶妻之人,父业可卜。迟立室者,祖业凋零。
当家早,父必非懒既丧。当家迟,父富命延长。
少年问亲娘,有病在牙床。老父问娇儿,定必子孙稀。
解析
不要说得太多,说多了就可能会出错。恐吓时不要说得太极端,否则就要进行安抚。
言语的节制与心理学中的“自我监控”有关,涉及到个体如何管理自己在社交互动中的表现。在公共演讲和领导沟通中,通过精炼语言来提高信息的传达效率和影响力。
如果父亲的年龄比母亲大很多,那么他们生的孩子很可能是偏房或庶出的。这是因为年龄差距大,往往意味着父亲可能有其他妻妾。如果自己的年龄比妻子小很多,那么他们的婚姻可能是私奔或苟合的。这是因为年龄差距大,往往意味着他们的婚姻可能没有得到家庭的认可。如果孩子的年龄和妻子的年龄差不多,那么妻子很可能不是填房(继室),而是偏房(妾室)。如果父亲的年龄和自己差不多,那么自己很可能不是亲生的,而是过继的或者螟蛉(义子)。
如果一个老年人来问子女的情况,即使他有很多子女,也可能很孤独,因为他可能面临子女的早逝或者其他不幸。如果一个年轻人来问子女的情况,即使他有很多子女,也可能都是女儿,因为他可能还没有儿子。
如果一个年轻人很早就结婚了,那么他的父亲很可能有很好的事业,因为他有能力早早就为他安排婚姻。如果一个年轻人很晚才结婚,那么他的祖业很可能已经凋零,因为他可能没有能力早早就为他安排婚姻。
如果一个年轻人很早就当家了,那么他的父亲很可能懒堕或老实巴交或已经去世,因为他需要早早地承担家庭的责任。如果一个年轻人很晚才当家,那么他的父亲很可能还健在或很有钱,因为他不需要早早地承担家庭的责任。
如果一个年轻人来问他的母亲的情况,那么他的母亲很可能有病在牙床,也就是牙齿有问题。如果一个老父亲来问他的儿子的情况,那么他的儿子很可能子孙稀少,也就是没有很多子女。
原文
来意神清,定必无心谈事。出言心乱,定当有意问灾凶。
少年过于奢华,其人必然浪子。老人过于朴实,此辈定是愚人。
年嫩志诚,千金可托之肖子。老来白霍,万事无成之鄙夫。
男儿问娼女,此乃终日谈烟花之俗子。妇人问翁姑,其人固念病体忧愁之贤女。
男人身配独锁匙,未断有室。妇人襟头常带乳,不是无儿。
解析
如果一个人前来时的神态清爽、精神集中,说明这个人在此行目的明确,没有杂念,不是来闲聊的。如果一个人说话时显得慌张、心不在焉,表明此人内心可能有所困扰,可能是来咨询自己未来的吉凶。神态清爽、精神集中与心理学中的“注意力集中”相关,表明个体在特定任务上的专注度。在教育和培训中,通过提高学习者的注意力集中来增强学习效果。
年龄小的人过于追求物质享受,往往是不思进取、放荡不羁的。年纪大的人过于简朴,可能是缺乏智谋和远见。
年龄小的人志向坚定、真诚可靠,值得信赖,可以把重要的任务托付给他。年纪大的人还一事无成,生活颓废,就会被认为是没有成就的、被人看不起。
如果一个男人的问题与娼女有关,那么他可能是终日谈论烟花的俗子。纠结于肉体的欲望,置家庭事业不顾,没有责任感,就算当下经济条件好,也不会有好未来。如果一个女人的问题与公婆有关,那么她可能是关心家中的情况的贤女。把别人的健康挂念,是善良的人,不问事业可能没事业,不问医生可能经济受限,问看相师是想获得认可,讨好型人格。
男人身上带有唯一的钥匙,不能确定他有没有妻子。妇女在哺乳期或有育儿迹象,可以确定她有孩子。
原文
气滞神苦,斯人现居困境,十谋九凶。色润声高,此子近处吉祥,十成九就。
两目流连,必多心而无专一。身摇浪定,定小相而带轻浮。
衣服朴而洁,铜匙坠带,生意场中之能人,可卜权衡早创。履华而整,银圆满袋,游乐场上之浪子,当决家业将倾。
田园近有,定卜先贫而后富。家业变尽,必然先富后贫。
解析
如果一个人的气色暗淡,精神不振,意味着这个人目前处于困难或不幸之中,此人在行事时,十次尝试中可能有九次会遇到失败。如果一个人面色红润、声音洪亮,意味着这个人最近很幸运,行动有很高的成功率,几乎可以肯定他会成功。气色和精神状态的观察与心理学中的“非言语行为”分析相关,可以反映个体的心理和情绪状态。在医疗和健康领域,通过观察患者的非言语信号来辅助诊断和治疗。
如果一个人进门的时候目光四处游移,不安定,意味着这个人很可能心思不定,缺乏专注和决心。如果一个人身体经常摇晃像波浪一样起伏不定,意味着这个人的行为举止轻浮,缺乏稳重。如果一个人衣服朴素又洁净,有铜钥匙挂在腰带上,意味着这个人在商业领域有才能,可以预测这个人在商业上会有所成就,能够早期成功。
如果一个人穿着华丽且整洁,钱袋里装满了银圆,意味着这个人在娱乐场所放纵自己,可能是个花花公子,可以预测这个人的家庭事业可能会因为他的行为而衰败。
如果一个人拥有农田或乡村的产业,可以预测这个人会先经历贫穷,然后变得富有。如果一个人家庭事业已经耗尽或衰败,可以预测这个人很可能会先经历富有,然后变得贫穷。
原文
少年赞他寿长,老人许加福泽。
恶人勿言恶,只许傍借而此,隆千齐下。善人当言善,反正而说福寿同施。
中年发业兴家,此人善营善作。老来一筹莫展,是老失运失时。
远客异方,祖宗每多富贵。近营内地,可断兄弟贫穷。
解析
如果是年轻人,就赞美预测他寿命很长。如果是老年人,就答应他增加祝福和恩泽。
对于恶人,不应该直接表达他们的恶行,而应该采取委婉的方式,通过比喻或间接的方式来表达,夸他强,把别人都比下去了,吹捧他能低调就成大业,这样可以避免直接的冲突和对抗,从而使得问题能够更好地解决,对待恶人,要安抚和恐吓同时使用。对于善良的人,应该直接赞美他们的善行,并预言他们将会得到幸福和长寿。
如果一个人在中年时期能够成功地发展自己的事业和家庭,说明他在经营和管理方面有着出色的能力。如果一个人在老年时可能会遇到困境,说明他失去了年轻时的机遇和运气。
远离家乡到外地谋生的人,他们的祖先往往是富贵的。那些在家乡附近经营的人,可以推断他们的哥哥或弟弟可能是贫穷的。
原文
小人宜以正直义气隆他,万无一失。君子当以诚谨俭让临之,百次皆同。
得英切勿尽吐,该防真里有假。失英最忌即兜,留心实内藏虚。
见水切宜用意,不可露轻视鄙贱之心。过火理当谨慎,最好看定方向开言。
刚柔并用,拷夹齐施,有千有隆。
携琴祖宗有隆有千,火响连天。
坐立顶正大,言语要庄严,军马不可尽出,声气定要相连。
淡定吞吐,得意不宜再往。言词锋利,失之不可复言。
声响视正君子相,目横语乱小人形。
解析
对待心机不正的人,也应该用正直和义气来恭维他们,这样做通常是稳妥的,不会出错。对待君子应该夸赞他们诚实、谨慎、节俭和谦让,无论多少次都是如此。
当你得到了重要的信息时,不应完全透露出去,因为即使是真的信息中也可能包含虚假的成分。如果失去了重要的信息时最不应该立即去寻找,而应该留心观察,因为实际情况可能隐藏在表面之下。
对待看似不重要的事物或人时,也应该用心去对待,不可显露出轻视或鄙视的心态。在做出激烈反应或行为时,应当谨慎,并且最好在确定方向之后再采取行动。
"刚"代表坚定、果断的一面,意味着在原则问题上立场坚定,不轻易妥协;"柔"则代表灵活、包容,强调在方法和态度上可以适度妥协和变通。这种平衡的艺术,在很多情况下能更有效地解决问题和维持良好的人际关系。
"拷"和"夹"在这里比喻为从不同角度或用多种方法同时进行。这可以理解为在面对复杂情况时,需要多管齐下,采取多种措施或策略,确保全面覆盖、不留死角。这种做法强调了灵活性和全面性的策略选择,以应对可能遇到的各种挑战。
既要有"千"恐吓,也要有"隆"安抚鼓励恭维,这是一种平衡的艺术。
祖先福泽深厚,留下大量财富或好的运势给后代。要赞赏或鼓励求测者,运势极好,名声显赫,影响力广泛,如同大火烧天,声响不绝。
无论坐着还是站立,都应该保持端正的姿态;说话时应该庄严;将个人的资源、力量或策略比作军队,告诫不应将所有的力量都使出来,而是要有所保留;声音和气息应该保持连贯。
在表达观点时,应该保持冷静和稳定,不应该因为说中而得意忘形。使用的词语要锋利直击痛点,如果有失误说错,就不要再次提及。
一个人的声音和视线可以反映出他是否为君子。如果声音洪亮、视线坚定,那么他是君子的表现;如果目光游移、言语混乱,那么可能是小人的特征。
原文
男女同来,分清老少亲戚方可断。单身再问,审定方向形势始能言。
寡妇询去留,定思重配。老媪多叹息,受屈难言。
病询自身,虽佑亦宜慢泄。老询寿元,未可即断死亡。
有子而寡,宜劝守节,将来必有好景。无儿问去,当要著其别栖为高。
此乃看其人之年岁为立言。
解析
面对男女同时前来求问的情况时,首先需要分辨他们的年龄、辈分和亲疏关系,这样才能做出准确的判断。在古代社会,男女、长幼、亲疏关系的不同,会影响到一个人的社会地位和行为方式,因此在相人时需要考虑这些因素。对于单身的求问者,需要观察并确定其面相、身相的方向和形势,然后才能做出判断和预言。这里的“方向形势”可能指的是面相中的各个部位,如额头、眼睛、鼻子等,以及它们的形状和位置。
寡妇前来询问去留的问题,她一定是想重新婚配。老妇女经常叹气,她一定忍受了难以言说的委屈。
病人询问自己的病情时,即使病情有望好转,也应该谨慎预言,避免过于乐观的判断。老年人询问自己的寿命时,不应该断定其即将死亡。
对于有子女的寡妇,应该鼓励她们不重新嫁人,预言她们将来会有好的生活前景。对于没有子女的寡妇询问去留的问题,应该建议她们选择再嫁,以寻找更好的生活环境。
这就是通过观察一个人的年龄来做出判断或预测。
原文
童儿身上,反复追寻,前儿难养。老大问自身,查寿元,现有病符。
瞻前顾后,必当高声唱问,以定其身。拉衣牵裙,定要暗里藏讥,以求其实。
解析
有孕在身的妇女反复追着询问孩子的命运,这说明她之前的抚养孩子遇到过困难。大儿子询问自己的寿命,这说明他有疾病。
在进行相术预测时需要全面观察和询问。通过高声提问来确认或确定某人的命运或性格。在进行相术预测时需要谨慎和细腻。通过观察一个人的衣着和行为来揭示他们的真实性格和命运。同时,也暗示了在预测过程中需要含蓄和委婉,不要直接表达批评或讽刺。
原文
十六七之少女问男,春情己动,异性亦然。五六十之老翁问女,冬雪既降,同偶何嫌。
因人情而谈世故,忖心理以顺开言。
俏遇硬鼻高头,千中带夹。
解析
十六七岁的年轻女子询问男子,暗示着青春期的少女对异性产生了好奇和兴趣,这是自然的生理和心理变化,如同春天万物复苏,情感萌动。这里用“春情己动”来比喻青春期的情感变化,说明这个年龄段的少女对异性有了感觉,这是人的自然本性。五六十岁的老年男子对女性的态度。冬雪既降,通常象征着年末,万物进入休眠状态,这里比喻老年期。尽管年纪大了,但老年男子对女性的兴趣依然存在,他们并不嫌弃伴侣,仍然希望有伴侣的陪伴和温暖,这同样反映了人的自然需求和情感。
在谈论人情世故时,需要考虑人的心理状态,顺应人的心理来进行沟通。忖,即思量、考虑。在与人交流时,要考虑对方的感受和心理状态,以便更好地开启话题,进行沟通。
“俏”指好看的女人,“硬鼻高头”指性格坚强、不易屈服、聪明、有远见的男人。既要恐吓,又要分析整理。
原文
不受则隆。隆而吐则可,不吐连消带打,高声呼喝。
千他古运将来,使其惊心动魄,言语要真诚。
若逢低首浅笑,隆中带打,不声则千。千而吐则可,不吐要逐路微拷。
低语讲话,隆其苦尽甘来,使其扬眉喜气,言语要温柔。
解析
如果对方不接受你的意见,你可以尝试通过赞美或肯定对方来缓和气氛,以便更好地沟通。如果你通过赞美或肯定对方而使其开放并透露信息,那么沟通就可以顺利进行。
如果对方不坦白,你可能需要采取更强硬的态度,甚至是大声呼喝,来迫使对方表态或行动。
通过揭示可能的未来命运来引起对方的强烈情感反应,使其感到震惊。在这个过程中,你的言语必须真诚,以建立信任。
当遇到对方低头微笑,显示出友好或谦逊的态度时,采取一种既温和又不失力度的策略。要展现出尊重和友好,又要暗含策略或轻微的压力。如果不动声色,则要恐吓,对方愿意开口分享信息就达到了目的了。如果对方依然保持沉默,就需要耐心地、一步步地探询或引导,如同审慎地敲击,寻找突破点。
当遇到对方用轻柔低沉的声音说话,要恭维他经过努力和忍耐,美好的结果终将到来。目的是让对方感到安心,甚至因为你的言辞而展颜欢笑。在整个过程中,保持言语的温柔和关怀,以促进彼此间信任和亲近感的建立。
原文
男子入门,志气轩昂,袒胸露臂,高谈雄辩,非军政之徒定是捞家之辈。每要留心讲解,恐失言以招灾。
女子进来,言柔步淡,低头羞答,非闺秀之人,定名门之女,为势必听。
我军马须从容,旁敲侧引。
视同来而眨眼,恐非有意寻求。对自己作疏言,未必无心试探。
非得真英,不可落军马。须防马失前蹄。
解析
一个男子进门时的姿态:意气风发、自信满满,可能还表现出一些粗犷的特征,如袒胸露臂,并且言谈之间显得很有辩论能力。这样的人不是从事军政工作就是从事一些需要强硬手段的职业。在接待这样的男子时,需要留心自己的言辞,以免说错话引起不必要的麻烦。个体的自信表现和社交风格与心理学中的“自我呈现”理论相符,涉及到如何在社交场合中展示自己。个体的自信表现和社交风格与心理学中的“自我呈现”理论相符,涉及到如何在社交场合中展示自己。
一个女子进门时的行为:言谈柔和、举止优雅,显得害羞和谦逊。这样的女子不是出自深闺的女子就是来自有名望的家庭。在接待这样的女子时,应该从容不迫,通过旁敲侧击的方式来引导对话。
在与顾客交流时应该保持从容不迫的态度,并通过间接的方式来引导对话,而不是直接提问。
如果顾客在对话中眨眼或者显得心不在焉,可能并不是真心寻求帮助,或者他们可能会有意无意地通过一些看似不重要的话来试探相术士的能力。
除非确信顾客是真心寻求帮助,否则相术士不应该轻易地给出具体的预测或建议(落军马)。相术士需要小心谨慎,以防自己在交流中失误,就像马匹在行进中失蹄一样。
原文
眼观四面,耳听八方,坐立必要端方。
军马出须坚定,切忌浮言乱言,又忌俗语虚言。
先用人品涤荡一番,英耀未到,军马单刀直入,自然马到功成。
解析
在与顾客交流时需要全神贯注,观察周围的环境,倾听对方的话语,同时保持端正的坐姿和站姿。这样的态度不仅能够更好地收集信息,还能给顾客留下专业的印象。全神贯注的观察和倾听与心理学中的“环境意识”和“深度倾听”技巧相关,强调了在交流中对环境和言语的全面理解。在团队管理和冲突解决中,通过提高环境意识和倾听技巧来促进有效沟通和问题解决。
在给出预测或建议时应该坚定自信,避免说一些轻浮、杂乱无章的话,也要避免使用俗气或不切实际的言辞。
首先应该通过展现自己的人品和职业操守来赢得对方的信任。在还没有完全展现出自己的才能之前,应该直接、明确地给出自己的预测和建议,这样才能够成功地完成交流。
原文
但论叩经叩策之法,如官府升堂审案,必要寻根寻鸿。一层一层,至紧深究根底。祸福此法,如入大座高楼,由浅入深,由轻至重。大概论之。
至紧问自身日后,次开谋望新花,次家宅占病,亦宜挨入自身可决。
解析
相术实践中对易经等古籍的深入研读与运用,在进行相术看相时,必须像官员审理案件一样,追根溯源,寻找最根本的线索和证据。需要层层深入,逐步探究问题的根本。看相祸福的方法,就像登上一座高楼,需要从浅层逐步深入,从轻到重。概括讨论,不要说太细节。
在进行看相时,首先应该关注个人的未来命运,然后看相有关事业、前途等事项,次要关注的是家庭、住宅和健康问题。也应该将自身的情况和问题融入其中,以便做出更准确的判断。
原文
断自身之法,人生品行,一世好运丑运,可为议论。
亦要在自身入脉,可能知得内里因由。
大约之法,如行兵调将,务要随机应变,仔细留心,不能一概而论。
真乃变化无穷也。
解析
这里“断”可以理解为审视、判断或修正,意味着对自己的行为、**和生活方式进行深刻的自我反省和调整。"自身之法"指的是个人的生活原则、行为模式及处事之道。因此,这句强调了自我反省的重要性,即每个人都应该不断地审视自己的行为和**,以求不断进步和完善。指的是个人在一生中展现出来的道德品质和行为习惯。这不仅包括诚实、善良、责任感等正面品质,也涵盖了如何对待他人、如何面对困难和挑战的态度。良好的人生品行是个人声誉和社会评价的重要基础,也是内心平和与幸福感的来源。人生的道路上充满了起伏变化,有顺境(好运)也有逆境(丑运)。这句话鼓励人们应当以开放和理性的心态去讨论和反思这些经历,不论是好是坏。通过分享和探讨个人经历中的得与失、成与败,不仅可以从中吸取教训,提升自我,同时也能启发他人,增进相互之间的理解和共鸣。这种议论不仅是对个人生活经验的总结,也是对生命意义和价值探索的一部分。
也需要把自己代入对方的处境,就可以了解其内在的原因和动机。
大致的看相方法或原则,像指挥军队一样,根据不同的信息灵活变化,非常细心,观察入微,不能对所有情况都采取相同的处理方式,需要具体问题具体分析。
看相的过程中会遇到无限的变化,没有固定的模式,需要不断适应新的情况。
原文
古人云,出人头地,须用苦心。
工夫后学必要常常念熟,自有进步。
书云,学而不思则妄,思而不学则怠。
解析
这句话引用了古人的话,指出想要在社会上取得显赫的地位或成就,必须付出艰苦的努力。
只有通过不断的学习和实践,才能取得进步。
这句话引用了儒家经典中的教诲,强调了学习和思考的相辅相成。如果只是机械地学习而没有思考,那么所学的知识将无法真正理解和吸收。如果只是空想而不去学习新知识,那么思考和行动将会变得懒惰和无效。
原文
凡间更新守旧,必定夹定男女。
若男问必生意打工求财。若女问恐入八复飞。
必要一一夹清。见生意,启军马,必须镇定。
解析
在社会变迁和个人命运中,需要考虑到性别因素。
男性最关心的问题通常是生意、工作或者财富的追求。女性询问者最关心的问题可能是婚姻、家庭或者个人的情感状态。“八复飞”直至外出征战或生意的丈夫能否平安归来。
必须要将问题逐一理清楚,不能含糊其辞或者混淆不清。涉及到有关生意或工作,或是行军打仗,在处理这些信息时必须要保持冷静镇定。
二、军马篇
原文
原文
论命运
只道浮云风送去,人间霹雳自空来。莫道小溪流水浅,须知滑石有惊人。
莫谓途不堪走马,应防路滑失前蹄。马快当防平地石,舟忙宜慎水中矶。
如火烧赤壁,曹孟德之惊魂。若兵用乌江,楚霸王之丧胆。
只可静坐观风月,切勿临渊去钓鱼。周郎大破连环策,孔明台上借东风。
花柳场中切勿往,好比狐狸听旨施邪术,断送成汤六百秋。
漫江撒下钓和线,尤恐钓出是非来。
花花世界春三月,草草人情又一秋。惟要且勤且守,切勿妄作妄为。
四季谋来来多阻滞,乘船骑马实艰难。莫谓花开常鲜艳,犹恐风狂有败枝。
时时谨慎,步步为营。好比夜静水寒鱼不饵,满船空载月明归。
不贪无所欲,守耐自然荣。一阵狂风一阵雨,半生云雾半生烟。
一夜风来急,草木尽低头。六畜近来生百相,一牛两尾少人闻。
有所忧患,则不得免焉。高山流水少,狂风雨半天。月色虚心待,有一船军器上营藏。
书中生困难攀食,水上游鱼易钓烹。紧陷坚牢地,须防足下浮。
山下两轮明月现,目前运限具文星。有贵难为贵,求败不聚财。
车心马角棋休下,虎口羊肠路莫行。江水澄清翻作赤,湖波荡漾变成红。
汉高着滩水,光武逢滂沱之险。华容道上逢关羽,赤壁江中遇周郎。
青天白日雷公响,惊动愁人夜不眠。一片白云天外望,数声啼鸟梦中惊。
门前枯树倒,白鹤满天飞。江山水渺渺,暗石在其中。
红血杜鹃啼不尽,绿杨莺燕语思亲。高堂冷落,萱草凄凉。
靛房未有工师染,茅屋常多木色衣。椿枝已落,萱草犹荣。
门前多喜庆,人事倍精神。日暖春光侵衣艳,风送花来朴鼻香。
新月桂松梢,清风送好音。缓舒雁羽翼,轻举蝶精神。
万里春光先报暖,一天秋月更增辉。天喜照临,宜伞室家。
喜事从天降,桂子结成双。绍振祖宗之箕裘,开启后人之事业。
方寸有天堪府迎,逢人无地不生春。一派水木皆佳景,重重锦上又添花。
春夏精神爽,秋冬大吉昌。忽然果遂真奇遇,便是男儿得志时。
花逢春暖枝枝秀,月到秋晴夜夜光。残花发蕊,月缺重圆。
花开叶茂枝枝秀,嫩竹出林节节高。一番新气象,随遇尽亨通。
云收月朗家家现,雨后花前朵朵香。风和竹坞添新笋,日暖兰阶长嫩芽。
何只丁财并进,而且人物康宁。
脱其荆棘,乃有真景而来。财源不竭,不但利禄盈庭。
倘言麒麟再庆,换过一翻新世界。果然不兴旧时同。不但态罴入梦,而且大获绳头。
昔日云移遮朗月,今朝雾散见青天。有喜色,所谋如愿。
若遵孔孟之门,苦志芸窗。但习陶朱之术,富有大业。
预卜鸿图大展之荣,财如春水朝朝至,喜似秋月夜夜光。
一石打破青铜镜,月里嫦娥缺半边。不尽祥光来眼底,无穷佳景到身前。
美中不足生狼狈,目到浮云空自嗟。莫言一事小,弄出大乾坤。
满眼儿孙增福寿,一庭少长尽安宁。玉人语燕陪君枕,肖子三槐即汝家。
笑语家声振,共聚一堂亲。蜀地未逢司马到,荆州已着卧龙谋。
好风吃散浮云去,明月照通大地光。交情渭北三春树,生意江南二月花。
壁玉珠还时转泰,云开雾散月重明。前途运去金成铁,今日时来铁化金。
昨夜不知何处雨,今朝忽见满江湖。
祸去福生,增尔一番新气象。时来运泰,相逢到处尽繁华。
自古英雄,每多挫折。由来豪杰,偏受兴磨。
一翻寒澈骨,怎得梅花喷鼻香。虽有名利畅地,还防苦海生波。
宿云似幕难遮月,细雨如烟不损花。如昏衢得炬烛,若苦海忽遇慈航。
得意须防失意,开眉又恐皱眉。马逢伯乐,剑遇张华。
立志非常早,怀才惜未伸。花开遭两损,月色被云迷。
秋月云开后,熏风雨过时。坎地番夷夏,崎岖恐扑颠。
发意外之财源,添岁前之秀子。财如春柳发,喜若夏莲开。
平地生荆棘,浅水起风波。无边美景频频至,不尽财源滚滚来。
莫道三冬无雨落,须防六月有寒时。云散一天星斗现,风平四海波浪清。
老梅生白玉,秋菊绽黄金。虽有名利畅地,还防霜雪相侵。
纵有风霜犯,依然乐到好春。佳偶忽成怨偶,良缘反作孽缘。
莫道喜中无拂意,还妨乐里有生愁。
论双关
好比枯槁之木,纵逢春而不荣。茂盛之标,虽凌霜而不败。
虽无意外心常泰,犹有胸中内带愁。满径好花人赞羡,一帘微雨客生愁。
一枝花放门墙外,几处人思瓶里簪。范丹虽乃穿蕉异,一时运转展鸿基。
相如昔日为司马,洪武当年去牧牛。子女双生曾报兆,锦鸡齐唱竟呈祥。
竹影扫街尘不动,荧光烛地草难燃。一轮夜月圆还缺,几点晨星有若无。
好去好来还好意,多财多宝亦多男。门前八卦蚊休入,户外三星我接来。
浪静风和船不动,天晴月朗客优游。为人静处寻安乐,便是清闲一日仙。
诸葛一生惟谨慎,吕端大事不胡涂。
渐入佳境,如小溪流水,未得大展鸿图。财丁两遂,仍妨家运转衰。
家运支持,将功补过,只可静而获福,勿纵闲以生嗔。贵人得力,仍妨服色而丁忧。
太乙临运,应主熊罴入梦,宜慎破财为佳。一则以喜,一则以惧。
纸花做出惊人目,好在无香在里头。财虽有而积聚无多。
纵遇丁财而逢喜,难免神色以生悲。富贵草头露,繁华瓦上霜。
虽有志于四方,依然未伸大志。挫折在前,安逸在后。挫折大,险阻于常。
颇得贵人关照,仍然未得畅志从心。宛如枯木逢春,虽有滋生也不荣。
只可顺风摇顺桨,莫来危马过危桥。守株待免为安稳,缘木求鱼枉用功。
虽行贵人提拔,未许十分称怀。财之有进有退,事亦半喜半忧。
得财诚恐失献身,生子还妨损子。应得桑麻女,当逢吉服穿。
平途走马无关碍,顺水行舟有逆风。衣禄有余,起跌殊多。
得不足以补失,喜庆能使亡忧。交脱之际,动作勿妄。
莫道全无事,须防不测忧。
论颂扬
如秦楼之月,未得常光。似走盘之珠,去留未定。
虽得鸿图犹未展,难令如意遂君心。忽然平地一声雷,丁财两旺。
只手创成银世界,双拳弄出锦乾坤。贵子连添,财利重重。
喜气欣欣,财源迭迭。财丁两旺,百事堪宜。
丁财如旱曲得雨,枯木逢春。生涯占大有,美利尽成事。
万物看生新气象,百般从此得精神。好风吹送岩前桂,十里人间九里花。
雨露细滋春草长,风云际会小阳春。有意裁花花不发,无心插柳柳成阴。
吹开云里月,剔起暗中灯。用心机再谋世界,尽本事而得大财。
运逢财气心先爽,月到中秋分外明。春至满园皆秀色,秋来无处不花香。
东成西就般般合,内作外为事事亨。花红花绿花成锦,月清月白月光明。
平安竹报全家庆,宝贵花开遍室春。振家声而宏骏业,逢巧遇而得其财。
可秉大权恭大任,重重财气,禄位高升。秋到中天明月好,运到人间宝贵春。
脱迷离而登大道,拔云雾而见青天。果能发奋振雄心,定卜如意获资财。
海外经营多获利,前程发达在他邦。英雄得志扬名远,宝贵催人气象新。
尽力推开沙与石,用心淘得玉兼金。时运就从今日发,百花俱是此间开。
且看巨船出大海,锦帆无恙挂西风。财如秋水朝朝满,运比桃花日日红。
扬扬喜庆如春至,滚滚财源似水流。名花得雨生艳色,满面红颜照画堂。
人逢喜事精神爽,桦遇春风瑞气香。花逢春景千般艳,月到中秋分外光。
小小经营成厚业,微微创置可兴隆。上苑奇花呈宝贵,庭前瑞草报平安。
狂风吹散残云去,如雨稍晴红日升。千里江山千里锦,一翻雨至一翻新。
财如江上之清风,喜似山间之明月。清风明月无人管,绿水青山任意游。
利如晓日腾云去,财似清风送喜来。斯时幸有贤朗志,何怕南窗寄傲情。
喜金银之满库,纳榖粟以盈仓。红日初升,阴霾已散。顺时而动,循序上进。
心花怒放,未许称心。财喜并临,有喜有财。谨守成业,敏事慎言。
免生烦恼,凿石生玉。淘沙见金,惠风和畅。大有年丰,小人道长。
甜言勿听,见景生情。见机而作,慎勿强求。
金鳞在手,得还妨走。有胜有败,得足偿失,无吝无誉。皓月当人,任意而为。
忠而见疑,直而受谤。微风贬骨,冷雨侵肌。否极泰来,先否后亨,如日之升。
大道生财,寿筳祥开。举家畅饮,三杯不少。风光月斋。雨散云收。
三呼不返,一梦无回。月朗天清,花香月艳。乍暗乍明,一帆风顺。
吐气扬眉,浮尽书散。多修厥德,福自天中。
论老人
大器晚成休道晚,长江有水任鱼游。不特财源广聚,自然到老生光。
言晚福,安稳如山。论财禄,长江似水。福寿绵长安乐处,丁财并进又康宁。
晚福更高儿女肖,晚景又盛妻妾贤。花迎丽日高低放,气逐香风远近闻。
退去灾殃无别意,展开心事有余宽。财来恰似南山火,一阵高时一阵红。
过尽前途十八滩,任君随意挂高帆。高处绿杨堪策马,条条好路透长安。
只宜再纳兰姬,子嗣定然有见。视南山之寿比,乐有嘉宾。
贺北海之筹陈,欣多命子。无处无誉,层楼直上,到处皆亨。
态罴许其入梦,璋兆宜男。又赋小星之庆。大谋九就皆如意。
万紫千红气象新,老骥倘怀千里志,枯桐空抱五材清。
论小孩
根深不怕,树大何愁。理幼而学,壮而行。如月初升,光朗可爱。少须藉椿萱之福,然而啾唧多端。
亦可跨龙附凤。无荣无辱。以度时光。
论命宫
命逢驿马,非为性静。
嗟日落兮,灵椿早谢,歌月朗兮,萱草长荣,嗟椿树之悲,喜萱堂之水(指丧父)。
父母应得延年,可喜萱并茂(指父母全)。
堂露冷,叹椿树之早凋,萱草悲秋,得王孙而抱憾(指丧父母)。
萱花先谢,椿树长年(指丧母)。
纵使椿萓遐龄,定然要奉邻家香火,以免幼年啾唧。
纵使椿萓遐龄,于雁行中,不免折翼(指兄弟不全)。
虽高年之福荫,尤有小厄相惊,幼藉二亲之福,依然两暗三光。
椿堂先叙,椿草长荣(指父死)。
幼须前人之福。然而啾唧多端。正是南岭种梅北岭秀,纵然遇险保呈祥。
先难后易,大耗守财。财轻义重,来固多,用亦不少。
若问天伦,椿丧萱茂,论少年,不过镜花水月。
到晚景福份齐大。必主刑伤早见。椿萱难耐老。
论田宅宫
卜遗业之有限,自创置之丰隆。壮岁平常衣禄,晚年乐享田园。
田宅带何星,能守能兴。他日田园广置,厦屋渠渠。堪为预上。
祖荫有些余积,可以无饥。
更不知他日良田万顷,饲宇维新。
祖业虽然甚丰厚,少年自创必兴隆。
论财帛宫
财帛值何星,自系挥金如土,义重如山。
少得何星宿照度,异日必然财生大道,实藏兴焉。可创过万之世界。
财帛值何凶星,早财难聚,如有何吉星同垣,异日定堪创业。自创更丰于上代。
又须早岁勤劳,晚年必一番作用。少年未能如意,他年获利从心。
财帛值天空,财多反复,喜得金匮同垣,他日定然创置。异日可卜季伦之富润屋也。
惯取市缠之利,必然旺处生财。
不作文章高手,定为市井班头。
虽乃攀桂无缘,而许生财有道。黄卷无缘,勿以诗书求显达,经营有道,须从商贾觅生财。
论迁移宫
出外何方,大利何方。不宜迁居。
连日架薪,以金木生活为合。何吉星守垣,邮门遇贵。来往咸亨。
但何同度,上落舟车,仍宜谨慎。
一笔扫开云汉路,三秋直上广寒宫。
论官禄宫
吉凶混杂,生平起跌殊多。衣禄有余,异日锦衣轻裘。而居富厚,乘肥马,而掌军权。
犯何,诗书正路无缘。
衣禄人间多有,勿向诗书争荣辱,宜从市井逞英雄。
若敌手持七寸管,也应才冠六钩弓。
名登龙虎榜,身列凤凰池。
诗书难谋,武力定膺爵禄。
何星缠扰,求利胜于求名。
若市井营业,定卜生财有道,必获大利,面团团作富家翁。
官阶远大,禄自丰饶,端木才能,亿屡中,陶朱事业,富堪求。
欣际会,而荣登政界。逢巧遇,以立奇功。
论福德宫
心有慈祥,安人济众。福份齐大,虽乃早岁勤劳,晚景安逸。
论少年,不过镜花水月,到晚景,福禄五全。
福自身修,德建自然名立。
论疾厄宫
带何星星宿,宜戒牛太血毒物,以免不测之灾来。
喜得何星,吉星照度,自是避凶化吉,履险如夷。
带何星宿,勿入风月之场,勿贪意外之缘,生平宜谨慎,恐有意外之虞。
防口舌之侵,疾恙不沾,无忧沉痀之苦,永无害及其身。
可以逢凶化吉,转祸为祥,保无隐疾侵身。
虽有小恙,亦无大碍。宜请金水字边先生医理。
须防病从口入。
论夫妻宫
孟光系贤妇,不读诗书识礼义。常存闻范识规模。喜官星透出,受得好夫。
印临子位,食神显露,亦庆亨佳儿肖子之荣。
持家有法,妇道精乖,上能和,不能睦。
女命身弱,主性纯粹温柔,夫贤子旺。魁罡性格多聪慧,迭迭相逢掌大权。
盖以女命以夫子为用,其杀为官混,到底有精神。
在家尤利父母,出阁琴瑟调和。
晚年安乐,自在优游,不用劳心,而衣粮自足,无须劳,而家道自成。
金水司令而相生,火土乘时而相助,金水若相逢,必招美丽客。门庭吉,人物倍安宁。
泪酒香腮,闺帏寂寞,独杀成权,人有权术,非凡本领。
子女双生曾报兆,鬼鸡齐唱竟呈祥。
齐妇含冤,孟姜长城之哭破,二人齐到东山坑,同看红日照东明。
父母之丧,丧事不免,枭印夺食,难免花开花落之恨。
未得枝枝挺秀,儿女之债,花果不一。
女犯伤官格外嫌,带印煞重,须防夺子。合多定损贞名,女犯伤官福不真。
无财无印守孤贫。如在有财兼有印,好为有衣有禄人。
花开花落无常定,月缺月圆又一轮。
乙木者,花果之木也,藤萝之缘,牡丹之形,依玉树而临风,附古木而生香。
论子女宫
好花不结因连雨,玉镜无明为久尘。
春至花无影,云深月不明。
丹桂经霜成晚子,碧桃遭雨结花迟。
久寒草不秀,雨久花未荣。
桃花贪结子,只恐五更霜。
难免卜商之苦,东败于齐。杨业大会沙滩,威风八面。
石榴有子花应结,宝鸭与香烟怎生。
一夕偷花人铲草,虹霓初现雨梢晴。
论奴仆宫
遭何星,任用宜择人,方能得力,切勿尽心相托,以免因人而累已。
有受主敬宾强之义,无强奴欺主之虞。
必须济以因,临以威。怀恩畏威,自无反侧之虞。
堂上一呼,堂下百诺,颐指气使之效,呼聚喝散之权。
生平虽享,自代其劳,待婢如意,仆役从心,指挥如意。
论兄弟宫
许昆仲而带何星宿,也无孙庞之意,亦无姜家大被同眠。
连枝同气,鸿雁成群。
何星拱照,应卜王氏三槐。
所嫌何星,只论何家两凤。
上得兄力,下得弟缘。
伯牛之叹,亦有相求相应,关张之盟,算来如女如足。
论父母宫
金木相朝,明珠出海,中岳有气,额广颧高,晚年好景,此为相之得宜,品行端方者也。
五官端正,三停相配,眼有神,眉有彩,三才相对,六府均合。
双眼睛有彩,双眉之色有气,是有贵子添生,乃有福之相。
可惜金木相冲,故而先受折挫烦绪也。
手相八卦不陷,三纹分明,终是有权,亨财帛丰厚也。
为人纯厚,交游中,有春皓月之奇,谈笑间,有桃红柳缘之趣。
性格英明,品行超群,心灵性敏,义气惯人,此君定是魁梧客。
貌原非丑,其人当是小丈夫。
人品忠直,无屈曲之心。貌如桃李之姿,心存慈悲之念。
食神生财,定立一生之衣禄,米粮丰厚,可一生之衣褖无亏。
官星得命,平生衣禄有余。
元辰,本为人,宽洪布德,刚断英明,胸藏大志,作事超群。
三、扎飞篇(节选)
原文 与 解析
原文
凡一皆可札飞也。
君子敬鬼神而远之,小人畏神鬼而陷之。
或求妻财子禄,或畏疾病灾祸,非有所惧,即有所求,察其所惧,观其所求,而善用军马,则一无不唯命是从,故曰:“我求他,不能他求我。”
解析
只要确定了客人是普通人(一 小白),都可以成为“札飞”。这句话的意思是说,只要有普通人来找你,你就应该果断地看相诈骗。这与心理学中的“自发性”理论相符,即人们在面对突发状况时,会自动产生一种“自发性”的反应,即做出判断、做出行动。
有道德修养的人会尊敬鬼神但保持距离,而没有道德修养的人会因为害怕鬼神而陷入迷信。
寻求婚姻、财富、子嗣、官禄,或者是因为害怕疾病和灾祸。不是有所害怕的事情,就是有所追求的目标,要仔细观察和询问,以了解客户的内心想法和需求。能够巧妙地运用这些工具和策略,客户就会对他们言听计从。看相师通过了解和满足客户的需求来主导看相过程,而不是被客户的需求所左右。
原文
札飞之术,贵在多方。
幻其真耶,神化莫测,小验然后大响,众信而后大成,鬼神无凭,唯人是依。
一犬吠形,百犬吠声。
众口烁金,曾参杀人。
虽明智之士亦所疑惑,何况一哉。
善为相者,莫不善用甲媒,故曰:“无媒不响,无媒不成。”
解析
看相诈骗的技巧或方法,最重要在于能够从多个角度和方面来观察和处理问题。通过多角度观察和处理问题,与心理学中的“多维思考”和“创造性思维”相关,强调了在解决问题时需要创新和多角度的视野。在产品设计和创新过程中,采用多角度思考来发掘潜在的解决方案和满足用户需求。
通过一些手段让看相结果看起来既真实又带有一定的神秘色彩,创造出一种超自然的效果,使得看相结果显得不可预测和神奇。通过一些小的、成功的看相来逐渐建立大众的信任,然后才能取得更大的成功。尽管看相涉及鬼神等超自然元素,但最终看相的结果还是依赖于人的解释和行动。
当一只狗开始吠叫时,其他的狗也会跟着吠叫。这是一种从众心理,比喻人们在没有明确了解情况时,往往会盲目跟从他人。描述了从众心理,即个体在群体中容易受到他人行为的影响,这与心理学中的“社会影响”理论相符。在市场营销和广告策略中,利用社会认同和从众心理来增加产品或品牌的吸引力。
众人的言论就像锋利的武器,可以杀人。这进一步强调了社会舆论和误解对个人名誉和生活的巨大影响。
即使是明智的人也会对此感到困惑和疑惑,更何况普通人呢?这强调了在面对社会舆论和误解时,即使是智者也可能无法保持清醒的判断。这与心理学中的“认知失调”理论相符,即个体在面对与自己信念不一致的信息时可能会感到困惑。在危机管理和公关策略中,通过及时准确的信息传播来减少公众的认知失调和误解。
善于相面术的人,没有不善于利用媒介的,所以说,如果没有媒介,就无法引起关注,也无法成功。这表明在处理事务时,适当的媒介和手段是至关重要的。强调了媒介在沟通和影响中的重要性,与心理学中的“传播效应”理论相符,即信息的传播和接受受到媒介特性的影响。在社交媒体和数字营销中,选择合适的平台和工具来有效传播信息,增强品牌影响力。
四、阿宝篇(节选)
原文 与 解析
原文
贪者必贫,君子引为大戒,佛门亦为五戒之首,故做阿宝者的罪过,咎不在相而在一。
贪官者,民贼也,好商者,民橐也,豪强者,民之虎狼也。
其或以知欺愚,恃强凌弱,欺人孤寡,谋人财产,此皆不义之财也。
不义之财理无久享,不报自身,亦报儿孙。
不义之财,人人皆得而取之,故曰做阿宝者,非千也,愿天之罚而已。
解析
贪婪的人往往会表现出贪婪的行为,有道德修养的人需要将贪婪视为严重的道德禁忌,时刻警惕和避免。佛教也把贪婪看作五大戒律中最为重要的一项,从事看相或其他职业的人如果因为贪婪而犯错,责任在于个人的行为,而不在于职业本身。
贪婪的官员对民众来说是像盗贼一样的人,因为他们利用职权非法获取财富,损害民众的利益。贪婪的商人对民众来说是像盗取民众钱财的口袋一样,通过不正当手段榨取民众的财富。利用自己的力量和地位欺压民众的人,他们将像虎狼一样对民众构成威胁。
他们利用知识欺骗无知者,依靠力量欺负弱者,欺骗孤儿寡母,以及算计他人的财产,这些行为都被视为获取不义之财的方式。
通过不正当手段获得的财富是不会长久享受的,就算没有自己遭报应,还可能影响后代遭报应。
那些通过不正当途径获得的财物,理论上讲任何人都有可能去占有或夺取。"做阿宝"通常指的是从事诈骗、行骗的行为,那些从事欺诈获取财物的人,并不是真正的诡计"千",而是通过不道德的方式。这里强调的是欺诈行为的本质是不正义的,即便表面看似巧妙,实则缺乏正直和道德基础。希望上天或自然法则能够对这些不义行为进行惩罚。
原文
凡做阿宝,博观而取之,慎始更慎终。
未算其利,先防其弊,未置梗媒,先放生媒。
故善为相者,取之不竭其力,不伤其根,上顺天理,下怏人心,并使之有所畏怯而不敢言。
不善相者,竭一之力,伤之一内,取非不义之财,上违天理,下招人怨,非吾徒也,小子鸣鼓而攻之可也!
解析
看相师在提供服务时应该全面地观察和了解情况,并且在整个看相过程中,从开始到结束,都需要保持谨慎的态度。博观而取之强调了在决策过程中需要广泛收集信息,这与心理学中的“信息加工”理论相符,即在做出选择前要综合考虑各种信息。在企业管理和战略规划中,通过综合分析市场信息、竞争对手和自身优势来制定发展策略。
在考虑看相可能带来的好处利益之前,首先要防止可能出现的害处。"梗媒"和"生媒"在这里可能是指婚姻中介或撮合者。在古代,媒妁之言是婚姻成立的重要环节,"梗媒"或许可以理解为在双方之间设置障碍、制造难题的中介,而"生媒"则可能是指那些积极促成好事、使双方关系顺利发展的媒人。因此,这句话的直接含义可能是说,在考虑或安排那些可能导致矛盾、阻碍的条件之前(未置梗媒),应该首先释放或启用那些能促进关系和谐、促使事情向好的方向发展的力量(先放生媒)。
优秀的看相师,在提供看相服务时,不应该耗尽询问者的财力或损害其根本利益,应该遵循天道和人心的期望,应该让询问者对看相结果保持敬畏,不敢轻率行事。
不称职的看相师,可能会耗尽询问者的钱财或伤害其内心,通过不正当手段获取财富,他们的行为既违背了天道,也引起了人们的怨恨,不是我的徒弟,可以敲锣打鼓般招摇肆意地去攻击那个”小子“。
现代心理学解释 与 应用
《英耀篇》的智慧跨越了时间的界限,与现代心理学的理论和实践相结合,为我们在个人发展、社会交往、教育、领导、冲突解决、健康和社会责任等多个领域提供了深刻的洞见和实用的指导。通过这些原则和技巧的应用,我们不仅能够更好地理解自己和他人,还能够更有效地参与到社会和组织的建设与发展中,为实现个人与集体的和谐与进步做出贡献。
一、观察与洞察
- 原文概念:观察对方来意,果断对话。
- 心理学解释:
- 情境分析:理解个体行为背后的环境因素。
- 非言语沟通:通过肢体语言和表情洞察真实情绪。
- 现代应用:
- 客户服务:通过观察客户行为预判需求。
- 销售个性化:定制化服务或产品以满足特定客户群体。
二、辨别真伪
- 原文概念:区分贤才与庸才。
- 心理学解释:
- 判断与决策:基于信息和经验做出选择。
- 多维思考:从不同角度评估个体能力和潜力。
- 现代应用:
- 人力资源管理:综合评估候选人的能力和适合度。
- 产品设计:创新思维满足多样化用户需求。
三、情绪与心态
- 原文概念:表面情绪与内心状态不一致。
- 心理学解释:
- 情绪不协调:外在表现与内在感受的偏差。
- 认知失调:信念与现实不一致引起的心理不适。
- 现代应用:
- 心理咨询:帮助个体识别和解决情绪问题。
- 危机管理:通过有效沟通减少公众的误解和恐慌。
四、交流策略
- 原文概念:控制交流节奏和力度。
- 心理学解释:
- 沟通技巧:适时调整语速、语调以影响听众。
- 信息加工:处理接收到的信息并做出反应。
- 现代应用:
- 谈判技巧:通过控制交流节奏达成有利协议。
- 公共演讲:清晰、有感染力的表达吸引听众。
五、言语节制
- 原文概念:言语不宜过多,避免失误。
- 心理学解释:
- 自我监控:管理自己在社交场合的表现。
- 自我呈现:塑造期望的形象和身份。
- 现代应用:
- 企业管理:领导层的言行对企业文化和形象有重要影响。
- 战略规划:明确传达企业目标和计划,增强内部一致性。
六、专注与清晰
- 原文概念:神态清爽、精神集中。
- 心理学解释:
- 注意力集中:在特定任务上的高度专注。
- 环境意识:对周围环境的敏感性和适应性。
- 现代应用:
- 教育和培训:提高学习效率和效果。
- 团队管理:培养团队成员对任务和环境的敏感性。
七、情绪状态
- 原文概念:气色和精神状态反映个体状态。
- 心理学解释:
- 非言语行为:通过外在表现理解内在心理状态。
- 认知限制:个体处理信息的能力有限。
- 现代应用:
- 医疗健康:通过观察病人的外在表现辅助诊断。
- 刑侦工作:利用细节观察揭露真相。
八、自信与社交风格
- 原文概念:自信的社交姿态可能隐藏深层含义。
- 心理学解释:
- 社会影响:个体行为受他人影响。
- 群体思维:在群体中形成的共同信念或行为。
- 现代应用:
- 职业发展:建立积极的自我形象提高职业竞争力。
- 个人品牌建设:塑造独特的个人形象吸引关注。
九、全面观察与倾听
- 原文概念:全神贯注观察和倾听以收集信息。
- 心理学解释:
- 传播效应:媒介特性影响信息传播效果。
- 社会学习理论:通过观察他人学习行为。
- 现代应用:
- 社交媒体营销:利用平台特性有效传播品牌信息。
- 数字广告:精准定位受众群体,提高广告效果。
十、决策与预测
- 原文概念:博观约取,慎重决策。
- 心理学解释:
- 多角度解决问题:从不同视角分析问题。
- 创造性思维:创新方法解决问题。
- 现代应用:
- 商业策略:综合市场信息制定发展策略。
- 市场预测:利用多角度分析预测市场趋势。
十一、社会舆论与误解
- 原文概念:社会舆论和误解对个体的影响。
- 心理学解释:
- 期望理论:个体行为受期望结果的影响。
- 损失厌恶:对损失的厌恶大于对收益的喜好。
- 现代应用:
- 社会运动:引导公众意见形成支持。
- 公共政策推广:通过教育减少误解,增加政策接受度。
十二、认知局限与智慧
- 原文概念:即使是智者也有认知局限。
- 心理学解释:
- 认知限制:个体处理信息的能力有界限。
- 批判性思维:质疑和分析信息以形成判断。
- 现代应用:
- 教育改革:培养学生的批判性思维能力。
- 终身学习:鼓励不断学习以适应知识更新。
十三、媒介的利用
- 原文概念:有效使用媒介进行沟通和影响。
- 心理学解释:
- 媒介效应:媒介选择和使用影响信息效果。
- 信息传播:信息在社会中的传播方式和效果。
- 现代应用:
- 广告策略:选择合适媒介提高广告吸引力。
- 公共关系:利用媒介建立和维护组织形象。
十四、情绪智力的培养
- 原文概念:情绪的调控和利用。
- 心理学解释:
- 情绪智力:识别、理解和管理自己和他人情绪的能力。
- 情绪调节:采取策略调整情绪以适应环境。
- 现代应用:
- 教育领域:培养学生的情绪智力,促进心理健康。
- 企业培训:提升员工情绪管理能力,增强团队协作。
十五、说服与影响
- 原文概念:通过言语和行为影响他人。
- 心理学解释:
- 说服技巧:运用各种手段使他人接受自己的观点。
- 社会影响力:个体在社会互动中对他人的影响。
- 现代应用:
- 营销推广:利用说服技巧提高产品销量。
- 领导力培养:提升领导者的影响力和说服力。
十六、人际关系的建立与维护
- 原文概念:与他人建立良好的关系。
- 心理学解释:
- 人际沟通:通过有效沟通建立和维护关系。
- 社交技巧:在社交场合中展现出的交往能力。
- 现代应用:
- 职场发展:建立良好的人际关系,提升职业竞争力。
- 社交网络:利用社交平台拓展人际关系,提高社交能力。
十七、自我认知与成长
- 原文概念:了解自己的优点和不足,不断成长。
- 心理学解释:
- 自我认知:对自身特点、能力和情感的认识。
- 自我成长:通过不断学习和反思提升自己。
- 现代应用:
- 个人发展规划:明确自身优势,制定合适的成长计划。
- 心理辅导:帮助个体认识自我,解决心理问题。
十八、心理防御机制
- 原文概念:面对挫折和压力时,个体的心理应对策略。
- 心理学解释:
- 心理防御:为了保护自我,采取的心理策略。
- 应激反应:面对压力时,个体的生理和心理反应。
- 现代应用:
- 压力管理:学会有效应对压力,保持心理健康。
- 心理援助:为遭受挫折和压力的个体提供心理支持。
十九、环境适应与心理弹性
- 原文概念:适应不同环境,保持心理平衡。
- 心理学解释:
- 环境适应:个体在不同环境中的适应能力。
- 心理弹性:面对逆境时,个体的心理恢复能力。
- 现代应用:
- 跨文化交际:学会在不同文化背景中沟通和适应。
- 应对危机:培养心理弹性,提高应对危机的能力。
二十、智慧与道德
- 原文概念:智慧与道德的相辅相成。
- 心理学解释:
- 道德发展:个体道德观念的形成和发展。
- 智慧品质:在面对复杂问题时,展现出的判断力和决策能力。
- 现代应用:
- 品德教育:培养学生的道德观念,塑造良好品德。
- 领导力培养:提升领导者的智慧品质,做出明智决策。
二十一、多元思维与创造力
- 原文概念:培养多元思维,激发创造力。
- 心理学解释:
- 创造性思维:运用创新方法解决问题的能力。
- 多元思维:从不同角度和领域思考问题。
- 现代应用:
- 创新教育:培养学生的创造性思维,提高创新能力。
- 产品研发:运用多元思维,开发新颖的产品。
二十二、跨领域学习与成长
- 原文概念:不断学习,拓展知识领域。
- 心理学解释:
- 终身学习:持续学习,适应不断变化的社会。
- 跨领域学习:从不同领域获取知识,丰富自己的认知。
- 现代应用:
- 专业发展:跨领域学习,提升自己的综合素质。
- 教育培训:提供多元化的学习资源,满足不同需求。
二十三、团队合作与共赢
- 原文概念:团结协作,实现共同目标。
- 心理学解释:
- 团队凝聚力:团队成员之间的紧密联系和相互支持。
- 团队合作:团队成员共同协作,完成任务。
- 现代应用:
- 企业管理:培养团队精神,提高企业凝聚力。
- 项目管理:有效组织团队,确保项目顺利进行。
二十四、文化传承与创新
- 原文概念:在传承文化的基础上,不断创新。
- 心理学解释:
- 文化认同:个体对自己所属文化的认同感。
- 创新动力:推动文化发展的内在动力。
- 现代应用:
- 文化产业:挖掘传统文化资源,创新发展模式。
- 教育培训:培养学生的文化认同,培养创新能力。
二十五、文化传承与创新
- 原文概念:在传承文化的基础上,不断创新。
- 心理学解释:
- 文化认同:个体对自己所属文化的认同感。
- 创新动力:推动文化发展的内在动力。
- 现代应用:
- 文化产业:挖掘传统文化资源,创新发展模式。
- 教育改革:在尊重传统的基础上,培养学生的创新精神和实践能力。
二十六、领导力与变革
- 原文概念:领导者的智慧与勇气,推动社会变革。
- 心理学解释:
- 领导力:影响和激励他人共同实现目标的能力。
- 变革管理:引导组织或社会适应和实施变革的过程。
- 现代应用:
- 社会领导:领导者通过愿景和策略引领社会变革。
- 企业转型:在快速变化的市场中,企业领导力对转型的推动作用。
二十七、冲突解决与和谐
- 原文概念:解决冲突,实现和谐共处。
- 心理学解释:
- 冲突管理:处理和解决人际或团体间冲突的能力。
- 和谐社会:个体和社会群体之间相互理解和支持的状态。
- 现代应用:
- 社区调解:通过调解解决社区内部的矛盾和冲突。
- 国际关系:通过外交手段解决国际争端,维护世界和平。
二十八、教育与启发
- 原文概念:通过教育启发智慧,培养人才。
- 心理学解释:
- 教育心理学:研究教育过程中学习者的心理活动和教育效果。
- 启发式教学:激发学习者主动思考和探索的教学方法。
- 现代应用:
- 教育创新:运用现代技术,如在线教育,提供个性化学习体验。
- 人才发展:通过终身学习和职业规划,培养和吸引人才。
二十九、健康与平衡
- 原文概念:追求身心的健康与平衡。
- 心理学解释:
- 心理健康:个体情感、心理和社会适应的良好状态。
- 生活质量:个体生活各个方面的满意度和幸福感。
- 现代应用:
- 健康促进:通过健康教育提高公众的健康意识和自我保健能力。
- 工作生活平衡:帮助员工平衡工作和个人生活,提高工作满意度和生产效率。
三十、社会责任与可持续发展
- 原文概念:个体和社会应承担的责任,以及长远的可持续发展。
- 心理学解释:
- 社会责任:个体或组织对社会和环境应尽的义务。
- 可持续发展:满足当前需求而不损害后代满足自身需求的能力。
- 现代应用:
- 企业社会责任:企业通过社会责任报告,展示其对社会的贡献。
- 环境保护:通过政策和技术创新,促进环境的可持续性。
Rocky Linux 折腾笔记
Rocky Linux Notes
👶基础环境
🧰 使能 sudo
执行
su # 切换到 root 用户
nano /etc/sudoers # 编辑 sudoers 文件
在 root ALL=(ALL) ALL
下面添加一行:
😀USERNAME😀
ALL=(ALL) ALL
保存并退出 nano: Ctrl + X -> Y -> Enter
验证
su $(whoami) # 切换回普通用户
sudo whoami # 验证是否成功使能 sudo
🖥️更改主机名
执行
sudo hostnamectl set-hostname `🖥️HOSTNAME🖥️` # 设置主机名
sudo nano /etc/hosts # 编辑 hosts 文件
在 127.0.0.1 localhost
下面添加一行:
127.0.0.1
🖥️HOSTNAME🖥️
保存并退出 nano: Ctrl + X -> Y -> Enter
验证
hostnamectl # 验证主机名是否成功更改
🌏dnf包管理器换源
执行
参考第三方镜像源列表,选择合适的cn镜像源,例如USTC 中科大
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/rocky|g' \
-i.bak \
/etc/yum.repos.d/rocky-extras.repo \
/etc/yum.repos.d/rocky.repo
sudo dnf makecache # 清理并重建缓存
🔄更新
sudo dnf -y upgrade dnf # 更新 dnf 包管理器
sudo dnf -y update # 更新系统软件包
☁️Samba
安装
sudo dnf -y install samba samba-common samba-client # 安装 samba
sudo mkdir -p /home/samba-share # 创建共享目录
sudo chmod -R 755 /home/samba-share # 设置共享目录权限
sudo chown -R nobody:nobody /home/samba-share # 设置共享目录所有者
sudo chcon -t samba_share_t /home/samba-share # 设置共享目录标签
sudo nano /etc/samba/smb.conf # 编辑 smb 配置文件
在文件中添加以下内容:
# See smb.conf.example for a more detailed config file or # read the smb.conf manpage. # Run 'testparm' to verify the config is correct after # you modified it. # # Note: # SMB1 is disabled by default. This means clients without support for SMB2 or # SMB3 are no longer able to connect to smbd (by default). [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = rocky-9 security = user map to guest = bad user passdb backend = tdbsam ntlm auth = true printing = cups printcap name = cups load printers = yes cups options = raw unix chardeet = UTF-8 [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes [printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775 [Shared] path = /home/samba-share browsable = yes writable = yes valid users = 😀USERNAME😀 guest ok = yes guest only = yes force create mode = 777 force directory mode = 777
sudo systemctl start smb nmb # 启动 samba 服务
sudo systemctl enable smb nmb # 开机自启 samba 服务
systemctl status smb nmb # 查看 samba 服务状态
sudo firewall-cmd --permanent --add-service=samba # 开放 samba 服务
sudo firewall-cmd --reload # 重载防火墙规则
sudo firewall-cmd --list-services # 查看开放的服务
sudo smbpasswd -a $(whoami) # 设置 samba 用户密码
sudo systemctl restart smb nmb --now # 重启 samba 服务
远程访问共享文件夹
Win+R -> smb://🖥️IP🖥️
/Shared -> 输入密码
💻RDP 远程桌面
安装
sudo dnf -y install epel-release # 安装 epel 源
sudo dnf makecache # 清理并重建缓存
sudo dnf -y install xrdp # 安装 xrdp
sudo systemctl start xrdp # 启动 xrdp 服务
sudo systemctl enable xrdp # 开机自启 xrdp 服务
systemctl status xrdp # 查看 xrdp 服务状态
sudo firewall-cmd --permanent --add-port=3389/tcp # 开放 3389 端口
sudo firewall-cmd --reload # 重载防火墙规则
sudo firewall-cmd --list-ports # 查看开放的端口
远程连接
Win+R -> mstsc -> 🖥️IP🖥️
添加标题栏最小化最大化按钮
安装
sudo dnf -y install gnome-tweaks
gnome-tweaks
在 gnome-tweaks 中启用 “Window Title Buttons” 选项。
GitHub 加速
Watt Toolkit / Steam++是一个包含多种 Steam 工具功能的工具箱,其中包含 GitHub 加速器。
安装
curl -sSL https://steampp.net/Install/Linux.sh | bash # 安装 Watt Toolkit
sudo cp /home/a/.local/share/Steam++/Plugins/Accelerator/SteamTools.Certificate.cer /etc/pki/ca-trust/source/anchors/ # 复制证书到系统信任库
sudo update-ca-trust extract # 刷新系统信任库
sudo systemctl restart NetworkManager # 重启网络管理器
openssl x509 -in /etc/pki/ca-trust/source/anchors/SteamTools.Certificate.cer -text -noout # 验证证书
Firefox 导入证书
设置->隐私与安全->安全->查看证书->导入
/home/😀USERNAME😀
/.local/share/Steam++/Plugins/Accelerator
Homebrew
Homebrew是一个开源的包管理器,可以帮助你安装命令行软件。
安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装 Homebrew
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/`😀USERNAME😀`/.zshrc # 配置环境变量
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" # 刷新环境变量
sudo dnf -y groupinstall 'Development Tools' # 安装开发工具
🐧fastfetch
fastfetch是类似于neofetch,但更快,因为主要是用C编写的。
安装
sudo dnf -y install fastfetch
验证
fastfetch
💪oh-my-zsh bash
oh-my-zsh是一个令人愉快的,开源的,社区驱动的框架,用于管理您的Zsh配置。它捆绑了数千个有用的功能,帮助程序,插件,主题和一些让你大喊的东西。
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # 安装 oh-my-zsh
nano ~/.zshrc # 编辑 zsh 配置文件
参考Settings配置,例如:
ZSH_THEME="darkblood"
plugins=(
colorize
command-not-found
compleat
copyfile
cp
dnf
docker
docker-compose
docker-machine
emoji
encode64
fzf
git
github
gitignore
git-lfs
history
history-substring-search
npm
pip
python
sudo
)
保存并退出 nano: Ctrl + X -> Y -> Enter
重新连接ssh
Ctrl+R:fzf + 历史搜索命令
Ctrl+T:fzf + 补全路径名
Alt+C:fzf + 改变工作路径
✏micro nano
micro是一款基于终端的文本编辑器,旨在易于使用和直观,同时还利用了现代终端的功能。它是一个单一的、包含电池的静态二进制文件,没有依赖关系;您可以立即下载并使用它!
安装
cd /usr/bin
sudo curl https://getmic.ro | bash
/usr/bin/micro --version
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias nano='/usr/bin/micro'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
nano ~/.zshrc # 验证 nano 命令是否成功映射到 micro
FNM
FNM是快速简单的Node.js版本管理器,Rust编写。
安装
brew install fnm
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
eval "$(fnm env --use-on-cd)"
source ~/.zshrc # 重新加载 zsh 配置文件
验证
fnm --version
🫥Node.js
Node.js是一个免费的、开源的、跨平台的JavaScript运行时环境,允许开发人员创建服务器、Web应用程序、命令行工具和脚本。
安装
fnm use --install-if-missing 22
验证
node -v
npm -v
pm2
pm2是一个守护进程管理器,可帮助您管理和保持应用程序全天候在线。
安装
npm install pm2 -g
🐍Python
miniconda是一个免费的conda最小安装程序。它是Anaconda的一个小型引导版本,只包含conda、Python、它们所依赖的包,以及少量其他有用的包(如pip、zlib等)。如果你需要更多的软件包,使用 conda install 命令从Anaconda的公共仓库中默认提供的数千个软件包中安装,或者从其他渠道安装,如conda-forge或bioconda。
安装
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh # 下载安装脚本
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 # 运行安装脚本
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash # 配置 conda 环境
~/miniconda3/bin/conda init zsh # 配置 conda 环境
验证
重新连接ssh
conda info --envs
conda activate base
python --version
🤡thefuck
thefuck是一个用于自动纠正命令行的工具,它可以帮助你避免敲错命令,并帮助你修复它们。
安装
brew install thefuck
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
eval "$(thefuck --alias)"
source ~/.zshrc # 重新加载 zsh 配置文件
验证
git bach
fuck
🧐bottom top
bottom一个可定制的跨平台的图形化进程/系统监视器的终端。
安装
sudo dnf copr enable atim/bottom -y && sudo dnf -y install bottom
验证
bottom
📘tldr man
tldr是一个由社区维护的命令行工具帮助页面的集合,旨在成为传统手册页的一个更简单、更易于访问的补充。
brew install tlrc
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias man='tldr'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
man docker
📃eza ls
eza是一个现代化的,维护的替代ls。
安装
sudo dnf -y install eza
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias ls='eza --color=always --long --git --no-filesize --icons=always --notime --no-user --no-permissions'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
ls
🚶♂️zoxide cd
zoxide是更聪明的cd命令,它能记住你最常用的目录,因此你只需敲几下键盘就能 "跳转 "到它们。
安装
sudo dnf -y install zoxide
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
eval "$(zoxide init --cmd cd zsh)"
source ~/.zshrc # 重新加载 zsh 配置文件
🚮trash-cli rm rmdir
trash-cli是一个命令行工具,它可以从命令行中删除文件或目录,并将它们放入回收站,而不是直接删除。
安装
sudo dnf -y install trash-cli
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加:
alias rm='trash-put'
alias rmdir='trash-put'
source ~/.zshrc # 重新加载 zsh 配置文件
😽bat cat
bat是类似 cat,但带有 git 集成和语法高亮。
安装
sudo dnf -y install bat
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias cat='bat'
source ~/.zshrc # 重新加载 zsh 配置文件
toolong
toolong是查看、跟踪、合并和搜索日志文件的终端应用程序(加上JSONL)。
安装
pipx install toolong
验证
tl --help
🔍fd find
安装
fd是一个快速且用户友好的文件搜索工具。
sudo dnf -y install fd-find
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias find='fd -HI'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
find passwd
🫳ripgrep grep
ripgrep是递归地搜索目录中的正则表达式模式,同时尊重你的gitignore。
安装
sudo dnf -y install ripgrep
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias grep='rg'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
grep passwd
🏓gping ping
gping是图表化的ping工具。
安装
sudo dnf copr enable atim/gping -y && sudo dnf install gping
zshrc 配置
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias ping='gping'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
ping 127.0.0.1
🐳 Docker
安装
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 添加 Docker 仓库
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 安装 Docker
sudo systemctl --now enable docker # 启动 Docker 服务
sudo usermod -a -G docker $(whoami) # 允许普通用户使用 Docker
验证
docker --version
docker run hello-world
docker ps -a
LazyDocker
LazyDocker是一个用于管理 Docker 容器的终端 UI 工具。
安装
docker run --rm -it -v \
/var/run/docker.sock:/var/run/docker.sock \
-v /etc/lazydocker:/.config/jesseduffield/lazydocker \
lazyteam/lazydocker
zshrc 配置
使用 lzdocker 命令代替 lazydocker 命令
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias lzdocker='docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /etc/lazydocker:/.config/jesseduffield/lazydocker lazyteam/lazydocker'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
lzdocker
Lazygit
Lazygit是一个用于管理 Git 仓库的终端 UI 工具。
安装
brew install jesseduffield/lazygit/lazygit
zshrc 配置
使用 lzgit 命令代替 lazygit 命令
nano ~/.zshrc # 编辑 zsh 配置文件
在文件中添加一行:
alias lzgit='lazygit'
source ~/.zshrc # 重新加载 zsh 配置文件
验证
lzgit -v
☁️Seafile
Seafile是一个开源的网盘软件,支持多种存储方式,包括本地硬盘、NAS、S3、Ceph、OSS等。
安装
sudo dnf -y install seafile-server
配置
sudo seahub-setup
验证
sudo systemctl start seafile
sudo systemctl enable seafile
☁️Alist smb ftp
Alist是一个支持多种存储的文件列表程序,使用 Gin 和 Solidjs。
安装
sudo docker run -d --restart=unless-stopped -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist:latest # 安装 Alist
sudo docker exec -it alist ./alist admin set 🔑ALISTPASSWORD🔑 # 设置 Alist 密码
sudo mkdir /etc/alist/alist-share # 创建共享目录
远程访问 Alist
http://ℹ️IPADDRESSℹ️
:5244
🕸️更多网页服务
sun-pannel
sun-pannel是一个服务器、NAS导航面板、Homepage、浏览器首页。
安装
sudo docker run -d --restart unless-stopped -p 3002:3002 \
-v ~/docker_data/sun-panel/conf:/app/conf \
-v /var/run/docker.sock:/var/run/docker.sock \
--name sun-panel \
hslr/sun-panel:beta
使用
http://ℹ️IPADDRESSℹ️
:3002/
1Panel
1Panel是新一代的 Linux 服务器运维管理面板。
安装
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
使用
http://ℹ️IPADDRESSℹ️
:ℹ️PORTℹ️
ONLYOFFICE
ONLYOFFICE是一款基于文档的协作办公套件,支持多种文件格式、多种协作模式。
安装
sudo docker run -i -t -d -p 8081:80 --restart unless-stopped -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
使用
http://ℹ️IPADDRESSℹ️
:8081/example/
Etherpad
Etherpad是一个实时的网络协作编辑器。
安装
sudo mkdir -p /docker/etherpad
sudo chmod -R 777 /docker/etherpad
cd /docker/etherpad
code docker-compose.yaml
在 docker-compose.yaml 文件中添加以下内容:
services: app: user: "0:0" image: etherpad/etherpad:latest tty: true stdin_open: true volumes: - plugins:/opt/etherpad-lite/src/plugin_packages - etherpad-var:/opt/etherpad-lite/var depends_on: - postgres environment: NODE_ENV: production ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin} DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4} DB_HOST: postgres DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad} DB_PASS: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin} DB_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432} DB_TYPE: "postgres" DB_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin} # For now, the env var DEFAULT_PAD_TEXT cannot be unset or empty; it seems to be mandatory in the latest version of etherpad DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- } DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false} SOFFICE: ${DOCKER_COMPOSE_APP_SOFFICE:-null} TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true} restart: always ports: - "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}" postgres: image: postgres:15-alpine environment: POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad} POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin} POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432} POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin} PGDATA: /var/lib/postgresql/data/pgdata restart: always # Exposing the port is not needed unless you want to access this database instance from the host. # Be careful when other postgres docker container are running on the same port # ports: # - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data/pgdata volumes: postgres_data: plugins: etherpad-var:
docker compose -f docker-compose.yaml up -d
使用
http://ℹ️IPADDRESSℹ️
:9001
🃏Docsify
Docsify是将一个或多个Markdown文件转换为网站,无需构建过程。
安装
npm i docsify-cli -g
sudo mkdir /usr/share/docsify-docs
sudo chmod -R 777 /usr/share/docsify-docs
docsify init /usr/share/docsify-docs
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
pm2 start `which docsify` -- serve /usr/share/docsify-docs
pm2 save
pm2 startup
http://ℹ️IPADDRESSℹ️
:3000/
Stirling-PDF
Stirling-PDF是一个强大的,本地托管的基于Web的PDF操作工具,使用Docker。它使您能够对PDF文件进行各种操作,包括拆分,合并,转换,重组,添加图像,旋转,压缩等。这个本地托管的Web应用程序已经发展到包含一套全面的功能,满足您的所有PDF要求。
安装
sudo docker run -d \
--restart=unless-stopped \
-p 8080:8080 \
-v /location/of/trainingData:/usr/share/tessdata \
-v /location/of/extraConfigs:/configs \
-v /location/of/logs:/logs \
-e DOCKER_ENABLE_SECURITY=false \
-e INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false \
-e LANGS=en_GB \
--name stirling-pdf \
frooodle/s-pdf:latest
使用
http://ℹ️IPADDRESSℹ️
:8080/
draw.io
draw.io是一个白板/绘图软件应用程序,支持多种图表类型,包括流程图、UML图、组织结构图、ER图等。
安装
sudo docker run -d -it --name="draw" --restart unless-stopped -p 8442:8080 jgraph/drawio
使用
http://ℹ️IPADDRESSℹ️
:8442/
Excalidraw
Excalidraw是一个开源的虚拟手绘风格的白板。协作和端到端加密。
安装
sudo docker run --restart unless-stopped -dit --name excalidraw -p 8443:80 excalidraw/excalidraw:latest
使用
http://ℹ️IPADDRESSℹ️
:8443/
it-tools
it-tools是开发人员和IT工作人员的有用工具集合。
安装
sudo docker run -d --name it-tools --restart unless-stopped -p 8765:80 corentinth/it-tools:latest
使用
http://ℹ️IPADDRESSℹ️
:8765/
libretranslate
libretranslate是一个开源的机器翻译API,支持多种语言。
安装
mkdir -p ~/libretranslate
wget --no-check-certificate https://raw.githubusercontent.com/LibreTranslate/LibreTranslate/main/run.sh -O ~/libretranslate/run.sh
cd ~/libretranslate
chmod +x run.sh
./run.sh # 测试运行
docker ps
docker stop `CONTAINER ID`
sudo docker run -d --restart=unless-stopped -ti -p 5000:5000 -v lt-local:/home/libretranslate/.local libretranslate/libretranslate
使用
http://ℹ️IPADDRESSℹ️
:5000/?source=auto&target=zh&q=
memos
memos是一个开源的、轻量级的笔记服务。轻松捕捉和分享您的好主意。
安装
sudo docker run -d --restart=unless-stopped --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable
使用
http://ℹ️IPADDRESSℹ️
:5230/
wekan
wekan是一个基于Web的看板应用,支持多种看板类型,包括看板、任务列表、日历、Kanban、组织结构图等。
安装
sudo docker run -d --restart=always --name wekan-db mongo:5
sudo docker run -d --restart=always --name wekan --link "wekan-db:db" -e "WITH_API=true" -e "MONGO_URL=mongodb://wekan-db:27017/wekan" -e "ROOT_URL=http://192.168.3.248:2000" -p 2000:8080 wekanteam/wekan:latest
使用
http://ℹ️IPADDRESSℹ️
:2000/
snapdrop
snapdrop是一个基于Web的跨平台文件共享应用程序,支持多种文件格式。
安装
docker run --restart unless-stopped -d -p 8444:80 linuxserver/snapdrop
使用
http://ℹ️IPADDRESSℹ️
:8444/
next-terminal
next-terminal是一个简单好用安全的开源交互审计系统,支持RDP、SSH、VNC、Telnet、Kubernetes协议。
安装
sudo mkdir -p /docker/next-terminal/data
sudo chmod -R 777 /docker/next-terminal/
cd /docker/next-terminal
code docker-compose.yaml
version: '3.3' services: guacd: image: dushixiang/guacd:latest volumes: - ./data:/usr/local/next-terminal/data restart: always next-terminal: image: dushixiang/next-terminal:latest environment: DB: sqlite GUACD_HOSTNAME: guacd GUACD_PORT: 4822 ports: - "8088:8088" volumes: - /etc/localtime:/etc/localtime - ./data:/usr/local/next-terminal/data restart: always
docker compose -f docker-compose.yaml up -d
使用
http://ℹ️IPADDRESSℹ️
:8088/
🖥️更多桌面应用程序
VSCode
VSCode是微软推出的开源编辑器,支持多种编程语言。
安装
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
sudo dnf check-update
sudo dnf -y install code
使用
code .
Firefox
Firefox是一款开源的网页浏览器。
安装
sudo dnf -y remove firefox # 卸载旧版本
cd ~/下载
wget -O firefox-latest.tar.bz2 "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=zh-CN"
sudo tar xvjf firefox-latest.tar.bz2 -C /usr/local
sudo ln -s /usr/local/firefox/firefox /usr/bin/firefox
firefox &
添加图标
nano ~/.local/share/applications/firefox.desktop
[Desktop Entry] Name=Firefox Comment=Web Browser Exec=/usr/local/firefox/firefox %u Icon=/usr/local/firefox/browser/chrome/icons/default/default128.png Terminal=false Type=Application Categories=Network;WebBrowser;
增强插件
ShyFox是一个非常害羞的小主题,将整个浏览器界面隐藏在窗口边框中
QQ是一款跨平台的即时通信工具。
安装
cd ~/下载
sudo dnf -y install ./QQ_x.x.x_xxxxxx_x86_64.rpm
Python 项目结构中的命名空间包,__init__.py 配合相对引用,绝对引用,以及 sys.path
在Python项目中,src目录通常是放置源代码的地方。在这个目录中,您可能会使用命名空间包、init.py文件配合相对引用或绝对引用来组织和管理您的代码。以下是一个示例,说明这些概念是如何在src目录中结合使用的:
项目结构如下:
myproject/
├── src/
│ ├── namespace_package/
│ │ ├── package1/
│ │ │ └── module1.py
│ │ └── package2/
│ │ └── module2.py
│ └── regular_package/
│ ├── __init__.py
│ ├── package1/
│ │ ├── __init__.py
│ │ └── module1.py
│ └── package2/
│ ├── __init__.py
│ └── module2.py
└── tests/
└── test_module1.py
命名空间包
命名空间包允许您将相关的包组织在同一个命名空间下,而不需要它们在同一个目录中。
优势
- 避免命名冲突:命名空间包允许您在全局命名空间中创建一个独特的区域,从而避免模块名冲突。
- 代码组织:有助于将相关的包组织在一起,即使它们分布在不同的目录中。
- 可扩展性:允许第三方开发者贡献代码到命名空间,而不会影响其他包。
劣势
- 复杂性:对于小型项目或初学者来说,命名空间可能会增加不必要的复杂性。
- 工具兼容性:一些旧的工具和库可能不支持没有__init__.py文件的包。
示例
namespace_package/module2
引用 namespace_package/module1
时,可以用以下方式:
# namespace_package/package2/module2.py
from namespace_package.package1 import module1
init.py 配合 相对引用
init.py
__init__.py
文件用于初始化包(如导入子模块、设置变量、定义包级别的属性和方法等),它可以是一个空文件,也可以包含初始化代码或元数据。
优势
- 包初始化:执行包级别的初始化代码,如配置设置、资源加载等。
- 明确性:清楚地标识一个目录是一个Python包。
- 可移植性:相对引用不依赖于项目的根目录,使得代码更加可移植。
劣势
- 冗余:在Python 3.3+中,命名空间包不需要__init__.py文件,因此它变成了一个可选的文件。
- 限制性:不能从主模块中使用相对引用。
- 潜在的混淆:对于复杂的代码库,相对路径可能会变得难以管理。
示例
导入子模块
如果包中有子模块,则可以将它们导入到 __init__.py
文件中,并使用相对引用导入。
regular_package/module2
引用 regular_package/module1
时,可以用以下方式:
# regular_package/package2/module2.py
from ..package1 import module1
设置变量
定义元数据变量和包级别的变量,这些变量可以在包中的所有模块中使用。
元数据变量是用来描述模块或包的属性的变量。它们通常用于存储关于模块或包的信息,如作者、版本、许可证等。这些变量通常不会在代码中直接访问,它们更多是用于文档和工具的元信息。
包级别的变量是在包的顶层定义的变量,它们可以在包内的所有模块**享和访问。这些变量通常用于存储包的全局状态或配置设置。包级别的变量可以是任何类型的数据,如字符串、列表、字典、函数、类等。
# regular_package/package1/__init__.py
# 元数据变量
__author__ = "Author" # 项目作者
# __email__ = "[email protected]" # 项目作者邮箱
__version__ = "0.1.0" # 包版本
__license__ = "GPLv3" # "MIT", "BSD", "Apache", "GPLv3"
# __maintainer__ = "Maintainer" # 项目维护者
# __status__ = "Development" # "Prototype", "Development", "Production"
# 包级别的变量
global_config = {
"debug": True,
"log_level": "INFO", # INFO, DEBUG, ERROR, WARNING, CRITICAL
}
在其他模块中,您可以这样访问这个变量:
# regular_package/package1/module1.py
from . import global_config
def do_something():
if global_config["debug"]:
print("Debug mode is on")
定义包级别的属性和方法
定义包级别的属性和方法,这些属性和方法可以在包中的所有模块中使用。
包级别的属性和方法可以帮助您组织和管理包中的代码,并提供包的公共接口。
# regular_package/package1/__init__.py
class PackageClass:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def do_something(self):
print(f"arg1: {self.arg1}, arg2: {self.arg2}")
def package_function():
print("Package function called")
在其他模块中,您可以这样访问这个类:
# regular_package/package1/module1.py
from . import PackageClass, package_function
obj = PackageClass("value1", "value2")
obj.do_something()
setattr(obj, "new_attr", "new_value")
getattr(obj, "new_attr") # "new_value"
getattr(obj, "non_existent_attr", "default_value") # "default_value"
package_function()
绝对引用
绝对引用是指使用完整的包路径来导入模块或包。
优势
- 明确性:清楚地指定了模块或包的完整路径。
- 一致性:在大型项目中,绝对引用可以提供一致的导入方式。
劣势
- 依赖性:依赖于项目的根目录结构,当项目结构发生变化时,可能需要更新导入路径。
- 维护:在项目规模扩大时,维护所有绝对路径可能会变得困难。
示例
regular_package/module2
引用 regular_package/module1
和 namespace_package/module1
时,可以用以下方式:
# regular_package/package2/module2.py
from src.regular_package.package1 import module1 as regular_module1
from src.namespace_package.package1 import module1 as namespace_module1
你可能还见过这样的写法:
# regular_package/package2/module2.py
from regular_package.package1 import module1 as regular_module1
from namespace_package.package1 import module1 as namespace_module1
在Python中,导入语句通常需要指定导入的模块或包的完整路径,除非导入的模块或包已经在系统的模块搜索路径(sys.path)中。
from src.namespace_package.package1 import module1
这条语句指定了从src
目录下的namespace_package
包中的package1
子包导入module1
模块。
如果您尝试使用 from namespace_package.package1 import module1
而不包含 src
,那么Python解释器将会在sys.path中搜索 namespace_package
,而不是从 src/namespace_package
开始。
这可能会导致以下几种情况:
- 成功导入:如果
src
目录或其上级目录在sys.path中,并且没有名为namespace_package
的冲突包,那么这条简化的导入语句可能成功。但是,这种做法依赖于外部环境,并且可能导致代码在不同的环境中表现不一致。 - 导入错误:如果sys.path中没有包含正确的路径,或者有其他名为
namespace_package
的包,那么Python可能会导入错误的模块,导致ImportError
或其他更难以诊断的错误。
为了确保代码的可移植性和一致性,建议使用完整的路径来导入模块,尤其是在较大的项目中,或者在项目结构可能被其他包或环境变量影响的情况下。这样做可以避免潜在的导入问题,并确保模块的来源是清晰和明确的。
因此,除非您有充分的理由相信 namespace_package
会在sys.path中正确地解析,否则建议使用完整的导入路径 from src.namespace_package.package1 import module1
。
sys.path
sys.path
是一个列表,它包含Python解释器搜索模块的路径。
当导入一个模块时,Python解释器会搜索sys.path
列表中的路径,并在这些路径中寻找模块。
如果模块的导入路径不是以src
开头,则可以将其添加到sys.path
列表中,以便Python解释器可以找到它。
import sys
print(sys.path)
src 会自动加入到sys.path?
如果您是在IDE中工作,比如PyCharm
或VSCode
,或是在一个特定的项目环境中运行代码,比如使用virtualenv
或conda
环境,那么src
目录可能会被自动加入到sys.path
中,尤其是如果您使用了一些自动化的工具或框架,它们可能会配置sys.path
以包含项目的源代码目录。
手动添加src到sys.path
from pathlib import Path
import sys
# 获取当前工作目录
current_dir = Path.cwd()
# 获取src目录的路径
src_dir = current_dir / 'src'
# 将src目录添加到sys.path中
sys.path.append(str(src_dir))
# 现在可以导入src目录下的模块
from module import my_function
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.