目录

  1. 文件权限
    1. 查看文件权限
    2. 更改文件权限
    3. 改变文件所有者和所属组
    4. 查看和更改缺省权限
  2. 文件扩展名
  3. 目录配置
    1. 系统文件夹
    2. 目录树
  4. Linux文件和目录管理
    1. 目录与路径处理命令
    2. 文件管理命令
    3. 文件搜索 find
    4. 文件搜索 locate
    5. 搜索文件中的内容grep
    6. 压缩与解压

文件权限

查看文件权限

查看文件权限
  • cmd
1
2
[liuyee@localhost ~]$ ls -l 文件名
-rw-rw-r--. 1 liuyee liuyee 25 616 04:13 文件名

其中,

  • 第一列第一个字符代表文件类型:
    • -:普通文件,d:目录,b:设备文件(块设备),c:设备文件(字符文件),1:软连接(快捷方式)
  • 第一列第2-4、5-7、8-10个字符分别代表所属用户(u)、所属组(g)、其他人(o)的权限:
    • 三个字符位依次代表:读、写、执行的权限;
    • r:可读,w:可写,x:可执行,-:无对应权限位的权限。
  • 第二列:所属用户
  • 第三列:所属组
  • 第四列:文件大小
  • 第…列:…

更改文件权限

  1. 在原来权限的基础上改变权限
  • chmod {u/g/o/ugo}{+/-}{r/w/x/rwx},{u/g/o/ugo}{+/-}{r/w/x/rwx} 文件名

  • 例子1:给文件名的所有者加上可执行权限、所有组加上可写权限、其他人减去可读权限。

例1
  • cmd
1
[liuyee@localhost ~]$ chmod u+x,g+w,o-r 文件名
  • 例子2:给文件名的所有者和所有组减去可读权限和可写权限。
例2
  • cmd
1
[liuyee@localhost ~]$ chmod ug-rw 文件名
  1. 不管原有权限,直接对所有用户及组赋予、加上、减去新的权限
  • chmod a{+/-/=}{r/w/x/rwx} 文件名

  • 例子:给文件名的所有者、所有组和其他人都赋予可读权限,无其它权限。

  • cmd
1
[liuyee@localhost ~]$ chmod a=r 文件名
  1. 用数字代替权限
  • r=4,w=2,x=1,-=0

  • 例子:若文件的权限为755,则由于7=4+2+1,5=4+1,所以文件的所属用户权限为可读、可写、可执行;所属组和其它用户的用户权限为可读、可执行。

  • cmd
1
[liuyee@localhost ~]$ chmod 755 文件名
  1. 改变文件夹及里面所有文件和子文件夹的权限
  • chmod -R 000 文件夹名
    • -R是使用递归的意思

改变文件所有者和所属组

  1. 改变所有者
  • chown 用户名 文件名
  1. 改变所属组
  • chgrp 组名 文件名
  1. 同时改变所有者和所属组
  • chown 用户名:组名 文件名
  • chown 用户名.组名 文件名
  1. 改变文件夹及里面所有文件和子文件夹的所有者和所属组

加上参数-R

查看和更改缺省权限

  1. umask [-S] (英文愿意:the user file-creation mask)

    • 以rwx的形式显示新建文件缺省权限,可以通过此命令显示、设置文件或目录的缺省权限。
    • 缺省创建的文件不具有可执行权限。
    • 不接选项-S时,以数字形式呈现。例如若显示为0022,第一位0为特殊权限,后三位表征所有者、所属组、其它人的权限,用777相减得到755,即权限为u=rwx,g=r-x,o=r-x。因此默认情况下创建的文件夹权限为rwxr-xr-x,默认创建的文件的权限为rw-r–r–。

文件扩展名

除了特定的文件外,Linux下的文件都没有后缀名,那么如何查看文件类型呢?可使用如下命令:

  • file 文件名
  • 例子:xxyy为用gedit创建的一个文本文件,编码方式为ASCII码。
  • cmd
1
2
[liuyee@localhost ~]$ file xxyy
xxyy: ASCII text

目录配置

系统文件夹

  • bin:存放二进制文件;
  • boot:存放系统启动文件及内核;
  • dev:存放设备文件;
  • etc:存放配置文件;
  • home:存放用户的家目录;
  • lib:存入链接库文件;
  • media:系统挂载点(比如说插入U盘时,会访问该文件夹下的子文件夹);
  • mnt:挂载点;
  • opt:源码安装路径;
  • proc:内核参数,不占用内核大小;
  • root:root用户的家目录;
  • sbin:存放系统二进制文件;
  • tmp:临时文件;
  • usr:安装软件时的默认文件;
  • var:缓存、日志、数据库文件。

Linux只有一个根盘符’/‘,其它分区都放在根盘符下的文件夹内。

目录树

  • tree /boot/

    查看/boot/的目录树。


Linux文件和目录管理

目录与路径处理命令

  • pwd

    显示当前工作目录(Print Working Directory)

  • cd 目录

    change dir到指定目录。

  • cd -

    切换到前一次进入的目录(可以来回不停地在两个目录间切换)

  • mkdir 目录名

    创建目录,可以同时创建多个。

  • mkdir -p 父目录名/子目录名

    若父目录名不存在时,同时创建父目录名和子目录名。

  • rmdir 目录名

    删除目录,只能删除空目录。

  • rmdir -p 父目录名/子目录名

    同时删除子目录名和父目录名。等删除的目录名必须为空。

  • rm -rf 目录名

    强制递归删除目录名及其所有子目录。

  • echo $PATH

    显示系统默认路径。

  • PATH=’…:目录名’

    将目录名加入系统默认路径。

文件管理命令

  1. 删除、拷贝、剪切操作
  • cp [选项]… /PATH1/xx /PATH2/yy

    • 如果yy是一个文件夹,则将PATH1下的xx拷贝到PATH2下的yy文件夹下;
    • 如果yy不是一个文件夹或不存在,则将PATH1下的xx拷贝到PATH2下,并重命名为yy。
  • mv [选项]… /PATH1/xx /PATH2/yy

    • 如果yy是一个文件夹,则将PATH1下的xx剪切到PATH2下的yy文件夹下;
    • 如果yy不是一个文件夹或不存在,则将PATH1下的xx剪切到PATH2下,并重命名为yy。
    • 同一个文件夹操作,即可以改名。
  • rm [选项] 文件

    删除文件。可选参数:-f 强制删除、-r 递归删除、-rf 强制递归删除

  • touch 文件名

    • 创建一个空文件;
    • 创建有文件名有空格的文件: touch “program files”
  1. 查看文件
  • cat 文件名

    • 显示文件内容;
    • -n 指定显示行号。
  • tac 文件名

    • 显示文件内容,反向列示。
  • more 文件名

    • 按空格或f:翻页
    • 按Enter:换行
    • 按Q:退出
  • less 文件名

    • 分布显示文件内容,可按PgUp往上翻页。
    • ‘/关键词’:查找关键词
  • tail 文件名

    • 显示文件后面几行,默认最后10行;
    • -n NUM 指定行数;
    • -f 动态显示文件末尾内容。
  1. 创建软链接
  • ln -s 文件名 文件名.soft

    • 生成软链接
    • 软链接权限全部为rwx,但最权限仅由软链接所指向的文件的权限决定;
    • 原文件丢失,软链接无法继续访问。
  • ln 文件名 文件名.hard

    • 生成硬链接
    • 相比拷贝,硬链接可以和指向的文件同时更新(映射到同一个i节点);
    • 原文件丢失,硬链接可以继续访问;
    • 不能跨分区;
    • 不能针对目录使用。

文件搜索 find

  1. 搜索条件为文件名
  • find / -name init
    • 在根目录下查找文件名为init的文件
  • find / -name *init*
    • 在根目录下查找文件名中包含init的文件
  • find / -name *init
    • 在根目录下查找文件名以init开头的文件
  • find / -name init???
    • 在根目录下查找文件名以init开头并且后面接三个字符的文件
  • find / -iname init
    • 在根目录下查找文件名为init的文件,不区分大小写;
    • 其它用法和name相同
  1. 搜索条件为文件大小
  • find / -size +204800
    • 在根目录下查找文件大小大于200MB的文件;
    • 后面的参数为代表大于、为负代表小于、无符号代表等于。
  1. 搜索条件为文件所有者/所属组
  • find / -user username
    • 在根目录下查找文件所有者为username的文件。
  • find / -group groupname
    • 在根目录下查找文件所属组为groupname的文件。
  1. 搜索条件为时间
  • find / -cmin -5
    • 在根目录下查找5分钟内被修改过属性的文件和目录
    • cmin: 文件属性,change
    • amin: 访问时间,access
    • mmin: 文件内容,modify
    • 后面时间前面的符号为’-‘时,代表某个时间段内;为’+’时,代表超过某个时间。
  1. 根据文件类型查找
  • find -type f
    • f为文件,d为目录,l为软链接文件
  1. 根据i节点查找
  • find -inum 31531
    • 查找i节点为31531的文件;
    • i节点可通过ls -i列出得到。
  1. 复合搜索条件
  • find / -size +1024 -a -size -102400
    • 在根目录下查找大于1Mb小于100Mb的文件
    • 中间参数为-a,意思是and;参数为-o时,意思是or
  1. 对查找结果执行操作
  • find / -name inittab -exec ls -l {} \;
    • 对搜索结果显示详细信息。
    • -exec可以换成-ok,对每个文件执行操作时都会要求确认。

文件搜索 locate

在文件资料库中查找文件,查找速度比find快,/tmp中的文件不能被收录入文件资料库

  1. locate 文件名

    • 区分大小写,若想不区分大小写,则需要加上-i选项。
  2. 更新文件资料库

    • updatedb

搜索文件中的内容grep

  1. grep -iv [指定字串][文件]
    • 在文件中搜索字串匹配的行并输出
    • -i 不区分大小写
    • -v 排除指定字串

压缩与解压

  1. .gz压缩文件,只能压缩文件,压缩完后只剩压缩文件

    • gzip 文件名:压缩gz文件
    • gunzip 文件名:解压gz文件
    • gzip -d 文件名:解压gz文件
  2. .tar.gz打包目录,并压缩文件

    • tar 选项 [压缩后文件名] [目录]
      • 选项-c:打包
      • 选项-v:显示详细信息
      • 选项-f:指定文件名
      • 选项-z:打包同时压缩
  3. 解压tar命令

    • tar 选项 [压缩后文件名] [目录]
      • 选项-x:解包
      • 选项-v:显示详细信息
      • 选项-f:指定解压文件
      • 选项-z:解压缩
  4. .zip压缩文件,可以压缩文件或目录,压缩后会保留压缩文件和目录

    • zip 选项 [压缩后文件名] [文件或目录]
      • 选项-r:压缩目录
  5. 解压缩.zip文件

    • unzip [压缩文件]
  6. .bz2压缩文件

    • bzip2 选项 [文件]
      • 选项-k:产生压缩文件后保留原文件
      • .gz的升级版,一般用于压缩大型文件
    • tar -cjf [压缩后目录名.tar.bz2] [目录]
      • 压缩目录,生成.tar.bz2压缩文件
  7. 解压.bz2压缩文件

    • bunzip2 选项 [压缩文件]
      • 选项-k:解压缩后保留原文件
      • 范例1:bunzip2 -k 文件名.bz2
      • 范例2:tar -xjf 目录名.tar.bz2