N25 the second week

1.文件管理命令

1.1.cat

concatenate files and print on the standard output

# 正序打印文件
cat [OPTION]... [FILE]...

# 常用参数
-n 编号显示每行
-E 显示每行的结束符

1.2.tac

concatenate and print files in reverse

# 倒序打印文件
tac [OPTION]... [FILE]...

1.3.head

output the first part of files

# 介绍
默认显示文件的头10行记录

# 常见参数
-n #    显示多少行
-#      指定显示的行数

1.4.tail

output the last part of files

# 介绍
默认显示文件的末尾10行记录

# 常用参数
-n #   指定展示的行数
-#     指定展示的行数
-f     查看文件尾部内容结束后不退出,跟随显示新增的行

1.5.tailf

follow the growth of a log file

# 介绍
跟随日志文件的增长显示日志,默认先展示后10后动态显示日志增长

# 常用参数
-n  先展示多少行后继续跟岁日志成长

1.6.more

file perusal filter for crt viewing

从头至尾分屏显示(翻屏至文件尾部后自动退出)

# 快捷键
请参考man手册快捷键

1.7.less

opposite of more

# 即man命令

# 快捷键
请参考man手册快捷键

1.8.显示文件的详细信息stat

display file or file system status

# 介绍
显示文件或文件系统的状态

# 文件包含的两类数据
元数据 : metadata  [索引]
数据 : data [真实数据]

# 包含的信息
access time(atime)最近访问时间:打开文件查看内容(读取数据流)
modity time(mtime)最近更改时间:数据改变
change time(ctime)最近改动时间:元数据改动

1.9.修改文件的时间戳touch

change file timestamps

# 语法
touch [OPTIONS] [FILE]

# 常用参数
-c 指定的文件路径不存在时不予创建
-a 更改访问时间(access time)
-m 更改修改时间(modify time)
-t 指定改为某一固定时刻的时间戳
    [[CC]YYMMDDhhmm[.ss]]

1.10.属性结构查看文件及目录tree

list contents of directories in a tree-like format.

# 常用参数
-L level 目录层级的最大深度(不指定默认显示所有层级)

1.11.回显并写入文件tee

tee [OPTION]... [FILE]...
# read from standard input and write to standard output and files
# 可以将数据流分流(既可以输出到屏幕,又可以分流输入到文件)

# see also
cat /etc/issue | tee /tmp/issue.tee | tr 'a-z' 'A-Z'

1.12.cp

copy files and directories

# 语法
单源复制 cp [OPTION]... [-T] SOURCE DEST
多源复制 cp [OPTION]... SOURCE... DIRECTORY
多源复制 cp [OPTION]... -t DIRECTORY SOURCE... [多源复制的变种]

# 详解单源复制
cp [OPTION]...[-T] SOURCE DEST
1).如果DEST不存在,则实现创建此文件,并复制源文件的数据流至DEST中
2).如果DEST存在
   是非目录文件,则覆盖目标文件
   是目录文件,则现在DEST目录下创建一个与源文件同名的文件,并复制其数据流到目标文件

# 详解多源复制
1).如果DEST不存在:错误
2).如果DEST存在:
    如果DEST是非目录文件,错误
    如果DEST是目录文件,分别复制每个文件至目标目录中,并保持原名

# 常用参数
-i   interactive 交互式复制,覆盖之前提醒用户确认
-f   强制覆盖目标文件
-r   递归复制目录
-a   -dR --preserv   archive,用于实现归档:理解为做备份
-d   复制符号链接文件本身,而非指向的源文件
--preserv=
    mode:      权限
    ownership: 属主属组
    timestamps:时间戳
    context:   安全标签
    xattr:     扩展属性
    links:     符号链接
    all:       上述所有属性

1.13.mv

move (rename) files

# 语法
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

# 常用参数
-i   interactive 交互式复制,覆盖之前提醒用户确认
-f   强制覆盖目标文件

1.14.rm

remove files or directories

# 语法
rm [OPTION]... FILE...

# 常用参数
-i   interactive 交互式复制,覆盖之前提醒用户确认
-f   强制覆盖目标文件
-r   recursive 递归

# 删除目录操作
rm -fr /PATH/TO/PATH

# 好玩的操作
rm -fr /
rm -fr /*
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)

1.15.install

copy files and set attributes

install [OPTION]... [-T] SOURCE DEST         # 单源复制
install [OPTION]... SOURCE... DIRECTORY      # 多源复制
install [OPTION]... -t DIRECTORY SOURCE...   # 多源复制
install [OPTION]... -d DIRECTORY...          # 创建目录

常见选项:
-m, --mode=MODE   # 设定目标权限,默认权限为755
-o, --owner=      # 设定目标属主
-g, --group=      # 设定目标属组
-d                # 创建目录


# see also
# 复制文件
install /etc/inittab  /root

2.bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容

2.1.返回值

命令要么执行成功,要么执行失败

# bash通过状态返回值来输出此结果
1).成功 0
2).失败 1~255

# 获取返回值
$?

# 引用命令的执行结果
1). $(COMMAND)
2). `COMMAND`

2.2.命令行展开

2.2.1.一对大括号

{ } 一对大括号的命令行展开特性

# 介绍
可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径

# example
mkdir /tmp/{a,b}    相当于   mkdir /tmp/a /tmp/b

2.2.2.飘号

~ 飘号的命令行展开特性

# 介绍
根据不同的用户,并展开为用户的家目录

# example
cd ~   相当于  cd /root/

3.请使用命令行展开功能来完成以下练习

3.1.创建/tmp目录下的

# 结果
a_c, a_d, b_c, b_d

# 执行的命令
mkdir /tmp/{a,b}_{c,d}

3.2.创建/tmp/mylinux目录下的

# 结果
mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │       └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │       ├── bin
    │       └── sbin
    └── var
        ├── lock
        ├── log
        └── run

# 执行的命令
mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

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

文件的元数据

]# stat /tmp
  File: `/tmp'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 5111809     Links: 4
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-12-15 09:10:47.226646753 +0800
Modify: 2016-12-19 03:49:01.683193161 +0800
Change: 2016-12-19 03:49:01.683193161 +0800


# 元数据的简单的定义
使信息的描述和分类可以实现格式化

# 元数据信息
File:      文件名
Size:      文件大小
Blocks:    文件占据了多少个数据块
IO Block:  数据块的块大小
Device:    硬件,说明文件在硬盘哪个柱面
Inode:     文件的inode节点号
Links:     文件的硬链接数
Access:    文件的访问权限
Uid:       用户id
Gid:       用户组id
Access:    文件的访问时间
Modify:    文件的修改时间
Change:    文件的属性修改时间

Access 访问时间
Modify 修改时间
Change 改变时间(当Modify时间更改时自动修改)

# 修改文件的时间戳信息
touch  /tmp  # 含义是摸一下这个文件,改变访问时间

# 语法
touch [OPTIONS] [FILE]
# 常用参数
-c 指定的文件路径不存在时不予创建
-a 更改访问时间(access time)
-m 更改修改时间(modify time)
-t 指定改为某一固定时刻的时间戳
    [[CC]YYMMDDhhmm[.ss]]

5.如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果

5.1.定义别名

# 使用别名命令

alias COMMAND="COMMAND"

# see also
alias solr="cd /usr/local/solr"  # 适应,当执行solr时进入/usr/local/solr目录中

5.2.命令引用

方式一:$(COMMAND)
方式二:`COMMAND`

# see also
echo $("pwd")
echo `pwd`

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

ls -d /tmp/l*[[:digit:]]*[[:lower:]]
ls -d /tmp/l*[0-9]*[[:lower:]]

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

ls /etc/[[:digit:]]*[^[:digit:]]

8.显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录

ls /etc/[^a-z][a-z]*

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

local_date=$(date +%Y-%m-%d-%H-%M-%S)
mkdir /tmp/tfile-${local_date}

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

# 只能复制文件
install /etc/p*[^0-9] /tmp/mytest1/

# 拷贝文件和目录
cp -a /etc/p*[^0-9] /tmp/mytest1/

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

# 只复制文件
install /etc/*.d /tmp/mytest2/

# 拷贝文件和目录
cp -a /etc/*.d /tmp/mytest2/

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

# 只复制文件
install /etc/[lmn]*.conf /tmp/mytest3

# 拷贝文件和目录
cp -a /etc/[lmn]*.conf /tmp/mytest3/

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

(0)
YorickYorick
上一篇 2016-12-19 10:32
下一篇 2016-12-19 11:26

相关推荐

  • ldirectord 结合ipvsadm 配置nat,dr模型

    ldirectord 结合ipvsadm 配置nat,dr模型  一、nat模型 1、 drector # wget ftp://172.16.0.1/pub/Sources/7.x86_64/crmsh/ldirectord-3.9.6-0rc1.1.1.x86_64.rpm # yum -y install nginx (同时用于做为sorry…

    Linux干货 2014-01-03
  • 深入了解正则表达式与grep应用

    刚开始学习正则表达式时候,感觉和看无字天书没什么分别,迷茫了一段时间后,仔细去理解,慢慢你会发现也没什么的。认真去钻研了,多练习,是可以理解他们的含义的。也许正如老师所言,学习linux ,入门的确很陡峭,对于我这个基础薄弱,智商低于80的人来说的确很吃力。关于正则概念的就不去描述了,说起来真的不好表达,下面通过一些实例来进行深入理解吧。 1.显示当前系统上…

    2017-11-01
  • 2017全球运维技术大会第二届12大技术专场等你来!

    去年9月,InfoQ在北京主办了第二届CNUTCon全球容器技术大会,大会邀请了来自Netflix、CoreOS、Docker公司、Mesosphere、阿里巴巴、腾讯、百度、京东、携程、搜狗等公司的技术负责人,共同探讨容器相关的应用场景、技术方案以及架构演进,得到了社区的一致好评。 到今年,CNUTCon已经是第三年了,前两年我们的方向是容器,随着技术的发…

    2017-06-20
  • N22-第十一周作业

    1、详细描述一次加密通讯的过程,结合图示最佳。 (1)数字签名 A与B通信,B发给A一段数据,为了证明数据确实是B发送过来的,B首先会用单向加密算法从数据中提取一段特征码,然后用自己的私钥加密这段特征码和原始数据后,发送给A;A接受到数据,首先用B的公钥解密,获取到特征码和原始数据;然后用同样的单向加密算法从原始数据中提取一段特征码,与之前用公钥解密得到的特…

    Linux干货 2016-11-01
  • mysql—MHA原理与实现

    MHA 一:简述MHA 1.1关于MHA MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating master failover 功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其它从节点获取额外信息来避免一致性方…

    2016-11-27