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

相关推荐

  • LVS+Keepalived实现负载均衡

    keepalived工作原理 keepalived是基于VRRP协议实现的保证集群高可用的一个服务软件,主要功能是实现后端真实服务器的故障隔离和负载均衡器间的失败切换,防止单点故障。 VRRP协议全称:虚拟路由冗余协议(Virtual Route Redundancy Protocol)。 keepalived安装 # yum install keepali…

    2017-11-26
  • MHA–master在线修复

    本次实验基于【MHA+keepalive 高可用MYSQL集群】(续) 一、恢复背景 二、修复故障节点及MHA集群 三、提升已修复的节点为master 四、注意事项 一、恢复背景 1、设备清单 2、:percona-xtrabackup-2.3.2 (注:生产环境应定时备份;不应等到数据库DOWN后才备份,以免加剧集群的压力) 备份数据库操作: [root@…

    2017-03-01
  • OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https

    一、OpenSSH     OpenSSH与SSH协议是远程登录的首选连接工具。它加密所有流量,以消除窃听,连接劫持和其它攻击。OpenSSH常常被误认以为与OpenSSL有关系,但实际上这两个项目的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。  &…

    Linux干货 2016-04-24
  • CentOS 7 tomcat 7.0.54 的功能实现及详解

    一、 jdk 安装配置 # yum install java-1.8.0-openjdk-devel (依赖的java-1.8.0-openjdk,java-1.8.0-openjdk,headless也会被安装 ) # alternatives -h # vim /e…

    2016-08-19
  • Mariadb之SELECT语法练习

    一 、导入hellodb.sql生成数据库后实现以下操作     # mysql -uroot -h172.16.23.23 -pcento.123 < hellodb.sql     mysql>&nbsp…

    Linux干货 2016-12-17
  • 基于ansible自动部署keepalived+nginx来调度amp

    实战作业: (1) 主/备模型的keepalived+nginx (2) httpd+php+php-mysql (3) mysql-server或mariadb-server         拥有testdb库,并允许testuser对其拥有所有权限 实验环境: 主机1:10.…

    Linux干货 2016-11-07

评论列表(1条)

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

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