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
下一篇 2016-12-19

相关推荐

  • ansible配置详解

    概述     ansible是一款无需在被管理主机上安装客户端,基于SSH对多台目标主机进行同时操作的轻量级的管理软件,借助各个内部的功能模块,实现了批量系统配置、批量程序部署、批量运行命令等功能。本篇就介绍一些关于ansible的基础配置相关的内容,具体包括:     1、an…

    Linux干货 2016-11-05
  • 很认真的第十三周作业哦

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) mkdir /data #建立共享目录 1)共享名为shared,工作组为magedu vim /etc/samba/smb.conf 修改 workgroup = MYGROUP 为 workgroup = magedu 修改 passdb backend = tdbsam 为 pas…

    Linux干货 2017-03-27
  • N25-第19周博客作业

    1、描述Tomcat的架构; 2、详细解释Tomcat的配置文件及配置文件中的参数所代表的含义; 3、配置apache通过mod_proxy模块与Tomcat连接的详细过程; 4、配置基于mod_jk的负载均衡; 5、配置tomcat集群,能够实现用户的session会话保持。 1、描述Tomcat的架构; Tomcat组件,分为4类: 顶层类组件:包括&l…

    2017-05-21
  • 文本三剑客之AWK

    文本三剑客—-awk(3) awk简介 awk是一个强大的文本分析工具,与grep(查找)、sed(编辑)一并称为“文本处理三剑客”。awk最强大的功能是对数据分析并生成报告。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk是AWK的GNU版本。 awk其名称得自于它的创始人 Alfred Aho 、P…

    2017-07-17
  • egrep及文本处理工具十三道实例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    2018-03-20