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

相关推荐

  • bind简单配置之子域、主从、视图

    [bind简单配置之子域、主从、视图] 标签:bind简单配置、子域、主从、视图 [逻辑拓扑结构图] ns.mylinux.com主机上面有两种网卡用来模拟两个不通的网段。 [子域配置]         域名内部还可以继续划分子域,进行分片管理。下面是正向子域授权的配置: &nb…

    Linux干货 2015-10-22
  • linux如何获取帮助以及基础目录命名标准

    一、linux的命令分为两种,一种是内建命令,即包含在shell当中的,一种是外部命令,通常保存在 bin目录中。 1、对于内部命令:  通常使用 help COMMAND 2、对于外部命令:  通常使用 man command  mannul的位置/usr/share/man man的内容通常分为以下几块   1、N…

    Linux干货 2016-10-30
  • 读写执行权限对文件和目录的影响

    权限的作用 对于linux运维工作来说,熟练掌握文件管理技能是非常重要的,所谓“一切皆文件”,控制住文件的权限,可以说也就控制住了linux系统。而且,运维的工作要和成千上万的文件打交道,对于文件属性的熟识程度对于工作的顺利开展有着深远的影响。综上,了解文件,熟悉文件,掌握文件,是我们运维的一个重要的课程。 不同权限对文件和目录的影响 首先,我们现对权限进行…

    Linux干货 2017-07-30
  • linux入门基础知识及简单命令介绍

    1、计算机硬件组成介绍 计算机主要由cpu(运算器、控制器),内存,I/O,外部存储等构成。     cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作。不能从硬盘中直接取数据。     内存从外部存储中取出数据供cpu运存。内存的最小单位是字节…

    Linux干货 2017-08-28
  • 马哥教育网络班19期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥用来连接两个不同的网络间的设备;集线器的作用是把接受的信号放大,从另一个端口再穿法出去,说白了就是延长网络的传输距离;   二层交换机工作在数据链路层,根据源和目的MAC地址进行数据转发;三层交换机就是具有部分路由器功能的交换机,三层交换…

    Linux干货 2016-07-07
  • Centos7下的systemd管理

    systemd简介 Systemd是由红帽公司的一名叫做Lennart Poettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服Sys V 固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手,ubantu上使用的是upstart的启动方式,centos7上使用systemd替换…

    Linux干货 2016-09-23