马哥教育-第二周作业

问题一:文件管理类命令

常规命令:mkdir、rmdir、stat、touch、copy、mv、rm

(1).mkdir  创建目录:

注意:路径基名方为命令的作用对象;基名之前的路径必须得存在;

-p:自动按需创建父目录;

-v:显示创建过程;

-m 参数:直接给定所需权限;

例子:问题:创建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

[root@localhost ~]# tree /tmp/x

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

(2).rmdir  仅用于删除空目录

-p:删除某目录后,如果其父目录为空,则一并删除之;

例子:删除空目录 testdir

[root@localhost ~]# rmdir testdir

 

(3).stat  查看文件状态

例子:查看目录 x 的信息

[root@localhost tmp]# stat x

文件: `x'

大小: 4096 块: 8 IO 块: 4096 目录

设备: fd00h/64768d Inode: 622755 硬链接: 4

权限: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

最近访问: 2016-11-22 23:26:19.000000000 +0800

最近更改: 2016-11-22 20:30:04.000000000 +0800

最近改动: 2016-11-22 20:30:04.000000000 +0800

 

[root@localhost tmp]# stat x

File: `x'

Size: 4096 Blocks: 8 IO Block: 4096 directory

Device: fd00h/64768d Inode: 622755 Links: 4

Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2016-11-22 23:26:19.000000000 +0800

Modify: 2016-11-22 20:30:04.000000000 +0800

Change: 2016-11-22 20:30:04.000000000 +0800

 

(4).touch  更改元数据信息

用法:

改变access(最近访问时间)和modify(最近更改时间)两个时间。

touch file:把三个时间都改为此刻的时间。

-a:只改访问时间(access);

-m:只改修改时间(modified);

-t:指定时间;

例子:修改文件b的元数据,三个时间戳都相同

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 372484      Links: 1

Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2016-12-11 09:21:57.000000000 +0800

Modify: 2016-11-24 10:24:18.000000000 +0800

Change: 2016-11-24 10:24:18.000000000 +0800

[root@localhost ~]# touch b

[root@localhost ~]# stat b

  File: `b'

  Size: 0               Blocks: 0          IO Block: 4096   regular empty file

Device: fd00h/64768d    Inode: 372484      Links: 1

Access: (0644/-rw-r–r–)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2016-12-11 09:22:24.000000000 +0800

Modify: 2016-12-11 09:22:24.000000000 +0800

Change: 2016-12-11 09:22:24.000000000 +0800

 

(5).copy 文件复制

用法:

注意:复制文件只是复制文件的数据而不是元数据,但是可以保留元数据的信息。

单源复制:目录是否存在都可以

多源复制:目录必须是存在的

-i:提醒用户操作确认

-f:强行覆盖

-r:递归复制目录

-p:保留源数据

-a:用于实现归档,做备份

–preserv=

mode:权限

ownership:属主和属组

timestamps:时间戳

context:安全标签

xattr:扩展属性

links:符号链接

all:上述所有属性

例子1:复制单个文件

[root@localhost ~]# cp /etc/issue /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 4

-rw-r–r– 1 root root 74 Dec 11 09:37 issue

例子2:复制多个文件

[root@localhost ~]# cp a.sh b.sh c.sh /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 16

-rwxr-xr-x 1 root root 199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root  64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root  91 Dec 11 09:39 c.sh

-rw-r–r– 1 root root  74 Dec 11 09:37 issue

例子3:复制目录

[root@localhost ~]# cp -r /etc/gconf /root/test1

[root@localhost ~]# cd test1

[root@localhost test1]# ll

total 20

-rwxr-xr-x 1 root root  199 Dec 11 09:39 a.sh

-rw-r–r– 1 root root   64 Dec 11 09:39 b.sh

-rwxr-xr-x 1 root root   91 Dec 11 09:39 c.sh

drwxr-xr-x 6 root root 4096 Dec 11 09:42 gconf

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

 

(6).mv 移动或者重命名

例子:

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue

[root@localhost test1]# mv issue issue.20161211

[root@localhost test1]# ll

-rw-r–r– 1 root root   74 Dec 11 09:37 issue.20161211

 

(7).rm:删除

-r:递归删除目标目录下的文件

-f:强制删

 

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

1.  bash的基础特性:命令的执行状态结果

bash通过状态返回值来输出此结果;

成功:0

失败:1-255

命令执行完成之后,其状态返回值保存于bash的特殊变量$中

eg

[root@localhost ~]# echo $?

0

[root@localhost ~]# echo $?

2

注意:命令正常执行时,有的还会有命令返回值。

引用命令的执行结果:

$(command)或'command'

eg

[root@localhost ~]# mkdir $(date +%H-%M-%S)

[root@localhost ~]# echo $?

0

[root@localhost ~]# ls

21-09-03

注:上述就是把date命令的返回值作为参数给了 mkdir 命令。

2.  bash的基础特性之:命令行展开

~:自动展开为用户的家目录,或指定的用户的家目录;

{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;

eg

创建 /tmp/x ; /tmp/x/y1 ; /tmp/x/y1/a ; /tmp/x/y1/b ; /tmp/x/y2

[root@localhost ~]# mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir: created directory `/tmp/x'

mkdir: created directory `/tmp/x/y1'

mkdir: created directory `/tmp/x/y1/a'

mkdir: created directory `/tmp/x/y1/b'

mkdir: created directory `/tmp/x/y2'

[root@localhost ~]# tree /tmp/x

/tmp/x

|– y1

| |– a

| `– b

`– y2

 

问题三:使用命令行展开完成以下练习

1.  创建/tmp目录下的:a_c,a_d,b_c,b_d

Eg

[root@localhost ~]# ls /tmp/     

[root@localhost ~]# touch /tmp/a_{c,d} /tmp/b_{c,d}

[root@localhost ~]# ls /tmp/

a_c  a_d  b_c  b_d

2. 创建/tmp/mylinux下的目录结构

[root@localhost ~]# mkdir /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}} -pv

mkdir: 已创建目录 "/tmp/mylinux"

mkdir: 已创建目录 "/tmp/mylinux/bin"

mkdir: 已创建目录 "/tmp/mylinux/boot"

mkdir: 已创建目录 "/tmp/mylinux/boot/grub"

mkdir: 已创建目录 "/tmp/mylinux/dev"

mkdir: 已创建目录 "/tmp/mylinux/etc"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"

mkdir: 已创建目录 "/tmp/mylinux/lib"

mkdir: 已创建目录 "/tmp/mylinux/lib/modules"

mkdir: 已创建目录 "/tmp/mylinux/lib64"

mkdir: 已创建目录 "/tmp/mylinux/proc"

mkdir: 已创建目录 "/tmp/mylinux/sbin"

mkdir: 已创建目录 "/tmp/mylinux/sys"

mkdir: 已创建目录 "/tmp/mylinux/tmp"

mkdir: 已创建目录 "/tmp/mylinux/usr"

mkdir: 已创建目录 "/tmp/mylinux/usr/local"

mkdir: 已创建目录 "/tmp/mylinux/usr/bin"

mkdir: 已创建目录 "/tmp/mylinux/usr/sbin"

mkdir: 已创建目录 "/tmp/mylinux/var"

mkdir: 已创建目录 "/tmp/mylinux/var/lock"

mkdir: 已创建目录 "/tmp/mylinux/var/log"

mkdir: 已创建目录 "/tmp/mylinux/var/run"

 

问题四:文件的元数据信息有哪些,分别表示什么含义

文件有两种数据

元数据:只是文件自身的属性信息。

数据:文件内容本身。

 

问题五:如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果

命令别名:alias

eg:

[root@localhost ~]# alias

alias cp='cp -i'

alias l.='ls -d .* –color=tty'

alias ll='ls -l –color=tty'

alias ls='ls –color=tty'

定义别名:

alias 原命令=别名命令,但是这个是临时的

撤销别名:

unalias 别名

永久定义别名:定义在~/.bashrc或者/etc/bashrc

 

命令练习: 

1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一位任意字符的文件或目录;

[root@localhost ~]# ls -d /var/l?[[:lower:]]

[root@localhost ~]# ls -d /var/l?[[:lower:]]

/var/lib /var/log

[root@localhost ~]# cd /var

[root@localhost var]# ls -d l?[[:lower:]]

lib log

注意:-d 的参数是只列出目录。

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

[root@localhost etc]# ls -d [[:digit:]]*[^[:digit:]]

3ab23y

[root@localhost etc]# ls -d [0-9]*[^0-9]

3ab23y

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

[root@localhost etc]# ls -d [0-9][a-z]*

2fdsafsf

4.复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/xuef目录;

[root@localhost etc]# cp -r m*[^0-9] /tmp/xuef

[root@localhost etc]# cd /tmp/xuef

[root@localhost xuef]# ls

mail makedev.d mgetty+sendfax mke2fs.conf modprobe.d mtools.conf

mailcap man.config mime.types modprobe.conf motd multipath.conf

mail.rc maven minicom.users modprobe.conf~ mtab

5.复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下;

[root@localhost ~]# cp -r /usr/share/man/man[0-9] /tmp/man

[root@localhost man]# du -sh

25M

6.复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/man目录下;

[root@localhost man]# cp -r /etc/[mnrp]*.conf /tmp/xuef

7. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名如tfile-2016-05-26-08-32-22

[root@localhost ~]]#  touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

 

 

 

原创文章,作者:N25-笔头,如若转载,请注明出处:http://www.178linux.com/63177

(0)
N25-笔头N25-笔头
上一篇 2016-12-11
下一篇 2016-12-11

相关推荐

  • 第二十一周作业

    1、回顾并详细总结MySQL的存储引擎、索引; 常用存储引擎的对比: 特点 MyISAM InnoDB MEMORY MERGE NDB 存储限制 有 64TB 有 没有 有 事务安全 支持 锁机制 表锁 行锁 表锁 表锁 行锁 B树索引 支持 支持 支持 支持 支持 哈希索引 支持 全文索引 支持 集群索引 支持 数据缓存 支持 支持 支持 索引缓存 支持…

    2017-07-29
  • 作业:0805

    1.查出用户UID最大值的用户名、UID及shell类型 > cat /etc/passwd|cut -d: -f 1,3,7 |sort -t: -k2 -n| tail -1 2.查出/tmp的权限,以数字方式显示 > st…

    Linux干货 2016-08-08
  • 计算机的组成、Linux主流三大版本的区别、Linux的哲学思想、Linux的使用格式及命令的使用简略说明,以及如何查看命令帮助、FHS目录机构

    计算机的组成极其功能? 按功能来说计算机是由运算器、控制器、I/O系统(输入、输出系统)、存储器五部分组成。 运算器:即中央处理器(CPU)作为五大部分中心的主脑,对数据进行逻辑运算或算数运算。 控制器:主要是指内存设备,将读取到的数据临时保存在内存中这个过程被成为寻址。在cpu中也有属于自己的控制器称之为CPU的寄存器来进行多指令的行。 I/O系统:输入系…

    2017-12-03
  • Linux程序包管理(一)RPM使用

    Linux程序包管理 在早期我们使用源代码的方式安装软件时,都需要先把源程序代码编译成可执行的二进制应用程序,然后进行安装。意味着每次安装软件都需要经过 预处理 –> 编译 –> 汇编–> 链接, 这个复杂的过程。为简化安装步骤,程序提供商就在特定的系统上面编译好相关程序的安装文件并进行打包,提…

    Linux干货 2016-06-01
  • 马哥教育网络班22期-第6周博客作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@centos6 ~]# cp /etc/rc.d/rc.sysinit /tmp/ [root@centos6 ~]# sed -…

    Linux干货 2016-12-05
  • centos 7 修改sshd服务默认端口号

    由于最近sshd服务默认端口号22被匿名进行试探性的进行登入,为防止匿名用户再次进行试探性的登入,将sshd服务的默认端口号进行修改。 环境:centos 7.3  xshell 思路:先将sshd的被指文件进行修改,把sshd服务的默认端口号修改为所需要的端口号,然后重启sshd服务,发现重启报错。找其原因是应为selinux不允许自定义sshd…

    Linux干货 2017-04-06

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-16 15:53

    总结的很详细~能用markdown格式化输出会更好~加油。