第二周作业

第二周博客作业

1. Linux上常用的文件管理命令及使用

  • (1) CP命令:复制文件或文件夹
    语法格式

           cp [OPTION]... [-T] SOURCE DEST            // 单源复制   
           cp [OPTION]... SOURCE... DIRECTORY         //多源复制

    常用选项

           -i,--interactive:交互式复制,如果要复制的目标文件存在,在覆盖之前提醒用户确认;
           -f,--force:强制覆盖目标文件;
           -r,-R,--recursive:递归复制,复制目录中的子目录;
           -d:复制符号连接本身,而不是其指向的源文件;
           -a,-dR --preserve=all:archive,用于实现归档;
           --preserve=[ARRT_LIST]:复制文件时保留源文件的一些属性
                                   如:mode,ownership, timestamps,context,links,xattr,all

    注意
       在复制文件时,如果目标是文件,若文件存在则提示用户是否覆盖目标,若目标不存在则创建一个与源文件同名的文件,并将内容复制进去;如果目标是目录,若目标目录不存在则会提示错误,若目标目录存在,则在目标目录下先创建一个与源文件同名的文件,并将文件内容复制进去。
    示例

    [root@localhost ~]# cp /etc/fstab /tmp/fstab.bak              //单源复制[root@localhost ~]# cp /etc/fstab /etc/passwd /tmp/test/      //多源复制
  • (2) mv命令:移动或重命名文件
    语法格式

            mv [OPTION]... [-T] SOURCE DEST
            mv [OPTION]... SOURCE... DIRECTORY
            mv [OPTION]... -t DIRECTORY SOURCE...

    常用选项

            -f,--force:强制移动,在覆盖时不提示;
            -i,--interactive:覆盖时提示;

    示例

    [root@localhost ~]# mv fstab fstab.bak            //重命名[root@localhost ~]# mv fstab.bak ./test/          //移动
  • (3) rm命令:删除文件或目录
    语法格式

           rm [OPTION]... FILE...

    常用选项

           -f,--force:强制删除,不管文件存不存在都不提示;
           -i,每删除一个文件都询问是否删除;
           -r,-R,--recursive:递归删除,删除目录及子目录;

    示例

    [root@localhost ~]# rm  -r ./test/             //删除目录

2. bash工作特性

  • (1) 命令执行状态返回值
      shell程序会将上一次运行的命令是否成功以及函数的返回值保存在$?这个特殊的变量中,我们可以通过查看$?的值来确认上一次的命令是否执行成功。执行成功则返回0,失败则返回1~255之间的一个数。
    <br/>
    注意:命令的执行状态结果与命令的执行结果是两个不同的概念,比如说,ls命令,当我们执行它时,它的状态结果可能是1,而它的执行结果则是列出当前目录中的文件。
    示例

    [root@localhost tmp]# lsinit.d  mylinux  scripts
    [root@localhost tmp]# echo $?0[root@localhost tmp]# lss-bash: lss: command not found
    [root@localhost tmp]# echo $?2

      另外,我们还可以引用命令的执行结果,使用$(command)或 `(command)` ,如当我们要根据当前时间来创建出一个目录时:

    [root@localhost ~]# mkdir $(date +H%-%M-%s)
  • (2) 命令行展开
      bash中可以使用某些特殊的字符来表示命令中的参数字符串。

           ~ :用户的家目录;
           ~USERNAME:指定用户USERNAME的家目录;       {} :可以指定一个以逗号分隔的路径列表。

    示例

    [root@localhost ~]# cd  ~                        //切换至当前用户的家目录[root@localhost ~]# cd  ~Syuan                   //切换至Syuan的家目录[root@localhost ~]# rm /tmp/{a,b}                //删除tmp目录下的a和b文件

    应用

    Ⅰ 在/tmp目录下创建 a_c,a_d,b_c,b_d文件;

    [root@localhost ~]# touch /tmp/{a,b}_{c,d}

    Ⅱ 创建/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
    [root@localhost ~]# 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}}[root@localhost ~]# tree /tmp/mylinux

3. 文件的元数据信息

  文件的数据可以分为两类,一种是元数据(matedata),用于记录文件的属性信息,如:大小、类型、权限、属主属组、时间戳等。另一种就是数据(data),记录文件的内容。在linux系统上,我们可以通过stat命令来查看文件或文件系统的状态。
示例

[root@localhost ~]# stat functions 
  File: ‘functions’
  Size: 13948         Blocks: 32         IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 202424773   Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2016-11-24 17:48:04.752152528 +0800Modify: 2016-11-24 17:47:23.900148636 +0800Change: 2016-11-24 17:47:23.900148636 +0800
 Birth: -

  我们也可以使用命令来改变文件的一些元数据信息,如权限、属主属组、时间戳等。下面介绍一下改变文件时间戳的命令touch。
touch 命令:修改文件的时间戳,当文件不存在时会创建一个空文件。

语法格式

            touch [OPTION]... FILE...

常用选项

            -a:仅修改访问时间;            -c:文件不存在是不创建;            -m:仅修改修改时间;            -t STAMP:指定时间而不是使用当前的时间,格式[[CC]YY]MMDDhhmm[.ss]

示例

[root@localhost ~]# ll functions -rw-r--r--. 1 root root 13948 Nov 24 17:47 functions
[root@localhost ~]# touch functions [root@localhost ~]# ll functions -rw-r--r--. 1 root root 13948 Dec 11 05:27 functions

4. 命令的别名

  在linux系统上我们可以给命令的常用选项定义一个别名,使用别名就相当于使用这个命令的特定选项。这对于这个命令特别常用选项很长或者很多时,通过别名来使用就非常方便。在linux系统上通过alias命令来定义别名,它是shell的内嵌命令。
alias命令:定义或显示别名
语法格式

            alias [name[=value] ... ]

alias不带参数时显示系统上定义的所有别名。
示例

[root@localhost ~]# alias clear='clr'

注意:使用alias命令所定义的别名只对当前shell进程有效,当系统重启后所定义的别名变不起作用了,若要使定义的别名永久有效,则可以编辑~/.bashrc文件。另外,撤销别名的定义可以使用unalias命令。


5. 练习

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

[root@localhost ~]# ls /var | grep "\<l.*[[:digit:]]\+.*[[:lower:]]\>"
  • (2) 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[root@localhost ~]# ls /etc | grep "\<[[:digit:]].*[^[:digit:]]\>"
  • (3) 显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[root@localhost ~]# ls /etc | grep "\<[^[:alpha:]][[:alpha:]].*"
  • (4) 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

[root@localhost ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
  • (5) 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

[root@localhost ~]# mkdir /tmp/mytest1[root@localhost ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
  • (6) 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

[root@localhost ~]# mkdir /tmp/mytest2[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2/
  • (7) 复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

[root@localhost ~]# mkdir /tmp/mytest3[root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3

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

(0)
SyuanSyuan
上一篇 2016-12-15 22:54
下一篇 2016-12-16 12:26

相关推荐

  • 配置NTP服务器

    配置NTP时间服务器 一.安装ntp软件 1.检查是否安装了ntp相关包。 rpm -qa | grep ntp 2.安装ntp软件。 yum -y install ntp 二.参数讲解 ignore  :关闭所有的 NTP 联机服务 nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。 notrust :客户端…

    Linux干货 2016-10-30
  • 【招聘福利】上海/北京/深圳丨 云络科技丨招募linux系统运维工程师

    岗位要求: 1,安装服务器 – Linux CentOS + netinstall 2.服务器安全 – 用户、权限、iptables、sudo 3.计划部署Linux?高可用性,包括HA,LB 4.协助Leader完成复杂的网络设计 (完全冗余/故障迁移/高可用性) 5.用linux命令查看服务器(top/iostat/vmstat/sar/等) 6.安装、…

    Linux干货 2016-04-05
  • 计算机操作系统与简单命令

    计算机系统的组成 硬件:主机(cpu、内存等),外部设备(输入设备键盘鼠标、输出设备显示屏;硬软盘   等等)。 软件:主要由操作系统和应用程序构成。 计算机硬件的组成部分及工作流程图 输入设备——存储器——CPU运算——输出设备   服务器主要分类有: 塔式服务器:立式PC相像 机架式服务器:统一标准宽度19英寸(48.26c…

    Linux干货 2017-02-14
  • jackcui0804作业

    (1)显示/proc/meminfo 文件中以大小s 开头的行;( 要求:使用两种方式) [root@centos7 ~]# cat /proc/meminfo | grep -e "^s.*" -e "^S.*" SwapCac…

    Linux干货 2016-08-08
  • 马哥教育网络班22期+第1周课程练习

    Linux的发行版以及不同发行版之间的联系与区别    Linux发行版主要的大分支有三个:dibian  S.U.S.E  redhat 一个操作系统由kernel和application组成。编译封装的时候根据不同的application,可以编译成不同的发行版本。 所有的linux发行版都是基于GPL的版权,它们…

    Linux干货 2016-08-15
  • raid各级别特性

      简介 RAID是一个我们经常能见到的名词。但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握。本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念。 RAID全称为独立磁盘冗余阵列(Rdeundant Array of Independent Disks),基本思想就是把 多个相对便宜的硬盘组合起来,成为一个硬盘阵列组…

    Linux干货 2016-01-19