linux查看文件/目录 大小(du)、权限(ls ll),用户及组(user/group)增、删、改 (chmod/chown/chgrp)

使用du命令查看文件/目录大小

例:要显示一个目录树及其每个子树的磁盘使用情况

du -h .

#-h 自动根据大小以k、m、g为单位显示,提高信息的可读性。kb、mb、gb是以1024为换算单 位, -h以1000为换算单位;

#若省略/home/linux路径目录,则显示当前目录的;

#“.”代表当前目录下。也可以换成一个明确的路径

du -sh /etc

#-s 仅显示总计,即显示路径目录或当前目录的总大小。


语法:du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]

常用参数:

-a或-all  为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。

-b或-bytes 显示目录或文件大小时,以byte为单位。

-c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。

-D或–dereference-args 显示指定符号连接的源文件大小。

-h或–human-readable 以K,M,G为单位,提高信息的可读性。

-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。

-k或–kilobytes 以1024 bytes为单位。

-l或–count-links 重复计算硬件连接的文件。

-L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。

-m或–megabytes 以1MB为单位。

-s或–summarize 仅显示总计,即当前目录的大小。

-S或–separate-dirs 显示每个目录的大小时,并不含其子目录的大小。

-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。

–exclude=<目录或文件> 略过指定的目录或文件。

–max-depth=<目录层数> 超过指定层数的目录后,予以忽略。

–help 显示帮助。

–version 显示版本信息。

****************************************************************************************************************************************


使用ls ll查看文件权限,用户和所属组


ls 命令的含义是list显 示当前目录中的文件名字。注意不加参数它显示除隐藏文件外的所有文件及目录的名字。

1.ls-lh 查询当前目录下文件夹/文件用户所属组及权限
root@bao-vm:/test/a# cd /
root@bao-vm:/# ls -lh
总用量 104K
drwxr-xr-x   2 root root 4.0K 6月   4 17:15 bin
drwxr-xr-x   3 root root 4.0K 7月  17 14:08 boot
lrwxrwxrwx   1 root root   32 7月  17 00:02 initrd.img -> boot/initrd.img-4.4.0-31-generic
lrwxrwxrwx   1 root root   32 7月   3 20:42 initrd.img.old -> boot/initrd.img-4.4.0-28-generic
 显示说明:
 第三行,总用量(total) 104k  Total后面的数字是指当前目录下所有文件所占用的空间总和。使用ls –lh可查看,也可使用ls –alh查看
 第四行以后   
drwxr-xr-x   2 root root 4.0K 6月   4 17:15 bin
 第1字段: 文件属性字段。文件属性字段总共有10个字母组成;第一个字符表示文件类型。
 文件属性字段,参数含义:
-表示该文件是一个普通文件
 d 表示该文件是一个目录,字母"d",是dirtectory(目录)的缩写  注意:目录或者是特殊文件,这个特殊文件存放其他文件或目录的相关信息
 l表示该文件是一个链接文件。字母"l"是link(链接)的缩写,类似于windows下的快捷方式

 b 的表示块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有一个主  设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字  节)

 c 表示该文件是一个字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最  小单位为一个字节

 p 表示该文件为命令管道文件。与shell编程有关的文件

 s 表示该文件为sock文件。与shell编程有关的文件

 链接文件分为硬链接或符号链接两种。

 硬链接:多个指向同一文件。硬链接文件大小完全相同,如有多个硬链接,所链接的文件只是一个文件大小。

 同一个文件所有的文件都是等价的,操作系统不区分链接创建的先后顺序,若一个文件存在两个链接,那么除去一个文件还可以通过另外一个文件来  访问该文件,也可以除去  创建链接时用到的文件,但只要还有一个链接存在,就可通过该连接访问文件。

 建立硬链接方法:ln a b是建立硬链接

 符号链接(软链接):建立一个独立的文件,这个文件会让数据的读取指向它链接的文件内容。类似windows快捷方式。

 建立软链接: ln -s a b

 a 是源文件,b是链接文件名,其作用是进入b目录,实际上是链接进入了a目录

 如:ln -s /usr/local/mysql/bin/mysql  /usr/local/bin

 实际上是在/usr/local/bin目录创建了个mysql文件,地址指向/usr/local/mysql/bin/mysql文件,相当于windows中的快捷方式


 第1字段后9个字母表示该文件或目录的权限位。r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)
 前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
drwxr-xr-x   2 root root 4.0K 6月   4 17:15 bin
 这行表示,bin目录所对应的相关权限。
 拥有者的权限为读、写、可执行,文件所属组搬用的权限为读、可执行,其他用户拥有的权限为读、可执行

lrwxrwxrwx   1 root root   32 7月  17 00:02 initrd.img -> boot/initrd.img-4.4.0-31-generic
 第2字段:链接占用的节点数。
 该字段文件占用一个节点,属于软链接(符号链接)
 如果是目录,则第2字段表示该目录所含子目录的个数
 新建空目录,此目录的第二字段就是2,表示该目录下有两个子目录。因为每一个目录都有一个指向它本身的子目录"." 和指向它上级目录的子目  录"..",此默认子目录是隐藏的。
 每次在目录下新建一个子目录,该目录第2字段的值就增1,但是新建一个普通文件该字段值不增加。

 
 第3字段:文件(目录)拥有者
该字段表示该文件拥有者是谁。只有文件的拥有者才具有改动文件属性的权利。root具有改动任何文件属性的权利。对于目录,只有拥有该目录的用  户,或者具有写权限的用户才有在目录下创建文件的权利。
 前ID号的数字。

第4字段:文件(目录)拥有者所在的组

一个用户可以加入很多个组,但是其中有一个是主组,就是显示在第4字段的名称。
第5字段: 文件所占用的空间(以字节为单位)
 第5字段表示文件大小,如果是目录,表示该目录大小。注意是目录本身大小,而非目录及其下面的文件的总大小。
第6字段:文件(目录)最近访问(修改)时间
第7字段:文件名


2.文件名颜色的含义


如果某一用户被删除,而该用户家目录还存在,ls -l 查看该文件将显示一个代表用户存在
 默认色代表普通文件。例:install.log
 绿色代表可执行文件。例:rc.news
 红色代表tar包 文件。 例:vim-7.1.tar.bz2
 蓝色代表目录文件。  例:aa
 水红代表图象文件。  例:Sunset.jpg
 青色代表链接文件。  例:rc4.d     (此类文件相当于快捷方式)
 黄色代表设备文件。  例:fd0

            ls(list)  功能说明:列出目录内容。
 语  法:ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I <范本样式>][-T <跳格字数>][-w <每列字符数>][--block-size=<区块大小>][--color=<使用时机>][--format=<列表格式>][--full-time][--help][--indicator-style=<标注样式>][--quoting-style=<引号样式>][--show-control-chars][--sort=<排序方式>][--time=<时间戳记>][--version][文件或目录...]


补充说明:执行ls指令可列出目录的内容,包括文件和子目录的名称。


参  数:

  -1   每列仅显示一个文件或目录名称。

  -a或--all   下所有文件和目录。

  -A或--almost-all   显示所有文件和目录,但不显示现行目录和上层目录。

  -b或--escape   显示脱离字符。

  -B或--ignore-backups   忽略备份文件和目录。

  -c   以更改时间排序,显示文件和目录。

  -C   以又上至下,从左到右的直行方式显示文件和目录名称。

  -d或--directory   显示目录名称而非其内容。

  -D或--dired   用Emacs的模式产生文件和目录列表。

  -f   此参数的效果和同时指定"aU"参数相同,并关闭"lst"参数的效果。

  -F或--classify   在执行文件,目录,Socket,符号连接,管道名称后面,各自加上"*","/","=","@","|"号。

  -g   次参数将忽略不予处理。

  -G或--no-group   不显示群组名称。

  -h或--human-readable   用"K","M","G"来显示文件和目录的大小。

  -H或--si   此参数的效果和指定"-h"参数类似,但计算单位是1000Bytes而非1024Bytes。

  -i或--inode   显示文件和目录的inode编号。

  -I<范本样式>或--ignore=<范本样式>   不显示符合范本样式的文件或目录名称。

  -k或--kilobytes   此参数的效果和指定"block-size=1024"参数相同。

  -l   使用详细格式列表。

  -L或--dereference   如遇到性质为符号连接的文件或目录,直接列出该连接所指向的原始文件或目录。

  -m   用","号区隔每个文件和目录的名称。

  -n或--numeric-uid-gid   以用户识别码和群组识别码替代其名称。

  -N或--literal   直接列出文件和目录名称,包括控制字符。

  -o   此参数的效果和指定"-l" 参数类似,但不列出群组名称或识别码。

  -p或--file-type   此参数的效果和指定"-F"参数类似,但不会在执行文件名称后面加上"*"号。

  -q或--hide-control-chars   用"?"号取代控制字符,列出文件和目录名称。

  -Q或--quote-name   把文件和目录名称以""号标示起来。

  -r或--reverse   反向排序。

  -R或--recursive   递归处理,将指定目录下的所有文件及子目录一并处理。

  -s或--size   显示文件和目录的大小,以区块为单位。

  -S   用文件和目录的大小排序。

  -t   用文件和目录的更改时间排序。

  -T<跳格字符>或--tabsize=<跳格字数>   设置跳格字符所对应的空白字符数。

  -u   以最后存取时间排序,显示文件和目录。

  -U   列出文件和目录名称时不予排序。

  -v   文件和目录的名称列表以版本进行排序。

  -w<每列字符数>或--width=<每列字符数>   设置每列的最大字符数。

  -x   以从左到右,由上至下的横列方式显示文件和目录名称。

  -X   以文件和目录的最后一个扩展名排序。

  --block-size=<区块大小>   指定存放文件的区块大小。

  --color=<列表格式>   培植文件和目录的列表格式。

  --full-time   列出完整的日期与时间。

  --help   在线帮助。

  --indicator-style=<标注样式>   在文件和目录等名称后面加上标注,易于辨识该名称所属的类型。

  --quoting-syte=<引号样式>   把文件和目录名称以指定的引号样式标示起来。

  --show-control-chars   在文件和目录列表时,使用控制字符。

  --sort=<排序方式>   配置文件和目录列表的排序方式。

  --time=<时间戳记>   用指定的时间戳记取代更改时间。

  --version   显示版本信息。

****************************************************************************************************************************************


linux用户组及用户相关操作(增删改查)


1.linux系统用户组管理

①增加一个新的用户组使用groupadd命令。 格式:groupadd 选项 用户组

 -g GID 指定新用户组的组标识号(GID)。
 -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

 例,添加新用户组:groupadd testgroup


②如果要删除一个已有的用户组,使用groupdel命令。格式:groupdel 用户组

 例,删除用户组:groupdel testgroup


修改用户组的属性使用groupmod命令。 格式:groupmod 选项 用户组

 -g GID 为用户组指定新的组标识号。
 -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
 -n 新用户组 将用户组的名字改为新名字

 例1:groupmod -g 102 group2                       此命令将组group2的组标识号修改为102。

 例2:groupmod –g 10000 -n group3 group2      此命令将组group2的标识号改为10000,组名修改为group3。


如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。 

 例:newgrp root 

 这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管  理工具来完成。


2.Linux系统用户账号的管理

添加新的用户账号使用 useradd命令。格式:useradd 选项 用户名

 -c comment 指定一段注释性描述。
 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
 -g 用户组 指定用户所属的用户组。
 -G 用户组,用户组 指定用户所属的附加组。
 -s Shell文件 指定用户的登录Shell。

 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

 -r  表示用户是系统用户,不可用于登录系统。

 例1:useradd test    此命令创建一个新用户,用户名为test

 例2: useradd -s /bin/sh -g group –G adm,root gem

 此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。


②删除帐号

  如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主  目录。删除一个已有的用户账号使用userdel命令,其格式如下:userdel 选项 用户名

 常用的选项是-r,它的作用是把用户的主目录一起删除。


修改帐号

 修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
 修改已有用户的信息使用usermod命令,其格式如下:usermod 选项 用户名

 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用  如下选项:

 -l 新用户名  这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

 例:usermod -s /bin/ksh -d /home/z –g developer sam  此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。


用户口令的管理

 用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指    定空口令。
 指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

 命令的格式为:passwd 选项 用户名

 -l 锁定口令,即禁用账号。
 -u 口令解锁。
 -d 使账号无口令。
 -f 强迫用户下次登录时修改口令。
 如果默认用户名,则修改当前用户的口令。

 例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:

 $ passwd
 Old password:******
 New password:*******
 Re-enter new password:*******

 如果是超级用户,可以用下列形式指定任何用户的口令:

 # passwd sam
 New password:*******
 Re-enter new password:*******

 普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用  户;而超级用  户为用户指定口令时,就不需要知道原口令。

 为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。

 为用户指定空口令时,执行下列形式的命令:# passwd -d sam   此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。

 

 # passwd -l sam
  新建用户异常:
 useradd -d /usr/hadoop -u 586 -m hadoop -g hadoop
 1  Creating mailbox file: 文件已存在  
    删除即可 rm -rf /var/spool/mail/用户名
 2 useradd: invalid numeric argument 'hadoop'
   这是由于hadoop组不存在 请先建hadoop组
 通过cat /etc/passwd 可以查看用户的pass
 cat /etc/shadow 可以查看用户名
 cat /etc/group  可以查看 组

****************************************************************************************************************************************

chown/chgrp/chmod  修改文件所属用户和组


区别:
chown一般用来更改属主。也就是文件所属用户。
chgrp一般用来更新所属组。也就是文件所属组。
chmod功能要比chown强大。可更改文件所有属性和权限。只有管理员帐户才有权限用此命令。

1.chown 
 使用方式:chown [-cfhvR] [--help] [--version] user[:group] file... 
 说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)  所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。 

 user : 新的档案拥有者的使用者 ID
 group : 新的档案拥有者的使用者群体(group)
 -c : 若该档案拥有者确实已经更改,才显示其更改动作
 -f : 若该档案拥有者无法被更改也不要显示错误讯息
 -h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
 -v : 显示拥有者变更的详细资料
 -R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
 --help : 显示辅助说明
 --version : 显示版本 
 例:chown jessie:users file1.txt 将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie
 例:chown -R lamport:users * /chown -R lamport:users .    将当前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport

2.chmod
 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 
 说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。 
 -c : 若该档案权限确实已经更改,才显示其更改动作 
 -f : 若该档案权限无法被更改也不要显示错误讯息 
 -v : 显示权限变更的详细资料 
 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 
 --help : 显示辅助说明 
 --version : 显示版本 

 mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...]
 其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)  者,o 表示其他以外的人,a 表示这三者皆是。 
 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 
 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
 
 例:chmod ugo+r file1.txt   将档案 file1.txt 设为所有人皆可读取
 例:chmod a+r file1.txt     将档案 file1.txt 设为所有人皆可读取
 例:chmod ug+w,o-w file1.txt file2.txt  
 将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
 例:chmod u+x ex1.py        将 ex1.py 设定为只有该档案拥有者可以执行
 例:chmod -R a+r *          将当前目录下的所有档案与子目录皆设为任何人可读取

 此外chmod也可以用数字来表示权限如 chmod 777 file 
 语法为:chmod abc file 
 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 
 r=4,w=2,x=1 
 若要rwx属性则4+2+1=7; 
 若要rw-属性则4+2=6; 
 若要r-x属性则4+1=5。
 

 例:chmod a=rwx file 和 chmod 777 file 效果相同 
 例:chmod ug=rwx,o=x file 和 chmod 771 file  效果相同

 若用chmod 4755 filename可使此程式具有root的权限 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值