码迷,mamicode.com
首页 > 系统相关 > 详细

Linux的文件权限和目录配置

时间:2016-08-08 22:37:39      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

二、Linux的基本操作

2.1、Linux的文件权限和目录配置

2.1.1、Linux文件属性

以root身份登录后,执行“ls –al”将会出现如下内容:

[root@localhost ~]# 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

从上述可以看出,共有七列数据,下面将一一讲述

第一列代表文件的类型与权限

第一列共有10个字符,第一列代表这个文件是“目录、文件或链接文件等”

若是[d]则表示目录

若是[-]则表示文件

若是[l]则表示链接文件

若是[ b ]则表示为装置文件里面的可供储存的接口设备

若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

接下来的字符中,以三个为一组,且均为[rwx]的三个参数的组合, [ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute) 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]。

第一组:文件拥有者的权限

第二组:同群组的权限

第三组:其他非本用户组的权限

第二列表示有多少个文件名链接到此节点

记录有多少不同的档名连结到相同的一个i-node,一般来说,若是文件则为1,若是文件夹(目录)则表示其下文件和目录的个数。

第三列表示文件(或目录)的拥有者

第四列表示文件的所属群组

第五列表示文件的容量大小(默认单位为bytes)

第六列表示文件的建档日期或者是最近的修改日期

第七列表示文件的全路径及其文件名

2.1.2、文件属性和权限更改

Linux文件属性和权限的更改主要通过以下几个命令来实现:

(1)chgrp:更改文件所属用户组

(2)chown:更改文件拥有者

(3)chmod:改变文件的权限

改变所属用户组:chgrp

[root@localhost 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用户组。

[root@localhost tmp]# chgrp user -R dir

[root@localhost 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

改变文件所有者:chown

[root@localhost tmp]# chown user1 -R dir

[root@localhost 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

复制行为会复制执行者的属性与权限,通过以下例子可以理解:

[root@localhost tmp]# ls -al /home/www1234/file.txt

-rwxrw-r--. 1 www1234 www1234 0 8   6 15:13 /home/www1234/file.txt

[root@localhost tmp]# cp /home/www1234/file.txt /home/user1/file.txt

[root@localhost tmp]# su user1

[user1@localhost 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用户所有,文件的读写属性也发生了变化。

改变权限: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]

Ø 权限对文件的意义:

r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;

w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);

x (execute):该文件具有可以被系统执行的权限.

在Windows底下一个文件是否具有执行的能力是藉由扩展名来判断的, 例如:.exe, .bat, .com 等等

在Linux底下,我们的文件是否能被执行,则是藉由是否具由x这个权限来决定的!跟档名是没有绝对的关系的。

Ø 权限对目录的意义:

r (read contents in directory):

表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据. 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

w (modify contents of directory):

建立新的文件与目录;

删除已经存在的文件与目录(不论该文件的权限为何)

将已存在的文件或目录进行更名;

搬移该目录内的文件、目录位置.

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、绝对路径与相对路径

绝对路径:由跟目录(/)开始写起的文件名或目录名称

相对路径:相对于目前路径文件名的写法

. :表示当前目录,也可以使用./代替

.. :表示上一层目录,也可以用../来表示。

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的压缩

compress与uncompress

compress [-rcv] 文件或目录    uncompress 文件.Z

参数

含义

-r

可以将连同目录下的文件也同时给予压缩

-c

将压缩的结果显示

-v

可以显示出压缩后的文件信息以及压缩过程中一些文件名变化

示例:

在/tmp目录下有manpath.config文件:

-rw-r--r--   1 root root     5173 4月 10 2014 manpath.config

root@www1234:/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

再对其解压后:

root@www1234:/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文件

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来解压、

root@www1234:/tmp# gzip -v manpath.config

manpath.config:       62.3% -- replaced with manpath.config.gz

root@www1234:/tmp# gzip -c manpath.config>manpath.config.gz

gzip -d manpath.config.gz

bzip2

bzip2 [-cdkzv#] 文件名

参数

含义

-c

将压缩的数据输出到屏幕上

-d

解压缩的参数,bzip2 –d 待解压的文件

-k

保留源文件,而不删除原始的文件

-z

压缩的参数

-v

可以显示出原文件/压缩文件的压缩比等信息

-#

压缩等级,-1最快,但是压缩比差,-9最慢但是压缩比好,默认是-6

bzip2压缩所产生的文件扩展名为bz2,。

root@www1234:/tmp# bzip2 -z manpath.config

root@www1234:/tmp# bzip2 -d manpath.config.bz2

root@www1234:/tmp# bzip2 -zk manpath.config

打包命令: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、文件与目录管理

查看文件与目录: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

以完整时间模式(包括年、月、日、时、分)输出

复制、删除、移动:cp rm mv

cp [-adfilprsu] 源文件(source) 目标文件(destination)

cp [option] source1 source2 source3 .. direction

参数

含义

-a

相当于-pdr的意思

-d

若源文件为连接文件的属性,则复制连接文件属性而非文件本身

-f

为强制的意思,若目标文件已经存在且无法开启,则删除后再尝试一次

-i

若目标文件已经存在时,在覆盖前会先询问操作的进行

-l

进行硬连接的连接文件创建,而非复制文件本身

-p

连同文件的属性一起复制过去,而非使用默认属性

-r

递归持续复制,常用于目录的复制

-s

复制成为符号连接文件,即快捷方式

rm [-fir] 文件或目录

参数

含义

-f

强制的意思,忽略不存在的文件,不会出现警告信息

-i

互动模式,在删除前会询问用户是否操作

-r

递归删除,常用于目录的删除

mv [-fiu] source destination

mv [options] source1 source2.... direction

参数

含义

-f

强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i

若目标文件已经存在时,会询问是否覆盖

-u

若目标文件已经存在,且source比较新时,才会更新update

2.3.3、文件内容查阅

cat:由第一行开始显示文件内容

cat [-AbEnTv] 文件

参数

含义

-A

相当于-vEt的整合参数,可列出一些特殊的字符,而不是空白

-b

列出行号,针对非空白行的行号显示,空白行不标行号

-E

将结尾的断行字符$显示出来

-n

打印出行号,连同空白行也会有行号

-T

将Tab键以^I显示出来

-v

列出一些看不出来的特殊字符

示例:

root@www1234:/home/www1234# cat /etc/issue

Ubuntu 14.04.1 LTS \n \l

 

root@www1234:/home/www1234# cat -n /etc/issue

     1 Ubuntu 14.04.1 LTS \n \l

     2 

root@www1234:/home/www1234# cat -A /etc/issue

Ubuntu 14.04.1 LTS \n \l$

$

 

tac:从最后一行开始显示文件内容

root@www1234:/home/www1234# tac /etc/issue

 

Ubuntu 14.04.1 LTS \n \l

nl:显示的时候顺便输出行号

nl [-bnw] 文件

参数

含义

-b

指定行号的指定方式,主要有两种:

-b a :无论是否为空行,同样显示出行号

-b t:如果有空行,空的那一行不要显示出行号(默认)

-n

-n 1n:行号在屏幕的最左方显示

-n rn:屏幕在自己字段的最右方显示,且不加0

-n rz:屏幕在自己字段的最右方显示,且加0

-w

行号字段占用位数

示例:

root@www1234:/home/www1234# nl /etc/issue

     1 Ubuntu 14.04.1 LTS \n \l

      

root@www1234:/home/www1234# nl -b a /etc/issue

     1 Ubuntu 14.04.1 LTS \n \l

     2 

root@www1234:/home/www1234# nl -b a -n rz /etc/issue

000001 Ubuntu 14.04.1 LTS \n \l

000002 

root@www1234:/home/www1234# nl -b a -n rz -w 3 /etc/issue

001       Ubuntu 14.04.1 LTS \n \l

002      

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

less:与more类似,但比more更好的是能向前翻页

参数

含义

Enter

滚动一页

pagedown

向下翻动一页

空格键

滚动一行

pageup

向上翻动一页

y

向前滚动一行

u

向前滚动半页

h

显示帮助界面

d

向后翻半页

q

退出more

b

向后翻一页

/字符串

向下搜索"字符串"的功能

?字符串

向上搜索"字符串"的功能

n

重复前一个搜索(与 / 或 ? 有关)

N

反向重复前一个搜索(与 / 或 ? 有关)

head:只看头几行

head [-n number] 文件

-n :后面接数字,代表显示几行的意思

root@www1234:/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:

root@www1234:/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行数据

tail:只看尾几行

tail [-n number] 文件

-n :后面接数字,表示显示几行

root@www1234:/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

root@www1234:/home/www1234# tail -n 5 /etc/manpath.config

#

#---------------------------------------------------------

# Flags.

# NOCACHE keeps man from creating cat pages.

#NOCACHE

od:以二进制的方式读取文件内容

od [-t Type] 文件

-t后面可以接各种类型的输出:

参数

含义

a

利用默认的字符来输出

c

使用ASCII字符输出

d[size]

使用十进制来输出数据,各个整数占size bytes

f[size]

使用浮点数来输出数据,各个数占size bytes

o[size]

使用八进制来输出数据,各个整数占size bytes

x[size]

使用十六进制来输出数据,各个整数占size bytes

touch:修改文件时间或创建新文件

touch [-acdmt] 文件

参数

含义

-a

仅修改访问时间

-c

仅修改文件的时间,若该文件不存在,则不创建新的文件

-d

后面可以接欲修改的日期而不用目前的日期,也可以使用—date =”日期或时间”

-m

仅修改mtime

-t

后面可以接欲修改的时间而不用目前的时间,格式为(YYMMDDhhmm)

示例:

root@www1234:/home/www1234# cd /tmp

root@www1234:/tmp# touch testfile

root@www1234:/tmp# ls -al testfile

-rw-r--r-- 1 root root 0 8月 8 08:24 testfile

root@www1234:/tmp# touch -t 0709150202 testfile

root@www1234:/tmp# ls -al testfile

-rw-r--r-- 1 root root 0 9月 15 2007 testfile

2.3.4、命令与文件查询

file:查看文件类型

用于查看文件的类型,举例说明

root@www1234:/home/www1234# file ~/.bashrc

/root/.bashrc: ASCII text

root@www1234:/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

root@www1234:/home/www1234# file /var/lib/mlocate/mlocate.db

/var/lib/mlocate/mlocate.db: data

 

which(寻找“执行文件”)

which [-a] command

-a:将所有由path目录可以找出的命令均列出,而不是只列出第一个被找到的命令

root@www1234:/home/www1234# which which

/usr/bin/which

root@www1234:/home/www1234# which -a ifconfig

/sbin/ifconfig

 

whereis(寻找特定文件)

whereis [-bmsu] 文件或目录名

参数

含义

-b

只找二进制格式的文件

-m

只找在说明文件manual路径下的文件

-s

只找source源文件

-u

查找不在以上3中选项以外的特殊文件

 

locate

locate [-ir] keyword

参数

含义

-i

忽略大小写的差异

-r

后面可接正则表达式的显示方式

2.4、vi程序编辑器

进入vi的命令

命令

含义

vi filename

打开或新建文件,并将光标置于第一行首

vi +n filename

打开文件,并将光标置于第n行首

vi + filename

打开文件,并将光标置于最后一行首

vi +/pattern filename

打开文件,并将光标置于第一个与pattern匹配的串处

vi -r filename

在上次正用vi编辑时发生系统崩溃,恢复filename

vi filename....filename

打开多个文件,依次进行编辑

光标移动、复制粘贴、查找

命令

含义

技术分享

光标向左移动一个字符

技术分享

光标向右移动一个字符

技术分享

光标向上移动一个字符

技术分享

光标向下移动一个字符

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

重做上一个操作

一般模式切换到编辑模式

按键

含义

i

在光标前

I

在当前行首

a

光标后

A

在当前行尾

o

在当前行之下新开一行

O

在当前行之上新开一行

ESC

退出编辑模式,进入一般模式

命令行模式

按键

含义

:w

将编辑的数据写入硬盘文件中

:w!

若文件属性为“只读”时,强行写入该文件,到底能不能写入,还看你对文件的权限

:q

离开vi

:q!

强制离开,不保存文件

:wq

保存后离开,若为:wq!则为强制保存后离开

:w filename

将编辑的数据保存为另一个文件,类似于另存文件

 

Linux的文件权限和目录配置

标签:

原文地址:http://www.cnblogs.com/www1234/p/5751179.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!