【Linux】文件、用户管理命令


1 前言

Linux的哲学之一是一切皆文件,即计算机系统的所有设备(软件和硬件)都可以用文件来表示,所以文件管理对于Linux系统来说就像是管家一样,使Linux变得清晰、简洁、高效、易用。

以我们平常使用的Windows系统的计算机为例,其上不同类型的文件有很多,如常见的txt(文本)、jpg(图片)、mp3(音频),flv(视频)格式等等。

而Linux系统上同样也有很多不同类型的文件,常见的如

  • -:表示常规文件,即f,其他程序会表示为f;
  • d:directory,目录文件,完成路径映射;
  • b:block device,块设备文件,支持以block为单位进行随机访问;
  • c:character device,字符设备文件,支持以character为单位的线性访问;
  • l:symbolic link,符号链接文件,可以找到文件的路径,也叫软链接;
  • p:pipe,命名管道;
  • s:socket,套接字文件,在两个进程直接进行通信时进行套接,主要用于服务提供。

2 命令行接口

我们使用Linux,都是因为其可以长期高效稳定的运作,特别是对于企业,稳定显得尤为重要,其次,Linux占用系统内存很小,我们可以尽情的压榨计算机的性能。最重要的是Linux的发行版有很多好用免费的版本。

虽然Linux也有图形界面(GUI),但使用命令行(CLI)效率更高,且能节省更多系统资源。基本上所有企业配置的服务器都不需要图形界面,试想,如果都安上了图形界面,那得多有钱才会那么干啊,况且也没必要,服务器只需要在那边跑就行了。


3 常用文件管理命令

类似于Windows系统,Linux系统中的文件也可以查看文件路径、文件属性、复制、粘贴、移动、创建、删除等等。此外,Linux还有一些特殊的文件管理命令。

在此只列出基本的语法格式,想要查更具体的用法,可用manhelp命令:


3.1 文件查看:ls,file,tree,cat,tac,head,tail,more,less,stat,pwd

  • ls:list,列出指定目录下的内容,类似于Wndows下的文件列表。
    ls [OPTION]... [FILE]...
    在这里插入图片描述

  • file:查看文件内容类型。
    file [FILE]...
    例子:
    file /etc/fstab:显示etc目录下的fstab文件。
    在这里插入图片描述

  • tree:层级显示文件,这个贼他妈好用,谁用谁知道。

  • cat:concatenate,文本文件查看工具,查看文件内容,无法编辑,就看一下。
    cat [OPTION]... [FILE]...
    例子:
    cat -n /etc/fstab:查看/etc/fstab文件并显示文件行数编号。
    在这里插入图片描述

  • tac:将文件反序输出,与cat相反。

  • head:用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
    head [OPTION]... [FILE]...
    例子:
    head -n5 /etc/fstab:显示/etc目录下fstab文件的前5行内容。
    在这里插入图片描述

  • tail:与head相反。

  • more:是一个基于vi编辑器文本过滤器,选项可参照vi编辑器,只能向前浏览。该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比。
    more [OPTIONS] FILE...

  • less:与more相反,允许用户向前或向后浏览文件。按Q键退出less程序。

  • stat:显示文件或文件系统状态。
    stat [OPTIONS] FILE...
    例子:
    stat tmp...:显示tmp目录文件的状态信息。在这里插入图片描述
    其中,值得注意的是Acess,Modify,Change这三个,它们分别代表时间戳里的

    • access time:最近访问时间
    • modify time:最近数据更改时间
    • change time:最近元数据更改时间。
      • 元数据即为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。如上图所示,对于Linux来说,元数据指File、Size、Blocks、IO Block、directory、Device、Inode(文件索引节点号)、Links(硬链接次数)、Context(文件所在环境)、Uid、Gid、Access、Modify、Change、Birth。
  • pwd:显示当前文件路径。


3.2 文件管理:mkdir,rmdir,cp,mv,rm,install,mktemp

  • mkdir:make directory,创建目录。也可用touch来创建文件。
    mkdir [OPTION]... DIRECTORY

例子:

  1. 使用命令行展开功能,在/tmp目录下创建目录:x_y, x_z, q_y, q_z和/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b。
    mkdir -p /tmp/{x_{y,z},q_{y,z}} /tmp/{a1/{a,b},a2}
    在这里插入图片描述
  2. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2018-05-27-09-32-22。
    mkdir -p /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
    在这里插入图片描述
  • rmdir:remove directory,用来删除空目录。
    rmdir [OPTION]... DIRECTORY
     注意:子目录被删除之前应该是空目录。就是说,该目录中的所有文件必须用rm命令全部,另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是被删除目录的子目录。虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,但是这样做存在很大的危险性。

  • cp:复制文件和目录。

	单源复制 cp [OPTION]... [-T] SOURCE DEST
	多源复制 cp [OPTION]... SOURCE... DIRECTORY
	    	cp [OPTION]... -t DIRECTORY SOURCE...
  • mv:move,用来移动或重命名文件。
     注意:如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变;如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
	mv [OPTION]... [-T] SOURCE DEST
	mv [OPTION]... SOURCE... DIRECTORY
	mv [OPTION]... -t DIRECTORY SOURCE...
  • rm:remove,删除文件。
     注意:所有不用的文件建议不要直接删除,而是移动到某个专用目录,用来模拟回收站。
    rm [OPTION]... FILE...

  • install:复制文件并设置文件属性。

  • mktemp:创建临时文件。
     注意:mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存起来。


3.3 文件压缩:gzip/gunzip,bzip2/bunzip2,xz/unxz,zip/unzip,tar

  • gzip/gunzip:以.gz结尾的压缩格式文件
gzip [OPTIONS] /PATH/TO/SOMEFILE...

	-#:指明压缩比1-9,默认为6,数字越大,压缩比就越大
	-d:decompress,解压缩,相当于gunzip
	-c:将压缩后的数据输出至标准输出(默认为显示屏)
	-r:递归至目录中对每个文件进行压缩

zcat /PATH/TO/SOMEFILE.GZ:无需显示解压缩便可查看压缩文件的内容
  • bzip2/bunzip2:以.bz2结尾的压缩格式文件
bzip [OPTIONS] /PATH/TO/SOMEFILE...

	-#:指明压缩比1-9,默认为6,数字越大,压缩比就越大
	-d:decompress,解压缩,相当于bunzip2
	-k:压缩后保留原文件

bzcat /PATH/TO/SOMEFILE.BZ2:无需显示解压缩便可查看压缩文件的内容
  • xz/unxz:以.xz结尾的压缩格式文件
xz [OPTIONS] /PATH/TO/SOMEFILE...

	-#:指明压缩比1-9,默认为6,数字越大,压缩比就越大
	-d:decompress,解压缩,相当于bunzip2
	-k:压缩后保留原文件

xzcat /PATH/TO/SOMEFILE.BZ2:无需显示解压缩便可查看压缩文件的内容
  • zip/unzip:以.zip结尾的压缩格式文件,可以将多个文件压缩归档指单个文件
    zip ZIP_FILE.zip /PATH/TO/SOMEFILE

  • tar:可进行归档和压缩文件,归档就是将多个文件打包为单个文件以便于管理,默认的归档不会执行压缩,归档不会删除原文件

tar [OPTIONS] -c -f /PATH/TO/TARFILE.tar /PATH/TO/FILE...
	-cf:归档并压缩
	-xf:展开归档,可直接使用,不用指定对应的压缩工具
	
	-z:对应于gzip,压缩后的文件后缀名为.tar.gz
	-j:对应于bzip2,压缩后的文件后缀名为.tar.bz2
	-J:对应于xz,压缩后的文件后缀名为.tar.xz

4 常用文本处理命令:wc,cut,sort,uniq

  • wc:字符统计
  • cut:文本内容切割
  • sort:排序
  • uniq:显示重复的行

5 常用用户、组管理命令

Linux操作系统是多任务(Multi-tasks)、多用户(Multi-users)的分时操作系统。不管是Linux系统还是WIndows系统,为了保证用户系统和数据资料的安全,需要对每个登陆的用户进行验证,即账户密码,又对每个用户对应的权限有所限制,而一旦拥有相同权限的人多了,就可以把那些用户分在一起,所以有了组,可以理解为权限狗系统用户。

查看用户信息
Linux系统中用户的登录信息存储在**/etc/passwd** 中,其显示格式为:

name:password:UID:GID:GECOS:directory:shell

name:用户登录的名字
password:为用户加密的密码,如果显示为字符x,则表示密码存储在/etc/shadow文件中
UID:用户标识
GID:用户所属基本组的组标识
GECOS:备注信息
directory:用户的家目录
shell:用户的默认shell

查看组信息
与Linux用户组信息相关的文件包括:/etc/group,/etc/gshadow
用户存储在/etc/group里面的信息格式为:

group_name:password:GID:user_list

group_name:用户组的名字;
password:加密的用户组密码;
GID:用户组标识;
user_list:以此组为附加组的用户列表;


4.1 用户管理:useradd,usermod,userdel,passwd,change,id

在Linux系统中,每个使用该系统的人称之为用户(User),而用户标识(UID) 则是每个用户的唯一标识,每个用户的登录名(UserID)和用户标识(UID)在Linux系统中一一对应,通过名称解析库来转换。

用户类别
  管理员:root,其用户标识(UID)为0。
  普通用户
   系统用户:为了让后台进程和服务类进程能够以非管理员身份运行,通常需要为此创建多个普通用户,此类用户不需要登录到系统中。
   登录用户:正常登录及访问系统时需要登录的用户账号。

用户标识:UserID,UID
 16bits:二进制数字:0-65535
  管理员:0
  普通用户:1-65535
   系统用户:1-499(CentOS6),1-999(CentOS7)
   登录用户:500-60000(CentOS6),1000-60000(CentOS7)

名称解析:名称转换
 UserID<- ->UID
  根据名称解析库进行转换:/etc/passwd

  • useradd:创建用户
  • usermod:修改用户属性
  • userdel:删除用户
  • passwd:设置用户的认证信息,包括用户密码、过期时间等。
  • change:更改用户密码过期信息
  • id: 显示用户的真实有效ID
  • chmod:可以更改用户权限
  • chown:可以更改用户属主和属组
  • chgrp:更改属组
  • umask::文件的权限反向掩码,遮罩码;新建文件或目录的权限是减去umask所得

4.2 组管理:groupadd,groupmod,groupdel,gpasswd,newgrp

  • groupadd:添加组
  • groupmod:修改组属性
  • groupdel:删除组
  • gpasswd:管理组
  • newgrp:临时切换指定的组为基本组

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章