背景:有时在删除一些如ghost文件生成的~1这样的文件夹时,会提示没有权限,什么原因呢:1)是因为你不是administrator运行,也就不是最高权限在运行。2)这个文件夹是在之前重装系统时你有权的,但是后来重装后同样的用户Users但是uid不一样(姑且这样说),linux上有这个问题,估计windows下也有这个问题。
一)
怎么办呢?
就是在目录上加上当前用户Users的权限后,再删除就Ok了。
二)
怎么加呢?
(1)在目录上点右键后属性。
(2)点选安全后,在右下角点高级。
(3)点添加出来一个界面后,点主体[选择主体]。
(4)选择主体弹出来一个框里面,再点高级(A)...
(5)立即查找,找到Users,双击后添加进去点确定。
(6)回到点主体[选择主体]这个框里发现有Users这个用户了。下面有基本权限,咱勾选上【V】完全控制,点确认。
(7)于是在权限条目下面多了一个Users用户,且是完全控制的,完全控制也就是拥有所有对目录操作的权限,点确定才真的加上了,否则还是没加上哟。
这些步骤,做后,咱也就可以正常删除该目录了。
上面步骤涉及图片截图方面参考链接:http://jingyan.baidu.com/article/afd8f4de9fd3d634e386e950.html
一)
怎么办呢?
就是在目录上加上当前用户Users的权限后,再删除就Ok了。
二)
怎么加呢?
(1)在目录上点右键后属性。
(2)点选安全后,在右下角点高级。
(3)点添加出来一个界面后,点主体[选择主体]。
(4)选择主体弹出来一个框里面,再点高级(A)...
(5)立即查找,找到Users,双击后添加进去点确定。
(6)回到点主体[选择主体]这个框里发现有Users这个用户了。下面有基本权限,咱勾选上【V】完全控制,点确认。
(7)于是在权限条目下面多了一个Users用户,且是完全控制的,完全控制也就是拥有所有对目录操作的权限,点确定才真的加上了,否则还是没加上哟。
这些步骤,做后,咱也就可以正常删除该目录了。
上面步骤涉及图片截图方面参考链接:http://jingyan.baidu.com/article/afd8f4de9fd3d634e386e950.html
背景:win10一堆无用的东西,在PC这块儿,得删除掉。
卸载预安装应用的方法就是你在开始菜单中输入“P”字母,系统就会自动反馈回“Windows PowerShell”应用程序,然后右键点击“以管理员身份运行”,会跳出蓝色的批处理界面,随后根据你的个人需求,输入相应的代码就能够轻松完成 Windows 10预安装应用的卸载工作。
From:http://www.111cn.net/sys/361/91862.htm
卸载预安装应用的方法就是你在开始菜单中输入“P”字母,系统就会自动反馈回“Windows PowerShell”应用程序,然后右键点击“以管理员身份运行”,会跳出蓝色的批处理界面,随后根据你的个人需求,输入相应的代码就能够轻松完成 Windows 10预安装应用的卸载工作。
From:http://www.111cn.net/sys/361/91862.htm
[实践OK]使用yum时rpmdb open failed解决方案,RPM数据库损坏的解决方法,重建立了rpm库里的记录。
Unix/LinuxC技术 jackxiang 2016-9-28 11:05
背景:安装软件包的时候,被我手动终止了,可能导致yum的数据库事务啥的存在问题:
问题描述:
1、前提条件:安装软件包的时候,被我手动终止了
[root@dhcp yum.repos.d]# yum clean all
rpmdb: Thread/process 4541/140619363587840 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
[root@dhcp yum.repos.d]# yum makecache
rpmdb: Thread/process 4541/140619363587840 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
2、根据提示可以知道rpm数据库被损坏,如是按照下面的方法进行重建
[root@dhcp yum.repos.d]# cd /var/lib/rpm/
[root@dhcp rpm]# ls
Basenames __db.004 Name Pubkeys Triggername
Conflictname Dirnames Obsoletename Requirename
__db.001 Filedigests Packages Requireversion
__db.002 Group Providename Sha1header
__db.003 Installtid Provideversion Sigmd5
[root@dhcp rpm]# rm __db.* -rf
[root@dhcp rpm]# rpm --rebuilddb
[root@dhcp rpm]# yum clean all
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, product-id,
: refresh-packagekit, security, subscription-manager, tmprepo,
: verify, versionlock
Updating certificate-based repositories.
Unable to read consumer identity
Loading support for Red Hat kernel ABI
Cleaning repos: rhel-source
Cleaning up Everything
0 delta-package files removed, by presto
[root@dhcp rpm]# yum update
Loaded plugins: aliases, changelog, downloadonly, kabi, presto, product-id,
: refresh-packagekit, security, subscription-manager, tmprepo,
: verify, versionlock
Updating certificate-based repositories.
Unable to read consumer identity
Loading support for Red Hat kernel ABI
rhel-source | 4.0 kB 00:00 ...
rhel-source/primary_db | 3.1 MB 00:00 ...
Setting up Update Process
No Packages marked for Update
来自:http://blog.sina.com.cn/s/blog_6fb8aaeb0101aegn.html
SecureCrt的ButtonBar功能添加与使用
Unix/LinuxC技术 jackxiang 2016-9-26 10:34
背景:这个buttonbar的功能主要是对一些经常执行又较长的一些命令进行浓缩,以更快捷的方式进行操作linux系统的shell。
经实践发现这个功能并不能批量,像view->command windows,里send command to all session,功能一样能批量给所有tab执行相同命令,但已经足够了。
http://jingyan.baidu.com/article/6b97984dce10981ca3b0bf45.html
经实践发现这个功能并不能批量,像view->command windows,里send command to all session,功能一样能批量给所有tab执行相同命令,但已经足够了。
http://jingyan.baidu.com/article/6b97984dce10981ca3b0bf45.html
Vim 8.0横空出世
Unix/LinuxC技术 jackxiang 2016-9-25 22:40
RHEL/CentOS和Fedora
delete old vim rpm pkg:
yum remove vim* -y
异步任务
以前在 Vim 里面调用外部一个程序(比如编译,更新 tags,Grep ,检查错误,git/svn commit)等,只能傻等着外部程序结束才能返回 Vim ,这也是 Vim 最受 emacs 诟病的地方,限制了很多可能性,导致NeoVim当年发布时,最先引入的新功能就是异步机制。如今 8.0中,可以在后台启动各种长时间运行的任务,并把输出重定向到 VimScript 里面的某个 callback 函数,和 nodejs的子进程管理模块类似,使得你可以一边浏览/编辑文件,一遍运行各种长时间编译类任务可以同时运行,并且把输出同步到 Vim 里的某个窗口中。
时钟机制
可以在 VimScript 中创建时钟,比如每隔100ms调用一下某个 VimScript 里面的函数,这样方便你定时检查各种状态,比如某项工作是否做完,或者某个与服务器的通信如何了。有这个机制配合 Python 可以实现纯脚本的终端,或者实现网络交互,实时读取一些股票信息并且显示在右下角之类的,这给 Vim 插件开发带来了更多可能性。
网络机制
可以用纯 VimScript + socket + json 和外部支持json的服务器进行通信,比如通知远程服务器做一件什么事情,或者查询个什么东西,不过使用 Timer + python 也可以达到同样的效果。
delete old vim rpm pkg:
yum remove vim* -y
异步任务
以前在 Vim 里面调用外部一个程序(比如编译,更新 tags,Grep ,检查错误,git/svn commit)等,只能傻等着外部程序结束才能返回 Vim ,这也是 Vim 最受 emacs 诟病的地方,限制了很多可能性,导致NeoVim当年发布时,最先引入的新功能就是异步机制。如今 8.0中,可以在后台启动各种长时间运行的任务,并把输出重定向到 VimScript 里面的某个 callback 函数,和 nodejs的子进程管理模块类似,使得你可以一边浏览/编辑文件,一遍运行各种长时间编译类任务可以同时运行,并且把输出同步到 Vim 里的某个窗口中。
时钟机制
可以在 VimScript 中创建时钟,比如每隔100ms调用一下某个 VimScript 里面的函数,这样方便你定时检查各种状态,比如某项工作是否做完,或者某个与服务器的通信如何了。有这个机制配合 Python 可以实现纯脚本的终端,或者实现网络交互,实时读取一些股票信息并且显示在右下角之类的,这给 Vim 插件开发带来了更多可能性。
网络机制
可以用纯 VimScript + socket + json 和外部支持json的服务器进行通信,比如通知远程服务器做一件什么事情,或者查询个什么东西,不过使用 Timer + python 也可以达到同样的效果。
背景:将T60P升级为Windows10系统后,最近 买卫个独立 ThinkPad 键盘,需要蓝牙连接,但发现蓝牙设备没了,连右键后硬件列表里也没有,这可怎么办?
最佳答案: Fn+F5就可以打开。
如何安装:用驱动精灵,它会自己检测并安装上的。
最佳答案: Fn+F5就可以打开。
如何安装:用驱动精灵,它会自己检测并安装上的。
ansible连接时出现:Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host.
Unix/LinuxC技术 jackxiang 2016-9-23 11:48
背景:第一次连接ansible的host里的一堆机器时,会出标题里面的错,解决办法如下:
vi /home/xiangdong/ansible/ansible.cfg
# uncomment this to disable SSH key host checking
host_key_checking = False
—————————————————————————————————————————
提示输入yes 进行确认为将key字符串加入到 ~/.ssh/known_hosts 文件中:
本篇就结合一个示例对其进行下了解。我在对之前未连接的主机进行连结时报错如下:
[root@361way.com ~]# ansible test -a 'uptime'
10.212.52.14 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host.
10.212.52.16 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host.
从上面的输出提示上基本可以了解到由于在本机的~/.ssh/known_hosts文件中并有fingerprint key串,ssh第一次连接的时候一般会提示输入yes 进行确认为将key字符串加入到 ~/.ssh/known_hosts 文件中。
方法1:
了解到问题原因为,我们了解到进行ssh连接时,可以使用-o参数将StrictHostKeyChecking设置为no,使用ssh连接时避免首次连接时让输入yes/no部分的提示。通过查看ansible.cfg配置文件,发现如下行:
[ssh_connection]
# ssh arguments to use
# Leaving off ControlPersist will result in poor performance, so use
# paramiko on older platforms rather than removing it
#ssh_args = -o ControlMaster=auto -o ControlPersist=60s
所以这里我们可以启用ssh_args 部分,使用下面的配置,避免上面出现的错误:
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
方法2:
在ansible.cfg配置文件中,也会找到如下部分:
# uncomment this to disable SSH key host checking
host_key_checking = False
默认host_key_checking部分是注释的,通过找开该行的注释,同样也可以实现跳过 ssh 首次连接提示验证部分。由于配置文件中直接有该选项,所以推荐用方法2 。
来自:http://www.361way.com/ansible-cfg/4401.html
vi /home/xiangdong/ansible/ansible.cfg
# uncomment this to disable SSH key host checking
host_key_checking = False
—————————————————————————————————————————
提示输入yes 进行确认为将key字符串加入到 ~/.ssh/known_hosts 文件中:
本篇就结合一个示例对其进行下了解。我在对之前未连接的主机进行连结时报错如下:
[root@361way.com ~]# ansible test -a 'uptime'
10.212.52.14 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host.
10.212.52.16 | FAILED => Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host.
从上面的输出提示上基本可以了解到由于在本机的~/.ssh/known_hosts文件中并有fingerprint key串,ssh第一次连接的时候一般会提示输入yes 进行确认为将key字符串加入到 ~/.ssh/known_hosts 文件中。
方法1:
了解到问题原因为,我们了解到进行ssh连接时,可以使用-o参数将StrictHostKeyChecking设置为no,使用ssh连接时避免首次连接时让输入yes/no部分的提示。通过查看ansible.cfg配置文件,发现如下行:
[ssh_connection]
# ssh arguments to use
# Leaving off ControlPersist will result in poor performance, so use
# paramiko on older platforms rather than removing it
#ssh_args = -o ControlMaster=auto -o ControlPersist=60s
所以这里我们可以启用ssh_args 部分,使用下面的配置,避免上面出现的错误:
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
方法2:
在ansible.cfg配置文件中,也会找到如下部分:
# uncomment this to disable SSH key host checking
host_key_checking = False
默认host_key_checking部分是注释的,通过找开该行的注释,同样也可以实现跳过 ssh 首次连接提示验证部分。由于配置文件中直接有该选项,所以推荐用方法2 。
来自:http://www.361way.com/ansible-cfg/4401.html
我们再来讲讲DSO动态编译的方法:
首先编译安装apache
tar zvxf apache_1.3.27
cd apache_1.3.27
./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite --enable-shared=max &&
make &&
make install
so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,但是这个文件最后只包含了一个httpd.exp文件。 为什么?哪里出错了?
谢谢
Because you're just telling apache to enable the use of shared modules. You also need to tell it to MAKE the shared modules.
You can use these compile flags:
--enable-mods-shared='headers rewrite dav' (where you list the mods. you want)
--enable-mods-shared=most ( compiles "most" modules )
--enable-mods-shared=all ( compiles all modules )
因为你只告诉了apache可以使用共享模块。你还需要告诉它要MAKE共享模块
你可以使用如下的这些编译标志
--enable-mods-shared='headers rewrite dav' (凡是你想编译的模块都可以写到后边的引号里面,以空格分隔)
--enable-mods-shared=most (编译最多的模块)
--enable-mods-shared=all (编译所有模块)
动态编译还是静态编译的效率问题:http://jackxiang.com/post/4029/
来自:http://m.blog.csdn.net/article/details?id=6977466
首先编译安装apache
tar zvxf apache_1.3.27
cd apache_1.3.27
./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite --enable-shared=max &&
make &&
make install
so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。
我尝试在fedora core 3中安装apache 2. 当我解压了apache 2.0.54后使用configure工具并且加入了 --enable-so 或者 --enable-modules=so (两个我都试过了)
去make并且make install了。我希望在/apache2/modules/目录里有各种模块,但是这个文件最后只包含了一个httpd.exp文件。 为什么?哪里出错了?
谢谢
Because you're just telling apache to enable the use of shared modules. You also need to tell it to MAKE the shared modules.
You can use these compile flags:
--enable-mods-shared='headers rewrite dav' (where you list the mods. you want)
--enable-mods-shared=most ( compiles "most" modules )
--enable-mods-shared=all ( compiles all modules )
因为你只告诉了apache可以使用共享模块。你还需要告诉它要MAKE共享模块
你可以使用如下的这些编译标志
--enable-mods-shared='headers rewrite dav' (凡是你想编译的模块都可以写到后边的引号里面,以空格分隔)
--enable-mods-shared=most (编译最多的模块)
--enable-mods-shared=all (编译所有模块)
动态编译还是静态编译的效率问题:http://jackxiang.com/post/4029/
来自:http://m.blog.csdn.net/article/details?id=6977466
apache编译全部模块
Unix/LinuxC技术 jackxiang 2016-9-21 08:33
我们再来讲讲DSO动态编译的方法:
首先编译安装apache
tar zvxf apache_1.3.27
cd apache_1.3.27
./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite --enable-shared=max &&
make &&
make install
so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。
首先编译安装apache
tar zvxf apache_1.3.27
cd apache_1.3.27
./configure --prefix=/usr/local/apache --enable-module=so \
--enable-module=rewrite --enable-shared=max &&
make &&
make install
so模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。
发现 3 个已存在的 RPM 数据库问题, 'yum check'
Unix/LinuxC技术 jackxiang 2016-9-20 19:56
在某个论坛里找到了解决方法。
package-cleanup --cleandupes
1
然后再
yum install openssh
1
就可以了
地址:
http://bbs.chinaunix.net/thread-4173797-1-1.html
更多:http://www.path8.net/tn/archives/5974
package-cleanup --cleandupes
1
然后再
yum install openssh
1
就可以了
地址:
http://bbs.chinaunix.net/thread-4173797-1-1.html
更多:http://www.path8.net/tn/archives/5974
使用redis加速ansible
Unix/LinuxC技术 jackxiang 2016-9-19 17:36
背景:这块儿说是加速,还真是不明白,先扔这儿。
使用redis加速ansible
我们知道,每次使用ansible时候都要收集系统信息,那一步占用挺多时间的,我们可以用redis把GATHERING的时间给省下来。
1. ansible.cfg
[defaults]
gathering = smart
fact_caching = redis
fact_caching_timeout = 86400
2. install redis
mac下面
brew install redis
vim /usr/local/etc/redis.conf
···
daemonize yes
···
/usr/local/bin/redis-server /usr/local/etc/redis.conf
3. install python driver
sudo easy_install pip
sudo pip install redis
如果redis端口不是6379,可以用fact_caching_connection限定:
fact_caching_connection = 127.0.0.1:6378
来自:http://blog.csdn.net/aca_jingru/article/details/46532063
使用redis加速ansible
我们知道,每次使用ansible时候都要收集系统信息,那一步占用挺多时间的,我们可以用redis把GATHERING的时间给省下来。
1. ansible.cfg
[defaults]
gathering = smart
fact_caching = redis
fact_caching_timeout = 86400
2. install redis
mac下面
brew install redis
vim /usr/local/etc/redis.conf
···
daemonize yes
···
/usr/local/bin/redis-server /usr/local/etc/redis.conf
3. install python driver
sudo easy_install pip
sudo pip install redis
如果redis端口不是6379,可以用fact_caching_connection限定:
fact_caching_connection = 127.0.0.1:6378
来自:http://blog.csdn.net/aca_jingru/article/details/46532063
[实践OK]linux进程io之哪个进程占用磁盘io较多,LINUX下找出哪个进程造成的IO等待很高的方法之iotop。
Unix/LinuxC技术 jackxiang 2016-9-18 12:01
安装一下iotop程序。
可以通过yum install iotop 安装:
通过rpm -qa |grep iotop 确认是否已经安装好, 直接通过io tab补全查看有这个命令
使用iotop命令: iotop -o 直接查看输出比较高的磁盘读写程序。
使用该命令有个条件,Linux内核要高于2.6.20的版本,版本过低则没有此命令:yum install iotop 安装,后:
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
14453 be/4 mysql 3.87 K/s 603.68 K/s 0.00 % 10.13 % mysqld --basedir=/usr/local/mysql --data~.pid --socket=/tmp/mysql.sock --port=3306
1 be/4 root 1691.07 K/s 0.00 B/s 31.45 % 9.55 % systemd --switched-root --system --deserialize 21
14449 be/4 mysql 11.61 K/s 247.66 K/s 0.00 % 9.53 % mysqld --basedir=/usr/local/mysql --data~.pid --socket=/tmp/mysql.sock --port=3306
LINUX下找出哪个进程造成的IO等待很高的方法 :
在本机测试通过^^
抓哪个进程干坏事前要先停掉syslog
/etc/init.d/syslog stop
echo 1 > /proc/sys/vm/block_dump
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
1423 kjournald
1075 pdflush
209 indexer
3 cronolog
1 rnald
1 mysqld
不要忘记在抓完之后关掉block_dump和启动syslog
echo 0 > /proc/sys/vm/block_dump
/etc/init.d/syslog start
来自:http://blog.itpub.net/16978544/viewspace-696756/
可以通过yum install iotop 安装:
通过rpm -qa |grep iotop 确认是否已经安装好, 直接通过io tab补全查看有这个命令
使用iotop命令: iotop -o 直接查看输出比较高的磁盘读写程序。
使用该命令有个条件,Linux内核要高于2.6.20的版本,版本过低则没有此命令:yum install iotop 安装,后:
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
14453 be/4 mysql 3.87 K/s 603.68 K/s 0.00 % 10.13 % mysqld --basedir=/usr/local/mysql --data~.pid --socket=/tmp/mysql.sock --port=3306
1 be/4 root 1691.07 K/s 0.00 B/s 31.45 % 9.55 % systemd --switched-root --system --deserialize 21
14449 be/4 mysql 11.61 K/s 247.66 K/s 0.00 % 9.53 % mysqld --basedir=/usr/local/mysql --data~.pid --socket=/tmp/mysql.sock --port=3306
LINUX下找出哪个进程造成的IO等待很高的方法 :
在本机测试通过^^
抓哪个进程干坏事前要先停掉syslog
/etc/init.d/syslog stop
echo 1 > /proc/sys/vm/block_dump
dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
1423 kjournald
1075 pdflush
209 indexer
3 cronolog
1 rnald
1 mysqld
不要忘记在抓完之后关掉block_dump和启动syslog
echo 0 > /proc/sys/vm/block_dump
/etc/init.d/syslog start
来自:http://blog.itpub.net/16978544/viewspace-696756/
实践用最新的:
wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
wget http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
根据下面这个链接,编译好相关apache需要的包后,
#apachectl –l
看到的prefork.c,说明使用的prefork工作模式。
可以在编译的时候使用#--with-mpm=prefork对应的工作模式名称来修改工作模式:
./configure --help|grep with-mpm
--with-mpm=MPM Choose the process model for Apache to use by
加上就好了:
[root@iZ25dcp92ckZ bin]# ./apachectl -l
Compiled in modules:
core.c
mod_so.c
http_core.c
event.c
[root@iZ25dcp92ckZ bin]# ./apachectl -l
Compiled in modules:
core.c
mod_so.c
http_core.c
prefork.c
1root两www进程,搞定:
/usr/local/apache2/bin/httpd -k restart
/usr/local/apache2/bin/httpd -k restart
/usr/local/apache2/bin/httpd -k restart
静态:
在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个,那么所有的默认模块为静态。 那么何谓静态? 其实就是编译的时候所有的模块自己编译进 httpd 这个文件中(我们启动可以使用这个执行文件,如: ./httpd & ) ,启动的时候这些模块就已经加载进来了,也就是可以使用了, 通常为:<ifmodule> </ifmodule> 来配置。所以大家看到的配置都是 <ifmodule module.c> ,很显然,module.c这个东西已经存在 httpd这个文件中了。
动态:
就是编译的时候,使用enable-module=shared 或者enable-modules-shared=module 来动态编译。 那么什么是动态? 静态是直接编译进httpd中, 那么动态显然就不编译进去了,也就是你启动的时候根本不会加载这个模块, 而是给你一个module.so 文件,你一定要使用 loadmodule 这个语法来加载,这个模块才有效。
From:http://xtony.blog.51cto.com/3964396/836508/
Apache安装apr和apr-util作用:
安装Apache的时候,为什么要安装apr和apr-util呢
要测APR给tomcat带来的好处最好的方法是在慢速网络上(模
拟Internet),将Tomcat线程数开到300以上的水平,然后模
拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会
用满,以后的请求就只好等待。但是配上APR之后,并发的线
程数量明显下降,从原来的300可能会马上下降到只有几十,
新的请求会毫无阻塞的进来。
APR对于Tomcat最大的作用就是socket调度。
你在局域网环境测,就算是400个并发,也是一瞬间就处理/传
输完毕,但是在真实的Internet环境下,页面处理时间只占
0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,
一个线程同一时间只能处理一个用户,势必会造成阻塞。所以
生产环境下用apr是非常必要的。
注:APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
在早期的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用APR而已。
一般情况下,APR开发包很容易理解为仅仅是一个开发包,不过事实上并不是。目前,完整的APR实际上包含了三个开发包:apr、apr-util以及apr-iconv,每一个开发包分别独立开发,并拥有自己的版本。
adapt from:http://wgkgood.blog.51cto.com/1192594/432272
在phpMyAdmin中提示“Configuration of pmadb… not OK”,如下图所示:
“Configuration of pmadb… not OK”解决办法,这个问题不大,不影响使用,仅仅是一个警告。如果不想总是看见这个警告,可以用如下办法来解决。
(1)初始化phpmyadmin数据库
cd /Library/WebServer/Documents/phpmyadmin/sql
mysql -u root -p < create_tables.sql
Enter password:
mysql> CREATE DATABASE phpmyadmin;
Query OK, 1 row affected (0.02 sec)
mysql> use phpmyadmin
Database changed
mysql> source /data/htdocs/dev.XXX.com/phpmyadmin/sql/create_tables.sql
(2)创建数据库用户
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO 'pma'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
(3)配置config.ini.php文件
vim config.inc.php
/**
* phpMyAdmin configuration storage settings.
*/
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
参考:
http://wlb.wlb.blog.163.com/blog/static/46741320158199711556/
http://bbs.vpser.net/thread-13962-1-1.html
“Configuration of pmadb… not OK”解决办法,这个问题不大,不影响使用,仅仅是一个警告。如果不想总是看见这个警告,可以用如下办法来解决。
(1)初始化phpmyadmin数据库
cd /Library/WebServer/Documents/phpmyadmin/sql
mysql -u root -p < create_tables.sql
Enter password:
mysql> CREATE DATABASE phpmyadmin;
Query OK, 1 row affected (0.02 sec)
mysql> use phpmyadmin
Database changed
mysql> source /data/htdocs/dev.XXX.com/phpmyadmin/sql/create_tables.sql
(2)创建数据库用户
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO 'pma'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
(3)配置config.ini.php文件
vim config.inc.php
/**
* phpMyAdmin configuration storage settings.
*/
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
参考:
http://wlb.wlb.blog.163.com/blog/static/46741320158199711556/
http://bbs.vpser.net/thread-13962-1-1.html
1、打开【开始菜单】进入设置后,进入2的系统(显示、通知、应用、电源)。
2、进入【系统设置】
3、点击”系统选项“
4、选择【通知和操作】
5、选择在任务栏上显示哪些图标
6、控制显示的应用图标【开关】
7、设置成功,任务栏显示应用图标。
摘自 :http://zhidao.baidu.com/link?url=sm3gwUbd7RkQUlspvGUNpzipEaR7fTxXmcw_D0UqAEHT0pb_ThhEkJhdTfJ8OpdMWUj48gb8PR7jQ6d-NsFqyX_NRY2GDD97CBgrkkSujn7
2、进入【系统设置】
3、点击”系统选项“
4、选择【通知和操作】
5、选择在任务栏上显示哪些图标
6、控制显示的应用图标【开关】
7、设置成功,任务栏显示应用图标。
摘自 :http://zhidao.baidu.com/link?url=sm3gwUbd7RkQUlspvGUNpzipEaR7fTxXmcw_D0UqAEHT0pb_ThhEkJhdTfJ8OpdMWUj48gb8PR7jQ6d-NsFqyX_NRY2GDD97CBgrkkSujn7
背景:发现gitlab经nginx代理后,有一天访问突然发现出现409错误,[15/Sep/2016:12:40:13 +0800] "GET /dashboard/projects HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36",502 Whoops, GitLab is taking too much time to respond. Try refreshing the page, or going back and attempting the action again.Please contact your GitLab administrator if this problem persists。
我的Web服务器在用的Linx + Mysql + PHP +nginx,今天被DDOS攻击了,观察日志中发现大量的499 Status Code这个错误。GOOGLE了一把才明白这个499的意思:
日志如下:
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.012 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
61.219.178.101 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.221.37.82 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.039 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.001 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.045 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.036 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.037 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.012 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
61.219.178.101 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.221.37.82 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.039 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.001 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.045 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.036 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.037 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
400~500间的错误码仅定义到了417,所以499应该是nginx自己定义的。
读读nginx代码,看一下注释,找到src/http/ngx_http_special_response.c 这个文件328行,里面定义了不少http错误码以及相应的返回。注意到有下面这样的注释:
ngx_string(ngx_http_error_494_page), /* 494, request header too large */
ngx_string(ngx_http_error_495_page), /* 495, https certificate error */
ngx_string(ngx_http_error_496_page), /* 496, https no certificate */
ngx_string(ngx_http_error_497_page), /* 497, http to https */
ngx_string(ngx_http_error_404_page), /* 498, canceled */
ngx_null_string, /* 499, client has closed connection */
ngx_string(ngx_http_error_494_page), /* 494, request header too large */
ngx_string(ngx_http_error_495_page), /* 495, https certificate error */
ngx_string(ngx_http_error_496_page), /* 496, https no certificate */
ngx_string(ngx_http_error_497_page), /* 497, http to https */
ngx_string(ngx_http_error_404_page), /* 498, canceled */
ngx_null_string, /* 499, client has closed connection */
可以看到,499对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。要解决此问题,就需要在程序上面做些优化了。
除了499,nginx还定义了495/496/497/498 这几个Status Codes,相应的意义也在上面的注释中可以看到。开源的东西,可以随时翻看源码,这一点很棒。
来自:http://blog.hexu.org/archives/1085.shtml
我的Web服务器在用的Linx + Mysql + PHP +nginx,今天被DDOS攻击了,观察日志中发现大量的499 Status Code这个错误。GOOGLE了一把才明白这个499的意思:
日志如下:
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.012 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
61.219.178.101 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.221.37.82 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.039 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.001 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.045 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.036 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.037 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.012 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.015 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
61.219.178.101 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.002 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
202.201.252.2 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.221.37.82 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.039 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.001 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
58.49.59.142 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.045 ut="-" cs=-
119.147.86.178 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.036 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
222.189.237.18 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.037 ut="-" cs=-
222.215.105.135 - - [06/Nov/2011:12:23:27 +0800] "GET / HTTP/1.1" 499 0 "-" "-" "-" rt=0.000 ut="-" cs=-
400~500间的错误码仅定义到了417,所以499应该是nginx自己定义的。
读读nginx代码,看一下注释,找到src/http/ngx_http_special_response.c 这个文件328行,里面定义了不少http错误码以及相应的返回。注意到有下面这样的注释:
ngx_string(ngx_http_error_494_page), /* 494, request header too large */
ngx_string(ngx_http_error_495_page), /* 495, https certificate error */
ngx_string(ngx_http_error_496_page), /* 496, https no certificate */
ngx_string(ngx_http_error_497_page), /* 497, http to https */
ngx_string(ngx_http_error_404_page), /* 498, canceled */
ngx_null_string, /* 499, client has closed connection */
ngx_string(ngx_http_error_494_page), /* 494, request header too large */
ngx_string(ngx_http_error_495_page), /* 495, https certificate error */
ngx_string(ngx_http_error_496_page), /* 496, https no certificate */
ngx_string(ngx_http_error_497_page), /* 497, http to https */
ngx_string(ngx_http_error_404_page), /* 498, canceled */
ngx_null_string, /* 499, client has closed connection */
可以看到,499对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。要解决此问题,就需要在程序上面做些优化了。
除了499,nginx还定义了495/496/497/498 这几个Status Codes,相应的意义也在上面的注释中可以看到。开源的东西,可以随时翻看源码,这一点很棒。
来自:http://blog.hexu.org/archives/1085.shtml
[实践OK]sublime text3主题安装及下载使用方法,包括显示空格。
Unix/LinuxC技术 jackxiang 2016-9-12 21:46
背景:一直想为sublime找一个好点的主题,一个是背景字体好看、二是简单、三是上面tab在哪儿要明显,这三个点在下面这个兄弟的博客里得到了体现,不错。
问题?sublime text3主题安装及下载使用方法
安装方法:首先下载https://github.com/kenwheeler/brogrammer-theme/archive/master.zip。解压后将文件夹改名成Theme - Brogrammer。然后打开sublime text3,找到里面的首选项->浏览程序包(Preferences -> Browse Packages),将改名后的文件夹copy到弹出的文件夹中,然后首选项->设置用户(Preferences -> setting uer),将下列代码拷进去:
{
"theme": "Brogrammer.sublime-theme",
"color_scheme": "Packages/Theme - Brogrammer/brogrammer.tmTheme"
}
如果不成功,则改成:
{
"color_scheme": "Packages/User/SublimeLinter/brogrammer (SL).tmTheme",
"font_size": 14,
"ignored_packages":
[
"Vintage"
],
"show_encoding": true,
"theme": "Brogrammer.sublime-theme"
}
文档下载:点击打开链接
来自:http://blog.csdn.net/mr_li13/article/details/50821812
推荐一个sublime text3 的主题 material-theme,超级漂亮:
https://tennc.github.io/2016/03/26/%E8%B6%85%E7%BA%A7%E6%BC%82%E4%BA%AE%E7%9A%84%E4%B8%BB%E9%A2%98/
废话不多说,安装方式:
ctrl+shift+p 搜索 material theme 进行安装
github下载主题后,复制到 Packages\User\ 目录下
之后就是启用那个主题,重新启动sublime text就好了~~
不知道谁还用sublime text3,在win10 64bit 情况下~ sublime text3 输入中文,不能跟随,谁晓得如何处理??
问题?sublime text3主题安装及下载使用方法
安装方法:首先下载https://github.com/kenwheeler/brogrammer-theme/archive/master.zip。解压后将文件夹改名成Theme - Brogrammer。然后打开sublime text3,找到里面的首选项->浏览程序包(Preferences -> Browse Packages),将改名后的文件夹copy到弹出的文件夹中,然后首选项->设置用户(Preferences -> setting uer),将下列代码拷进去:
{
"theme": "Brogrammer.sublime-theme",
"color_scheme": "Packages/Theme - Brogrammer/brogrammer.tmTheme"
}
如果不成功,则改成:
{
"color_scheme": "Packages/User/SublimeLinter/brogrammer (SL).tmTheme",
"font_size": 14,
"ignored_packages":
[
"Vintage"
],
"show_encoding": true,
"theme": "Brogrammer.sublime-theme"
}
文档下载:点击打开链接
来自:http://blog.csdn.net/mr_li13/article/details/50821812
推荐一个sublime text3 的主题 material-theme,超级漂亮:
https://tennc.github.io/2016/03/26/%E8%B6%85%E7%BA%A7%E6%BC%82%E4%BA%AE%E7%9A%84%E4%B8%BB%E9%A2%98/
废话不多说,安装方式:
ctrl+shift+p 搜索 material theme 进行安装
github下载主题后,复制到 Packages\User\ 目录下
之后就是启用那个主题,重新启动sublime text就好了~~
不知道谁还用sublime text3,在win10 64bit 情况下~ sublime text3 输入中文,不能跟随,谁晓得如何处理??