马哥教育网络班19期-第二周课程练习

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

cat,tac :查看文件内容

cat [OPTION]… [FILE]…

  -E :显示行结束符$

  -n :对显示出行编号

more

  more [OPTIONS…] [file …]

-d :显示翻页及退出提示

less

less [OPTIONS…] [file …]

 

  head :查看文件头部

  head [OPTIONS…] [file …]

  -c # :指定获取文件前#字节

  -n # :指定获取文件前#行

  -#

 

  tail :查看文件尾部

  taile [OPTIONS…] [file …]

  -c # :指定获取文件后#字节

  -n # :指定获取文件后#行

  -#

  -f :跟踪显示文件新追加的内容,Ctrl+c退出

 

  touch :touch – change file timestamps

  touch [OPTION]… FILE…

  -a :only atime

  -m :only mtime

  -t STAMP

  use [[CC]YY]MMDDhhmm[.ss] instead of current time

  -c :如果文件不存在,则不予创建

  cp :copy

  cp [OPTION]… [-T] SOURCE DEST

  cp [OPTION]… SOURCE… DIRECTORY

  cp [OPTION]… -t DIRECTORY SOURCE…

  -i :交互式,提示目标文件存在时是否覆盖

  -r -R :递归复制

  -a :archive归档复制,目标文件名与原文件明必须一样

  相当于-dR –preserv=all

  -d :–no-dereference –preserv=links  不追踪符号链接

  –preserv[=ATTR_LIST]

  mode :权限

  ownership :属主属组

  timestamp :时间戳

  links :链接属性

  xattr :扩展属性(隐藏属性)

  all :

  -p :–preserv=mode,ownership,timestamp

  -v :–verbose

  -f :–force 强制

 

 

  cp SRC DEST

  SRC是文件

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

  如果目标存在:

  如果DEST是文件:将SRC中的内容覆盖至DEST中,此时建议为cp命令使用-i选项

  如果DEST是目录:在DEST下新建与源文件同名的文件,并将SRC中内容填充至DEST中

  cp SRC… DEST

  SRC…:多个文件

  DEST必须存在,且为目录,其他情形均会出错

  cp SRC DEST

  SRC是目录,此时应使用选项:-r

  如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中

  DEST必须是目录

  mv :move,移动文件

  mv [OPTION]… [-T] SOURCE DEST

  mv [OPTION]… SOURCE… DIRECTORY

  mv [OPTION]… -t DIRECTORY SOURCE…

  常用选项

  -i :交互式

-f :强制

rm :remove删除

  rm [OPTION]… FILE…

  -i :交互式

  -f :强制

  -r, -R, –recursive 递归,删除目录

chmod :修改文件或目录权限

chmod [OPTION]… OCTAL-MODE FILE…

  -R :递归修改权限

  chmod [OPTION]… MODE[,MODE]… FILE…

  MODE:

  修改一类用户的所有权限

  u= ,g= ,o= ,ug= ,a= ,u=,g=

  修改一类用户某位或某些位权限

  u+,u-,o+,o-

  chmod [OPTION]… –reference=RFILE FILE…  参考RFILE文件的权限,将FILE权限修改为同RFILE

 

  chown :修改文件的属主

  chown [OPTION]… [OWNER][:[GROUP]] FILE…

 

  用法

  OWNER

  OWNER:GROUP

  :GROUP

  Note:命令中的冒号可以用.替换

  -R :递归

 

  chown [OPTION]… –reference=RFILE FILE…

 

  chgrp :修改文件的属组

  chgrp [OPTION]… GROUP FILE…

  chgrp [OPTION]… –reference=RFILE FILE…

  -R :递归

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

命令的执行结果状态

  成功,失败

 

  bash使用特殊变量$?保存最近一条命令的执行状态结果

  0 :成功

  1-255 :失败

 

  程序执行有两类结果:

  程序的返回值

  程序的执行结果状态结果

 

  命令行展开

  ~ :展开为用户的主目录

  ~USERNAME :展开为指定用户的主目录

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

  /tmp/{a,b} = /tmp/a , /tmp/b

  /tmp/{tom,jerry}hi = /tmp/tom/hi , /tmp/jreey/hi

  eg:创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b

  mkdir -pv /tmp/x/{y1/{a,b},y2/{a,b}}

  mkdir -pv /tmp/x/{y1,y2}/{a,b}

  eg:创建x_m,y_m,x_n,y_n

  mkdir -pv /tmp/{x_{m,n},y_{m,n}}

  mkdir -pv /tmp/{x,y}_{m,n}

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

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

mkdir -pv /tmp/{a,b}_{c,d}

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

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

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

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

   

   (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 -pv /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}}

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/local/bin"

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

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

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

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

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

4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)时间戳信息等

stat命令可查看文件的元数据信息

touch命令可修改文件的时间戳

touch :touch – change file timestamps

  touch [OPTION]… FILE…

  -a :only atime

  -m :only mtime

  -t STAMP

  use [[CC]YY]MMDDhhmm[.ss] instead of current time

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

alias NAME='VALUE' :定义别名NAME,其相当于执行命令VALUE

用反引号或管道或重定向可以在命令中引用另一个命令的执行结果

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

ls -d /var/l*[0-9]*[:lower:]

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

ls -d /etc/[0-9]*[^0-9]

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

ls -d /etc/[^a-z]*[a-z]*

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

mkdir -pv /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`

mkdir: 已创建目录 "/tmp/tfile-2016-06-29-14-45-26"

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

mkdir /tmp/mytest1

cp -a /etc/p*[:alnum:] /tmp/mytest1/

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

mkdir /tmp/mytest2

cp -a /etc/*.d /tmp/mytest2/

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

mkdir /tmp/mytest3

cp -a /etc/[lmn]*.conf /tmp/mytest3

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

(0)
hxc_0215hxc_0215
上一篇 2016-07-03
下一篇 2016-07-04

相关推荐

  • LINUX的初探

    一般而言,计算机的组成遵循着“冯诺依曼体系结构”。这种结构的体现实质上是一种存储程序的原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式来存储。这种结构的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。

    2018-03-04
  • diy自己的linux

    准备一台liunx的机器,我用的是liunx虚拟机,Centos6.8的镜像。 单独加载一块硬盘,我加载了一块20G的硬盘,然后用fdisk /dev/sdb进行分区,sdb1用来作为将来系统的/boot分区,所有100M就可以了,sdb2用来作为将来系统的/分区,我给了10G。然后将两个分区格式化为ext4系统。 mkdir /mnt/boot mkdir…

    Linux干货 2016-09-13
  • Linux中用户、组和权限

    用户user Linux用户:Username/UID 管理员:root,0 普通用户: 系统用户:1-499 交互式登录:登录用户500+,1000+9(CentOs7) 组group  Linux组:Groupname/GID 管理员组:root,0(私有组) 普通组:系统组:1-499,1-999;普通组:500+,1000+ Linux组的类别:1.…

    Linux笔记 2018-04-05
  • 你的数据根本不够大,别老扯什么Hadoop了

    本文原名“Don’t use Hadoop when your data isn’t that big ”,出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过高频交易平台,当过创业公司的CTO,更习惯称自己为统计学者。对了,他现在自己创业,提供数据分析、推荐优化咨询服务,他的邮件是:stucchio@gmail.co…

    Linux干货 2015-04-04
  • linux中管道重定向

    linux中管道重定向 Linux 给程序提供三种I/O设备:    查看是否成功  echo $?      需要再执行命令后直接使用               &n…

    Linux干货 2017-02-21
  • YUM配置安装使用

    一、YUM简介     1. YUM: Yellowdog Update Modifier 完成RHEL系列前端自动解决依赖关系安装工具,依赖rpm存在     2.工作模式:C/S 架构       Server端(yum仓库):依赖关系库、原文件、校验码文件       Client端:yum客户端程序、配置文件(连接Server路径信息)     3.…

    Linux笔记 2018-04-22

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-04 13:56

    写的很好,排版可以多关注一下,加油