文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>RHCE笔记

RHCE笔记

时间:2006-02-17  来源:wayyyay

RHCE笔记1- -
                                      
单元一:概述
UNIX由贝尔实验室(Bell Labs)发明。UNIX为AT&T的注册商标,所以其他公司开发的UNIX都有自己的名字,例如IBM的AIX,Sun的Solaris等。 UNIX中,任何事物都是文件。基于这个定理,UNIX的配置文件都储存在文本文件中,并可以将多个程序链起来完成复杂的任务。 GNU Project开始于1984年,由自由软件基金(FSF for Free Software Foundation)支持,目的是为了建立免费的UNIX系统。到1990年,建立了一套包括gcc,emac等在内的近乎完备的系统。 GPL=GNU General Public License。GPL鼓励自由软件,所有对遵循GPL的软件进行的改进和修改也都必须遵循GPL。 而Linux起源于1991年有个大学毕业生Linux Torvalds建立了一个叫做"Linux"的操作系统内核。虽然该内核当时只支持gcc和bash两个GNU产品,但它预示着组合Linux内核和GNU应用程序使得建立免费的类UNIX系统成为可能。 Linux具备的特性有:
#Linux是一个类UNIX系统
#支持多任务和多用户
#并有广泛的硬件支持(至少是越来越广泛)
#Red Hat发行版Linux提供了相当多Red Hat推荐的、普遍使用的、有用的程序。
Red Hat Linux是Linux的一个发行版本(distribution)。它具有的特性有:
#最新的系统内核
#常用的实用程序和应用软件
#安装和配置软件
#提供技术支持
Red Hat Linux推荐的硬件配置
#Pentium级以上的CPU
#128M内存
#600M-1.2G的硬盘空间,取决于使用目的。
#可启动的CDROM或者软驱
Linux在图形用户界面(GUI)环境上,提供标准的X Window系统:XFree86。两种桌面环境:KDE和GNOME,分别建立在Qt和GTK+开发包上。 单元二:快速教程 Linux用户环境组件包括:
#内核(Kernel)
#Shell
#终端模拟器(Terminal Emulator)
#X Window系统
#窗口管理器(Window Manager)
#桌面环境(Desktop Environment)
本地登录时,若是在虚拟终端中以文本界面登录,运行级别(runlevel)为3;当在图形界面登录是,运行级别(runlevel)为5。可使用init来切换runlevel,如 init 3 或者 init 5。 ls命令通常用于查看文件系统,Red Hat Linux使用“彩色的”ls来区分不同的文件。命令例如:
$ ls -lh 文件以KB大小列出并列出属性等详细信息
$ ls -a 列出所有文件(显示隐藏的以"."开头的文件)
$ ls -al 列出所有文件及其详细信息
$ ls -R 列出目录下所有子目录及文件
所有的硬件设备都是以文件形式存在的,只不过它们是特殊的文件,并存放在/dev目录下。设备分为块设备(block)和字符设备(character)两种。在用ls -l命令显示时,设备文件的类型会在属性的第一位以"b"或者"c"分别表示。块设备是可随机读写的设备,例如硬盘;字符设备必须是顺序读写的,比如串口。 进程(process)是一个正在执行的程序的实例(程序的一次运行),每个进程都有一个唯一的进程号PID,从1-32768取值。其中PID 1为init进程所保留。线程(thread)可以看作是一个进程内部的“小进程”,和系统中的进程有些相似。 用ps -ef和pstree可以罗列当前的进程列表。top可即时监视当前所有进程,gtop是一个图形界面的进程监视程序。 在命令行Shell中,最常用和最著名的是bash(Bourne Again SHell),也是Linux的缺省shell。bash的全局设置文件为 /etc/profile和 /etc/bashrc。当然还有其他的shell比如csh等。 两个以上的命令/程序的连续执行可使用分号“ ; ”。若需要连续执行命令并保证前一个命令没有返回错误的前提下执行下一个命令的话,可在命令间加上“ && ”。若命令在一行打不下或想人为换行,可在行末尾加“ \ ”然后回车,继续这个命令的后面的部分。 man命令后跟命令名可找到相应的帮助页面,按q 退出。例如man ls 或者ls --help。info 命令后跟section_name 可找到相应部分的帮助。在/usr/share/doc/HOWTO/ 中有编译好的HowTos可供查阅。 env 命令显示环境变量;set命令显示环境变量和本地shell变量。下面是一些通用变量:
PATH - 可执行文件搜索路径
PWD - 当前目录
TERM - 登录终端类型
SHELL - 登录Shell的路径
HOME - 用户的home目录
USER - 用户名
DISPLAY - X显示名
VISUAL - 可视化编辑器名
EDITOR - 缺省编辑器名
root用户拥有对系统的完全控制,用户号(UID)为保留的0。任何非特权用户的UID都大于0。可以用id 命令查看当前用户信息。用passwd 命令改变密码,密码长度应在6-255位之间,并且大小写敏感。passwd [用户名] 用来修改某特定用户的密码。 虚拟终端(virtual console)的设计支持非GUI的多重登录。缺省情况下有6个虚拟终端,可通过CTRL-ALT-F[1-6] 在之间切换。在虚拟终端中可使用Shift+PageUp和Shift+PageDown卷动显示。如果运行了X,则X用CTRL-ALT-F7 来切换。 单元三:文件与Shell基础 命令pwd(Print Working Directory)显示当前所在目录的绝对路径。cd 命令用于改变当前目录,后跟绝对路径或相对路径。绝对路径以“ / ”开始,而相对路径通常以“.”、“..”或者下级目录名开始。例如:
$ cd /tmp/mydir
$ cd ..
$ cd mydir
$ cd - (到前一个所在目录)
$ pwd
/tmp
每个用户都有一个home 目录,一般在/home 目录下。home 目录中包含了用户特定的配置和用户文件。字符“ ~ ”代表当前用户的home 目录。例如,当前用户为feng_ye,则他的home 目录下的某个文件就可以这样写:~/text/example.txt ,即/home/feng_ye/text/example.txt 。如果feng_ye用户可以访问别的用户home 目录,则~kim/text/another.txt 代表了kim用户home 目录下的text/another.txt 文件,即/home/kim/text/another.txt 。 文件名可以长达255个字符,以“ . ”开头的文件为隐藏文件,在ls 时必须加-a 显示才能看到。文件名一般来说避免在其中使用 / , >, <, ?, *, ", ' 和控制符号(不可打印的字符)。如果想要使用特殊字符,比如空格,那么将文件名用双引号“ " ” 括起来,例如:
$ ls -l "file name with spaces.txt"
或者
$ ls -l file\ name\ with\ spaces.txt
Red Hat Linux 和大多数Linux 发行版一样,遵循FHS(Filesystem Hierarchy Standard)。系统目录中:
/bin , /sbin , /usr 存放系统编译后的可执行文件、命令;
/var 存放日志文件,PID 文件和电子邮件;
/proc 当前的进程都会在这个目录中出现,可看作是一个通向内核的虚拟窗口;
/etc 存放配置文件;
/lib 存放共享库;
/dev 设备文件;
/boot 内核和启动文件;
/home 用户的home 目录;
/opt 为安装第三方软件包的目录。
df 命令显示磁盘用量,加-h 选项可以以KB、MB、GB等单位输出,加-H 也以KB、MB、GB输出,但是是以1000为K,而非1024。du 命令计算目录下文件占用磁盘的大小,以KB为单位,也加-h 选项。例如du -sh 。 文件操作中,mv 命令用来移动文件或者将文件改名。注意如果mv 命令的第二个参数,也就是移动目的地是一个目录,则源文件移动到该目录下;若不存在第二个参数所指定的目录,则mv 将认为第二个参数是一个文件名,并将源文件改名。cp 命令复制文件。可用-a 选项复制整个目录及其子目录和文件,并保持其修改时间。touch 命令更新文件的最后修改时间,若文件不存在则建立空文件。rm 命令删除文件。可以用-rf 命令删除任何文件或者目录,及其子目录下的文件。如果需要的话可以用-i 选项让rm 命令具有交互功能。 目录操作中,mkdir 命令新建目录,rmdir 用于删除空目录,若需要删除非空目录,使用rm -r 将删除目录及其子目录中所有文件。 file 命令用于获得文件的类型,如ASCII文件或者可执行文件等。 cat 命令用于显示整个文件的内容。-A 选项显示所有字符,包括控制字符和不可打印的字符;-s 选项压缩文件中的多个空行为一个空行;-b 为所有非空行加注行号。 less 命令用于在分屏显示文件,空格向后翻页;b 向前翻页;/text 在文件中向前查找text;?text 在文件中向后查找text;n 重复上一次的查找;N 重复上次查找,但方向相反;q 退出。
less 的选项有 -c 在显示前清屏;-r 显示控制字符;-s 压缩多个空行为一个空行。
tail 和head 命令显示文件最后n 行和最前的n 行。n 缺省为10。
-n 或者 -n n 选项:显示n行(例:-20 或者-n 20)
-c n 选项:显示n个字节
-f 选项为tail 所独有,它用来实时观察文件的末尾增加的行,在观察系统日志时非常有用。
pico 是一个通用文本编辑器,当编辑系统配置时务必加-w 选项以防止自动换行。 文件可以用通配符 * 和 ? ,* 表示0个或者多个字符,? 表示单个字符。[a-z] 表示在范围之内的字符,[^a-z]表示除范围之外的字符。
技巧:echo 命令可以用来测试通配符以避免错误的毁灭性操作,例如rm 。
$ echo ??ee*.txt
bleeding-edge.txt sheeptrix.txt
kill [PID] 用来杀死进程。不易杀死的进程可用kill -9 [PID] 杀死。 单元四:用户、组和系统信息 所有的用户(下称user)都有一个唯一的用户号(unique User ID = uid)。用户名和uid都存储在/etc/passwd 文件中。当user 登录时通常被连接到home 目录和一个Shell程序。user 不能在没有允许的情况下读、写、执行其他user 的文件。 user 都属于一个组(下称group),而group 有唯一的组号(unique Group ID = gid)。gid 存储在/etc/group 文件中。每个user 都被赋予自己的group ,他们也能加入到其他group 中以获取更多的访问权限。同一group 中的user 可以共享属于该group 的文件。
有些group 控制着硬件的访问权限。例如想让bob 使用软驱,即使bob 不是坐在电脑前,那么系统管理员可以将bob 加入到floopy group中。
每个进程(下称process)有一个拥有者(下称owner)并只可访问owner 可访问的资源。类似地,每个文件也有一个owner user,该user 和一个group 相连。 root user是一个特殊的管理帐号。不应该以root 身份登录,除非你有充足的理由。因为root 具有对系统的完全控制权力,应该非常小心的使用。 像web 服务器或者打印服务器等服务器程序通常以非特权user 身份运行,例如daemon, mail, lp, nobody等。这样做的原因是这样运行程序可以限制程序可能对系统造成的伤害。系统user 和group 均拥有在1到499之间的uid 和gid。 获取user 信息的命令有:
whoami 显示当前user;
groups, id 显示当前所属group;
who, users, w 显示有哪些user 已登录;
last [username] 显示user 的最后登录时间;
last -1 reboot 显示最后重启记录;
finger [username] 显示某user 信息。
su - [username] 启动一个新shell,并以另一个user 登录。若不打username,则是以root 身份登录。直接输入su [username] 也可以达到同样效果,但是不传递当前用户的环境变量。 获取系统信息的命令有:
uname:显示系统信息;例如uname -a
date:显示当前日期和时间;例如date +"Today is %A, %Y %m %d. %nThe time now is %r, %Z."
cal:显示一个ASCII日历;例如cal 9 2002
man的使用:
man -k keyword 在whatis 数据库中查找关键字;
man -f keyword 同上,但keyword 为一个整字(whole word)
man -a keyword 通常man 会显示第一个找到的keyword的man page,但是若需要找到全部的man page,使用-a 选项。
man n keyword 显示第n部分(section)的man page
1 - User commands
2 - System calls
3 - Library calls
4 - Special files
5 - File Formats
6 - Games
7 - Miscellaneous
8 - Admin commands
RHCE笔记2- -
                                      
单元五:文件访问许可
所有文件都有一个拥有者(owned by a user),并和一个组(group)相连。
因此一个用户是否有权限读写或者执行一个文件,是由这个文件是否被赋予了相应的权限所决定的。权限可以设定给文件拥有者,文件所在的组,或者其他任何人。
可由ls -l 命令来查看文件权限(permissions):
$ ls -l /bin/login
-rwxr-xr-x 1 root root 19080 Apr 1 18:26 /bin/login
可以看到文件的访问权限由10个字符表示。 文件访问权限为三种用户种类使用。每个种类都有一个表示字符:
u ——文件的拥有者(owner)
g ——文件所在组的其他用户
o ——任何用户(others)
每个种类的访问权限都彼此独立,互不相关。
三种标准文件访问类型:
r ——文件的读权限/罗列目录内容的权限(list a directory's contents)
w ——文件的写权限/在目录中建立或删除文件的权限
x ——文件的执行权限/访问目录中文件的权限,例如cd 到该目录
此三种标准文件访问类型可以赋给上述的三种文件访问权限的用户种类,即u、g、o。
文件访问权限中,第2、3、4个字符表示了文件拥有者的权限;第5、6、7个字符表示了文件组的权限;第8,9,10个字符表示了其他用户的权限。例如:
$ ls -l /bin/login
-rwxr-xr-x 1 root root 19080 Apr 1 18:26 /bin/login
说明了该文件的拥有者可以读写并执行该文件,其他的用户(包括组内用户)可以读、执行该文件。又例:
$ ls -l README
-rw-rw-r-- 1 andersen visitor 2948 Oct 11 14:07 README
该文件可以由visitor组内的用户读写,但是并不能执行;能被其他用户读,但是其他用户不能改写它或者执行它。 文件访问权限中的第一个字符"d"将目录和其他文件予以区分:
$ ls -ld /bin
drwxr-xr-x 2 root root 4096 Apr 20 18:13 /bin/
更多例子:
用户fred 是组fred 和组staff 的成员
用户mary 是组mary 和组admin, staff 的成员
文件fileA 拥有者是fred,拥有者组是 fred
文件fileB 拥有者是mary,拥有者组是 root
文件fileC 拥有者是root,拥有者组是 staff
给出下表
----------------------------------------------
user fileA fileB fileC
----------------------------------------------
fred u,g,o o, o,g
mary o u,o o,g
root u,g,o u,g,o u,g,o
如果fileA 有访问权限rwxr-xr--,那么它访问权限如下:
read write excute
------------------------------------
fred yes yes yes
mary yes no no
root yes yes yes
改变文件权限用chmod 命令,chmod 后跟一个表达式,表达式可以为一串数字或者一段预置的代码组合:改变谁的(who),操作符(operator)和权限(permission)。 改变谁的(who)可以有下面的选择:
u 文件拥有者
g 在文件组内的用户
o 其他用户
a 所有用户
操作符(operator)可以有下面的选择:
+ 增加权限
- 删除权限
= 将权限赋予…
权限(permission)可以有下面的选择:
r 读
w 写
x 执行(对于目录来说是访问)
s Set userID bit(第四位)或者set groupID bit(第七位)
t Set sticky bit(对于目录来说便是——防止其他非拥有者删除目录中的文件,位于第10位)
例如:
$ chmod g+w .bash_profile
该命令将写权限赋予了文件组内的用户。
$ chmod go-rw .bash_profile
该命令剥夺了非拥有者用户的读写权限。
chmod 中有一个有用的参数为-R (递归,注意大写),可以将整个目录中的文件和子目录的权限全部改写。
前面提到还有一种方法可以修改文件权限,就是数字方式。以三个数字的方式确定文件的访问权限。第一个数字代表拥有者权限、第二个代表文件所在组内的用户权限、第三个代表其他用户权限。权限表达式由以下数字相加而得:
4 (读权限)
2 (写权限)
1 (执行权限)
例:设置文件file 为所有人均为只读权限:
$ chmod 444 file
例:设置文件file 为拥有者拥有读写和执行权限,组内用户有读和执行权限、其他用户无任何权限:
$ chmod 750 file
还要提一下默认的文件权限。默认的文件权限,是由umask 来决定的。非特权用户的umask 为002,即文件默认权限为664;而root 用户的umask 为022,即文件默认权限为644。 如果没有umask 的话,所有文件都会默认为666权限,意味着所有人都可以读写新建的文件。注意所有新建的文件都没有执行权限,即使umask 也无能为力。所有的执行文件都要显式的给出执行权限才能运行。但是对于目录来说,无论umask 的值是多少,新建目录时就默认赋予了执行权限(可以访问目录)。 要改变umask,只需打:
$ umask 022
这样就使得原本默认的002 umask值改为022。但是当下次再登录的时候,umask 又会改回到原来的值,这就需要你在bash 的初始化脚本(initialization script)中加入特定的umask 值。
除了三种标准访问权限外,还有前面提到过的三种特殊权限。它们是setuid、setgid 和sticky 位。 (下面我的理解不知道正确与否,希望高手指点!)
setuid 位将进程的用户ID (user ID)设置为文件的用户ID,对目录无效。
setuid 是一个非常强大也很危险的工具。比如,如果一个程序设置了setuid 位而且它的拥有者是root,那么当该程序执行时它就拥有了root 用户执行这个程序的特权。有些程序必须使用它来使程序正确运行。比如ping 程序必须设置setuid 为root,因为它要在网络上传输ICMP包的裸数据。任何setuid 的程序必须小心编写并排除安全漏洞。
setgid 位将进程的组ID (group ID)设置为文件的组ID,对目录来说,它迫使所有在该目录中创建的文件都拥有与该目录相同的组,而无论文件的创建者是谁。
setgid 和setuid 一样,也很强大,应该小心使用。因为它允许无意识的对文件和资源的访问。举例来说,minicom 终端模拟器程序设置setgid 为uucp 组,它提供了向计算机的串行口访问的权限(组uucp 拥有该种权限)。
sticky 位作用在目录上,防止用户删除它们并不拥有的文件(files they do not own)。sticky 位典型的应用便是在/tmp 目录中,防止用户删除彼此的文件。sticky 位在文件上没有效果。 单元六:Linux文件系统 文件和目录被组织在一个单根(single-rooted)反向树状结构中。包括独立的物理设备卷,比如软盘、CDROM或多个硬盘。反向树状结构的基点(最高点)为根目录或者叫"/"。
文件名是大小写敏感的,"/"符号为界定符,分开路径名的各个元素。例如 /usr/bin/X11/X
每个shell 和系统进程都有一个“当前目录”。".."表示当前目录的上一级目录,"."表示当前目录。文件或者目录以"."开头的是所谓的隐藏文件,它们在默认的罗列中不出现。
一个用户的路径(path)是一串目录,用以搜索执行命令的程序所在。
/(root)
______________________________________________|______________________________________
|      |      |     |     |     |     |     |     |       |      |     |       |         |        |
etc bin sbin lib root usr mnt var boot tmp opt dev home proc lost+found
bin: 用来储存用户命令。/usr/bin 目录也存放用户命令。
sbin: 系统命令例如shutdown 之类的所在。/usr/sbin 目录也存放许多系统命令。
root: 超级用户的home 目录。
mnt: 通常在系统启动以后含有文件系统装载的装载点(mount point)。
boot: 含有在系统启动时所用到的内核和其他文件。
lost+found: fsck 使用用来存储找到的文件碎片(无文件名的文件)。
lib: 含有许多在/bin 和/sbin 下的程序所用到的库文件。/usr/lib 目录下含有更多的库文件。
dev: 存储设备文件。
etc: 含有许多配置文件和目录。
var: 存储像系统日志和打印池等“变量”文件。
proc: 一个含有系统进程信息的虚拟文件系统(不存储在磁盘上)
tmp: 一个用户和程序的“草稿本”,/tmp 对所有人和所有进程开放读写权限。
opt: 类似StarOffice 这种第三方包的安装目录。
以下是关于ext2/ext3 文件系统的细节。 当ext2/ext3文件系统建立时,系统的元数据(metadata)就存储在超级块中(superblock)。因为这些数据对于操作文件系统来说至关重要,所以同时也建立了一份文件系统超级块的拷贝。(比方在小的文件系统上每8192个块建立一份拷贝)。dumpe2fs 命令可以查看超级块上的数据。超级块(superblock)含有文件系统的元数据(metadata):卷名,UID,inode数,块数,保留块数,块组的位置等等。 inode 就像数据在块上的描述。inode 不存储文件的真实数据,而是存储文件的信息。stat 命令可以帮助我们查看文件的inode 从而得知是如何存储在文件系统中的。
$ stat passwd
File: "passwd"
Size: 1129 Blocks: 8 IO Block: 4096 Regular File
Device: 306h/774d Inode: 214057 Links: 1
Access: (0644/-rw-r--r--) Uid: (0/root) Gid: (0/root)
Access: Sat Sep 29 13:34:57 2001
Modify: Sun Sep 23 17:12:41 2001
Change: Sun Sep 23 17:12:41 2001
下面是硬连接(hard link)的概念。
硬连接是一个在文件系统中“物理存在”的文件,每个link 指向文件的inode。它使得一个文件拥有两个或以上名字成为可能。注意,用户可以link 他们不拥有的文件,但是还是会被inode 上的信息所限制。hard link 经常作为输入长路径名的一种节省办法。
hard link 不能跨盘或者跨分区操作,这是因为hard link 指向的inode 在一个分区内是唯一的,但是在整个文件系统中并不唯一。且不能为一个目录建立hard link。
使用ln filename [linkname] 来建立hard link。
使用ls -i 显示当前目录中所有文件的inode 号。
使用ls -l ,在第二列显示了该文件的hard link 个数。当一个文件的hard link 的个数为0,那么它已经被删除。
下面是软连接(或者符号连接)的概念。
软连接(symbolic link)是一种linux 文件类型(l)。"l"会出现在文件访问权限的第一个字符。
和hard link 不一样,它存储了它指向的另外一个文件的完整文件名。如果那个被指向的文件被改名了或者删除了,那么这个symbolic link 就没有指向。因此,symbolic link 也可以指向实际不存在的文件。此外symbolic link 也可指向跨分区的文件和目录,这两点是hard link 所做不到的。
使用ln -s filename [linkname] 建立symbolic link。
使用ls -l 可以查看symbolic link 的指向。例如:
$ ln -s /etc/passwd password
$ ls -l password /etc/passwd
lrwxrwxrwx 1 doug doug 11 May 19 18:41 password -> /etc/passwd
-rw-r--r-- 1 root root 919 May 13 19:07 /etc/passwd
symbolic link 总是有完全访问权限777。并且注意文件大小,11字节,正好是"/etc/passwd"这些字母数。 关于可移动介质,它们在被使用前必须先装载(mount)——使用mount 命令。同样地,在可移动介质被拿走之前,必须先卸载(unmount)——使用umount 命令。例如:
mount -t vfat /dev/fd0 /mnt/floppy ——装载一张软盘
mount /mnt/floppy ——利用fstab 装载软盘
mount -t iso9660 /dev/cdrom /mnt/cdrom ——装载CDROM
mount /mnt/cdrom ——利用fstab 中的信息装载CDROM
此外如果你安装了AutoFS 的rpm 包,那么你的系统就可配置成自动装载的。缺省的配置文件在/etc/auto.master 和/etc/auto.misc 中。 如果你安装了mtools 包,那么它可以帮你访问FAT 文件系统,可以在不用装载的情况下使用FAT 格式的软盘或者硬盘。命令就是m后跟dos命令。例如mdir。 搜索文件方面,linux 提供了slocate 命令和find 命令。
slocate 命令没有find 那么强大,但是很快。因为它使用了系统的一个每天更新的数据库,而不是像find 一样即时查找。find 更灵活,你可以用上多种参数和选项,并指定如文件类型、拥有者、修改日期等。
slocate 语法:slocate [pattern] 或者 locate [pattern]
注:在Red Hat Linux 系统中,locate 是slocate 的一个symbolic link。slocate 使用的是系统每日更新的数据库,所以若是在上次更新后又添加或者改动的文件它是无能为力的。
find 语法:find [path] [options] [expression]
find 最主要的工作就是生成一个文件或者目录名的列表。find 会沿着在[path]中指定的路径名递归向下查找知道所有符合条件的文件都被列出了。可以使用-name 选项限制列出的文件,在使用通配符时请务必加上双引号" "。
例如:find . -name index.html
find . -name "*.html"
find 的其他一些选项:
-atime +n, -n 列出多于/少于n天前被访问过的文件。
-mtime +n, -n 列出多于/少于n天前被修改过的文件。
-user uname 列出被uname 用户所拥有的文件
-group gname 列出被gname 组所拥有的文件
-perm mode 列出符合8进制的访问权限的文件
-size n[c] 列出占用n块,或者当有c 出现时,n个字符的文件。
-type c 列出c 类型的文件,c 可能是:b(block specail
file)、c(character special file)、d(directory)、
p(fifo or named pipe)、l(symbolic link)、
s(socket)、f(plain file)
-iname pattern 查找的pattern 大小写敏感。
find 的强大之处还在于它可以将找到的文件传给某些命令作为参数。语法:
find dir_list [options] -exec cmd {} \;
注意上面的语法,最后一个分号不要漏掉。
如果执行的命令cmd 需要确认,例如rm,则可用-ok 替代-exec。
Linux 提供了几套压缩文件工具。
# gzip, gunzip 是标准Linux 的压缩工具
# bzip2, bunzip2 是较新的Linux 压缩工具,一般比gzip
压缩比高一点,但是速度慢。bzip2压
缩的文件后缀名为.bz2。
# compress, uncompress 是以前UNIX 的压缩工具
gzip压缩的文件,一般后缀名为.gz,也可在许多非UNIX 平台上使用。另外gunzip 也可以解压用compress 压缩的文件。
用法:gzip [-d] file
gunzip file
其中gzip -d 的作用是解压,可以代替gunzip 命令。后跟的文件名不需打.gz 后缀。 最后要介绍的zip/unzip 是和DOS/Windows 平台下的pkzip/Winzip 相兼容的工具。它可以将多个文件压缩成一个文件,这是gzip 和compress 所作不到的。要在gzip 和compress 中压缩多个文件一般得要先组合成tar RHCE笔记3- -
Tag: RHCE                                          
讯息传送与信件管理
指令:mesg
使用权限 : 所有使用者 使用方式 : mesg [y|n] 说明 : 决定是否允许其他人传讯息到自己的终端机介面
参数 :
y : 允许讯息传到终端机介面上。
n : 不允许讯息传到终端机介面上 。
如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
例子 :
改变目前讯息设定,改成不允许讯息传到终端机介面上 :
mesg n
  与 mesg 相关的指令有: talk,write,wall。 具体方法用man查询!
--------------------------------------------
vi使用篇
1;进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次进行编辑
2;移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
3;屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
4;插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
5;删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
6;搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
7;选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
8;最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
9;寄存器操作
"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
"?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。
-----------------------------------------------------
vi 高级技巧
交换两个字符位置
xp
上下两行调换
ddp
把文件内容反转
:g/^/m0/
保存后就加密
:X
上下两行合并
J
删除所有行
dG
从当前位置删除到行尾
d$
从当前位置复制到行尾
y$ 如果要粘贴到其他地方 p 就可以了
在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,粘贴下来在光标处。
我常用到的单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S
:%s/old_word/new_word/g
这个指令是于在整个文件中替换特定字符串
将光标移到第n行,按下 mk
将光标移到第m行,按下 "ay'k
即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等
删除命令操作
d l 删除当前字符(与x命令功能相同)
d 0 删除到某一行的开始位置
d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)
d w 删除到某个单词的结尾位置
d 3 w 删除到第三个单词的结尾位置
d b 删除到某个单词的开始位置
d W 删除到某个以空格作为分隔符的单词的结尾位置
d B 删除到某个以空格作为分隔符的单词的开始位置
d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d 4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d } 删除到某个段落的结尾位置
d { 删除到某个段落的开始位置
d 7 { 删除到当前段落起始位置之前的第7个段落位置
d d 删除当前行
d /t e x t 删除从文本中出现“ t e x t”中所指定字样的位置,一直向前直到下一个该字样所出现的
位置(但不包括该字样)之间的内容
d fc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
d tc 删除当前行直到下一个字符“ c”所出现位置之间的内容
D 删除到某一行的结尾
d $ 删除到某一行的结尾
5 d d 删除从当前行所开始的5行内容
d L 删除直到屏幕上最后一行的内容
d H 删除直到屏幕上第一行的内容
d G 删除直到工作缓存区结尾的内容
d 1 G 删除直到工作缓存区开始的内容
修改命令操作
c l 更改当前字符
c w 修改到某个单词的结尾位置
c 3 w 修改到第三个单词的结尾位置
c b 修改到某个单词的开始位置
c W 修改到某个以空格作为分隔符的单词的结尾位置
c B 修改到某个以空格作为分隔符的单词的开始位置
c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置
c 0 修改到某行的结尾位置
c) 修改到某个语句的结尾位置
c 4) 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c } 修改到某个段落的结尾位置
c { 修改到某个段落的开始位置
c 7 { 修改到当前段落起始位置之前的第7个段落位置
c tc 修改当前行直到下一个字符c所出现位置之间的内容
C 修改到某一行的结尾
c c 修改当前行
5 c c 修改从当前行所开始的5行内容
替换命令操作
s 将当前字符替换为一个或多个字符
S 将当前行替换为一个或多个字符
5 s 将从当前字符开始的5个字符替换为一个或多个字符
fx
往右移动到 x 字符上
Fx
往左移动到 x 字符上
tx
往右移动到 x 字符前
Tx
往左移动到 x 字符后
(注意:以上四个命令中,其中x是键入的字符)
;
分号,配合 f 和 t 使用,重复一次
,
逗号,配合 f 和 t 使用,反方向重复一次
追加到缓冲区
对于已经有内容的缓冲区,可以继续追加内容在其后面,例如:
"Ad4w 删除光标后4个字,并附加到缓冲区a
"Ay) 取样从光标到文件尾的内容,并附加到缓冲区a
"K3yy 取样从光标所在行起的3行内容,并附加到缓冲区k
删除从当前行开始到最后一行的所有内容
:.,$d
在:命令行模式下,首先可以确定命令的范围
.表示当前行;数字表示行号,如1表示第一行,2表示第二行;$表示最后一行
范围用,分隔
然后用命令
d表示删除,y表示复制......大家都知道的
最后说一句,%表示全文
:%d
是删除全文
 
相关阅读 更多 +
排行榜 更多 +
战地方块战场中文版下载

战地方块战场中文版下载

飞行射击 下载
云原神国际服手机版下载

云原神国际服手机版下载

角色扮演 下载
海之号角柯罗诺斯地下城手机版下载

海之号角柯罗诺斯地下城手机版下载

角色扮演 下载