Provided by: manpages-zh_1.6.3.6-1_all bug

NAME

       lilybbs-faq - linux入门以及百合 Linux 版精华区导读

QUESTIONS 问题与解答

   不需要任何命令的简单介绍
       历史   (APUE  提到了1990年之前的unix历史,还有各种标准  ANSI  ISO  IEEE posix xpg3....  但
              是linux 和 BSD 尤其是freebsd 在其后才大行其道) unix 的历史与 c 是紧密相关的,无论是
              产生发展还是后来的标准制定。 标准的制定反映出的,是当时的竞争之激烈。竞争在标准制定
              之后得到了抑制,  但是这段纷争的时间却使unix的发展减缓了   另一个阻碍发展的因素是版
              权,BSD的发展被延迟了,linux在版权上的障碍才刚刚开始    历史问题可以参阅精华区的“历
              史”目录

       版权模式
              自由软件版权和开源软件版权的区别,在于对衍生工作的限制。  GPL  的限制指出,你可以修
              改GPL软件,但是如果要再发行修改过的版本,  就必须允许其他任何人对这个版本进行再次修
              改。根据这一条,很多讨论都是 没有必要的。如果你的修改不会再发行,那么就不必考虑是否
              公布修改的细节。  也就是说,政府/军队的保密限制和GPL是不会冲突的。 FDL 的限制似乎仅
              仅需要保留声明 这种保证用户权力的做法是否有道理,还是不清楚 开源软件版权,例如BSD和
              类似的X版权,要求在任何衍生工作中保留原作者的信息 对再次发行修改后的版本没有限制 不
              明白为什么要这样做--其中有一种自信,“舍我其谁”的勇气吧 参阅精华区“历史文化”目录

       合作开发模式
              有很多工具用于实现合作开发 参阅精华区“软件开发”目录

       linux最吸引人的地方是什么?
              很多人想知道linux为什么那么好,为什么让人着迷  我想我喜欢它,因为它的历史悠久,结构
              很清楚很漂亮,很多思想很巧妙   也许仅仅是“历史”就足够了。怀古的人不在少数吧  合作开
              发,集中大家的智慧,从中可以产生无限的可能 自由?共产主义的狂热精神?天下大同?  当
              然,最直接的就是可以牢牢地将计算机控制在自己手里,想把它修饰成 什么样子就做成什么样
              子,可以想出和别人完全不同的生活方式,比如 iloveqhq的scheme生活环境,是一般人享受不
              到的   各种新鲜的想法,随时可以试验一下--让想法时时刺激头脑  象一个游戏,耗时,费
              力,需要经常上论坛找攻略,从来没有一定的玩法

       FUD 是什么意思?
              2003年末,伴随SCO对各个有关linux的公司的指控,还有对用户的威胁恐吓, 各种媒体也纷纷
              兴风作浪,发表耸人听闻的新闻,例如新浪的一些报道。 FUD 不仅指这些不负责任的话,还包
              括对linux等自由软件/开源软件的怀疑,       对自身的怀疑我自己认为过分的狂热也可以叫
              做FUD。 总之,没有平和的态度就没办法实实在在地作事情,所以技术问题之外, 争论还是少
              一点好,怀疑更要少一点 其实所有初学者都会情不自禁地自称“菜鸟”,会“问弱弱的问题”。问
              题在于, 有没有抓紧时间提高水平

       目录 文件 路径概念
              APUE   中开始就讲目录  文件  路径的概念,因为这几个概念太基础了。自从  “文件”出现之
              后,又出现了层次目录结构,对计算机中资源的管理才逐步 发展起来。文件很适合于描述计算
              机上的资源 unix的目录结构是非常严谨的树形结构,根目录是“/”,其他目录和文件都必须 在
              这个目录下面。每个目录下面都可以有子目录和文件,目录和文件名称的长度 是与文件系统有
              关的  路径是引用一个目录或文件时用到的,指示它的位置的字符串。绝对路径是说 从根目录
              “/”开始,沿着目录树找到需要引用的目录或文件,然后将中间经历的      节点都写出来。例
              如,“/root/abc”  是说要找到“abc” 文件,就必须从 “/”开始,中间经历 “root” 目录才能找
              到。 当前目录是说用户正处于树形目录的哪个节点上,相对路径就是要引用的目录  或文件相
              对于当前目录的位置。例如,我现在在“/root” 目录当中,要引用 “/root/def/xyz” 的话,只
              要用 “def/xyz” 就可以了

       文件类型
              文件有不同的类型,在windows里就可以看到,有文本文件,图像,声音,视频 但是在linux中
              的文件类型要更多。例如,符号链接就是非常有用的类型  另外,linux中的二进制可执行文件
              是ELF格式的,不需要扩展名;而windows中 是PE格式,有固定的扩展名。所以,两个系统的应
              用程序不能换用,有朝一日也许可以  linux中很重要的一种文件就是设备文件。几乎所有的设
              备都有一个对应的文件, 在“/dev”当中  例如,硬盘harddisk简称hd,那么系统中的第一个硬
              盘就是hda,第二个就是hdb.....,  然后对应的设备文件就是“/dev/hda”。硬盘上的各个分区
              用数字来编号,例如 第一个硬盘的第一个分区就是“/dev/hda1”,第二个分区就是“/dev/hda2”
              再举一个例子,显卡的设备文件“/dev/fb0”,鼠标设备文件“/dev/input/mice”            和
              “/dev/psaux” 要注意的是,linux中的可执行文件可以是二进制的,也可以是文本文件。  “可
              执行”仅仅是文件的一个属性而已,不像windows中由于文件系统中能保存的 属性信息少,只能
              通过扩展名来识别文件类型。linux中的文件可以不用扩展名,  也可以用任意的扩展名各种各
              样的文件类型,是为了将不同的对象进行统一的处理。  我们可以用open  lseek  read write
              close 来读写一个文本文件,也可以用这几个 函数来处理鼠标,让声卡播放一段声音,读写一
              块硬盘(如果你敢的话)。  在windows中,不同的设备处理的方法是不同的,而unix环境中的
              处理方法是    整齐划一的。控制方法一般是fcntl和ioctl。(谁能告诉我ioctl犯了什么错误
              了?)

       硬盘分区方式
              硬盘有很多种,分区也有各种各样的方法。linux支持它们,但是常用的分区方法  就只有一种
              了。这种分区方法的要求是这样,一块硬盘上只能有最多四个主分区, 最多一个扩展分区;在
              扩展分区中可以划分无限多的逻辑分区。记住这三个概念。 每个分区的第一个扇区一般都是保
              留分区信息的,数据一般从第二个扇区开始。  分区信息中很重要的内容是“下一个分区的位置
              在什么地方”还有“本分区的 大小是多少”。因此,linux对分区进行编号的顺序并不是硬盘上分
              区的物理排列顺序, 而是从第一个分区开始,不断查找下一个分区。这样的结果是编号很容易
              弄错。  要处理分区时,一定要把当前分区情况备份一下 pqmagic分区软件不如linux中的分区
              软件好用,因为它对混乱的分区编号处理 更容易出错  启动引导程序一般都装到某个分区的第
              一个扇区里面,和分区信息放到一起。 但是,如果安装启动引导程序时指定的设备错了,那么
              可能会把数据破坏掉,  或者将其他分区的引导程序破坏掉。典型的情况是这样:windows将自
              己的引导程序 放在第一个分区--主分区1的开头,我们的linux fans想把linux的引导程序,
              lilo或者grub放到整个硬盘的开头--MBR里面。MBR的设备名是 “/dev/hda”, 但是主分区1的
              设备名是 “/dev/hda1”。一个不小心,系统就启动不了,坏掉了

       国际化,locale的概念,utf8 等字符编码的含义和用法
              后两个已经不用再多说了。是很过时的话题。但是前日还有人问turbolinux是不是内核汉   化
              的。用户并不是直接和内核打交道,为什么要汉化内核呢?目前的内核包含各种编码, 用于文
              件名的转换,但是并没有包含字体,因为用户不是直接和内核打交道! 国际化是整个系统范围
              内的,对编码进行规范,对输入输出方式的函数接口和通信协议进 行整体的设计,提供处理各
              种语言环境的统一方法。本地化中,对编码的规定和对日期时   间、货币格式的规定是国家标
              准,而输入法、字体还有应用程序界面的翻译,还需要大家 共同努力。  国际化和本地化都应
              当在应用程序中实现,例如zhcon和cce。窗口系统中的国际化和本地   化也是由应用程序实现
              的,窗口系统本身只提供通信协议 zhcon还不是很完善,支持的编码太少了

       中文化是本地化的一种,终端的本地化不是很完整
              对世界上所有的字符进行编码,就是unicode。但是,具体的实现方法有很多种,有的采用  定
              长编码,有的采用变长编码。utf8编码是变长的,能实现unicode的大部分要求
              zh_CN.UTF-8,zh_CN.GB18030 这些locale 的定义,前一部分是国家代码,语言代码,后 一部
              分是编码。不同的国家代码和语言代码对应着不同的输入法,日期时间货币格式等等 ,对用户
              比较重要,编码则不是很重要,不同的语言可以使用相同的编码,推荐使用utf8

       模块化的设计思想 界面无关 设备无关
              这一段还没有想好 很多程序是和界面没有关系的。例如,字体的使用一般使用Xft2字体库,但
              是它和窗口环  境没有必然联系。大部分bt工具是和界面没有关系的。图形应用程序 我们使用
              计算机时,我们的一举一动都是在和系统通信。系统中程序执行时也在互相通信 。想要打开输
              入法,我们按下ctrl-space,这时候输入法和应用程序之间就通过XIM协议开  始通信了--过
              些日子,也许就不是这种协议了,但是通信是一定存在的   一方面,每个程序都关心自己的功
              能,另一方面,每个程序都要和其他程序进行通信。

       进程的概念 线程
              APUE  中提到,进程是一个程序的运行中的实例。进程有很多属性,比如编号,所有者,当 前
              运行状态,启动时的命令行,环境变量,运行时间,打开了什么文件....       线程和进程类
              似,也有很多属性。同一个进程的不同线程可以很容易地互相访问数据。so  laris的线程实现
              很不错,非常灵活

       什么发行版好?什么unix好?
              精华区目录中有各种unix的对比,linux的使用感受,可以看一看      还有对书和网站的推荐
              debian   发展太慢了,除非用unstable   版本,但是那又太快了。用  knoppix  上上手不错
              redhat 一直很好用,但是升级时最好重装系统。现在fedora的网络升级不知道能不能完全  升
              级? redhat对中文的支持也很好,但是需要手动安装的软件比较多 turbolinux magic 还有国
              内厂商的版本 对中文支持不错 个人不喜欢mandrake,很难定制。slackware  需要自己处理的
              东西太多了 freebsd 的使用和debian 很相似,自动化程度很高

   需要综合使用命令才可以完成的操作
       文件权限
              文件权限并不是文件类型。所谓“可执行”,仅仅是文件的权限而不是类型。 传统的文件权限是
              九个字符rwxrwxrwx三个一组一共三组,再加上文件所有者和组。高级的  文件权限就不是这么
              简单了,类似ntfs,可以指定任何用户/组对某个文件的各种各样的权 限用 “ls -l” 命令可以
              看到当前目录中所有目录和文件的权限 用 “chmod” “chown” 和 “chgrp” 命令可以修改权限

       运行程序 来自bash手册页
              假如看到文件的权限中带有x,那么它是一个可执行的程序。要执行它,可以使用相对路径
              ,也可以使用绝对路径。例如,我的目录中有一个“run-me”  文件是可执行的,那么我可 以运
              行 “/root/bin/run-me” ,或者先运行 “cd /root” 再运行 “bin/run-me”。  假如说这个可执
              行文件的位置在  “/usr/bin”  当中,那么我不必使用路径也可以直接执 行它,因为环境变量
              “PATH” 中包含了 “/usr/bin”。运行 “export” 可以看到 “ PATH” 的定义

       具体目录的作用 来自FHS 标准
              这个标准不是很正式,但是很多unix系统都在用。意思就是,“/” 根目录下面的子目录 和文件
              都有它们各自的用处,不能随意增加删除。比如说,“/dev” 就是设备,“/etc”
               就是所有配置文件,“/var” 是应用程序自动管理的数据,比如用rpm安装了一个软件, rpm会
              将那个软件的信息存在“/var” 当中。“/usr” 当然就是应用程序的目录。“/bo ot” 是内核还有
              启动时要用到的文件。试一试,“ls lR /” :)

       安装和删除软件--最简单的办法
              最简单的,把这个软件包含的文件--一般是一个可执行文件,复制到  “/usr”  当中就 可以
              了。复制到什么地方呢?FHS 对 “/usr” 目录中的子目录也有规定。“/usr/bin”
               是可执行文件,“/usr/lib” 是库文件,就是xxxxxx.so.1 之类的,“/usr/share” 是  不需要
              修改的数据,比如帮助手册,桌面图标等等。  要卸载软件,只要从“/usr” 当中把复制过去的
              文件删掉就可以了  复制用  cp   命令,删除用   rm   命令。小心不要误删除了有用的东西
              和windows里面不太一样,不会在一个系统中安装四个或者五个QQ却仍然找不到QQ装在什么  地
              方。一般安装软件要用make,rpm 或者dpkg 等等方法,不用自己操心复制删除文件

       进程间的关系,应当使用APUE 中的叙述
              用ps      命令可以查看进程。用top命令可以动态地查看进程。当然,要搞清楚输出是什么意
              思,需要仔细看看帮助  fg 和 bg 可以在一些进程中切换 kill 和killall 可以控制进程停止
              和退出 一边执行命令,一边可以到“/proc” 目录看一看。这个目录是整个系统的情况,包括硬
              件和软件的信息。多练一练  “cd”,“ls” 还有 “cat”。看了足够多之后,对于ps 和 top 命令
              的输出就大概明白了。我认为“/proc” 是新手训练的最佳场合

       fork exec 环境变量 守护进程(daemon)

       shell 编程初步-shell,awk,perl

       命令   cd ls ;cat less ;rm cp mv ln ;mkdir  chmod  chgrp  ;  reboot  poweroff  ;mount
              umount  df  du  ;tar make ; fdisk parted ;vi ;man info ; rpm apt-get apt-cache
              dpkg ;lilo grub modprobe ; gcc g++ ;ps fg bg top  ;  最常用的命令是不是poweroff
              和 reboot ?

       命令的通用选项
              cd  - 切换到上次所在的目录 cd ..  切换到上层目录 ls -lh 很多命令的参数中,“-h” 表示
              的是将文件大小转换为以 “MB” 和 “kB” 为单位 “-l” 是长格式,可以看到文件更多的信息 df
              -h du -h 查看磁盘空间,已用多少,剩余多少 free 查看内存和交换空间使用情况。不过一般
              用top来看更好一些  less  -isr  可以用这个命令来看看很多类型的文件的内容,包括文本文
              件,压缩包等等。加上参数就  能处理中文了 rm -rf 强制删除,包括目录和文件 cp -a 完全
              复制,保留原来文件的所有属性 cp -R 复制,包括目录和文件。默认不包括目录 ln -s  建立
              符号链接。符号链接的目标可以是目录或文件,也可以不存在。产生的新文件和链接 目标属性
              和作用完全一致。 tar zxf tar zcf tar jxf tar jcf  创建压缩文件(c)和解压缩(x)  j
              对应的是  .tar.bz2,而 z 对应的是 .tar.gz fdisk -l 列出一个硬盘的分区情况。fdisk 命
              令交互执行更有意思 rpm -ivh rpm -Uvh 安装一个软件包 或者升级一个软件包 rpm -qip rpm
              -qpl  查询一个软件包的信息和内容  rpm -qf 查询一个文件属于哪个软件包 apt-get update
              升级整个系统,但是不会强制升级一些不合规范的内容   apt-get    install    安装一个软
              件。debian最吸引人的地方就在于容易地安装和删除软件 dpkg -i dpkg -l apt-cache search
              如果软件名称更容易记就好了

   实习
       安装X输入法
              X  输入法一般需要两个环境变量,一个是  XMODIFIERS,  另外一个是  LC_CTYPE   比如要使
              用fcitx  输入法,XMODIFIERS  最好是  “@im=fcitx” (也可以是其他值),LC _CTYPE 是一
              个locale  类型的变量,其中的国家代码必须是zh,语言代码和编码倒是无所   谓再比如要使
              用scim  输入法,XMODIFIERS 应当是 “@im=scim” , LC_CTYPE 在输入 中文时同上,输入其他
              文字时可以是其他国家代码。 当然,如果你的系统中连中文字体都没有,就不要指望有中文输
              入法了。 因为不同的进程有自己独特的环境变量设置,所以完全可以在同一个窗口系统的不同
              应用 程序中使用各种输入法,只要在启动应用程序之前先设置  XMODIFIERS  就可以了。  安
              装X输入法最困难的是如何使输入法可以随着X窗口系统而启动和退出。不同的发行版有 不同的
              运行输入法的方法,比如redhat/fedora 可以修改 “/etc/X11/xinit/xinit.d/xi nput” 文件

       安装终端的中文环境

       遍历 /proc 目录

       安装软件 查询软件包

       配置文件,fstab lilo.conf grub.conf XF86Config

       配置lilo 或者 grub, 问题修复
              建议找一个好一点的lilo.conf 或者 grub.conf 看一看,至少是能用的配置文件看一看,  然
              后再着手进行修复工作。有可能需要手动从头开始写一个配置文件 确定真的弄清楚了硬盘分区
              情况了吗?在BBS上求助时,一定要把分区情况和配置文件,还

              有导致出错的步骤都贴上来 精华区lilo 和grub 目录都各有上百篇帖子,讲述安装和修复的过
              程

       mount  mount 命令用于将一个设备挂载到一个目录上,然后就可以访问其中的文件了。 mount 命令可
              选的参数非常多,但是要想正确挂载一个设备,必须搞清楚一些事情   例如:         mount
              /dev/sda1  /mnt/u-disk/sda1 -t vfat -o defaults,users 其中,USB移动硬盘设备对应的设
              备文件名是 “/dev/sda1”。如果设备文件名 搞错了,那么挂载肯定会出错。很多出错都是因为
              “/dev/sda1” 对应的设备 根本不存在 -o 可以指定的选项非常多,不同的文件系统都有自己特
              定的选项。常用的就是 users iocharset fmask dmask rw/ro 这一些。iocharset 是自己的编
              码,在挂载 windows 网上邻居的目录时,iocodepage 是对方的编码。 看帮助,man mount 非
              常长。常见的/etc/fstab中的一行是这样:
                    /dev/hda1    /mnt/harddisk/C vfat defaults,users,umask=0 0 0 如果是kernel-2.6
              那么还可以加上fmask=111,dmask=0 来控制权限

       安装X字体
              非常简单。字体有两个系统,一个是旧一点的X系统,一个是新一点的Xft2系统。要想在两  个
              系统中同时使用某个字体,需要将这个字体复制到某个“/usr/local/share/fonts” 的  子目录
              中去,然后在  “/etc/X11/fs/config” 中加入这个目录,最后执行 “fc-cache -fv” 刷新字体
              列表,“service xfs restart” 就可以了 不同的系统中,完成这几个步骤的具体执行的命令可
              能不一样。复制字体应该都一样,然  后可能需要将这个目录加入到  “/etc/X11/XF86Config”
              当中去,最后也有可能需要重启 动图形系统。要灵活一点

       配置latex 和 ps 系统

       分区,重新安装系统
              这里是实践部分。硬盘分区,常见的分区方法是一个主分区,一个扩展分区,然后在扩展 分区
              中可以划分很多很多逻辑分区。也有分区方法是划分两个主分区,例如IBM的系统还原      分
              区,还有dell也是这样。 为linux系统分区可以只分一个swap分区和一个 “/” 分区。swap分区
              大小三五百M就可以 了。而 “‘/’ 分区” 的说法只是为了方便,意思是将某个分区作为 “/” 目
              录来使用 。类似的,如果安装程序要划分 “‘/boot’ 分区”,那么也是将某个分区作为  “/boo
              t”  目录来使用。 任何一个目录都可以单独划为一个分区,例如可以将 “/usr/local” 目录单
              独划为一个 分区,这样把数据放在里面,重装系统时不会被删除掉。 高级的lvm和lvm2  只在
              大硬盘上才有用

HISTORY 历史

       版上讨论了很久是不是要提高技术性了。的确,大部分入门级问题在  从前的帖子中都有涉及,精华区
       中大概也有答案,重复地提问“将有价值 的论题淹没了”。

           要提高技术水平,就要找到更多的论题和提出更好的想法。但是,鲁 迅先生说得好,要有“天才的
       土壤”才行。所以,对于新手问题也不能封 杀。一种设想,是请几位熟练的使用者专人负责某一个方面
       的问题,用信 件联系,然后把有价值的讨论结果发上来。但是,这样效率不高。

           我想试行一下这样的做法,就是入门级问题以及解答就跟在这个帖子  后面,过一段时间就清理一
       下,总结到一篇文章中。请大家配合。暂时设 定精华区的第19个目录和第29个目录分别用作已解决/未
       解决问题的保存 之处。

           后续的第二篇帖子是一些快速解答,可以在firefox 的搜索栏中使用  “页面内搜索”功能来查找关
       心的内容。

           欢迎修改

Copyright

       Permission  is  granted to copy, distribute and/or modify this page under the terms of the
       GNU Free Documentation License, Version 1.2 or any later version  published  by  the  Free
       Software  Foundation;  with  no Invariant Sections, no Front-Cover Texts and no Back-Cover
       Texts.

AUTHOR

       最后一次修改者:bbbush<bbbush@lilybbs>@2004年2月11日

       最初的格式是txt 没有排版,没有链接

       本页面中文版由中文 man 手册页计划提供。
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh