linux下文件的几种类型:目录,符号链接、套接字文件....。要注意,说到的文件类型是一个不一样的概念。linux下文件的类型不是后缀名上进行区别。
"-"表示该文件是一个普通类型的文件。什么是普通类型文件?你得记住linux下几种类型的文件。不属于那里面列出的,就属于普通类型文件了。

chmod 77- 文件名

读 4 写 2 执行 1

专业点的描述:chmod改变权限的方式分为:符号模式(就是使用了用户符号进行表示)和绝对模式(就是"chmod 777 文件名"的形式)

绝对模式的一点注意:实际上它是按照8进制进行计算的。而像读权限是4这样的表示方式,只是因为总结出来的一种快捷方式。这样不用去记8进制了。

chmod 74- yoa 这里错误了。没注意到一个地方:在绝对模式下,如果想设置没有任何权限,不是使用"-",而是让其值为0即可。

针对目录拥有可执行权限与针对文件拥有可执行权限,由于对象不同。所表现的概念是不同的。下面区别:

读权限:文件则表示可以查看文件内容。目录表示能列出目录。其实读目录,也就是列出该目录中有什么内容。本质是一样的。读权限表示可以读内容,而想想目录的内容是什么呢?打开目录内容,就是列出目录。实际表现是:使用ls能够列出所有内容信息。如果没有该权限。则不行。

写权限:文件表示可以修改文件内容和删除文件(注意这点)。由于写权限可以对目标的内容进行修改。如果将目录的内容看成是所有文件和子文件夹的组合。那么写权限对于目录而言,就是能够在目录下创建文件(疑问:删除目录下的文件也算吗?)。

执行权限:针对文件就是当成可执行文件进行解析。那么针对目录,就是能否进入目录里面去。

我应该想到,既然在linux所有文件都涉及到权限。而linux中文件包含七种类型(目录和普通文件只是其中一种类型)。,实际上,文件权限只针对文件和目录表现上有区别。其他的不管你是普通文件,还是块设备文件、套接字文件。只要与目录进行区别了,权限对他们起作用都一样的

创建一个文件是,权限设置有个缺省模式:就是你不做设置。系统会自动设置拥有的权限是rw。而没有x权限(这是出于安全考虑,想想,假如别人把这个文件当成程序进行执行,会产生不可预料的效果)
然后,这里就可以明白umask命令了。它就是设置和显示文件的缺省权限的。

软链接术语:
符号链接包括软链接和硬链接。
符号链接就是一个指针,执行一个具体的对象。跟windows环境比较,就类似于"快捷方式"的功能
软链接的标识或者表现特征:1.使用ls查看信息中显示文件的类型是l 2.文件名显示类似 "->"的形式

umask学习:

1.可以这样解释:系统为每个用户分配了一个umask值。这样,用户所创建的文件默认拥有哪些权限,就是根据umask值确定的。

2.输入:umask  显示:002 。的含义是:当前用户(我)所拥有的umask值是002。也就是其创建的文件对应拥有什么样的权限

3.umask的值计算方法记住两点:一、文件的最大权限是6。目录的最大权限值是7 二、就是拿掉umask值中对应的权位。得到的就是文件和目录所拥有的权限。

umask值是3  。可以这样推测:3=2+1.那么 就要去掉写权限和执行权限。得到的对象所拥有的权限是读权限。
看了上面例子,那么不要这样理解了:文件最大权限 6-3=3 那么得到的权限应该是写权限和执行权限。这么理解,导致计算的结果错误了。

多用吧。就会明白的。还有看列出的那个表。

c h o w n命令总结:
1.干什么用的?
change own的缩写。作用是改变一个文件的属主(所有者)。通俗点,就是改变文件的所有权。

2.命令先要看得懂
chown 用户名 文件

3.chgrp命令跟chown一样。只是是改变一个文件的所属组。那个用户名变成了组名

这里想到一个疑问:假如一个文件所有权是b用户。而b用户所属组是g。那么该文件上是否是属于g组呢?

chgrp是change group的缩写。应该是专门针对文件属于某个组使用的。如果文件上所有权是一个用户,而不是一个组。那么使用chgrp命令起不到作用。你无法改变其所属组的。

suid/guid使用的比较少。只需要了解就行了。原因是出于安全性考虑。一般linux厂商都不支持该功能。

第一章(文件安全与权限)总结:
1.主要讲了文件分哪几种类型。在linux上文件拥有哪些权限,如何使用命令分配文件权限。
2.介绍的命令包括:chmod、umask、chown

3.附带涉及到的知识有:chmod命令设置分为符号模式和绝对模式。怎么显示当前用户所属组。软链接使用。

第二章:find命令和xargs
1.find命令功能就相当于windwos系统中的查找。find命令非常耗费系统时间。尤其是在根目录下进行查找。

2.find命令就是的参数位置:find ~ -name "*.txt" -print; 查找范围 查找选项(按什么进行查找) 查找对象 附加选项。

猜测:find程序应该是默认按固定位置进行解析。学了java才明白。命令行的形式传递参数,所有的参数保存在一个args数组中。一次读取数组的每个元素。哪个下标对应什么,都预定义好了的。比如第一个作为查找范围,第二个就使用if进行判断。根据不同的值进入对应的语句块中。

第三章:后台执行命令
1.crontab条目:crontab文件中的条目。一行就是一个条目,表示一个操作。
2.crontab文件:每个文件要提交给cron进程。使用命令:crontab davecron;这样cron进程能够知道
3.cron进程:

4.crontab命令向cron进程提交文件。而at命令是向进程提交作业,稍后运行。

5.每个命令执行后面加上&符号。那么表示将该命令在后台进行运行。这样就不占用屏幕。示例:命令 &

6.nohup命令:no  hang up 。表示不挂起。在退出系统前,想让命令继续在后台执行。使用该命令。

7.将脚本的输出重定向到一个文件:  脚本 > 文件名 2>1&

第三章总结:
主要内容:主讲了在后台执行的命令使用。cron进程。crontab文件的条目设置。如何建立crontab文件并提交给cron进程。如何向cron进程提交一个作业。将一个脚本的输出结果定向到一个文件。

学习到的命令:crontab(向cron进程提交一个crontab文件)、at(向cron进程提交一个作业)、nohup(提交一个作业。在我退出的时候,不挂起该作业)、ps(查看进程号的相关信息)、kill(杀死进程)

第四章总结 主要讲了替换中用到元字符介绍,使用方式。
元字符:像替换中用到的"?","*"这些用来替代的符号(对一个集合的字符用一个符号进行替代)。就是元字符。\
学过正则中的符号,就知道那些就是元字符了。

第五章:shell 输入与输出

原来:脚本执行结果,如果不指定输出到什么地方,默认总是会输出到屏幕的

第六章:命令执行顺序
&&表示左边命令执行成功。才执行右边命令。代码示范:mv /apps/bin /apps/dev/bin && rm -r /apps/bin
|| 表示左边执行失败,就执行右边命令。

小结:主要讲了&&和||两个符号的知识与作用。{}是子shell中执行。()是在当前shell执行。这个具体怎么理解?

"|"有的时候表示同时执行。

第八章:grep家族
我们常常使用的 ls -l | grep 'd' 原来是这样的意思:使用左边的结果作为右边的输入。原来grep命令是需要提供查找的文件名,也就是范围。现在这种方式,就将左边的结果视为文件即可。
什么时候使用单引号,何时使用双引号:查找具体的字符时,使用双引号,按照模式进行匹配的时候,使用单引号

第九章:awk介绍

awk '{}'  {}里面常常是具体的动作
awk命令专门 用来操作文件的。搜索查询之类的操作
awk视为一个单独的shell命令模块,它有着自己的命令格式。比如有if判断语句,可以实现逻辑业务

第十章:sed用法介绍
sed跟vi一样,是一个文本编辑器。唯一区别在于:sed是一个非交互性文本编辑器。非交互性,不需要获得输入信息,可以在后台执行操作。

使用它的好处在于:可以不在现场,节省用户时间。

转载于:https://www.cnblogs.com/wangtao_20/archive/2011/02/23/1962238.html

《LINUX与UNIX SHELL编程指南》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. 知识产权界福布斯排行榜公布:厉害了,我的中国!
  2. matlab基于dct的图像压缩编码解码_基于FPGA的扩频系统设计(下)
  3. 三步解决C语言中struct字节对齐问题,Python进阶篇-struct字节对齐问题
  4. mac的ideal终端中mvn命令不生效 commang not found
  5. calico 跨主机容器网络通信
  6. linux shc shell脚本_详解shell脚本加密解密软件—gzese和shc
  7. acquire方法_Python锁类| 带有示例的acquire()方法
  8. java ee me se_java EE ME SE有什么关系
  9. js 递归查询所有的叶子结点_浅谈mysql的查询过程
  10. docker快速搭建数据库测试环境
  11. verilog赋多位值_Verilog入门学习笔记——第一弹
  12. mybatis动态sql传ist集合參与传数组参数
  13. 在企业级开发中使用Try...Catch...会影响效率吗?
  14. 利用oc门或od门实现线与_OC和OD门、线与和线或
  15. java23种设计模式(十六) -- 中介者模式(行为设计模式)
  16. 回顾并总结关于复利计算器的三次实验
  17. Linux free命令中的Buffer和Cache
  18. vim ide_将Vim变成R IDE
  19. RL(十三)深度Q网络(DQN)
  20. Kurento实战之五:媒体播放

热门文章

  1. ExcelManager--基于.Net的Excel读写管理类库(一)
  2. Magento 产品推荐 extension Featured products 2.0 – revamped!
  3. Magento Helper简介
  4. FLEX常用验证控件
  5. Linux--shell脚本之正则表达式
  6. Ethercat解析(六)之功能概述
  7. numpy+pandas+matplotlib画箱形图
  8. LeetCode 669. Trim a Binary Search Tree
  9. 新到的电脑BIOS中无法识别U盘
  10. 对象流 ObjectOutputStream java