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

相关推荐

  • Linux文本处理三剑客之GNU awk的使用

    awk: Aho, Weinberger, Kernighan,报告生成器,格式化文本输出 有多种版本:New awk(nawk),GNU awk(gawk) gawk –模式扫描和处理语言 基本用法:     awk[options] ‘program’ var=value file…   &nb…

    Linux干货 2016-10-06
  • AWK

    GNU awk 全称:Aho,Weiberger,Kernighan,是三个作者的名字,所以简称为awk awk:报告生成器,主要用来格式化文本输出的,它能够实现在处理文本文件时对文档中的字段有条件的显示,而且将显示的结果用非常美观的文本形式给予输出。我们所用的awk其实就是gawk,他是一个符号链接指向gawk的。 gawk – pattern…

    Linux干货 2016-09-23
  • Linux基础入门

    Linux基础入门 1、Linux发行版及哲学思想 1.1 Linux发行版          Linux发行版(Linux Distribution,也被叫做GUN/Linux发行版),为一般用户预先集成好的Linux操作系统及各种应用软件。Linux发行版通常包含了包括桌面环…

    Linux干货 2016-02-28
  • 八.Linux博客-2016年8月8日sed、vim

    格式说明: 操作 概念 命令 说明及举例 八.sed、vim sed 文本编辑工具 行编辑器,每次取出一行在内存里处理,处理完成后屏幕打印。完成后再取出一行放到内存里处理,覆盖原来内存中的行,循环。。 sed -n '3d' f1 把文件f1中的第三行删掉并不在屏幕上显示 sed -n&n…

    Linux干货 2016-08-24
  • Linux的任务计划

    Linux的任务计划         我们在使用系统的过程中,经常需要在以后的某个时间点执行一个任务,而我们又不在机器旁边的时候,比如在半夜时服务器访问的用户很少,宽带资源很充足的时候,要去镜像软件包、重启服务器(虽然Linux很稳定)等,或者需要服务器在每天的特定时间去备份数据…

    2017-03-19
  • apache工作模式及虚拟主机的配置

    apache的工作模式 MPM 名词解释MPM   Multipath Process Module 多道处理模块。Linux中常使用prefork worker event三种MPM 即apache常用的三种工作模式。 prefork prefork为多进程模型,每个进程响应一个请求。其工作过程简单说来就是一个主进程:负责生成n个 子进程(子进程…

    Linux干货 2016-07-02