二、Linux的基本操作
2.1、Linux的文件权限和目录配置
2.1.1、Linux文件属性
以root身份登录后,执行“ls –al”将会出现如下内容:
[[email protected] ~]# ls -al 总用量 44 dr-xr-x---. 5 root root 4096 8月 6 14:44 . dr-xr-xr-x. 17 root root 4096 7月 25 05:33 .. -rw-------. 1 root root 1426 7月 25 05:35 anaconda-ks.cfg -rw-------. 1 root root 431 8月 6 11:13 .bash_history -rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout -rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile -rw-r--r--. 1 root root 176 12月 29 2013 .bashrc drwx------. 4 root root 29 8月 6 10:23 .cache drwxr-xr-x. 3 root root 17 8月 6 10:23 .config -rw-r--r--. 1 root root 100 12月 29 2013 .cshrc drwx------. 3 root root 24 7月 24 21:39 .dbus -rw-r--r--. 1 root root 1474 7月 24 21:53 initial-setup-ks.cfg -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc -rw-------. 1 root root 66 8月 6 14:44 .xauthqxoZZ4 |
从上述可以看出,共有七列数据,下面将一一讲述
u 第一列代表文件的类型与权限
第一列共有10个字符,第一列代表这个文件是“目录、文件或链接文件等”
l 若是[d]则表示目录
l 若是[-]则表示文件
l 若是[l]则表示链接文件
l 若是[ b ]则表示为装置文件里面的可供储存的接口设备
l 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
接下来的字符中,以三个为一组,且均为[rwx]的三个参数的组合, [ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute) 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]。
l 第一组:文件拥有者的权限
l 第二组:同群组的权限
l 第三组:其他非本用户组的权限
u 第二列表示有多少个文件名链接到此节点
记录有多少不同的档名连结到相同的一个i-node,一般来说,若是文件则为1,若是文件夹(目录)则表示其下文件和目录的个数。
u 第三列表示文件(或目录)的拥有者
u 第四列表示文件的所属群组
u 第五列表示文件的容量大小(默认单位为bytes)
u 第六列表示文件的建档日期或者是最近的修改日期
u 第七列表示文件的全路径及其文件名
2.1.2、文件属性和权限更改
Linux文件属性和权限的更改主要通过以下几个命令来实现:
(1)chgrp:更改文件所属用户组
(2)chown:更改文件拥有者
(3)chmod:改变文件的权限
u 改变所属用户组:chgrp
[[email protected] tmp]# ls -al dir 总用量 4 drwxrwxr-x. 3 www1234 www1234 32 8月 6 15:14 . drwxrwxrwt. 25 root root 4096 8月 6 15:14 .. drwxrwxr-x. 3 www1234 www1234 17 8月 6 15:13 dir2 -rwxrw-rw-. 1 www1234 www1234 0 8月 6 15:13 file.txt |
从上可以看出,dir2和file.txt文件是属于www1234用户组。
[[email protected] tmp]# chgrp user -R dir [[email protected] tmp]# ls -al dir 总用量 4 drwxrwxr-x. 3 www1234 user 32 8月 6 15:14 . drwxrwxrwt. 25 root root 4096 8月 6 15:15 .. drwxrwxr-x. 3 www1234 user 17 8月 6 15:13 dir2 -rwxrw-rw-. 1 www1234 user 0 8月 6 15:13 file.txt |
u 改变文件所有者:chown
[[email protected] tmp]# chown user1 -R dir [[email protected] tmp]# ls -al dir 总用量 4 drwxrwxr-x. 3 user1 user 32 8月 6 15:14 . drwxrwxrwt. 25 root root 4096 8月 6 15:22 .. drwxrwxr-x. 3 user1 user 17 8月 6 15:13 dir2 -rwxrw-rw-. 1 user1 user 0 8月 6 15:13 file.txt |
关于文件的复制cp
复制行为会复制执行者的属性与权限,通过以下例子可以理解:
[[email protected] tmp]# ls -al /home/www1234/file.txt -rwxrw-r--. 1 www1234 www1234 0 8月 6 15:13 /home/www1234/file.txt [[email protected] tmp]# cp /home/www1234/file.txt /home/user1/file.txt [[email protected] tmp]# su user1 [[email protected] tmp]$ ls -al /home/user1/file.txt -rwxr--r--. 1 root root 0 8月 6 15:36 /home/user1/file.txt |
从上表看出,用户www1234文件file.txt的用户所有者,所属用户组均为www1234,而执行复制的操作的执行者是root用户,所以复制的文件属于root用户所有,文件的读写属性也发生了变化。
u 改变权限:chmod
数字类型改变权限:r:4,w:2,x:1
每种身份(owner、group、others)各自的三个权限(r、w、x)分数是需要累加的。
例如:[-rwxr-x---]
owner:rwx=4+2+1=7
group:r-x=4+1=5
others: ---=0+0+0=0
改变main.c的权限:
chmod 777 main.c 权限变为[-rwxrwxrwx]
Ø 权限对文件的意义:
l r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
l w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
l x (execute):该文件具有可以被系统执行的权限.
在Windows底下一个文件是否具有执行的能力是藉由扩展名来判断的, 例如:.exe, .bat, .com 等等
在Linux底下,我们的文件是否能被执行,则是藉由是否具由x这个权限来决定的!跟档名是没有绝对的关系的。
Ø 权限对目录的意义:
l r (read contents in directory):
表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据. 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
l w (modify contents of directory):
建立新的文件与目录;
删除已经存在的文件与目录(不论该文件的权限为何)
将已存在的文件或目录进行更名;
搬移该目录内的文件、目录位置.
l x (access directory):
用户具备进入该目录成为工作目录的权限
2.1.3、Linux目录配置
Linux目录结构
目录 |
应存放文件内容 |
/bin |
系统启动时需要的执行文件(二进制) |
/boot |
这个目录主要放置开机时会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等 |
/dev |
在Linux系统上任何设备和接口设备都是以文件的形式存放在系统目录的。只要通过访问目录下的某个文件就等于访问某个设备。 |
/etc |
系统的主要配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的起始文件等。一般来说,这个目录下的各文件属性是可以让一般用户查阅的,但只有root用户有修改权力。 |
/home |
这是系统默认的用户主文件夹。在你创建一个一般用户账户时,默认的主文件夹都会规范到这里。~:代表当前这个用户的主文件夹,~dmtsal:代表dmtsal用户的主文件夹 |
/lib |
系统的函数库非常多,而/lib放置则是开机时会用到的函数库,以及/bin或/sbin下面的命令或调用的函数库 |
/media |
/media下面放置的是可删除的设备,包括软盘、 光盘、DVD等设备都挂载于此。常见的文件名有/media/floppy,/media/cdrom等。 |
/mnt |
如果你想暂时挂载某些额外设备,一般可以放置到这个目录中。 |
/opt |
给主机额外安装软件所摆放的目录,第三方软件安放的目录。以前的 Linux 系统中,习惯放置在 /usr/local 目录下 |
/root |
系统管理员的主文件夹 |
/sbin |
可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行 |
/svr |
服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内 |
/tmp |
这是让一般用户或者是正在执行的程序暂时放置文件的地方。这个目录是任何人都能访问的,但一般开机后都会对/tmp下的数据进行删除。 |
/proc |
此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等 |
/lost+fount |
统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found |
/sys |
这个目录和/proc非常相似,也是一个虚拟文件系统,主要记录与内核相关的信息。包括目前已加载的内核模块与内存检测到的硬件设备信息等。这个目录同样不占硬盘容量。 |
/usr:应用程序存放目录,所以系统默认的软件都会放到/usr目录下,这个目录有点类似于windows系统中的“C:\Windows\”和“C:\Program files\”这两个目录的综合体,系统刚安装完毕,系统会占用最多的硬盘容量。
目录 |
应存放文件内容 |
/usr/X11R6 |
该目录用于保存运行X-Window所需的所有文件。该目录中还包含用于运行GUI要的配置文件和二进制文件。 |
/usr/bin/ |
这个目录是可执行程序的目录,普通用户就有权限执行; 当我们从系统自带的软件包安装一个程序时,他的可执行文件大多会放在这个目录 |
/usr/sbin/ |
非系统正常运行所需要的系统命令。最常见的就是某些网络服务器软件的命令 |
/usr/include/ |
C/C++等程序语言的头文件与包含文件的放置处,当我们以tarball方式(*.tar.gz的安装方式安装软件)安装某些数据时,会使用到里面的很多头文件。 |
/usr/lib/ |
包含各应用软件的函数库、目标文件,以及不被用户惯用的执行文本或脚本 |
/usr/local/ |
系统管理员在本机自行安装自己下载的软件时,建议安装到此目录,这样比较方便管理。 |
/usr/share/ |
系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,是用户都共用的。 |
/usr/src |
是内核源码存放的目录 |
/var:
/usr是安装时会占用较大硬盘容量的目录,/var是在系统运行后才会逐渐占用硬盘容量的目录。/var目录主要针对常态性变动的文件,包括缓存(cache)、登录文件(logfile)以及某些软件运行所产生的文件,包括程序文件(lock file,run file)或者mysql数据库文件。
目录 |
应存放文件内容 |
/var/cache |
应用程序本身运行过程中会产生的一些缓存文件 |
/var/lock/ |
某些设备或者某些文件资源一次只能被一个应用程序所使用,如果同时两个应用程序使用设备时,就有可能产生一些错误的状况,就需要对设备进行上锁。 |
/var/log/ |
随时更改的日志文件 |
/var/mail/ |
放置个人电子邮件的目录,不过这个目录也被放置到/var/spool/mail目录中,通常这两个目录互为连接文件 |
/var/run |
某些程序启动后,它会将它们的PID放置在这个目录 |
/var/spool/ |
这个目录通常放置一些队列数据 |
2.1.4、绝对路径与相对路径
u 绝对路径:由跟目录(/)开始写起的文件名或目录名称
u 相对路径:相对于目前路径文件名的写法
u . :表示当前目录,也可以使用./代替
u .. :表示上一层目录,也可以用../来表示。
2.2、文件的压缩与打包
在Linux的环境中,压缩文件的扩展名多为*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2。下面列出几个常见文件的扩展名及压缩工具。
扩展名 |
压缩工具 |
*.z |
compress程序压缩的文件 |
*.gz |
gzip程序压缩的文件 |
*.gz2 |
bzip2程序压缩的文件 |
*.tar |
tar程序打包的数据,并没有压缩过 |
*.tar.gz |
tar程序打包的文件,其中经过gzip的压缩 |
*.tar.gz2 |
tar程序打包的文件,其中经过bzip2的压缩 |
u compress与uncompress
compress [-rcv] 文件或目录 uncompress 文件.Z
参数 |
含义 |
-r |
可以将连同目录下的文件也同时给予压缩 |
-c |
将压缩的结果显示 |
-v |
可以显示出压缩后的文件信息以及压缩过程中一些文件名变化 |
示例:
在/tmp目录下有manpath.config文件: -rw-r--r-- 1 root root 5173 4月 10 2014 manpath.config [email protected]:/tmp# compress -v manpath.config manpath.config: -- replaced with manpath.config.Z Compression: 48.54% 压缩后的结果: -rw-r--r-- 1 root root 2662 8月 7 08:47 manpath.config.Z 再对其解压后: [email protected]:/tmp# uncompress manpath.config.Z -rw-r--r-- 1 root root 5173 8月 7 08:47 manpath.config |
从上可以看出,压缩后文件明显变小,同时你也会发现,采用以上命令无论是压缩还是解压,在目录下的源文件都将消失,而新文件将会被创立。可采用如下命令保留源文件:
compress -c manpath.config>manpath.config.Z
uncompress -c manpath.config.Z>manpath.config1
compress已经很少人使用,这个程序无法打开*.gz文件,而gzip可以解压*.Z文件
u gzip与zcat
gzip是使用最为广泛的压缩命令,它可以解压compress、zip与gzip等软件所压缩的文件。
gzip [-cdtv#] 文件名 zcat文件名.gz(读取文件数据)
参数 |
含义 |
-c |
将压缩的数据输出到屏幕上,可通过数据流重定向来处理 |
-d |
解压缩的参数,gzip –d 待解压的文件 |
-t |
可以用来检验一个压缩文件的一致性,看看文件有无错误 |
-v |
可以显示出原文件/压缩文件的压缩比等信息 |
-# |
压缩等级,-1最快,但是压缩比差,-9最慢但是压缩比好,默认是-6 |
与compress类似,当使用gzip进行压缩时,在默认状态下原本的文件会被压缩成为gz文件,原本的文件就不再存在。gzip的压缩比比compress好的多,使用gzip压缩的文件,在windows系统中可以通过WinRAR来解压、
[email protected]:/tmp# gzip -v manpath.config manpath.config: 62.3% -- replaced with manpath.config.gz [email protected]:/tmp# gzip -c manpath.config>manpath.config.gz gzip -d manpath.config.gz |
u bzip2
bzip2 [-cdkzv#] 文件名
参数 |
含义 |
-c |
将压缩的数据输出到屏幕上 |
-d |
解压缩的参数,bzip2 –d 待解压的文件 |
-k |
保留源文件,而不删除原始的文件 |
-z |
压缩的参数 |
-v |
可以显示出原文件/压缩文件的压缩比等信息 |
-# |
压缩等级,-1最快,但是压缩比差,-9最慢但是压缩比好,默认是-6 |
bzip2压缩所产生的文件扩展名为bz2,。
[email protected]:/tmp# bzip2 -z manpath.config [email protected]:/tmp# bzip2 -d manpath.config.bz2 [email protected]:/tmp# bzip2 -zk manpath.config |
u 打包命令:tar
gzip、bzip2大都针对单一文件来进行压缩,虽然gzip和bzip2也能针对目录来进行压缩,,不过这两个命令对目录的压缩指的是将目录的所有文件“分别“进行压缩,而不是打包。tar可以将多个文件或目录打包成一个大文件,同时还可以通过gzip和bzip2的支持对文件进行压缩或解压缩。
tar [-j | -z] [cv][-f 文件名] filename 打包与压缩
tar [-j | -z] [tv][-f 文件名] 查看文件名
tar [-j | -z][xv][-f文件名] [-C 目录] 解压缩
参数 |
含义 |
-c |
新建打包文件,可结合-v来查看被打包过程中的文件名 |
-t |
查看打包文件内容包含哪些文件名,重点在查看文件名 |
-x |
解压缩或解打包的功能,-C在特定目录中打开 |
-j |
通过bzip2的支持进行压缩或解压缩,此时文件扩展名最好为*.tar.bz2 |
-z |
通过gzip的支持进行压缩或解压缩,此时文件扩展名最好为*.tar.gz |
-v |
在压缩或解压缩过程中,将正在处理的文件名显示出来 |
-f filename |
-f后面接被处理的文件名 |
-C 目录 |
这个参数用在解压时,在特定目录解压时可以用这个参数 |
l 压缩:tar –jcvf filename.tar.bz2 要被压缩的文件或目录名称
l 查看:tar –jtvf filename.tar.bz2
l 解压:tar –jxvf filename.tar.bz2 –C 预解压的目录
2.3、Linux的文件与目录管理
2.3.1、目录的操作
(1)cd : 切换目录
(2)pwd: 显示当前目录
(3)mkdir:新建一个目录
(4)rmdir:删除一个空的目录
mkdir用法:
参数 |
含义 |
-p |
创建多层目录,递归创建目录 |
-m |
配置文件目录的权限 |
eg: mkdir –p test/test1/test2/test3 mkdir –m 777 test
2.3.2、文件与目录管理
u 查看文件与目录:ls
ls [选项] [目录名]
参数 |
含义 |
-a |
列出目录下的所有文件,包括以 . 开头的隐含文件 |
-A |
列出全部的文件(连同隐藏文件,但不包括 . 与 .. 这两个目录 |
-d |
仅列出目录本身,而不是列出目录内的文件数据 |
-f |
直接列出结果,而不进行排序(ls默认会以文件名排序) |
-F |
根据文件、目录等信息给予附加数据结果,例如:*:代表可执行文件;/:代表目录;=:代表socket文件;|:代表FIFO文件 |
-h |
将文件以人类易读的方式(例如GB,KB等)列出来 |
-i |
列出inode号码 |
-l |
列出长数据串,包含文件的属性和权限等数据 |
-n |
列出UID与GID。而非用户与用户组的名称 |
-r |
将排序结果反向输出,例如:原本文件名由小到大,反向则是由大到小 |
-R |
连同子目录内容一起列出来 |
-S |
以文件容量大小排序,而不是文件名排序 |
-t |
以时间排序,而不是文件名 |
--color=never |
不要依据文件特性给予颜色显示 |
--color=always |
显示颜色 |
--color=auto |
让系统自行依据设置来判断是否显示颜色 |
--full-time |
以完整时间模式(包括年、月、日、时、分)输出 |
u 复制、删除、移动:cp rm mv
l cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [option] source1 source2 source3 .. direction
参数 |
含义 |
-a |
相当于-pdr的意思 |
-d |
若源文件为连接文件的属性,则复制连接文件属性而非文件本身 |
-f |
为强制的意思,若目标文件已经存在且无法开启,则删除后再尝试一次 |
-i |
若目标文件已经存在时,在覆盖前会先询问操作的进行 |
-l |
进行硬连接的连接文件创建,而非复制文件本身 |
-p |
连同文件的属性一起复制过去,而非使用默认属性 |
-r |
递归持续复制,常用于目录的复制 |
-s |
复制成为符号连接文件,即快捷方式 |
l rm [-fir] 文件或目录
参数 |
含义 |
-f |
强制的意思,忽略不存在的文件,不会出现警告信息 |
-i |
互动模式,在删除前会询问用户是否操作 |
-r |
递归删除,常用于目录的删除 |
l mv [-fiu] source destination
mv [options] source1 source2.... direction
参数 |
含义 |
-f |
强制的意思,如果目标文件已经存在,不会询问而直接覆盖 |
-i |
若目标文件已经存在时,会询问是否覆盖 |
-u |
若目标文件已经存在,且source比较新时,才会更新update |
2.3.3、文件内容查阅
u cat:由第一行开始显示文件内容
cat [-AbEnTv] 文件
参数 |
含义 |
-A |
相当于-vEt的整合参数,可列出一些特殊的字符,而不是空白 |
-b |
列出行号,针对非空白行的行号显示,空白行不标行号 |
-E |
将结尾的断行字符$显示出来 |
-n |
打印出行号,连同空白行也会有行号 |
-T |
将Tab键以^I显示出来 |
-v |
列出一些看不出来的特殊字符 |
示例:
[email protected]:/home/www1234# cat /etc/issue Ubuntu 14.04.1 LTS \n \l [email protected]:/home/www1234# cat -n /etc/issue 1 Ubuntu 14.04.1 LTS \n \l 2 [email protected]:/home/www1234# cat -A /etc/issue Ubuntu 14.04.1 LTS \n \l$ $ |
u tac:从最后一行开始显示文件内容
[email protected]:/home/www1234# tac /etc/issue Ubuntu 14.04.1 LTS \n \l |
u nl:显示的时候顺便输出行号
nl [-bnw] 文件
参数 |
含义 |
-b |
指定行号的指定方式,主要有两种: -b a :无论是否为空行,同样显示出行号 -b t:如果有空行,空的那一行不要显示出行号(默认) |
-n |
-n 1n:行号在屏幕的最左方显示 -n rn:屏幕在自己字段的最右方显示,且不加0 -n rz:屏幕在自己字段的最右方显示,且加0 |
-w |
行号字段占用位数 |
示例:
[email protected]:/home/www1234# nl /etc/issue 1 Ubuntu 14.04.1 LTS \n \l [email protected]:/home/www1234# nl -b a /etc/issue 1 Ubuntu 14.04.1 LTS \n \l 2 [email protected]:/home/www1234# nl -b a -n rz /etc/issue 000001 Ubuntu 14.04.1 LTS \n \l 000002 [email protected]:/home/www1234# nl -b a -n rz -w 3 /etc/issue 001 Ubuntu 14.04.1 LTS \n \l 002 |
u more:一页一页地显示文件内容
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
参数 |
含义 |
-num |
一次显示的行数 |
+num |
从第 num 行开始显示 |
-p |
不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 |
-s |
当遇到有连续两行以上的空白行,就代换为一行的空白行 |
常用操作命令
参数 |
含义 |
Enter |
向下n行,需要定义。默认为1行 |
Ctrl+F |
向下滚动一屏 |
空格键 |
向下滚动一屏 |
Ctrl+B |
返回上一屏 |
= |
输出当前行的行号 |
:f |
输出文件名和当前行的行号 |
V |
调用vi编辑器 |
! |
调用Shell,并执行命令 |
q |
退出more |
u less:与more类似,但比more更好的是能向前翻页
参数 |
含义 |
Enter |
滚动一页 |
pagedown |
向下翻动一页 |
空格键 |
滚动一行 |
pageup |
向上翻动一页 |
y |
向前滚动一行 |
u |
向前滚动半页 |
h |
显示帮助界面 |
d |
向后翻半页 |
q |
退出more |
b |
向后翻一页 |
/字符串 |
向下搜索"字符串"的功能 |
?字符串 |
向上搜索"字符串"的功能 |
n |
重复前一个搜索(与 / 或 ? 有关) |
N |
反向重复前一个搜索(与 / 或 ? 有关) |
u head:只看头几行
head [-n number] 文件
-n :后面接数字,代表显示几行的意思
[email protected]:/home/www1234# head /etc/manpath.config # manpath.config # # This file is used by the man-db package to configure the man and cat paths. # It is also used to provide a manpath for those without one by examining # their PATH environment variable. For details see the manpath(5) man page. # # Lines beginning with `#‘ are comments and are ignored. Any combination of # tabs or spaces may be used as `whitespace‘ separators. # # There are three mappings allowed in this file: [email protected]:/home/www1234# head -n 5 /etc/manpath.config # manpath.config # # This file is used by the man-db package to configure the man and cat paths. # It is also used to provide a manpath for those without one by examining # their PATH environment variable. For details see the manpath(5) man page. |
默认显示10行数据
u tail:只看尾几行
tail [-n number] 文件
-n :后面接数字,表示显示几行
[email protected]:/home/www1234# tail /etc/manpath.config # formatted for a terminal of the given width, regardless of the width of # the terminal actually being used. This should generally be within the # range set by MINCATWIDTH and MAXCATWIDTH. # #CATWIDTH 0 # #--------------------------------------------------------- # Flags. # NOCACHE keeps man from creating cat pages. #NOCACHE [email protected]:/home/www1234# tail -n 5 /etc/manpath.config # #--------------------------------------------------------- # Flags. # NOCACHE keeps man from creating cat pages. #NOCACHE |
u od:以二进制的方式读取文件内容
od [-t Type] 文件
-t后面可以接各种类型的输出:
参数 |
含义 |
a |
利用默认的字符来输出 |
c |
使用ASCII字符输出 |
d[size] |
使用十进制来输出数据,各个整数占size bytes |
f[size] |
使用浮点数来输出数据,各个数占size bytes |
o[size] |
使用八进制来输出数据,各个整数占size bytes |
x[size] |
使用十六进制来输出数据,各个整数占size bytes |
u touch:修改文件时间或创建新文件
touch [-acdmt] 文件
参数 |
含义 |
-a |
仅修改访问时间 |
-c |
仅修改文件的时间,若该文件不存在,则不创建新的文件 |
-d |
后面可以接欲修改的日期而不用目前的日期,也可以使用—date =”日期或时间” |
-m |
仅修改mtime |
-t |
后面可以接欲修改的时间而不用目前的时间,格式为(YYMMDDhhmm) |
示例:
[email protected]:/home/www1234# cd /tmp [email protected]:/tmp# touch testfile [email protected]:/tmp# ls -al testfile -rw-r--r-- 1 root root 0 8月 8 08:24 testfile [email protected]:/tmp# touch -t 0709150202 testfile [email protected]:/tmp# ls -al testfile -rw-r--r-- 1 root root 0 9月 15 2007 testfile |
2.3.4、命令与文件查询
u file:查看文件类型
用于查看文件的类型,举例说明
[email protected]:/home/www1234# file ~/.bashrc /root/.bashrc: ASCII text [email protected]:/home/www1234# file /usr/bin/passwd /usr/bin/passwd: setuid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=999e2f8579c0a26bd358b4d81416881c81a2ad8c, stripped [email protected]:/home/www1234# file /var/lib/mlocate/mlocate.db /var/lib/mlocate/mlocate.db: data |
u which(寻找“执行文件”)
which [-a] command
-a:将所有由path目录可以找出的命令均列出,而不是只列出第一个被找到的命令
[email protected]:/home/www1234# which which /usr/bin/which [email protected]:/home/www1234# which -a ifconfig /sbin/ifconfig |
u whereis(寻找特定文件)
whereis [-bmsu] 文件或目录名
参数 |
含义 |
-b |
只找二进制格式的文件 |
-m |
只找在说明文件manual路径下的文件 |
-s |
只找source源文件 |
-u |
查找不在以上3中选项以外的特殊文件 |
u locate
locate [-ir] keyword
参数 |
含义 |
-i |
忽略大小写的差异 |
-r |
后面可接正则表达式的显示方式 |
2.4、vi程序编辑器
u 进入vi的命令
命令 |
含义 |
vi filename |
打开或新建文件,并将光标置于第一行首 |
vi +n filename |
打开文件,并将光标置于第n行首 |
vi + filename |
打开文件,并将光标置于最后一行首 |
vi +/pattern filename |
打开文件,并将光标置于第一个与pattern匹配的串处 |
vi -r filename |
在上次正用vi编辑时发生系统崩溃,恢复filename |
vi filename....filename |
打开多个文件,依次进行编辑 |
u 光标移动、复制粘贴、查找
命令 |
含义 |
|
光标向左移动一个字符 |
|
光标向右移动一个字符 |
|
光标向上移动一个字符 |
|
光标向下移动一个字符 |
ctrl+f |
屏幕向下移动一页,相当于pagedown |
ctrl+b |
屏幕向上移动一页,相当于pageup |
0或Home |
移动到这一行最前面的字符处 |
$或End |
移动到这一行最后字符处 |
G |
移动到这个文件的最后一行 |
nG |
n为数字,移动到这个文件的第n行 |
gg |
移动到这个文件的第一行 |
N+Enter |
n为数字,光标向下移动n行 |
/word |
向下寻找一个名称为word的字符串 |
?word |
向上寻找一个名称为word的字符串 |
n |
n是英文按键,代表重复前一个查找操作 |
N |
N是英文按键,反向进行前一个查找操作 |
:n1,n2s/word1/word2/g |
在n1与n2行之间查找word1这个字符串,并用word2代替 |
:1,$s/word1/word2/g |
在1到最后一行之间查找word1这个字符串,并用word2代替 |
:1,$s/word1/word2/gc |
在1到最后一行之间查找word1这个字符串,并用word2代替。在进行替换之前需要用户确认 |
x,X |
在一行字当中,x为向后删除一个字符,X为向前删除一个字符 |
dd |
删除光标所在的那一行 |
ndd |
n为数字,删除光标所在向下n行 |
yy |
复制光标所在那一行 |
p,P |
p为将复制的数据在光标的下一行粘贴,而P则是在上一行粘贴 |
nyy |
n为数字,复制光标所在向下n行 |
u |
复原前一个操作 |
ctrl+r |
重做上一个操作 |
u 一般模式切换到编辑模式
按键 |
含义 |
i |
在光标前 |
I |
在当前行首 |
a |
光标后 |
A |
在当前行尾 |
o |
在当前行之下新开一行 |
O |
在当前行之上新开一行 |
ESC |
退出编辑模式,进入一般模式 |
u 命令行模式
按键 |
含义 |
:w |
将编辑的数据写入硬盘文件中 |
:w! |
若文件属性为“只读”时,强行写入该文件,到底能不能写入,还看你对文件的权限 |
:q |
离开vi |
:q! |
强制离开,不保存文件 |
:wq |
保存后离开,若为:wq!则为强制保存后离开 |
:w filename |
将编辑的数据保存为另一个文件,类似于另存文件 |