Linux 文件管理

说明:基于 Centos6.x 系统环境

一、基本文件操作

  1. 查看文件
1
2
3
4
5
6
7
ls [选项] [文件或目录] # []里的内容表示可选项
选项
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode (ID号、索引节点)
  1. 创建目录
1
2
3
mkdir [选项] [目录名]

-p 递归创建目录
  1. 切换目录
1
2
3
4
5
6
7
cd [目录]

cd ~ 进入当前家目录
cd
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录

相对路径 cd ../usr/local/src 绝对路径cd /etc

目录补全、命令补全,按两下 Tab键

1
pwd # 查询当前工作路径
  1. 删除文件
1
2
3
4
5
rm -rf [文件或目录]
选项
-r 递归删除目录
-f 强制
删除文件要谨慎,删除了就没有了
  1. 复制命令
1
2
3
4
5
6
cp [选项] [原文件或目录] [目标目录]
选项
-r 复制目录
-p 连带文件属性复制
-d 若原文件时链接文件,则复制链接属性
-a 相当于-pdr
  1. 剪切或改名
1
2
mv [原文件或目录] [目标目录]

  1. 目录结构

目录结构

  • /boot 启动目录

  • /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。

  • /etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

  • /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录。**/sbin, /usr/sbin只有root能使用的程序和指令。/bin/usr/bin** 是给系统用户使用的指令(除 root 外的通用用户)。

  • /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

  • /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。

  • /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

  • /home 普通用户的家目录

  1. 链接命令
1
2
ln -s [原文件] [目标文件] # 生成链接文件
选项 -s 创建软链接

二、文件搜索查找

  1. locate 文件名 # 文件搜索,基于本地数据库搜索,速度快,刚建立的文件需等待数据库更新。搜索的数据库 /var/lib/mlocate,updatedb手动更新此数据库。

  2. 命令搜索

1
2
3
4
whereis 命令名 # 搜索命令所在的路径以及帮助文档
选项
-b 只查找可执行文件
-m 只查询帮助文档
1
which 命令名 # 可以看到命令的别名

PATH 环境变量

each $PATH # 查看环境变量,可以直接使用命令而不必输入命令程序的绝对路径

1
2
[py@mini ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/py/.local/bin:/home/py/bin
  1. 文件搜索 find
1
2
3
4
5
6
7
8
9
10
11
12
13
14
find [搜索范围] [搜索条件]
find / -name install.log # 避免过大范围的搜索,这会增加系统压力

# 查询需要加通配符
* 匹配任意内容
? 匹配任意字符
[] 匹配任意中括号内的字符
find / -name install.log*
find / -name “ab[cd]

find /var/log/ -mtime -10 # -10表示10天内,10表示10天当天,+10表示10天前 mtime 修改文件时内容,ctime 改变文件属性,atime文件访问时间

# 按照文件大小搜索
find . size 25k
  1. 字符串搜索grep·····
1
2
3
4
grep [选项] 字符串 文件名 # 在文件当中匹配符合条件的字符串
选项
-i 忽略大小写
-v 排除指定字符串

三、文件压缩减压

常用的压缩格式: .zip .gz .bz2

常用的压缩格式: .tar.gz .tar.bz2

  1. zip格式
1
2
3
4
5
6
7
8
# 压缩文件
zip 压缩文件名 源文件

# 压缩目录
zip -r 压缩文件 原文件

# 解压缩文件
unzip 压缩文件
  1. gzip格式
1
2
3
4
5
6
7
8
9
# 压缩为 .gz 文件,源文件消失
gzip 源文件
# 压缩为 .gz 文件,保留源文件
gzip -c 源文件 > 压缩文件
# 压缩目录下的子文件,但不压缩目录
gzip -r 目录
# 减压缩文件
gzip -d 压缩文件
gunzip 压缩文件
  1. .bz2格式
1
2
3
4
5
6
7
8
9
10
11
# 压缩为.bz2格式,不保留源文件
bzip2 源文件
# 压缩后保留源文件
bzip2 -k 源文件

注意:bzip2 不能压缩目录

# 减压缩 -k 保留压缩文件
bzip2 -d 压缩文件
bunzip2 压缩文件

  1. 打包命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
tar -cvf  打包文件名 源文件
选项
-c 打包
-v 显示过程
-f 指定打包后的文件名
-x 减压缩tar.gz格式
-z 压缩为.tar.gz格式
例如
tar -cvf test.tar test

# tar.gz格式是先打包为.tar,再压缩为.gz格式
tar -zcvf 压缩包名.tar.gz 源文件
# 解压缩包
tar -xcvf 压缩包名.tar.gz

四、文件权限管理

1. 文件基本权限

  1. 基本权限的修改
1
2
3
4
5
[py@mini ~]$ ll
lrwxrwxrwx. 1 root root 7 7月 7 16:26 bin -> usr/bin
drwxr-xr-x. 19 py py 8192 7月 8 15:06 htop-3.2.1
-rw-rw-r--. 1 py py 0 7月 7 19:24 test.txt
drwxrwxr-x. 6 py py 12288 7月 8 02:34 tmux-3.3a
  • 第一位 文件类型(‘-’ 表示文件,‘d’ 表示目录,‘l’ 表示软链接)
  • 第一三位 表示 u所有者 rw- (‘r’ 表示读,‘w’ 表示写,‘x’ 表示执行)
  • 第二三位表示 g所属组 rw-
  • 第三三位表示 o其他人 r–

修改权限 chmod [选项] 模式 文件名 # 赋予文件和目录权限

  • -R 递归

  • 模式

    • [ugoa] [+-=] [rwx] # u 所有者,g所属组,o其他人

    • [mode=421] # 用对应数字的和表示对应的权限

      例子

    1
    2
    3
    4
    chmod u+x test.txt # 给所有者加可执行权限
    chmod g+w,o+w text.txt # 给所属组和其他人加写权限
    chmod a=rwx # 给所有人赋予读写执行权限
    chmod u-x,g-w # 给其他人所有组减去执行权限写权限

    权限的数字表示

    • r 用4表示,

    • w 用2表示,

    • x 用1表示

      rwxr-xr-x 用数字表示为 755,7表示所有者权限,5表示所有组,5表示其他。

      常用权限

      777最高权限,666文件的最高权限;

      755普通可执行权限,644普通文件权限。

      1
      chmod 755 text.mp4 # 所有者rwx,所属组rx,其他rx
  1. 权限对文件的作用

    • r 读取文件内容(cat more head tail)
    • w 编辑、新增、修改文件内容(vi echo)不能
    • x 可执行
  2. 权限对目录的作用

    • r 可以查询目录下的文件名(ls)
    • w 修改目录结构。如新建、删除、重命名文件和目录(touch rm mv cp)
    • x 可以进入目录(cd)

    总结

    对文件来讲,最高权限是 x ;

    对目录来讲,最高权限是 w,0 5(rx)7(rwx)

  3. 其它权限命令

    chown 用户名 文件名 # 改变文件的所有者

    chgrp 组名 文件名 # 改变文件的所属组

2.文件默认权限

  • 查看默认权限

​ umask

​ 0022

  • 第一位0,表示文件特殊权限
  • 022 ,表示文件默认权限

Linux 文件管理
http://www.keker.top/2018/10/09/Linux/Linux 文件管理/
作者
Keker
发布于
2018年10月9日
许可协议