Week2 bash特性及文件相关

1. 文件类命令及其常用的使用方法

文本查看类命令
cat head tail more less

分屏查看命令

more less
more FILE 翻至最后一页自动退出
less FILE -f 翻至最后一页不退出 若有追加内容则立即显示

首尾查看命令
head tail

head命令: 查看文件前n行

head FILE
head [option] FILE
head -20 /etc/rc.d/init.d/functions

tail命令:查看文件的后n行

tail FILE
-f: 显示文件后不退出等待追加的新行并立即显示
tail -20 /etc/rc.d/init.d/functions

文件管理类
cp mv rm

cp命令: copy

cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…

单源复制

 cp [OPTION]... [-T] SOURCE DEST
 若DEST不存在: 创建此文件并复制源文件数据流至DEST中
 若DEST存在:
  若DEST是非目录文件,则覆盖目标文件
  若DEST是目录,则先在DEST目录下创建一个与源文件同名的文件 并复制其数据流至此文件

多源复制

cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
        若DEST不存在->error
        若DEST存在,
            DEST是非目录文件->error
            DEST是目录文件:分别复制每一个文件至目录目录并保持原名
    选项
        -i: 交互式复制,即覆盖之前提醒用户确认        -f:强制覆盖目标文件
        -r/R:递归复制目录:        -d:复制符号链接本身 而非其指向的源文件        -a: -dR --preserve=all   archive归档
        --preserve=
            mode ownership timestamps context xattr links all

mv命令: move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…

   -i:交互式   -f:force

rm命令: remove

    -i:交互式    -f:force
    -r:recursive
     rm -rf /PATH/TO/DIR

所有不用的文件建议不要直接删除,而是移动到某专用目录(模拟回收站)

2. bash的工作特性

2.1 命令执行状态返回值

命令执行结果:
命令执行状态返回值:
保存于bash的特殊变量$? 成功:0 失败1-255

2.2 引用

强引用 'XXX' 单引号——不做替换直接显示
弱引用 "XXX" 双引号——变量会被替换
命令引用——替换为命令执行结果
$(COMMAND)
`COMMAND`

  [root@node2 ~]# A=20
  [root@node2 ~]# echo '$A'
  $A
  [root@node2 ~]# echo "$A"
  20
  [root@node2 ~]# echo date
  date
  [root@node2 ~]# echo $(date)
  Sun Dec 11 10:21:16 CST 2016

2.3 命令行展开

命令行展开
~:可承载一个逗号分隔的路径列表,并将其展开为多个路径

创建 /tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2
  mkdir -pv /tmp/x/{y1/{a,b},y2}

tree命令:显示目录结构
tree [options] directory
-L 显示层数

练习:使用命令行展开功能完成:
(1)创建/tmp目录下的a_c,a_d,b_c,b_d

   mkdir -pv /tmp/{a,b}_{c,d}

(2)创建/tmp/mylinux目录下的/下的各一级目录及其部分子目录:

  mkdir -p /tmp/mysysroot/{bin,sbin,etc/sysconfig/network-scripts,usr{/bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var{/cache,log,run}}

2.4 文件名通配符使用

globbing: 文件名通配
匹配模式: 元字符

 *: 匹配任意长度的任意字符
 ?: 匹配任意单个字符 []:匹配指定范围内的任意单个字符        [a-z],[A-Z],[0-9],[a-z0-9]
        [[:upper:]] [[:lower:]] [[:alpha:]]        [[:digit:]] 
        [[::alnum]] 字母+数字        [[:space:]] 
        [[:punct:]] 标点符号 [^]:匹配指定范围外的任意单个字符        [^0-9]
        [^[:alnum:]]

练习:
显示/var目录下所有以l开头 以小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录

ls /var/l[0-9][[:lower:]]

显示/etc目录下以任意一个数字开头且以非数字结尾的文件或目录

ls /etc/[0-9]*[^0-9]

显示在/etc目录下以非字母开头后跟一个字母以及其他任意长度任意字符的文件或目录>ls /etc/[^[:alpha:]][:alpha:]*

在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件 tfile-2016-05-27-09-32-22

touch "tfile-$(date "+%Y-%m-%d-%H-%M-%S")"

复制/etc下所有以p开头 以非数字结尾的文件或目录到/tmp/mytest1目录中

cp -r /etc/p*[^0-9] /tmp/mytest1

复制/etc所有以.d结尾的文件或目录至/tmp/mytest2目录中

cp -r /etc/*.d /tmp/mytest2

复制/etc所有以l或m或n开头,以.conf结尾的的文件至/tmp/mytest3目录中

cp -r /etc/[l,m,n]*.conf /tmp/mytest3

3. 文件元数据信息有哪些 分别表示什么含义 如何查看 如何修改文件的时间戳信息

文件分数据和元数据
数据:data –> cat等看到的内容
元数据:meta data –>文件自身的属性 stat看到的信息

文件大小 文件类型 权限 IO块数 属主属组ID号 时间戳

时间戳:
Access: 2016-12-10 14:36:34.574026967 +0800Modify: 2014-04-02 23:30:47.000000000 +0800 数据改变
Change: 2016-11-12 01:17:23.004986603 +0800 元数据改变

可用stat命令查看文件元数据

touch:change timestamps

touch [OPTION]..FILE
  -c 文件不存在时不予创建
  -a 仅修改access time
  -m 仅修改modify time
  -t STAMP YYMMDDhhmm[.ss]
touch -m -t 201312010303.03 /tmp/1.txt

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

(0)
alonedreameralonedreamer
上一篇 2016-12-11 10:10
下一篇 2016-12-11 11:02

相关推荐

  • 磁盘配额

    配置配额系统     综述        •在内核中执行        •以文件系统为单位启用        •对不同组或者用户的策略不同 …

    Linux干货 2016-09-02
  • grep和正则表达式

    grep       作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文件逐行进行匹配检查;打印匹配到的行;       模式:由正则表达式的元字符及文本所编写出的过滤条件    语法:【选项】【文件】  &…

    2017-08-04
  • Linux Bash Shell练习

    Linux Bash Shell练习 1、写一个脚本,完成以下功能: 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串 显示所有以S开头的文件的文件名,并且给其附加一个start字符串 分别统计S开头和K开头的文件各有多少 #!/bin/bash # for&…

    Linux干货 2016-12-17
  • linux中扩展swap分区和移动设备使用挂载以及常用的工具free、df 、du、dd命令

    swap分区 swap分区作用:内存不足时充当系统内存,所以swap尽量放在告诉硬盘上也就是尽量使用磁盘的第一个分区 动手创建swap分区       1、创建分区,将分区类型转换成swap分区格式           &nbsp…

    Linux干货 2016-08-29
  • DNS实验

    本实验需的注意问题:      1、运营商的服务器需要更改根指向服务器地址      2、根服务器上的配置文件/etc/named.conf需要将"."根区域禁用;      3、更改区域数据库文件的属组为named;c…

    Linux干货 2016-12-12
  • Linux基本命令

    前言 今天学习了Linux下的一些基本命令,在此归纳总结一下这些命令的基本用法。 Linux命令帮助的获取     在拿到一个命令后不知道其用法,我们可以通过命令帮助来查看它的用法,但linux下内部命令和外部命令获取帮助的方法是有差别的。     内部命令:help command &n…

    Linux干货 2016-10-14

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 23:22

    赞,基础内容的总结将成为后面最宝贵的记忆~继续加油~