zoukankan      html  css  js  c++  java
  • 《LINUX与UNIX SHELL编程指南》学习笔记

    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是一个非交互性文本编辑器。非交互性,不需要获得输入信息,可以在后台执行操作。

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


  • 相关阅读:
    Linux_9/ RAID & LVM
    Linux_8/ fdisk, xfs_quota, edquota
    Linux_7/(chattr, lsattr), (setfacl, getfacl),su
    Linux_6/ Vim, Shell(下),(at, crond), (SUID, SGID, SBIT)
    Linux_5/ Vim, Shell(上)
    Linux_4/ |, (>, 2>, &>, >>, 2>>)
    Map集合的遍历
    List集合三种遍历方法
    MySQL安装
    排序法
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/1962238.html
Copyright © 2011-2022 走看看