马哥教育网络班20期+第二周课程练习

Table of Contents

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

目录管理

cd

cd  # 回到当前用户的主目录cd ~USERNAME  # 切换至指定用户的主目录cd -  # 在上一个目录和当前目录之间来回切换
  • 相关的环境变量

    • PWD: 保存了当前的目录路径

    • OLDPWD: 上一次所在目录路径

mkdir, rmdir

mkdir [OPTION]... /path/to...  # 创建目录
  -p: 当目录存在时不报错,且可自动创建所需的各目录;
  -v: 显示详细信息
  -m MODE: 创建目录时直接指定权限;
rmdir [OPTION]... /path/to...  # 只能删除空目录
  -p: 层级删除空目录 
  -v: 显示详细信息

ls

显示指定路径下的文件列表

ls [OPTION]... [DIR]...
  -a, --all: 显示所有文件,包括隐藏文件
  -l: 长格式
  -h, --human-readable: 单位换算
  -d: 显示目录自身的相关属性;通常要与-l一起使用;
  -r, --reverse: 逆序显示
  -R, --recursive: 递归
  • 其中 -rw-r–r– 最左侧的一位表示文件类型

tree

列出目录的层级结构

tree /path/to 
  -d: 只显示目录
  -L level: 指定显示的层级数目
  -P pattern: 只显示由指定pattern匹配到的路径;

文件管理

cp

通过文件接口复制

cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
  -i: 交互式
  -r, -R: 递归复制目录及内部的所有内容;  -a: 归档,相当于-dr --preserv=all
    -d: 不跟踪符号文件链接(默认会跟踪复制原文件)    --preserv[=ATTR_LIST]: 保留属性
      ATTR_LIST: mode,ownership,timestamp,links,xattr,context,all  -p: --preserv=mode,ownership,timestamp
  -v: 显示详细信息verbose
  -f: --force
  • cp SRC DEST

    • 如果DEST是文件: 将SRC中的内容覆盖到DEST中(使用-i以确认)

    • 如果DEST是目录: 将SRC复制到该目录下

    • 如果目标不存在: 新建DEST,并将SRC中内容填充到DEST中

    • 如果目标存在:

  • cp SRC… DEST

    • DEST必须存在,且为目录

  • cp -r 目录SRC DEST

    • 如果目标不存在: 新建DEST目录,复制SRC中所有文件至DEST中

    • 如果DEST存在且为目录: 在DEST中创建与SRC同名的目录,复制SRC中的所有文件至该目录中

dd

比较底层的复制命令,可用于文件或磁盘的复制

dd [OPTIONS] if=/PATH/SRC of=/PATH/DEST  bs=NUM: block size, 复制单元的大小  count=NUM: 复制多少个bs

dd if=/dev/sda of=/dev/sdb  # 复制磁盘dd if=/dev/sda of=/... bs=512 count=1  # 备份MBRdd if=/dev/zero of=/dev/sda bs=256 count=1  # 破坏MBR的bootloader

mv

移动文件或目录,也可以用于重命名

mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
  -i: 交互式
  -f: 强制

rm

删除文件或目录

rm [OPTION]... FILE...
  -i: 交互式
  -f: 强制删除
  -r: 递归删除目录

2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

命令返回值

脚本返回值

exit [n]  # 终止脚本,退出码为n(默认为0)
  • 如果未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码

查询返回值

echo $?  # 通过查询?变量可以知道上个命令的执行结果
  • 通常命令成功的返回值是0

命令或路径补全和展开

  • 直接补全: 用户给定的字符串只有一条惟一对应的命令或路径,则按TAB直接补全

  • 补全列表: 对应的命令或路径不唯一,按两次TAB会给出列表

  • {}: 可承载一个以逗号分隔的列表,并将其展开为多个路径,可嵌套使用

    • /tmp/{a,b}_{x,y}

    • /tmp/{bin,sbin,usr/{bin,sbin}}

  • {start..end}: 可以生成一个顺序列表, 但这种方式很占内存

    • user{1..3}: 相当于 user1 user2 user3

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

(1)、创建/tmp目录下的:a_c, a_d, b_c, b

mkdir /tmp/{a_{c,d},b_c,b}

(2)、创建/tmp/mylinux目录下的:

mkdir -p 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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

文件的元数据

  • 文件权限

  • 文件Inode号

  • 文件数据块的分布信息

  • 文件属主和属组

  • access time: 访问时间,简写为atime,读取文件内容

  • modify time: 修改时间, mtime,改变文件内容(数据)

  • change time: 改变时间, ctime,元数据发生改变(包含时间戳的改变)

stat file_name   # 查看文件的原数据

修改文件时间戳

touch [OPTION]... FILE...  # 改变文件时间戳或创建文件
  -a: only atime  # touch默认把3个时间都改为当前时间
  -m: only mtime
  -t [[CC]YY]MMDDhhmm[.ss]: 指定时间
  -c: 不自动创建空文件

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

命令别名(alias)

alias  # 显示当前shell进程所有可用的命令别名alias NAME='VALUE'  # 定义命令别名NAME# 如果要永久生效需要写入bash配置文件中
unalias [-a] name...
  -a: 撤销所有别名
  • 如果要忽略别名执行原命令的话,可使用 \COMMAND

引用命令结果

  • 在命令中使用 `COMMAND`

  • 在命令中使用 $(COMMAND)

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

ls /var | grep "^l.*[0-9].*[[:lower:]]$"

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

ls /etc | grep "^[0-9].*[^0-9]$"

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

ls /etc | grep "^[^[:alpha:]][[:alpha:]].*"

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

touch /tmp/tfile-`date +%F-%H-%M-%S`

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

mkdir /tmp/mytest1
cp -r /etc/p*[^0-9] /tmp/mytest1

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

mkdir /tmp/mytest2
cp -r /etc/*.d /tmp/mytest2

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

mkdir /tmp/mytest3
cp /etc/[lmn]*.conf /tmp/mytest3

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

(0)
Net20_木皮Net20_木皮
上一篇 2016-06-23 11:01
下一篇 2016-06-23 11:02

相关推荐

  • 26期全程班-第二周博客作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     cp  复制命         ex:cp -a /etc/initab /var/log/message /tmp/   …

    Linux干货 2017-01-10
  • N25-第一周作业

    第一周作业 一 、计算机的组成及其功能 计算机由CPU,控制器,存储器,输入设备,输出设备组成的。 CPU是计算机的重要硬件之一,主要负责运算和指令解释。 控制器是控制计算机系统的各个硬件设备协同工作的如(主板的南桥,北桥等) 存储器分为内存和硬盘,内存负责程序运行,硬盘负责数据存储。 输入设备有键盘,鼠标等。 输出设备有显示器,打印机等。 二 、…

    Linux干货 2016-12-04
  • 携程全站瘫痪引发的思考

       为今年5月冠上多事之夏的名头已是无可厚非的一件事,自支付宝光纤被挖断后,携程又暴出全站瘫痪的风波,从5/28 11:00开始,直到晚上11:29分才全面恢复.互联网也是谣言四起,纷纷猜测百度腾讯谁会是下一个灾难的受害者。暂切抛开这些玩笑言论,就携程本次事情引发的思考太多,前车之鉴后事之师,如果携程的事情发生到我们身上,我们该怎么办,…

    Linux干货 2015-06-03
  • 编译安装httpd-2.4.9及新特性详解

    前言 前面我们讲解了httpd在CentOS6上(httpd-2.2)的相关功能配置,而CentOS7上采用了httpd-2.4的版本,那么httpd-2.4增加了哪些特性呢?接下来让我们在CentOS6.6上手动编译安装一下httpd-2.4.9,看一下和httpd-2.2有什么不同,顺便补充说一下httpd的其它功能。 环境及新特性介绍 环境介绍 系统环…

    Linux干货 2015-04-15
  • 网络班N22期第四周博客作业

    一、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@bogon ~]# cp -r /etc/skel /home/tuser1 && chmod -R 60…

    Linux干货 2016-09-05
  • sed 高级用法(1) 之 n N

    前言 我在参考其它多个Blog中发现,有些Blog中sed的功能介绍和实际有出入,这可能和版本有关系,正如sed文档中所说“might change in future versions”,所以本文sed是以4.2.1为例。如果以后sed更新版本了,有可能会不一样。 好记性不如烂笔头! sed的工作原理 sed维护着两个数据的缓冲空间,一个是模式空间(pat…

    Linux干货 2015-07-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-06-23 14:12

    写的很棒,案例也比较多,但是不要把课上的比较直接贴过来