第一篇:十个节省时间的MySQL命令小结
十个节省时间的MySQL命令小结
编者在工作中积累起来了一些MySQL命令行客户端技巧,这些技巧或多或少会帮助您节省大量的时间。
虽然有许多基于GUI的MySQL客户端存在,如著名的phpMyAdmin和SQLYog,但我一直喜欢原生的MySQL命令行客户端,的确,在未熟悉这些命令行接口(CLI)之前,我们需要花一些时间来熟悉它们,特别是你平时不是经常在具有强大的CLI环境的操作系统下工作时,但只要经过一些练习,你就可以通过CLI管理用户,浏览你的数据库和执行其它任务,其快感是其它人体会不到的。
在这篇文章中,我将会介绍我在工作中积累起来的一些MySQL命令行客户端技巧,不管你尝试其中一个还是所有技巧,我敢保证你一定会节省大量的时间。
顺便提一下,MySQL命令行客户端适应所有操作系统,当然包括Windows,但因为Windows原生CLI环境让人畏惧,因此推荐Windows用户下载并安装Console,它是Windows命令行的一个替代解决方案,提供了更强大的功能,如方便的文本选择,多标签窗口等。
1、登录过程自动化
正确配置的MySQL服务器需要你提供用户名和密码进行身份验证,通常情况下,我们可以直接在mysql命令后加上用户名,出于安全考虑,密码就不跟上了,回车执行时,命令提示符会提醒你输入密码。复制代码 代码如下:
%>mysql-u root-p Enter password: Welcome to the MySQL monitor.Commands end with;or g....通过这一个小小的改进,一年可以少输入几千次用户名,累计起来在登录时间上可以节省几个小时,创建一个.my.cnf文件,将其放在你的home目录下,如果是Windows,文件名则为my.ini,并且要放在MySQL安装目录下,在这个文件中,添加下面的代码,请使用你的登录信息替换占位符。
复制代码 代码如下:
[client] host = your_mysql_server user = your_username password = your_password
一定要正确设置这个文件的权限,防止敏感数据被偷窥。
2、自动切换数据库
登录客户端后,你需要切换到目标数据库,通常我们会使用下面这个命令来切换数据库: 复制代码 代码如下:
mysql>use wjgilmore_dev;
如果你想登录后自动切换到目标数据库,可以在上一步介绍的文件中添加下面的命令,注意位置也要放在[client]小节:
复制代码 代码如下:
database = your_database_name
3、从脚本发送命令
设计一个新数据库时,我喜欢使用MySQL Workbench(MySQL工作台)设计模式和关系,它是一个特别强大的工具,你可以在图形界面下管理你的模式,然后同步到MySQL服务器,或将SQL命令导出到一个文件,方便以后再导入到MySQL。如果你喜欢手写代码,如创建大量的存储过程,或执行一个很长的连接,你可以将SQL保存为一个文件,然后将这个文件传递给客户端执行,如: 复制代码 代码如下:
%>mysql < schema.sql
当然你需要指定连接字符串,或象前面一样通过配置文件来指定。
4、垂直显示结果
即使是很简单的表模式,也会包含几列字段,例如下面的表由11个字段组成,当我执行一个全结构查询时,输入结果如下: 复制代码 代码如下:
mysql> select * from accounts where username = 'wjgilmore';+----+-----------+------------------+----------------------------------+----------+-----------+------------+-----------+----------------------------------+---------------------+---------------------+
| id | username | email | password | zip_code | latitude | longitude | confirmed | recovery | created_on | last_login |
+----+-----------+------------------+---+----------+-----------+------------+-----------+----------------------------------+---------------------+---------------------+
| 7 | wjgilmore | wj@wjgilmore.com | 2b877b4b825b48a9a0950dd5bd1f264d | 43201 | 39.984577 |-83.018692 | 1 | 8bnnwtqlt2289q2yp81tuge82fty501h | 2010-09-16 14:48:41 | 2010-10-27 15:49:44 |
+----+-----------+------------------+---+----------+-----------+------------+-----------+----------------------------------+---------------------+---------------------+
显然我们不能接受,也无法阅读这种显示结果,使用G命令将上面丑陋的显示结果转换为垂直型。
复制代码 代码如下:
mysql> select * from accounts where username = 'wjgilmore'G *************************** 1.row *************************** id: 7 username: wjgilmore email: wj@wjgilmore.com
password: 2b877b4b825b48a9a0950dd5bd1f264d zip_code: 43201 latitude: 39.984577 longitude:-83.018692
confirmed: 1 recovery: 8bnnwtqlt2289q2yp81tuge82fty501h created_on: 2010-09-16 14:48:41 last_login: 2010-10-27 15:49:44
这样看起来就更舒服一点。
5、启用Tab键自动完成功能
重复输入表名和字段名无疑是很乏味的,给mysql客户端传递一个--auto-rehash参数,或是在my.ini文件中添加下面的命令来启用Tab键自动完成功能。复制代码 代码如下:
[mysql] auto-rehash
6、改变提示符 我不止一次想查看或修改被告知表不存在的模式,遇到这种情况我常常会很恐惧,大多数时候我登错数据库,导致错误地删除不该删除的表,通过修改MySQL客户端提示符,让它显示当前操作的数据库名字,从而避免误操作,为了让mysql客户端具备这种交互性,登录后执行下面的命令即可: 复制代码 代码如下:
mysql>prompt [d]> [dev_wjgilmore_com]>
你可能希望永久保持这种效果,简单,只需要将下面的命令添加到你的配置文件中即可:
复制代码 代码如下:
prompt = [d]>
当然不仅限于提示数据库名字,还可以显示当前日期和时间,主机名和用户名,请阅读MySQL手册了解更全面的信息。
7、使用安全更新预防灾难
前面我也提到,当表被意外删除时可能会引起恐惧,我相信不止我一个人有类似的经历,除了不小心执行了DROP TABLE外,更让人崩溃的是忽略WHERE子句的UPDATE命令,例如,假设你想使用下面的命令修改用户的用户名: 复制代码 代码如下:
mysql>UPDATE users set User = 'wjgilmore' WHERE User = 'wjgilmore-temp';
但当你冲忙地想出去吃饭时,可能忘记敲入后面的WHERE子句
复制代码 代码如下:
mysql>UPDATE users set User = 'wjgilmore';
一旦你按下回车,后果就很严重,users表中所有用户的用户名全部被修改为wjgilmore了,为了避免这种低级,但又会带来灾难性后果的错误,请在配置文件中添加下面的命令:
复制代码 代码如下:
safe-updates
8、使用命令文档
许多用户都知道mysql客户端的内置文档,输入help命令时,它会显示一长串的命令列表。
复制代码 代码如下:
mysql>help
...List of all MySQL commands: Note that all text commands must be first on line and end with ';' ?(?)Synonym
for `help'.clear(c)Clear the current input statement.connect(r)Reconnect to the server.Optional arguments are db and host.delimiter(d)
Set statement delimiter....如果你不知道DESCRIBE命令如何使用,只需要输入
复制代码 代码如下:
mysql>help describe;
Name: 'DESCRIBE' Description: Syntax:
{DESCRIBE | DESC} tbl_name [col_name | wild] DESCRIBE provides information about the columns in a table.It is a shortcut for SHOW COLUMNS FROM.These statements also display information for views.(See [HELP SHOW COLUMNS].)...9、使用Pager
有时你可能想查看表的某一行数据,但在屏幕上往往会显示满屏的数据,除了使用LIMIT子句外,开启客户端pager,设置你的系统分页实用程序: 复制代码 代码如下:
mysql>pager more PAGER set to 'more'
如果要禁用pager,执行nopager命令即可。
10、将输出内容转储到文件
你可能偶尔需要将SQL执行结果输出到一个文本文件,可以使用SELECT INTO OUTFILE command命令达到目的,或直接在mysql客户端中启用tee命令,并制定输出文件实现同样的功能,如: 复制代码 代码如下:
mysql>tee sales_report.txt
小结 不管你是挑选其中一部分还是尝试这10个技巧,它们都会为你节省大量的时间和精力,并会减轻你的痛苦,如果你知道其它MySQL命令行技巧,不妨在评论中一起分享一下吧!
第二篇:Mysql常用语句小结
1.安装Mysql注意:选择语言
2.Doc系统下进入Mysql
mysql-u用户名-p密码
3.常用的命令:
1.查看mysql下所有的数据库:show databases;
2.创建数据库的命令:create database 数据库名称;
3.选择数据库:use 数据库名称;
查看所选择的数据库命令:select database();
====================表操作====================================
4.查看数据库中所包含的表:show tables;
5.创建表的命令:create table 表名(字段名 字段类型(字段长度).....);
6.字段类型:int,char,varchar,date,timestamp,double...(int 不准确)(double两个 参数1为共有几位,2为小数)
列类型显示格式
TIMESTAMP(14)YYYYMMDDHHMMSSTIMESTAMP带有时分秒
TIMESTAMP(12)YYMMDDHHMMSS
TIMESTAMP(10)YYMMDDHHMM
TIMESTAMP(8)YYYYMMDD
TIMESTAMP(6)YYMMDD
TIMESTAMP(4)YYMM
TIMESTAMP(2)YY
7.查看表结构的命令:desc 表名;
show columns from 表名;
8.向表中增加字段命令:alter table 表名 add 字段名 字段类型(字段长度)其他;
9.删除表中的字段命令:alter table 表名 drop 字段名;
10.更改字段名命令:alter table 表名 change old字段名 new字段名 字段类型(长度);
11.更改字段类型命令:alter table 表名 modify 字段名 字段类型;
12.更改表名命令:alter table 表名 rename 新表名;
13.删除表的命令:drop table 表名;
====================基本SQL语句============================
14.插入命令:
部分插:
insert into 表名(字段1,字段2...)values(字段1类型值,字段2类 型值...);
全插:
insert into 表名 values(...);
15.修改命令:
update 表名 set 字段=字段值 where 条件;
16.删除命令:
delete from 表名 where 条件;(清空记录)
======================查询(单表查询)======================
17.查询命令:
select 字段1,字段2...from 表名 where 条件;
select * from 表名----->*代指是全部的字段,顺序表中字段顺序
a>运算符:+,-,*,/
例:从emp表中,查询所有员工年薪加年终奖500的结果从emp表中,查询所有员工工资涨500之后的年薪b>列别名:
select 字段名 [as] 别名 from..c>..and..--->且
d>..or..--->或
e>id in(1,2)--->id=1 or id=2
f>not in()
g>between...and..h>like_,%
i>limit len
limit startIndex,len;
j>is , is not
k>distinct
18.order by排序asc(升序默认)desc(降序)
19.group by
分组函数:
sum,avg,max,min,count(*),count(字段)
查询比部门1中所有员工工资高的所有员工姓名;
20.having子句
对group by分组后再次筛选的条件
21.子查询
where语句中的select语句
========================多表联查======================
22.等值连接wherejoin on
23.表别名
mysql> select e.ename,d.dname,e.deptno from emp e,dept d wheree.deptno=d.deptno;
join...on...mysql> select e.ename,d.dname,e.deptno from emp e join dept d one.deptno=d.deptno;
24.自连接
显示所有员工以及员工经理名称;
mysql> select e.ename,g.ename from emp e,emp g where e.mrg=g.eno;
25.外连接
左外连接
A left join B on 条件
显示所有A的记录,以及符合条件的B记录
mysql> select e.ename,g.ename from emp e left join emp g one.mrg=g.eno;
右外连接 A right join B on 条件显示所有B的记录,以及符合条件的A记录
第三篇:mathematic命令小结
1.初等数学(1).算术函数
Plus(+)加号 Subtract(-)减号
Times(×)乘号, 用空格,* 或者×(Esc * Esc)表示 Divide(/)除号
Power(^)幂, 以上标形式输入,使用 Ctrl+^ Sqrt平方根, 输入 Sqrt[] 或使用 Ctrl+@ expr 直接输入表达式 N[expr]或 expr//N expr的近似值
N[expr,n] n位精度的expr的近似值(2).数学常数
Pi()圆周率(Esc p Esc)
E()自然对数底数(Esc ee Esc)Infinity()无穷大 (Esc inf Esc)I 虚数单位
Degree 度数 °
GoldenRatio 黄金分割 =(1+Sqrt[5])/21.618 EulerGamma 欧拉常数 0.577(3).复数 z=x+I y Re[z] 求z的实部 Im[z] 求z的虚部 Conjugate[z] 求z的共轭 Abs[z] 求z的模 Arg[z] 求z的幅角
Sign[z] 将z单位化(z/|z|)(4).数值函数
IntegerPart[x] x的整数部分 FractionalPart[x] x的分数部分 Round[x] x的四舍五入取整 Floor[x] x的向下取整 Ceiling[x] x的向上取整 Abs[x] x的绝对值
Max[{e1,..., en}] 给出n个数的最大值 Min[{e1,..., en}] 给出n个数的最小值 Sign[x] 符号函数 Boole[x] 布尔函数
UnitStep[x] 阶梯函数(x>=0时为1, x<0时为0)Mod[k, n] k模n(k除 n的余数)Quotient[m, n] m除n的商数(舍弃m/n的小数部分)QuotientRemainder[m,n] m除n的商数和余数的列表 GCD[n1, n2, ] 求n1, n2,...最大公约数 LCM[n1, n2, ] 求n1, n2,...最小公倍数 n!n的阶乘 n(n-1)(n-2)1 n!n的二阶阶乘 n(n-2)(n-4) Binomial[n,m] 组合数(n,m)= n!/[m!(n-m)!Multinomial[n1,n2, ]] 多重组合(n1+n2+ )!/(n1!n2!...)Rescale[x,{xmin,xmax}] IntegerDigits FromDigits(5).一般函数 初等函数
Log[x] 计算表达式的对数函数值 Log[b,x]
计算x以b为底的对数...Sin[x]
计算表达式的三角正弦 Cos[x] 计算表达式的三角余弦 Tan[expr]
计算表达式的三角正切 Cot[expr]
计算表达式的三角余切 Sec[expr]
计算表达式的三角余割 ArcSin[expr] 计算表达式的反三角正弦 ArcCos[expr] 计算表达式的反三角余弦 ArcTan[expr] 计算表达式的反三角正切...Sinh[expr]
计算表达式的双曲正弦 Cosh[expr] 计算表达式的双曲余弦 Coth[expr] 计算表达式的双曲余切 Tanh[expr]
计算表达式的双曲正切 ArcCosh[expr] 计算表达式的反双曲余弦 ArcSinh[expr] 计算表达式的反双曲正弦 ArcTanh[expr] 计算表达式的反双曲正切 Sech[expr]
计算表达式的双曲余割
特殊函数
Zata[expr]
计算表达式的Zata函数 Bessell[expr] 计算表达式的贝赛尔函数值 Beta[expr] 计算表达式的Beta函数值 Gamma[expr] 计算表达式的伽玛函数值 Erf[expr]
计算表达式的误差函数
统计函数
NormalDistribution[,] 正态分布 StudentTDistribution[v] 学生分布 ChiSquareDistribution[v] 2分布 FRatioDistribution[m,n] F分布 UniformDistribution[min,max] 均匀分布 ExponentialDistribution[] 指数分布
LaplaceDistribution[,] 拉普拉斯分布 GammaDistribution, ] 分布 BetaDistribution[, ] 分布 CauchyDistribution[a,b] 柯西分布 BernoulliDistribution[p] 贝努利分布 BinomialDistribution[n,p] 二项分布 PoissonDistribution[] 泊松分布
PDF 求分布的密度函数 CDF 求分布的概率函数 Mean 求均值 Variance 求方差 Quantile 求距 Skewness 求峰度 Kurtosis 求偏度 ExpectedValue 求期望
RandomReal 产生随机实数 RandomInteger 产生随机整数(6).自定义函数
f[x_]:=expr 定义函数f f[x_,y_]:=expr 定义多变量函数f.Piecewise[{{val1,cond1},{val2,cond2},}] 用于定义分段函数 ?f 显示函数的定义 Clear[f] 清除函数f x=value 给x赋值
x=.清除变量x的值
expr/.x->value 用value替换expr中的x(7).表达式化简
Simplify[expr] FullSimplify[exper] Simplify[expr,assum] assum 选项
Element[x,Reals] 或 xReals Element[x,Integers] 或 xIntegers Element[x,Complexs] 或 xComplexs Element[x,Primes] 或 xPrimes Element[x,Rationals] 或 xRationals Element[x,Booleans] 或 xBooleans Assumptions Assumming
2.多项式与有理函数(1).多项式
1、多项式的普通运算 Expand[poly] 展开多项式乘积与乘方 Factor[poly] 对多项式进行因式分解 FactorTerms[poly] 提取数字公因子
FactorTerms[poly,patt] 提取关于patt的公因子
Collect[poly,x] 以x幂的形式重新排列多项式 Collect[poly,{x,y,...}] 以x、y、...幂的形式重新排列多项式 Expand[poly,patt] 展开与patt相匹配的多项式poly
2、得到多项式的结构
PolynomialQ[expr,x] 判断expr是否为关于x 的多项式
PolynomialQ[expr,{x,y,...}] 判断expr是否为关于x,y,...的多项式 Variables[poly] 列出多项式poly中的变量 Length[poly] 列出多项式poly的项数
Exponent[poly,x] 给出多项式poly的x的最高指数 Coefficient[poly,expr] 给出多项式poly中关于expr的系数
CoefficientList[poly,{x,y,..}] 生成多项式poly中关于x、y、...的系数
3、多项式的代数运算
PolynomialQuotient[poly1,poly2,x] 求出关于x的多项式poly1除以poly2的商,忽略余式 PolynomialRemainder[poly1,poly2,x] 求出关于x的多项式poly1除以poly2的余式
PolynomialQuotientRemainder[poly1,poly2,x] 求出关于x的多项式poly1除以poly2的商和余式 PolynomialReduce[poly,{poly1,poly2,...},{x1,x2,...}] PolynomialGCD[poly1,poly2] 寻找两个多项式的最大公因式 PolynomialLCM[poly1,poly2] 寻找两个多项式的最小公倍式 Resultant[poly1,poly2,x] 寻找两个多项式的消元式 Discriminant[poly, x] 给出多项式有根的判别式
PolynomialReduce[poly,{poly1,poly2,...},{x1,x2,...}] 寻找使用ployi表示poly的最小表示式(2).有理式
关于有理多项式的运算
ExpandNumerator[expr] 仅把有理表达式的分子展开 ExpandDenominator[expr] 仅把有理表达式的分母展开 Expand[expr] 仅展开分子,并把分母分成单项 ExpandAll[expr] 同时展开有理表达式的分子和分母 ExpandAll[expr,patt] 仅展开与patt匹配的项 Together[expr] 合并具有相同分母的项
Apart[expr] 以最简分母项和的形式书写表达式 Cancel[expr] 约去分子分母中的公因子
Factor[expr] 将有理式合并,并同时对分子分母因式分解 Numerator[expr] 获取有理表达式的分子 Denominator[expr] 获取有理表达式的分母(3).三角函数表达式
1、三角表达式
TrigExpand[expr] 将三角函数表达式转化为和差
TrigFactor[expr] 将三角函数表达式和差形式转化为乘积形式 TrigReduce[expr] 用倍角的方法化简三角表达式 TrigToExp[expr] 将三角函数表达式转化为指数形式 ExpToTrig[expr] 将指数形式表达式转化为三角函数形式
2、含有复数变量的表达式
ComplexExpand[expr] 展开表达式expr,并假定所有的变量都是实数 ComplexExpand[expr,{x1,x2,...}] 展开表达式expr,并假定x1,x2,...变量都是复数
3.代数方程与不等式(1)代数方程求解
Solve[eq var] 求解方程eqns中的未知变量vars Solve[{eq1,eq2,...},{var1,var2,...}] 求解方程组
Root[f,k] 求解方程f[x]=0的第k个根
Reduce[eqns vars] 给出含未知常数方程eqns所有可能的情况 Eliminate[eqns,elims], 消去方程eqns中变量elims RSolve[eqns,vars[n]] 求递推方程eqns的通解vars[n] Resolve(2)不等式求解
Reduce[{eqns1, eqns2,...}, x] 给出满足不等式eqnsi的x的集合
4.微积分(1).求极限
x0f(x)Limit[f,x->x0] xlimLimit[f,xx0Limit[f,xx0
x0,Direction->1] xx0,Direction->-1] xlimf(x)f(x)
lim(2).求(偏)导
D[exp,x] 计算表达式一阶(偏)导数 D[exp,x1,x2,xn] 计算表达式混合偏导数
D[exp,{x,n}] 计算表达式对x的n阶(偏)导数 D[exp,{{x1,x2,...}}] 计算向量函数(偏)导数
Derivative[n 1,n2,][f] 对f的第一个变量求n1阶导数,第二个变量求n2阶导数,...Dt[exp] 计算表达式的全微分df Dt[exp,x] 计算表达式关于x的全导数df/dx
Dt[exp,x1,x2, xn] 计算表达式关于x1,x2,xn的全导数d/dx1 d/dx2...d/dxn f Dt[exp,x,Constants->{c1,c2,, cn}] 计算表达式关于x的全导数,并指出表达式中 ci为常数 Maximize[f,{x,y,}] 求变量为x,y,函数f的最大值.Maximize[{f,cons},{x,y,}] 求在约束条件cons下函数f的最大值
Minimize[f,{x,y,}] 求变量为x,y,函数f的最小值.Minimize[{f,cons},{x,y,}] 求在约束条件cons下函数f的最小值
FindMinimum[{f,cons},{x,x0},{y,y0}] 求在约束条件cons下函数f的局部最小值(3).求积分 Integrate[exp,x] 求表达式关于x的不定积分
Integrate[exp,{x,a,b}] 求表达式关于x在区间[a,b]上的定积分 NIntegrate[exp,{x,a,b}] 求表达式关于x在区间[a,b]上的数值积分 Integrate[exp,{x,a,b},{y,c,d}] 求x,y在区间[a,b][c,d]上的二重积分 Integrate[Boole*ieq,{x,a,b},{y,c,d}] 求不等式所限制的区域上的二重积分(4).幂级数展开
Series[exp,{x,x0,n}] 对表达式在x0处进行n阶展开
Series[exp,{x,x0,n1},{y,y0,n2}] 对二元表达式在x0,y0处进行n1,n2阶展开 Series1/.x->Series2 将级数Series2代入级数Series1 Normal[exp] 将级数转化为函数表达式(即:除去余项)Residue[exp,{x,x0}] 求exp在x=x0处的留数(5).微分方程
DSolve[eqn,y[x],x] 求解微分方程解y[x] DSolve[eqn,y,x] 求解微分方程解函数 DSolve[{eqn1,eqn2,eqnn},{y1,y2,yn},x] 求解微分方程组的解
DSolve[eqn, y[x1,x2,...], {x1,x2,...}] 求解偏微分方程的解(6).和与积
Sum[f,{i,imin,imax}] 和式
Sum[f,{i,imin,imax,di}] 关于i求和,i的步长为di
Sum[f,{i,imin,imax},{j,min,jmax}] 多重求和
Product[f,{i,imin,imax}] 求积(7).一些用于迭代的函数
Nest[f,x,n] 对x嵌套运用f函数n次 NestList[f,x,n] 产生一n元嵌套列表{x,f(x),f(f(x)),...}。FixPoint[f,x] 求x=f(x)的不动点
FixPointList[f,x] 产生一列表{x,f(x),f(f(x)),...},直到不动点为止 FixPoint[f,x,SameTestComp] 求x=f(x)的迭代,直到满足comp为止 Fold[f,x0,{a,b,...}] FoldList[f,x,{a,b,...}] 产生一列表{x,f(x,a),f(f(x,a),b),...}
5.线性代数
(1).数表与矩阵的输入及其构造
v={a1,a2,...an} 输入一个名为v的n维向量(表),其中ai为数值或为表达式 p={{e11,e12,e1n},,{em1,em2,emn}} 输入一个名为p的m×n矩阵(多维表),其中eij为数值或为表达式 v=Table[f,{i,m}] 输入一个名为v的n维向量(表), 其元素f为i的函数
p=Table[f,{i,m},{j,n}] 输入一个名为p的m×n矩阵, 其元素f为i,j的函数 p=Array[f,{i,m},{j,n}] 输入一个名为p的m×n矩阵,其元素为f[i,j] p=Range[f,{n}] 生成一列表{f[1],f[2],....f[n]} p=DiagonalMatrix[{e1,e2,,en}] 输入一个名为p的n阶对角阵,对角元素为e1,e2,,en
imaxiiminfimaxiiminjmaxjjminf
imaxiiminfp=IdentityMatrix[n] 输入一个名为t的n阶单位阵 p=Table[0,{m},{n}] 输入一个名为t的m×n零矩阵
p=Table[If[i>=j,f,0],{i,m},{j,n}] 输入一个名为p的m×n下三角阵,其元素f为i,j的函数 p=Table[If[i<=j,f,0],{i,m},{j,n}] 输入一个名为p的m×n上三角阵其元素f为i,j的函数 p=Normal[SparseArry[{{i1,j1}->v1,{i2,j2}->v2,...},{m,n}] 构造一矩阵其在ik行jk列的值为vk,其余为0。Tuples Subsets Permutations RandomChoice
(2).矩阵的剪裁
v[[i]](Part[v,i])取出向量v的第i个元素 M[[i,j]] 取出矩阵M的元素m(i,j)M[[i]] 取出矩阵M的第i行 M[[All,i]] 取出矩阵M的第i列
M[ {i1,i2ir},{ j1,j2js }] 取出矩阵M的一个r×s子矩阵,它由i1, 行和 j1, js列相交处的元素构成 M[{Range[ i0,i1],Range[ j0,j1]}] 或Take[M,{i0,i1}, {j0,j1}] 取出矩阵M的一个子块,它由 i0到 i1行和 j0Minors[M,i] 算出矩阵M的一个i×s的i阶余子式矩阵 ArrayRules[M] 矩阵M中非零元素的位置 Tr[M,List] 矩阵M对角线上的元素
M[[i,j]]=v 将矩阵M的i行j列的元素换为v。M[[i]]=v 将矩阵M的i行的元素全换为v。
M[[i]]={v1,v2,...} 将矩阵M的i行的元素全换为{v1,v2,...}。M[[All,j]]=u 将矩阵M的j列的元素全换为u。
M[[All,j]]={u1,u2,...} 将矩阵M的j列的元素全换为{u1,u2,...}。First Last Rest Most Take Drop TakeWhile Append Prepend Insert Delete AppendTo PrependTo RotateLeft RotateRight Reverse
ir 到j1列相交处的元素构成 Partition Flatten Sort Join Riffle(3).矩阵的运算
c*v 常数乘矩阵 v.u 向量内积 Norm[u] 求向量u的模
v*m 向量对应的元素相乘 m.v 矩阵乘向量 m.p 矩阵相乘 Cross[v,v] 向量差积
m*p 矩阵对应的元素相乘 VectorAngle[u,v] 求两向量的夹角 Normalize[u] 将向量u单位化 Orthogonalize[{u,v,...}] 将向两组正交化 Projection[u,v] 求向量u到v上的投影 Outer[Times,m,n] 求矩阵的外积 Transpose[m] 求矩阵的转置 Inverse[m] 求矩阵的逆矩阵 Det[m] 求矩阵的行列式
Minors[m,k] 矩阵所有可能的k*k阶子式 MatrixPower[m,i] 求矩阵m的i次幂
MatrixExp[m] 求以矩阵m作为指数的值 Tr[m] 求矩阵的迹
CharacteristicPolynomial[m,x] 求矩阵的特征多项式。Chop[%] 舍弃上一个输出中的无意义的小量 MatrixPlot[M] 打印矩阵 Map Apply(4).解线性方程组
LinearSolve[m,w] 求解线性方程组m.x=w的解 NullSpace[m] 求矩阵m的零化子空间
RowReduce[m] 用Gauss消元将矩阵m化为对角形式 MatrixRank[m] 求矩阵m的秩
LeastSquares[m,w] 求线性方程组m.x=w的最小二乘解(5).特征值,特征向量及分解
Eigenvalues[m] 求矩阵m的特征值
Eigenvalues[m,k] 矩阵m的最大的前k个特征值 Eigenvectors[m] 求矩阵m的特征向量
Eigenvectors[m,k] 对应矩阵m的最大的前k个特征值的特征向量 Eigensystems[m] 求数字矩阵m的特征值和特征向量 Eigenvalules[{m,a}] 求矩阵m关于a的广义特征值 Eigenvectors[{m,a}] 求矩阵m关于a的广义特征向量 QRDecomposition[m] 求数字矩阵m的QR分解 SchurDecomposition[m] 求数字矩阵m的Schur分解 LUDecomposition[m] 求数字矩阵m的LU分解
CholeskyDecomposition[m] 求数字矩阵m的Cholesky分解 JordanDecomposition[m] 求数字矩阵m的Jordan分解 SingularValues[m] 求数字矩阵m的奇异值分解 PseudoInverse[m] 求数字奇异矩阵m的拟逆
6.数值计算
(1).数据拟合与插值
ff=Table[N[f[x]],{x,n}] 输入名为ff的拟合函数表,变量x在区间[0,n]上,间距为1。fp=Fit[ff,{f1,f2,,fn},x] 建立名为fp的拟合函数,它由f1,,fn的线性组合形成,拟合变量为x。fp=FindFit[ff,form,{pars1,pars2,...},x] 建立名为fp的拟合函数,函数形式form已知,求参数parsi。fp=Fit[ff,Table[x^i,{i,0,n}],x] 多项式拟合的简单输入形式
ff=Flatten[Table[{x,y,f[x,y]},{x,x1,x2,dx},{y,y1,y2,dy},1] 输入名为ff的二元拟合函数表,变量x在区间[x1,x2]上,间距为dx。变量y在区间[y1,y2]上,间距为dy。
fp=Fit[ff,{f1,f2,,fn},{x,y}] 建立名为fp的拟合函数,它由f1,,fn的线性组合形成,拟合变量为x,y。ff={{x1,y1},{x2,y2},,{xn,yn}} 输入名为ff的二元插值函数表 fp=InterpolatingPolynomial[ff,x] 用牛顿法进行多项式插值
ip=Interpolation[{f1,f2,...}] 构造在整数点i处函数值为fi的插值多项式 ip=Interpolation[{{x1,f1},{x2,f2},...}] 构造在点xi处函数值为fi的插值多项式
ip=Interpolation[{{x1,y1,f1},{x2,y2,f2},...}] 对二维整数网格点上值为fij构造插值多项式
ip=ListInterpolation[List,{{xmin,xman},{ymin,ymax},...}] 对二维区域网格点值构造插值多项式
ip=ListInterpolation[List,{{x1,x2,...},{y1,y2...}}] 对二维区域上给定的网格点上值构造插值多项式(2).方程数值解与函数优化
NSolve[poly==0,x] 求多项式方程的解
NSolve[poly==0,x,n] 求多项式方程的解,精度为n。FindRoot[f[x]==0,{x,x0}] 用牛顿方法求方程在x0附近的解
FindRoot[f[x]==0,{x,x0,x1}] 用割线方法求方程在x0、x1附近的解 FindRoot[{f1,f2,...},{{x,x0},{y,y0},...}] 用牛顿方法求方程组在x10,x20,,附近的解 FindInstance[f[x]==0,x] 求方程的任意一特解
FindInstance[f[x]==0,x,dom] 求在给定范围dom内任意特解 FindInstance[f[x]==0,x,dom,n] 求在给定范围dom内任意n个特解 NIntegrate[f[x],{x,xmin,xmax}] 计算一元定积分
NIntegrate[f[z],{z,z0,z1,,zn,z0}] 计算复变函数的回路积分 NIntegrate[f[x,y],{x,a,b},{y,c,d}] 计算二元定积分
LinearProgramming[c,m,b] 求满足m.x>b,x>0约束使c.x最小的x LinearProgramming[c,m,b,l] 求满足m.x>b,x>l约束使c.x最小的x FindMinimum[f[x],{x,x0}] 求函数f(x)在x0附近的局部极小值
FindMinimum[f,{{x,x0},{y,y0},...}] 求函数f在{x0,y0,...}附近的局部极小值 FindMaximum[f[x],{x,x0}] 求函数f(x)在x0附近的局部极大值
FindMaximum[f,{{x,x0},{y,y0},...}] 求函数在{x0,y0,...}附近的局部极大值 NMinimize[f,{x,y,...}] 求多元函数函数f最小
NMinimize[{f,cons} ,{x,y,...}] 求在约束cons下函数f最大值 NMaximize[f,{x,y,...}] 求多元函数函数f最大值
NMaximize[{f,cons}, {x,y,...}] 求在约束cons下函数f最大值值(3).微分方程数值解
NDSolve[equ,y,{x,xmin,xmax}] 给出方程在区间[xmin,xmax]上关于y的数值解。NDSolve[equs,{y1,y2,...},{x,xmin,xmax}] 给出方程在区间[xmin,xmax]上关于函数yi的数值解。NDSolve[equs,u,{t,tmin,tmax},{x,xmin,xmax},...] 给出偏微分方程组上关于函数u的数值解。NDSolve[equs,{u1,u2,...},{t,tmin,tmax},{x,xmin,xmax},...] 给出偏微分方程组上关于函数ui的数值解。y[x]/.solution 得到方程插值形式的解y[x].Plot[Evaluate[y[x]/.solution],{x,xmin,xmax}] 打印出微分方程解的图形
7.绘图
(1).平面图形 显函数绘图
Plot[f, {x, x1, x2}, “选项”] 打印函数f在区间[x1, x2] 上的图形
Plot[{f1, f2,...}, {x, x1, x2}, “选项”] 在同一幅图上打印出函数f1, f2,...在区间[x1, x2] 上的图形 参数方程绘图
ParametricPlot[{x[t], y[t]}, {t, t0, t1}, “选项”] 画出参数形式给出的函数曲线图形 ParametricPlot[{fx, fy}, {u, u0, u1}, {v, v0, v1}, Option] 画出参数形式给出的函数所描述的区域图形 极坐标图形
PolarPlot[r, {theta, theta1, theta2}] 画出极坐标形式给出的函数曲线图形 PolarPlot[{r1, r2,...}, {theta, theta1, theta2}] 同时画出多个极坐标形式给出的函数曲线图形 隐函数图形
ContourPlot[f(x, y)== 0, {x, xmin, xmax}, {y, ymin, ymax}] 打印隐函数f == 0 所描述的曲线图 等高线图形
ContourPlot[f, {x, xmin, xmax}, {y, ymin, ymax}] 打印函数f所对应的等高线图 密度图形
DensityPlot[f, {x, xmin, xmax}, {y, ymin, ymax}] 打印函数f所对应的密度图 区域图形
RegionPlot[ineq, {x, xmin, xmax}, {y, ymin, ymax}] 打印不等式ineq所描述的区域图 Show[{g1, g2,..., gn}, Option] 显示几个已画出的函数图形 离散点图形
ListPlot[{y1, y2,..., yn}] 画出列表形式给出的函数图象(横坐标为整数)ListPlot[{{x1, y1}, {x2, y2},..., {xn, yn}}] 画出表形式给出的函数图象 ListLinePlot[list1, list2,..., Option] ListContourPlot[array] ListContourPlot[{{x1, y1, f1}, {x2, y2, f2},...}] ListDensityPlot[array] ListDensityPlot[{{x1, y1, f1}, {x2, y2, f2},...}] ArrayPlot[array] ReliefPlot[array] MatrixPlot[matrix]
Option选项常用的有: 图形界面选项
Frame-> “True” 给图形加上图框 FrameLabel-> None, FrameStyle-> {}, FrameTicks-> Automatic, FrameTicksStyle-> {}, AspectRatio-> Automatic,Background-> None, GridLines-> None, GridLinesStyle-> {}, ImageSize-> Automatic, Mesh-> None, MeshShading-> None, MeshStyle-> Automatic, 坐标轴选项 Axes-> True, AxesOrigin-> Automatic, AxesStyle-> {}, AxesLabel-> “名1,名2” 是否给坐标轴加上名字 RotateLabel-> True, Ticks-> Automatic, TicksStyle-> {} 图形选项
PlotPoints-> 数字 画图时计算函数的点数
PlotStyle-> RGBColor[a, b, c] 产生彩色图, a, b, c为[0, 1] 中的值 PlotRange-> {y1, y2} 指定函数因变量的区间 PlotLabel-> “图名” 是否给图形加上名字 ColorFunction-> Automatic, ColorFunctionScaling-> True, ColorOutput-> Automatic, Epilog-> {}, Filling-> None, FillingStyle-> Automatic, LabelStyle-> {}, Method-> Automatic, PlotRangeClipping-> True, PlotRegion-> Automatic, Prolog-> {}
ColorFunction-> Automatic, ColorFunctionScaling-> True, ColorOutput-> Automatic, ContourLabels-> None, ContourLines-> True, Contours-> Automatic, ContourShading-> Automatic, ContourStyle-> Automatic, Exclusions-> Automatic, GridLines-> None, GridLinesStyle-> {}, ImageMargins-> 0., ImageSize-> Automatic, LabelStyle-> {}, PlotPoints-> Automatic, PlotRange-> {Full, Full, Automatic}, PlotRegion-> Automatic Prolog-> {}, RegionFunction->(True &), RotateLabel-> True, Ticks-> Automatic, TicksStyle-> {}
(2).空间图形
Plot3D[f[x,y],{x,xmin,xmax},{y,ymin,ymax},Option] 绘制函数z=f(x,y)在给定范围内的三维图形。ParametricPlot3D[{x[t],y[t],z[t]},{t,t1,t2},Options] 绘制三维空间的曲线图。
ParametricPlot3D[{fx[u,v],fy[u,v],fz[u,v]},{u,u1,u2},{v,v1,v2},Option] 绘制三维空间的曲面图 RevolutionPlot3D SphericalPlot3D RegionPlot3D Show[图形名,Option] 显示已绘制好的图形,按特别说明加以修改 CotourPlot3D[f[x,y,z],{x,xmin,xmax},{y,ymin,ymax},{z,zmin,zmax}] 绘制函数f=f(x,y,z)在给定范围内的等值面图。ListPlot3D ListPointPlot3D 绘制3维散点图 ListSurfacePlot3D ListContourPlot3D 8.编程
(1).条件结构
If[cond,then,else,none] 如果cond成立,计算then;不成立,计算else;无法判定,计算none。Which[cond1,value1,cond2,value2,...,True,value] 如果条件cond1成立,计算value1,条件cond2成立,计算value2,...,全不成立,计算value。lhs:=rhs/;cond 如果cond成立,定义lhs为rhs,Switch[expr,form1,valu1,form2,value2,...,_,def] 如果条件cond1成立,计算value1,条件cond2成立,计算value2,...,都不相等,计算def。(2).循环结构
Do[expr[i],{i,min,max,id}] 计算表达式expr[i],i从min到max,步长为id。Do[expr,{n}] 计算表达式expr n次。
While[cond,expr] 只要cond为true,就计算expr。For[start,test,incr,expr] 从start开始计算expr一次,再计算incr一次,直到test为false结束.
第四篇:Shell命令文本操作命令小结
Shell命令文件操作命令小结
显示文本文档中某几行: 显示第n行: sed-n 'np' test.txt 或 head-n test.txt |tail-1 显示第m到第n行: sed-n 'm,np' test.txt 或 head-n test.txt | tail-(n-m)显示某一文件夹folder/下所占存储空间: du-sh folder/
删除某文件夹下的特定文件: 例:删除某文件加下的软连接文件 rm-f `ls-l|grep ^l|awk `{print $8}` 返回上次进入的目录:cd-删除一个文本文档中所有内容: 切换到命令行模式 :1,$d
使用rm删除一个目录下的除了ttt以外的所有文件 解决:
1.ls | grep-v ttt | xargsrm {} 2.ls | grep-v ttt | xargsrm 3.mvttt /tmp/ &&rm-rf * && mv /tmp/ttt./ 4.find.-name e-prune-o-print | xargsrm-rf 5.find.-name e-prune-o-name dir-prune-o-print | xargsrm-rf {} 6.删除目录下的除去ttt和目录外所有文件 d=/tjy/ fori in `ls $d`;do if [ $i!= “ttt” ];then
j=`file $d$i | awk '{print $2}'` if [ $j!= “directory” ];then rm-rf $d$i fi fi done
利用shell命令分割文件: 系统运维的过程中,日志文件往往非常大,这样就要求对日志文件进行分割,在此特用shell脚本对文件进行分割 方法一: #!/bin/bash
linenum=`wc-l httperr8007.log| awk '{print $1}'` n1=1 file=1
while [ $n1-lt $linenum ] do n2=`expr $n1 + 999`
sed-n “${n1}, ${n2}p” httperr8007.log > file_$file.log n1=`expr $n2 + 1` file=`expr $file + 1` done 其中httperr8007.log为你想分割的大文件,file_$file.log 为分割后的文件,最后为file_1.log,file_2.log,file_3.log……,分割完后的每个文件只有1000行(参数可以自己设置)方法二: split 参数:
-b :后面可接欲分割成的档案大小,可加单位,例如 b, k, m 等;-l :以行数来进行分割; #按每个文件1000行来分割除 split-l 1000 httperr8007.log httperr httpaa,httpab,httpac........#按照每个文件100K来分割 split-b 100k httperr8007.log http httpaa,httpab,httpac........使用alias来自定义命令
还有一个使工作变得轻松的方法是使用命令别名。命令别名通常是其他命令的缩写,用来减少键盘输入。命令格式为: alias [alias-name=’original-command’]
其中,alias-name是用户给命令取的别名,original-command是原来的命令和参数。需要注意的是,由于Bash是以空格或者回车来识别原来的命令的,所以如果不使用引号就可能导致Bash只截取第一个字,从而出现错误。如果alias命令后面不使用任何参数,则显示当前正在使用的被别名化的命令及其别名。为命令取的别名在该次登录期间始终有效。如果用户需要别名在每次登录时都有效,那么就将alias命令写到初始化脚本文件中。
这是一些很多人认为有用的别名,可以把它们写入初始化脚本文件中来提高工作效率: alias ll=’ls –l’ alias log=’logout’ alias ls=’ls –F’
如果您是一名DOS用户并且习惯了DOS命令,可以用下面的别名定义使 Linux表现得象DOS一样: aliasdir=’ls’ alias copy=’cp’ alias rename=’mv’ alias md=’mkdir’ alias rd=’rmdir’
注意:在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。仅在命令中包含空格或特殊字符时才需要引号。如果键入不带任何参数的alias命令,将显示所有已定义的别名。
第五篇:诺西—常用BSC命令小结
诺西
常用BSC命令小结(多用逗号,少用分号,检查命令没有问题后再执行这条语句)
ZEEI: 看状态
ZEFS:BCF号:L/U;对BCF重新启动
ZEQS:BTS=BTS号:L/U;对BTS重新启动
ZERS:BTS=BTS号,TRX=TRX号:L/U;对一个载频重新启动 ZEFO:BCF号:ALL;查看BCF所有参数
ZEQO:BTS=BTS号:ALL;查看BTS所有参数 ZEQV: GPRS的修改 ZEQE: 修改BTS的跳频
ZERO:BTS=BTS号,TRX=TRX号:ALL;查看BTS所有参数(一般查整个bcf的情况)ZEAO:BTS=BTS号;查看BTS的相邻小区 ZEHO:BTS=BTS号;查看BTS的切换参数 ZEUO:BTS=BTS号;查看BTS的功率控制参数 ZEBP:; 看LAC号(网优给数据的时候我们要去核对一下)ZEOL:查看基站当前告警 ZEOH::BCF=;查看当天告警 ZEOH: 查看基站历史告警
ZEEI:BTS=BTS号;查看BTS的详细信息 ZEOL::NR=告警号
快捷键 ctrl+y(终止正在执行的命令)快捷键 ctrl+c(暂停)一般与ZDDS;指令合用 快捷键 ctr+A
加入参数
ZEQE:BTS=:HOP=:开关调频(基站数据库中有相邻小区,横向查 ZEQU:BTS=XX:GENA=Y;修改SEG ZEQG:BTS=143:RLT=64,RXP=-94,;修改无线接入参数值 ZEWO:看当前软件包版本
ZEWL:看BSC中的软件包版本 ZEWA:放一个新软件包 ZEWH:切换软件包 ZEWV:激活软件包
ZESE:创建EDAP,也可以使用此命令来查看有没有许可证,来加EDGE ZEQM:BTS=: RDIV=Y:;打开分级接收
ZEQK:BTS=:CNT=20:;修改干扰参数,20为上限值 ZESG:ID=(ET_INDEX):;删除edge ZEAM:修改邻区参数
ZESI:ID=(ET_INDEX);查看已有的EAGE条数 ZEAT:;查看有没有同频的邻区
ZEAO:SEG=::ASEG=:;查看两个小区邻区关系
ZEAO:::ASEG=本小区号:;查看所有指向本小区的邻区 ZEAO:SEG=:;查看所有指出的邻区
ZEAD:SEG=::CI=,LAC=:;仅仅删除指向CI的邻区 ZEOR:BCF:13914(告警顺序号码):;删除误告警
ZUSC:单元名,单元号:目的状态;修改指定单元的状态 ZUSI:单元名,单元号;查看各单元状态的相关信息 ZUDU:单元名,单元号;诊断指定单元 ZUSI:ET,130查看配传输状态 ZCEL:CGR=1;查看A接口电路状态
ZCEC:CRCT=PCM号-时隙号:目的状态;修改A接口电路状态
ZRCI:GSW:CGR=1;查看A接口电路详细信息 ZRCR:删除未使用的电路
ZAHO:查看BSC当前告警 ZAHP:查看BSC历史告警
ZAHO ::NR=2993:;查看有没有上下时隙不匹配的告警 ZAHO ::NR=2725:;邻区出错
ZNEL:查看CCS7信令的详细信息
ZFXI:NSEI=0&&65535:BTS;查看GB链路详细情况(信息)ZFUI::;查物理通道
ZFWO:开EDGE时查看BCSU,PCU(先用ZEQO查到NSEI再用NSEI的值去查找,当BSC为3i时为ZFXO)ZFXO:NSEI=544:BTS:;查看544下挂的BTS个数和BCSU,PCU ZFXO:BCSU=0&&8:BTS;查看所有的下挂基站和NSEI号 ZFQU:BTS=XX:GENA=N 重启
ZQNI:查看BSC所处的位置
ZQNS::;查看电脑记录,正在操作的用户名
ZIGO:2008-3-27,:USERID=GSMGSM:CMD=EQS,::;查看许可用户对基站的操作记录 ZQRI:;查看BSC的IP地址
ZDSB:::PCM=;查ET ZDDS: 查看起站过程 2725的处理 告警出现后
记下此时的BCSU号 输入ZDDS:BCSU=?:;>ZGSC 回车
对照相应告警出现的时间找到LAC,CI号后
CALLER
: 01C0 0074 00
RETURN ADDRESS: 000C(L0001).0000127C
WRITE TIME: 2008-05-06
23:40:56.35
PARAMETERS: E-01 0024.00001F20 00000082 000C.0001C6C9
USER TEXT : HAS:set ALARM 0x2725.target cell list
USER DATA : 01 01 88 F9 14 03 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00红色的为LAC,绿色的为CI 然后到网管里更改相应的MBCCH,NCC,BCC值(修改时注意锁闭所有的有关小区和载波,然后查看与之有关的小区参数是否已更改)ZDTI:::PCM=;
ZDTI:::PCM=?;查看传输信令使用状态 ZDTI::::UA;查看又没有临时的OMU信令
ZYEF:ET,ET号;对传输(把ET调整到工作状态
ZWUP:ET号::ALL;看传输上面时序的应用情况 ZW7I:查看许可证使用数量和日期 ZWOS:查看运行参数 ZWOI:集成的参数值
BSIC--71:此参数左为NCC值,右边为BCC值。用ZEQO:BTS=124:ALL;就可以查出
ZRCI:查看监控时隙 ZRBI
ZWQO:CR(创建的软件包)RUN(正在运行的)ALL(所有的)
ZIAL:;察看允许的在本BSC执行的指令
COMMANDS ALLOWED IN THIS DIALOGUE SESSION
ZIAA:NOKIAA:ALL=250:PARAPW=NO,VTIME=FOREVER,ACCESS=COM,UNIQUE=NO,:TLIMIT=15:FTP=NO:;
在新BSC下建新用户!
ZIAH:NOKIAA:NOKIAA:;创建密码