Tags: Linux

1.Linux文件基本属性

(1)查看属性命令

查看某个文件的属性使用ll命令,查看某个目录中所有文件的属性用ls -l命令。例如如下示例。

ll video2.mp4

# 输出
# -rw-r--r-- 1 root root 156330209 8月  11 21:45 video2.mp4

ls -l
# 输出
# 总用量 667744
# drwxr-xr-x  4 root root      4096 5月   8  2012 00
# drwxr-xr-x 23 root root      4096 8月   5 23:22 anaconda2
# drwxr-xr-x  3 root root      4096 8月   6 21:15 CLionProjects
# -rw-r--r--  1 root root 278068786 8月  11 09:41 kitti.mp4
# drwxr-xr-x 12 root root      4096 8月   5 23:04 NVIDIA_CUDA-9.2_Samples
# drwxrwxrwx  4 root root      4096 4月  20 18:57 SatelliteSLAM
# -rw-r--r--  1 root root  26794927 8月   9 23:42 tum1.mp4
# -rwxr-----  1 root root  54035700 8月  11 11:14 video.mp4
# -rw-r--r--  1 root root  22049218 8月   9 23:48 whu1.mp4
(2)各属性含义

属性字符串中,第一个属性表示文件类型,有以下不同类型。

  • d:目录
  • -:文件
  • l:链接文档(Link file)
  • b:装置文件里面的可供储存的接口设备(可随机存取装置)
  • c:装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

接下来的字符串均以三个为一组,形式如rwxr表示可读(Read),w表示可写(Write),x表示可执行(Execute)。和上面一样,如果没有权限则用-表示。 因此每个文件的属性都用一个十个字符的字符串表示。

(3)用户与用户组

在上面的属性中提到了属主、属组和其他用户的概念,这里简单介绍一下。用户就是指一个用户,所谓属组则是指和当前用户同组的其他用户,除了这些用户以外,全部都是其他用户。三种不同身份的用户(owner/group/others)分别对应不同的权限(read/write/execute),可单独设置。

更改文件属组可以使用chgrp,示例如下。

chgrp new_group video.mp4

这样就可以将video.mp4文件的属组变成new_group了。这个命令对于目录同样适用,只需要在命令后加上-R即可,表示递归修改文件属组。

同样,与chgrp类似,可以利用chown修改文件属主,示例如下。

chown new_user video.mp4

# 也可以直接跨组修改
# 这样就表示直接将文件属主变成了new_group中的new_user
chown new_nser:new_group video.mp4

如果需要递归修改目录中的文件,加上-R

(4)修改文件属性

修改文件属性采用chmod命令。Linux有数字和字母两种方式修改文件属性。

首先介绍数字方式。在数字方式中约定r属性为4,w属性为2,x属性为1,什么都没有即为0,属性等于这三个数字相加的结果。由于前面说过了,属性是三个为一组的,分别对应不同的用户,所以最后就是一个三位数。 例如对于某个文件,所有用户都有全部权限(读、写、执行),那么最后的结果就应该为777。用命令应该写成如下形式。

chmod [-R] 777 filename_or_dir

而采用符号修改也比较简单,也更直观一些。前面说的三类用户(user,group,others)分别用u、g、o来表示。所以如果要设置一个文件的属性为-rwxrw-r--,那么就可以这样写。

chmod u=rwx,g=rw,o=r filename

递归修改还是用-R

2.Linux文件与目录管理

(1)ls

ls命令用于列出当前目录中的文件,有以下一些参数,参数之间可以随意组合。

  • -a:全部文件(包括隐藏文件,开头为.的文件)
  • -d:仅列出目录本身
  • -l:列出目录文件的详细信息(文件属性、权限、大小等)

示例如下:

ls -al .

则表示详细列出当前目录下的所有文件,包括隐藏文件。注意,如果想以合适的方式显示文件大小,可以使用ls -lh命令。

(2)cd与pwd

Change Dictionary的缩写,cd命令用于切换目录。在Linux中,最顶级的是/目录,.代表当前目录,..代表上一级目录。cd ..则表示切换到当前目录的上一级目录中。pwd是Print Working Dictionary的缩写,用于显示当前所在目录。

(3)mkdir与rmdir

Make Dictionary的缩写,用于新建一个目录。有可选参数-m,用于配置创建文件的权限。 以及可选参数-p或–parents:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录。 例如如下所示。

mkdir -m 777 new_folder

顺带一提,新建一个空文件的命令是touch

而删除一个目录的命令是rmdir,Remove Dictionary,它仅能删除空的目录,可以使用rm命令来删除非空目录。

(4)cp与mv

cp命令用于复制文件或文件夹,mv命令用于移动文件或文件夹。Linux中没有重命名命令,可以通过mv命令实现。cpmv命令有一些可选参数,如-r表示递归复制(用于复制目录),-f表示强制复制,类似于Windows复制中的覆盖,-i交互模式。使用示例如下。

cp video.mp4 ../new_video.mp4

表示把当前目录下的文件复制到上一层目录下。

重命名文件。

mv video.mp4 rename_video.mp4

这样就对原有文件进行了重命名,其操作过程就是把源文件先复制一份,然后再删除源文件。

(5)rm

用于移除文件或目录。比较常用的参数是-r表示递归删除,用在删除文件夹的时候,-i则是互动模式。示例如下。

rm -r new_folder
(6)cat

cat用于从第一行开始显示文件内容,而tac则是从最后一行开始显示文件内容。

3.Linux磁盘管理

(1)df

df命令用于检查文件系统的磁盘空间占用情况。部分可选参数如下。

  • -a:列出所有的文件系统,包括系统特有的/proc等文件系统
  • -k:以KB为单位显示各自文件系统
  • -m:以MB为单位显示各自文件系统
  • -h:以人们较易阅读的GB、MB、KB等显示(系统自动决定用什么)
(2)du

du命令用于查看文件和目录的磁盘使用情况,它的参数和df基本相同,不同的如下。

  • -s:列出总量,而不列出每个各别的目录占用容量
  • -S:不包括子目录下的总计
(3)mount与umount

mount命令用于挂在磁盘,基本使用格式如下。

mount /var/disk /root/install.iso

表示将install.iso镜像挂载到/var/disk目录下面。与mount对应的则是umount命令,用于卸载镜像。

5.参考资料

  • [1]http://www.runoob.com/linux/linux-file-attr-permission.html
  • [2]http://www.runoob.com/linux/linux-file-content-manage.html
  • [3]http://www.runoob.com/linux/linux-filesystem.html

本文作者原创,未经许可不得转载,谢谢配合

返回顶部