(8.15-8.21)第2周博客作业

1.linux文件管理命令

  1. cat

    功能:有从磁盘创建文件的功能(但不具备编辑功能),但主要功能还是2个或者以上文件的合并。

    常配合使用参数:

    -n 或–number 由1 开始对所有输出的行数编号。
    -b 或–number-nonblank 和-n 相似,只不过对于空白行不编号。

    使用方法:

    Cat –n diannaob1>diannaob2,把diannaob1里的内容加上行号以后并入diannaob2。

    Cat –b diannaob1 diannaob2>>diannaob3,对diannaob1和diannaob2里的内容加上行号(空白行不加)并入diannaob3。

  2. chattr

    功能:给指定文件添加,去掉,赋予属性。

    常配合使用参数:

    -R 递归处理,将指定目录下的所有文件及子目录一并处理。
    -v<版本编号> 设置文件或目录版本。
    -V 显示指令执行过程。
    +<属性> 开启文件或目录的该项属性。
    -<属性> 关闭文件或目录的该项属性。
    =<属性> 指定文件或目录的该项属性。

    a:让文件或目录仅供附加用途。
    b:不更新文件或目录的最后存取时间。
    c:将文件或目录压缩后存放。
    d:将文件或目录排除在倾倒操作之外。
    i:不得任意更动文件或目录。
    s:保密性删除文件或目录。
    S:即时更新文件或目录。
    u:预防以外删除。

    使用方法:

    比如diannaob1这个文件为了方式被其他linux用户删除,可以给其添加预防以外删除属性。

    Chattr +u diannaob1

  3. chgrp

    功能:更改目录或者文件所属的群组。

    使用方法:

    比如把diannaob1文件移动到diannaob组里:

    Chgrp diannaob diannaob1

  4. cmp

    功能:用来比较文件之间的不同,如果相同不返回任何信息,不同的地方列出字符和列数编号。

    常配合使用参数:

    -c或–print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
    -i<字符数目>或–ignore-initial=<字符数目>  指定一个数目。
    -l或–verbose  标示出所有不一样的地方。
    -s或–quiet或–silent  不显示错误信息。
    -v或–version  显示版本信息。
    –help  在线帮助。

    使用方法:

    比如比较文件diannaob1和diannaob2有什么同

    Cmp diannaob1 diannaob2

    配合使用的参数加在cmp和文件之间。

  5. file

    功能:辨识文件类型。

    常配合使用参数:

    -b  列出辨识结果时,不显示文件名称。
    -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
    -f<名称文件>  指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。
    -L  直接显示符号连接所指向的文件的类别。
    -m<魔法数字文件>  指定魔法数字文件。
    -v  显示版本信息。
    -z  尝试去解读压缩文件的内容。

    使用方法:

    比如要辨别diannaob1的文件类型

    File diannaob1 文件位置

  6. find

    功能:根据各种需求(名称、类别、时间、大小、权限等)在指定的目录内寻找符合要求的文件。

    常配合使用参数:

    -mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
    -amin n : 在过去n 分钟内被读取过
    -anewer file : 比档案file 更晚被读取过的档案
    -atime n : 在过去n 天过读取过的档案
    -cmin n : 在过去n 分钟内被修改过
    -cnewer file :比档案file 更新的档案
    -ctime n : 在过去n 天过修改过的档案
    -empty : 空的档案-gid n or -group name : gid 是n 或是group 名称是name
    -ipath p, -path p : 路径名称符合p 的档案,ipath 会忽略大小写
    -name name, -iname name : 档案名称符合name 的档案。iname 会忽略大小写
    -size n : 档案大小是n 单位,b 代表512 位元组的区块,c 表示字元数,k 表示kilo bytes,w 是二个位元组。-type c : 档案类型是c 的档案。
    d: 目录
    c: 字型装置档案
    b: 区块装置档案
    p: 具名贮列
    f: 一般档案
    l: 符号连结

    使用方法:

    将目前目录及其子目录下所有延伸档名是c 的档案列出来。
    find . -name "*.c"
    将目前目录其其下子目录中所有一般档案列出
    find . -ftype f
    将目前目录及其子目录下所有最近20 分钟内更新过的档案列出

    find . -ctime -20

  7. git

    功能:文字模式下的文件管理员,进入之后,可以进行各种文件的操作。

    常配合使用参数:

    F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。
    F2 :执行cat指令,列出文件内容。
    F3 :执行gitview指令,观看文件内容。
    F4 :执行vi指令,编辑文件内容。
    F5 :执行cp指令,复制文件或目录,会要求您输入目标文件或目录。
    F6 :执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。
    F7 :执行mkdir指令,建立目录。
    F8 :执行rm指令,删除文件或目录。
    F9 :执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。
    F10 :离开git文件管理员。

  8. cut

    功能:用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出。

    配合使用参数:

    -b 字节(bytes)

    -c 字符(characters)

    -f 域(fields)

    使用方法:

    如日期:dc oct 10 21:15:54 PDT 2012

    Date |cut –b 1-4    输出dc o,表示取前4个字节,其中空格也算一个字节。

    Date |cut –c 1-4    输出dc o,看似跟-b没有区别,但是如果日期换成汉字就有区别了,因为一个汉字算3个字节。

    多个定位之间用逗号隔开:

    Date |cut –b 1-4,6   输出前4个字节和第6个字节:dc ot

    分割域:

    如:

    service1:pts/0:Oct 9 20:27: (211.95.114.235)
    service2:pts/1:Oct 9 21:06: (218.80.203.242)
    service3:pts/2:Oct 9 14:35: (218.80.203.242)
    service4:pts/3:Oct 9 21:07: (218.80.213.242)
    service5:pts/4:Oct 9 21:07: (218.80.213.242)
    service6:pts/5:Oct 9 21:45: (58.31.205.19)

    cut –d: -f1 f.txt 把f.txt这个文件按:分割成域,取域1

    输出:

    service1
    service2
    service3
    service4
    service5
    service6

  9. ln
    使用权限:所有使用者
    使用方式:ln [options] source dist,其中option 的格式为:
      [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
      [–help] [–version] [–]

      说明:Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种:硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。

      ln source dist 是产生一个连结(dist)到source,至于使用硬连结或软链结则由参数决定。

      不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

      -f:链结时先将与dist 同档名的档案删除-d:允许系统管理者硬链结自己的目录-i:在删除与dist 同档名的档案时先进行询问-n:在进行软连结时,将dist 视为一般的档案-s:进行软链结(symbolic link)-v:在连结之前显示其档名-b:将在链结时会被覆写或删除的档案进行备份-S SUFFIX:将备份的档案都加上SUFFIX 的字尾-V METHOD:指定备份的方式–help:显示辅助说明–version:显示版本
    范例:
      将档案yy 产生一个symbolic link:zz
      ln -s yy zz
      将档案yy 产生一个hard link:zz
      ln yy xx

  10. less

    功能:查看文件

    使用方法:

    Less 文件名

    Less的作用和more差不多,不同的是less 允许使用者往回卷动,查看已经看过的部分。

  11. locate
    使用权限:所有使用者
    使用方式:

            locate [-q] [-d ] [–database=]
       locate [-r ] [–regexp=]
       locate [-qv] [-o ] [–output=]
       locate [-e ] [-f ] <[-l ] [-c]
      <[-U ] [-u]>
      locate [-Vh] [–version] [–help]
    说明:
      locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。在一般的distribution 之中,资料库的建立都被放在contab 中自动执行。
      一般使用者在使用时只要用
      # locate your_file_name
      的型式就可以了。参数:
      -u
      -U
      建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。
      -e

      将排除在寻找的范围之外。
      -l
      如果是1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为locate 必须至实际的档案系统中取得档案的权限资料。
      -f
      将特定的档案系统排除在外,例如我们没有到理要把proc 档案系统中的档案放在资料库中。
      -q
      安静模式,不会显示任何错误讯息。
      -n
      至多显示个输出。
      -r
      使用正规运算式做寻找的条件。
      -o
      指定资料库存的名称。
      -d
      指定资料库的路径
      -h
      显示辅助讯息
      -v
      显示更多的讯息
      -V
      显示程式的版本讯息范例:

      locate chdrv:寻找所有叫chdrv 的档案
      locate -n 100 a.out:寻找所有叫a.out 的档案,但最多只显示100 个
      locate -u:建立资料库

  12. more
    使用权限:所有使用者
    使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
    说明:类似cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与vi 相似),使用中的说明文件,请按h 。
    参数:

           -num 一次显示的行数
      -d 提示使用者,在画面下方显示[Press space to continue, q to quit.] ,如果使用者按错键,则会显示[Press h for instructions.] 而不是哔声
      -l 取消遇见特殊字元^L(送纸字元)时会暂停的功能
      -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
      -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
      -c 跟-p 相似,不同的是先显示内容再清除其他旧资料
      -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
      -u 不显示下引号(根据环境变数TERM 指定的terminal 而有所不同)
      +/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
      +num 从第num 行开始显示
      fileNames 欲显示内容的档案,可为复数个数
    范例:
      more -s testfile 逐页显示testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
      more +20 testfile 从第20 行开始显示testfile 之档案内容。

  13. mv
    使用权限:所有使用者
    使用方式:
      mv [options] source dest
      mv [options] source… directory
    说明:将一个档案移至另一档案,或将数个档案移至另一目录。
    参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。
    范例:
      将档案aaa 更名为bbb:
      mv aaa bbb
      将所有的C语言程式移至Finished 子目录中:
      mv -i *.c

  14. rm 
    使用权限:所有使用者
    使用方式:rm [options] name…
    说明:删除档案及目录。
    把计:
      -i 删除前逐一询问确认。
      -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
      -r 将目录及以下之档案亦逐一删除。
      范例:
      删除所有C语言程式档;删除前逐一询问确认:
      rm -i *.c
      将Finished 子目录及子目录中所有档案删除:
      rm -r Finished

  15. split
    使用权限:所有使用者
    使用方式:split [OPTION] [INPUT [PREFIX]]
    说明:将一个档案分割成数个。而从INPUT 分割输出成固定大小的档案,其档名依序为PREFIXaa, PREFIXab…;PREFIX 预设值为`x。若没有INPUT 档或为`-,则从标准输入读进资料。

    匡兜:
      -b, –bytes=SIZE
      SIZE 值为每一输出档案的大小,单位为byte。
      -C, –line-bytes=SIZE
      每一输出档中,单行的最大byte 数。
      -l, –lines=NUMBER
      NUMBER 值为每一输出档的列数大小。
      -NUMBER
      与-l NUMBER 相同。
      –verbose
      于每个输出档被开启前,列印出侦错资讯到标准错误输出。
      –help
      显示辅助资讯然后离开。
      –version
      列出版本资讯然后离开。
      SIZE 可加入单位: b 代表512, k 代表1K, m 代表1 Meg。
      范例:
      PostgresSQL 大型资料库备份与回存:
      因Postgres 允许表格大过你系统档案的最大容量,所以要将表格dump 到单一的档案可能会有问题,使用split进行档案分割。
      % pg_dump dbname | split -b 1m – filename.dump.

      重新载入
      % createdb dbname
      % cat filename.dump.* | pgsql dbname

  16. touch
    使用权限:所有使用者
    使用方式:
       touch [-acfm]
      [-r reference-file] [–file=reference-file]
      [-t MMDDhhmm[[CC]YY][.ss]]
      [-d time] [–date=time] [–time={atime,access,use,mtime,modify}]
      [–no-create] [–help] [–version]
      file1 [file2 …]

    说明:
      touch 指令改变档案的时间记录。ls -l 可以显示档案的时间记录。

    参数:
      a 改变档案的读取时间记录。
      m 改变档案的修改时间记录。
      c 假如目的档案不存在,不会建立新的档案。与–no-create 的效果一样。
      f 不使用,是为了与其他unix 系统的相容性而保留。
      r 使用参考档的时间记录,与–file 的效果一样。
      d 设定时间与日期,可以使用各种不同的格式。
      t 设定档案的时间记录,格式与date 指令相同。
      –no-create 不会建立新档案。
      –help 列出指令格式。
      –version 列出版本讯息。
    范例:
      最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
      touch file
      touch file1 file2
      将file 的时间记录改为5 月6 日18 点3 分,公元两千年。时间的格式可以参考date 指令,至少需输入MMDDHHmm ,就是月日时与分。
      touch -c -t 05061803 file
      touch -c -t 050618032000 file
      将file 的时间记录改变成与referencefile 一样。
      touch -r referencefile file

      将file 的时间记录改成5 月6 日18 点3 分,公元两千年。时间可以使用am, pm 或是24 小时的格式,日期可以使用其他格式如6 May 2000 。
      touch -d "6:03pm" file
      touch -d "05/06/2000" file
      touch -d "6:03pm 05/06/2000" file

  17. cp 
    使用权限:所有使用者
    使用方式:
      cp [options] source dest
      cp [options] source… directory
    说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

    把计:
      -a 尽可能将档案状态,权限等资料都照原状予以复制。
      -r 若source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
      -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
    范例:
      将档案aaa 复制(已存在),并命名为bbb:
      cp aaa bbb

    将所有的C语言程式拷贝至Finished 子目录中:
      cp *.c Finished

2.bash的工作特性

一、命令历史特性: history

shell进程会其会话中保存此前用户提交执行过的命令

historyshell的内置命令

wKiom1Z2ZjWSJrjdAAA9gP4LoMo818.jpg

       1. 命令语法格式:

  history [-c] [-d OFFSET] [n]

  history -anrw [FILENAME]

  history -ps VALUE [VALUE…]

  -c: 清空命令历史;

  -d offset(偏移量):删除指定命令历史offsethistory显示出来的命令数字

  -r: 从文件读取命令历史至历史列表中;

 -w:把历史列表中的命令追加至历史文件中;

history #:显示最近的#条命令;

      2. 相关环境参数,实现定制环境变量的功能

HISTSIZE:shell进程可保留的命令历史的条数;

HISTFILE:持久保存命令历史的文件,默认为.bash_history

HISTFILESIZE:命令历史文件的存储历史命令数量条数

HISTCONTROL控制命令历史记录的方式

ignoredups:忽略重复的命令;

ignorespace:忽略以空白字符开头的命令;

ignoreboth:以上两者同时生效;

       3. 调用命令历史列表中的命令

    !#:再一次执行历史列表中的第#条命令;

   !-#执行倒数第几条命令;

    !!:再一次执行上一条命令;

    !STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;

            注:命令的重复执行有时候需要依赖于幂等性;

       4. 调用上一条命令的最后一个参数:

       快捷键:ESC, .

ALT+.  远程终端可能不支持该方法

       字符串:!$

 

 

 

二、BASH补全特性

    1. 命令查找和补全机制:

       (1) 查找内部命令;

       (2) 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;

       (3) 给定的部分字符串如果能惟一标识某命令程序文件,则直接补全;

      不能惟一标识某命令程序文件,再击tab键一次,会给出列表;

    2.路径补全

在给定起始路径下,以对应路径下的打头字串逐一匹配起始路径下每个文件:

        TAB按键;

如果能惟一标识,则直接补全;

否则,再一次tab,给出列表;

    3.命令行展开

   ~:自动展开为用户的家目录,或指定的用户的家目录;                

  {}:花括号展开。可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

 

 

 

三、命令执行状态结果特性

    1.bash通过状态返回值来输出此结果:

成功:0

失败:1-255

注意:命令正常执行时,有的还有命令返回值:

              根据命令及其功能不同,结果各不相同;

    2.状态返回值保存于bash的特殊变量:$?

    3.引用命令的执行结果:$(COMMAND)    或  `COMMAND`

 

 

 

四、命令行编辑特性(快捷键)

Ctrl+a:跳转至命令行行首

Ctrl+e:跳转至命令行行尾

Ctrl+u:删除行首至光标所在处之间的所有字符;

Ctrl+k:删除光标所在处至行尾的所有字符;

Ctrl+l:清屏,相当于clear

 

 

 

五、文件名通配(globbing)特性

    1.globbing:整体文件名匹配,而非匹配部分文件名

     [root@localhost ~]# whatis  glob

glob          (3)  – find pathnames matching a pattern, free memory from glob

glob          (3p)  – generate pathnames matching a pattern

glob          (7)  – Globbing pathnames

glob.h [glob]      (0p)  – pathname pattern-matching types

       [root@localhost ~]# man 7 glob

    2. 匹配模式:元字符(一组代替一个或多个字符的字符)

元字符:具有特殊意义的专用字符,可以用来规定其前导字符在目标对象的出现模式

      *:匹配任意长度的任意字符,包括空字符

      ?:匹配任意单个字符

     []:匹配指定范围内的任意单个字符

      例如[abc][a-z][A-Z][a-zA-Z][A-Z][0-9][a-z0-9]

     特殊格式:

[[:upper:]]:所有大写字母

[[:lower:]]:所有小写字母

[[:alpha:]]:所有字母

[[:digit:]]:所有数字

[[:alnum:]]:所有的字母和数字

[[:space:]]:所有空白字符

[[:punct:]]:所有标点符号

            [^]:匹配指定范围外的任意单个字符

例如:[^[:upper:]][^0-9][^[:alnum:]]

 

 

 

六、IO重定向及管道

    1. IO重定向:一切皆文件,包括设备都可以作为IO重定向文件

(1) 程序IO设备

     可用于输入的设备:文件键盘设备、文件系统上的常规文件、网卡等;

     可用于输出的设备:文件显示器、文件系统上的常规文件、网卡等;

(2) 数据流种类:         

         输入的数据流;<– 标准输入(stdin),键盘;

         输出的数据流:–> 标准输出(stdout),显示器;

         错误输出流:  –> 错误输出(stderr),显示器;

(3) 文件描述符, fd : file  descriptor

标准输入:0

标准输出:1

错误输出:2

(4) 用法说明

         1) 覆盖输出重定向:>

         2) 追加输出重定向:>>

         3) 错误输出重定向:2>(错误覆盖)  2>>(错误追加)

         4) 合并正常输出流和错误输出流:

     方法一:&>, &>>

     方法二:COMMAND > /path/to/somefile 2>&1

           COMMAND >> /path/to/somefile 2>&1

         5) 输入重定向:<

         6) Here Document:<<      

      cat << EOF

      cat > /PATH/TO/SOMEFILE << EOF 

         7)  特殊设备:/dev/null    数据黑洞

 # set 命令:

       [root@localhost ~]# type set

         set is a shell builtin

       [root@localhost ~]# help set

        set: set  [–abefhkmnptuvxBCHP]  [-o option-name]  [arg …]

        Set or unset values of shell options and positional parameters.

        Change the value of shell attributes and positional parameters, or display the names and values of shell variables.

 # set -C     禁止覆盖输出重定向至已存在的文件;

                   此时可使用强制覆盖输出:>|

# set +C    关闭上述特性

    2.管道:组合小程序完成重要任务

连接程序,实现将前一个命令的输出直接定向后一个程序当作输入数据流

格式:COMMAND1 | COMMAND2 | COMMAND3 | …

 

 

 

七、命令hash特性

    1.hash命令定义:缓存此前命令的查找结果(命令位置,不包括内置命令)

hash缓存—->发起新的额请求

    2.命令的缓存结果和命令的参数无关

    3.hash不是外部命令,所以记录不了自己的位置

         确定并记住每一个给定NAME名称的命令的完整路径

hash:查看hash

-d :忘记每一个已经记住的命令位置,删除指明的命令

       不用给定完整路径,只要给定命令名称即可

-r :忘记所有的位置

         注意:当把命令程序位置改变之后,再次调用该命令程序,系统会先调用现在hash缓存中前一次已经记录下来的命令位置,此时出错。需要清空hash -r

       缓存此命令此前的查找结果:key-value键值格式数据

    4.bash查询命令顺序

命令行模式直接输入、history命令(记录过去所输入过的命令)调用输入

—->hash缓存命令路径(加速、一切皆缓存思想)

—->若未找到,从左向右遍历PATH环境变量所定义的各路径下文件

 

 

 

八、多命令执行控制

    1.并行控制:~]# COMMAND1; COMMAND2; COMMAND3; …

执行次序从左到右,

命令间没有逻辑关系,完成一个之后再进行下一个

    2.逻辑控制执行:与&& 、或||、非!

      ==========状态结果做逻辑运算,给多个命令之间建立执行时的逻辑关系==========

      ==========控制语句的执行的逻辑能减少语句的运行==========

        (1)逻辑运算

    1)运算数:真(true, yes, on, 1)

    假(false, no, off, 0)

               2)与:只有两者为真结果才为真,否则都为假

1 && 1 = 1

1 && 0 = 0

0 && 1 = 0

0 && 0 = 0

               3)或:一个为真就为真

1 || 1 = 1

1 || 0 = 1

0 || 1 = 1

0 || 0 = 0

               4)非:取反

! 1 = 0

! 0 = 1

         (2)短路法则:

      1)~]# COMMAND1 && COMMAND2

COMMAND1为“假”,则COMMAND2不会再执行;

否则,COMMAND1为“真”,则COMMAND2必须执行;

      2)~]# COMMAND1 || COMMAND2

COMMAND1为“真”,则COMMAND2不会再执行;

否则,COMMAND1为“假”,则COMMAND2必须执行;

 示例:~]# id $username || useradd $username

 

 

 

九、bash的配置文件

    1.登录类型

       (1)交互式登录shell进程:

   直接通过某终端输入账号和密码后登录打开的shell进程;

  使用su命令:su – USERNAME, 或者使用 su -l USERNAME执行的登录切换;

       (2)非交互式登录shell进程:

   su USERNAME执行的登录切换;

   图形界面下打开的终端;

  运行脚本

    2.配置文件类型:仅管理员可修改全局配置文件

       (1)profile类:为交互式登录的shell进程提供配置

   功用:用于定义环境变量;运行命令或脚本;

  全局/etc/profile /etc/profile.d/*.sh

 用户个人~/.bash_profile

       (2)bashrc类:为非交互式登录的shell进程提供配置

功用:定义本地变量;定义命令别名;

  全局/etc/bashrc

  用户个人~/.bashrc

    3.bash路径搜索

交互式登录shell进程:

/etc/profile –> /etc/profile.d/* –> ~/.bash_profile –> ~/.bashrc –> /etc/bashrc

非交互式登录shell进程:

~/.bashrc –> /etc/bashrc –> /etc/profile.d/*

    4.定义生效方法

       (1)命令行中定义的特性,例如变量和别名作用域为当前shell进程的生命周期;

       (2)配置文件定义的特性,只对随后新启动的shell进程有效;

让通过配置文件定义的特性立即生效:

1) 通过命令行重复定义一次;

2) 让shell进程重读配置文件;

~]# source /PATH/FROM/CONF_FILE

~]# .  /PATH/FROM/CONF_FILE

3.修改文件的时间戳


linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件,以下是linux中touch命令参数的使用方法:

touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)

example:

touch file1.txt 更新file1.txt的存取和修改时间

touch -c file1.txt 如果file1.txt不存在,不创建文件

touch -r ref_file file1.txt 更新file1.txt的时间戳和ref+file相同

touch -t 0811142234.50 file1.txt 设定文件的时间错为08年11月14日22点34分40秒

-a

修改文件 file 的存取时间.

-c

不创建文件 file.

-m

修改文件 file 的修改时间

-r ref_file

将参照文件 ref_file 相应的时间戳记的数值作为指定文件 file 时间戳记的新值.

-t time

使用指定的时间值 time 作为指定文件 file 相应时间戳记的新值.此处的 time 规定为如下形式的十进制数∶

[[CC]YY]MMDDhhmm[.SS]

这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则linux中touch命令参数将把年 数CCYY限定在1969–2068之内.MM为月数,DD为天将把年数CCYY限定在1969–2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0–61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的.

原创文章,作者:xiaocui,如若转载,请注明出处:http://www.178linux.com/38256

(0)
xiaocuixiaocui
上一篇 2016-08-22
下一篇 2016-08-22

相关推荐