王培顺的博客&WangPeishun’s Blog

wangpeishun 发布的文章

Windows 徽标键键盘快捷方式

Windows 徽标键: 打开或关闭“开始”菜单。

Windows 徽标键 + A:打开操作中心。

Windows 徽标键 + B:将焦点设置到通知区域。

Windows 徽标键 + C:在侦听模式下打开 Cortana。(注:此快捷方式默认情况下处于关闭状态。 若要打开它,请选择“开始” > “设置” > Cortana,并打开“当我按 Windows 徽标键 + C 时,让 Cortana 听我的命令”下的切换键。)

Windows 徽标键 + Shift + C:打开超级按钮菜单。

Windows 徽标键 + D:显示和隐藏桌面。

Windows 徽标键 + Alt + D:显示和隐藏桌面上的日期和时间。

Windows 徽标键 + E:打开文件资源管理器。

Windows 徽标键 + F:打开反馈中心并获取屏幕截图。

Windows 徽标键 + G:打开游戏栏(当游戏处于打开状态时)。

Windows 徽标键 + H:开始听写。

Windows 徽标键 + I:打开设置。

Windows 徽标键 + K:打开“连接”快速操作。

Windows 徽标键 + L:锁定你的电脑或切换帐户。

Windows 徽标键 + M:最小化所有窗口。

Windows 徽标键 + P:选择演示显示模式。

Windows 徽标键 + Ctrl + Q:打开快速助手。

Windows 徽标键 + R:打开“运行”对话框。

Windows 徽标键 + S:打开搜素。

Windows 徽标键 + Shift + S:获取部分屏幕的屏幕截图。

Windows 徽标键 + T:循环浏览任务栏上的应用。

Windows 徽标键 + U:打开轻松使用设置中心。

Windows 徽标键 + V:打开剪贴板。 (若要激活此快捷方式,请依次选择“开始”菜单 > “设置” > “系统” > “剪贴板”,然后打开“剪贴板历史记录”下的切换开关。)

Windows 徽标键 + Shift + V:循环浏览通知。

Windows 徽标键 + X:打开“快速链接”菜单。

Windows 徽标键 + 句号 (.) 或分号 (;):打开表情符号面板。

Windows 徽标键 + 逗号 (,):临时速览桌面。

Windows 徽标键 + Pause 键:显示“系统属性”对话框。

Windows 徽标键 + Ctrl + F:搜索电脑(如果已连接到网络)。

Windows 徽标键 + Shift + M:还原桌面上的最小化窗口。

Windows 徽标键 + Tab:打开任务视图。

Windows 徽标键 + 向上键:最大化窗口。

Windows 徽标键 + 向下键:自适应当前窗口大小。

Windows 徽标键 + 向左键:桌面窗口左侧最大化(半屏)。

Windows 徽标键 + 向右键:桌面窗口右侧最大化(半屏)。

Windows 徽标键 + Home:最小化活动桌面窗口之外的所有窗口(在第二个笔划时还原所有窗口)。

Windows 徽标键 + Shift + 向左键或向右键:将桌面上的应用或窗口从一台显示器移动至另一台显示器。

Windows 徽标键 + 空格键:切换输入法语言和键盘布局。

Windows 徽标键 + Ctrl + 空格键:对之前选择的输入所做的更改。

Windows 徽标键 + Ctrl + Enter:打开“讲述人”。

Windows 徽标键 + 等号 (=):打开“放大镜”。

Windows 徽标键‌ + Ctrl + Shift + B:从空白屏幕或黑屏中唤醒。

linux 使用vim修改文件内容

1.进入文件:vim 文件名

vim /etc/httpd/httpd.conf

2.查找待修改内容位置 :

(1)shift+“:”,使文件变成可查询状态

(2)输入 / +查询内容 (eg 查询Directory参数,即 /Directory

eg 找到Directory参数,注释掉Require all denied添加Require all granted

3.找到位置后修改:按键盘 i 键 即变成可编辑状态

4.修改文件内容后退出:按ESC键

5.保存修改:

(1)shift+“:”,使文件变成可查询状态

(2)输入 wq!

如果不保存修改,可:

(1)shift+“:”,使文件变成可查询状态

(2)输入 q!

进入MySql控制台

首先进入到MySql安装目录的Bin文件夹下
C:\Program Files\MySQL\MySQL Server 6.0\bin>
第一种
然后执行命令 mysql -uuser -ppassword database
比如用户名为root,密码为mysql,数据库为test
命令如下
mysql -uroot -pmysql test
也可以直接执行mysql -uroot –pmysql
然后use test(数据库名),使用该数据库
第二种
执行命令mysql -u root –p
键入密码即可

退出控制台

先用\c清屏,然后用exit退出

连接远程MySql

连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)

修改密码

注意:这个命令要在Bin文件目录下执行
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1.给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2.再将root的密码改为djg345。
mysqladmin -u root -p ab12 password djg345

增加新用户

(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
1.增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on . to [email=test1@”%]test1@”%[/email]” Identified by “abc”;
但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。
2.增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),
这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;

MySql数据库操作技巧

MYSQL中有关数据库方面的操作。注意:首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1.如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2.你可以使用光标上下键调出以前的命令。
二、显示命令
1.显示当前数据库服务器中的数据库列表:
mysql> SHOW DATABASES;
注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2.显示数据库中的数据表:
mysql> USE 库名;
mysql> SHOW TABLES;
3.显示数据表的结构:
mysql> DESCRIBE 表名;
4.建立数据库:
mysql> CREATE DATABASE 库名;
5.建立数据表:
mysql> USE 库名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
6.删除数据库:
mysql> DROP DATABASE 库名;
7.删除数据表:
mysql> DROP TABLE 表名;
8.将表中记录清空:
mysql> DELETE FROM 表名;
9.显示表中的记录:
mysql> SELECT * FROM 表名;
10.往表中插入记录:
mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);
11.更新表中数据:
mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';
12.用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;
13.导入.sql文件命令:
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;
14.命令行修改root密码:
mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;
15.显示use的数据库名:
mysql> SELECT DATABASE();
16.显示当前的user:
mysql> SELECT USER();
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ‘深圳’,
year date
); //建表结束
//以下为插入字段
insert into teacher values(”,’allen’,'大连一中’,'1976-10-10′);
insert into teacher values(”,’jack’,'大连二中’,'1975-12-23′);
如果你在mysql提示符键入上面的命令也可以,但不方便调试。
(1)你可以将以上命令原样写入一个文本文件中,假设为school.sql,然后复制到c:\下,并在DOS状态进入目录[url=file://\mysql\bin]\mysql\bin[/url],然后键入以下命令:
mysql -uroot -p密码 < c:\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
(2)或者进入命令行后使用 mysql> source c:\school.sql; 也可以将school.sql文件导入数据库中。
四、将文本数据转到数据库中
1.文本数据应符合的格式:字段数据之间用tab键隔开,null值用[url=file://\n]\n[/url]来代替.例:
3 rose 大连二中 1976-10-10
4 mike 大连一中 1975-12-23
假设你把这两组数据存为school.txt文件,放在c盘根目录下。
2.数据传入命令 load data local infile “c:\school.txt” into table 表名;
注意:你最好将文件复制到[url=file://\mysql\bin]\mysql\bin[/url]目录下,并且要先用use命令打表所在的库。
五、备份数据库:(命令在DOS的[url=file://\mysql\bin]\mysql\bin[/url]目录下执行)
1.导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3.导出一个数据库结构
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

解锁与锁表

解锁
第一种
show processlist;找到锁进程,kill。
第二种
mysql>UNLOCK TABLES;
锁表
锁定数据表,避免在备份过程中,表被更新
mysql>LOCK TABLES tbl_name READ;
为表增加一个写锁定:
mysql>LOCK TABLES tbl_name WRITE;

两种工具具有docker本身部署。
一、portainer
Portainer是一个可视化的Docker操作界面,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。
1.下载portainer的docker映像

docker pull portainer/portainer

2.运行portainer

docker run -d -p 8088:9000 \--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

3.访问
浏览器访问:http://服务器公网IP:8088

二、docker.ui
1.使用 ssh部署

docker run --restart always --name docker.ui -d -v /var/run/docker.sock:/var/run/docker.sock -p 8999:8999 joinsunsoft/docker.ui

2.访问 ip:8999 ,默认账号 ginghan ,默认密码 123456

教育教学理论指导和支撑教育教学实践,是教育教学活动的思想基础和行动指南。它研究教育教学规律,提出教育教学目标、内容、方法、手段、评价等方面的原理和策略。

一、建构主义教学理论

二、多元智能理论

三、范例教学理论

四、掌握教学理论

五、合作教学理论

六、结构主义理论

七、发展性教育理论

八、过程最优化理论

九、非指导性教育理论

一、Docker
1.删除Docker旧版本

sudo yum remove docker \ 
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-selinux \
                docker-engine-selinux \
                docker-engine

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
# 如果 yum 报告未安装这些软件包,则可以忽略。

2.安装必要的工具

# 执行一下命令即可
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加软件源信息

# 添加软件源可以加快下载速度,因为默认的镜像下载是国外的链接。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#  sudo的单词为super user do  表示以超级管理员的权限执行相关语句
#  su的单词为switch user   表示切换用户

4.安装docker社区版

yum install -y docker-ce

默认是未启动状态
5.启动docker

sudo systemctl start docker

关闭和重启命令
重启Docker服务:systemctl restart docker / service docker restart
关闭Docker服务:docker service docker stop / docker systemctl stop docker

6.通过运行hello-world镜像来验证是否正确安装了Docker Engine-Community。

// 拉取镜像
sudo docker pull hello-world
// 执行hello-world
sudo docker run hello-world

7.删除docker
删除安装包:

yum remove docker-ce

删除镜像、容器、配置文件等内容:

rm -rf /var/lib/docker

8.docker其他常见命令

搜索仓库镜像:docker search 镜像名
拉取镜像:docker pull 镜像名
查看正在运行的容器:docker ps
查看所有容器:docker ps -a
删除容器:docker rm container_id
查看镜像:docker images
删除镜像:docker rmi image_id
启动(停止的)容器:docker start 容器ID
停止容器:docker stop 容器ID
重启容器:docker restart 容器ID
启动(新)容器:docker run -it ubuntu /bin/bash
进入容器:docker attach 容器ID或docker exec -it 容器ID /bin/bash,推荐使用后者。
更多的命令可以通过docker help命令来查看。

二、SRS
使用Docker启动SRS

docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
    registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/docker.conf

系统应用程序
calc - 启动计算器
charmap - 启动字符映射表
chkdsk - Chkdsk磁盘检查
cleanmgr - 磁盘清理
clipbrd - 剪贴板查看器
cmd.exe - CMD命令提示符
dvdplay - DVD播放器
dxdiag - DirectX诊断工具
eudcedit - 造字程序(专用字符编辑程序)
explorer - 资源管理器
iexpress - 木马捆绑工具,系统自带
magnify - 放大镜
mplayer2 - 简易widnows media
player msconfig - 系统配置
mspaint - 画图板
mstsc - 远程桌面连接
narrator - 屏幕“讲述人”
notepad - 打开记事本
nslookup - IP地址侦测器
osk - 打开屏幕键盘
regedit - 注册表编辑器
regedt32 - 注册表编辑器
sndrec32 - 录音机
sndvol32 - 音量控制程序
taskmgr - 任务管理器
winchat - XP自带局域网聊天
write - 写字板
dcomcnfg - 系统组件服务
ddeshare - DDE共享设置
nslookup - 网络管理的工具向导
ntbackup - 系统备份和还原
mobsync - 同步中心
winmsd - 系统信息
winver - 检查Windows版本
wiaacmgr - 扫描仪和照相机向导
wscript - windows脚本宿主设置
wupdmgr - windows更新程序

管理控制台管理单元文件
mmc - 管理控制台
certmgr.msc - 证书管理
ciadv.msc - 索引服务程序
comexp.msc - 组件服务
compmgmt.msc - 计算机管理
devmgmt.msc - 设备管理器
dfrg.msc - 磁盘碎片整理程序
diskmgmt.msc - 磁盘管理
eventvwr.msc - 事件查看器
fsmgmt.msc - 共享文件夹管理器
gpedit.msc - 组策略管理器(本地组策略编辑器)
lusrmgr.msc - 本机用户和组
ntmsmgr.msc - 移动存储管理器
ntmsoprq.msc - 移动存储管理员操作请求
perfmon.msc - 性能监视器
rsop.msc - 组策略结果集
secpol.msc - 本地安全策略
services.msc - 本地服务设置
wmimgmt.msc - windows管理体系结构WMI(控制台根节点\WMI控件)
————————————————
原文链接:https://blog.csdn.net/u012995964/article/details/52549778

Dream It Possible

一首很励志的歌,很动人的调子。很美的词。

I will run, I will climb, I will soar.
我奔跑,我攀爬,我会飞翔。
I'm undefeated
永不言败
Jumping out of my skin, pull the chord
跳出我的皮肤,拨弄琴弦
Yeah I believe it
哦,我相信。
The past, is everything we were don't make us who we are
往昔,逝去的光阴不会决定现在
So I'll dream, until I make it real, and all I see is stars
所以我们梦想,直到变成真,看到满天星光
It's not until you fall that you fly
不怕跌倒,所以飞翔
When you dreams come alive you're unstoppable
当你的梦想成真,你是不可阻挡
Take a shot, chase the sun, find the beautiful
挥着翅膀,追逐太阳,寻找美丽
We will glow in the dark turning dust to gold
在黑暗中闪耀点石成金
And we'll dream it possible
我们会梦想成真
I will chase, I will reach, I will fly
我追逐,我奔驰,我要飞翔
Until I'm breaking, until I'm breaking
直到坠落,直到崩溃
Out of my cage, like a bird in the night
走出我的囚笼,像在黑夜里的莺
I know I'm changing, I know I'm changing
我知道我在变化,在蜕变
In,into something big, better than before
变成无比强大,从未有过
And if it takes, takes a thousand lives
如果需要牺牲,需要无数的生命
Then it's worth fighting for
那值得去奋斗
It's not until you fall that you fly
不怕跌倒,所以飞翔
When you dreams come alive you're unstoppable
当你的梦想成真,你是不可阻挡
Take a shot, chase the sun, find the beautiful
挥着翅膀,追逐太阳,寻找美丽
We will glow in the dark turning dust to gold
在黑暗中闪耀点石成金
And we'll dream it possible
我们会梦想成真
From the bottom to the top
从山谷到巅峰
We're sparking wild fire's
我们正在迸发野火
Never quit and never stop
永不放弃,永不停止
The rest of our lives
点燃未来
From the bottom to the top
从山谷到巅峰
We're sparking wild fire's
我们正在迸发野火
Never quit and never stop
永不放弃,永不停止
It's not until you fall that you fly
不怕跌倒,所以飞翔
When you dreams come alive you're unstoppable
当你的梦想成真,你是不可阻挡
Take a shot, chase the sun, find the beautiful
挥着翅膀,追逐太阳,寻找美丽
We will glow in the dark turning dust to gold
在黑暗中闪耀点石成金
And we'll dream it possible
我们会梦想成真

字符串的首字母大写,不能使用:

  1. toUpperCase()
  2. toLowerCase()

例子:

"string".capitalize() === "String" "hello World".capitalize() === "Hello World" "i love codewars".capitalize() === "I love codewars" "This sentence is already capitalized".capitalize() === "This sentence is already capitalized" "0123the first character of this sentence is not a letter".capitalize() === "0123the first character of this sentence is not a letter"

这次依旧没有我的答案。
1.

String.prototype.capitalize = function () {
let c = this.charCodeAt(0);
if (97 &lt;= c &amp;&amp; c &lt;= 122) c -= 32;
return String.fromCharCode(c) + this.slice(1);
}

2.

String.prototype.capitalize = function(){
var map = {
a : 'A',
b : 'B',
c : 'C',
d : 'D',
e : 'E',
f : 'F',
g : 'G',
h : 'H',
i : 'I',
j : 'J',
k : 'K',
m : 'M',
n : 'N',
o : 'O',
p : 'P',
q : 'Q',
r : 'R',
s : 'S',
t : 'T',
u : 'U',
v : 'V',
w : 'W',
x : 'X',
y : 'Y',
z : 'Z'
};
return map[this[0]] ? map[this[0]] + this.slice(1) : this.toString();
};

3.

String.prototype.capitalize = function() {
return this.replace(/^[a-z]/, c =&gt; String.fromCharCode(c.charCodeAt(0)-32))
}

4.

String.prototype.capitalize = function() {
return /^[a-z]/.test(this) ? this.replace(this.charAt(0), String.fromCharCode(this.charCodeAt(0) - 32)) :
this.toString();
}

5.

String.prototype.capitalize = function()
{
var searchArray = 'abcdefghijklmnopqrstuvwxyz';
var replaceArray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var array = this.split('');
var index = searchArray.indexOf(array[0]);
if (index &gt; -1) array[0] = replaceArray[index];
return array.join('');
}

6.

String.prototype.capitalize = function() {
var alf = 'abcdefghijklmnopqrstuvwxyz';
var alfC = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var self = this.split('');
if (alf.indexOf(self[0]) != -1) {
self[0] = alfC[alf.indexOf(self[0])];
}
return self.join('');
}

7.

String.prototype.capitalize = function() {
if (this.charCodeAt(0) &gt;= 97 &amp;&amp; this.charCodeAt(0) &lt;= 122) {
return (String.fromCharCode(this.charCodeAt(0) - 32) + this.slice(1));
}

return this.toString();
}

8.

String.prototype.capitalize = function() {
if (this.charCodeAt() &lt; 97 || this.charCodeAt() &gt; 122) return this.toString();
return String.fromCharCode(this.charCodeAt() - 32) + this.substring(1);
};

反向顺序输出字符串(单个单词不反向)

reverse('Hello World') === 'World Hello'
reverse('Hi There.') === 'There. Hi'

My Answer:

function reverse(string){
var mystr = string.split(' ');
var result = [];
for(var i =0;i&lt;mystr.length;i++){
result[i] = mystr[mystr.length-1-i];
}
return result.join(' ');
}

Others:

1.

function reverse(string){
return string.split(' ').reverse().join(' ');
}

2.

reverse = s =&gt; s.split(' ').reverse().join(' ')

3.

function reverse(string){
var original = string;
var rev = original.split(' ').reverse().join(' ');
return rev;
}

4.

const reverse = words =&gt; words.split(' ').reverse().join(' ')

5.

function reverse(string){
return string.replace(/\s+/g, ' ').split(' ').reverse().join(' ');
}

6.

function reverse(string){
// validate input
if (typeof(string) !== 'string') throw new Error('reverse: parameter is not a string!');
// just use the dumb way out since it's jabbascripps
return string.split(' ').reverse().join(' ');
}

7.

function reverse(string){
if(typeof string === 'string')
{
var result = '';
string = string.split(' ');
for(var i = string.length ; i &gt; 0; i--)
(i != 1 ? (result = result + string[i - 1] + ' '):(result = result + string[i - 1]));
}
return result;
}