awk 'BEGIN{total=0}{total=total+$1}END{print "the total is " total }' file
Submitted by admin on 2012, May 31, 9:48 PM
awk 'BEGIN{total=0}{total=total+$1}END{print "the total is " total }' file
Submitted by admin on 2012, May 31, 9:48 PM
两种方法避免shell被截断,一种是{}另一种是() 区别是{}需要多出来一对空格,而()就不需要 相同的是每个命令之后都要有分号; 例如,下面两个就是区别,有没有空格的区别: { echo "jiaozhenqing";echo "1"; } (echo "jiaozhenqing";echo "1";) {空格echo "jiaozhenqing";echo "1";空格} |
Submitted by admin on 2012, May 31, 9:46 PM
经常需要记忆这个东西,cmd>/dev/null 2>&1,那么原因是什么呢?
今天好好研究下这个东西
首先是2>1和2>&1的区别,很明显,我们是需要2>&1而不是2>1
2>&1这个是说将cmd执行的错误内容输出到标准输出中
2>1这个则是将cmd执行的错误内容输出到1这个文件中
第二点,2>&1是什么意思?&1是说文件描述符因此2>&1是说将错误输出输出到标准输出
第三点,为什么是cmd >/dev/null 2>&1而不是cmd 2>&1 >/dev/null呢?
如果先2>&1,那么这个时候还没有生成标准输出呢,因此也就无法复用标准输出的文件描述符了,所以需要先有标准输出然后再有错误输出传递到标准输出。
Submitted by admin on 2012, May 26, 11:59 AM
新安装的Office 2010体积实在是太大了,我们一般会在安装时精简掉一些自认为没用的组件,但是如果选择不正确的话,很容易出现错误提示,最常见的莫过于这个了
在打开或关闭word文档的时候提示
"您试图运行的函数包含宏或需要宏语言支持的内容.而在安装此软件时,您(或者您的管理员)选择了不安装宏或空间的支持功能
此错误通常是由宏安全性设置造成的.如果您知道宏来自您信任的来源,则可将宏安全性设置更改为允许启用宏.安全性设置的更改方式取决于您使用的 Microsoft office System 程序……”
不管是点哪个按钮都会有后续的几个对话框出来,几次以后文件终于打开。当你关闭文档的时候再一次出来对话框:“所做更改会影响共用模板 Normal.dot。是否保存所做的更改?”点击“是”,却没用,只能点击“否”才可以关闭。
这主要是由于安装的时候没有安装"office 共享功能"中的"visual Basic for Applications"组件的原因
解决的方法有以下几种:
第1种方法:
如果你手头有Office 2010的安装程序或电脑有安装文档的话
在控制面板中打开程序和功能,选择Office 2010右键点击更改,再打开Office 2010安装程序-选择"添加或删除功能"
重新添加"office 共享功能"中的"visual Basic for Applications"组件
安装完成后,再次启动Word,即搞定
第2中方法:
Word选项——加载项——管理【com加载项】,转到——把几个勾勾都取消掉——确定,即可。Win7中注意要以管理员身份进行,因为这些写入了注册表。
Submitted by admin on 2012, May 23, 5:52 PM
安装命令:
sudo apt-get install chkconfig
(可以用sysv-rc-conf代替)
原帖地址:
http://blog.csdn.net/youyu_buzai/archive/2009/03/04/3956845.aspx
功能说明:检查、设定系统的各种服务。
语法:chkconfig [--add][--del][--list][系统服务]或
chkconfig [--level<等级代号>][系统服务][on/off/reset]
补充说明:这个是redhat公司遵循gpl规则所开发的程序,它可以查询操作系统在每一个执行等级(runlevel)中,会执行哪些系统服务,其中包括各种daemon。
linux os 将操作环境分为以下7个等级:
0:开机(请不要切换到此等级)
1:单人使用者模式的文字界面
2:多人使用者模式的文字界面,不具有网络档案系统(NFS)功能
3:多人使用者模式的文字界面,具有网络档案系统(NFS)功能
4:某些发行版的linux使用此等级进入x windows system
5:某些发行版的linux使用此等级进入x windows system
6:重新启动
参数: --add 新增所指定的系统服务
--del 删除所指定的系统服务
--level 指定该系统服务要在哪个执行等级中开启或关闭
--list 列出当前可从chkconfig指令管理的所有系统服务和等级代号
on/off/reset 在指定的执行登记,开启/关闭/重置该系统服务
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
语法:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name <on|off|reset>
chkconfig [--level levels] name
chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定 了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开 关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。
--level选项可以指定要查看的运行级而不一定是当前运行级。
需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
chkconfig --list :显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下:
chkconfig --level 345 nfs off
运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动 和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.
附加介绍一下Linux系统的运行级的概念:
Linux中有多种运行级,常见的就是多用户的2,3,4,5 ,很多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假设你要维护系统进入单用户状态,那 么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K和S开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服 务。
范例:
1.查看在各种不同的执行等级中,各项服务的状况:
$chkconfig --list
2.列出系统服务vsftpd在各个执行等级的启动情况:
$chkconfig --list vsftpd
3.在执行等级3,5时,关闭vsftpd系统服务:
$chkconfig --level 35 vsftpd off
4.在执行等级2,3,5时,开启 vsftpd系统服务:
$chkconfig --level 235 vsftpd on
5.关闭一些自己不需要的服务 ->
如果没有打印机:
chkconfig --level 235 cups off
如果没有局域网:
chkconfig --level 235 smb off
如果不需要远程用户登录的:
chkconfig --level 235 sshd off
如果不需要定时任务的:
chkconfig --level 235 crond off
如果不需要添加新硬件的:
chkconfig --level 235 kudzu off
Submitted by admin on 2012, May 23, 5:51 PM
ubuntu 9.10 已经不支持chkconfig 了而用了update-rc.d,
关于 update-rc.d 的一些使用介绍
Debian 的update-rc.d与RH的chkconfig工具相类似。然而chkconfig是一个二进制程序,而update-rc.d是一个Perl脚本。这些工具有不同的命令行选项,但是却执行类似的功能。下表列出了update-rc.d的一些用法。如果要查看完整的信息,我们可以查阅相关的和册页。
命令 功能
update-rc.d -f remove 从所有的运行级别配置目录中是删除指定的服务
update-rc.d start 配置服务在运行级别列表中按指定的顺序启动
update-rc.d stop 配置服务在运行级别列表中指定的顺序停止
update -rc.d与RH的chkconfig之间最大的不同就在于update-rc.d是要设置所以指向/etc/init.d目录下服务脚本的运行级别链接,而chkconfig是要每一个运行级别单独配置服务。从本质上来说,这也就意味着每次我们使用update-rc.d改变一个运行级别,我们就不得不改变所有的。例如,下面的命令序列与命令chkconfig -level 2345 inetd off的作用相同:
$ update-rc.d -f inetd remove
$ update-rc.d inetd stop 20 0 1 2 3 4 5 6 .
第一个命令移除了所有的指向/etc/init.d/inetd服务脚本的运行级别链接,-f标志将会使得update-rc.d即使在inetd脚本本身已经存在的情况仍然进行相应的处理。第二个命令在每一个运行级别创建了一个服务级别为20的停止脚本。例如,这会创建一个 /etc/rc3.d/K20inetd的符号链接来禁止运行级别3中inetd的运行。(在这里我们要注意的是我们要显示的添加reboot与 shutdown运行级别,即0和6,仅管其中所有的服务都会被设置成为“stop“)。作为另外的一个例子,下面所显示的命令将会在运行级别3到5允许 inetd的运行,而在其他的运行级别中则被禁止:
$ update-rc.d -f inetd remove
$ update-rc.d inetd start 20 3 4 5 . stop 20 0 1 2 6 .
Debian的update-rc.d最初看起来会叫人有一些迷惑,但是旦我们明白,我们就会发现他可以多么出色的完成我们的工作。
Submitted by admin on 2012, May 23, 4:02 PM
一、使用命令设置ubuntu的ip地址
1.修改配置文件blacklist.conf禁用IPV6:
sudo vi /etc/modprobe.d/blacklist.conf
2.在文档最后添加 blacklist ipv6,然后查看修改结果:
cat /etc/modprobe.d/blacklist.conf
3.设置IP(设置网卡eth0的IP地址和子网掩码)
sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0
4.设置网关
sudo route add default gw 192.168.2.254
5.设置DNS 修改/etc/resolv.conf,在其中加入nameserver DNS的地址1 和 nameserver DNS的地址2 完成。
6.重启网络服务(若不行,请重启ubuntu:sudo reboot):
sudo /etc/init.d/networking restart
7.查看当前IP:
ifconfig
二、直接修改系统配置文件
ubuntu的网络配置文件是:/etc/network/interfaces
打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载。
1. 以DHCP方式配置网卡
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface - use DHCP to find our address
auto eth0
iface eth0 inet dhcp
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
也可以在命令行下直接输入下面的命令来获取地址
sudo dhclient eth0
2. 为网卡配置静态IP地址
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.2.1
gateway 192.168.2.254
netmask 255.255.255.0
#network 192.168.2.0
#broadcast 192.168.2.255
将上面的ip地址等信息换成你自己就可以了.用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
3. 设定第二个IP地址(虚拟IP地址)
编辑文件/etc/network/interfaces:
sudo vi /etc/network/interfaces
在该文件中添加如下的行:
auto eth0:1
iface eth0:1 inet static
address x.x.x.x
netmask x.x.x.x
network x.x.x.x
broadcast x.x.x.x
gateway x.x.x.x
根据你的情况填上所有诸如address,netmask,network,broadcast和gateways等信息:
用下面的命令使网络设置生效:
sudo /etc/init.d/networking restart
4. 设置主机名称(hostname)
使用下面的命令来查看当前主机的主机名称:
sudo /bin/hostname
使用下面的命令来设置当前主机的主机名称:
sudo /bin/hostname newname
系统启动时,它会从/etc/hostname来读取主机的名称。
5. 配置DNS
首先,你可以在/etc/hosts中加入一些主机名称和这些主机名称对应的IP地址,这是简单使用本机的静态查询。要访问DNS 服务器来进行查询,需要设置/etc/resolv.conf文件,假设DNS服务器的IP地址是192.168.2.2, 那么/etc/resolv.conf文件的内容应为:
search chotim.com
nameserver 192.168.2.2
6.手动重启网络服务:
sudo /etc/init.d/networking restart
返回结果如下:
*Reconfiguring network interfaces… [OK]
Submitted by admin on 2012, May 23, 4:01 PM
客户端connect服务器,执行一定时间后,接口返回-99的错误
查看错误信息 OS error code 99: Cannot assign requested address
猜想端口被用光的原因,网络搜索得到一个解释:客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”
通过netstat,的确看到很多TIME_WAIT状态的连接
因为是调用API,所以无法对连接进行opt设置,只能通过设置系统配置得以解决
解决办法:
执行命令修改如下2个内核参数
sysctl -w net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
sysctl -w net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收