ubuntu emacs 卸载,Ubuntu怎么卸载
大家好,ubuntu emacs 卸载相信很多的网友都不是很明白,包括Ubuntu怎么卸载也是一样,不过没有关系,接下来就来为大家分享关于ubuntu emacs 卸载和Ubuntu怎么卸载的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
linux的常用命令及技巧
一。通用命令:
1. date:print or set the system date and time2. stty-a:可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)3. passwd: print or set the system date and time(用passwd-h查看)4. logout, login:登录shell的登录和注销命令5. pwd: print or set the system date and time6. more, less, head tail:显示或部分显示文件内容.7. lp/lpstat/cancel, lpr/lpq/lprm:打印文件.8.更改文件权限: chmod u+x...9.删除非空目录:rm-fr dir10.拷贝目录: cp-R dir11. fg jobid:可以将一个后台进程放到前台。Ctrl-z可以将前台进程挂起(suspend),然后可以用bg jobid让其到后台运行。job&可以直接让job直接在后台运行。12. kill的作用: send a signal to a process. eg: kill-9发送的是SIG_KILL信号。。。具体发送什么信号可以通过 man kill查看。13. ps的用法, ps-e或 ps-o pid,ppid,session,tpgid, comm(其中session显示的sessionid, tpgid显示前台进程组id, comm显示命令名称。)二.ubuntu常用命令:
1. dpkg: package manager for Debian*安装: dpkg-i package*卸载: dpkg-r package*卸载并删除配置文件: dpkg-P|--purge package*如果安装一个包时。说依赖某些库。可以先 apt-get install somelib...*查看软件包安装内容:dpkg-L package*查看文件由哪个软件包提供: dpkg-S filename*另外 dpkg还有 dselect和aptitude两个frontend.2. apt*安装: apt-get install packs* apt-get update:更新源* apt-get upgrade:升级系统。* apt-get dist-upgrade:智能升级。安装新软件包,删除废弃的软件包* apt-get-f install:-f==--fix broken修复依赖* apt-get autoremove:自动删除无用的软件* apt-get remove packages:删除软件* apt-get remove package--purge删除包并清除配置文件*清除所以删除包的残余配置文件: dpkg-l|grep ^rc|awk'{print$2}'|tr [/n] [ ]|sudo xargs dpkg-P*安装软件时候包的临时存放目录:/var/cache/apt/archives*清除该目录: apt-get clean*清除该目录的旧版本的软件缓存: apt-get autoclean*查询软件some的依赖包: apt-cache depends some*查询软件some被哪些包依赖: apt-get rdepends some*搜索软件: apt-cache search name|regexp*查看软件包的作用:apt-cache show package*查看一个软件的编译依赖库: apt-cache showsrc packagename|grep Build-Depends*下载软件的源代码: apt-get source packagename(注: sources.list中应该有 deb-src源)*安装软件包源码的同时,安装其编译环境:apt-get build-dep packagename(有deb-src源)*如何将本地光盘加入安装源列表: apt-cdrom add3.系统命令:*查看内核版本: uname-a*查看ubuntu版本: cat/etc/issue*查看网卡状态: ethtool eth0*查看内存,cpu的信息: cat/proc/meminfo; cat/proc/cpuinfo(/proc下面的有很多系统信息)*打印文件系统空间使用情况: df-h*查看硬盘分区情况: fdisk-l*产看文件大小: du-h filename;*查看目录大小: du-hs dirname; du-h dirname是查看目录下所有文件的大小*查看内存的使用: free-m|-g|-k*查看进程: ps-e或ps-aux-->显示用户*杀掉进程: kill pid*强制杀掉: killall-9 processname4.网络相关:*配置 ADSL: sudo pppoeconf* ADSL手工拨号: sudo pon dsl-provider*激活 ADSL: sudo/etc/ppp/pppoe_on_boot*断开 ADSL: sudo poff*根据IP查网卡地址: arping IP地址*产看本地网络信息(包括ip等): ifconfig| ifconfig eth0*查看路由信息: netstat-r*关闭网卡: sudo ifconfig eth0 down*启用网卡: sudo ifconfig eth0 up*添加一个服务: sudo update-rc.d服务名 defaults 99*删除一个服务: sudo update-rc.d服务名 remove*临时重启一个服务:/etc/init.d/服务名 restart*临时关闭一个服务:/etc/init.d/服务名 stop*临时启动一个服务:/etc/init.d/服务名 start*控制台下显示中文: sudo apt-get install zhcon*查找某个文件: whereis filename或 find目录-name文件名*通过ssh传输文件scp-rp/path/filename username@remoteIP:/path#将本地文件拷贝到服务器上scp-rp username@remoteIP:/path/filename/path#将远程文件从服务器下载到本地5.压缩:*解压缩 a.tar.gz: tar zxvf a.tar.gz*解压缩 a.tar.bz2: tar jxvf a.tar.bz2*压缩aaa bbb目录为xxx.tar.gz: tar zcvf xxx.tar.gz aaa bbb*压缩aaa bbb目录为xxx.tar.bz2: tar jcvf xxx.tar.bz2 aaa bbb
6. Nautilus:特殊 URI地址* computer:///-全部挂载的设备和网络* network:///-浏览可用的网络* burn:///-一个刻录 CDs/DVDs的数据虚拟目录* smb:///-可用的 windows/samba网络资源* x-nautilus-desktop:///-桌面项目和图标* 本地文件* trash:///-本地回收站目录* ftp://- FTP文件夹* ssh://- SSH文件夹* fonts:///-字体文件夹,可将字体文件拖到此处以完成安装* themes:///-系统主题文件夹*显示隐藏文件: Ctrl+h*显示地址栏: Ctrl+l*查看已安装字体:在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts
7.补充部分:
*查看本地所有的tpc,udp监听端口: netstat-tupln(t=tcp, u=udp, p=program, l=listen, n=numric)*通过man搜说相关命令: man-k keyword. eg: man-k user*或者用 apropos*统计文件所占用的实际磁盘空间: du(du- estimate file space usage)*统计文件中的字符,字节数: wc-c/-l/-w(wc- print the number of newlines, words, and bytes in files)*查看文件的内容: od-x/-c/....(od- dump files in octal and other formats)我认为od最有用的就是文件的字节流了: od-t x1 filename查看文件的 Ascii码形式: od-t c filename(其中统计信息最左边的是:字节数)*查找命令所在文件的位置: which od输出:/usr/bin/od查看该文件由哪个包提供: dpkg-S/usr/bin/od输出: coreutils:/usr/bin/od再查看coreutils包的全部内容就知道了linux的核心命令: dpkg-L coreutils然后 info coreutils哈哈,认真学吧,满世界都是命令!*可以用man命令产看某个命令的所有section的解释: man-a tty然后用q,和next转换到下一个section的解释* bash的好用的快捷键:ctrl+a:光标移到行首。ctrl+b:光标左移一个字母ctrl+c:杀死当前进程。ctrl+d:退出当前 Shell。ctrl+e:光标移到行尾。ctrl+h:删除光标前一个字符,同 backspace键相同。ctrl+k:清除光标后至行尾的内容。ctrl+l:清屏,相当于clear。ctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的historyctrl+u:清除光标前至行首间的所有内容。ctrl+w:移除光标前的一个单词ctrl+t:交换光标位置前的两个字符ctrl+y:粘贴或者恢复上次的删除ctrl+d:删除光标所在字母;注意和backspace以及ctrl+h的区别,这2个是删除光标前的字符ctrl+f:光标右移ctrl+z:把当前进程转到后台运行,使用’ fg‘命令恢复。比如top-d1然后ctrl+z,到后台,然后fg,重新恢复*快速粘贴:先在一个地方选中文字,在欲粘贴的地方按鼠标中键即可。*等效中键:a、按下滑轮等效于中键。b、同时按下鼠标左右键,等效于中键。*快速重启X服务:同时按下: Alt+ Ctrl+ Backspace三个键。*打开运行窗口:同时按下 Alt+ F2键。*戴屏: a、全屏:直接按下 PrtScr键。b、当前窗口:同时按下 Alt+ PrtScr键。c、延时戴屏:在终端或运行窗口中输入命令: gnome-screenshot--delay 3,将延时 3秒后戴屏。*直接将文件管理器中的文件拖到 GNOME终端中就可以在终端中得到完整的路径名。 8.ulimitulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止。ulimited不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)和可同时运行的最大进程数(max user processes)无效-a列出所有当前资源极限-c设置core文件的最大值.单位:blocks-d设置一个进程的数据段的最大值.单位:kbytes-f Shell创建文件的文件大小的最大值,单位:blocks-h指定设置某个给定资源的硬极限。如果用户拥有 root用户权限,可以增大硬极限。任何用户均可减少硬极限-l可以锁住的物理内存的最大值-m可以使用的常驻内存的最大值,单位:kbytes-n每个进程可以同时打开的最大文件数-p设置管道的最大值,单位为block,1block=512bytes-s指定堆栈的最大值:单位:kbytes-S指定为给定的资源设置软极限。软极限可增大到硬极限的值。如果-H和-S标志均未指定,极限适用于以上二者-t指定每个进程所使用的秒数,单位:seconds-u可以运行的最大并发进程数-v Shell可使用的最大的虚拟内存,单位:kbyteseg: ulimit-c 1000(可以先通过ulimit-c查看原来的值)
linux常用命令有哪些
Linux常用命令大全100条:
1,echo“aa”》 test.txt和 echo“bb”》》 test.txt
//》将原文件清空,并且内容写入到文件中,》》将内容放到文件的尾部
2,chmod go+w-R/home/zhangy//给组用户和其他用户添加写的权限
3,tar-tzvf test.tar.gz//列出归档内容
4,du-ah//查看文件列表大小
5,du-sh//查看所有文件的大小总和
6,echo‘1+2’|bc-l//数学运算
7,uname-a//查看linux内核等的一些信息
8,badblocks-s/dev/sda//坏道扫描时显示进度
9,time command//查看命令的运行时间
10,ls-lrt//按时间的倒序排序
11,rsync-P//同步时显示进度
12.history-c//清楚历史命令
13,cd-//返回上次目录
14,tree//显示目录树
15,umount-n/mnt/hda2//强制卸载
16,echo~///显示用户的home目录
17,echo$[5*5]e799bee5baa6e997aee7ad94e78988e69d8331333337376265//算术运算
18,echo$((5*5))//算术运算
19,eval ls;ps aux|grep httpd//这二个命令都能执行
20,free-m//有MB为单位显示内存
21,uptime
//显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载
22,加法运算
[root@krlcgcms01 mytest]# let a=34+3;
[root@krlcgcms01 mytest]# echo$a;
23,export//查看所有环境变量
24,echo$PATH//查看单个变量
25,cmp file1 file2//文件内容比对
26,clear//清屏
27,echo 23423|awk--re-interval‘/[0-9]{3,}/’//如果不加re-interval的话,不显示
28,cal//得到一个整齐的日历格式
29,wc-l//统计行数,wc-w统计单词
30,echo“AaDCbd23”|tr“[A-Z]”“[a-z]”大写变小写,echo“AaDCbdc23”|tr-c b-d=
将b-d之外的字符串替换成=
31,echo“ADSF”| iconv-f UTF8-t GBK//把字符由utf8转成gbk
-f是from和简写,-t好像terminal的简写
32,cat-n file//内容的前面会显示行号
33,chattr+i file//只读,root用户也没法对其进行修改
34,lsattr file//查看文件属性
35,cat/etc/passwd|awk-F:‘{print$1}’//查看系统中所有用户
36,cat/etc/group//查看系统中所有的组
37,groups//查前当前用户所在的,所有组
38,usermod-g组名用户//这种方式是覆盖的方式,用的时候要小心,如果用户A性于mysql usermod-g php
mysql这样的话只属于php了
39,usermod-G组名用户//这种方式是增加的方式,如果用户A性于mysql usermod-g php
mysql这样的话,mysql就属于2个组了
40,bc//进入数学计算中去
41,umask 003 u权限是7,g权限是7,其他用户是4,也就是774,777-003=774
42,mkfs-t vfat/dev/hda6//将移动硬盘里面的一个分区格式化成vfat格式
43,mount/dev/cdrom/media/cdrom//挂载cdrom
44,getent group 532//通过组ID,来查找组信息
45,last//登录成功用户记录
46,lastb//登录不成功用户记录
47,dump-S/dev/sda2//查看一下要备份/dev/sda2所要的容量
48,dump-0j-f/dev/hda2/sda2_bak.dump.bz2/dev/sda2//将sda2进行备份并压缩
49,restore-t-f/dev/hda2/sda2_bak.dump//查看备份信息
50,restore-r-f/dev/hda2/sda2_bak.dump//还原备份
51,fc-list//查看系统中安装的字体
52,find。/-type f-exec grep-q“root”{};-exec echo{};
//查找目录下文件所包涵的字符串
53,vmstat 5//每5显示一下次系统信息,cpu,memory,i/o等
54,top后在shift+ P所占进程的排序显示
55,top后在shift+ M所占内存的排序显示
56,iptraf-g//查看各个接口的流量
57,ostat-d-x/dev/sda2 2//用iostat查看磁盘/dev/sda2的磁盘i/o情况,每两秒刷新一次
58, paste-sd‘|||n’ test//文件的每4行转换成1行,并用|隔开
59,lsof-i:22//知道22端口现在运行什么程序
60,lsof-c abc//显示abc进程现在打开的文件
61,lsof-p 12//看进程号为12的进程打开了哪些文件
63,route//查看路由信息
64,ifup//开启网卡
65,ifdown//关闭网卡
66,route del-net 172.168.0.0 netmask 255.255.0.0 dev eth0//删除
172.168这个网段
67,route add-net 172.168.10.0 netmask 255.255.255.0 dev eth0//增加一个路由
68,netstat-tunl//列出监听的网络服务端口
69,netstat-tun//列出已连接的网络服务端口
70,nmap-sP 172.30.4.0/24//在这个网段内有多少用户在我的主机上操作,一个不错的安全检查工具
71,vgdisplay//查看系统中的可用空间
72,lvextend-L+20G/dev/tank/part1//向part1这个分区增加20G的空间
73,lvresize-L-10G/dev/tank/part2//向part2这个分区减少10G的空间
74,pvdisplay//查看磁盘信息
75,mplayer-loop 10/mnt/song/music/花儿开了.mp3//循环播放10遍
76,pacman-S firefox-nd//nd去掉依赖
77,wget-c//断点下载
78,chroot/mnt/ubuntu//改变根目录到/mnt/ubuntu
79,ctrl+a//命令行下,光标称动到开头
80,ctrl+e//命令行下,光标移动结尾
81,cut-d:-f 1-4 test//用:分割文件,取分割后的1-4列
82,file/home/zhangy/test.php//用于查看文件的一些基本信息
83,touch test.txt//创建一个空文件 text.txt
84,htpasswd-cbd/usr/local/nginx/conf/authfile//创建访问控制文件
85,df//查看磁盘空间,和当前的磁盘数
86,fdisk-l//查看所有磁盘数
87,alsamixer//进入后,m键可以实现静音
88,killall httpd//把所有httpd进程杀掉
89,killall-9 mysqld_safe//有些进程超级用户也停止不了,-9是强制删除
90,mirror/mysql//下载mysql目录
91,mirror-R/mysql//上传mysql目录
92,rmmod pcspkr//关掉tab提示音
93,modprobe pcspkr//开启tab提示音
94,gpasswd-a zhangy wheel//将zhangy这个用户添加到wheel这个组
95,dd if=/dev/zero of=/virtual/ubuntu.virt.img bs=1M count=4096
//创建一个4G的IMG镜像
96,lspic//显示pci设备
97,lsusb//显示usb设备
98,history| less//less根more有点像,感觉less用着更舒服点
99,ln-s//如果忘了-s就变成硬链接了
100,tar zxvf test.tar.gz-C/home/zhangy//将内容解压到指定目录
linux的认识
你从来只用过Windows,从来没接触过UNIX,只知道把一个文件拽来拽去,只知道硬盘就是C: D: E:却从来没有研究过分区表,也许会用VC编个程序,很习惯它的集成环境....有一天,不管什么原因了,也许是看报纸上那些把内存和硬盘都分不清楚的记者的吹嘘,或者是老板要求你用它作个项目,或者是同学们都有了你没有觉得很土,或者你听说找工作有这个的经验就有更大希望....不管怎样,你想在自己的机器上安装一个Linux。OK,这个文章就是给你写的,因为从现在开始,你会有成堆的问题你会觉得从前在windows那里得来的有关计算机的经验好像完全用不上。你会觉得“Linux怎么这样麻烦”。你会有种从来没有开过汽车但是得把汽车拆开修理一样觉得无处下手。为什么要学Linux。其实你不必学习Linux,如果你就是想使用计算机让它使你的工作,比如打字,排版,统计数据等更有效率,Linux不行。Windows,或者我推荐windows XP是你最好的选择,它对中文的支持很好,非常稳定,上面有无数应用程序,而且如果你自己承担风险,还可以使用盗版,免费。Linux将会给你造成很多麻烦,安装时会造成系统数据丢失,无法驱动网卡/声卡/显示卡/显示器,无法配置中文,图形界面速度慢,等等。从前在windows上很容易做到的比如修改显示频率或者安装新的网卡驱动在Linux下都变得好像要你自己重新上一次大一计算机原理课那么讨厌。呵呵,那Linux有什么好处呢?你会问。其实Linux没什么好处,从使用角度,它唯一的好处是它是我们自己的,而windows再好,是Microsoft的。“又能怎么样?”你也许又问。区别是,Linux可以让你来研究它,通过使用Linux你可以获得更深一步对计算机的了解--而不只是一个全自动的盒子。计算机是一个很神奇的东西,你也许对那些写出windows的程序员很崇拜(我是的),或者对那些能发明更好的算法更安全的操作系统的hacker(对不起,远程攻击系统的不是hacker)很崇拜,那么你应当知道,坐在一个windows的机器前面整天就会用鼠标拖拽也许能给你一个很好的打字员的薪水,但是永远无法让你进入真正计算机的世界--成为一个自由思想的Hacker,或者说,你只能永远是个windows的用户--也没什么不好,很多领导还不会计算机呢--而不可能有机会自己写一个windows。一个不太妙的结果是,当世界上充满了windows的奴隶时,我们就得花更大的价钱从Microsoft那里获得这样的技术,某些社会里,我们管这个叫做剥削。讲这么多,无非是说,萝卜不能两头切,至少现在是这样。要想什么别人都给你做好,系统安装一路回车,硬件配置点两下鼠标,对不起,请用windows xp。如果你准备好了这一切,那么接着看吧。
OK,你的第一个问题是:什么是Linux,它和UNIX有什么区别?问这个问题的原因呢,多半是你还在大一的时候一次去实验室,看到高年纪学生在一个特大屏幕的机器上作题,你羡慕的看着他,问:“这是什么计算机啊,这么高级?”而他不无骄傲的说,“这是UNIX”。后来你懂的多了,知道那是SUN工作站,上面运行着Solaris,就是UNIX。现在你又听说Linux也是UNIX,是怎么回事呢?
short answer:去看书,街上很多Linux的书第一章就是讲他们的历史和亲属关系的。
long answer: UNIX是一个20还是30年前由几个研究生在实验室里开始后来一个大公司把它商业化了的一个操作系统。一来二去,它成长并且占领了市场。当时它只是运行在只有大学才买得起一两台的昂贵机器上。后来机器多了,公司多了,懂得人也多了,就分家了,而“UNIX”这个名字由于法律关系,谁也不能说自己的操作系统是“UNIX”而只能说是“UNIX兼容”系统了。所以现在“UNIX”系统是不存在的,存在的只是一个遥远的传说。那么现在那些Solaris,AIX,IRIS都是什么呢?那些都是各公司在他们硬件平提上作的商业UNIX,这些系统都遵循一个叫POSIX的古怪标准,对了,这个标准呢,是后来UNIX太多太乱,大家编程接口甚至命令都不一样了所以没办法座下来商量的一个协议。
那么Linux是什么呢?Linux是基于PC(其它平台也有的支持)的UNIX兼容系统,在跟UNIX的关系上,它不比任何其它UNIX兼容系统远。所以如果你有“Solaris才是正统UNIX,Linux只是兼容”的想法,对不起你错了,起码你得把支持AIX的人打败才行,他们还认为AIX才是正统UNIX呢。所以用Linux你可以学到有关UNIX的知识,这些知识绝大部分在其它商业UNIX上可以用得上。当然,其核心思想绝对是相同的。那么在三年前只有你的读博士的辅导员才有机会在实验室那台宝贝SUN上学的知识,你现在在PC机上就可以实践了,这难道不是很妙的一件事情么?
第二个问题:我想装一个Linux,最新的是哪个版本,我听说过xxxlinux,yyylinux,还有国内某个公司鼎力推出的zzzlinux,到底哪个更好呢?首先你需要明白,Linux不是windows,它不是一个由一家商业公司维护的软件,只有一个包装。Linux是可以任意包装自由配置的东西。任何一个人,一家公司都可以按照自己的想法,比如加一点功能,加中文支持,作一个Linux出来。这些 Linux虽然核心部分都一样,但是他们所带的各种软件,缺省的配置都不一样。区别是用一种Linux发布(不同的Linux我们叫做不同的发布)也许硬件很好配置,各种软件也好安装,用另外一种也许速度快,再一种也许支持中文比较好。总之没有白吃的午餐,在windows下想当然的东西在linux下也许需要你熬夜才能得到。所以从一开始选择distribution就必须非常小心,否则因为自己刚好随某个杂志得到一个Linux发布就以为所有的都一样就开始安装,等硬盘数据毁了,或者网络哭天跄地也配不出来的时候,就晚了。不是开玩笑,我知道windows下安装驱动程序就是鼠标点几下,可是在Linux下,为了驱动一个网卡,折腾一夜是不希奇的--当然,我觉得这是值得的。所以,面对那么多Linux distribution,你应当选择哪个呢?比较著名的Linux distribution有:RedHat:最新版本6.2,7.0beta。由于RedHat公司已经上市,获得了很多商业的支持,所以它在硬件软件兼容性上很好。实际上它已经是Linux的工业标准。想象一下如果你是一个比如Oracle这样厂商的老板,你需要为
Linux开发一个版本,而不同的Linux dist需要单独开发维护,为成本考虑你自然会只认准一个Linux。Slackware(7.1)。很早就有的Linux,有很多老的忠实用户,但现在越来越不行了。SuSe Linux,德国人做的,在欧洲很流行,有一些驱动上的优势。另外还有Debian,CorelLinux等dist,不一一介绍了。和Linux一样,Windows系列是完全的多任务操作系统。它们支持同样的用户接口、网络和安全性。但是,Linux和Windows的真正区别在于,Linux事实上是Unix的一种版本,而且来自Unix的贡献非常巨大。是什么使得Unix如此重要?不仅在于对多用户机器来说,Unix是最流行的操作系统,而且在于它是免费软件的基础。在Internet上,大量免费软件都是针对Unix系统编写的。由于有众多的Unix厂商,所以Unix也有许多实现方法。没有一个单独的组织负责Unix的分发。现在,存在一股巨大的力量推动Unix社团以开放系统的形式走向标准化。另一方面Windows系列是专用系统,由开发操作系统的公司控制接口和设计。在这个意义上这种公司利润很高,因为它对程序设计和用户接口设计建立了严格的标准,和那些开放系统社团完全不一样。一些组织正在试图完成标准化Unix程序设计接口的任务。特别要指出的是,Linux完全兼容POSIX.1标准。
安全问题对于IT管理员来说是需要长期关注的。主管们需要一套框架来对操作系统的安全性进行合理的评估,包括:基本安全、网络安全和协议,应用协议、发布与操作、确信度、可信计算、开放标准。在本文中,我们将按照这七个类别比较微软Windows和Linux的安全性。最终的定性结论是:目前为止,Linux提供了相对于Windows更好的安全性能,只有一个方面例外(确信度)。
无论按照什么标准对Windows和Linux进行评估,都存在一定的问题:每个操作系统都不止一个版本。微软的操作系统有Windows98、 Windows NT、 Windows 2000、 Windows 2003 Server和Windows CE,而Linux的发行版由于内核(基于2.2、2.4、2.6)的不同和软件包的不同也有较大的差异。我们本文所使用的操作系统,都是目前的技术而不是那些"古老"的解决方案。
用户需要记住:Linux和Windows在设计上就存在哲学性的区别。Windows操作系统倾向于将更多的功能集成到操作系统内部,并将程序与内核相结合;而Linux不同于Windows,它的内核空间与用户空间有明显的界限。根据设计架构的不同,两者都可以使操作系统更加安全。
Linux和Windows安全性的基本改变
对于用户来说,Linux和Windows的不断更新引发了两者之间的竞争。用户可以有自己喜欢的系统,同时也在关注竞争的发展。微软的主动性似乎更高一些――这是由于业界"冷嘲热讽"的"激励"与Linux的不断发展。微软将在下几个月对Windows安全进行改观,届时微软会发布Windows XP的WindowsXP Service Pack 2。这一服务包增强了Windows的安全性,关闭了原先默认开放的许多服务,也提供了新的补丁管理工具,例如:为了避免受到过多无用的信息,警告服务和信使服务都被关闭。大多数情况下,关闭这些特性对于增强系统安全性是有好处的,不过很难在安全性与软件的功能性、灵活性之间作出折衷。
最显著的表现是:微软更加关注改进可用性的同时增强系统的安全性。比如:2003年许多针对微软的漏洞攻击程序都使用可执行文件作为电子邮件的附件(例如MyDoom)。Service Pack2包括一个附件执行服务,为Outlook/Exchange、 Windows Messenger和Internet Explorer提供了统一的环境。这样就能降低用户运行可执行文件时感染病毒或者蠕虫的威胁性。另外,禁止数据页的可执行性也会限制潜在的缓冲区溢出的威胁。不过,微软在WindowsXP Service Pack 2中并没有修改Windows有问题的架构以及安全传输的部分,而是将这部分重担交给了用户。
微软的重点显然是支持应用程序的安全性。WindowsXP Service Pack 2中增强的许多方面都是以Outlook/Exchange和Internet Explorer作为对象的。例如:Internet Explorer中有一个智能的MIME类型检查,会对目标的内容类型进行检查,用户可以获悉该内容中是否存在潜在的有害程序。不过这一软件是不是能将病毒与同事的电子数据表区分开来呢?
WindowsXP Service Pack 2的另一个新特性是能够卸载浏览器的多余插件,这需要终端用户检查并判断需要卸载哪些插件。Outlook/Exchange可以预览电子邮件消息,因此用户可以在打开之前就将电子邮件删除。另一个应用安全的增强,防火墙在网络协议栈之前启动。对于软件开发者来说,远方过程调用中权限的改变,使得安全性差的代码难以工作正常。
WindowsXP Service Pack 2也为Windows用户提供了许多华丽的新特性,但是问题仍然存在:这些特性会不会对管理员甚至是终端用户造成负担?是不是在增加了Windows操作系统代码安全性的同时让系统变得更加复杂?
Linux与 Windows的不同
虽然有一些类似之处,但Windows和Linux的工作方式还是存在一些根本的区别。这些区别只有在您对两者都很熟悉以后才能体会到,但它们却是 Linux思想的核心。
Linux的应用目标是网络而不是打印
Windows最初出现的时候,这个世界还是一个纸张的世界。Windows的伟大成就之一在于您的工作成果可以方便地看到并打印出来。这样一个开端影响了 Windows的后期发展。
同样,Linux也受到了其起源的影响。Linux的设计定位于网络操作系统。它的设计灵感来自于 Unix操作系统,因此它的命令的设计比较简单,或者说是比较简洁。由于纯文本可以非常好地跨网络工作,所以 Linux配置文件和数据都以文本为基础。
对那些熟悉图形环境的人来说,Linux服务器初看可能比较原始。但是Linux开发更多关注的是它的内在功能而不是表面上的东西。即使是在纯文本的环境中,Linux同样拥有非常先进的网络、脚本和安全能力。执行一些任务所需的某些表面上看起来比较奇怪的步骤是令人费解的,除非您认识到 Linux是期望在网络上与其他 Linux系统协同执行这些任务。Linux的自动执行能力也很强,只需要设计批处理文件就可以让系统自动完成非常详细的任务。Linux的这种能力来自于其基于文本的本质。
可选的 GUI
Linux有图形组件。Linux支持高端的图形适配器和显示器,完全胜任图形相关的工作。现在,许多数字效果艺术家在Linux工作站上来进行他们的设计工作,而以前这些工作需要使用IRIX系统来完成。但是,图形环境并没有集成到 Linux中,而是运行于系统之上的单独一层。这意味着您可以只运行 GUI,或者在需要时才运行 GUI。如果您的系统主要任务是提供Web应用,那么您可以停掉图形界面,而将其所用的内存和CPU资源用于您的服务。如果您需要在 GUI环境下做一些工作,可以再打开它,工作完成后再将其关闭。
Linux有图形化的管理工具,以及日常办公的工具,比如电子邮件、网络浏览器和文档处理工具等。不过,在 Linux中,图形化的管理工具通常是控制台(命令行)工具的扩展。也就是说,用图形化工具能完成的所有工作,用控制台命令同样可以完成。同样,使用图形化工具并不妨碍您对配置文件进行手工修改。其实际意义可能并不是特别显而易见,但是,如果在图形化管理工具中所做的任何工作都可以以命令行的方式完成,这就表示那些工作也可以由一个脚本来实现。脚本化的命令可以成为自动执行的任务。Linux同时支持这两种方式,并不要求您只用文本或者只用 GUI。您可以根据您的需要选择最好的方法。
Linux中的配置文件是人类可读的文本文件,这与过去的 Windows中的 INI文件类似,但与 Windows的注册表机制在思路上有本质的区别。每一个应用程序都有其自己的配置文件,而且通常不与其他的配置文件放在一起。不过,大部分的配置文件都存放于一个目录树(/etc)下的单个地方,所以看起来它们在逻辑上是在一起。文本文件的配置方式使得不通过特殊的系统工具就可以完成配置文件的备份、检查和编辑工作。
文件名扩展
Linux不使用文件名扩展来识别文件的类型。相反,Linux根据文件的头内容来识别其类型。为了提高人类可读性您仍可以使用文件名扩展,但这对 Linux系统来说没有任何作用。不过,有一些应用程序,比如 Web服务器,可能使用命名约定来识别文件类型,但这只是特定的应用程序的要求而不是 Linux系统本身的要求。
Linux通过文件访问权限来判断文件是否为可执行文件。任何一个文件都可以赋予可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文件。这样做有利于安全。保存到系统上的可执行的文件不能自动执行,这样就可以防止许多脚本病毒。
重新引导是最后的手段
如果您使用Windows已经很长时间了,您可能已经习惯出于各种原因(从软件安装到纠正服务故障)而重新引导系统。在Linux思想中您的这一习惯需要改变。Linux在本质上更遵循“牛顿运动定律”。一旦开始运行,它将保持运行状态,直到受到外来因素的影响,比如硬件的故障。实际上,Linux系统的设计使得应用程序不会导致内核的崩溃,因此不必经常重新引导(与Windows系统的设计相对而言)。所以除了Linux内核之外,其他软件的安装、启动、停止和重新配置都不用重新引导系统。
如果您确实重新引导了 Linux系统,问题很可能得不到解决,而且还会使问题更加恶化。学习并掌握 Linux服务和运行级别是成功解决问题的关键。学习 Linux最困难的就是克服重新引导系统的习惯。