一、Linux下的文件目录

简介:linux的文件系统是采用级层式树状目录结构,在此 结构中的最上层是根目录“/”,然后在此目录下再创建 其他的目录。深刻理解linux文件目录是非常重要的,如下图所示:

将来你用哪个用户登录,你就会在那个用户的目录下面。为了大家再进一步加深对Linux的文件目录的理解,下面再附上一张对应目录作用的解释:

简单演示:

bin:目录下面的文件:

在这里大家可以使用上面的命令,进入到其他的目录下面看看,里面的文件。(只是简单的看看哦,不要随意修改。)

总结:常用命令

ls:显示当前目录下面的所有文件。

ls 命令罗列出了终端当前目录下的所有文件及目录。当然,所有这些目录中都可能还有子目录和文件。我们想知道这些目录下面还有哪些目录和文件可以使用 -R 参数将它们都显示出来。

:ls -r

ls 命令还有许多参数,可以获得更加详细的信息。比如 -1 参数。它可以使目录内的文件和目录每行只显示一个。

另外还有一个问题是我们的 Linux 系统中也会有隐藏文件,这点与 Windows 系统很像。除用户自己的文件之外,有一些文件是由系统、或应用程序使用并修改的。在默认情况下将它们隐藏确实对“用户本身”是一种保护。如果我们需要检查 Linux 系统中这些隐藏文件怎么办?

注意:以“.”开头的文件和目录名称,它们都是隐藏的。同样,用蓝色显示出来的是目录,隐藏的目录。

另外这样看好像很乱不是吗?我们可以把 -1 和 -a 参数结合使用

这样是不是整齐一点了,如果有人想想在 Windows 中可以用列表显示文件及目录的详细信息一样,我们可以使用 ls -l

clear清屏

如果想看自己现在是在哪个目录下面,可以使用pwd命令,这个命令非常有用!!!当你不知道自己现在是在哪里,可以使用它。

关于ls的命令大家可以参考:http://man.linuxde.net/ls

find命令的使用:

解释:注意之间的空格,/表示root目录,-name表示文件的名字。

注意:这样会查找的很慢,因为它是从根目录开始的,所以以后尽量从一个目录下面查找,这样可以缩短查找的范围。

grep命令的使用:

解释:-n显示行号  guozheng表示要查询的关键字  hello.cpp表示要在那个文件中查找。

cd /表示:回到根目录下面

cd ../表示:回到上一级目录

cd 表示:回到该用户所在的目录下面

需求:有时我需要把查找的信息或者统计的信息保存到另外一个文件,提供给别人。

重定向命令:

ls -l > a.bak 列表的内容写入文件a.bak中(覆盖写)

ls -al >> aa.bak列表的内容追加到文件aa.bak的末尾

注意:这个命令非常有用,作用就是把统计的信息保存到a.bak文件中。

二、Linux中的文件所有者、所在组和其它组

在讲解Linux中的用户和组的问题,我们先看一下Windows中的用户和组,如下图所示:

好了,我们来看看Linux中的用户和组的概念。

简介:

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件 有所有者、所在组、其它组的概念。

1)所有者 (2)所在组 (3)其它组 (4)改变用户所在的组

  • 文件所有者

一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者。

用【ls –ahl 】命令可以看到文件的所有者。

你也可以用 【chown 用户名 文件名 】来修该文件的所有者。

我们使用gz普通用户创建的目录,默认属于该用户,如果我想改变该目录的所属用户,可以使用:chown 用户名 文件名

  • 用户所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。 用【ls –ahl 】命令可以看到文件的所有组。 你可以通过【chgrp 组名 文件名】来修改文件所在的组。

使用:ls -ahl | more

修改该目录所在的组:chgrp root mysrc  可以改变该目录所在的组。

现在我把mysrc目录所在的组gz修改为root

  • 其他组

除开文件的所有者和所在组的用户外,系统的其它用 户都是文件的其它组。

  • 改变用户所在的组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的 管理权限可以改变某个用户所在的组:

     usermod –g 组名 用户名 你可以 用

     usermod –d 目录名 用户名 改变该用户登陆的初始目录

我知道你很晕不要紧,我们来看一个案例:(我们要把下面的用户添加到对应的组中)

 step1:使用root身份创建对应的组

如何查看创建的组呢?使用:cat /etc/group

解释:policeman:组的名称   1001:改组的ID号是唯一的。

使用相同的命令创建土匪组。

step2:创建用户,并同时指定该用户属于哪个组

命令使用:

useradd  -m 用户名

案例: useradd -m xiaoming 【 添加用户 xiaoming】  (特别提醒:这里一定要加上:-m 并且是小写的,否则创建好的用户你是登陆不上的。)

passwd 用户名 【修改密码】

案例: passwd xiaoming 【修改xiaomiing的密码】

userdel 用户名 【删除用户】

userdel xiaoming 【删除用户xiaoming】

userdel -r xiaoming 【删除用户以及用户主目录】

创建:施瓦辛格(Iamback)

查看Linux中的所有用户信息:cat /etc/passwd

解释:shitailong:表示用户的名字;x:表示加密后的用户的密码;1003:表示用户的ID;1002:表示用户所在组的ID;/home/shitailong:用户所在的主目录

step3:分配密码

为了好记,这三个用户默认密码是123456

step4:测试

现在:我想把施瓦辛格(Iamback)也移动到土匪组中,该如何办?

使用:usermod –g tufei iamback

现在金三角都在土匪组了。

三、文件权限的管理

ls -l中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

  10个字符确定不同用户能对文件干什么

  第一个字符代表文件(-),目录(d),链接(l)

  其余字符每3个一组(rwx) 读(r) 写(w) 执行(x)

第一组rwx : 文件拥有者的权限是读、写和执行

第二组rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行

第三组r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行 可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7

1 表示连接的文件数(如果是文件夹也就是目录的话,表示:该目录下面的文件数)

root 用户

root 组

1213 文件大小(字节)

Feb 2 09:39 最后修改日期

abc 文件名

现在我用jiesen登陆创建文件:

例如:-rw-r--r--

现在我用shitailong用户进入到jiesen的目录下面,结果如下:

结果可以进入到该目录下面,原因是jiesen目录的权限如下:

对照上面的分析:其他组的用户对jiesen目录有可读的权限。

Linux下使用对目录权限的管理,不能一个用户进入到另外一个用户的目录。

现在jiesen允许shitailong进入到自己的主目录下面,并且有可写权限该如何操作?,如下图所示:

注意:不能使用shitailong开修改jiesen的目录权限。只能有jiesen和root能修改。

这样设置的话等于是完全公开,其他组的用户也可以进入到该目录下面,所以我要该用户本身以及该用户所在的组可以进入,其他组的用户不允许进来。

然后,我用gz用户登录,看看能不能进入到jiesen目录中,结果如下:

注意:这里只是修改文件夹(目录的)权限,目录下面的文件权限没有修改。

补充:

改变权限的命令:

chmod 改变文件或目录的权限

  chmod 755 abc : 赋予abc权限rwxr-xr-x

  chmod u=rwx,g=rx,o=rx abc : 同上 u=用户权限 g=组权限 o=不 同组其他用户权限

  chmod u-x,g+w abc : 给abc去除用户执行的权限,增加组写的权限

  chmod a+r abc :给所有用户添加读的权限

改变拥有者(chown)和用户组(chgrp)命令

  chown xiaoming abc : 改变abc的拥有者为xiaoming

  chgrp root abc : 改变abc所属的组为root

  chown root ./abc : 改变abc 这个目录的所有者是root

  chown -R root ./abc : 改变abc 这个目录及其下面所有的文件和目 录的所有者是root

建议还是要多练习多敲命令。权限这部分确实很复杂,大家可以练习一下,如果遇到问题解决不了的,可以在评论区提出来,我会帮大家看看。

好了,今天就讲到这里,晚上继续更新这个系列的文章,觉得可以的话,希望点下推荐哈~你们的推荐是我的动力。

作者:郭峥

出处:http://www.cnblogs.com/runningsmallguo/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

.Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限的更多相关文章

  1. .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用

    一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...

  2. .Neter玩转Linux系列之三:Linux下的分区讲解

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  3. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  4. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  5. spice在桌面虚拟化中的应用系列之二(Linux平台spice客户端的编译安装,支持USB映射)

    1.系统环境 1.1 测试环境 centos6.4最小化安装(centos6.x桌面版也适用) 使用yum源为163源加EPEL源 1.2 spice客户端介绍 spice作为远程连接工具,可以支持远 ...

  6. linux系列(二):cd命令

    1.命令格式: cd [目录名] 2.命令功能: 切换当前目录至目录名目录 3.常用实例 (1).进入系统根目录 命令: cd / 输出: felix@felix-computer:~/软件$ cd ...

  7. linux系列(二十):find命令

    1.命令格式 find pathname -options [-print -exec -ok ...] 2.命令功能 用于在文件树种查找文件,并作出相应的处理 3.命令参数 pathname: fi ...

  8. linux系列(二十一):chmod命令

    1.命令格式 chmod [-cfvR] [--help] [--version] mode file 2.命令功能 用于改变文件或目录的访问权限,用它控制文件或目录的访问权限. 3.命令参数 必要参 ...

  9. linux系列(二十二):tar命令

    1.命令格式 tar[必要参数][选择参数][文件] 2.命令功能 用来压缩和解压文件.tar本身不具有压缩功能.他是调用压缩功能实现的 3.命令参数 必要参数: -A 新增压缩文件到已存在的压缩 - ...

随机推荐

  1. redis info 命令详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt119 Redis Info 命令以一种易于理解和阅读的格式,返回关于 Red ...

  2. ASP.NET Excel导入Sql Server数据库(转)

    先看界面图 实现的基本思想: 1,先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2,使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Exce ...

  3. 第2阶段——编写uboot之硬件初始化和制作链接脚本lds(1)

    目标: 1.关看门狗 2.设置时钟 3.初始化SDRAM (初始化寄存器以及清除bss段) 4.重定位 (将nand/nor中代码COPY到链接地址上,需要初始化nandflash,读flash) 5 ...

  4. [转载]dreamweaver代码提示失效

    原文地址:dreamweaver代码提示失效作者:云中雁 2007-03-23 12:19:22|  分类: 编程手记 |  标签:web2.0  javascript   |字号大中小 订阅 吴庆民 ...

  5. Scrapy 爬虫入门 +实战

    爬虫,其实很早就有涉及到这个点,但是一直没有深入,今天来搞爬虫.选择了,scrapy这个框架 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tut ...

  6. Swing-JTable检测单元格数据变更事件

    在JTable的初级教程中往往会提到,使用TableModel的 addTableModelListener方法可以监听单元格数据的变更,在其事件处理函,数tableChanged中,可以通过e.ge ...

  7. 201521123031《java程序设计》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句 ...

  8. 201521123099 《Java程序设计》第4周学习总结

    1. 本周学习总结 2. 书面作业 注释的应用 使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) 面向对象设计(大作业1,非常重要) 2.1 将在网上商城购物或 ...

  9. 201521123088《Java程序设计》第13周学习总结

    1.本周学习总结 2.书面作业 1. 网络基础1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? ping cec. ...

  10. 201521145048《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...