18 12
发新话题
打印

[软件技术] [贴哥][原创]出版,linux专题技术一起玩第一贴!希望给有用的人提供帮助!加精华!

把本帖网址贴到网络上任何地方,同样可以获得推广币和用户等级提升 详情点击这里
http://www.770921.com/viewthread.php? tid=90103&fromuid=0 复制本帖地址
8月活动:积分获大礼活动(实物奖励)
联盟论坛管理人员大招募!

[贴哥][原创]出版,linux专题技术一起玩第一贴!希望给有用的人提供帮助!加精华!

之前,我曾发起一次投票,想看看需要用到该操作系统的人多不多,结果让我很失望呀,发布投票10天以来光顾我投票的就几人,本着一起玩的宗旨:“人人为我,我为人人”,我把他贡献出来,与大家一起分享。用不到的人也能够支持我一下啊,毕竟发贴很辛苦啊!!



                  
                   总目录



linux目录结构介绍---------------------------------第2

学习Linux的七点忠告-----------------------------第3

linux入门文章----------------------------------------第4

Linux基础命令课程
1、系统装好后的基本配置过程--------------------------------第5楼~~~第6
2、Linux基础命令小结------------------------------------------- 第7楼~~~第8
3、Linux编辑器学习-----------------------------------------------第9

Linux操作系统下的常见问题解答----------------------------第10楼(会不定期更新哦)

Linux操作系统下的软硬件技术-------------------------------第11~~~14楼 (资料收集中,暂时抢地盘^_^!)


等你把抢占的地盘都编辑完了,我就给你加精华!

[ 本帖最后由 第七把剑 于 2008-5-26 11:57 编辑 ]

TOP

linux目录结构介绍

Linux的目录结构比DOS复杂多了,让我们来看看它的目录里有些什么东西吧.

/bin (binary)
    这个目录包含着所有的标准命令和应用程序.
/boot

    这里存放给lilo使用的一些文件.
/dev (device)
    这个目录包含着与终端和外设的文件接口,在Linux下,文件和设备是用同种方法访问  的.系统上的每个设        备都应该在这里有一个对应的设备文件.考察一下这个宏:
            #define putchar(ch) fputc(ch,stdout)
    其中fputs就是把ch输出到stdout去了,这里的stdout就是被当成了文件.
/etc (etcetera)
    这个目录包含着系统设置文件和其他的系统文件,它在Linux下极为重要,让我们看看  它的子目录装些什么:


/etc/DIR_COLORS
    设定在用 ls 时,各种不同档案型态所用的颜色,但是不能用pipe 再导向输出,否则就没有各种颜色了.  由档案的内容可以很轻易的了解,如 default 的directory 是蓝色,具有可执行档权限的是绿色,而压缩档是红色......  这些都可依个人喜好来加以更改. 这个档案内容写得很清楚,想必大家一眼也就可以看得出来,在颜色的组成方面,  我们常用  RGB 三原色的成份值来组合出各种不同的颜色. 由R,G,B 这个bit 是 0 或是 1 三个值组合出颜色这个道理虽浅显,但假如我们更了解R,G,B  的加权值分别是 1,2,4 的话,那就再也不用翻书查颜色了......  选择自己的调色盘来取代预设的调色盘,是经常会做的事.
/etc/HOSTNAME
    设定用户的节点名.记录完整的hostname与domain name,这个档案在须要hostname的场合会用得到,如 /etc/rc.d/rc.M 等......


/etc/NETWORKING
    里面只有一行YES,表明网络是存在的,没有任何作用.
/etc/X11
link 到 /var/X11/lib/X11
/etc/aliases
      这个文件是给sendmail的使用设置别名.
/etc/at.deny
      在这个档案中可记载那些人不能使用at这个命令来做一些later job,假如at.deny
    是空的,而且 at.allow 也不存在的话. 那就是每个人都可以用 at 这个命令.
    (at命令是让系统在特定的时间执行某个作业,会了这个指令,可以在工作的执行上会
    更有弹性)
/etc/at.allow
      相对於at.deny,这个档案记载那些人可以使用at.而关於at.deny与at.allow,at会
    先去找at.allow,假如存在而且有记录一些人的话,那就只有这些人能使用at这个
    指令,但假如at.allow并不存在的话,那at就会去找at.deny,没有在at.deny中的人
    都可以使用at这个指令了! 特别要说明的是,at的执行时间也许会不如你所预期的,比
    如说明明一个档你叫它在 7:02 执行,但它却会等到 7:05 才执行,这是因为 crond
    是每五分钟才去看看 at 的 queue 中是否有要执行的 job.  当然,你也可以改成每
    分钟都去 check,但这样似乎没有很大的意义,除非你对时间的准确度要求的很严格
    ,否则应该没有必要去动才是. 大家可去看看 /var/spool/cron/crontabs/root 中
    就有详细记载,每五分钟 run 一次 atrun,所以 at 命令的执行可看成以每五分钟
    为一单位.
/var/spool/atjobs
    当你使用 at 来安排一件工作时,系统会把你目前的环境变
    数及所要用 at 执行的工作抄一份到这个目录下的档案中.
/var/spool/atspool
使用 at 命令之後所得到的一些讯息,会被记录在这里.可
    能是 at 所要执行的命令传回的错误讯息,或传回执行成功的讯息.
/etc/bootptab
      这是用来设置无盘工作站的远端守护进程/user/net/in.bootpd的.用户不用设置.

/etc/csh.cshrc
/etc/csh.login
      这两个档案应该很熟悉罗!它就是大家常见到的.cshrc及.login,不过大家通常只注
    意到自己的home directory有这两个档,但/etc下也有这两个档,不过/etc下的这两个
    档绝大部份的情况下都是由 system administrator 在 maintain(维护),一般user不
    应该有权力去改. 顺便一提的是,系统会先去找 /etc 下这两个档,接着才加上自己
    home directory中那两个档的设定.当然,有了.login也有.logout,.logout中可以写
    一些 message,或执行一些命令,当你下达 logout 之後,.logout 就会被执行.
/etc/devinfo
      用来给makedev这个程序设定各种不同的设备驱动文件的格式.用户不用设置.
    makedev是在/dev目录下创建设备文件的程序.
/etc/diphosts
      用来设置拨号服务器的用户名和密码.
/etc/disktab(disk parameter table)
      假如你在刚开机有 pass 磁碟机的一些参数给 kernel 的话(通常是你的硬碟比较奇
    怪,需要 pass cylinders,heads,sectors 给 kernel 才抓的到,或者是 SCSI 的硬
    碟有时有时也要用到一些参数 ) 那这些参数就会被记录在这里.
/etc/exports
      这个档案记录着你要给别人mount的档案系统,这就是典型NFS系统所存在的档案
    ,TCP/IP for OS/2 若要使用 network file system 而要把自己的 filesystem 让
    别人 mount 的话,这个档案也是不可或缺的.
/etc/fastboot
      这个档案是使用 shutdown -f 所产生的,-f means "fastboot".在重新 reboot
    之後,系统会去检查这个档是否存在,以决定是否要 run fsck.
/etc/fdprm(floppy disk parameter table)
      设定格式化软盘的参数,一般情况下是不须要更动的,除非你有很奇怪格式的软碟,
    或者你想做出不符合一 般格式的磁碟片.
/etc/fstab(file system table)
      记录开机要  mount 上来的 filesystem,这个档案相当重要! 大家可以在

/etc/rc.d/rc.S  中找到 /sbin/mount -avt nonfs 这一列,当执行到这一列时,
    mount 就依据 /etc/fstab  中的记载,自动的将档案系统mount上来.假如你一开机
    就想自动mount一些 filesystems,而不要等到开机後再以手动 mount 的话那把这些
    filesystems 及相关资讯写在这个档.在档案格式方面,每一列有六个栏位,不过後
    面两个栏位常被省略所以我们只看到有四个栏位.其它的两栏分别为dump-freq及
    pass-number.dump-freq 预设值为 0;而pass-number是 fsck 所会参考到的地方,数
    字可为 0,1,2...... 1 表示这个 filesystem 将首先被 fsck check,2 表其次,
    馀类推......
      如我们的服务器:
      # Device        Mountpoint      FStype  Options        Dump    Pass#
      /dev/wd0s1b    none            swap    sw              0      0
      /dev/wd0s1a    /              ufs    rw              1      1
      /dev/wd0s1h    /home          ufs    rw,async                2      2
      /dev/wd0s1g    /tmp            ufs    rw,async                2      2
      /dev/wd0s1f    /usr            ufs    rw,async                2      2
      /dev/wd0s1e    /var            ufs    rw,async                2      2
      proc            /proc          procfs  rw              0      0
      /dev/wcd0c      /cdrom          cd9660  ro,noauto      0      0
/etc/ftpacces
      设定ftp服务器的一些配置,包括匿名服务器的设置.
/etc/ftpconversions
      设定在ftp时使用的过滤器的位置.例如"get dirname.tar"就可以将ftp服务器上
    的目录先tar再传回来,这个文件就是设定这些打包或压缩程序的目录和参数的.
/etc/ftpusers
      这个档案记录那些人不可以 ftp 签入系统,预设值有 root,uucp,news.这些都是为
    了security方面的考虑,你可以在这里加入不可 ftp 进来的 user id.
/etc/gateways
      顾名思义,这个档案记录一些 gateways 的 information.
      这个档案的格式如下:
    <net|host> name1 gateway name2 metric value <passive|active|external>
    当 routed 启动时,它会去读 /etc/gateways 这个档. 若一个 gateway并不做
    routing information 交换的话,那它就会被标示成  passive,假如有做routing
    information 的交换 ( 这台机器上有 run routed ),那就会标示成 active net 或
    host 这个关键字是指出 route 是到网路或是到一台特定的机器上.  name1  就是目
    地网路或目地机器的名字.这个名字可用  /etc/hosts 或是 /etc/networks  中的
    symbolic host name. name2 就是讯息将被送往之gateway的name或IP address.
/etc/gettydefs
      getty_ps的定义文件.
/etc/group
      如同 /etc/passwd 列出了系统中所有的使用者名字,/etc/group 定义系统中所
    有的 group name 与相关讯息. 格式为:
      group_name:passwd:GID:user_list
    如:wheel:*:0:root,hua,yzr,cyt
    上面的例子表示root,hua,yzr,cyt都是属於wheel这个 group.通常 passwd 那栏是空
    白的,表示不用密码.或放一个*号.
      这个档案只能为 superuser 所读写,一个 superuser 可使用 groupadd,
    groupdel,groupmod 来管理 /etc/group 这个档,要手动管理也是可以.下面是这三个
    指令的用法 :
      groupadd [ -g gid [ -o ] ] group_name
      groupdel group_name
      groupmod [ -g gid [ -o ] ] [ -n new_group_name  ] group_name

/etc/hostid
      系统独有的一个硬件id,许多商业程序利用这个来做license的管理,在其他工作站
    上这个参数是无法更改的,只有linux可以用hostid这个参数来更改.
/etc/hosts
      这个档案记录着 IP address 至hostname的mapping.如我们想把 202.38.248.1 取
    个别名叫:bbs.那我们就可以在这个档案里写如下的叙述 :
      202.38.248.1      bbs
    如此一来,以後我们 telnet bbs 就等於 telnet 202.38.248.1.在这个档案中,至
    少会有两列,一列为 loopback,这是为了侦错目的而设的,另一列为 local host,就是
    你自己的机器.
/etc/host.conf
      这个文件会说明用户的系统会如何查询节点名,它应该包括至少以下两行:
      order hosts,bind
      multi on
    这两行通知先检查/etc/hosts文件,然后去查DNS,而且可以使用多个DNS.
/etc/host.equiv
      在里面可以设定一些 remote machine,而从这些 remote machine 利用 rsh 或
    rlogin 连回 local machine 的话便不用输入密码..rhosts的作用也是类似的.不过
    这东西最好不要乱设,以信得过的hosts为主,才不会造成security上的困扰.
/etc/host.deny
      设定那些 remote hosts 不可以使用 inetd.
/etc/host.allow
      设定那些remote hosts可以使用inetd.如ALL:202.38.248.就是202.38.248.上
    的所有机器都可以用了.
/etc/host.lpd
      记录可 access printer 的 hosts.假如一台 printer可被网路上的许多台主机
    所共用,那 printcap  这个档案必须得描述完整的网路设定资讯. 在比较严密控制
    的情况下,有两个条件必须符合首先,local machine 必须在 remote machine 的
    /etc/hosts.eqiuv 中,或者,在 remote machine 的 /etc/hosts.lpd  中被记载第
    二,使用者必须有 remote machine 的帐号.
/etc/inetd.conf
      设定系统的网络守护进程inetd的配置,格式如下:
      service_name  sock_type  proto  flags  user  server_path  args
      服务名称      包类型    协议  参数  用户  服务器路径    参数
    例如:
    ftp    stream  tcp nowait root  /usr/local/libexec/ftpd ftpd -a
    telnet  stream  tcp nowait root  /usr/libexec/telnetd    telnetd
    #shell  stream  tcp nowait root  /usr/libexec/rshd      rshd
    #login  stream  tcp nowait root  /usr/libexec/rlogind    rlogind
    #finger stream  tcp nowait nobody /usr/libexec/fingerd    fingerd -s
    #exec  stream  tcp nowait root  /usr/libexec/rexecd    rexecd
    #uucpd  stream  tcp nowait root  /usr/libexec/uucpd      uucpd
    #nntp  stream  tcp nowait usenet /usr/libexec/nntpd      nntpd
    #comsat dgram  udp wait  root  /usr/libexec/comsat    comsat
    #ntalk  dgram  udp wait  root  /usr/libexec/ntalkd    ntalkd
    #tftp  dgram  udp wait  nobody /usr/libexec/tftpd      tftpd /tftpboot
    #bootps dgram  udp wait  root  /usr/libexec/bootpd    bootpd
/etc/inetd.pid(inetd process id)
      inetd这个进程的进程id.
/etc/inittab
      设定系统启动时init进程将把系统设置成什么样的runlevel,用户不需要设置.
/etc/issue
      这个档案被记录着 login prompt 前所要 echo 的 message,特别要注意的是
    /etc/rc.d/rc.S下面的四行若没有mark,则每次开机 issue 及 motd 都会被重建.
/etc/klogd.pid(klogd process id)
/etc/ld.so.cache
      查找系统动态链接共享库的缓存,如果损坏用ldconfig可以重新产生.
/etc/ld.so.conf
      系统动态链接共享库的路径,记录一些 library 所在的目录,应用程序从这个文件
    去查找相应的lib文件.例如:
      /usr/local/lib
      /usr/X11R6/lib
      /usr/i486-linuxaout/lib
      /usr/openwin/lib
/etc/lilo.conf
      配置多重启动程序lilo的配置文件,每次更改之后一定要重新运行lilo才有效.
/etc/login.defs
      这是所有用户登陆时的缺省配置文件,这个文件中有大量的定义,许多原先在profile
    和login文件中的定义都挪到这里了.如用户缺省路径,登陆时间限制,最多错误登陆次
    数等.是系统管理员应该经常修改的地方.
/etc/magic
      这个档案记载了许多档案格式的识别字串或方法.那这个档在那里会用的到呢?用在
    file 这个指令上.file 这个指令的命令格式为:
      file [ -c ] [ -z ] [ -L ] [ -f namefile ] [ -m magicfile ] file
    file 这个指令可以告诉你某一个档案的格式,如它是一个 text 档,或是一个
    shell script 或 DOS 可执行档等...... 而 file这个指令,就是去参考/etc/magic
    这个资料库.假如你知道某一档案的识别字,而原来 magic 这个资料库没有记录,那
    你可以把识别方法加到资料库中,或乾脆建立自己的资料库算了.
/etc/mail.rc;/etc/mailcap;/etc/sendmail.cf;/etc/sendmail.st
      这几个文件都是为了设置sendmail的.
/etc/makedev.cfg
      同devinfo一样是给makedev使用的设置文件.用户不必设置.
/etc/motd(message of the day)
      在这个档里面可以写一些 message ,而这些 message 会在 login shell 之前被显
    示出来.通常都是 system administrator 要告知 user 的一些讯息. 而关於每次都
    会改变的问题,在前面/etc/issue时已提出过,记得 mark 起来就是了.
/etc/mtab
      记录目前mount的filesystem.大家可以用mount指令来看这个档的变化的.每mount
    一个filesystem,在这个文件就可以立刻反映出来了.也就是说,这个文件是动态更新
    的,可以参见/proc/mounts这个文件.
/etc/mtools
      这里面记录的是给 /usr/bin/mtools 参考用的 parameter.mtools就是一群操作
    MSDOS档案的命令集合,可用的命令如下:
      mattrib - change MSDOS file attribute flags
      mcd - change MSDOS directory
      mcopy - copy MSDOS files to/from Unix
      mdel - delete an MSDOS file
      mdir - display an MSDOS directory
      mformat - add an MSDOS filesystem to a low-level formatted diskette
      mlabel - make an MSDOS volume label
      mmd - make an MSDOS subdirectory
      mrd - remove an MSDOS subdirectory
      mread - low level read (copy) an MSDOS file to Unix
      mren - rename an existing MSDOS file
      mtype - display contents of an MSDOS file
      mwrite - low level write (copy) a Unix file to MSDOS
    这些都被 link 到 mtools.
/etc/named.boot
      假如你要建立 name server 的话,那这个档就是你要修改的地方详细的情况可以
    去看 named 的 manual.
/etc/named.pid(named process id)
      本机上运行DNS的进程id.
/etc/networks
      这个档与 hosts 有点像,都是在 boot 的时候会用到的东西,在这里可以定义一
    个子网路与其 IP address 的资讯.
/etc/NNTP_INEWS_DOMAIN
      设置新闻服务器的配置文件.
/etc/nntpserver
      设置用户使用的新闻服务器的地址.
      这个档案记录着 news server,当我们使用 tin -r (read news remotely) 时,
    这个档案会被参考到,或者若这个档案不存在的话,那环境变数 NNTPSERVER 所指定
    的 server 就会被当成要去取得 news 的 server.  譬如说,你要将 202.38.248.1
    当成 news server,那 /etc/nntpserver 中就可写: 202.38.248.1
/etc/nologin
      你也许会感到奇怪,我的 /etc 这个 directory 下并没有这个档啊?没错,它平常是
    不存在的,通常会看到这个档的话,那表示系统大概要 shutdown 了,因为系统要
    shutdown 了,自然不希望有人又login 进来,所以在我们执行 shutdown时,nologin
    这个档会自动的被 create,里面放着 shutdown message.实际上,当我们在login 时,
    系统会去检查有没有这个档,假如有的话,那就会印出这个档案中的 message,然後不
    让你 login.nologin 也有可能是为了某种理由被制造的,比如说系统在 maintain
    暂时不希望有人 login.无论如何 nologin 若存在,就不能 login.
/etc/organization
      存放用户的名字和组织,没什么用.
/etc/passwd
      呵呵,这个档案可重要了.一个 system administrator 最初要学的常常就是这个
    档案的内容! 这个档案记录着系统可以认得的user,也包括一些非人的 login name,
    但这是有特殊用途的.  档案内容每列的格式如下:
      Login Name:Encrypted Password:UID:GID:GCOS:Home Directory:Login Shell
    (1)login name
      在 login name 方面,每个 login name 必须是唯一的,而且不能超过 8 个字符,
    一般说来,login name 虽然可以大小写混合,但平常的情况下都用小写.
    (2)Encrypted Password
      这栏是编码过的密码,在新增一个 new user 时,应该在这栏填上*,更改 password
    可用 passwd 这个指令. passwd 这是一个 setuid 的指令.
    (3)UID(user id)
      每个"人"都要不一样,习惯上,100 以前被保留做为特殊的 user id,而root总是0.
    (4)GID(group id)
      在比较早期的系统,一个user同时只能在一个group,不过现在就没有这种限制了.
    (5)GCOS
      这栏基本上没有特殊格式限制,在这里可以写上你的 full name家中电话,住址等.
    爱写什么就写什么.
      finger 这个指令会去读这地方的资讯.用chfn 可改变这栏.
    (6)Home Directory
      这栏没什么,就是记录 user 的 home directory 而已,利用 cd 或 cd~ 都可回到
    home directory.
    (7)Login Shell
      设定使用者所使用的 shell,预设值是 /bin/bash.当然,你也可以自己改成 csh
    或 tcsh,zsh 也是不错,假如有 free 版的 korn Shell 也可拿来用用.用 chsh可改
    变你的 login shell.
      为了 security 方面的考虑,可以安装 shadow,将 passwd 这个档完全的与一般
    user 隔绝开来,连读也没有办法读 passwd 这个档.

/etc/pnpdevices
      列出了支持的plug&play设备.

/etc/profile
      profile 这个档是 bash 这个 shell 所用的,profile 之于bash就好像 cshrc 之于
    csh. 同样的,/etc 下的 profile 也是 SA 在维护的,主要是放着全域的设定(Global
    Setting)而每个 user 在自己的 Home Directory 都可以有各人的.profile.

/etc/protocols
      假如你为了某些目地,而写了自己的 protocol,那你就必须把它列在这个档案中,这
    样 inetd 才会管理一些 daemons 去用它这个档案每列的格式如下,# 之後的是注解:
      Protolcol Name      Portocol Number      Aliases
      协议名              代码                  别名
    ip      0      IP      # internet protocol,pseudo protocol number
    icmp    1      ICMP    # internet control message protocol
    igmp    2      IGMP    # internet group multicast protocol
    ggp    3      GGP    # gateway-gateway protocol
    tcp    6      TCP    # transmission control protocol
    pup    12      PUP    # PARC universal packet protocol
    udp    17      UDP    # user datagram protocol
    idp    22      IDP    # WhatsThis?
    raw    255    RAW    # RAW IP interface

/etc/psdatabase
      这个档案是被 psupdate 所用到,psupdate 主要的功能就是更新
    /etc/psdatabase 这个档,以符合目前的 kernel image system map file.一般的预设
    档是 /usr/src/linux/tools/zSystem.

/etc/resolv.conf
      这里面记载着你机器的 domain name 及 name server 的 IP address,name server
    可以自己加入.name server 可不要随便就去掉,否则,就会地址没有办法被解译,故会
    有 Host name lookup failure 的信息.

/etc/rpc
      !!!!!!!!!

/etc/securetty
      假如你要以 root login 的话,实际上是有限制的,这个档案就列出了 root 可以
    login 的 ttys,假如你把每一列都 mark 起来那就没有任何一个 terminal 可供root
    login 了,就会出现以下的情况 :
                  login: root
                  root login refused on this terminal.
    仔细的在这个档案列出可用的 terminal,可使从 modem 连的使用者或经由网络来的
    其它的使用者比较不容易取得 superuser 的权力.

/etc/services
      设定系统的端口与协议类型和提供的服务.

/etc/shadow
      这个文件对一般用户是不可读的,加密后的密码就放在这个文件中.

/etc/shells
      这个档案里面就记录着可以用的 login shell.还有一点,那就是这个档的记录会在
    使用 chsh 时做为参考,唯有被列在这里的 shell,使用 chsh 时才会出现这些 shell
    可选.实际上如果强行直接修改passwd文件,也可以使用不在列表中的shell程序,但会
    造成在ftp的时候,无法登陆.

/etc/slip.hosts;/etc/slip.login
      这两个文件是设定SLIP的配置文件.

/etc/snooptab
      如果系统管理员用ttysnoops替换了login这个程序,就可以用snooptty这个程序来
    监控用户的屏幕,这个文件就是能监听的终端列表.

/etc/sudoers
      在一个不是很复杂的系统中,也许一个 System Administrator 就可以管理所有的
    事情.但一但系统提供的服务变多,系统管理的工作也随之变得沉重,这时候,sudo 就
    派上用场了,sudo 可以让一个普通的 user 变成 superuser,这样一来,一个系统的某
    些工作,就可以分配给这些 superusers 来做.以减轻负担.
      当然,并不是每个 user 都可以变成 superuser.所以/etc/sudoers 就是记录着那
    些人可以用 superuser 的身份来执行一些工作.
      这个档案有一个专属的 editor 叫 visudo 可来编辑 /etc/sudoer.而关於使用
    sudo.bin有一个记录档,在 /var/adm/sudo.log,里面记录着谁在什么时候利用sudo
    下了那些指令.顺便一提的是:利用下面这个命令可抓出那些人转换成 superuser 但
    却没有成功:grep "FAILED SU" /var/adm/messages
/etc/syslog.conf
      系统记录程序syslogd的配置文件,格式如下:
      *.=info;*.=notice    /usr/adm/messages
      *.=debug            /usr/adm/debug
      *.=warn              /usr/adm/syslog
    即所有的info和notice信息都存在/usr/adm/messages下,debug信息在/usr/adm/debug
    下,警告信息在/usr/adm/syslog下.

/etc/ttys
      设定系统的终端类型.

/etc/utmp
      从 utmp 中可以知道现在有谁正在用系统.当使用者logout之後,init就去把logout
    的使用者从 /etc/utmp 中去掉.实际上,utmp 每个 record 是像这样的一个结构:
            struct utmp {
                short ut_type;              /* 登陆类型 */
                pid_t ut_pid;              /* 进程id */
                char ut_line[12];          /* 使用终端 */
                char ut_id[2];              /* 初始化id */
                time_t ut_time;            /* 登陆时间 */
                char ut_user[8];            /* 用户名 */
                char ut_host[16];          /* 远程登陆机器名 */
                long ut_addr;              /* 远程登陆机器的ip */
              };
    了解这个档案,进而去修改,可以做出许多有趣的事......:P
/etc/wtmp
      简而言之,wtmp 是一个 login data base,有许多的指令会用到这个档,像 last,
    sessreg,who 等......这个档案格式与 utmp 大致相同,只是多了shutdown及reboot
    这个记录,指出系统的 shutdown 或 reboot,及一个空的 user name指出在相关
    terminal 的 logout.还有,不像 /etc/utmp,/etc/wtmp 的记录是慢慢的附加上去的,
    也就是说,这个档案会越变越大,虽然变大的速度并不会太快,但一但到了某种程度大小
    的话,System Administrator 可以隔一段时间就删除这个文件,再用touch来产生.下面
    是用 last 这个指令所得到的部份内容:
      bbs      tty1                          Tue Nov 29 19:09 - 19:09  (00:00)
      root      tty1                          Tue Nov 29 19:08 - 19:09  (00:00)
      root      tty1                          Tue Nov 29 19:07 - 19:07  (00:00)
      runlevel  ~                            Tue Nov 29 19:07
      reboot    ~                            Tue Nov 29 19:07
/etc/XF86Config
      X Window的配置文件.
/etc/yp.conf
      NIS的配置文件.
/etc/zprofile
      link 到 /etc/profile
/home
    存放用户主目录的地方,一般说"/home/username"就是用户的主目录.
/lib(library)
    存放系统最基本的动态连接库.这个目录如果被删除的话就不能动了.几乎所有的程序
  都要用到这个目录下的共享库.
/lost+found
    这个目录一般都是空的.但当文件系统发生故障(如系统掉电)后,在机器启动的时候有
  些文件找不到应该存放的地方,就放到这个目录底下了.这个目录是mkfs是自动产生的.
/mnt
    空目录,是让用户临时挂载文件系统的地方.
/proc
    是linux提供的一个虚拟系统,是由系统在系统启动的时候在内存中产生的,用户可以
  直接通过访问这些文件来获得系统信息,例如/proc/kcore就是系统运行的时候内存的
  映象文件.
/root
    超级用户主目录.
/sbin
    这个目录存放着super user使用的系统管理程序,如fsck,mount等.
/tmp(temporary)
    存放不同的程序执行时产生的临时文件.这是除了/usr/local目录以外一般用户可以
  使用的一个目录.这个目录在启动时系统并不自动删除,所以最好能经常删除这里的无用
  文件.
/usr(user)
    linux系统占地最大的一个目录,用户的很多应用程序和文件都几乎存放在这里.下面
  时一些比较重要的目录:
/usr/X11R6
      存放XFree86的目录,所有于X Window有关的程序都放在这里.
/usr/bin
      用户用到的大部分程序都放在这里.

/usr/sbin
      超级用户的管理程序和系统守护程序.
/usr/doc
      放着linux的文档.
/usr/include
      在linux下开发编译应用程序需要的头文件.
/usr/lib
      存放常用的动态链接共享库和静态档案库.
/usr/local
      让用户安装新软件使用的,目录结构和/usr类似.
/usr/man
      存放着linux online help.
/usr/src
      存放着系统的源代码,缺省的有一个/usr/src/linux目录,是用来存放系统内核的源
    代码.重新编译内核的时候就是在这个目录下进行的,有些应用程序也会用到这个目录
    下的一些头文件.
/var
    这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被
  修改的目录可以放在这个目录下.
/var/log
      系统的日志文件.
说明:在不同的linux版本,目录结构也有不少的区别.

TOP

学习Linux的七点忠告

1、很多人用 Linux 的时候会感觉很迷茫,该用哪个发行呢?是不是我少装了什么?怎么升级这么快啊!怎么这么不稳定!每当遇到新的软件他就想试用,每当新的版本出现,他就更新,然后用鼠标在新的菜单里选择从来没见过的程序来用用。

其实你是为了Linux而使用Linux,而没有找到正确的理由来利用Linux。你首先要明确用电脑的目的,你用它是为了解决你的实际问题,而不是为了学习安装操作系统,不是为了测试哪个版本好用,不是为了“赶上潮流”,更不是因为你硬盘太大了,你想多占点空间。

如果你启动了电脑之后不知道应该干什么,那么最好先不要用电脑,因为你可能有更重要的事情需要做。

2、不用挑剔发行版本

很多人刚开始用 Linux的时候,总是在怀疑别的发行版本是否比自己正在用的这个好,总是怀疑自己以后时候会失去支持,不得不换用别的发行。所以很多人今天是Redhat,明天又换成了 debian, 一会儿又是 gentoo, …… 甚至有的人在一台机器上装了两个版本的Linux,然后比较哪一个好。

其实你完全没有必要这样做,任何发行,只要你熟悉了,你在上面的工作方式几乎是不会受到任何影响的。你常常听说 Debian 的更新比 Redhat快,包比 Redhat 多,但是你可以比 Debian 更新还要快,直接到你需要的程序的主站点下载源码来编译就是了。

Debian, TurboLinux, SuSE, Redhat, Gentoo, ... 任何一个版本都是不错的。

3、不要当“传教士”

很多人在讨论区不断的引起 "Linux vs. Windows"之类的讨论,甚至争的面红耳赤,这是没有必要的。因为各人的需要不同,生活的环境不同,你不可能得到一个定论。我们需要尊重别人的选择,这是你在进行任何对工具的讨论前需要提醒自己的事情。面对一些容易引起争论的东西:Word 和 TeX;Emacs 和VIM;MAXIMA,Mathematica 和 Maple;Gnome,FVWM 和 KDE;Mutt 和 Pine …… 一定要冷静。

你需要关心的不是你的工具是什么,而是你用它做了什么。精通 Linux 并不说明任何问题,因为它只是一个工具而已。如果你用 Windows能很好的完成你的任务,那你就没有必要费时间去熟悉 Linux。直到有一天你发现一项任务只有 Linux 才能完成的时候再换也不迟,因为你身边的Linux 的爱好者一定会很乐意的帮助你。

并不是喜欢一种东西就必须反对其它的。世界需要多样性,人们都需要FUN。用自己的兴趣去压制别人的,就会毁掉所有的兴趣。个人喜欢什么就用什么,完全没必要为这个争论。

不要做“传教士”!你说我现在就是在“传教”?冤枉啊~

4、直接从源码安装程序

很多人放着最新的源码不用,等着有人帮他做出 rpm, deb, 才能安装。我说你为什么不用源码编译,这样版本比 rpm 高的多,有很多新功能,而没有烦人的依赖关系。可是他说:“要是我用源码编译安装,卸载的时候就不方便了,会留下很多**。”

&&&&为什么程序还没有安装你就想到卸载?难道你不知道这个程序是用来做什么的?你应该改变到处找程序来试用的作法,而应该先了解一下到底那些程序有同样的功能,听听别人的意见,看看它们各有什么长处和短处,然后挑一个最适合你的程序来用。

从源码编译安装程序,不但比你装rpm更适合自己的机器设置,而且它们一般会装到 /usr/local目录,这样你以后如果换硬盘重装系统,也可以把以前 /usr/local 下的程序原封不动拷贝过去用。我的 /usr/local 下有 2G之多的程序,你想要是我有一台新机器要重新安装,然后配置,得花费多少时间?实际上我曾经通过网络把它们传到一台新机器上,然后就出去吃晚饭,回来时我就得到了另一台一摸一样的 Linux 机器。

确实要卸载 make install的程序怎么办呢?答案是直接删掉。别以为直接删掉程序会留下**,引起“系统不稳定”。(btw: 这是谁教你的啊?呵呵。) makeinstall 无非就是把可执行程序放在 /usr/local/bin, 把某些函数库放在 /usr/local/lib,把数据文件放在/usr/local/share下一个它自己的目录,你把这些东西都删掉就行了,不会留下**,即使真的留下一点文件没有删掉也占不了多少空间,更不可能引起系统不稳定。UNIX就是这么简单。

但是有几个程序不建议从源码安装,它们是 Mozilla, Open Office, ... 它们编译时会占用你几个G的空间和好几个小时的时间,这种花费我觉得是不值得的,因为你不能从编译得到更多好处,不如直接安装编译好的版本。

5、不要盲目升级

不知道这是心理作用还是什么,有的人看到比较大的版本号,就会很想换成那个。很多人的 Redhat 本来配置的很舒服了,可是一旦 Redhat发行新的版本,他们就会尽快下载过来,然后选择升级安装。结果很多时候把自己原来修改得很好的配置文件给冲掉了。新的软件又带来了新的问题,比如有一次我的 rxvt 升级到 2.7.8 就跟 miniChinput 冲突了,升级到 Redhat 8.0,发现 xmms居然缺省不能放mp3了,XFree86 的 xtt 模块在 I810 上有新的 bug,会导致 Mozilla 突然退出。

如果你已经配置好了一切,千万别再整体升级了,这会浪费你很多很多时间的,不值得。如果需要的话,你可以只把某些部件升级,比如内核,glibc, gcc, XFree86,...

使用 UNIX 的经典程序

好的程序一般都是可以很方便的在很多种 UNIX 上移植的,bash, VIM, Emacs, Mutt, FVWM, xterm,都是这样。如果你用这些程序,你就可以在 Sun, HP, ... 等工作站上也装上,这样你在各种机型上的工作环境就几乎完全一样了!你不需要在Sun 上面用 CDE,在PC上又换成 KDE,在它们上面都装一个 FVWM,使用相同的配置文件,就能得到一致的界面。

这些程序大部分都是久经考验的,是经过很多人多年开发的结果。它们功能完善,各种情况都考虑周全,绝对是你的好助手。

6、不要配置你不需要的东西

如果你只想做一个像我这样的普通用户,主要目的是用 Linux来完成自己的科研任务和日常工作,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。普通用户学习那些不经常用到的复杂的维护系统的工具,其实是浪费时间,学了不用是会很快忘记的!

我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,设置好 ssh, ftp已经足够了,那样可以省去我很多麻烦。我从来不过度考虑“安全”,因为 Linux 缺省已经很安全了。我没有磁带机,就不用管 tar的那些稀奇古怪的参数了,czf, xzf, ztf 已经可以满足我所有的需要。sed, awk, ... 我也只会几种常用的命令行。

7、不用忙着看内核源码

除非你想研究操作系统,否则还是先把怎么使用 Linux掌握好再说吧。我以前看了那么多内核源代码,写了驱动程序,结果最后发现我还是一只很多事情不能用 Linux 解决的菜鸟吸取我的教训吧,你应该首先掌握 shell,Xwindow 的使用和原理,它们可不比内核简单。

TOP

linux入门文章

你从来只用过Windows,从来没接触过UNIX,只知道把一个文件拽 来拽去,只知道硬盘就是C: D: E:却从来没有研究过分区表,也许 会用VC编个程序,很习惯它的集成环境....

有一天,不管什么原因了,也许是看报纸上那些把内存和硬盘都分不 清楚的记者的吹嘘,或者是老板要求你用它作个项目,或者是同学 们都有了你没有觉得很土,或者你听说找工作有这个的经验就有更大 希望....不管怎样,你想在自己的机器上安装一个Linux。OK,这个 文章就是给你写的,因为从现在开始,你会有成堆的问题你会觉得从前 在windows那里得来的有关计算机的经验好像完全用不上。你会觉得 “Linux怎么这样麻烦”。你会有种从来没有开过汽车但是得 把汽车拆开修理一样觉得无处下手。OK,这个文章就是为你写的。

为什么要学Linux。其实你不必学习Linux,如果你就是想使用计算机 让它使你的工作,比如打字,排版,统计数据等更有效率,Linux不 行。Windows,或者我推荐windows 2000是你最好的选择,它对中文 的支持很好,非常稳定,上面有无数应用程序,而且如果你自己承担 风险,还可以使用盗版,免费。Linux将会给你造成很多麻烦,安装时 会造成系统数据丢失,无法驱动网卡/声卡/显示卡/显示器,无法配置 中文,图形界面速度慢,等等。从前在windows上很容易做到的比如 修改显示频率或者安装新的网卡驱动在Linux下都变得好像要你自己重 新上一次大一计算机原理课那么讨厌。呵呵,那Linux有什么好处呢? 你会问。其实Linux没什么好处,从使用角度,它唯一的好处是它是 我们自己的,而windows再好,是Microsoft的。“又能怎么样?” 你也许又问。区别是,Linux可以让你来研究它,通过使用Linux你可以 获得更深一步对计算机的了解 -- 而不只是一个全自动的盒子。计算机 是一个很神奇的东西,你也许对那些写出windows的程序员很崇拜(我 是的),或者对那些能发明更好的算法更安全的操作系统的hacker(对不 起,远程攻击系统的不是hacker)很崇拜,那么你应当知道,坐在一个 windows的机器前面整天就会用鼠标拖拽也许能给你一个很好的打字员 的薪水,但是永远无法让你进入真正计算机的世界 -- 成为一个自由 思想的Hacker,或者说,你只能永远是个windows的用户 -- 也没什么 不好,很多领导还不会计算机呢 -- 而不可能有机会自己写一个windows。 一个不太妙的结果是,当世界上充满了windows的奴隶时,我们就得花 更大的价钱从Microsoft那里获得这样的技术,某些社会里,我们管这个 叫做剥削。

讲这么多,无非是说,萝卜不能两头切,至少现在是这样。要想什么 别人都给你做好,系统安装一路回车,硬件配置点两下鼠标,对不起, 请用windows 2000。如果你准备好了这一切,那么接着看吧。 --

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机上就可以实践了,这难道不是很妙的一件事情么?

TOP

Linux基础命令课程

 系统装好后的基本配置过程

   基础一:

  使用root登录 进入系统后默认进入的用户的home目录,可以使用pwd打印当前工作目录的位置 在根目录下面输入 ls / 查看。

  由于root用户权限比较高,不要轻易使用,先建立一个普通用户,使用useradd rathat命令建立 rathat命令 passwd redhat 命令创建密码。

  普通用户的目录放在home目录下ls /home 查看,ls –ls /home/redhat 查看其权限等。推出系统exit,用刚才建立的用户登录系统。 Ls –a 查看隐藏文件。使用su –以超级用户身份登录,whoami查看当前登录用户。看一下根目录中的子目录 ls –l /

  第一个目录 bin 放置的是二进制文件程序工具,是系统不可缺少的工具机,我们运行的命令一般都放在这里 ls dir

  第二个目录 boot 方的是系统启动的必须文件

  Dev目录方的是系统的设备 linux 将系统所需的外设都堪称文件

  Etc 系统的配置文件所存放的位置,系统所有的配置文件都放在这下面

  Home 普通用户的防止位置,刚装好后是空的 随着用户增多而增加

  Initrd 临时目录,初始化引导时候用的

  Lib 动态链接库存放的位置

  Lost +found 自检的时候发现的碎片文件,某个文件丢失了可能在他里找回了

  Misc 基本不用的,杂七杂八的

  Mnt 挂在外部设备的 ,光驱

  Opt 安装第三方软件的

  Proc 虚拟的文件系统 反应的是进程信息,不占用硬盘空间的

  root 管理的目录

  Sbin 超级用户的管理工具 系统不可去少的

  Tmp 临时文件 全局可些的

  User 所有用户公共的资料

  Var 动态变化的数据,数据库,日志等

  Var 和home 是变化的经常需要维护更新


基础二

如何了解系统里面分区的情况呢?

使用df 查看当前系统中所有分区占用的大小

df 的结果不是很好认识,加后缀-h比较好读 每一个结果都会有一个后缀

  

Df只能查看每个分区的使用情况不能使用每个目录的使用情况,如果向查看每个目录的大小使用du du /* 根目录下的所有文件夹  


基础三

这个结果中看出最占用的是usr 。fdisk –l /dev/sda 反应的是分区情况

检查网络环境:

  首先使用ping 检查是否能与外网通讯 结果不能解析主机名称。然后查看dns的客户端配置文件使用 more /etc/resolv.conf(保存的默认的域名及dns服务器)

         

首先限于dns的ip地址通讯不通

  检查ip地址的配置ifconfig

  

基础四

Eth0网卡接口,默认可打印所有网络接口的信息,ip地址是192.168.0.254 不符合

Lo 是回环设备

更改ip地址和默认网关 使用工具netconfig

  


Ok 回车配置ip及dns网关等

Ok 继续

  此时这个配置信息没有马上保存,需运行service network restart重新启动网络服务,如果全都看到ok的话说明修改成功了,使用route –n检查一下默认路由看到网关是10.0.0.138 说明生效了

  在网络配置过程中如果不肯定整个网络环境可以使用基本环境进行测试,可以使用ping –b ip地址可以扫描整个网段,ip地址使用广播地址,如此时使用10.0.0.255。



基础五

Ifconfig命令还可以修改网络接口ip地址 使用 ifconfig eth0 10.0.0.254,默认情况现会默认分配掩码地址,我们可以使用metmask来改变掩码

使用route add default gw 10.0.0.138 要到达任何网络默认要经过10.0.138 ,修改网关。

  Route和ifconfig修改之后不会马上保存 重启后丢失。建议使用netconfig命令。这个命令把修改信息写进了一个配置文件,配置文件的位置 ls /etc/sysconfig/network-scripts/



   

                        



[ 本帖最后由 每天发N贴 于 2008-4-30 14:06 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

系统装好后的基本配置过程

基础六

 Netconfig写进了ifcfg-eht0这个文件,查看一下这个文件是不是和netconfig修改的一致,使用cat查看里面的信息cat /etc/sysconfig/network-scripts/ifcfg-eth0


使用serveric network restart 就是加载这个文件的配置信息当重新运行这个命令是 会加载这个问价中的信息,而冲掉刚才使用ifconfig修改的ip地址。

  如果修改ip地址只需修改刚才的文件就可以了 使用vi 编辑器打开我们的配置文件vi /etc/sysconfig/network-scripts/ifcfg-eth0 在里面修改ip地址就可以了,保存配置,重启服务service network restat 这部工作是系统启动激活网卡的工作,激活网络就是靠的这个脚本。

  在配置网卡的时候有一个问题要注意 在sysconfig目录下面有两个相关的目录一个是network-scripts 另一个是networking ,neat命令会默认把配置信息保存到profiles 而且这个是优先的。

  接下来看

  用户的语言环境


基础七

运行locale能看语言环境

在显示中有两个其主要作用 lang和lc_all

  Locale –a查看系统所支持的语言信息

  设置lang的变量 lang=zh_cn.gb2312 在运行date看到显示的是中文的格式

  在改回到英语lang=en_us.utf-8运行date 区别如图下
   
 保存语言信息的文件在/etc/sysconfig/i18n中。

基础八

Sysconfig目录是大多数服务器程序系统启动脚本的主要配置文件,这是我们来看一个hwconf文件,这个文件是保存的系统硬件信息,输入more /etc/sysconfig/hwconf可以看到如下:

这里系统中所有硬件信息,硬件资料。安装的时候有一个工具叫kudzu是检查有无新增硬件信息,当我们服务器新装硬件后运行 service kudzu start可以让计算机自动识别,检查过程,kudzu 是自动运行的脚本,如图所示:




基础九

如果不想让他开机自动运行可以将其关闭,修改系统启动服务脚本 可以使用chkconfig dudzu –list 检查状态,默认345是自动运行的:


如果向调整其运行状态可以运行setup 这个一个综合工具。包括如图所示的五项:认证方式、防火墙配置、鼠标配置、网络配置、系统服务等。这里包含了各种系统服务。

运行 如下图:


基础十

在这里我们选择不需要的服务来关闭。系统默认运行的服务 可以使用chkconfig –list |more来显示出来 如图:

显示了运行级别0到运行级别六的情况、

  这些服务都是靠系统脚本init启动的还有一些不是靠系统脚本启动的而下面会看到一些特殊服务,他们不是靠init 启动的是靠xinetd启动的,是一个独立的互联网服务器的服务器是一个超级服务其,可以启动很多的子服务器。

  如图:


 大家看到 xinetd这个服务 只要他是开启的,就可以运行他下面的服务器,它下面的大部分都是关闭的,只有一个是开启的,如果我们想开启一个服务可以使用chkconfig命令,例如我们想开启 rsync服务,我们可以使用chkconfig rsync on 命令,然后可以使用 –list查看。

基础结束

重新启动系统xinetd,此时xinetd会发现需要启动rsync这个服务,如果我们要临时启动这个服务,我们可以使用 service xinetd restart。Servioce 启动脚本的名称一般是放在固定目录下面的 /etc/init.d 这个目录下面都有七个状态,运行上面的命令本质上就是运行/etc/init.d/xinetd这个脚本,它会检查自己的配置目录,是etc/xinetd.d这个目录这里面有如图所示:





系统的基本配置就讲到这。

[ 本帖最后由 每天发N贴 于 2008-4-30 14:18 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

Linux基础命令小结
命令学习一
安装完重启后,没有像sery所说在图形界面崩溃了,由于我没有安装X-WINDOWS而是直接进入了文本界面。如果你想做linux管理的话,最好在文本界面下工作,这样会适应如下图:


第一行显示的是我们所安装的linux是Red Hat 企业4

  第二行显示的是我们的内核版本,以及硬件等级是i686

  第三行显示的是我们的计算机名,也就是我们安装时设定的“qiuri”这时我们只需在login后输入用户名“root”即可跳转到输入密码选项,在linux中root的权限和windows中的administrator一样具有最大的权限,应该保护这个用户的密码以确保系统安全。


我们发现在Password后输入密码时密码不会被显示,不要以为是键盘坏掉了,这是linux一种安全措施,尤其使用小键盘输入时注意小键盘灯是否亮着。随后看到了最后登录详细时间,我们还看到一个tty1这个是linux中文字界面终端1,在linux中一共有六个文字界面终端,使用Ctrl+Alt+F1~F6功能键相互切换文字界面终端。最后[root@qiuri ~]#其中root是当前用户,qiuri是计算机名,~这个符号是当前用户的宿目录,最后的#号代表是提示符,一般在linux中root的命令提示符是#,普通用户的命令提示符是$,同时命令提示符可以判断当前用户身份状态的依据。

  对于linux新手来说,一般进入linux系统不知道自己该干些什么,今天给大家介绍一些linux中常用命令。


命令学习二

1.在linux中我们要知道linux系统中基本的命令格式如下:

  命令字 【命令选项】 【命令参数】
  Command 【option】 【arguments】

  命令字就是命令的名称,在输入命令时一定要注意命令的真确性。

  命令选项就是定义一条命令输出结果的参数,命令的不同命令的选项个数和内容也会不同。

  命令参数就是命令要处理的对象,通常命令参数是文件名、目录名或者用户名等。

  2.linux中输入命令时注意事项
  在linux中命令的输入过程中一般对于新手常犯的错误就是空格的使用,在输入命令时,命令字、命令选项、命令参数之间一定要有空格分开。在命令输入结束时要使用回车结束命令。

  3.基础命令使用案例解析
  正如我们在安装时说过linux中所有的文件系统都挂接到根目录下相应的目录节点,那我们进入linux中第一件事就是验证一下这个结果,这就是我们要学习的第一条命令。

  1.查看文件名命令-ls 那我们就使用这条目录查看“/”下的目录
         
          这时大家看到了我们前面所说的目录,详细地罗列出来了。但是大家又会问我,你不是说过linux的命令格式是由命令字、命令选项、命令参数组成的。其实这个命令还有好多的命令选项和命令参数,由于个人水平有限在这里介绍几种给大家。

命令学习三

ls –a列出所有文件,包括隐藏文件,还以查看“/”下目录为例:

ls –l详细列出目录下文件的权限、所有者文件大小等详细信息,可以简单输入“ll”


ls–F列出目录下文件名及其目录类型,以查看/etc下文件为例:


我们发现这时有的文件后有个*,有的文件有个@,还有的有个/结尾,他们分别代表是可执行文件、符号链接、和目录名。

命令学习四

由于时间关系不在这里一一举例,以下参数供有兴趣者参考:

  ls –t依照最后修改文件时间列出文件名
  ls –R列出当前目录和其子目录的文件名
  ls –color=never不以颜色方式显示
  ls –color=always均以颜色方式显示
  ls –color=auto系统自动判断

  2.cd 切换用户当前目录
  这条命令使用的语法是cd 目录绝对路径或者相对路径

  这里的绝对路径可以理解为我们每天乘坐公交车一样,假如我们从公交的第一站一直坐到最后一站,这就是一个绝对路径,但是加假如有一天我们坐车到半路忽然想到我们忘记拿一件东西,这时我们可以选择就近下车再坐车返回去取,这就是相对路径,也可以使用绝对路径,现坐车到最后一站,再坐车回来去。在linux中也是这样在使用这两种路径的时候灵活多变的,通常根据实际情况进行选择。同样举几个例子:

  例如,使用绝对路径进入“/etc”目录


这时我们需要进入/dev下我们就可以使用相对路径


命令学习五

cd ~ 返回用户宿主目录
  cd . 用户的当前目录
  cd .. 返回上一级目录

  3.pwd查看用户当前所在位置
  由于我们使用cd命令进入好多的目录这时我们不清楚我们所在的目录位置这时就可以使用pwd查看
        

命令学习六



命令学习七



命令学习八


10.mv移动文件或者重命名
  将/home/test移动到当前目录


命令学习九:

由于我们已经可以使用vi编辑自己的文件,如果我们想查看这些文件,总不能每次都使用vi打开文件去查看吧。所以首先给大家介绍几条关于文件查看命令。

  1.文件查看命令

  cat命令
  这条命令适用于最简单的文本查看,它在显示文件内容的时候是以第一行开始,在显示过程中没有停顿,文件较长的话,只能看到最后一页内容在屏幕上显示,不适合查看长文件。

  例如:我们查看“/etc”目录下的“inittab文件,直接在命令提示符下输入:
        

命令学习十:

接下来这个命令比较有意思,写法是将cat反过来些,并且它和cat命令的功能刚好相反,是以文件的最后一行开始到文件的第一行反向的显示到屏幕。它就是tac,用法也和cat一样,这里不做详细介绍。

  more命令
  当文件很大的时候more命令相比cat命令要好用的多,它的用法也是more [文件名],它的显示方法是分屏显示文件内容。

  例如:同样还是“/etc”目录下的“inittab文件,也是在命令提示符下输入:
         
        我们看到这个命令的确是分屏显示,在屏幕的最下方还显示出当前显示内容在整个文件中的百分比。那么我们怎样可以看到40%以下的内容,这里介绍几个常用的操作按键,如果想了解详细使用方法,在分屏显示界面中输入“h”会显示more命令的帮助信息。

  输入空格将显示下一屏的文件内容,如果文件已经显示到文件尾,more命令会自动退出。

  输入字幕b将显示上一屏的文件内容,如果显示已经在文件头部,则屏幕显示文件保持不变。

  使用回车键可以将文件内容向上滚动一行,也就是显示一行新的内容到当前屏幕。

  输入q或Q退出more命令阅读环境。

  总结,这条命令可以分屏显示内容和翻页功能,较适合阅读较长的文件。

[ 本帖最后由 每天发N贴 于 2008-4-30 14:33 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

Linux基础命令小结

命令学习十一

less命令
  less命令和more的功能几乎差不多,只是多了一些功能。更适用阅读较长较大的文件。使用方法也是less [文件名]。

  还是以查看“/etc”目录下的“inittab文件,也是在命令提示符下输入:
     
            less命令中的“回车键、空格键和b”操作键功能和more的相同,还可以使用Page Up和 Page Down进行上下翻页,使用上下方向键对文本内容一行一行的上下移动,退出命令和more的也一样。还可以查找字符串,输入/要查找的字符串。

命令学习十二

head和tail命令
  这两条命令可以查看文件的前几行或后几行,两条命令都是默认显示文件内容10行,但是head是显示最前10行,而tail是最后10行。

  head和tail命令中添加选项“-n”,可以设置查看最前n行或最后n行,例如查看“/etc”目录下的“inittab文件中的前3行使用命令如下:
        

命令学习十三
2.文件或目录的查找

  find命令
  find命令的在查找文件或目录的功能非常强大,可以根据文件的大多数属性来查找文件,它的使用形式也是多变的,基本命令格式:

  find [path] [expression] 使用这条命令最常用的是按照文件名查找,文件名表达式的格式为:-name 文件名,其中文件名可以使用*或?通配符进行表示。符合条件的将被显示出来。

  例如:查找“inittab”文件,可以使用find / –name inittab
        

                 -empty 空文件
  -gN 组id号是N的文件
  -groupNAME 组名是NAME的文件
  -ipath P,path P 路径名符合P的文件,ipath会忽略大小写
  -name NAME,-iname NAME 文件名称符合NAME的,iname会忽略大小写。
  -sizeN[b|c|k|w] 文件大小是N,单位b代表512位的块,c表示一个char,k表示kilobytes,w是一个word。
  -typeT 文件类型是T的文件,文件类型有d目录、c字符设备文件、 b块设备文件、f普通文件、l符号链接、s套接字文件。
  -mount,-xdev 只检查和指定目录在同一个文件系统中的文件,避免列出其它文件系统中的文件。

命令学习十四
which命令
  which的基本功能是通过环境变量PATH到该路径内寻找可执行文件,所以用于查找可执行文件。其实这个时候想一想,怎样可以看出文件是可执行文件,我在前面已经介绍了一种方法,学习就是结合起来运用。在我们还不熟悉这个系统的时候,我们可以先在某个目录查看一下是否有可执行文件,然后在使用which验证。

  whereis命令
  whereis可以迅速的找到文件,而且还提供了这个文件的二进制可执行文件、源代码文件和使用手册页存放位置。

  例如:查找inittab文件
         
我们可以看到inittab是存放在子目录/etc下,而且他的使用手册在/usr/share/man/man5下的inittab.5.gz

  3.硬盘装载命令

  mount命令
  mount命令用于物理设备(例如:光盘、U盘、硬盘)中的文件系统挂载到linux文件系统的某个目录中,在mount命令不使用任何选项和参数的时候将显示当前linux系统中以挂载的文件系统信息。首先介绍光盘的挂载方法:
        

命令学习十五
mount命令的功能强大,命令格式也比较丰富。但是常用挂载文件系统命令格式:mount –t type dev dir

  其中–t type选项指出需要挂载的文件系统类型,光盘文件系统类型是:iso9660;dev表示需要挂载文件系统的设备名称,光盘驱动器的设备名称是/dev/cdrom; dir表示挂载点,即挂载到的文件目录路径。光盘设备在linux as4中系统中的默认路径是/media/cdrom。

由于光盘是只读的存储介质,因此mount命令在挂载光盘的时候会提示光盘一只读(read-only)模式进行挂载,挂载后使用mount命令查看已挂载的文件系统,可以在最后一行看到设备的挂载信息,证明挂载成功。

  读取光盘中的内容非常的简单了,使用mount命令挂载后,可以访问挂载目录完成对光盘中内容的读取。

命令学习十六
umount命令
  umount命令用于卸载已经挂载的文件系统,基本格式如:umount dir device […]使用umount卸载文件系统可以指定挂载设备文件名或挂载目录作为参数,可以将卸载指定的设备或挂载点目录上的文件系统。

  对于光盘文件系统的卸载可以使用,以下两条命令中的任意一条:注意在卸载的时候要退出光盘的挂载目录,否则提示文件系统在使用。

命令学习十七
U盘的使用方法
  在linux系统中,USB设备被视为SCSI设备,使用这个设备文件的格式为“sdX”系统中的第一个SCSI设备表示为“sda”第二个表示为“sdb”由于我使用的系统硬盘是串口硬盘,所以我的U盘被识别为“sdb”

  U盘设备插入系统后每次分配的设备文件名是不固定的,依赖于当前系统拥有几个SCSI设备,在不确定设备名称时,我们可以使用“fdisk”命令,列出系统中所有存储设备:

我们可以看出当前设备文件名是“/dev/sdb”,U盘上唯一的主分区设备文件的名称是“/dev/sdb1”,分区中的文件系统类型是fat。知道这些以后我们就可以使用mount命令挂载U盘到当前文件系统。“/mnt”目录通常用于挂载系统中临时使用的文件系统,可以将“/mnt”目录作为U盘系统的挂接点。使用“vfat”文件系统类型表示所有的fat文件系统类型,包括fat16和fat32,ntfs还是使用ntfs表示。



命令学习十八

最终的目的。


[ 本帖最后由 每天发N贴 于 2008-4-30 14:50 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

Linux编辑器学习
第一章

说道命令,就不得不提这个特殊的命令“vi”它不光是命令,还是一个linux下的编辑器。由于时间关系,这里不在举例说明,将在以后配置网络服务时介绍一些vi的实际应用。

  vi命令是linux下的全屏幕文本编辑,vi编辑器提供了丰富的编辑功能。这个编辑器十分简陋,对于初学者很不友好。但是在linux中vi编辑器作用非常大,以后尤其我们在配置各种服务器时修改配置文件时十分有用。

  vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:

  命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。

  输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。

  末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。

  1.vi的启动和退出
  直接输入命令vi不指定文件名,由于这是一个没有命名的空文件,显示了vi的版本信息。
   
     
Linux编辑器学习
第二章

vim是vi编辑器的改进版本,在vi编辑器的基础上扩展了很多实用的功能。大多数linux/unix版本都使用vim代替了原有的vi编辑器。

  或者直接使用vi打开文件,如果文件存在打开存在文件;如果不存在的话,将以我们指定的参数作为文件名。

  输入q!是强制退出,同时没有保存当前文件内容。如果文件没有进行修改,或者已经保存完毕也可以使用q退出。保存退出使用wq,保存强制退出wq!

  2.保存文件
  如果文件已经有文件名,我们在末行模式直接输入w保存,如果没有文件名,输入w 文件名进行保存。例如:w test其中test是文件名。

  那么在vi中也可以另存为,就是在保存完以后,我们再使用w 另存为文件名。

  3.光标的移动
  在命令模式中可以使用命令进行以下操作。

  光标方向的移动,除了可以使用方向键,还可以使用以下命令

  向上移动光标:k
  向左移动光标:h
  向右移动光标:l
  向下移动光标:j

  翻页命令
  Ctrl+F向前翻整页 Ctrl+U向前翻半页
  Ctrl+B向后翻整页 Ctrl+D向后翻半页

  行内快数跳转
  ^移动到本行行首
  $移动到本行行尾

  显示行号和取消行号(末行模式使用)
  set nu显示行号
  set nonu取消行号

  在命令模式下,使用以下命令可以快速的在行间跳转
  1G跳转到文件首行
  G跳转到尾行
  #G跳转到文件的#行

Linux编辑器学习
第三章
4.编辑操作
  进入输入模式命令
  i插入命令 a附加命令 o打开命令 c修改命令
  r取代命令 s替换命令 Esc退出命令

  输入模式的操作
  Home光标到行首
  End 光标到行尾
  Page Up和Page Down上下翻页
  Delect删除光标位置的字符

  删除操作(命令模式使用)
  x删除光标处的单个字符
  dd删除光标所在行
  dw删除当前字符到单词尾包括空格的所有字符
  #x例如3x删除光标处向右的三个字符
  #dd例如3dd从当前行开始向下删除三行文本

  撤销操作
  u命令取消最近一次的操作,可以使用多次来恢复原有的操作
  U取消所有操作
  Ctrl+R可以恢复对使用u命令的操作

  复制操作
  yy命令复制当前整行的内容到vi缓冲区
  yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
  y$复制光标所在位置到行尾内容到缓存区
  y^复制光标所在位置到行首内容到缓存区
  #yy例如:5yy就是复制5行
  #yw例如:2yw就是复制两个单词

  如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。


Linux编辑器学习
第四章
5.查找和替换
  vi的查找和替换功能主要在末行模式完成:

  至上而下的查找
  / 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work

  至下而上的查找
  ?要查找的字符窜 例如:/ work

  替换
  :s/old/new用new替换行中首次出现的old
  : s/old/new/g 用new替换行中所有出现的old
  :#,# s/old/new/g用new替换从第#行到第#行中出现的old
  :% s/old/new/g用new替换整篇中出现的old

  如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

  6恢复文件
  vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

  O只读打开,不改变文件内容
  E继续编辑文件,不恢复.swp文件保存的内容
  R将恢复上次编辑以后未保存文件内容
  Q退出vi
  D删除.swp文件
  或者使用vi -r 文件名来恢复未保存的内容

  vi命令大致给大家介绍这些,其实它的功能很强大的,我们在日常实际使用过程中不断积累命令的使用方法,相信大家会很快掌握这个命令的。

[ 本帖最后由 每天发N贴 于 2008-4-30 14:55 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

问题1:linux只装文本界面下载文件的方法:
引用:
linux只装文本界面下载文件的方法解答:下载完毕后会自动保存到用户的目录之中我这里是root所以在root里,然后剪切到你需要的地方就可以了。



问题2:Linux休眠和挂起
引用:
linux休眠与挂起解答:Linux2.6内核已经有了非常多的变化,配置也要相应的改变
系统要求:
配置编译内核:kernel2.6.22,2.6.24适用,最新内核未作测试
所需上层软件:hibernate,hal,gnome-power-manager
测试环境-----系统:Debian lenny/sid;桌面:gnome2.22;机器:Thinkpad r40(IBM本本)
操作细节:
1.必需的内核选项:
Power Management support:Suspend to Ram and Standby;Hibernate;()Default resume partition
(如果有多个swap交换区,需要设定默认使用的swap。用fdisk -l确定)ACPI Support;Future power /sys interface
AC adapter;Battery;Button;Fan;Processor;Thermal zone;Device driver;Block devices;Ram Disk support
编译时一定要注意:使用initrd引导内核
2.命令行工具hibernate
安装hibernate;sudo aptitude install hibernate。配置hiberante;sudo dpkg-reconfigure hibernate主要是休眠唤醒密码。
sudo hibernate-disk // sleep,系统内存映象将写入swap区后关机。sudo hibernate-ram // suspend,就是挂起。
3.图形界面下的工具
环境:gnome2.22
所需上层软件:hal,gnome-power-manager ;sudo aptitude install gnome-power-manager将电源管理加到系统任务栏Panel。到这里root用户已经可以使用鼠标实现挂起和休眠了。普通用户使用休眠的关键:增加权限;最简单安全的方法就是加入管理休眠的组group,他们是haldaemon,powerdev。注意,haldaemon可能在你的机器上是hal,主要是hal版本新旧的原因。加入以上两个group,就可以很方便的使用电源管理了。
小结:
linux下suspend和hibernate模式可以随意使用,不需要额外的配置,较为方便。而windows xp只能是sleep模式,或者suspend模式,二者切换需要更新设置。linux里涉及具体硬件的驱动太多,非常希望有一天它们能从内核里抽象出来,放到Userspace里