一、文件处理命令
1. ls命令
英文原义:list (显示目录文件及其属性)
执行权限:all user
语法:ls 选项[-alFR] [文件或目录]
-a 显示所有文件包括隐藏文件
-l 使用long format 长格式进行显示
-F 附加文件类别符号在文件名最后
-R 显示目录及其下的子目录内容
示例:$ ls –a
$ ls –l
说明:“.” 代表当前目录,“..”代表上一层目录,长格式显示的目录或文件属性包括下列七项:文件权限(r-可读, w-可写, x-可执行)、文件数目、所有者、文件大小、建立日期、文件名。参见“2.2.2 文件基础”。
2. cd命令
英文原义:change directory (切换目录)
执行权限:all user
语法:cd [目录]
示例:$ cd .. 回到上层目录
$ cd . 在原目录
$ cd ~ 回到user的home directory
$ cd / 切换到根目录
$ cd ../usr 切换到上一层目录的usr目录
3. pwd命令
英文原义:print work directory(显示当前所在目录)
执行权限:all user
语法:pwd
示例:$ pwd
说明: 由于Linux系统的树状目录结构颇为庞大,若没有使用Shell环境变量指定在Shell提示符显示当前的工作目录,则不断地使用cd切换目录之后,可能会忘记当前所在的目录是哪里,例如在:/usr/bin和/usr/local/bin。一般Shell提示符只显示最后的目录名称bin/,所以会对所在目录产生混淆,因此可以随时用pwd命令了解当前的工作目录/usr/X11R6/bin.显示当前工作目录为/usr/X11R6/bin
4.cp ,rm, mv,mkdir 命令
英文原义:copy,remove,move, make directory (复制、删除、移动文件,创建目录)
执行权限:all user
语法:cp -afpx [源文件或目录][目地文件或目录]
-a archive的意思相当于-dpR,也就是复制所有目录并包括子目录
-f 强制复制文件
-p 保留原始文件的日期
-x 指定文件复制后属于目的磁盘的文件系统,如:ext2->fat32
语法:rm -irf[文件或目录]
-r 删除目录及其下的所有目录内容
-f 强制删除
-i 交互模式,删除前再做一次确认
语法:mv –if [源文件或目录][目地文件或目录]
5.1n命令
英文原义:link (产生连接文件)
执行权限:All User
语法:ln –s [源文件][目录文件] ( -s symbolic link, 符号连接)
示例:ln –s /bin/less /usr/local/bin/less
说明:当需要在不同的目录用到相同的文件时,不需要在每一个需要的目录下都放一个相同的文件,只要在某个固定的目录中,放上该文件,然后在其他的目录用ln命令连接它即可,不必重复占用硬盘空间而节约磁盘空间。
二、 文件权限管理命令
1.chmod命令
英文原义:change file or directory’s mode(改变文件或目录的权限)
执行权限:All User
语法:chmod -R [mode=4,2,1 or{a,u,g,o}{+,-,=,}{r, w, x, s,t}][文件或目录]
示例:$chmod a+r stuff
$chmod 755 file
说明: Linux将文件的权限分成Readable(r)、Writable(w)、executable(x)、Set User’ID即Setuid(s)、Set Group ID即Set gid(s)、Sticky bit(t),而将文件的用户分成所有用户All(a)、所有者用户User(u)、同组用户Group(g)、其它用户Other(o)等四种。可以使用chmod加上这些代号规范文件权限。第一个示例赋予所有用户对stuff有读的权利。第二个示例赋予所有者对file文件可读可写可执行,同组用户和其他用户可读可执行的权利而没有改写的权利。
2.chown命令
英文原义:Change file or directory's Owner(改变文件或目录的所有者)
执行权限:All User
语法:chown –R [用户][.[群组]][文件或目录]
功能描述:改变文件或目录的所有者
3. chgrp命令
英文原义:Change file or directory's Group(改变文件或目录的所属群组)
执行权限:All User
语法:chgrp –R [文件或目录]
三、文件查找命令
1.whereis命令
英文原义:where is file? (显示文件或目录的所在位置)
执行权限:All User
语法:whereis [文件或目录]
2.find命令
英文原义:find (查找文件或目录)
执行权限:A11 User
语法.find[查找路径][查找关键字][表答式]
-type 指定查找文件的文件类型,如下:
o block (buffered) special
c characher (unbuffered,special)
d directiry
p named pipe(FIF0)
i regular file
1 symbolic link
s socket
-gid n 指定查找群组id为n的文件
-group grpname 指定查找群组名称为grpname的文件
-iname ‘filename’ 指定查找与filename类似的所有文件
另外还可以使用通配符,例如:
find ./ -iname ‘f*’ -print 当前目录下查找所有以f开头的文件名
find ./ -iname ’c??’-print 当前目录下查找以c开头且后面有两个字节的文件名
说明:-name和-iname选项类似,差别在于-name会区分大小写,-iname和-ignore则
不区分大小写。-iname查找文件为连接文件的文件或目录
四、 磁盘管理命令
1. df,du命令
英文原义:disk filesystem space usage (显示文件系统)
disk file space usage (显示文件使用的空间大小)
执行权限:All User
语法:df –km, du -sbkm
-b bytes
-k kilobytes
-m megabytes
-s summarize
示例:$df
Filesystem 1k-blocks Used Available Use% Mounted On
/dev/hddl 796033 250353 504556 33% /
/dev/hdd5 1190014 882595 245933 78% /usr
/dev/hdd6 796033 421213 333696 56% /home
/dev/hdd7 199047 130048 58719 69% /var
/dev/hdal 2044240 1281436 762804 63% /win98
示例:$du –h
2.8M 表示当前子目录下所有的文件和目录占用2.8M空间。
2. mount umount命令
英文原义:mount/umount a filesystem(挂载/拆除文件系统)
执行权限:root
语法:mount –a-t fstype -o[options] 设备名称 目录名称
-a mount定义在/etc/fstab中的所有分区
-t 指定文件系统格式(ext2,msdos,vfat,is09660 …)
-o 指定loop device umount目录名称(mount point)
说明:Linux使用磁盘的方式是必须将这些设备挂在系统的某一个目录,才可能让用户存取。若是Linux系统没有挂载,用户无法直接对硬盘设备操作,所以mount命令非常重要。硬盘的设备驱动为 dev/hda1或/dev/hdb5,具体的符号需查询,如用df显示文件系统。需要注意的是,只有root用户才有此权限。
例如,把U盘挂载到/mnt/usb下,可以用以下命令;注意:在使用U盘前,必须先挂载好U盘。
#mount /dev/sda1 /mnt/usb
五、 程序管理命令
1. ps,kill命令
英文原义:process status, kill process(显示线程状态,删除线程)
执行权限:All User
语法:ps aux
a显示所有用户的线程
u显示用户名称
x显示不由tty控制的线程
kill(-HUP or -1) –9 <PID>
-HUP or-1重新启动某个线程
-9强制删除线程
说明:执行ps时,加的选项前面不需要“-”,请特别注意! aux选项可以显示出系统当前的所有线程
2. top 命令
英文原义:display top CPU processes
执行权限:All User
语法:top
说明: 除了使用ps监视系统执行程序外,可以使用top同时监视系统效能与执行程序。
六、 显示文本文件与字符串查找命令
1. cat,more,less命令
英文原义:concatenate,file perusal filter,opposite of more (显示文件内容)
执行权限:A11 User
语法:cat:[文件或输出],more [文件或输出],less[文件或输出]
示例:$cat filel file2>file3
说明:上述命令将file1,file2的内容一起输出到file3中,达到合并文件的效果。另外,more和less功能是一样的,都可以一页页地查看命令输出或内容的文件内容。唯一的不同在于less可以做上下卷轴的操作,而more就只能向下输出内容,不能再回头输出已经出现过的内容。
2. grep命令
英文原义:GNU regular expression print (查找字符串)
执行权限:All User
语法:grep [pattern] [文件或输出]
示例:$grep world file.txt (查找file.txt中含有world关键字的内容)
$grep -e “HellO World!” file.txt (查找file.txt中含有Hello World!字符串的内容)
$grep -c world file.txt (计算“world”在file.txt中出现的次数)
七、 压缩与解压缩命令
1. gzip命令
英文原义:GNU zip (使用Lempel-Ziv coding-LZ77技术压缩文件)
执行权限:All User
语法:gzip [选项][-19r][文件]
-1表示快速压缩
-9表示最佳状况压缩
-r 压缩时包含所有子目录
2.gunzip命令
英文原义:GNU unzip (解压缩以gzip压缩的.gz文件)
执行权限:A1l User
语法:gunzip:[选项][-r] [文件或目录]
说明:使用gzip –d -r filename.gz和gunzip –r filename.gz功能一样,-d是decompress的意思)。
3.tar命令
英文原义:tar (压缩文件目录)
执行权限:All User
语法:tar [选项][zcvf][文件或目录]
-z 使用gzip压缩.tar文件
-c 产生一个tar文件
-v 观看压缩过程
-f 指定压缩成的文件(或压缩到磁带设备)
-x 解压
说明:一般都是最先的四个选项zcvf全加,这样马上可以将一个目录下所有的文件压缩成一个压缩文件。压缩后文件格式:.tar.gz or .tgz。tar的功能和其他压缩工具不太一样,tar可将一个目录所有的文件压缩成一个文件,但是tar没有空间压缩的功能。因此大家用tar都会配合gzip一起使用,以达到前面介绍gzip时的压缩目录需求——将一个目录下所有的文件压成一个压缩文件。
八、 vi 编辑器
vi 是Linux/Unix 世界里极为普遍的全屏幕文本编辑器,几乎可以说任何一台Linux/Unix 机器都会提供这个软件。
vi 有三种状态,即编辑方式、插入方式和命令方式。
在命令方式下,所有命令都要以:开始,所键入的字符系统均作命令来处理,如:q 代表退出,:w 表示存盘。当你进入vi 时,会首先进入的是命令方式(同时也是编辑方式)。按下i就进入插入方式(i 表示insert),用户输入的可视字符都会添加到文件中,显示在屏幕上。按下ESC 就可以回到命令状态(同时也是编辑方式)。
编辑方式和命令方式类似,都是要输入命令,但它的命令不要以:开始,它直接接受键盘输入的单字符或组合字符命令,例如直接按下u 就表示取消上一次对文件的修改,相当于WINDOWS 下的Undo 操作。编辑方式下有一些命令是要以/开始的,例如查找字符串就是:/string 则在文件中匹配查找string 字符串。在编辑模式下按下:就进入命令方式。
基本操作
1)光标命令
k、j、h、l——上、下、左、右光标移动命令。虽然你可以在Linux中使用键盘右边的4 个光标键,但是记住这4 个命令还是非常有用的。这4 个键正是右手在键盘上放置的基本位置。
nG——跳转命令。n 为行数,该命令立即使光标跳到指定行。
Ctrl+G——光标所在位置的行数和列数报告。
w、b——使光标向前或向后跳过一个单词。
2)编辑命令
i、a、r——分别代表在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。
cw、dw——分别代表改变(置换)/删除光标所在处的单词的命令(c=change、d=delete)。
x、d$、dd——分别代表删除一个字符、删除光标所在处到行尾的所有字符以及删除整
行的命令。
3) 查找命令
---- /string、?string——分别代表从光标所在处向后或向前查找相应的字符串的命令。
4) 复制命令
---- yy、p——分别代表拷贝一行到剪贴板或取出剪贴板中内容的命令。
文件操作
无论是开启新文档或修改旧文件,都可以使用vi,所需指令为:
$ vi filemane
如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在创建新文件。如果文件已经存在,vi 则会显示文件的首24行,用户可再用光标(cursor)上下移动。
~
~
上面是一个经vi 开启的模拟文件,一行开始处的波折号(~)表示文件的结尾。
—指令i 在光标处插入正文
—指令I 在一行开始处插入正文
—指令a 在光标后追加正文
—指令A 在行尾追加正文
—指令o 在光标下面新开一行
—指令O 在光标上面新开一行
在插入方式下,不能打入指令,必需先按〈Esc〉键,返回命令方式后才行。假若用户不知身处何态,也可以按〈Esc〉键,不管处于何种状态,都会返回命令方式。
在修改文件时,如何存档及退出指定文件都非常重要。在vi 内,行使存档或退出的指令时,要按〈Esc〉键回到命令方式后,再按冒号(:),改变为命令接受方式,用户就可以看见在荧幕左下方,出现冒号(:),显示vi 已经改为指令状态,可以进行存档或退出等工作。
:q!放弃任何改动而退出vi,也就是强行退出
:w 存档
:w! 对于只读文件强行存档
:wq 存档并退出vi
:x 与wq 的工作一样
:zz 与wq 的工作一样
删除正文
删除或修改正文都是利用编辑方式,故此,下面所提及的指令只需在编辑方式下,直接键入指令即行。
x 删除光标处字符(Character)
nx 删除光标处后n 个字符
nX 删除光标处前n 个字符
ndw 删除光标处下n 个单词(word)
dd 删除整行
d$或D 删除由光标处至该行行尾
u 恢复前一次所做的删除(即类似windows 中的undo操作)
修改正文
当使用vi 修改正文,加减字符时,就会采用另一组在编辑方式下操作的指令。
r char 由char 代替光标处的字符
Rtext〈Esc〉由text 代替光标处的字符
cwtext〈Esc〉由text 取代光标处的单词
Ctext〈Esc〉由text 取代光标处至该行结尾处
cc 使整行空白,但保留光标位置,让你开始打入
—如删除指令一样,在指令前打入的数,表示执行该指令多少次。
检索文件
要检索文件,必需在编辑方式下进行:
/str〈Return〉向前搜寻str 直至文件结尾处
?str〈Return〉往后搜寻str 直至文件开头
n 同一方向上重复检索
N 相反方向上重复检索
vi 缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。
全程替换
:%s/string1 /string2/g 在整个文件中替换“string1”成“string2”。如果要替换文件中的路径:使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin 换成/bin。也可以使用命令“:%s/\/usr\/bin/\/bin/g”实现,其中“\”是转义字符,表明其后的“/”字符是具有实际意义的字符,而不是分隔符。
其它操作
同时编辑2 个文件,假如要拷贝一个文件中的文本并粘贴到另一个文件中,命令如下:
---- vi file1 file2
---- yy 在文件1 的光标处拷贝所在行
---- :n 切换到文件2 (n=next) 或者按ctrl+ww,就在两个文件间切换。
---- p 在文件2 的光标所在处粘贴所拷贝的行
---- :n 切换回文件1
将文件中的某一部分修改保存到临时文件,例如仅仅把第20~59 行之间的内容存盘成文件/tmp/1,我们可以键入如下命令。
---- vi file
---- :20,59w /tmp/1
如果要在vi 执行期间,转到shell 执行,使用惊叹号(!)执行系统指令,例如在vi 期间,列出当前目录内容,可以键入:
:!ls
另一方面,用户可以在主目录中创建.exrc 环境文件,用set打入选项,每次调用vi 时,就会读入.exrc 中的指令与设置。下面是.exrc 环境文件的实例:
set wrapmarging=8
set showmode
set autoindent
九、 man 在线帮助系统
man,info命令
英文原义:manual,information(查找帮助手册,查找帮助信息)
执行权限:All User
语法:man[任何关键字],info[任何关键字]
说明:任何命令或重要文件都可以使用man来查询使用方法,这也是Linux最可爱之处和最完整的在线查询系统。通常man在介绍一个命令的格式时,是按照:
NAME (命令名称)
SYNOPSIS (语法)
DESCRIPTION (描述)
OPTIONS (选项)
用以上四大部分来介绍一个命令,然后会有几个示例教用户如何使用该命令。不过需要注意的是,最后面可能还会出现SEE ALSO的信息,例如:
SEE ALSO vi(1) less(1) ls(1L)。
这是说请再参考别的命令帮助的意思,命令后面括号里的数字是代表第几节的意思。如vi(1)是代表vi这个命令帮助的第一节,可执行下面的命令读取:
man 1 vi
而less(1)和ls(1L)也是用相同的方式man 1 less或man 1L ls查找在线信息。至于man的文件放在哪里,执行manpath命令就会告诉用户完整的MAN PATH,例如:
/usr/man; /usr/X11R6/man; /usr/local/man; /usr/lib/perl5/man;
man固然是最强大的在线查询工具,但对于想打印出来阅读的用户就有点麻烦了,因为man的格式不是一般的Text文件,用户并不能直接读取存放/usr/man、/usr/X11R6/man下的文件,必须靠man才能阅读,这里提供一个命令可将man转成一般的Text file,这样就可以使用任何的Editor来读取man文件。
$man ls | col -b>ls.Txt
还有一个非常有用的命令man2html可以将man在线帮助文件装换为html格式的超文本。 而除了man之外,类似的在线查询工具还有info这个命令,它的用法与man一样。当使用man查询不到某命令或设置文件的相关信息时,可以改用info试试看。