热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

目录的相关操作指令(鸟哥私房菜)

1指令集访问2【cd】更改目录3【pwd】显示目录路径4【mkdir】创建目录,但无法建立多层目录mkdir-p可以自行建立多层目录5【rmd

 

1  指令集访问

2 【cd】  更改目录 

3 【pwd】 显示目录路径

4 【mkdir】 创建目录,但无法建立多层目录   mkdir -p 可以自行建立多层目录

5 【rmdir】 删除目录

6 【PATH】 环境变量  查看环境变量   echo $PATH.

eg.PATH指令的使用方法:

7 【cp】  复制档案

 

8 【rm】 删除档案

注:删除非空目录是,只能用rm-r来删掉

 

 

 

9 【mv】 移动档案

10 【basename】 取得最后的文档名

  【dirname】取得目录名    

eg.

二  档案内容查询

11 【cat】将一个档案内容连续的打印输出到屏幕上。 cat是Concatenate  连续的简写

12 【tac】 反向打印档案内容,与【cat】指令正好相反操作

 

13 【nl】添加打印行号

 14 【more】 一页一页翻动进行档案显示

15 【less】一页一页反动

16 【head】取出前面几行

17 【tail】取出后面几行

注:tail -f 动态监听某个文档,并显示。  比如 日志文件,我们要查看某个日志文件的动态效果,就需要tail-f命令来进行监听并显示,来测试某个软件或者服务哪个地方出问题

18【od】 查阅非文本文档

之前以上命令都是用来查阅文本文档的内容,但要查看非文本文档内容时,就需要【od】命令

19 【touch】修改档案时间或建立新的档案

任何一个文档,在Linux下都有三个时间

modification time (mtime) 该档案内容发生改变时,会更新该时间

status time (cime) 当该档案状态发生改变时,更新该时间。例如  修改权限,修改文档属性等

access time(time) 当文档内容被读取时,就会更新这个时间 例如 利用cat命令读物文档时,该时间就会更改

默认显示时间为 mtime 。例如,通过ls-l命令查看档案时,显示的时间即为mtime时间。

touch命令的用途,例如 某个文档的建立因为系统时间或者其他原因导致的系统时间出现混乱,那该档案的建立时间就有可能会发生出现在未来的情况,如果应用程序利用该文档就会导致应用程序出现混乱无法顺利运行的情况,就可以利用touch命令进行文档时间的修改

显示三个时间,可以用命令ll来显示。

eg  

解释: mkdir 建立目录 

修改属性 chown ,将该文档的所有者属性赋给dmtsai用户

修改权限chmod 755   7/5/5  user/group/other 即 r/w/x对应的数字为 4/2/1  即  user所有者应有7的权限,即r/w/x权限,而 group和other只拥有 5/5的权限,即 r/x的权限,即只读权限

 20 【umask】  档案预设权限

当用户建立某个档案时,系统会有一个默认权限。而这个默认权限的更改则需要 umask命令来实现

上图第二行中,0022,一般权限只有 r/w/x权限,即后面三维数字022,第一位0权限,则是特殊权限用的。所以,一般情况下,只需要关注后3位数字即可。

对于权限的指定,还需要区分在前一篇博客中所说的,针对档案和目录的x的权限含义时不一样的。对档案,x的权限在于该档案是否可执行,即是否是可执行程序等。而对于目录,x的含义在于是否能够打开该文档。

针对普通档案来说,只有写等操作,而不需要执行。所以针对普通档案的权限,x是不必须的。但对于档案来说,因为x权限牵涉到该文档是否能被用户打开,所以x权限是必须的。这点在设置权限时一定要多加注意。

umask命令,后面的数字不是代表该文档的权限,而是代表该文档需要减掉的权限。例如  要去掉写的权限,则umask 2 .去掉x的权限  则umask 1.以此类推,而非代表该文档设置的权限,这点也要多注意,又是一个坑。

上例中  umask 0022权限的解析为   第一位为特殊权限,不做考虑。 第二位为所有者权限,因为是0即不拿掉任何权限。第三位和第四位分别是group和other权限,2代表w的权限,即group和other拿掉了w的权限。

 21 【chattr】 配置文档隐藏属性

22 【lsattr】显示档案隐藏属性

23 【Set UID】 特殊权限标识,建成SUID的特殊权限。例如 用lsattr查看权限时,如果出现【-rwsr-xr-x】,当s这个标志出现在档案拥有者的x权限上时,此时就被成为Set UID,简称 SUID的特殊权限,SUID特殊权限的功能如下:

。SUID权限仅对二进制程序有效(binary program)

。执行者对于改程序需要具有x的可执行权限

。本权限仅对执行改程序的过程中有效。(这个需要好好理解,什么叫过程有效)

。执行者将具有该程序拥有者的(owner)权限(这个就要结合上面那一条,程序过程有效来理解这个owner权限),书中给出例子,能够更好的理解第二项和第三项的内容,例子如下

注:SUID仅可用于binary program(二进制可执行文件)上,不能够用在shell script 上,因为shell sript只是将很多binary执行档加载进来进行执行而已。所以,SUID权限的部分不针对shellscript,而要看shellscript的内部的执行程序的具体权限来定。

24 【Set GID】

当s标志在档案拥有者的x项目为SUID时,那s在群组中的x时,则成为Set GID,SGID。请注意区分SGID和SUID的区别,SUID针对的是所有者的X权限的S,SGID针对的是群组,即Group群组权限的X权限的S。一个针对所有者,一个针对群组。

。SGIDdui 对二进制程序有用,即binary program

。程序执行者对于该程序来说,需具备X的权限

。执行者在执行的过程中将会获得该程序群组的支持。(是否就是能够获得该群组的相关权限?这句话我不理解,标记一下以后再加深认识),根据后面例子似乎有点明白其中的意思了。

假设某档案目录属于group组,该组有两个账户a,b.该档案group组的权限为770.如果不加SGID权限,则group组的a 用户创建的文档,b用户虽然也是group组的用户,但是只可以删除和移动,而无法修改。因为a用户虽然属于group组的用户,但是他创建的文档还是只属于a,而b是没有权限修改的。但是假如SGID权限之后,则group组的所有成员都可以在该档案目录下进行修改,进行协同操作。因为加入SGID权限之后,a创建的档案也即加入了group组,而非之前的a所在的用户组。

 下面的例子能够加深你的理解。

25 【Sticky Bit】

Sticky Bit,SBIT只针对目录有效,作用如下

。 当用户对于此目录具有w,x权限,亦即具有写入的权限时

。当用户在该目录下建立档案或者目录时,今有自己与root才有权利删除该档案

加深理解的解释

例:

tmp目录的权限有rwxrwxrwt,通过权限可得,任何人都可以进入tmp目录进行写入和读取操作,但是,rwt的t权限就表示,只有自己能够删除,更名,搬移自己的目录,别人无法进行上述操作

 

即 chmod u=rwxs,go=x test; 设置权限

chmod g+s,o+t test  设置SGID和SBIT权限

26 【file】查看某个档案的基本数据,例如查看某档案是否属于ASCII或者data档案,或者是二进制binary档案,且其中是否使用动态函数库(share library)等信息。

透过这个指令,我们能够判断该档案的格式。再做下一步的处理

27【which】寻找执行档

在【PATH】环境变量所规范的路径中,搜索【执行档】的文档名

eg.   whith -a ifconfig   在操作用户的环境变量【path】中搜索ifconfig档案。-a 将所有PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称

 28 【whereis】  寻找特定档案。

注:find,whereis,locate之间的异同。

find速度慢,草硬盘,通常都是采用whereis或者locate来检查,如果还找不到才使用find来搜寻,whereis和locate是利用数据库来搜寻数据,find是直接搜索硬盘,针对硬盘的操作。

29 【locate】

其中有句话,找出系统中所有与passwd相关的档名。也就是模糊查询的概念。

是否可以这样来理解,whereis相当于“=”,locate相当于 like '%%'

注:locate查询的数据来源于/var/lib/mlocate/里边的数据所搜寻的。而这个数据源的建立默认是每天执行一次,所以当你新建立起来的档案,却还在数据库更新之前搜寻该档案,那么locate指令会告诉你找不到。这就需要手动更新数据源,通过指令【updatedb】会读取/etc/updatedb.conf配置文件,更新整个数据库档案。二者的关系如下图:

30 【find】

find加时间进行查找数据档。具体如下

 

 

总结,权限与指令之间的关系

 

 

操作实例:  文件只能有一个组,而用户可以有多个组

假设系统中有两个账号,分别是alex和arod,这两个人除了自己的群组之外还共同支持一个名为project的群组,假设这两个用户需要共同拥有/srv/ahome/目录的开发权,且该目录不允许其他人进入查询,请问该目录的权限设定应为何?请先以传统权限说明,再以SGID的功能解析。

目标 了解为何项目开发时,目录最好需要设定SGID的权限

前提  多个账号支持同一个群组,且共同拥有目录的使用权

需求  需要使用root的身份来进行chmod,chgrp等帮用户设定好他们的开发环境才行

 

上图中/srv/ahome文档的权限是   -rw-rw-r   alex alex 0  。即该文档只有对于alex用户和alex群组具有读取和写入的权限,其他人权限只有读取的权限。跟要求不匹配,这就需要加入特殊权限SGID的权限。

 


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 由于同源策略的限制,满足同源的脚本才可以获取资源。虽然这样有助于保障网络安全,但另一方面也限制了资源的使用。那么如何实现跨域呢,以下是实现跨域的一些方法。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 涉及的知识点-ViewGroup的测量与布局-View的测量与布局-滑动冲突的处理-VelocityTracker滑动速率跟踪-Scroller实现弹性滑动-屏幕宽高的获取等实现步 ... [详细]
  • 关于extjs开发实战pdf的信息
    本文目录一览:1、extjs实用开发指南2、本 ... [详细]
author-avatar
蒲小平2502897955
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有