第一篇:linux 命令总结
linux 命令总结
1、永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip
2、从Linux上远程显示Windows桌面 安装rdesktop包
3、手动添加默认网关 以root用户,执行: route add default gw 网关的IP 想更改网关
vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY
/etc/init.d/network restart
4、查出22端口现在运行什么程序 lsof-i :22
5、查看本机的IP,gateway, dns IP: 以root用户登录,执行ifconfig。其中eth0是第一块网卡,lo是默认的设备
Gateway: 以root用户登录,执行netstat-rn,以0.0.0.0开头的一行的Gateway即为默认网关
也可以查看/etc/sysconfig/network文件,里面有指定的地址!
DNS: more /etc/reslov.conf,内容指定如下: nameserver 202.206.32.1 nameserver 202.206.32.1
6、RH8.0命令行下轻松改变ping 的TTL值 #sysctl-w net.ipv4.ip_default_ttl=N(N=0~255),若N>255,则ttl=0
7、RH8.0命令行下轻松改变系统配置默认值
编辑/etc/sysctl.conf, 例如,将 net.ipv4.ip_forward = 0 变为 net.ipv4.ip_forward = 1 重启后生效,用sysctl-a查看可知
8、mount局域网上其他windows机器共享出的目录
mount-t smbfs-o username=guest,password=guest //machine/path /mnt/cdrom
9、允许|禁止root通过SSH登陆
修改sshd_config:PermitRootLogin no|yes
10、让root直接telnet登陆
编辑/etc/pam.d/login,去掉 auth required /lib/security/pam_securetty.so 这句话
11、改变telnet的端口
/etc/services这个文件里可修改想要的端口号.重启守护进程
12、终端模式有问题 export TERM=vt100
13、模仿超级终端,LINUX里什么程序连接路由器和交换机(alstone)minicom
14、ssh上来能不能不自动断线
那是timetou的设置,修改TMOUT变量值
15、用什么工具做入侵检测
snort
16、Linux下检测程序内存泄漏的工具 cchecker或是efence库都可以
17、linux下如何监视所有通过本机网卡的数据 tcpdump iptraf
18、为什么root执行好多命令都说command not found 一定是telnet上来的,然后su成root的,修改su命令格式,应该是su更换你登入时所用的shell 语法
chsh [-s shell ] [-l ] [-u ] [-v ] [ username ] 描述
chsh 用来更换你登入时所用的shell。在命令列没指定shell。chsh 会提示一个给你。
有效的shell
chsh 可用指定路径全名的方式来指定任何一个可执行的档案。然而,如果此 shell并没纪录在 /etc/shells 档上,则chsh会提出警告讯息。选项
-s,--shell 变更你的登入shell.-l,--list-shells
列出纪录在 /etc/shells 的shell。
-u,--help 使用短讯。
-v,--version 版本资讯
相关文件
login(1), passwd(5), shells(5)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 114 在linux下一些常用的关机/重启命令
有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。
1.shutdown shutdown命令安全地将系统关机。有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
shutdown 参数说明:
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
2.halt----最简单的关机命令
其实halt就是调用shutdown-h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
参数说明:
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
3.reboot reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多。
4.init init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit-iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 115 Linux服务器的一些基本应用
现就以如下网络架构为例,来说一下linux服务器的配置。在正式配置之前先说一下这个服务器所要实现的功能: 1.数据共享 2.打印共享 3.模拟NT域 4.ADSL共享 5.内部DNS服务 6.DHCP服务 7.FTP服务 8.www.xiexiebang.com/distrib/sourc...pd-1.2.5.tar.gz 2]安装: tar zxvf proftpd-1.2.5.tar.gz cd proftpd-1.2.5./configure –prefix=/usr/local/proftpd //指定安装在/usr/local/proftpd目录下 make make install cp contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd chmod 700 /etc/rc.d/init.d/proftpd chkconfig –level 3 proftpd on //设置为系统自启动服务
cp /usr/local/proftpd/sbin/proftpd /usr/sbin //将proftpd拷至/usr/sbin目录下,让系
统能自动搜索到,也免得再去加一个搜索路径 3]配置/usr/local/proftpd/etc/proftpd.conf文件: vi /usr/local/proftpd.conf ServerName “Xchen FTP server” //服务器登录提示 ServerType standalone DefaultServer on Port 21 Umask 022 MaxInstances 30 User nobody Group nobody //原来为nogroup,请改成nobody RequireValidShell off //手动添加此名,重要
//限定test组用户只能访问自己的home目录,而不能向上浏览 DefaultRoot ~ test //限定test组用户只能访问自己的/home/ftp目录,不能向上浏览 DefaultRoot ~/ftp test //限定music组用户只能访问/home/music目录,不能向上浏览 DefaultRoot /home/ftp music //除music组中bb用户外都能访问/home/music目录,不能向上浏览 DefaultRoot /home/ftp music,!bb //上面组需要自己建立:groupadd test,gpasswd –a username test ServerIdent off //登录时不显示版本信息 AllowOverwrite on // /home/ftp为匿名用户登录目录 User ftp Group ftp UserAlias anonymous ftp MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir.message DenyAll 4]启动服务:/etc/rc.d/init.d/proftpd start 5]测试,在客户端用FTP软件或命令行FTP程序进行访问ftp.cx.com。6]proftpd还有很多高级应用,请参考相关资料,这里就不多赘述。
十、www.xiexiebang.com提供的动态服务的实现。
1]登录www.xiexiebang.com网站,注册一个用户,并申请一个动态域名xxxx.3322.org。2]下载linux客户端软件:
http://www.xiexiebang.com/dyndnspage/ez-i...-linux-i386.tgz 3]安装软件:
tar zxvf ez-ipupdate-3.0.10-linux-i386.tgz mv ez-ipupdate-3.0.10-linux-i386 /usr/local/ezip 4]编辑/usr/local/ezip/qdns.conf文件:
vi /usr/local/qdns.conf service-type=qdns user=username:password //用户名及密码,用冒号隔开 host=xxxxx.3322.org //你申请的域名 interface=ppp0 //接口为ppp0 max-interval=2073600 cache-file=/tmp/ez-ipupdate.cache 5]将当前ip现新到我们申请的域名: cd /usr/local/ezip ez-ipupdate –c qdns.conf 系统会提示数据更新成功,好,我们来ping一下xxxx.3322.org,是ppp0的IP,再用http://xxx.3322.org试一下,成功!!。
6]问题又来了,难道我们每次启动ADSL都要用手动更新一次吗,你可能会想到用crontab让它每隔几分钟更新一次,不过为了ip更新而启用crond服务似乎有点小题大做,我的方法,修改/usr/sbin/adsl-start脚本:
vi /usr/sbin/adsl-start 找到倒数25行‖tty –s && $ECHO ― Connected!―,在其下增加一行: /usr/local/ezip/ez-ipupdate –c /usr/local/ezip/qdns.conf 存盘退出,我们让ADSL拔号完成以后自动更新!7]测试一下: adsl-start.Connected!ez-ipupdate Version 3.0.10 Copyright(C)1999-2000 Angus Mackay.connected to members.3322.org(202.X.X.X)on port 80.request successful OK,数据更新成功。
好,现在你随时随地都可以用xxxx.3322.org访问你的服务了,不错吧。
十二、openssh的设置
如果你在家里或者其它地方,怎样控制你的服务器,你可能会想到用telnet,本来是可以的,但是由于telnet用的是明码传输,容易给那些不怀好意者可乘之机,所以我们用openssh来代替telnet。
1]卸载原来的2.9x版,2.9x版有bug,不安全: rpm –e openssh 2]最新软件包下载:
ftp://ftp.openbsd.org/pub/OpenBSD/O...sh-3.4p1.tar.gz 3]安装软件:
tar zxvf openssh-3.4p1.tar.gz cd openssh-3.41./configure--prefix=/usr/local/ssh--sysconfdir=/etc/ssh--with-tcp-wrappers--with-ipv4-default--with-md5-passwords make
make install
注:安装完成以后,会自动生成主机密钥,还会提示需要sshd用户帐号,可用useradd加一个sshd用户。
install /contrib/redhat/sshd.pam /etc/pam.d/sshd cp contrib/redhat/sshd.init /etc/rc.d/init.d/sshd chkconfig--level 3 sshd on ;配置成系统服务 4]配置openssh之/etc/ssh/ssh_config文件 vi /etc/ssh/ssh_config Host * ForwardAgent no ForwardX11 no RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes
PasswordAuthentication yes BatchMode no CheckHostIP yes
StrictHostKeyChecking ask IdentityFile ~/.ssh/identity Port 22 Cipher 3des
EscapeChar ~
5]配置openssh之/etc/ssh/sshd_config文件 vi /etc/ssh/sshd_config Port 22 ListenAddress 0.0.0.0 ListenAddress :: HostKey /etc/ssh/ssh_host_key HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key KeyRegenerationInterval 3600 ServerKeyBits 768
SyslogFacility AUTH LogLevel INFO
LoginGraceTime 600
#PermitRootLogin yes #还是不要让root直接登录为妙!StrictModes yes RSAAuthentication yes PubkeyAuthentication yes RhostsAuthentication no IgnoreRhosts yes RhostsRSAAuthentication no HostbasedAuthentication no IgnoreUserKnownHosts no PasswordAuthentication yes PermitEmptyPasswords no Subsystem sftp /usr/local/ssh/libexec/sftp-server 6]配置用户的加密密钥
useradd test passwd test su test ssh-keygen-d 出现提示请回车并输入passwd,再次输入passwd。
注:这个密码是系统加密运算时用到的,登录时还用原来密码。
7]启动服务
/etc/rc.d/init.d/sshd start 8]在客户端用test帐号进行测试。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%55 116 linux几条命令的基本用法
提示符为#表示需要root权限,$表示一般用户权限即可 1.linux下面命令行查找文件的两个方法
1)find $ find 路径-name 待查找文件-print-xdev参数把查询操作限制在当前的文件系统之中: $ find /mnt/dos-name *.sys-print-xdev 2)locate + updatedb: # updatedb $ locate 待查找文件
2.使用whatis和apropos命令获取命令简介 # makewhatis //更新whatis数据库 $ whatis w //查看命令w的功能
$ apropos search //查找有search功能的有哪些命令
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 117 在RedHat Linux环境中实现双网卡绑定
用于双网卡在同一网段内的情况,可以实现流量均衡或者备份 1.#cd /etc/sysconfig/network-scripts # cp ifcfg-eth0 ifcfg-bond0--2 #vi ifcfg-bond0 将第一行改成 DEVICE=bond0--3 # vi /etc/modules.conf 加入两行
alias bond0 bonding
options bond0 miimon=100 mode=1
--4 # vi /etc/rc.d/rc.local 加入两行
ifenslave bond0 eth0 eth1 route add-net 192.168.0.0 netmask 255.255.255.0 bond0--5 reboot 重启会看见:
................Bringing up interface bond0 OK Bringing up interface eth0 OK Bringing up interface bond1 OK--6.检查: #netstat-r 192.168.0.0 255.255.255.0 0 40 0 0 bond0 192.168.0.0 255.255.255.0 0 40 0 0 eth0 192.168.0.0 255.255.255.0 0 40 0 0 eth1 这时候看看你的网卡后面的灯, 他们闪的频率是一样的..当#ifdown eth0 时, 转换有5-6秒的延时.--注意:
如果网络不通需要从启bind # ifdown bind0
#ifup bind0
网卡绑定用在vncserver 或scp中就不灵了 118 route命令使用方法
route命令主要用于手动配置静态路由表 例:增加一条通过网关到达令一子网的路由
#route add net remote_net_ip gateway_ip 1
其中add代表要增加路由,net表示路由到达的是一个网络而不是一台主机,1代表远端网络需通过网关才能到达
(直接通过网络接口相连时,该参数用0)命令格式:
#route add-net remote_net_ip gateway_ip-netmask netmask #route add-host host_ip local_interface_ip-interface
使用“delete”,“change”命令参数可以对路由表中的路由信息进行删除和修改
使用“netstat-rn”命令查看当前的路由信息
过修改文件/etc/defaultrouter可以设置一些默认路由 $$$$$$$$$$$$$$$$$$$$$$$$$$$$ 122 find命令详细用法 名称 : find 用法 : find
使用说明 :
将文件系统内符合 expression 的文件列出来。你可以指要文件的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。
find 根据下列规则判断 path 和 expression,在命令列上第一个] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求.所有的单个字符
* 所有字符,长度可以为0
3、举例
# ps-ef | grep in.telnetd
root 19955 181 0 13:43:53 ? 0:00 in.telnetd # more size.txt size文件的内容 b124230 b034325 a081016 m7187998 m7282064 a022021 a061048 m9324822 b103303 a013386 b044525 m8987131 B081016 M45678
B103303 BADc2345 # more size.txt | grep '[a-b]' 范围 ;如[A-Z]即A,B,C一直到Z都符合要求 b124230 b034325 a081016 a022021 a061048 b103303 a013386 b044525 # more size.txt | grep '[a-b]'* b124230 b034325 a081016 m7187998 m7282064 a022021 a061048 m9324822 b103303 a013386 b044525 m8987131 B081016 M45678
B103303 BADc2345 # more size.txt | grep '' 单个字符;如[A] 即A符合要求 b124230 b034325 b103303 b044525 # more size.txt | grep '[bB]' b124230 b034325 b103303 b044525 B081016 B103303 BADc2345 # grep 'root' /etc/group root::0:root bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon uucp::5:root,uucp mail::6:root tty::7:root,tty,adm lp::8:root,lp,adm nuucp::9:root,nuucp daemon::12:root,daemon
# grep '^root' /etc/group 匹配正则表达式的开始行 root::0:root # grep 'uucp' /etc/group uucp::5:root,uucp nuucp::9:root,nuucp # grep '/tmp/sharetab.$$ [ “x$fstype”!= xnfs ] && echo “$patht$rest$fstypet$optst$desc” >>/tmp/sharetab.$$
/usr/bin/touch-r /etc/dfs/sharetab /tmp/sharetab.$$ /usr/bin/mv-f /tmp/sharetab.$$ /etc/dfs/sharetab if [-f /etc/dfs/dfstab ] && /usr/bin/egrep-v '^[ ]*(#|$)' if [ $startnfsd-eq 0-a-f /etc/rmmount.conf ] && if [ $startnfsd-ne 0 ];then elif [!-n “$_INIT_RUN_LEVEL” ];then while [ $wtime-gt 0 ];do wtime=`expr $wtime-1` if [ $wtime-eq 0 ];then
echo “Usage: $0 { start | stop }” # more size.txt the test file their are files The end
# grep 'the' size.txt the test file their are files # grep '' size.txt the test file
# grep '' size.txt the test file
# grep '' size.txt the test file The end 119 Emacs 安装 1.获得 Emacs
http://ftp.gnu.org/pub/gnu/emacs/ http://savannah.gnu.org/projects/emacs/ ftp://soft.eeatech.org:11021/incoming/other/ 2.安装方法
PATH=%emacs%/bin 3.基本配置
Emacs 的配置文件.emacs or _emacs HOME=%path% 120 UNIX awk使用手册 什么是awk?
你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写。事实上,awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。
AWK的功能是什么?与sed和grep很相似,awk是一种样式扫描与处理工具。但其功能却大大强于sed和grep。awk提供了极其强大的功能:它几乎可以完成 grep和sed所能完成的全部工作,同时,它还可以可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上,awk的确拥有自己的语言:awk程序设计语言,awk的三位创建者已将它正式定义为:样式扫描和处理语言。
为什么使用awk?
使用awk的第一个理由是基于文本的样式扫描和处理是我们经常做的工作,awk所做的工作有些象数据库,但与数据库不同的是,它处理的是文本文件,这些文件没有专门的存储格式,普通的人们就能编辑、阅读、理解和处理它们。而数据库文件往往具有特殊的存储格式,这使得它们必须用数据库处理程序来处理它们。既然这种类似于数据库的处理工作我们经常会遇到,我们就应当找到处理它们的简便易行的方法,UNIX有很多这方面的工具,例如sed、grep、sort以及find等等,awk是其中十分优秀的一种。
使用awk的第二个理由是awk是一个简单的工具,当然这是相对于其强大的功能来说的。的确,UNIX有许多优秀的工具,例如UNIX天然的开发工具C语言及其延续C++就非常的优秀。但相对于它们来说,awk完成同样的功能要方便和简捷得多。这首先是因为awk提供了适应多种需要的解决方案:从解决简单问题的awk命令行到复杂而精巧的awk程序设计语言,这样做的好处是,你可以不必用复杂的方法去解决本来很简单的问题。例如,你可以用一个命令行解决简单的问题,而C不行,即使一个再简单的程序,C语言也必须经过编写、编译的全过程。其次,awk本身是解释执行的,这就使得awk程序不必经过编译的过程,同时,这也使得它与shell script程序能够很好的契合。最后,awk本身较C语言简单,虽然awk吸收了C语言很多优秀的成分,熟悉C语言会对学习awk有很大的帮助,但 awk本身不须要会使用C语言——一种功能强大但需要大量时间学习才能掌握其技巧的开发工具。
使用awk的第三个理由是awk是一个容易获得的工具。与C和C++语言不同,awk只有一个文件(/bin/awk),而且几乎每个版本的UNIX都提供各自版本的awk,你完全不必费心去想如何获得awk。但C语言却不是这样,虽然C语言是UNIX天然的开发工具,但这个开发工具却是单独发行的,换言之,你必须为你的UNIX版本的C语言开发工具单独付费(当然使用D版者除外),获得并安装它,然后你才可以使用它。
基于以上理由,再加上awk强大的功能,我们有理由说,如果你要处理与文本样式扫描相关的工作,awk应该是你的第一选择。在这里有一个可遵循的一般原则:如果你用普通的shell工具或shell script有困难的话,试试awk,如果awk仍不能解决问题,则便用C语言,如果C语言仍然失败,则移至C++。
awk的调用方式
前面曾经说过,awk提供了适应多种需要的不同解决方案,它们是:
一、awk命令行,你可以象使用普通UNIX命令一样使用awk,在命令行中你也可以使用awk程序设计语言,虽然awk支持多行的录入,但是录入长长的命令行并保证其正确无误却是一件令人头疼的事,因此,这种方法一般只用于解决简单的问题。当然,你也可以在shell script程序中引用awk命令行甚至awk程序脚本。
二、使用-f选项调用awk程序。awk允许将一段awk程序写入一个文本文件,然后在awk命令行中用-f选项调用并执行这段程序。具体的方法我们将在后面的awk语法中讲到。
三、利用命令解释器调用awk程序:利用UNIX支持的命令解释器功能,我们可以将一段awk程序写入文本文件,然后在它的第一行加上: #!/bin/awk-f
并赋予这个文本文件以执行的权限。这样做之后,你就可以在命令行中用类似于下面这样的方式调用并执行这段awk程序了。
awk脚本文本名 待处理文件
awk的语法:
与其它UNIX命令一样,awk拥有自己的语法:
awk [-F re] [parameter...] ['prog'] [-f progfile][in_file...] 参数说明:
-F re:允许awk更改其字段分隔符。
parameter: 该参数帮助为不同的变量赋值。
'prog': awk的程序语句段。这个语句段必须用单拓号:'和'括起,以防被shell解释。这个程序语句段的标准形式为:
'pattern {action}' 其中pattern参数可以是egrep正则表达式中的任何一个,它可以使用语法/re/再加上一些样式匹配技巧构成。与sed类似,你也可以使用“,”分开两样式以选择某个范围。关于匹配的细节,你可以参考附录,如果仍不懂的话,找本UNIX书学学grep和sed(本人是在学习ed时掌握匹配技术的)。action参数总是被大括号包围,它由一系统awk语句组成,各语句之间用“;”分隔。awk解释它们,并在pattern给定的样式匹配的记录上执行其操作。与shell类似,你也可以使用―#‖作为注释符,它使―#‖到行尾的内容成为注释,在解释执行时,它们将被忽略。你可以省略pattern和 action之一,但不能两者同时省略,当省略pattern时没有样式匹配,表示对所有行(记录)均执行操作,省略action时执行缺省的操作——在标准输出上显示。
-f progfile:允许awk调用并执行progfile指定有程序文件。progfile是一个文本文件,他必须符合awk的语法。
in_file:awk的输入文件,awk允许对多个输入文件进行处理。值得注意的是awk不修改输入文件。如果未指定输入文件,awk将接受标准输入,并将结果显示在标准输出上。awk支持输入输出重定向。
awk的记录、字段与内置变量:
前面说过,awk处理的工作与数据库的处理方式有相同之处,其相同处之一就是awk支持对记录和字段的处理,其中对字段的处理是grep和sed不能实现的,这也是awk优于二者的原因之一。在awk中,缺省的情况下总是将文本文件中的一行视为一个记录,而将一行中的某一部分作为记录中的一个字段。为了操作这些不同的字段,awk借用shell的方法,用1,2,3...这样的方式来顺序地表示行(记录)中的不同字段。特殊地,awk用0表示整个行(记录)。不同的字段之间是用称作分隔符的字符分隔开的。系统默认的分隔符是空格。awk允许在命令行中用-F re的形式来改变这个分隔符。事实上,awk用一个内置的变量FS来记忆这个分隔符。awk中有好几个这样的内置变量,例如,记录分隔符变量RS、当前工作的记录数NR等等,本文后面的附表列出了全部的内置变量。这些内置的变量可以在awk程序中引用或修改,例如,你可以利用NR变量在模式匹配中指定工作范围,也可以通过修改记录分隔符RS让一个特殊字符而不是换行符作为记录的分隔符。
例:显示文本文件myfile中第七行到第十五行中以字符%分隔的第一字段,第三字段和第七字段:
awk-F % 'NR==7,NR==15 {printf 1 3 7}' awk的内置函数
awk 之所以成为一种优秀的程序设计语言的原因之一是它吸收了某些优秀的程序设计语言(例如C)语言的许多优点。这些优点之一就是内置函数的使用,awk定义并支持了一系列的内置函数,由于这些函数的使用,使得awk提供的功能更为完善和强大,例如,awk使用了一系列的字符串处理内置函数(这些函数看起来与C 语言的字符串处理函数相似,其使用方式与C语言中的函数也相差无几),正是由于这些内置函数的使用,使awk处理字符串的功能更加强大。本文后面的附录中列有一般的awk所提供的内置函数,这些内置函数也许与你的awk版本有些出入,因此,在使用之前,最好参考一下你的系统中的联机帮助。
作为内置函数的一个例子,我们将在这里介绍awk的printf函数,这个函数使得awk与c语言的输出相一致。实际上,awk中有许多引用形式都是从C语言借用过来的。如果你熟悉C语言,你也许会记得其中的printf函数,它提供的强大格式输出功能曾经带我们许多的方便。幸运的是,我们在awk中又和它重逢了。awk中printf几乎与C语言中一模一样,如果你熟悉C语言的话,你完全可以照C语言的模式使用awk中的printf。因此在这里,我们只给出一个例子,如果你不熟悉的话,请随便找一本C语言的入门书翻翻。例:显示文件myfile中的行号和第3字段:
awk '{printf“%03d%sn”,NR,1}' myfile 在命令行使用awk
按照顺序,我们应当讲解awk程序设计的内容了,但在讲解之前,我们将用一些例子来对前面的知识进行回顾,这些例子都是在命令行中使用的,由此我们可以知道在命令行中使用awk是多么的方便。这样做的原因一方面是为下面的内容作铺垫,另一方面是介绍一些解决简单问题的方法,我们完全没有必要用复杂的方法来解决简单的问题----既然awk提供了较为简单的方法的话。
例:显示文本文件mydoc匹配(含有)字符串“sun”的所有行。
awk '/sun/{print}' mydoc
由于显示整个记录(全行)是awk的缺省动作,因此可以省略action项。
awk '/sun/' mydoc
例:下面是一个较为复杂的匹配的示例:
awk '/[Ss]un/,/[Mm]oon/ {print}' myfile
它将显示第一个匹配Sun或sun的行与第一个匹配Moon或moon的行之间的行,并显示到标准输出上。
例:下面的示例显示了内置变量和内置函数length()的使用:
awk 'length(0)>80 {print NR}' myfile
该命令行将显示文本myfile中所有超过80个字符的行号,在这里,用0表示整个记录(行),同时,内置变量NR不使用标志符''。
例:作为一个较为实际的例子,我们假设要对UNIX中的用户进行安全性检查,方法是考察/etc下的passwd文件,检查其中的passwd字段(第二字段)是否为“*”,如不为“*”,则表示该用户没有设置密码,显示出这些用户名(第一字段)。我们可以用如下语句实现:
#awk-F: '2==“" {printf(”%s no password!n“,1' /etc/passwd 在这个示例中,passwd文件的字段分隔符是―:‖,因此,必须用-F:来更改默认的字段分隔符,这个示例中也涉及到了内置函数printf的使用。
awk的变量
如同其它程序设计语言一样,awk允许在程序语言中设置变量,事实上,提供变量的功能是程序设计语言的其本要求,不提供变量的程序设计语言本人还从未见过。
awk 提供两种变量,一种是awk内置的变量,这前面我们已经讲过,需要着重指出的是,与后面提到的其它变量不同的是,在awk程序中引用内置变量不需要使用标志符”“(回忆一下前面讲过的NR的使用)。awk提供的另一种变量是自定义变量。awk允许用户在awk程序语句中定义并调用自已的变量。当然这种变量不能与内置变量及其它awk保留字相同,在awk中引用自定义变量必须在它前面加上标志符”“。与C语言不同的是,awk中不需要对变量进行初始化,awk根据其在awk中第一次出现的形式和上下文确定其具体的数据类型。当变量类型不确定时,awk默认其为字符串类型。这里有一个技巧:如果你要让你的 awk程序知道你所使用的变量的明确类型,你应当在在程序中给它赋初值。在后面的实例中,我们将用到这一技巧。
运算与判断:
作为一种程序设计语言所应具有的特点之一,awk支持多种运算,这些运算与C语言提供的几本相同:如+、-、*、/、%等等,同时,awk也支持C语言中类似++、--、+=、-=、=+、=-之类的功能,这给熟悉C语言的使用者编写awk程序带来了极大的方便。作为对运算功能的一种扩展,awk还提供了一系列内置的运算函数(如log、sqr、cos、sin等等)和一些用于对字符串进行操作(运算)的函数(如length、substr等等)。这些函数的引用大大的提高了awk的运算功能。
作为对条件转移指令的一部分,关系判断是每种程序设计语言都具备的功能,awk也不例外。awk 中允许进行多种测试,如常用的==(等于)、!=(不等于)、>(大于)、=(大于等于)、>=(小于等于)等等,同时,作为样式匹配,还提供了~(匹配于)和!~(不匹配于)判断。
作为对测试的一种扩充,awk也支持用逻辑运算符:!(非)、&&(与)、||(或)和括号()进行多重判断,这大大增强了awk的功能。本文的附录中列出了awk所允许的运算、判断以及操作符的优先级。
awk的流程控制
流程控制语句是任何程序设计语言都不能缺少的部分。任何好的语言都有一些执行流程控制的语句。awk提供的完备的流程控制语句类似于C语言,这给我们编程带来了极大的方便。
1、BEGIN和END:
在awk 中两个特别的表达式,BEGIN和END,这两者都可用于pattern中(参考前面的awk语法),提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。任何在BEGIN之后列出的操作(在{}内)将在awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变量,使用END来输出最终结果。
例:累计销售文件xs中的销售金额(假设销售金额在记录的第三字段):
awk
>'BEGIN { FS=”:“;print ”统计销售金额“;total=0} >{print 3;total=total+3;}
>END {printf ”销售金额总计:%.2f“,total}' sx(注:>是shell提供的第二提示符,如要在shell程序awk语句和awk语言中换行,则需在行尾加反斜杠)
在这里,BEGIN预置了内部变量FS(字段分隔符)和自定义变量total,同时在扫描之前显示出输出行头。而END则在扫描完成后打印出总合计。
2、流程控制语句
awk提供了完备的流程控制语句,其用法与C语言类似。下面我们一一加以说明:
2.1、if...else语句: 格式:
if(表达式)语句1 else 语句2 格式中”语句1"可以是多个语句,如果你为了方便awk判断也方便你自已阅读,你最好将多个语句用{}括起来。awk分枝结构允许嵌套,其格式为:
if(表达式1)
{if(表达式2)
语句1 else 语句2 }
语句3 else {if(表达式3)语句4 else 语句5 }
语句6 当然实际操作过程中你可能不会用到如此复杂的分枝结构,这里只是为了给出其样式罢了。
2.2、while语句
格式为:
while(表达式)语句
2.3、do-while语句
格式为:
do { 语句
}while(条件判断语句)
2.4、for语句
格式为:
for(初始表达式;终止条件;步长表达式)
{语句}
在awk 的 while、do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出。break 中断当前正在执行的循环并跳到循环外执行下一条语句。continue从当前位置跳到循环开始处执行。对于exit的执行有两种情况:当exit语句不在 END中时,任何操作中的exit命令表现得如同到了文件尾,所有模式或操作执行将停止,END模式中的操作被执行。而出现在END中的exit将导致程序终止。例:为了
awk中的自定义函数
定义和调用用户自己的函数是几乎每个高级语言都具有的功能,awk也不例外,但原始的awk并不提供函数功能,只有在nawk或较新的awk版本中才可以增加函数。
函数的使用包含两部分:函数的定义与函数调用。其中函数定义又包括要执行的代码(函数本身)和从主程序代码传递到该函数的临时调用。
第二篇:stata命令总结
表2-1: 回归分析相关命令一览
命令用途
anova 方差和协方差分析 heckman Heckman 筛选模型
intreg 离散型变量模型,包括Tobit、cnreg 和intreg ivreg 工具变量法(IV 或2SLS)
newey Newey-West 标准差设定下的回归
prais 针对序列相关的Prais-Winsten, Cochrane-Orcutt, or Hildreth-Lu 回归 qreg 分量回归 reg OLS 回归 sw 逐步回归法
reg3 三阶段最小二乘回归
rreg 稳健回归(不同于方差稳健型回归,即White 方法)sureg 似无相关估计
svyheckman 调查数据的Heckman 筛选模型 svyintreg 调查数据的间断变量回归 svyregress 调查数据的线性回归 tobit Tobit 回归
treatreg treatment 效应模型 truncreg 截断回归
表2-2: 时间序列命令一览
命令用途
clemao1 允许结构突变的单位根检验 zandrews dfuller dfgls pperron coin 单方程协整检验
dwstat 参考dwstat2 , durbina2 durbinh
表2-3: Panel Data 模型相关命令一览I 命令模型
统计描述相关命令:
xtdes 变量类型,数据类型描述 xtsum 基本统计量 xttab 按表格形式列示 xtpattern 面板数据的模式 估计相关命令:
xtreg 面板数据模型(固定效应、随机效应)
xtregar 含有AR(1)干扰项的固定效应和随机效应面板数据模型
xtgls 截面-时序混合模型,可处理异方差、组内序列相关和组间相关性 xtpcse OLS or Prais-Winsten models with panel-corrected standard errors xtrchh Hildreth-Houck random coefficients models xtivreg 面板模型的工具变量或两阶段最小二乘法估计 xtabond Arellano-Bond(1991)线性动态面板数据模型估计
xtabond2 Arellano-Bover(1995)系统GMM 动态面板数据模型估计 xttobit Tobit 随机效应面板模型
xtintreg Random-effects interval data regression models xtlogit Fe, Re, Pa logit models xtprobit Re, Pa probit models xtcloglog Re, Pa cloglog models xtpoisson Fe, Re, Pa Poisson models xtnbreg Fe, Re, Pa negative binomial models xtfrontier 面板随机前沿模型
xthtylor Hausman-Taylor estimator for error-components models
表2-4: Panel Data 模型相关命令一览II 命令模型
假设检验相关:
test Wald 检验,如时间效应联合显著性检验 xttest0 随机效应检验 xttest1 面板序列相关检验 xttest2 ads xtserial Wooldridge 一阶序列相关检验 xtab Arellano 面板一阶序列相关检验 hausman Hausman 检验 面板单位根和协整相关: xtunit stata提供的检验方法
ipshin IPS(2003)面板单位根检验
levilin Levin,Lin和Chu(LLC, 2002)面板单位根检验 madfuller Sarno-Taylor(1998)面板单位根检验
xtfisher Maddala和Wu(1999),基于P 值的面板单位根检验
表2-5: Post-estimation Commands 命令名称用途
adjust 列示预测结果的均质,适于多种回归分析,可分组列示 estimates 估计结果的存储、再显示、列表比较等 hausman Hausman 模型识别检验
lincom 获得参数的线性组合,在Logit 模型中可以获得系数线性组合的OR 值 linktest 但方程link 识别检验,用y 对Oy 和Oy2 回归 lrtest 似然比(LR)检验
mfx 计算边际效应和弹性系数 nlcom 系数的非线性组合 predict 获得拟合值、残差等
predictnl 获得非线性估计的拟合值、残差等 test 线性约束的假设检验,Wald 检验 testnl 非线性约束的假设检验
vce 列示参数估计值的方差-协方差矩阵
表2-6: 二维图种类一览
图形种类简单描述 scatter scatterplot line line plot connected connected-line plot scatteri scatter with immediate arguments area line plot with shading bar bar plot spike spike plot dropline dropline plot dot dot plot rarea range plot with area shading rbar range plot with bars rspike range plot with spikes rcap range plot with capped spikes rcapsym range plot with spikes capped with symbols rscatter range plot with markers rline range plot with lines rconnected range plot with lines and markers tsline time-series plot tsrline time-series range plot mband median-band line plot mspline spline line plot lowess LOWESS line plot lfit linear prediction plot qfit quadratic prediction plot fpfit fractional polynomial plot lfitci linear prediction plot with CIs qfitci quadratic prediction plot with CIs fpfitci fractional polynomial plot with CIs function line plot of function histogram histogram plot kdensity kernel density plot 表2-7: 二维图选项一览
选项类别简单描述
added line options draw lines at specified y or x values added text option display text at specified(y,x)value axis options labels, ticks, grids, log scales title options titles, subtitles, notes, captions legend option legend explaining what means what scale(#)resize text, markers, and line widths region options outlining, shading, aspect ratio, size aspect option constrain aspect ratio of plot region scheme(schemename)overall look by(varlist,...)repeat for subgroups nodraw suppress display of graph name(name,...)specify name for graph saving(filename,...)save graph in file advanced options difficult to explain 表2-9: 模拟分析相关命令一览
命令用途备注 抽样相关:
corr2data 产生具有指定相关性的数据仅适用于模拟相关分析 drawnorm invnorm(uniform())产生服从标准正态分布的随机数函数,可调节均值和方差 matuniform(r,c)产生均匀分布函数
sample 从现有数据中进行非重复随机抽样参考bsample sim arma 产生服从ARIMA 过程的随机变量需要下载 Bootstrap 相关: bootstrap bs bstat bsample MC 相关: simulate MC simulation jknife 类似于MC permute postfile 存储MC 的结果 statsby exp list
第三篇:stata命令总结
stata11常用命令
注:JB统计量对应的p大于0.05,则表明非正态,这点跟sktest和swilk检验刚好相反; dta为数据文件; gph为图文件; do为程序文件;
注意stata要区别大小写; 不得用作用户变量名:
_all _n _N _skip _b _coef _cons _pi _pred _rc _weight double float long int in if using with 命令:
读入数据一种方式 input x y 1 4 2 5.5 3 6.2 4 7.7 5 8.5 end su/summarise/sum x 或 su/summarise/sum x,d 对分组的描述: sort group by group:su x %%%%% tabstat economy,stats(max)%返回变量economy的最大值
%%stats括号里可以是:mean,count(非缺失观测值个数),sum(总和),max,min,range,%% sd,var,cv(变易系数=标准差/均值),skewness,kurtosis,median,p1(1%分位
%% 数,类似地有p10, p25, p50, p75, p95, p99),iqr(interquantile range = p75 – p25)_all %描述全部
_N 数据库中观察值的总个数。_n 当前观察值的位置。_pi 圆周率π的数值。list gen/generate %产生数列 egen wagemax=max(wage)clear use by(分组变量)set more 1/0 count %计数
gsort +x(升序)gsort-x(降序)sort x 升序;并且其它变量顺序会跟着改变 label var y “消费” %添加标签 describe %描述数据文件的整体,包括观测总数,变量总数,生成日期,每个变量的存储类型(storage type),标签(label)replace x5=2*y if x!=3 %替换变量值
replace age = 25 in 107 %令第107个观测中age为25 rename y2 u %改变变量名
drop in 2 %删除全部变量的第2行
drop if x==.删去x为缺失值的所有记录
keep if x<2 %保留小于2的数据,其余变量跟随x改变 keep in 2/10 %保留第2-10个数
keep x1-x5 %保留数据库中介于x1和x5间的所有变量(包括x1和x5),其余变量删除
ci x1 x2,by(group)%算出置信区间,不过先前对group要先排序,即sort group;
%by的意思逐个进行
cii 12 3.816667 0.2710343, level(90)%已知均值,方差,计算90%的置信区间
cii 10 2 %obs=10,mean=2,以二项分布形式,计算置信区间 centile x,centile(2.5 25 50 75 97.5)%取分位数 correlate/corr x y z %相关系数
pwcorr x y,sig %给出原假设r=0的命令 %如果变量非服从正态分布,则spearman x y regress/reg mean year %回归方程建立 reg y x,noconstant %无常数项 predict meanhat %预测拟合值 predict e,residual %得到残差 estat hettest % 异方差检验
dwstat % Durbin-Watson自相关检验 vif % 方差膨胀因子
logit y x1 x2 x3(y取0或1,是被解释变量,x1-x3是被解释变量)%logit回归
probit y x1 x2 x3(y取0或1,是被解释变量,x1-x3是被解释变量)%probit回归
tobit y x1 x2 x3(y取值在0和1之间,是被解释变量,x1-x3是被解释变量)%tobit回归
sktest e %残差正态性检验 p>0.05则接受原假设,即服从正态分布; %% sktest是基于变量的偏度和斜度(正态分布的偏度为0,斜度为3)swilk x %基于Shapiro-Wilk检验
%%p值越小,越倾向于拒绝零假设,也就是变量越有可能不服从正态分布 xi %生成虚拟变量 tabulat gender,summ(math)%用gender指标对math进行分类,返回两类math的mean、std、freq tabulate=tab %gen f=int((shengao-164)/3)*3+164 组距为3 tabulate 变量名 [, generate(新变量)missing nofreq nolabel plot ] %%%%% generate(新变量)// 按分组变量产生哑变量 nofreq // 不显示频数 nolabel // 不显示数值标记 plot // 显示各组频数图示 missing // 包含缺失值
cell // 显示各小组的构成比(小组之和为 1)column // 按栏显示各组之构成(各栏总计为 1)row // 按行显示各组之构成(各行总计为 1)%%%%% 求和,求最小? mod(x,y)%求余数
means %返回三种平均值 di normprob(1.96)di invnorm(0.05)di binomial(20,5,0.5)di invbinomial(20,5,0.5)di tprob(10,2)di invt(10.0.05)di fprob(3,27,1)di invfprob(3,27,0.05)di chi2(3,5)di invchi2(3,0.05)stack x y z,into(e)%把三列合成一列 xpose,clear %矩阵转置
append using d: 917.dta %把已打开的文件(x y z)跟0917里的(x y z)合并,是竖向合并,即观察值合并;
merge using D: 917.dta %把已打开的文件(x y z)跟0917里的(a b)合并,是横向合并,即变量合并; format x %9.2e %科学记数 format x %9.2f %2位小数
%产生随机数
%1 产生20个在(0,1)区间上均匀分布的随机数uniform()set seed 100 set obs 20 gen r=uniform()list % clear 清除内存
set seed 200 设置种子数为 200 set obs 20 设置样本量为 20 range no 1 20 建立编号 1 至 20 gen r=uniform()产生在(0,1)均匀分布的随机数 gen group=1 设置分组变量 group 的初始值为 1 sort r 对随机数从小到大排序
replace group=2 in 11/20 设置最大的 10 个随机数所对应的记录
为第2组,即:最小的10个随机数所
对应的记录为第1组 sort no 按照编号排序
list 显示随机分组的结果 也可以list if group==1和list no if group==1 %2 产生10个服从正态分布N(100,6^2)的随机数invnorm(uniform())*sigma+u clear 清除内存
set seed 200 设置种子数为 200 set obs 10 设置样本量为 10 gen x=invnorm(uniform())*6+100 产生服从 N(100,6^2)的随机数 list 画图
注意有些图前面要加 histogram 直方图 line 折线图 scatter 散点图
scatter y x,c(l)s(d)b2(“(a)”)graph twoway connected y x 连点图
graph bar(sum)var2,over(var1)blabel(total)%条形图.graph bar p52 p72,by(d).graph bar p52 p72,over(d).graph bar p52 p72,by(d)stack.graph bar p52 p72,over(d)stack ////////////数据如下 %d p52 p72 %1 163.2 27.4 %2 72.5 83.6 %3 57.2 178.2 histogram x,bin(8)norm %画直方图,加正态分数线
graph pie a b o ab if area==1,plabel(_all percent)%画饼图 graph pie var2, over(var1)plabel(_all percent)%饼图 graph pie p52 p72,by(d)%饼图 graph box y1 %箱体图 qnorm x %qq图 lfit y x %回归直线
graph matrix gender economy math 多变量散点图
line yhat x||scatter y x,c(.l)s(O.)xline(12)yline(5.4)%线形图&散点图
有一些通用的选项可以给图形“润色”:
标题 title(“string”)(string可为任意的字符串,下同)脚注 note(“string”)
横座标标题 xtitle(“string”)纵座标标题 ytitle(“sting”)
横座标范围 xaxis(a,b)(a
connect(c...c)//连接各散点的方式,c表示: 或简写为c(c...c).不连接(缺省值)l 用直线连接
L 沿x方向只向前不向后直线连接 m 计算中位数并用直线连接 s 用三次平滑曲线连接 J 以阶梯式直线条连接
|| 用直线连接在同一纵向上的两点
II 同 ||, 只是线的顶部和底部有一个短横 Symbol(s...s)// 表示各散点的图形,s 表示: 或简写为s(s...s)O 大圆圈(缺省值)S 大方块 T 大三角形 o 小圆圈 d 小菱形 p 小加号.小点 i 无符号
[varname] 用变量的取值代码表示 [_n] 用点的记录号表示
数学函数等都要与generate、replace、display一起使用,不能单独使用 程序文件do use d: 917.dta reg y x corr y x line y x,saving(d:d4)按ctrl+D执行 字符串操作函数:
length(s)%长度函数,计算s的长度, 如,disp length(“ab”)的结果是2 substr(s,n1,n2)%子串函数,获得从s的n1个字符开始的n2个字符组成的字符串, disp substr(“abcdef”,2,3)的结果是“bcd” string(n)%将数值n转换成字符串函数,如,disp string(41)+“f”的结果是“41f” real(s)%将字符串s转换成数值函数,如,disp real(“5.2”)+1的结果是6.2 upper(s)%转换成大写字母函数,如,disp upper(“this”)的结果是“THIS” lower(s)%转换成小写字母函数,如disp lower(“THIS”)的结果是“this” index(s1,s2)%子串位置函数,计算s2在s1中第一次出现的起始位置, 如果s2不
在s1中, 则结果为0。如,disp index(“this”,“is”)的结果是3, 而index(“this”,“it”)的结果是0 trim(s)%去除字符串前面和后面的空格 ltrim(s)%去除字符串前面的空格 rtrim(s)%去除字符串后面的空格
di sign(x)%x>0时取1, x<0时取-1, x=0时取0; 符号函数 di int(x)%去掉x的小数部分, 得到整数(取整函数)sum(x)%获得包括当前记录及以前的所有记录的x 的和。缺失值(missing value)当0处理;求和函数
max(x1,x2,...,Xn)忽略缺失值;最大值函数 min(x1,x2,...,Xn)忽略缺失值;最小值函数 float(x)%将x转换成浮点表示法。
gen yy=cond(x<2,10,11)%条件函数cond(x,a,b)x可以是一个条件, x非0(条件成立)时取a, x为0(条件不成立)时取b。
gen y1=recode(x,2,5)%归组函数recode(x,x1,x2,...xn)gen y2=autocode(x,3,-2,9)%autocode(x,ng,xmin,xmax)自动将区间(xmin,xmax)分成ng个等长的小区间,其结果是包含x值那个小区间的上界值
t检验: gend=x-y ttestd=0 ttestx=y 如果不配对
ttestx1=x2,unpaired ttestx1=x2,unequalunpaired 已知样本均数、标准差和样本数进行t检验:
ttesti 21 1.28 0.92 0.2 %检验均值是否等于0.2 检验两组均数是否相同:
ttesti 11 10 1.9 14 12.8 2.3 检验变量x1和x2的方差是否相同(即:齐性)sdtestx1=x2
一、配对设计的平均水平检验
当总体服从正态分布时,可以选用t检验,否则用非参符号秩检验 signrankd=0
二、平行对照设计的两组资料平均水平统计检验
如果两组资料的方差齐性和相互独立的,并且每组资料服从正态 分布,则用成组t检验,否则可以用成组Wilcoxon秩和检验 ranksum x, by(group)%2组资料中位数比较 kwallis x, by(group)%多组资料中位数比较 anova x t id %x为因变量,t跟id是因素 egenr=rank(x),by(id)%产生秩r 单因素方差分析: 单因素方差分析又称为OnewayANOVA,用于比较多组样本的均数是否相同,并假定:每组的数据服从正态分布,具有相同的方差,且相互独立,则无 效假设Ho:各组总体均数相同。在STATA中可用命令:
oneway x group, mean bonferroni %bonferroni用于多组样本均数的两两比较检验
logrank t outcome, by(group)%单因素生存分析 两因素方差分析
多因素方差分析:anova y x1 x2 x1*x2
第四篇:AutoCAD2017命令总结
AutoCAD2017命令总结
直线:L+空格
画直线时点三点:C+空格键可以使三条线形成闭合状态 画圆:C+空格
ESC取消一切命令
单击右键可以回到上一步命令(控制在250毫秒内)正交:F8切换正交
绘制线段:光标指定方向,输入数字+空格键 指定长度:输入数字+Tab 指定角度:输入数字+enter 打开设置界面:OP 三角形内画圆采用相切三点画圆
圆弧:端点(起点)----中心点-------端点 删除命令:E+空格键
切换圆弧方向:在最后端点时不点击确定,按住Ctrl移动光标即可改变圆弧方向 启动三点圆弧命令:A+空格键 光顺曲线:BLEND+空格键
修剪命令:首先选好不修剪的位置(选择时呈现蓝色)选好后按空格键,这时光标变成红色X点击后即可修剪。
椭圆绘制:EL+空格键(椭圆命令开始系统设置:端点--端点---高)椭圆圆心命令:EL+空格键+C+空格键 椭圆弧命令:EL+空格键+A+空格键
绘制椭圆弧开始命令前要选择好中心点。
样条曲线拟合:绘制后需要调整时应先将捕捉按钮关闭
样条曲线控制点命令:与样条曲线拟合相似,但是更容易操作 多线段:PL+空格键(多用于计算面积)矩形:REC+空格键
圆角矩形:REC+空格键+F+空格键
设置圆角半径 倒角矩形:REC+空格键+C+空格键
设置倒角半径 多边形:POL+空格键 单点命令:PO +空格键
点设置:DDPTYE+空格键(在页面上无法找到点设置快捷方式要牢记)圆环:DOUNT+空格键(直接在页面上单击圆环命令更方便)
第二章:(图例)
示例图形:移动:M+空格键
减选命令:SHIFT+单击所要减选的图形即可 栏选方式:M+空格键+F+空格键
复制命令:单击复制+P(选择上一次点击的对象)+空格键(结束点击空格键)类似选择:选择需要类似选择的一小部分+单击右键 全选:Ctrl+A 快速选择窗口:QSELECT+空格键
(打开快速选择窗口首先要制定范围不然应用将用于所有窗口)
移动捕捉中点:M+空格键(选择需要移动捕捉的对象)按住Shift键单击右键选择中点 移动制定距离:
第五篇:嵌入式linu学习心得
嵌入式Linux学习心得
1、Linux命令
ls:查看目录-l以列表方式查看;ls –l 与ll的功能一样 pwd: 查看当前的目录
cd:改变当前操作目录cd /直接跳到根目录 cd..回到上一级目录 cat: 打印显示当前文件的内容信息
mkdir:创建目录
fdisk: 查看硬盘分区信息,-l以列表方式查看
->代表是链接文件,类似window下的快捷方式。
cp: 复制命令,例子cp 文件名 /home/dir/
mv: 移动或改名,如mv sonf.confsonf.txt(改名)移动:mv sonf.conf / rm:删除命令,如rm –f test.c;如删除目录rm –fr d
man:查看某个命令的帮助,man 命令
2、各系统目录的功能
drw—r—w--:d代表是目录,drw代表当前用户的权限,r代表组用户的权限,w代表其它用户的权限。x代表有执行权限。
/boot/gruff.conf: 启动引导程序
/dev:brw—rw--:b代表是块设备。Linux设备有三种,块设备(b开头)、字符设备(c开头)、网络设备。had代表第一个硬盘,hdb代表第二个硬盘。Hdb2代表第二块硬盘的第二个分区。3,67代表主设备为3,从设备为67./etc:存放的是系统的配置文件。Inittab文件存放不同启动方式下必须启动的进程。Inittab文件中有6个启动level,wait中对应着6个level的目录,respawn代表当一个进程被意外终止了,但会自动启动的进程,如守护进程。rc.d目录中存放了一个rc.sysinit文件,里面存放系统初始化配置信息。/etc还有一个vsftpd里面存放tcp、ftp的配置。
/home : 用户目录,存放用户的文件,/lib:存放库文件,后缀为so的文件代表动态链接库。
/lost+found:系统意外终止,存放一些可以找回的文件。
/mnt:挂载外部设备,如挂载光驱:mount –t /dev/cdrom/mnt/cdrom,如
果在双系统中,要查看windows中D盘的文件,首先应该将D盘的文件映射过来,mount –t /dev/hda2/mnt/windows/d
/opt:用户安装的应用程序
/proc:是系统运行的映射,比较重要。里面的文件数字代表进程号。每个进程号目录下包含进程的基本信息。还有其他信息,如cpuinfo等,内核支持的文件系统filesystem等。系统支持的中断interrupts,iomen代表内存分配情况。ioport存放IO端口号。还有分区信息,modole信息,状态信息,版本信息
对于Linux的设备驱动程序,有两种加载模式,一种是直接加载进linux内核,一种是以模块的方式加载到内核。
/sbin: 系统管理的一些工具。如poweroff关机工具。
/usr: 安装系统时很多文件放在此目录下面,包含一些更新等,include包含的头文件,lib 是Linux的库文件,src包含Linux2.4的内核源码
/var:存放是临时变量
3、