全部博文(176)
分类: LINUX
2009-09-11 11:50:33
目录[] |
各种 Linux 发行版的目录结构可能不太一样,但它们都遵循 FHS(Filesystem Hierarchy Stand)。
实际上 FHS 只是规定了根目录下的各主要目录应该放些什么文件,仅了解这些还不够,以下为一般情况下 Linux 系统的目录结构
/ 根目录
│
├boot/ 启动文件。所有与系统启动有关的文件都保存在这里
│ └grub/ Grub 引导器相关的文件
│
├dev/ 设备文件
├proc/ 内核与进程镜像
│
├mnt/ 临时挂载
├media/ 挂载媒体设备
│
├root/ root用户 的 $HOME 目录
├home/
│ ├user/ 普通用户 的 $HOME 目录
│ └.../
│
├bin/ 系统程序
├sbin/ 管理员系统程序
├lib/ 系统程序库文件
├etc/ 系统程序和大部分应用程序的全局配置文件
│ ├init.d/ SystemV 风格的启动脚本
│ ├rcX.d/ SystemV 启动脚本的链接,定义运行级别
│ ├rc.d/ BSD 风格的启动脚本
│ ├rc.xxx BSD 风格启动脚本,定义运行级别
│ ├network/ 网络配置文件
│ ├X11/ 图形界面配置文件
│
├usr/
│ ├bin/ 应用程序
│ ├sbin/ 管理员应用程序
│ ├lib/ 应用程序库文件
│ ├share/ 应用程序资源文件
│ ├src/ 应用程序源代码
│ ├local/
│ │ ├soft/ 用户程序
│ │ └.../ 通常使用单独文件夹
│ ├X11R6/ 图形界面系统
│
├var/ 动态数据
│
├tmp/ 临时文件
① Windows 使用 NTLDR 作为 Boot Manager,如果您的系统中安装多个版本的 Windows,您就需要在 NTLDR 中选择您要进入的系统。 Linux 通常使用功能强大,配置灵活的 GRUB 作为 Boot Manager,我们将在 中介绍它的使用方式。
② init进程 是 Linux 的根进程,所有的系统进程都是它的子进程
③ 通常情况下, /etc/rcS.d/ 目录下的启动脚本首先被执行,然后是 /etc/rcN.d/ 目录。例如您设定的运行级别为 3,那么它对应的启动目录为 /etc/rc3.d/
④ Xwindow 为 Linux 下的图形用户界面系统
⑤ 大多 Linux 系统默认使用 GDM 作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。(您可以在 /etc/rc3.d/ 文件夹中找到一个名为 S13gdm 的链接)
在 /etc/inittab 文件中找到如下内容:
# The default runlevel.
id:2①:initdefault:
①为系统的运行级别,默认的运行级别涵义:
NLuV7z tgzrfjawufuo, [url=]sqfyrdncckcw[/url], [link=]ocsrpckkkpnz[/link],
您也可以手动运行带有以下选项的启动脚本,来控制系统服务。 start (启动) stop (停止) restart (重启)
/etc/rc2.d/K20powernowd start
有时您并不清楚某一运行级别有什么启动脚本;而且此类脚本的前三位字符并不固定,不便于记忆。这时,可以直接使用 /etc/init.d/ 文件夹中的启动脚本( /etc/rcX.d/ 中的启动脚本链接到 /etc/init.d/ 文件夹下相应脚本),这也是推荐的方式。
/etc/init.d/powernowd start
acpi-support | 高级电源管理支持 |
acpid | acpi 守护程序.这两个用于电源管理,非常重要 |
apmd | acpi 的扩展 |
alsa | 声音子系统 |
alsa-utils | 声音子系统实用工具 |
cron | 任务调度系统,建议开启 |
anacron | cron 的子系统,将系统关闭期间的计划任务,在下一次系统运行时执行 |
atd | 类似于 cron 的任务调度系统。建议关闭 |
binfmt-support | 核心支持其他二进制的文件格式 |
bluez-utiles | 蓝牙设备支持 |
bootlogd | 启动日志。开启它 |
syslog-ng | 系统日志,建议开启 |
klogd | 同上,使用一种就可以了 |
sysklogd | |
cupsys | 打印机子系统 |
dbus | 消息总线系统(message bus system)。非常重要 |
dns-clean | 使用拨号连接时,清除 dns信息 |
evms | 企业卷管理系统 |
fetchmail | 邮件用户代理守护进程,用于收取邮件 |
gdm | gnome 登录管理器 |
gpm | 终端中的鼠标支持 |
halt | 别动它 |
hdparm | 调整硬盘的脚本,配置文件为 /etc/hdparm.conf
|
hibernate | 系统休眠 |
hotkey-setup | 笔记本功能键支持 |
hotplug and hotplug-net | 即插即用支持,比较复杂,建议不要动它 |
ifrename | 网络接口重命名脚本。如果您有十块网卡,您应该开启它 |
inetd | 配置文件为 /etc/inetd.conf
|
linux-restricted-modules-common | 受限模块支持。① |
lvm | 逻辑卷管理系统支持 |
makedev | 创建设备文件,非常重要 |
mdamd | 磁盘阵列 |
module-init-tools | 从/etc/modules 加载扩展模块,建议开启 |
networking | 网络支持。按 /etc/network/interfaces 文件预设激活网络,非常重要 |
ntpdate | 时间同步服务,建议关闭 |
pcmcia | pcmcia 设备支持 |
powernowd | 移动 CPU 节能支持 |
ppp | 拨号连接 |
ppp-dns | |
readahead | 预加载库文件 |
reboot | 别动它 |
resolvconf | 自动配置 DNS |
rmnologin | 清除 nologin |
rsync | rsync 守护程序 |
sendsigs | 在重启和关机期间发送信号 |
single | 激活单用户模式 |
sshd | ssh服务器 |
sudo | 检查 sudo 状态 |
udev | 用户空间 dev文件系统(userspace dev filesystem)。重要 |
umountfs | 卸载文件系统 |
urandom | 随机数生成器 |
usplash | 开机画面支持 |
vbesave | 显卡 BIOS 配置工具。保存显卡的状态 |
xorg-common | 设置 X 服务 ICE socket |
adjtimex | 调整核心时钟的工具 |
dirmngr | 证书列表管理工具 |
hwtools | irqs 优化工具 |
libpam-devperm | 系统崩溃之后,用于修理设备文件许可的守护程序 |
lm-sensors | 板载传感器支持 |
mdadm-raid | 磁盘陈列管理器 |
screen-cleanup | 清除开机屏幕的脚本 |
xinetd | 管理其他守护进程的一个 inetd 超级守护程序 |
关于配置文件的实用主义哲学:
备份可以使用这个命令
(如果你除了 cp 以外,实在不会其它方法)
sudo cp xxx xxx_` +%y%m%d_%H:%M`
系统初始化 | /etc/inittab | 运行级别、控制台数量 |
/etc/timezone | 时区 | |
/etc/inetd.conf | 超级进程 | |
文件系统 | /etc/fstab | 开机时挂载的文件系统 |
/etc/mtab | 当前挂载的文件系统 | |
用户系统 | /etc/passwd | 用户信息 |
/etc/shadow | 用户密码 | |
/etc/group | 群组信息 | |
/etc/gshadow | 群组密码 | |
/etc/sudoers | Sudoer 列表 ① | |
Shell | /etc/shell | 可用 Shell 列表 |
/etc/inputrc | ReadLine 控件设定 | |
/etc/profile | 用户首选项 | |
/etc/bash.bashrc | bash 配置文件 | |
系统环境 | /etc/environment | 环境变量 |
/etc/updatedb.conf | 文件检索数据库配置信息 | |
/etc/issue | 发行信息 | |
/etc/issue.net | ||
/etc/screenrc | 屏幕设定 | |
网络 | /etc/iftab | 网卡 MAC地址绑定 |
/etc/hosts | 主机列表 | |
/etc/hostname | 主机名 | |
/etc/resolv.conf | 域名解析服务器地址 | |
/etc/network/interfaces | 网卡配置文件 |
/etc/ 目录下的文件,只有 root用户 才有权修改。应用软件的全局配置文件,普通用户也不应该修改,因为所有用户都要用到。
如果要通过配置软件,来适应特殊需求,您可以修改用户配置文件。
用户配置文件通常为全局配置文件的同名隐藏文件,放在$HOME目录下,例如:
全局配置文件 | 用户配置文件 |
---|---|
/etc/inputrc | /home/user/.inputrc |
/etc/vim/vimrc | /home/user/.vim/vimrc |
/etc/bash.bashrc | /home/user/.bashrc① |
环境变量是作用在整个系统中的变量。
很多软件工作的时候都要读取环境变量的值来确定其工作方式。
必须由大量不同程序共享,独立于应用程序的优先选项,通常由环境变量指定,如果通过配置文件给每个程序分别指定,既麻烦又容易出差错。
例如语言环境,如果所有能够使用多语言的程序都使用自己的配置文件确定其工作界面的语言,逐一去修改它们的配置文件将是一件苦恼的事情
以 cd 为例 ,如果不带任何选项执行,它会读取 $HOME 这个变量的值,然后进入到这个目录,也就是用户的 HOME 目录。使用 echo 显示一个环境变量:
$ echo $HOME
/home/user
#依据惯例,变量名称通常使用大写字母;$ 告诉 echo 这是一个变量,不要将字符串“HOME”直接输出到屏幕
$ echo HOME
HOME
#输出字符串“HOME”到屏幕
$ WELCOME="Hello!" #定义一个变量
$ echo $WELCOME #输出这个变量
Hello!
$ env | grep WELCOME #env 输出所有环境变量
#将输出通过管道发送到 grep,检查其中是否有“WELCOME”这个值
$ export WELCOME #export 将变量 WELCOME 导出为环境变量
$ env | grep WELCOME
WELCOME=Hello!
可以将定义变量和导出变量一同进行,一句顶过去两句:
$ export WELCOME="Hello!"
#实际上不会有什么程序要用到 $WELCOME 这个变量,定义它只是为了演示
变量名 | 说明 |
---|---|
SHELL | 默认 Shell |
HISTSIZE | 历史纪录 |
PATH | 搜索路径 |
EDITOR | 默认编辑器 |
TERM | 默认终端 |
HOME | 用户目录 |
LANG | 系统语言 |
XMODIFIERS=@im | 默认输入法 |