你的分享就是我们的动力 ---﹥

Linux 文件管理常用命令

时间:2015-03-16 17:17来源:www.chengxuyuans.com 点击:

文件管理命令

先和大家总结一下,文件管理有哪些命令:ls, cd, pwd, mkdir, rmdir, cp, rm, mv, touch, cat, more, less, head, tail等,下面我们就来详细的说一下(只说常用的,不是命令全部)

(1). ls 命令

1
2
3
4
5
6
7
8
9
10
11
12
-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来 (常用)
-A :全部的文件,连同隐藏档,但不包括 . 与 .. 这两个目录
-d :仅列出目录本身,而不是列出目录内的文件数据 (常用)
-f :直接列出结果,而不进行排序  (ls 默认会以档名排序!)
-h :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来 (常用)
-i :列出 inode 号码,inode 的意义下一章将会介绍 (常用)
-l :长数据串列出,包含文件的属性与权限等等数据 (常用)
-n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在用户管理提到!)
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小
-R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来 (常说的递归)
-S :以文件容量大小排序,而不是用档名排序
 -t :依时间排序,而不是用档名

(2) cd 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cd [相对路径或绝对路径]
# 最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号罗!
[root @www ~]# cd ~test
# 代表去到 vbird 这个使用者的家目录,亦即 /home/test
[root @www vbird]# cd ~
# 表示回到自己的家目录,亦即是 /root 这个目录
[root @www ~]# cd
# 没有加上任何路径,也还是代表回到自己家目录的意思喔
[root @www ~]# cd ..
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思
[root @www /]# cd -
 # 表示回到刚刚的那个目录,也就是 /root 罗~
 [root@www ~]# cd /var/spool/mail
# 这个就是绝对路径的写法!直接指定要去的完整路径名称
 [root@www mail]# cd ../mqueue
# 这个是相对路径的写法,我们由/var/spool/mail 去到/var/spool/mqueue 就这样写


(3). pwd 命令

1
2
3
4
5
6
7
pwd [-P] 选项与参数:   
 -P :显示出确实的路径,而非使用链接 (link) 路径。    
例:pwd    
cd /var/mail
pwd –P
/var/spool/mail
pwd与pwd –P 显示的路径不同,大家清楚了吧!


(4). mkdir 命令

1
2
3
4
5
6
mkdir [-mp] 目录名称 选项与参数:
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask)
-p :帮助你直接将所需要的目录(包含上一级目录)递回创建起来!
例:
mkdir -p test1/test2/test3/test4 (一起创建)
mkdir -m 744 test2


(5). rmdir 命令

1
2
3
4
rmdir [-p] 目录名称 选项与参数:
 -p :连同上一级“空的”目录也一起删除
例:
rmdir -p test1/test2/test3/test4 (全部删除)


(6). rm 命令

1
2
3
4
5
rm [-fir] 文件或目录 选项与参数:
 -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息
-i :互动模式,在删除前会询问使用者是否动作
-r :递回删除啊!最常用在目录的删除了(这是非常危险的选项)
我们一般常组合使用,rm –rf (删除全部文件或目录,大家得小心使用,因为删除了就无法恢复了)


(7). mv 命令

1
2
3
4
5
mv [-fiu] source destination 选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
我们一般还可以用mv 命令进行重命名(例: mv test test.bak  )

(8). touch 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
touch [-acdmt] 文件 选项与参数:
-a :仅修订 access time
-c :仅修改文件的时间,若该文件不存在则不创建新文件
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
补充:
我们在 ls 这个命令的介绍时(ls –l),有提到每个文件在linux底下都会记录许多的时间参数, 其实是有三个主要的变动时间,那么三个时间的意义是什么呢?我在这里补充一下
modification time (mtime):      
当该文件的“内容数据”变更时,就会升级这个时间!内容数据指的是文件的内容,而不是文件的属性或权限喔
status time (ctime):      
当该文件的“状态 (status)”改变时,就会升级这个时间,举例来说,像是权限与属性被更改了,都会升级这个时间啊。
access time (atime):      
当“该文件的内容被取用”时,就会升级这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会升级该文件的 atime 了
大家懂了吧!


(9). cat 命令

1
2
3
4
5
6
7
cat [-AbEnTv] 选项与参数:
-A :相当于-vET 的整合选项,可列出一些特殊字符而不是空白而已
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号
-E :将结尾的断行字节 $ 显示出来
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同 (常用)
-T :将 [tab] 按键以 ^I 显示出来
-v :列出一些看不出来的特殊字符

(10). more 命令

1
2
3
4
5
6
7
8
more (一页一页翻动查看)
常用的快捷键:
空白键 (space):代表向下翻一行
Enter     :代表向下翻一行
/字串     :代表在这个显示的内容当中,向下搜寻字串这个关键字
:f            :立刻显示出档名以及目前显示的行数
q            :代表立刻离开 more ,不再显示该文件内容
b 或 Ctrl+b :代表往回翻页,不过这动作只对文件有用


(11). less 命令

1
2
3
4
5
6
7
8
9
10
11
less (一页一页翻动)
less与more区别: 在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件
常用的快捷键:
空白键    :向下翻动一页
[pagedown]:向下翻动一页
[pageup]  :向上翻动一页
/字串     :向下搜寻字串的功能
?字串     :向上搜寻字串的功能
n         :重复前一个搜寻 (与 / 或 ? 有关!)
N        :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q         :离开 less 这个程序


(12). head 命令 (取出前面几行)

1
2
3
head [-n number] 文件 选项与参数:
-n :后面接数字,代表显示几行的意思
(默认是前10行)

(13). tail 命令 (取出后面几行)

1
2
3
4
tail [-n number] 文件 选项与参数:
-n :后面接数字,代表显示几行的意思  (默认后10行)
-f :表示持续查看后面所接的文件,要等到按下Ctrl+c才会结束tail的查看
(tail –f 非常有用,当我们看某些经常更新的日志时,例: tail -f /var/log/maillog)


(14). file 命令 (查看文件类型)

1
2
3
4
例:
file ~/.bashrc --------ASCII 的纯文字档
file /usr/bin/passwd ------------可执行文件
file /var/lib/mlocate/mlocate.db  --------------- data 文件


总结 :

经过上面的总结,基本上把文件的管理的命令总结了下,包括目录操作的相关命令(如cd, pwdm, mkdir, rmdir, ls)目录与文件的复制、删除、移动命令(cp, rm, mv)文件的新建与查看命令(touch, cat, more, less, head, tail),还有查看 文件类型有命令(file)

图一:linux 文件属性

5.1

图二 : linux 默认权限

5.2

在图一中,我们看到了,图中分为七栏,每一栏分别代表什么我会在下面详细说明,在图二中,我们看到test1文件与test2目录文件默认权限,那又分别又代表什么,好了废话不多说,我们下面来详细说一下。

1. 文件的默认属性

在图一中,我们可以看到,文件有默认属性分为七栏,其意义分另为:

第一栏: 代表这个文件的类型与权限(permission)

文件类型:     
           -:普通文件 (f)      
           d: 目录文件      
           b: 块设备文件 (block)      
           c: 字符设备文件 (character)      
           l: 符号链接文件(symbolic link file)      
           p: 命令管道文件(pipe)      
           s: 套接字文件(socket)

文件权限: 9位,每3位一组,每一组:rwx(读,写,执行), r--

           第一组为: 文件拥有者的权限, 该文件的拥有者可以读写,但不可执行;

           第二组为: 同群组的权限

           第三组为: 其他非本群组的权限

第二栏: 文件硬链接的次数 (我会在磁盘管理时详细说明)

第三栏: 表示这个文件(或目录)的拥有者(owner)

第四栏: 表示这个文件的所属群组(group)

第五栏: 为这个文件的容量大小,默认单位为bytes

第六栏: 为这个文件的建档日期或者是最近的修改日期

           访问:access     
           修改:modify,文件内容发生了改变      
           改变:change,metadata,元数据

第七栏: 为这个文件的文件名

2. 文件与目录的默认权限

从上面的讲解中我们可以看到,一个文件有若干个属性,包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 、文件 (-) 等等的属性! 要修改属性的方法在我在前面的博客中也讲过 (chgrp, chown,chmod) 。那么现在我们知道如何创建或者是改变一个目录或文件的属性了,不过, 你知道当你创建一个新的文件或目录时,他的默认权限会是什么吗?嘿嘿!那就与 umask 这个玩意儿有关了!那么 umask 是在做什么呢?基本上,umask 就是指定 目前使用者在创建文件或目录时候的权限默认值, 那么如何得知或配置umask 呢?

3. umask(遮罩码)命令

如下图:

5.3

1). 查看方式有两种,一种可以直接输入 umask ,就可以看到数字型态的权限配置分数, 一种则是加入 -S (Symbolic) 这个选项,就会以符号类型的方式来显示出权限了!从第一种方式,我们看到了四组数字,奇怪不应该是三组吗?其实第一组是特殊权限用的,我们暂时不用去管它,在后面的博客中我会详细讲解,先卖个关子!在默认权限的属性上,目录与文件是不一样的。我们知道 x 权限对于目录是非常重要的(不理解的朋友可以看下面,目录与文件的权限意义)!但是一般文件的创建则不应该有运行的权限,因为一般文件通常是用在于数据的记录嘛!当然不需要运行的权限了。因此,默认的情况如下:

若使用者创建为”文件“则默认“没有可运行( x )权限”,亦即只有 rw 这两个项目,也就是最大为 666 ,默认权限如下:     
-rw-rw-rw-

若使用者创建为”目录“,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 ,默认权限如下:     
drwxrwxrwx

2). 要注意的是,umask 的值指的是“该默认值需要减掉的权限!”因为 r、w、x 分别是 4、2、1 ,所以!也就是说,当要拿掉能写的权限,就是减去2 ,而如果要拿掉能读的权限,也就是减去4 ,那么要拿掉读与写的权限,也就是减去 6 ,而要拿掉运行与写入的权限,也就是减去 3 ,这样了解吗?请问你, 5 是什么?呵呵! 就是读与运行的权限啦!

如果以上面的例子来说明的话,因为 umask 为022 ,所以 user 并没有被拿掉任何权限,不过 group 与 others 的权限被拿掉了 2 (也就是 w 这个权限),那么当使用者:

创建文件时:(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r-- (666-umask)

创建目录时:(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x (777-umask)

以上就是umask作用,你懂了吗?对于r、w、x 分别代表 4、2、1 下面会详细讲解(数字权限)!

4. 目录与文件的权限的重要性

1). 权限对文件的重要性

文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。 因此,权限对于文件来说,他的意义是这样的:

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

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

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

那个可读(r)代表读取文件内容是还好了解,那么可执行(x)呢?这里你就必须要小心啦! 因为在Windows底下一个文件是否具有执行的能力是由扩展名来判断的, 例如:.exe, .bat等等,但是在Linux底下,我们的文件是否能被执行,则是藉由是否具有x这个权限来决定的!跟扩展名是没有绝对的关系的!至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限!对于文件的rwx来说,主要都是针对文件的内容而言,与文件名的存在与否没有关系喔!因为文件记录的是实际的数据嘛!


2). 权限对目录的重要性

文件是存放实际数据的所在,那么目录主要是储存啥玩意啊?目录主要的内容是在记录文件名的列表,文件名与目录有强烈的关联性! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?

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

  • w (modify contents of directory):       
    这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:        

    • 建立新的文件与目录

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

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

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


    总之,目录的w权限就与该目录底下的文件名异动有关就对了啦!


  • x (access directory):       
    目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途!所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是cd(change directory),你能否改变目录,就得看x权限啦,嘿嘿!

5. 数字权限

数字类型与文件权限


Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:文件的权限字符为:-rwxrwxrwx, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4     
w:2      
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---] 分数则是:    
owner = rwx = 4+2+1 = 7     
group = rwx = 4+2+1 = 7      
others= --- = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!是不是很简单啊!在这篇博客中我们多次提到,用户(owner)、组(group)、其他用户(others)

linux 文件管理。

1. 文件的命名规则

大家都知道,文件定有文件名,在linux中,有以下几条命名规则,来规范文件命名,

1). 除了 / 之外,所有的字符都合法。

2). 有些文字最好不要使用,如空格、Tab键、退格键、@、#、$、()、-等

3). 长度不能超过255个字符

4). 不能使用/当前文件名

5). 区分大小写

2. 文件与目录

在说目录结构之前我想说一下,文件与目录的关系,先问大家一个问题,目录是什么?有人会说,目录就是文件夹,里面可以存放文件,我想说忘记Windows的那一套东西,记得我们上一篇博客说的吗?linux的几个原则,其中有一条就是,linux中一切皆文件,其实目录也是文件,目录是文件的路径映射(是特殊文件),那有人又要问了,那什么是路径哟,路径是从指定起始点到目的地所经过的位置。既然说到时路径了,我们就说一下,什么是绝对路径,什么是相对路径。

3. 绝对路径和相对路径

绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/test/

相对路径:相对于目前路径的文件名写法。 例如 ./home/test 或 ../../home/test/ 等等。反正开头不是 / 就属于相对路径的写法

举例说明,你现在home目录下(/home),你怎么切换到var目录下呢,

cd /var  (absolute)

cd ../var (relative)

嘿嘿,懂了吗?因为你在 /home 下,所以要回到上一层 (../) 之后,才能继续往 /var 来移动的! 特别注意这两个特殊的目录:

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

.. :代表上一层目录,也可以 ../ 来代表

4. 根(/)目录结构

在说根目录结之前,我们来想一个问题,根目录下有许多目录,但linux的发行版本又有许多,那是不是每个发行版的根目录下的文件都不同呢,是不是想怎么规定就怎么规定,我想说显然不是,肯定是有标准的,就是我们所知道的FHS(Filesystem Hierarchy Standard ),所以我们看到的众多发行版本,其根目录中的许多目录都很相似。好了,下面我们就开始说一说每个目录代表是意义:

1). /boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)     
2). /dev: 设备文件      
    设备文件:      
           块设备:随机访问,数据块      
           字符设备:线性访问,按字符为单位      
           设备号:主设备号(major)和次设备号(minor)      
3). /etc:配置文件      
4). /home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME      
5). /root:管理员的家目录;      
6). /lib:库文件      
            静态库,  .a      
            动态库, .dll, .so (shared object)      
            /lib/modules:内核模块文件      
7). /media:挂载点目录,移动设备      
8). /mnt:挂载点目录,额外的临时文件系统      
9). /opt:可选目录,第三方程序的安装目录      
10). /proc:伪文件系统,内核映射文件      
11). /sys:伪文件系统,跟硬件设备相关的属性映射文件      
12). /tmp:临时文件, /var/tmp      
13). /var:可变化的文件      
14). /bin: 可执行文件, 用户命令      
15). /sbin:管理命令

16). /usr:shared, read-only 这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下

     /usr/bin 存放着许多应用程序     
     /usr/sbin 给超级用户使用的一些管理程序就放在这里      
     /usr/lib 存放一些常用的动态链接共享库和静态档案库      
   
/usr/local:这是提供给一般用户的/usr目录,在这里安装软件最适合(下目录意义与上面类似)

    /usr/local/bin   
    /usr/local/sbin       
    /usr/local/lib

5. 文件管理

主要的命令有: ls、cd、pwd、touch、mkdir、rmdir、cp、mv 、rm、cat、more、head、tail

1). 文件的创建和删除

touch、rm

2). 文件的复制和移动

cp、mv

3). 目录的创建和删除

mkdir、rmdir

4). 查看与改变目录

ls、tree、cd

5). 查看文件

cat、more、head、tail

6. 权限管理

主要的命令有: chmod、chown、chgrp、umask

1). 改变文件或目录的权限

chmod

2). 改变文件或目录的所有者

chown

3). 改变文件或目录的所属组

chgrp

4). 显示、设置文件与目录的缺省权限

umask

7. 文件搜索命令

主要的命令有: which、find、locate、updatedb、grep

大家看到了,上面写了许多命令,为什么都没解释呢,我想说我在这里是帮大家梳理和总结知识(同时我自己也再学习一下,嘿嘿!),大家可以先去学习,对上面的命令不会使用的,大家可以去man,至于man手册怎么用


转载注明地址:http://www.chengxuyuans.com/system-maintenance/91721.html

推荐文章