网络班22期+第二周作业练习

常用的文件管理命令:

  • ls,显示文件或目录

    • -l:显示文件或目录的包括权限、属主、属组大小创建日期等详细信息

      • [root@centos7 ~]# ls -l
        total 16
        -rw-r--r--. 1 root root   64 Aug 27 18:33 11
        -rw-r--r--. 1 root root   63 Aug 27 17:54 22
        -rw-------. 1 root root 1242 Jul 29 17:51 anaconda-ks.cfg
        drwxr-xr-x. 2 root root    6 Aug 21 00:45 Desktop
        drwxr-xr-x. 2 root root    6 Aug 21 00:45 Documents
        drwxr-xr-x. 2 root root    6 Aug 21 00:45 Downloads
    • -a:显示所有文件,-A:显示所有文件但不包过. ..

    • -d:显示目录本身而非目录下的文件,一般配合-l使用

      • [root@centos7 ~]# ls Desktop
        mytest.out
        [root@centos7 ~]# ls -dl Desktop
        drwxr-xr-x. 2 root root 23 Sep  5 17:07 Desktop
    • -h:配合 -l ,以K、M、G等方式显示文件大小,更易读,但文件大小不精确

    • -r:逆序显示,-R:递归显示

  • cp,复制文件

    • -i:覆盖交互提示

    • -r:递归复制

    • -f:强制覆盖

    • 单源复制

      • [root@centos7 tmp]# cp test1.pic testdir
    • 多源复制

      • [root@centos7 tmp]# cp testscr.pic testusb.pic testdir
    • 目录复制

      • [root@centos7 tmp]# cp -rf cups testdir
        [root@centos7 tmp]# ls testdir
        cups
  • mv:移动文件或改名,用法类似cp

    • [root@centos7 tmp]# mv test1.pic testdir
      [root@centos7 tmp]# mv testscr.pic testpic
  • rm:删除文件或目录,用法类似cp

    • -r:递归删除,慎用

    • -f:强制删除

    • -d:删除空目录

  • mkdir:创建文件夹

    • -p:如要创建的目标目录的父目录不存在,则自动为其创建

      • [root@centos7 tmp]# mkdir -pv d1/d2/d3
  • touch:创建空文件或修改文件时间戳

    • -c:目标文件不存在时,不予创建文件

    • -a:修改Access time

    • -m:修改Modify time

    • -t:指定时间

  • pwd:显示当前路径

  • cd:切换目录

    • cd ~:切换回家目录

    • cd -:上次和本次的目录来回切换

bash特性之命令状态返回值

linux命令有2种结果状态,一种是命令结果输出,一种是命令执行状态

如需要显示/tmp目录下的内容:

[root@centos7 ~]# ls /tmp
cups  d1  t1  t2  testdir  testpic  testusb.pic

如只需要知道 testpic文件是否存在,而不需要显示任何信息:

[root@centos7 tmp]# ls testpic &> /dev/null
[root@centos7 tmp]# echo $?
0

将命令执行结果(和错误信息)重定向至linux黑洞/dev/null,不让其显示任何信息

通过echo $?来检测命令是否执行成功,$?保存了上条命令的执行状态值

0:执行成功

非0:失败

bash特性之命令行展开

创建/tmp下的a、b、c,

一般为mkdir /tmp/a /tmp/b /tmp/c;

如用命令行展开特性则是 

mkdir /tmp{a,b,c},相当于mkdir /tmp/a /tmp/b /tmp/c

练习:

1、创建a_c,a_d,b_c,b_d

[root@centos7 t1]# mkdir -pv {a,b}_{c,d}
mkdir: created directory ‘a_c’
mkdir: created directory ‘a_d’
mkdir: created directory ‘b_c’
mkdir: created directory ‘b_d’

2、创建/tmp/mylinux下的若干目录

[root@centos7 ~]# 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}}

[root@centos7 ~]# tree /tmp/mylinux
/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

24 directories, 0 files

文件元数据

[root@centos7 ~]# stat 11
  File: ‘11’
  Size: 64        	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 138944011   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-08-27 18:33:45.928314700 +0800
Modify: 2016-08-27 18:33:36.369314412 +0800
Change: 2016-08-27 18:33:36.369314412 +0800
 Birth: -

文件名、大小、属主、属组,时间戳等等

用touch修改 Access、Modify、Change时间

命令别名 alias

显示别名alias

设置别名:

[root@centos7 ~]# alias chkver='uname -a'
[root@centos7 ~]# chkver
Linux centos7 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

删除别名:unalias chkver

[root@centos7 ~]# unalias chkver
[root@centos7 ~]# chkver
bash: chkver: command not found...

引用一个命令的执行结果

·· 和 $(cmd)

[root@centos7 ~]# mkdir $(date "+%Y-%m-%d-%T")

练习:

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

  2. [root@centos7 ~]# ls -d /var/l*[0-9]*[a-z]
  3. 显示/etc下,以任意1个数字开头,且以非数字结尾的文件或目录

  4. [root@centos7 ~]# ls /etc/[0-9]*[^0-9]
  5. 显示/etc下以非字母开头,后跟了一个字母及其他任意长度任意字符的文件或目录

  6. [root@centos7 ~]# ls /etc/[^a-z][a-z]*
  7. 在/tmp下创建以tfile开头,后面跟当前日期和时间的文件

  8. [root@centos7 ~]# mkdir $(date "+%Y-%m-%d-%T")
  9. 复制/etc下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1

    复制/etc下所有以.d结尾的文件到/tmp/mytest2

    复制/etc下所有以l或m或n开头,以.conf结尾的文件到/tmp/mytest3

[root@centos7 tmp]# mkdir -pv  mytest{1,2,3}
mkdir: created directory ‘mytest1’
mkdir: created directory ‘mytest2’
mkdir: created directory ‘mytest3’
[root@centos7 tmp]# cp -rf /etc/p*[^0-9] mytest1
[root@centos7 tmp]# cp -rf /etc/*.d mytest2
[root@centos7 tmp]# cp -rf /etc/[l,m,n]*.conf mytest3

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

(0)
ryanhpryanhp
上一篇 2016-09-05
下一篇 2016-09-06

相关推荐

  • mysql备份还原

    一、前言 数据对于一个公司来说有多重要这点不说大家也知道,数据还在,服务崩溃还可重建。为什么要备份?很简单,天灾人祸。比如硬件故障,软件故障,自然灾害,黑客攻击或自身误操作等因素。这时候备份,恢复数据就显得至关重要了。 二、基础概念 由于备份与恢复需要用到一些必要的知识,故在此先讲解下 2.1二进制日志 myql日志有多种,其中二进制日志文件对数据恢复有很大…

    Linux干货 2015-11-30
  • Linux基础知识之软件包管理(二)

    (1)CentOS7 yum dnf  yum repository: yum repo 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下,repodata) 文件服务器: ftp:// http:// nfs:// file:/// (2)yum客户端: 配置文件: /etc/yum…

    Linux干货 2016-08-24
  • 对inode的初步理解

    1.什么是inode?     inode中文译作”索引节点“,是linux操作系统中的一种数据结构,用来存储文件的元数据信息。在linux系统中每个文件都会分配一个inode,我们也可以把inode看作指针,它永远指向文件的具体存储位置。 2.inode中包含了什么信息? * inode 编号 * 用来识别文件类型,以及用于 …

    2017-07-18
  • ​从实验来了解grub

    实验一为grub设置密码 先看一看grub是怎么样的 grub有两个版本 grub: GRand Unified Bootloader grub 0.x: grub legacy grub 1.x: grub2  Note:grub 1.x是完全重写的只不过是保留grub 0.x的工作机制。 2.利用grub自带命令生成密码grub-md5-cry…

    Linux干货 2016-06-09
  • 磁盘分区

      1、创建一个10G分区,并格式化为ext4文件系统;    (1)要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;   (2)挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 第一步:创建一个10G的分区     [r…

    Linux干货 2016-12-18
  • 推荐-Linux Namespace的一点理解

        下文的原文来自: http://blog.csdn.net/preterhuman_peak/article/details/40857117    原文写的非常好,下文中大部分文字描述来自原文,我仅做了一点理解性的插图和实验部分。    &…

    Linux干货 2016-03-28