免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1187 | 回复: 0
打印 上一主题 下一主题

鸟哥的Linux私房菜学习笔记一 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-16 12:27 |只看该作者 |倒序浏览
man
/usr/share/man
change path: /etc/man.config
代号                      代表内容
1 使用者可以操作的指令或可执行文件
2 系统核心可呼叫的函数与工具等
3 一些常用的函数(function)与函式库(library)
4 装置档案的说明
5 设定档或者是某些档案的格式
6 游戏(games)
7 惯例与协议等,例如 Linux 标准档案系统、 网络协议、ASCII code 等等的说明内容
8 系统管理员可用的管理指令
9 跟 kernel 有关的文件
代号                          内容说明
NAME        简短的指令、数据名称说明
SYNOPSIS    简短的指令下达语法(syntax)简介
DESCRIPTION 较为完整的说明,这部分最好仔细看看!
OPTIONS     针对 SYNOPSIS 部分中,有列举的所有可用的参数说明
COMMANDS    当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令
FILES       这个程序或数据所使用或参考或连结到的某些档案
SEE ALSO    可以参考的,跟这个指令或数据有相关的其它说明!
EXAMPLE     一些可以参考的范例
BUGS        是否有相关的臭虫!
按键                        进行工作
空格键                   向下翻一页
[Page Down] 向下翻一页
[Page Up]   向上翻一页
[Home]      去到第一页
[End]       去到最后一页
/string     向『下』  搜寻 string 这个字符串,如果要搜寻 vbird 的话, 就输入 /vbird
?string     向『上』搜寻 string 这个字符串
n, N        利用 / 或 ? 来搜寻字符串时,可以用 n 来继续下一个搜寻 (不论是 /或 ?) ,可以利用 N 来 进 行 『反向』搜寻。举例来说, 我以 /vbird 搜寻 vbird字符串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?vbird 向上查询 vbird 字符串, 那我可以用 n 继续『向上』查询,用 N 反向查询。
q           结束这次的 man page
use key for search,example: man -k man
whatis==man -f
apropos==man -k
info
/usr/share/info/
other document:/usr/share/doc
• 将数据同步写入硬盘中的指令: sync
• 惯用的关机指令: shutdown
• 重新开机,关机: reboot, halt, poweroff
shutdown [-t 秒] [-arkhncfF] [时间] [警告讯息]
-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
-k     : 不要真的关机,只是发送警告讯息出去!
-r     : 在将系统的服务停掉之后就重新开机
-h     : 将系统的服务停掉后,立即关机。
-n     : 不经过 init 程序,直接以 shutdown 的功能来关机
-f     : 关机并开机之后,强制略过 fsck 的磁盘检查
-F     : 系统重新开机之后,强制进行 fsck 的磁盘检查
-c     : 取消已经在进行的 shutdown 指令内容。
Linux 的档案属性与目录配置:
user:/etc/passwd
password:/etc/shadow
group:/etc/group
example:  #ls -al
drwxr-x--- 20 root root  4096    03-13 22:30 .
drwxr-xr-x 23 root root  4096    03-13 21:45 ..
-rw-------  1 root root  1135    02-26 03:49 anaconda-ks.cfg
档案的属性     连结  拥有人 群组       容量大小  最近的修改日期      档案的档名   
1>   第一个属性代表这个档案是『目录、档案或连结文件等等』:
      当为[ d ]则是目录;
      当为[ - ]则是档案;
      若是[ l ]则表示为连结档(link file);
      若是[ b ]则表示为装置文件里面的可供储存的接口设备;
      若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。
      若是[ s ]则表示为资料接口文件 (sockets).
      若是[ p ]则表示为数据输送文件 (FIFO, pipe)
2> 接下来的属性中,三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(excute):
         第一组为『拥有人的权限』user;
         第二组为『同群组的权限』group;
         第三组为『其它非本群组的权限』other。
改变档案权限:
• chgrp :改变档案所属群组
[root@linux ~]# chgrp [-R] [group] dirname/filename ...
参数:
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况
• chown :改变档案所属人
[root@linux ~]# chown [-R] 账号名称 档案或目录
[root@linux ~]# chown [-R] 账号名称:群组名称 档案或目录
• chmod :改变档案的属性、 SUID 、等等的特性
[root@linux ~]# chmod [-R] xyz 档案或目录
参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归( recursive )的持续变更,亦即连同次目录下的所有档案、目录都更新成为这个群组之意。常常用在变更某一目录的情况。
数字类型改变档案权限:r:4  w:2  x:1  -:0,同一组 (owner/group/others) 的三个属性 (r/w/x) 是需要累加的
符号类型改变档案权限:chmod [u/g/o/a] [+/-/=] [r/w/x] 档案或目录  
example:# chmod u=rwx,go=rx filename       # chmod a+w filename
目录内应该放置的档案内容:
/:  
根目录 root (/),一般建议在根目录底下只接目录,不要直接有档案在 / 底下。根目录是开机的时候系统第一个挂载的 partition ,所以,所有开机过程会用到的档案, 应该都要放置在这个 partition 当中。举例来说, /etc, /bin, /dev,/lib, /sbin 这五个次目录都应该要与根目录连在一起,不可独立成为某个partition 呢!
/bin, /usr/bin, /usr/local/bin:         
除了 /bin 之外, /usr/local/bin, /usr/bin 也是放置『使用者可执行的 binaryfile 的目录』喔!举例来说, ls, mv, rm, mkdir, rmdir, gzip, tar, cat, cp,mount 等等重要指令都放在这个目录当中。
/boot:      
这个目录主要的目的是放置 Linux 系统开机会用到的档案。 开机会用到什么呢?没错~就是 Linux 的核心档案。这个目录底下文件名为 vmlinuz 的就是 Linux 的 Kernel 啦!粉重要的东西! 而如果你的开机管理程序 (loader) 选择 grub 的话,那么这个目录内还有 /boot/grub 这个次目录呦!
/dev:   
在 Linux 系统上,    任何装置与接口设备都是以档案的型态存在于这个目录当中的。您只要透过存取这个目录底下的某个档案,就等于存取某个装置啰~ 主要又分为接口设备 (character device),    例如键盘、 鼠标等;以及储存设备 (block device),例如硬盘、光盘等等。在此目录下的档案会多出两个属性,分别是 major device
number , 与 minor device number 。我们的系统核心就是透过这两个 number 来判断装置的呢! 比要重要的档案有 /dev/null, /dev/tty[1-6], /dev/ttyS*,/dev/lp*, /dev/hd*, /dev/sd* 等等.
/etc:   
系统主要的设定文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等。一般来说,这个目录下的各档案属性是可以让一般使用者查阅的, 但是只有 root 有权力修改。并且在此目录下的档案几乎都是 ASCII 的纯文本文件哩。 不过, FHS 建议不要放置可执行文件在这个目录中喔。比较重要的档案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11,/etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目录有:
•   /etc/init.d/:所有服务的预设启动 script 都是放在这里的,例如要启 动或者关闭 iptables 的话:
    /etc/init.d/iptables start
    /etc/init.d/iptables stop
•   /etc/xinetd.d/:这就是所谓的 super daemon 管理的各项服务的设定文件目录。
•   /etc/X11:与 X Window 有关的各种设定档都在这里,尤其是 xorg.conf或 XF86Config 这两个 X Server 的设定档。
/home:
这是系统预设的使用者家目录 (home directory)。在你新增一个一般使用者账号时, 预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号
/home 喔:
~:代表目前这个使用者的家目录,而
~dmtsai :则代表 dmtsai 的家目录!
/lib, /usr/lib,/usr/local/lib:
系统会使用到的函式库放置的目录。 程序在运作的过程中,可能会呼叫一些额外的功能参数,那需要函式库的协助! 这些函式库就放在此处。比较重要的是/lib/modules 这个目录内会摆放 kernel 的相关模块喔!
/lost+found:
系统不正常产生错误时,会将一些遗失的片段放置于此目录下, 通常这个目录会自动出现在某个 partition 最顶层的目录下。例如你加装一棵硬盘于 /disk 中,那在这个目录下就会自动产生一个这样的目录 /disk/lost+found
/mnt,/media:
这是软盘与光盘预设挂载点的地方;通常软盘挂在 /mnt/floppy 下,而光盘挂在/mnt/cdrom 下,不过也不一定啦!只要你高兴,随便找一个地方来挂载也可以呀!另外,目前也规划出另一个 /media 的目录呢!与 /mnt 有点类似啦~
/opt:
这是给主机额外安装软件所摆放的目录。举例来说, FC4 使用的是 Fedora 社群开发的软件, 如果您今天想要自行安装新的 KDE 桌面软件的话,可以将该软件安装在这个目录下的意思。 不过,以前的 Linux 系统中,我们还是习惯放置在/usr/local 目录下呢!
/proc:
这个目录本身是一个『虚拟档案系统』喔!他放置的数据都是在内存当中, 例如系统核心、形成信息、接口设备的状态及网络状态等等。因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间啊!比较重要的档案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。
/root:
系统管理员 (root) 的家目录。之所以放在这里, 是因为我们提过,系统第一个开机就被挂载的 partition 为 / , 而我们希望 /root 能够与 / 放在同一块partition 上面之故.
/sbin,/usr/sbin,/usr/local/sbin
放置一些系统管理员才会动用到的执行指令,例如: fdisk, mke2fs, fsck,mkswap, mount 等等。与 /bin 不太一样的地方,这几个目录是给 root 等系统管理用的。但是本目录下的执行文件还是可以让一般使用者用来『察看』而不能设定喔!
/srv:
一些服务启动之后,这些服务所需要取用的数据目录。举例来说,WWW 服务器需要的网页资料就可以放置在 /srv/www 里面。
/tmp:
这是让一般使用者或者是正在执行的程序暂时放置档案的地方。 这个目录是任何人都能够存取的,所以您需要定期的清理一下。当然,重要数据不可放置在此目录啊!
/usr:
由 FHS 规范的第二层内容,在 /usr 此目录下,包含系统的主要程序、 图形接口所需要的档案、额外的函式库、本机端所自行安装的软件,以及共享的目录与文件 等等, 都可以在这个目录当中发现。事实上,他有点像是 Windows 操作系统当中的『Program files』与 『WinNT』这两个目录的结合!在此目录下的重要次目录有:
•   /usr/bin, /usr/sbin:一般身份使用者与系统管理员可执行的档案放置目录;
•   /usr/include:c/c++等程序语言的档头 (header) 与包含档(include)放置处, 当我们以 tarball 方式 (*.tar.gz 的方式安装软件) 安装某些数据时,会使用到里头的许多包含档喔!;
•   /usr/lib:各应用软件的函式库档案放置目录;
•   /usr/local:本机端自行安装的软件预设放置的目录。        目前也适用于 /opt目录。 在你安装完了 Linux 之后,基本上所有的配备你都有了,但是软件总是可以升级的, 例如你要升级你的 proxy 服务,则通常软件预设的安装地方就是在 /usr/local (local 是『当地』的意思),同时,安装完毕之后所得到的执行文件,为了与系统原先的执行文件有分别, 因此升级后的执行档通常摆在 /usr/local/bin 这个地方。给个建议啦, 通常鸟哥都会将后来才安装上去的软件放置在这里,因为便于管理呦;
• /usr/share:共享文件放置的目录,例如底下两个目录:
• /usr/share/doc:放置一些系统说明文件的地方,       例如你安装了 grub 了,那么在该目录底下找一找,就可以查到 lilo 的说明文件了!很是便利!
• /usr/share/man:manpage 的文件档案目录;那是什么?呵呵! 就是你使用 man 的时候,会去查询的路径呀!例如你使用 man ls 这个指令时,就会查出 /usr/share/man/man1/ls.1.gz 这个说明档的内容啰!
• /usr/src:Linux 系统相关的程序代码放置目录,例如 /usr/src/linux为核心原始码!
• /usr/X11R6:系统内的 X Window System 所需的执行档几乎都放在这!
/var:
这个目录也很重要,也是 FHS 规范的第二层目录内容。他主要放置的是针对系统执行过程中, 常态性变动的档案放置的目录。         举例来说,例如快取档案 (cache) 或者是随时变更的登录档 (log file) 都是放在这个目录中的。此外,某些软件执行过程中会写入的数据库档案, 例如 MySQL 数据库,也都写入在这个目录中!很重要吧!他底下的重要目录有:
• /var/cache:程序档案在运作过程当中的一些暂存盘;
• /var/lib:程序本身执行的过程中,需要使用到的数据文件放置的目录,举例来说, locate 这个数据库与 MySQL 及 rpm 等数据库系统,都写在这个目录内。
• /var/log:登录文件放置的目录。     很重要啊! 例如 /var/log/messages 就是总管所有登录档的一个档案!
• /var/lock:某些装置具有一次性写入的特性,例如 tab (磁带机), 此时,为了担心被其它人干扰而破坏正在运作的动作,因此,会将该装置lock (锁住)起来, 以确定该装置只能被单一个程序所使用啊!
• /var/run:某些程序或者是服务启动后,会将他们的 PID 放置在这个目录下喔!
• /var/spool:是一些队列数据存放的地方。举例来说,主机收到电子邮件后, 就会放置到 /var/spool/mail 当中,若信件暂时发不出去,就会放置到 /var/spool/mqueue 目录下, 使用者工作排程 (cron) 则是放置在/var/spool/cron 当中!

Linux 磁盘与档案系统管理
磁盘与目录的容量:
[root@linux ~]# df [-ahikHTm] [目录或文件名]
参数:
-a  :列出所有的档案系统,包括系统特有的 /proc 等档案系统;
-k  :以 KBytes 的容量显示各档案系统;
-m  :以 MBytes 的容量显示各档案系统;
-h  :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H  :以 M=1000K 取代 M=1024K 的进位方式;
-T  :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i  :不用硬盘容量,而以 inode 的数量来显示
du
[root@linux ~]# du [-ahskm] 档案或目录名称
参数:
-a  :列出所有的档案与目录容量,因为预设仅统计目录底下的档案量而已。
-h  :以人们较易读的容量格式 (G/M) 显示;
-s  :列出总量而已,而不列出每个各别的目录占用容量;
-k  :以 KBytes 列出容量显示;
-m  :以 MBytes 列出容量显示;
连结档的介绍: ln
[root@linux ~]# ln [-sf] 来源文件 目标文件
参数:
-s  :如果 ln 不加任何参数就进行连结,那就是 hard link,至于 -s 就是 symbolic link
-f  :如果 目标文件 存在时,就主动的将目标文件直接移除后再建立!
磁盘的分割、格式化、检验与挂载:
[root@linux ~]# fdisk [-l] 装置名称
参数:
-l  :输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时,则系统将会把整个系统内能够搜寻到的装置的 partition 均列出来。
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
磁盘格式化
[root@linux ~]# mke2fs [-bicLj] 装置名称
参数:
-b  :可以设定每个 block 的大小,目前支持 1024, 2048, 4096 bytes 三种;预设Block 是 4096
-i  :多少容量给予一个 inode 呢?
-c  :检查磁盘错误,仅下达一次 -c 时,会进行快速读取测试;如果下达两次 -c -c 的话,会测试读写(read-write),会很慢~
-L  :后面可以接表头名称 (Label),这个 label 是有用的喔!后面会讲~
-j  :本来 mke2fs 是 EXT2 ,加上 -j 后,会主动加入 journal 而成为 EXT3。
磁盘检验: fsck, badblocks
[root@linux ~]# fsck [-AtCary] 装置名称
参数:
-t  :fsck 可以检查好几种不同的 filesystem ,而 fsck 只是一支综合程序而已。个别的 filesystem 的检验程序都在 /sbin 底下,您可以使用 ls -l /sbin/fsck*去检查看看,就知道有几种 filesystem 啰。预设的 FC4 情况下,至少有:ext2, ext3, vfat, msdos 等等 filesystem。
-A  :依据 /etc/fstab 的内容,将所有的装置都扫瞄一次 (通常开机过程中就会执行此一指令)
-a  :自动修复检查到的有问题的扇区,所以你不用一直按 y 啰!
-r  :一定要让使用者决定是否需要修复,这与上一个 -a 刚好相反!
-y  :与 -a 类似,但是某些 filesystem 仅支持 -y 这个参数,所以您也可以利用 -y 啦!
-C  :可以在检验的过程当中,使用一个长条图来显示目前的进度!
-f  :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
[root@linux ~]# badblocks -[svw] 装置名称
参数:
-s  :在屏幕上列出进度
-v  :可以在屏幕上看到进度
-w  :使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的装置已有档案时!
磁盘挂载与卸载
[root@linux ~]# mount -a
[root@linux ~]# mount [-tonL] 装置名称代号 挂载点
参数:
-a  :依照 /etc/fstab 的内容将所有相关的磁盘都挂上来!
-n  :一般来说,当我们挂载档案系统到 Linux 上头时, Linux 会主动的将 目前的 partition 与 filesystem 还有对应的挂载点,都记录到 /etc/mtab那个档案中。不过,有些时刻 (例如不正常关机导致一些问题,而进入单人模式)系统无法写入 /etc/mtab 时,就可以加上 -n 这个参数来略过写入 mtab 的动作。
-L  :系统除了利用装置名称代号 (例如 /dev/hda1) 之外,还可以利用 partition的表头名称 ( Label ) 来进行挂载喔!所以,最好为您的 partition 取一个 在您系统当中独一无二的名称吧!
-t  :您的 Linux 支持的档案格式,就写在这里吧!举例来说,我们在上面建立/dev/hdb5 是 ext3 档案系统,那么要挂载时,就得要加上 -t ext3来告知系统,用 ext3 的档案格式来挂载该 partition 呢!至于系统支持的 filesystem 类型在 /lib/modules/`uname -r`/kernel/fs 当中。常见的有:
       ext2, ext3, reiserfs, 等 Linux 惯用 filesystem
       vfat, msdos 等 Windows 常见 filesystem
       iso9660 为光盘片的格式
       nfs, smbfs 等为网络相关档案系统。这部分未来我们会在网络方面提及!若 mount 后面没有加 -t 档案系统格式时,则 Linux 在预设的情况下,会主动以 /etc/filesystems 这个档案内规范的档案系统格式来尝试主动的挂载喔!
-o :后面可以接一些挂载时,额外加上的参数喔!比方说账号、密码、读写权限等:
    ro, rw:       此 partition 为只读(ro) 或可擦写(rw)
    async, sync:  此 partition 为同步写入 (sync) 或异步 (async),这个与我们之前提到的档案系统运作方式有关,预设是 async
    auto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)
    dev, nodev:   是否允许此 partition 上,可建立装置档案? dev 为可允许
    suid, nosuid: 是否允许此 partition 含有 suid/sgid 的档案格式?
    exec, noexec: 是否允许此 partition 上拥有可执行 binary 档案?
    user, nouser: 是否允许此 partition 让 user 执行 mount ?一般来说,
                  mount 仅有 root 可以进行,但下达 user 参数,则可让一般 user 也能够对此 partition 进行 mount 。
    defaults:     默认值为:rw, suid, dev, exec, auto, nouser, and async
    remount:      重新挂载,这在系统出错,或重新更新参数时,很有用!
•  umount (将装置档案卸载)
[root@linux ~]# umount 装置代号或挂载点
[root@linux ~]# umount /dev/hdb5
[root@linux ~]# umount /mnt/hdb5
磁盘参数修订mknod
[root@linux ~]# mknod 装置名称 [bcp] [Major] [Minor]
参数:
装置种类:
   b  :设定装置名称成为一个周边储存设备档案,例如硬盘等;
   c  :设定装置名称成为一个周边输入设备档案,例如鼠标/键盘等;
   p  :设定装置名称成为一个 FIFO 档案;
Major :主要装置代码;
Minor :次要装置代码;
硬盘代号     Major  Minor
/dev/hda   3    0~63
/dev/hdb   3   64~127
/dev/hdc  22    0~63
/dev/hdd  22   64~127
磁盘的表头数据e2label:
[root@linux ~]# e2label 装置名称      新的 Label 名称
[root@linux ~]# e2label /dev/hdb5 hdb5
tune2fs:
[root@linux ~]# tune2fs [-jlL] 装置代号
参数:
-j  :将 ext2 的 filesystem 转换为 ext3 的档案系统;
-l  :类似 dumpe2fs -h 的功能~将 superblock 内的数据读出来~
-L  :类似 e2label 的功能,可以修改 filesystem 的 Label 喔!
建立虚拟内存装置:
1. 以『 fdisk /dev/hd[a-d] 』先建立一个 partition ,还记得 fdisk 怎么做吗?回去复习一下  吧!简单的来说,就是先 (1)建立一个 partition,然后 (2)将该 partition 的 ID 改为 82 这一个 swap 的磁盘档案格式代号就对 啦!这样这一步骤就 OK 啰!
2. 以『 mkswap /dev/hd[a-d][1-16] 』的方式来将您刚刚建置出来的 partition 『格式化为 swap的档案格式』,很简单吧!这样就格式化 OK 啰!
3. 再来则是将 swap 启动,启动的指令为『 swapon /dev/hd[a-d][1-16] 』,这样就能启动了!很简单吧!这样 swap 就自动加入到内存容量里头去了!
建立虚拟内存档案:
1. 以 dd 指令来建立 swapfile ;
2. 以 mkswap 来将 swapfile 格式化为 swap 的档案格式;
3. 以 swapon 来启动该档案,使成为 swap ;
4. 以 swapoff 来关闭该档案!


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93267/showart_1864635.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP