Blog

  • 我的shell脚本注释块 | 事半功倍

    写bash脚本时,每次把下面脚本加进去

    #!/bin/bash
    #for use:
    #author: jpuyy date  [email protected]
    #modified by xx at date
    #version:
    #history:
    #relate on:
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH

    这里最后一句使用export,使得执行后,各变量和操作结束,从而不会传回到父进程中。

    也就是系统会分配bash来让我们执行这个脚本,这也是一般情况下我们想要的效果。

    如果想让变量和操作在结束后留在系统里,要用source命令

    常见的是

    source ~/.bashrc

    整理一下其他文件头部注释块:

    python开头代码

    #!/usr/bin/env python
    #for use:
    #author: jpuyy date  jpuyy.com [email protected]
    #modified by xx at date
    #version:
    #history:
    #relate on:

    :)EOT

  • mysql 命令 | sql语句 | sql语法

    0、登陆:

    mysql -u root -p

    指定用utf8来连接数据库,大部分时候就不会显示乱码

    mysql -u root -p --default-character-set=utf8

    1、显示数据库列表。

     show databases;

    2、显示库中的数据表:

     use mysql;
     show tables;

    3、显示数据表的结构:

     describe 表名;

    4、建库:

     create database 库名;
    create database if not exists 库名 default charset utf8 collate utf8_general_ci;

    5、建表:

     use 库名;
     create table 表名 (字段设定列表);

    6、删库和删表:

     drop database 库名;
     drop table 表名;

    7、将表中记录清空:

     delete from 表名;

    8、显示表中的记录:

     select * from 表名

    9、update语法

    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
    当有多个列名称要修改的时候用","分隔。

    例:把radius某用户设为禁止

    UPDATE  `radusergroup` SET `groupname`='daloRADIUS-Disabled-Users'  WHERE `username` in ('xxyy ','uuxx');

    10、刷新权限:

    flush privileges;­

    11、改变数据库databaseA的字符集为utf8

    ALTER DATABASE `databaseA` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

    退出:

    mysql>quit

    12、limit命令

    取出前5条数据

    SELECT * FROM `user_data` LIMIT 5

    取出第5, 6条数据

    SELECT * FROM `user_data` limit 3,1

    13、like命令

    查找以189开头的条目

    SELECT * from shoujihao WHERE number LIKE '189%';

    14、shell下执行sql语句

    mysql -u root -p database -e "select User, Host From user"

    在mysql命令行内执行系统命令

    mysql> system less /home/jpuyy/.vimrc

    删除一个用户

    drop user 'yyy'@'localhost';

    14. SELECT DISTINCT筛选唯一的列,如

    SELECT DISTINCT vend_id FROM products;

    会返回去重的结果

    15. 创建唯一键

    ALTER TABLE host add UNIQUE (object_id);
    16. 一些函数

    select count(column_name) 计数
    select sum(column_name) 总计
    select avg(column_name) 平均数
    select max(column_name) 最大
    select min(column_name) 最小
    

    16. 每个分组大于1

    select genre, sum(cost) from Movies Group By genre Having count(*)>1; 
  • google chrome键盘和鼠标快捷键

    标签页和窗口快捷键

    Ctrl+N 打开新窗口。
    Ctrl+T 打开新标签页。
    Ctrl+Shift+N 在隐身模式下打开新窗口。
    按 Ctrl+O,然后选择文件。 在 Google Chrome 浏览器中打开计算机中的文件。
    按住 Ctrl 键的同时点击链接。或用鼠标中键(或鼠标滚轮)点击链接。 从后台在新标签页中打开链接。
    按住 Ctrl+Shift 的同时点击链接。或按住 Shift 键的同时用鼠标中键(或鼠标滚轮)点击链接。 在新标签页中打开链接并切换到刚打开的标签页。
    按住 Shift 键的同时点击链接。 在新窗口中打开链接。
    Ctrl+Shift+T 重新打开上次关闭的标签页。Google Chrome 浏览器可记住最近关闭的 10 个标签页。
    将链接拖到标签页中。 在标签页中打开链接。
    将链接拖到标签栏的空白区域。 在新标签页中打开链接。
    将标签页拖出标签栏。 在新窗口中打开标签页。
    将标签页从标签栏拖到现有窗口中。 在现有窗口中打开标签页。
    拖动标签页时按 Esc 键。 将标签页恢复到原先的位置。
    Ctrl+1 到 Ctrl+8 切换到标签栏中指定位置编号所对应的标签页。
    Ctrl+9 切换到最后一个标签页。
    Ctrl+Tab 或 Ctrl+PgDown 切换到下一个标签页。
    Ctrl+Shift+Tab 或 Ctrl+PgUp 切换到上一个标签页。
    Alt+F4 关闭当前窗口。
    Ctrl+W 或 Ctrl+F4 关闭当前标签页或弹出窗口。
    用鼠标中键(或鼠标滚轮)点击标签页。 关闭所点击的标签页。
    右键点击或者点击并按住浏览器工具栏中的“后退”或“前进”箭头。 在新标签页中显示浏览历史记录。
    按 Backspace 键,或同时按 Alt 和向左箭头键。 转到当前标签页的上一页浏览历史记录。
    按 Shift+Backspace,或同时按 Alt 和向右箭头键。 转到当前标签页的下一页浏览历史记录。
    按住 Ctrl 键的同时点击工具栏中的后退箭头、前进箭头或转到按钮。或用鼠标中键(或鼠标滚轮)点击任一按钮。 从后台在新标签页中打开按钮所对应的目标网页。
    双击标签栏的空白区域。 最大化或最小化窗口。
    Alt+Home 在当前窗口打开主页。

    Google Chrome 浏览器功能快捷键

    Alt+F 或 Alt+E 打开“工具”菜单,用该菜单可自定义和控制 Google Chrome 浏览器中的设置。
    Ctrl+Shift+B 打开和关闭书签栏。
    Ctrl+H 打开“历史记录”页面。
    Ctrl+J 打开“下载内容”页面。
    Shift+Esc 打开任务管理器。
    Shift+Alt+T 将焦点设置在浏览器工具栏中的第一个工具上。然后就能用以下快捷键在工具栏中移动:

    • 按 Tab、Shift+Tab、Home、End、向右箭头向左箭头,可在工具栏中将焦点移到各个选项上。
    • 空格键或 Enter 可激活工具栏按钮,包括网页操作和浏览器操作。
    • 按 Shift+F10 可打开相关右键菜单(例如,“后退”按钮关联的浏览历史记录)。
    • 按 Esc 可将焦点从工具栏移回到网页上。
    F6 或 Shift+F6 将焦点切换到下一个键盘可访问的窗格。这些窗格包括:

    • 地址栏
    • 书签栏(若显示)
    • 主要的网络内容(包括任何信息栏)
    • 下载内容栏(若显示)
    Ctrl+Shift+J 打开开发人员工具。
    Ctrl+Shift+Delete 打开“清除浏览数据”对话框。
    F1 在新标签页中打开帮助中心(首选方式)。

    地址栏快捷键

    键入搜索字词,然后按 Enter 键。 使用默认搜索引擎进行搜索。
    键入搜索引擎关键字,按空格键,然后键入搜索字词,再按 Enter键。 使用与关键字相关联的搜索引擎进行搜索。
    首先键入搜索引擎网址,然后在系统提示时按 Tab 键,键入搜索字词,再按 Enter 键。 使用与网址相关联的搜索引擎进行搜索。
    Ctrl+Enter 在地址栏的输入内容前后分别加上 www. 和 .com,并打开得到的网址。
    键入网址,然后按 Alt+Enter 在新标签页中打开网址。
    或 Ctrl+L 或 Alt+D 突出显示网址。
    Ctrl+K 或 Ctrl+E 将“?”中输入“?”。在问号后键入搜索字词可用默认搜索引擎执行搜索。
    同时按 Ctrl 和向左箭头键。 在地址栏中将光标移到上一个关键字词
    同时按 Ctrl 和向右箭头键。 在地址栏中将光标移到下一个关键字词
    Ctrl+Backspace 在地址栏中删除光标前的字词
    用键盘上的方向键从地址栏下拉菜单中选择一个条目,然后按Shift+Delete 从浏览历史记录中删除所选条目(如果可以)。
    用鼠标中键(或鼠标滚轮)点击地址栏下拉菜单中的一个条目。 从后台在新标签页中打开该条目。
    显示地址栏下拉菜单时按 Page Up 或 Page Down 选中下拉菜单中的第一个或最后一个条目。


    网页快捷键


    Ctrl+P 打印当前网页。
    Ctrl+S 保存当前网页。
    F5 或 Ctrl+R 重新载入当前网页。
    Esc 停止载入当前网页。
    Ctrl+F 打开查找栏。
    Ctrl+G 或 F3 在查找栏中查找下一条与输入内容相匹配的内容。
    Ctrl+Shift+GShift+F3 或 Shift+Enter 在查找栏中查找上一条与输入内容相匹配的内容。
    点击鼠标中键(或鼠标滚轮)。 激活自动滚动模式。当您移动鼠标时,网页会根据鼠标的移动方向自动滚动。
    Ctrl+F5 或 Shift+F5 重新载入当前网页,忽略缓存的内容。
    按住 Alt 键,然后点击链接。 下载链接目标。
    Ctrl+U 打开当前网页的源代码。
    将链接拖到书签栏中 将链接保存为书签。
    Ctrl+D 将当前网页保存为书签。
    Ctrl+Shift+D 将所有打开的网页以书签的形式保存在新文件夹中。
    F11 在全屏模式下打开网页。再按一次 F11 可退出全屏模式。
    Ctrl++,或者按住 Ctrl 键并且向上滚动鼠标滚轮。 放大网页上的所有内容。
    Ctrl+,或者按住 Ctrl 键并且向下滚动鼠标滚轮。 缩小网页上的所有内容。
    Ctrl+0 将网页上的所有内容都恢复到正常大小。
    空格键 向下滚动网页。
    Home 转至网页顶部。
    End 转至网页底部。
    按住 Shift 键的同时滚动鼠标滚轮。 在网页上横向滚动。

    文本快捷键

    Ctrl+C 将突出显示的内容复制到剪贴板中。
    Ctrl+V 或 Shift+Insert 从剪贴板中粘贴内容。
    Ctrl+Shift+V 从剪贴板中粘贴内容(不带格式)。
    Ctrl+X 或 Shift+Delete 删除突出显示的内容并将其复制到剪贴板中。


    chrome 浏览器插件

    * Tab to window
    * vimium
    * xTab

  • WordPress 常用的快捷键

    WordPress 后台的在线可视化编辑器使用的是 TinyMCE,所以在 WordPress 后台编辑的时候,和 TinyMCE 一样也有键盘快捷键,掌握这些快捷键可以让我们在 WordPress 后台编辑文章的时候事半功倍,下面是我们常用的快捷键:

    粗体: Alt+SHIFT+b
    斜体: Alt+SHIFT+i

    添加链接: Alt+SHIFT+a

    引用: Alt+SHIFT+q
    代码: Alt+SHIFT+c

    添加 <!–more–>: Alt+SHIFT+t

    无序列表 (ul): Alt+SHIFT+u
    有序列表 (ol): Alt+SHIFT+o
    列表元素 (li): Alt+SHIFT+l

    高级编辑器: Alt+SHIFT+v
    编辑 HTML: Alt+SHIFT+e

    发布日志: Alt+SHIFT+p

    填入修订文本: Alt+SHIFT+s
    删除文本: Alt+SHIFT+d

    缩进: Alt+SHIFT+w

    回退: Alt+SHIFT+u
    重做: Alt+SHIFT+y

    居左: Alt+SHIFT+f
    居中: Alt+SHIFT+c
    居右: Alt+SHIFT+r

  • cron,crontab整理及实例

    crontab使用语法:

    crontab [ -u user ] file #从file文件中读取,不建议使用
    crontab [ -u user ] [ -i ] { -e | -l | -r }  # -e代表编辑,-l代表显示存在的cron,-r代表移除cron任务

    如编辑jpuyy的cron列表,

    如果是root来帮jpuyy写cron规则:

    crontab -u jpuyy -e

    如果是jpuyy自己,则直接使用:

    crontab -e

    cron会自动搜索/var/spool/cron/crontabs目录,找到与对应用户的cron来执行,可以发现上面crontab编辑的就是这些文件,用crontab很方便,就不要直接编辑这些文件了。

    在ubuntu下,默认编辑cron的为nano,使用不方便。
    修改默认编辑器修改环境变量EDITOR.

     export EDITOR=vi

    cron的写法:

    其实这些都是描述性的语句,告诉cron去怎么执行;每一条语句要单独做为一行;重点是时间的写法。五个区域代表了时间,区域里用数字与符号结合使用:

    数字可以是:

    分钟 (0-59)
    小時 (0-23)
    日期 (1-31)
    月份 (1-12)
    星期 (0-6)//0代表星期天

    除了数字,几个符号是:

    星号”*”       代表所有的取值范围内的数字

    反斜杠”/”       代表每的意思,”*/5″表示每5个单位

    减号”-”       代表从某个数字到某个数字,

    英文半角逗号”,”       代表分开几个离散的数字

    当时间描述完之后,加上要执行的命令:

    这个区域里的命令,请尽量多的用绝对路径

    如之前设定重启时,

    30 3 * * * reboot不管用,最后改为 30 3 * * *  /sbin/reboot才起的做用

    例子:

    每隔两周且在周一的9点半执行清空/tmp/cache/*

    30 9 * * 1/2 rm -rf /tmp/cache/*

    如果希望重启后首先运行一次,则在最前面清加@reboot,如

     @reboot 30 9 * * 1/2 rm -rf /tmp/cache/*

    四个关键字及等价形式
    @yearly 0 0 1 1 *
    @daily 0 0 * * *
    @hourly 0 * * * *
    @reboot Run at startup.

    cron任务的执行结果会输出到对应用户的mail文件中,如果不需要发给任何人,则使用

    MAIL=""
    

    cron 里可以写私用变量,后面的脚本即可使用此变量

    my_variable=foo
    * * * * * echo $my_variable
    

    每5分钟跑一次a.sh,同样的每5分钟跑一次b.sh,两个脚本错开时间,比如02, 07, 12, 17, 22, 27… 跑a脚本,04, 09, 14, 19, 24, 29…跑b脚本

    4-59/5     * * * * c1
    2-59/5  * * * * c2

    参考:http://serverfault.com/questions/351505/crontab-steps-plus-increment

    cron测试网站: http://cron.schlitt.info/index.php
    cron生成网站: http://www.generateit.net/cron-job/

  • Windows 系统变量大全

    %ALLUSERSPROFILE% : 列出所有用户Profile文件位置。
    %APPDATA% :   列出应用程序数据的默认存放位置。
    %CD% :   列出当前目录。
    %CLIENTNAME% :   列出联接到终端服务会话时客户端的NETBIOS名。
    %CMDCMDLINE% :   列出启动当前cmd.exe所使用的命令行。
    %CMDEXTVERSION% :   命令出当前命令处理程序扩展版本号。
    %CommonProgramFiles% :   列出了常用文件的文件夹路径。
    %COMPUTERNAME% :   列出了计算机名。
    %COMSPEC% :   列出了可执行命令外壳(命令处理程序)的路径。
    %DATE% :   列出当前日期。
    %ERRORLEVEL% :   列出了最近使用的命令的错误代码。
    %HOMEDRIVE% :   列出与用户主目录所在的驱动器盘符。
    %HOMEPATH% :   列出用户主目录的完整路径。
    %HOMESHARE% :   列出用户共享主目录的网络路径。
    %LOGONSEVER% :   列出有效的当前登录会话的域名控制器名。
    %NUMBER_OF_PROCESSORS% :   列出了计算机安装的处理器数。
    %OS% :   列出操作系统的名字。(Windows XP 和 Windows 2000 列为 Windows_NT.)
    %Path% :   列出了可执行文件的搜索路径。
    %PATHEXT% :   列出操作系统认为可被执行的文件扩展名。
    %PROCESSOR_ARCHITECTURE% :   列出了处理器的芯片架构。
    %PROCESSOR_IDENTFIER% :   列出了处理器的描述。
    %PROCESSOR_LEVEL% :   列出了计算机的处理器的型号。
    %PROCESSOR_REVISION% :   列出了处理器的修订号。
    %ProgramFiles% :   列出了Program Files文件夹的路径。
    %PROGRAMFILES(x86)%:windows 64位中存放32位路径 Program Files (x86)%PROMPT% :   列出了当前命令解释器的命令提示设置。

    %RANDOM% :   列出界于0 和 32767之间的随机十进制数。
    %SESSIONNAME% :   列出连接到终端服务会话时的连接和会话名。
    %SYSTEMDRIVE% :   列出了Windows启动目录所在驱动器。
    %SYSTEMROOT% :   列出了Windows启动目录的位置。
    %TEMP% and %TMP% :   列出了当前登录的用户可用应用程序的默认临时目录。
    %TIME% :   列出当前时间。
    %USERDOMAIN% :   列出了包含用户帐号的域的名字。
    %USERNAME% :   列出当前登录的用户的名字。
    %USERPROFILE% :   列出当前用户Profile文件位置。
    %WINDIR% :   列出操作系统目录的位置。

    变量 类型 描述
    %ALLUSERSPROFILE% 本地 返回“所有用户”配置文件的位置。
    %APPDATA% 本地 返回默认情况下应用程序存储数据的位置。
    %CD% 本地 返回当前目录字符串。
    %CMDCMDLINE% 本地 返回用来启动当前的 Cmd.exe 的准确命令行。
    %CMDEXTVERSION% 系统 返回当前的“命令处理程序扩展”的版本号。
    %COMPUTERNAME%   系统 返回计算机的名称。
    %COMSPEC%   系统 返回命令行解释器可执行程序的准确路径。
    %DATE%   系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。
    %ERRORLEVEL%   系统 返回上一条命令的错误代码。通常用非零值表示错误。
    %HOMEDRIVE%   系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
    %HOMEPATH%   系统 返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
    %HOMESHARE%   系统 返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。
    %LOGONSERVER%   本地 返回验证当前登录会话的域控制器的名称。
    %NUMBER_OF_PROCESSORS%   系统 指定安装在计算机上的处理器的数目。
    %OS%   系统 返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。
    %PATH% 系统 指定可执行文件的搜索路径。
    %PATHEXT% 系统 返回操作系统认为可执行的文件扩展名的列表。
    %PROCESSOR_ARCHITECTURE%   系统 返回处理器的芯片体系结构。值:x86 或 IA64(基于 Itanium)。
    %PROCESSOR_IDENTFIER% 系统 返回处理器说明。
    %PROCESSOR_LEVEL%   系统 返回计算机上安装的处理器的型号。
    %PROCESSOR_REVISION% 系统 返回处理器的版本号。
    %PROMPT% 本地 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
    %RANDOM% 系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
    %SYSTEMDRIVE% 系统 返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。
    %SYSTEMROOT%   系统 返回 Windows server operating system 根目录的位置。
    %TEMP% 和 %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。
    %TIME% 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time。
    %USERDOMAIN% 本地 返回包含用户帐户的域的名称。
    %USERNAME% 本地 返回当前登录的用户的名称。
    %USERPROFILE% 本地 返回当前用户的配置文件的位置。
    %WINDIR% 系统 返回操作系统目录的位置。

    %allusersprofile%——————–所有用户的profile路径

    %Userprofile%———————–当前用户的配置文件目录

    %Appdata%————————–当前用户的应用程序路径

    %commonprogramfiles%————-应用程序公用的文件路径

    %homedrive%————————当前用户的主盘

    %Homepath%————————当前用户的主目录

    %programfiles%———————-应用程序的默认安装目录

    %systemdrive%———————-系统所在的盘符

    %systemroot%———————–系统所在的目录

    %windir%—————————-同上,总是跟systemroot一样

    %tmp%——————————当前用户的临时目录

    %temp%—————————–同上临时目录