KVM的USB支持

KVM的USB支持 在启动KVM的时候,加入参数 “-usb”, 同时还要加入 “-usbdevice host::"。 将 USB VendorID 和 ProductID 传给虚拟机,这样虚拟机就会知道有一个 USB设备插入了。 例如: #sudo kvm -usb -usbdevice host:VendorID:ProductID winxp.img $sudo kvm -usb -usbdevice host:08ec:2039 winxp.img 如何知道VendorID:ProductID,通过lsusb命令: unanao@debian:~/Image$ lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 002: ID 163c:0620 Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub ID后面的 xxxx:xxxx 就是:。如要挂载第2行的USB设备: ...

2011-12-14 · 1 min · 123 words · -

kvm 快捷键

kvm 快捷键 在图形模拟时,我们可以使用下面的这些组合键: Ctrl-Alt-f 全屏 Ctrl-Alt-n 切换虚拟终端’n’.标准的终端映射如下: n=1 : 目标系统显示 n=2 : 临视器 n=3 : 串口 Ctrl-Alt 抓取鼠标和键盘在虚拟控制台中,我们可以使用Ctrl-Up, Ctrl-Down, Ctrl-PageUp 和 Ctrl-PageDown在屏幕中进行移动. 在模拟时,如果我们使用`-nographic’选项,我们可以使用Ctrl-a h来得到终端命令: Ctrl-a h 打印帮助信息 Ctrl-a x 退出模拟 Ctrl-a s 将磁盘信息保存入文件(如果为-snapshot) Ctrl-a b 发出中断 Ctrl-a c 在控制台与监视器进行切换 Ctrl-a Ctrl-a 发送Ctrl-a

2011-12-12 · 1 min · 42 words · -

Debian的pre-up、up、post-up、pre-down、down、post-down

Debian的pre-up、up、post-up、pre-down、down、post-down pre-up 网卡启用前的动作 up 启用时候的动作 post-up 启用后的动作 pre-down 关闭前的动作 down 关闭时动作 post-down 关闭后动作

2011-12-11 · 1 min · 13 words · -

linux ebtables

linux ebtables linux 以太网桥防火墙 ebtables. 2.4以后的内核才能支持ebtables Ebtables即是以太网桥防火墙,以太网桥工作在数据链路层,Ebtables来过滤数据链路层数据包。 ebtables的功能和语法和iptables的类似,只是iptables是在ip层对数据包进行过滤和NAT的,而ebtables则是在mac层实现类似功能。最近在做虚拟机数据包流量监控的工作,需要用到ebtables。 ebtables主要用于switch,而iptables主要用于router (当然,他们都可以在host上使用,不过都不是重点) 从功能上来讲,没有明显的界限,一些基本的功能两者都能实现但侧重点不同,ebtables侧重于layer2,iptables侧重于layer3 (可增加layer7扩展) 2.6内核内置了Ebtables,要使用它必须先安装Ebtables的用户空间工具 (ebtables-v2.0.6) ,安装完成后就可以使用ebtables来过滤网桥的数据包。 参照用户实际要求,设置ebtables规则如下: 1:对所有的数据包默认通过 2:分清楚源地址和目的地址和源端口和目的端口 3:对TCP,UDPP数据包分别过滤 Ebtables使用规则如下: ebtables [-t table] -[ADI] chain rule-specification [match-extensions] [watcher-extensions] -t table :一般为FORWARD链。 -ADI: A添加到现有链的末尾;D删除规则链 (必须指明规则链号) ;I插入新的规则链 (必须指明规则链号) 。 –delete -D chain rulenum : delete rule at position rulenum from chain sudo ebtables -t nat -D POSTROUTING 1 -P:规则表的默认规则的设置。可以DROP,ACCEPT,RETURN。 -F:对所有的规则表的规则链清空。 -L:指明规则表。可加参数,-Lc,-Ln -p:指明使用的协议类型,ipv4,arp等可选 (使用时必选) 详情见/etc/ethertypes -ip-proto:IP包的类型,1为ICMP包,6为TCP包,17为UDP包,在/etc/protocols下有详细说明 -ip-src:IP包的源地址 -ip-dst:IP包的目的地址 -ip-sport:IP包的源端口 -ip-dport:IP包的目的端口 -i:指明从那片网卡进入 -o:指明从那片网卡出去 /*******************************/ 简单配置规则如下: #!/bin/bash ...

2011-12-11 · 1 min · 118 words · -

Apt-get, aptitude 命令对比

Apt-get, aptitude 命令对比 出自Guoshuang Wiki http://wiki.guoshuang.com/Apt-get_%E5%92%8C_aptitude_%E5%91%BD%E4%BB%A4%E5%AF%B9%E6%AF%94%E5%8F%82%E8%80%83 Apt-get commands Aptitude commands apt-get install package aptitude install package install package 安装软件包 apt-get install package--reinstall reinstall package 重新安装 apt-get -f install force install 强制安装 apt-get remove package aptitude remove package remove package 删除软件包 apt-get remove package--purge aptitude purge package remove package, include configuration files 删除软件及其配置文件 apt-get autoremove auto remove unused packages 自动删除没用的软件包 apt-get update aptitude update update the list of available packages 升级软件更新列表 apt-get upgrade aptitude upgrade upgrade packages 升级软件包 apt-get dist-upgrade aptitude dist-upgrade upgrade to a new release 升级到下一个发行版 apt-get build-dep package install build dependency 安装编译依赖库 apt-get source package download source 下载源代码 apt-get clean && apt-get autoclean aptitude clean && aptitude autoclean remove unused package files 删除没用的软件包 apt-cache search package aptitude search package search packages 在 cache 中搜索软件包 apt-cache show package get more information 显示软件包信息

2011-12-11 · 1 min · 133 words · -

Debian的运行级别

Debian的运行级别 转自: http://dagai.net/archives/569 最近在看王旭的《debian标准教程》,讲的真的是很广,但很浅,就运行级别这一小段,让老夫琢磨了好几天,也就明白debian的运行级别与redhat系的那些不一样,在centos中,runlevel 5就是图形界面,3是文本界面,而在debian中,runlevel 2-5都是多用户状态,这几个级别一样的,怎么设置这些服务的状态呢,centos有ntsysv和chkconfig啊,王旭在书中也就提到了rcconf这个命令,弄了半天弄得莫名其妙,到处搜啊搜的,终于发现,原来debian下还有个比chkconfig更好用的sysv-rc-conf。 先说说debian的系统运行级别 可以运行runlevel查看系统的运行级别,runlevel命令显示上次的运行级别和当前的运行级别,第一个为"N"的时候表示没有上次的运行级别。 0 系统停机状态 1 单用户或系统维护状态 2-5 多用户状态 6 重新启动 至于S和s是给单用户模式来用的。 可以用init 加数字来切换系统的运行级别,默认系统下2-5这几个运行级别状态是一样的,切换运行级别根本不会有什么变动。 这时候可以运行rcconf来关闭服务,这个rcconf居然还没有,用aptitude install rcconf安装它,这个rcconf与centos下的ntsysv差不多,这里取消或选取某个服务,将同时改变2-5级别的状态。 那老夫想把这个debian的运行级别改成跟centos差不多咋搞?这时候就要请上sysv-rc-conf了,sysv-rc-conf默认也没装,装上它,运行sysv-rc-conf,界面很简单,横着列出了所有的级别,纵向列出了所有的服务,不是有那么多中括号嘛,用方向键移到相应服务的相应级别,按空间选中或取消,这样,老夫就移到gdm上,234级别都取消掉,只保留5的,然后改一下inittab文件,把默认运行级别由2改为3,这样就跟centos一样3是文本界面5是图形界面了。 sysv-r-conf可以按ctrl+n和ctrl+p下翻和上翻,也可以按-来停止某个服务或按=/+来启动某个服务,设置完按q退出即可。 至于怎么把程序加入到服务,update-rc.d。 下面是一些常见的系统服务: acpi-support 高级电源管理支持 acpid acpi 守护程序.这两个用于电源管理,非常重要 alsa 声音子系统 alsa-utils anacron cron 的子系统,将系统关闭期间的计划任务,在下一次系统运行时执行。 apmd acpi 的扩展 atd 类似于 cron 的任务调度系统。建议关闭 binfmt-support 核心支持其他二进制的文件格式。建议开启 bluez-utiles 蓝牙设备支持,关掉没啥 bootlogd 启动日志。开启它 cron 任务调度系统,建议开启 cupsys 打印机子系统。 dbus 消息总线系统(message bus system)。非常重要 dns-clean 使用拨号连接时,清除 dns 信息。 evms 企业卷管理系统(Enterprise Volumn Management system) fetchmail 邮件用户代理守护进程,用于收取邮件 gdm gnome 登录和桌面管理器。 ...

2011-12-11 · 1 min · 212 words · -

CentOS 与 RHEL 的区别

CentOS 与 RHEL 的区别 CentOS是Community ENTerprise Operating System的简称,我们有很多人叫它社区企业操作系统,不管你怎么叫它,它都是Linux操作系统的一个发行版本。 CentOS并不是全新的Linux发行版,倘若一说到Red Hat这个大名,大家似乎都听过。在Red Hat家族中有企业版的产品,它是Red Hat Enterprise Linux (以下称之为RHEL) ,CentOS正是这个RHEL的克隆版本。RHEL是很多企业采用的Linux发行版本,需要向Red Hat付费才可以使用,并能得到付过费用的服务和技术支持和版本升级。CentOS可以像RHEL一样的构筑Linux系统环境,但不需要向Red Hat付任何的产品和服务费用,同时也得不到任何有偿技术支持和升级服务。 Red Hat公司的产品中,有Red Hat Linux (如Redhat8,9) 和针对企业发行的版本Red Hat Enterprise Linux,都能够通过网络FTP免费的获得并使用,但是在2003年的时候,Red Hat Linux停止了发布,它的项目由Fedora Project这个项目所取代,并以Fedora Core这个名字发行并提供给普通用户免费使用。Fedora Core这个Linux发行版更新很快,大约半年左右就有新的版本发布。目前的版本是Fedora Core 6,这个Fedora Core试验的韵味比较浓厚,每次发行都有新的功能被加入到其中,得到的成功结果将被采用道RHEL的发布中。虽说这样,频繁的被改进更新的不安定产品对于企业来说并不是最好的选择,大多数企业还是会选择有偿的RHEL产品 (这里面有很深的含义,比如说企业用Linux赚钱,赚到的钱回报给企业,资金在企业间流通,回报社会,提高服务水准等) 。 在构成RHEL的大多数软件包中,都是基于GPL协议发布的,也就是我们常说的开源软件。正因为是这样,Red Hat公司也遵循这个协议,将构成RHEL的软件包公开发布,只要是遵循GPL协议,任何人都可以在原有的软件构成的基础上再开发和发布。CentOS就是这样在RHEL发布的基础上将RHEL的构成克隆再现的一个Linux发行版本。RHEL的克隆版本不只CentOS一个,还有White Box Enterprise Linux和TAO Linux 和Scientific Linux (其他的这些都没听说过,是吧?) 。 虽然说是RHEL的克隆,但并不是一模一样,所说的克隆是具有100%的互换性 (真的么?) 。但并不保障对应RHEL的软件在CentOS上面也能够100%的正常工作。并且安全漏洞的修正和软件包的升级对应RHEL的有偿服务和技术支持来说,数日数星期数个月的延迟情况也有 (其实也没看出来多慢) 。 CentOS的特点 在CentOS的全称里面我们可以看到Enterprise OS,也就是说企业系统,这个企业系统并不是企业级别的系统,而是它可以提供企业级应用所需要的要素。 例如: 稳定的环境 长期的升级更新支持 保守性强 大规模的系统也能够发挥很好的性能 CentOS满足以上的要素,满足上面要素的发行版还有Fedora 。Fedora和CentOS非常的相像,但是对CentOS来说,Fedora提供更多的新的功能和软件,发布更新快等特点,这样在稳定性和管理方面就增加了很多工作。企业所需要的系统环境应该是,高效稳定的系统环境,一次构建后能够长期使用的系统环境,所以Fedora那样的频繁更新发布的系统环境并不对应企业的应用。另一方面,CentOS却能够满足以上企业的需要,在众多的RHEL的克隆版本中,CentOS是很出众很优秀的。 CentOS 与 RHEL 的区别 其实为什么有 CentOS? CentOS 与 RHEL 有什么关系? RHEL 在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式。 ...

2011-12-11 · 1 min · 192 words · -

debian自动加载磁盘分区

debian自动加载磁盘分区 Linux下面有个加载分区的配置文件,/etc/fstab 里面的分区标识是使用分区的UUID来分别的,在ubuntu下面可以使用命令: sudo blkid 来查看具体各个分区的UUID 然后在/etc/fstab文件中加上自己的加载分区的相应命令: UUID=e06ae965-4a0f-4448-8281-9b2bac150c07 /home/bing/android ext4 default 0 3 由于此处是挂载到/home目录的,不知道能不能成功加载, 上面的那个命令会出现下面的问题: Error mounting: mount exited with exit code 1: helper failed with: mount: only root can mount /dev/sda8 on /home/bing/android 网上查了一下,所以把上面的命令改为: UUID=e06ae965-4a0f-4448-8281-9b2bac150c07 /home/bing/android ext4 auto,user,rw 0 3 这样好像是可以的,,, 记一下,防止忘记了。。。 最新的动态,应该使用下面命令加载系统的时候,会出现一个问题,那就是这个分区可以读写,但是不能执行程序,, 连root用户都没有权限执行程序,应该是指定了user这个群组了,,, UUID=e06ae965-4a0f-4448-8281-9b2bac150c07 /home/bing/android ext4 auto,user,rw 0 3 所以办法也是行不通的, 后来再检查的时候才发现原先那条加载命令写错了(应该是defaults),汗,,,, 换成下面的可以加载了,也可以读写执行了,, UUID=e06ae965-4a0f-4448-8281-9b2bac150c07 /home/bing/android ext4 defaults 0 2 第一列: label 第二列: 挂载点 第三列: 分区的文件系统 第四列: 文件系统挂载选项,看附件啦 第五列: 是否被dump作用。0代表不要做dump 备份,1代表要每天进行dump的动作。 2 也代表其它不定日期的dump备份动作,通常这个数值不是0就是1啦! 第六列: 是否以fsck检查分区 (开机时候检查分区) 0为不检查,1为开机的时候检查,2为在稍后的时间检查 ...

2011-12-10 · 1 min · 85 words · -

set -x

set -x set指令能设置所使用shell的执行方式,可依照不同的需求来做设置 -a 标示已修改的变量,以供输出至环境变量。 -b 使被中止的后台程序立刻回报执行状态。 -C 转向所产生的文件无法覆盖已存在的文件。 -d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。 -e 若指令传回值不等于0,则立即退出shell。 -f 取消使用通配符。 -h 自动记录函数的所在位置。 -H Shell 可利用"!“加<指令编号>的方式来执行history中记录的指令。 -k 指令所给的参数都会被视为此指令的环境变量。 -l 记录for循环的变量名称。 -m 使用监视模式。 -n 只读取指令,而不实际执行。 -p 启动优先顺序模式。 -P 启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。 -t 执行完随后的指令,即退出shell。 -u 当执行时使用到未定义过的变量,则显示错误信息。 -v 显示shell所读取的输入值。 -x 执行指令后,会先显示该指令及所下的参数。 +<参数> 取消某个set曾启动的参数。

2011-12-10 · 1 min · 42 words · -

linux网络的热插拔

linux网络的热插拔 auto eth0:开机自动启动eth0,不管有沒有插上网线. 如果开机没有插上网线,系统也会让dhclient3去设定,这样只有等超时才能继续开机。 如果设为allow-hotplug eth0就不会出现上述情况,先不插网线,开机后再插网线也可以。但是在debian 里用/etc/init.d/networking restart后会出现网卡不能启动,要用ifup eth0 才行.

2011-12-06 · 1 min · 10 words · -

网桥

网桥 作者: kendo(http://www.skynet.org.cn/) 第一部份 源码框架 一、网桥原理 传统的中继器,如HUB,是一个单纯的物理层设备,它将每一个收到的数据包,在其所有的端口上广播,由接收主机来判断这个数据包是否是给自己的。这样,网络资源被极大的浪费掉了。 网桥之所以不同于中继器,主要在于其除了有中继的作用外,还有一个更重要的作用,就是学习MAC地址,然后根据每个数据包的目的MAC与自身端口的对应,从关联端口发送数据,而不完全地在整个网段中进行广播。所以,网桥的实现中,有两个关键点: 学习MAC地址,起初,网桥是没有任何地址与端口的对应关系的,它发送数据,还是得想HUB一样,但是每发送一个数据,它都会关心数据包的来源MAC是从自己的哪个端口来的,由于学习,建立地址-端口的对照表 (CAM表) 。 每发送一个数据包,网桥都会提取其目的MAC地址,从自己的地址-端口对照表(CAM表)中查找由哪个端口把数据包发送出去。 网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务,即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了解是靠"自学习"实现的。 当使用网桥连接如图2所示的两段LAN时,网桥对来自网段1的MAC帧,首先要检查其终点地址。如果该帧是发往网段1上某一站的,网桥则不将帧转发到网段2,而将其滤除;如果该帧是发往网段2上某一站的,网桥则将它转发到网段2。这表明,如果LAN1和LAN2上各有一对用户在本网段上同时进行通信,显然是可以实现的。因为网桥起到了隔离作用。可以看出,网桥在一定条件下具有增加网络带宽的作用。 网桥的存储和转发功能与中继器相比有优点也有缺点,其优点是: .使用网桥进行互连克服了物理限制,这意味着构成LAN的数据站总数和网段数很容易扩充。 .网桥纳入存储和转发功能可使其适应于连接使用不同MAC协议的两个LAN。 因而构成一个不同LAN混连在一起的混合网络环境。 .网桥的中继功能仅仅依赖于MAC帧的地址,因而对高层协议完全透明。 .网桥将一个较大的LAN分成段,有利于改善可靠性、可用性和安全性。 网桥的主要缺点是: .由于网桥在执行转发前先接收帧并进行缓冲, 与中继器相比会引入理多时延。 .由于网桥不提供流控功能,因此在流量较大时有可能使其过载, 从而造成帧的丢失。 网桥的优点多于缺点正是其广泛使用的原因。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。网络1 和网络2 通过网桥连接后,网桥接收网络1 发送的数据包,检查数据包中的地址,如果地址属于网络1 ,它就将其放弃,相反,如果是网络2 的地址,它就继续发送给网络2.这样可利用网桥隔离信息,将同一个网络号划分成多个网段 (属于同一个网络号) ,隔离出安全网段,防止其他网段内的用户非法访问。由于网络的分段,各网段相对独立 (属于同一个网络号) ,一个网段的故障不会影响到另一个网段的运行。 网桥可以是专门硬件设备,也可以由计算机加装的网桥软件来实现,这时计算机上会安装多个网络适配器 (网卡) 。 网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务,即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了解是靠"自学习"实现的,有透明网桥、转换网桥、封装网桥、源路由选择网桥。 当使用网桥连接两段LAN 时,网桥对来自网段1 的MAC 帧,首先要检查其终点地址。如果该帧是发往网段1 上某一站的,网桥则不将帧转发到网段2 ,而将其滤除;如果该帧是发往网段2 上某一站的,网桥则将它转发到网段2,这表明,如果LAN1和LAN2上各有一对用户在本网段上同时进行通信,显然是可以实现的。 因为网桥起到了隔离作用。可以看出,网桥在一定条件下具有增加网络带宽的作用。 网桥的存储和转发功能与中继器相比有优点也有缺点,其优点是: 使用网桥进行互连克服了物理限制,这意味着构成LAN 的数据站总数和网段数很容易扩充。 网桥纳入存储和转发功能可使其适应于连接使用不同MAC 协议的两个LAN,因而构成一个不同LAN 混连在一起的混合网络环境。 网桥的中继功能仅仅依赖于MAC 帧的地址,因而对高层协议完全透明。 网桥将一个较大的LAN 分成段,有利于改善可靠性、可用性和安全性。 网桥的主要缺点是: 由于网桥在执行转发前先接收帧并进行缓冲,与中继器相比会引入更多时延。由于网桥不提供流控功能,因此在流量较大时有可能使其过载,从而造成帧的丢失。 网桥的优点多于缺点正是其广泛使用的原因。 网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个"低层的路由器" (路由器工作在网络层,根据网络地址如IP地址进行转发) 。 远程网桥通过一个通常较慢的链路 (如电话线) 连接两个远程LAN,对本地网桥而言,性能比较重要,而对远程网桥而言,在长距离上可正常运行是更重要的。 网桥与路由器的比较 ...

2011-12-04 · 1 min · 193 words · -

STP

STP http://hghhghwh.blog.163.com/blog/static/1338973120118413725683/ STP (Spanning Tree Protocol) 是生成树协议的英文缩写。 该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。 STP定义在 IEEE 802.1D 中,是一种链路管理协议,它为网络提供路径冗余同时防止产生环路。为使以太网更好地工作,两个工作站之间只能有一条活动路径。网络环路的发生有多种原因,最常见的一种是有意生成的冗余 - 万一一个链路或交换机失败,会有另一个链路或交换机替代。 STP的基本原理是,通过在交换机之间传递一种特殊的协议报文 (在IEEE 802.1D中这种协议报文被称为"配置消息") 来确定网络的拓扑结构。配置消息中包含了足够的信息来保证交换机完成生成树计算。 技术原理: STP的基本思想就是生成"一棵树",树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。 功能介绍: 生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的"广播风暴"问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。新型以太单板支持符合ITU-T 802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。 但是,由于协议机制本身的局限,STP保护速度慢 (即使是1s的收敛速度也无法满足电信级的要求) ,如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡。目前在MSTP 组成环网中,由于SDH保护倒换时间比STP协议收敛时间快的多,系统采用依然是SDH MS-SPRING或SNCP,一般倒换时间在50ms以内。但测试时部分以太网业务的倒换时间为0或小于几个毫秒,原因是内部具有较大缓存。SDH保护倒换动作对MAC层是不可见的。这两个层次的保护可以协调工作,设置一定的"拖延时间"(hold-off),一般不会出现多次倒换问题。

2011-12-04 · 1 min · 28 words · -

shell, bash, csh, sh, ksh, dash, zsh

‘shell, bash, csh, sh, ksh, dash, zsh’ https://blog.csdn.net/lina_acm/article/details/51815080 Linux中的shell有多种类型,其中最常用的几种是Bourne shell (sh) 、C shell (csh) 和Korn shell (ksh) 。三种shell各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。 shell 脚本第一行以 !/bin/bash 开头, 表示由/bin/bash负责解释. !/bin/sh !/bin/csh !/usr/bin/perl !/bin/php !/bin/expect 都是脚本常用的开头。 ! 用来指定解释脚本的程序,可以是 Shell,也可以是其他程序 有一个非常奇怪的名字,叫shbang line !叫做Magic number 按照下面的方式来解释执行shell脚本 如果shell脚本的第一个非空白字符不是"#",则它会使用Bourne shell。 如果shell脚本的第一个非空白字符是"#",但不以"#!“开头时,则它会使用C shell。 如果外壳脚本以”#!“开头,则” #!“后面所跟的字符串就是所使用的shell的绝对路径 名。Bourne shell的路径名称为/bin/sh ,而C shell则为/bin/csh。 sh (Bourne Shell) : 由Steve Bourne开发,各种UNIX系统都配有sh。 csh (C Shell) : 由Bill Joy开发,随BSD UNIX发布,它的流程控制语句很像C语言,支持很多Bourne Shell所不支持的功能: 作业控制,命令历史,命令行编辑。 ...

2011-12-04 · 1 min · 134 words · -

kvm 磁盘

kvm 磁盘 http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=302055 固定大小虚拟磁盘效率最高 虚拟磁盘效率最大决定因素在于碎片,而非格式。通常用的动态大小磁盘映像虽然灵活,但其效率自然不如固定大小。以往很多人因创建固定磁盘费时费力而直接使用物理磁盘,不仅有相当风险,且有不便之处,也未必能满足所需功能。 xfs 和 NTFS 早已支持空间预分配,但 ext 系列直到 ext4 才支持该功能。现如今,ext4 已然稳定。用 fallocate 命令在其上创建固定大小的 raw 格式映像甚为简单,创建速度与 qemu-img 创建的稀疏文件无异,瞬间完成。比如: fallocate -l 15G disk1.img virtio 提高的效率是什么效率 直接给 qemu 用 -hda 指定硬盘,谁用谁知道,慢如蜗牛不说,还能听见磁头辛勤地哀鸣,心痛不?网上有人说 cache=writeback ,没错,这是关键,速度快了不说,也不用再担心磁头累跨了。还有人说 if=virtio ,更有甚者 virtio 与 writeback 不可兼得,晕不?其实 virtio 节省的只不过是 CPU 模拟设备所需的运算时间,并不能降低磁盘访问,只有 writeback 才是关键。当然,若你愿意完全可两者并用, if=virtio,cache=writeback 没有任何问题。所谓有问题只不过是拿那已安装的 Windows 来更改设备造成的。 virtio 安装 Windows 小问题 对于新磁盘映像,用 if=virtio 安装 WindowsXP/2003 加载驱动后,依然会碰到找不到某某文件问题。因为一个 bug 没错,但也不能指望微软修正,设法绕过吧。 随便弄张 Linux LiveCD 启动,用 fdisk /dev/vda 为其分区 (一定要 fdisk 而非 cfdisk ,其它未试) ,全部大小只用于一个主分区,指定分区 ID 标志为 0x0b 。再用 mkfs.vfat /dev/vda1 创建文件系统。重新启动 Windows 安装便可绕过上述 bug 。 ...

2011-12-04 · 1 min · 125 words · -

debian wlan0 wpa/psk

debian wlan0 wpa/psk 1.添加wpa-psk支持,在debian下是这个插件wpasupplicant apt-get install wpasupplicant 可查看debian wiki [code] http://wiki.debian.org/WiFi/HowToUse#wpa_supplicant 2.修改/etc/network/interfaces项,如下: [code] iface wlan0 inet dhcp wpa-driver wext wpa-ssid DFERG wpa-proto WPA wpa-pairwise TKIP wpa-group TKIP wpa-key-mgmt WPA-PSK wpa-psk fcb3717c5f66e893d9010a6872436b34686618a3e8fa2833d56bb98b41be5c8d 3.最关键的WPA-PSK项,之前一直无法连接,经google,原来此处不能写入明文密码,需要通过wpa-passphrase转换的,如下: [code] wpa_passphrase <your_essid> <your_assic_key> 例如: ```bash wpa_passphrase DFERG 100200300b network={ ssid="DFERG" #psk="100200300b" psk=fcb3717c5f66e893d9010a6872436b34686618a3e8fa2833d56bb98b41be5c8d } 原文地址: http://hi.baidu.com/tanmeng_sino/blog/item/8b3526f5781d65e77709d735.html

2011-12-03 · 1 min · 48 words · -

debian 网络配置

debian 网络配置 /etc/network/interfaces #wlan auto wlan0 iface wlan0 inet dhcp wpa-ssid "xxxx" wpa-psk "xxxx" 话说Debian系的网卡配置跟Redhat系很不一样,Redhat是放在/etc/sysconfig/network-scripts目录下 面的一大堆文件里面,要修改?你一个一个文件来过吧。Debian系的则是存在/etc/network/interfaces文件里面,无论有多少块网 卡,统统扔在这个文件里。下面就来看一下这个文件的内容。 首先,一个基本的配置大概是下面这个样子: 1 auto lo 2 iface lo inet loopback 3 4 # The primary network interface 5 auto eth0 6 iface eth0 inet static 7 address 192.168.0.42 8 network 192.168.0.0 9 netmask 255.255.255.0 10 broadcast 192.168.0.255 11 gateway 192.168.0.1 上面的配置中, 第1行跟第5行说明lo接口跟eth0接口会在系统启动时被自动配置; 第2行将lo接口设置为一个本地回环 (loopback) 地址; 第6行指出eth0接口具有一个静态的 (static) IP配置; 第7行-第11行分别设置eth0接口的ip、网络号、掩码、广播地址和网关。 再来看一个更复杂点的: ...

2011-12-03 · 2 min · 358 words · -

linux 网络命令

linux 网络命令 iwconfig 和 iwpriv。iwconfig 用于配置一些比较 general 的功能,如 ESSID、AP 的 MAC 地址、mode、频道、速率等。和 ifconfig 类似,不加任何参数的时候显示 /proc/net/wireless 的内容;而 iwpriv 则配置比较 private 的内容,和各个网卡相关的东西,可以用 -a 获得所有可以执行的命令。下面是这些命令的说明: iwevent 显示 wireless 事件,主要是驱动程序或者配置更新的事件。 iwgetid 获得当前连接网络的信息,相对于 iwconfig 更适合写脚本使用。 iwlist 用于显示无线网络的各种信息,通过 scaning 网络中 AP 获得。 iwspy 用于获取无线网络某些节点上的统计信息。 1.查看网卡型号: lsmod | grep iw 2.查看网卡信息: iwconfig 查看附近可用的无线接入点 (AP) iwlist wlan0 scan ifconfig wlan0 up ifconfig wlan0 down

2011-12-03 · 1 min · 56 words · -

kvm 参数

kvm 参数 -bios file 指定虚拟机使用的BIOS,file指定BIOS文件路径 -smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus] 模拟一个有n个cpu的smp系统,可以简单的指定n为一个数值,或者分别指定socket数,core数/socket,线程数/core -m megs 指定虚拟机使用的内存数量,可以使用M或G后缀 -rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew] 指定虚拟机使用的时间,linux客户机使用-rtc base=utc,clock=host,windows客户机使用-rtc base=localtime,clock=host -net nic,model=virtio,macaddr=52-54-00-12-34-01 -net tap,ifname=tap0 桥接网络,客户机网络接口通过tap接口桥接到主机网络,使用的tap接口名为tap0,由/etc/kvm/kvm-ifup来动态配置tap0接口。model=virtio指定虚拟机网卡使用半虚拟化驱动,如果有多个虚拟客户机同时运行则必须指定macaddr为一个独一无二的值,否则会出现mac地址冲突。如果通过主机的/etc/network/interfaces来静态配置tap接口,则此处应在-net tap接口处附加两个另外的参数script=no,downscript=no -drive file=debian.img,if=virtio,index=0,media=disk,format=qcow2,cache=writeback 指定客户机使用的硬盘驱动器,if=virtio指定使用半虚拟化驱动,index=0指定该硬盘为接口的第一个驱动器,media=disk指定为硬盘驱动器,如果是光盘则为media=cdrom。format=qcow2为硬盘格式 (raw/qcow2) ,以创建磁盘镜像时的格式为准。旧式指定第一个硬盘驱动器的参数为-hda debian.img,已经不再推荐使用。 -drive file=debian.iso,index=2,media=cdrom或者-hdc debian.iso 指定光盘驱动器,debian.iso为使用的光驱映像文件 -fda file 指定软盘驱动器,file为软磁盘镜像 -no-fd-bootchk 客户机启动时不检查软盘驱动器,加速客户机启动 -boot [order=drives][,once=drives][,menu=on|off] ‘drives’: floppy (a), hard disk (c), CD-ROM (d), network (n) 指定引导顺序,c为第一个硬盘驱动器,d为第一个光盘驱动器 -boot order=c -vnc :0 将虚拟机的视频输出重定向到vnc端口,通过vnc viewer可以连接到虚拟机的视频输出 error:Could not initialize SDL(No available video device) - exiting add the parameters -vga std -k en-us -vnc :1 ...

2011-12-03 · 1 min · 122 words · -

Virtio

Virtio 半虚拟化驱动Virtio Virtio是KVM/Linux的I/O虚拟化框架,以增强KVM的IO效率,是与其他虚拟化平台的半虚拟化(Paravirtualized)类似的东西,主要应用于磁盘设备和网络接口设备。主流的linux发行版已经默认支持Virtio,如果客户机是linux则无需其他设置,直接可以使用Virtio设备,但是如果客户机是windows,则需要在客户机安装Virtio设备驱动,甚至在windows开始安装之前需要提前加载块设备驱动。windows Virtio驱动可从Fedor

2011-12-03 · 1 min · 4 words · -

chown 更改文件拥有者

chown 更改文件拥有者 如何更改一个文件的拥有者呢?很简单。既然改变用户组是change group,那么改变拥有者就是change owner (改变拥有者) ,这就是chown这个命令的用途。要注意的是,用户必须是已经在系统中,也就是在/etc/passwd这个文件中有记录的用户名称才可以更改。 chown的用途很多,还可以直接修改用户组的名称。如果要将目录下的所有子目录或文件同时更改文件拥有者的话,直接加上-R的参数即可。下面我们来看看语法与范例。 chown [-R] 账户名称 文件或目录 chown [-R] 账户名称:用户组名称 文件或目录 参数: -R : 进行递归的持续更改,即将同子目录下的所有文件、目录都更新问这个用户组。通常用在更改某一目录的情况。 范例: chown root:root install.log # 按UID改owner chown -R 200:200 /root/foo 我们知道如何改变文件的用户组与拥有者了,那么什么时候要使用chown或chgrp呢?或许你你会觉得奇怪,但是,确实有时候需要更改文件的拥有者。最常见的例子就是将文件复制给其他人,我们使用最简单的cp来进行说明: [root@linux ~]#cp 源文件 目的文件 假设今天要讲.bashrc文件复制成为.bashrc_test,并给bin这个人,您可以这样做: [root@linux ~]# cp .bashrc .bashrc_test [root@linux ~]#ls –al .bashrc* -rw-r-r- 1 root root 24343 Jun 23 08:33 .bashrc -rw-r-r- 1 root root 24343 Jun 23 08:33 .bashrc_test 怎么办?.bashrc_test还是属于root所有,即使将文件拿给bin用户了,他仍然无法修改,所以必须修改这个文件的拥有者与用户组

2011-12-03 · 1 min · 64 words · -