N26—第二周博客作业

一、Linux常用管理命令

    1、cp命令:复制

        cp 源文件 目标文件

[root@localhost ~]# cp /etc/fstab /tmp
cp: overwrite ‘/tmp/fstab’? y

    如果目标文件中存在同名的文件,将会提示你是否覆盖,按下“y”键则覆盖。

[root@localhost ~]# cp /etc/vimrc /etc/fstab /etc/exports /tmp/

    此命令为复制多个文件到指定目录,其中/tmp/为目标文件

[root@localhost ~]# cp -r /etc/ /tmp/cc/

    此命令为递归复制,意思就是讲/etc/目录下的所有文件,以及子目录里的文件全部复制到/tmp/cc/ 目录之下。

命令一:lrwxrwxrwx.  1 root root       14 Dec 22 18:01 system-release -> centos-release
命令二:[root@localhost ~]# cp /etc/system-release /tmp/aa/
命令三:[root@localhost ~]# ls -l /tmp/aa/
-rw-r--r--. 1 root root 38 Jan  6 07:20 system-release

    此命令为复制符号链接所指向的源文件到目录/tmp/aa目录下,通过命令三查看system-release的属性前面没有标注l(l代表此文件为软连接)

命令一:[root@localhost ~]# cp -d /etc/system-release /tmp/aa/
命令二:[root@localhost ~]# ll /tmp/aa/
total 0
lrwxrwxrwx. 1 root root 14 Jan  6 07:22 system-release -> centos-release

    此命令为复制符号链接,而非文件的本身,通过命令二查看,此文件属性前有l参数,并且文件名字后面有指向源文件的符号标识"->"

    2、mv命令:移动命令

        mv 源文件 目标文件

[root@localhost ~]# mv aaa /tmp/

将文件aaa移动到/tmp目录下,此时工作目录中已经没有aaa这个文件

命令一:[root@localhost ~]# mv aaa /tmp/
mv: overwrite ‘/tmp/aaa’? 
命令二:[root@localhost ~]# mv aaa -f /tmp/

当目标文件中存在与源文件相同的文件名时,会提示是否覆盖该文件,如命令一所示;此时,如果在命令中加上-f参数则不会提示是否覆盖而是直接覆盖,如命令二所示。

    

    3、rm命令:删除命令

    rm 路径名/文件名

rm后接路径名可直接删除该文件,删除时会提示你是否删除,加上-f参数则不会提示,加上-rf参数则会删除该目录下所有文件以及子目录所有的文件。

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

    1、bash的基础特性之:命令行展开

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

           命令一: [root@localhost tmp]# ~
            -bash: /root: Is a directory
            
           命令二:[user1@localhost tmp]$ ~
            -bash: /home/user1: Is a directory

        命令一展示的为root用户的家目录:/root;命令二展示的为user1用户的家目录:/home/user1

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

例如:/tmp/{a,b} 相当于/tmp/a /tmp/b

root@localhost tmp]# ls -l /tmp/{aaa,bbb}
/tmp/aaa:
total 0

/tmp/bbb:
total 0

    此命令分别列出了/tmp/aaa目录和/tmp/bbb目录下的信息。

    2、bash的基础特性:命令的执行状态结果

命令执行的状态结果:

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

成功:0

失败:1-255

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

        命令正常执行时,有的还会有命令返回值,根据命令及其功能不同,结果各不相同;

命令一:[root@localhost tmp]# touch 111
[root@localhost tmp]# echo $?
0

命令二:[root@localhost tmp]# ls 222
ls: cannot access 222: No such file or directory
[root@localhost tmp]# echo $?
2

命令三:
[root@localhost tmp]# cp 222
cp: missing destination file operand after ‘222’
Try 'cp --help' for more information.
[root@localhost tmp]# echo $?
1

        命令一为正常执行,返回值为0.命令二和命令三为执行错误,返回值分别为2和1.

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

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

[root@localhost tmp]# touch {a_,b_}{c,d}
[root@localhost tmp]# ls -l
total 0
-rw-r--r--. 1 root root 0 Jan  6 07:58 a_c
-rw-r--r--. 1 root root 0 Jan  6 07:58 a_d
-rw-r--r--. 1 root root 0 Jan  6 07:58 b_c
-rw-r--r--. 1 root root 0 Jan  6 07:58 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

命令一:
[root@localhost tmp]# 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 tmp]# tree /tmp/
/tmp/
└── mylinux
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │       └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   ├── bin
    │   ├── local
    │   └── sbin
    └── var
        ├── lock
        ├── log
        └── run

25 directories, 0 files

    命令一为建造目录的命令,命令二为测试输出的结果。

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

任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。

[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-01-06 08:13:50.820953499 -0500
Modify: 2017-01-06 08:13:50.820953499 -0500
Change: 2017-01-06 08:13:50.820953499 -0500
 Birth: -

根据stat命令来查看元数据信息;

[root@localhost tmp]# touch -at 1011142221 aaa
[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2010-11-14 22:21:00.000000000 -0500
Modify: 2017-01-06 08:34:02.258938821 -0500
Change: 2017-01-06 08:46:13.858929957 -0500
 Birth: -

仅修改aaa文件访时间戳的访问时间为10年14号22点21

[root@localhost tmp]# touch -mt 1411142221 aaa
[root@localhost tmp]# stat aaa
  File: ‘aaa’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 137         Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2010-11-14 22:21:00.000000000 -0500
Modify: 2014-11-14 22:21:00.000000000 -0500
Change: 2017-01-06 08:47:58.272928692 -0500
 Birth: -

仅修改aaa文件的最近改动时间为2014年11月14日22点21分

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

   1、定义命令的别名

    alias 别名='命令'

[root@localhost tmp]# alias mm='rm /tmp/*'
[root@localhost tmp]# ls /tmp/
0811142234.50  101142234  12:11       22:21:48  bbb  mylinux
0911142234.50  11         2016-12-24  aaa       ddd  oct
[root@localhost tmp]# mm
rm: remove regular empty file ‘/tmp/0811142234.50’? y
rm: remove regular empty file ‘/tmp/0911142234.50’? y
rm: remove regular empty file ‘/tmp/101142234’? y
rm: remove regular empty file ‘/tmp/11’? y
rm: remove regular empty file ‘/tmp/12:11’? y
rm: remove regular empty file ‘/tmp/2016-12-24’? y
rm: remove regular empty file ‘/tmp/22:21:48’? y
rm: remove regular empty file ‘/tmp/aaa’? y
rm: remove regular empty file ‘/tmp/bbb’? y
rm: remove regular empty file ‘/tmp/ddd’? y
rm: cannot remove ‘/tmp/mylinux’: Is a directory
rm: remove regular empty file ‘/tmp/oct’? y

 定义mm为命令'rm /tmp/*'命令的别名,执行mm命令时等于执行'rm /tmp/*'命令

       

    2、通过`命令`能引用命令执行的结果

[root@localhost tmp]# echo `cat /etc/fstab`
# # /etc/fstab # Created by anaconda on Thu Dec 22 18:00:27 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=7ee15b3b-c6b1-4fb6-88d4-442348105d29 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 noatime,noexec 0 0

此命令为在屏幕输出'cat /etc/fstab'的执行结果

六、var目录下以l开头,中间有数字,小写字母结尾的文件或目录

[root@localhost tmp]# ls -ld /var/l*[1-9]*[a-z]
-rw-r--r--. 1 root root 0 Jan  6 09:22 /var/l123aafa
-rw-r--r--. 1 root root 0 Jan  6 09:16 /var/l2a

七、/etc目录下以任意数字开头,非数字结尾的目录或文件

[root@localhost tmp]# ls -ld /etc/[1-9]*[![:digit:]]
-rw-r--r--. 1 root root 0 Dec 26 02:25 /etc/123a

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

[root@localhost tmp]# ls -ld /etc/[^[:alpha:]][:alpha:]*
-rw-r--r--. 1 root root 0 Jan  6 09:42 /etc/1a555

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

[root@localhost tmp]# touch tfile-`date +%F-%H-%M-%S`
[root@localhost tmp]# ls -l /tmp
total 0
-rw-r--r--. 1 root root 0 Jan  6 09:49 tfile-2017-01-06-09-49-37

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

[root@localhost tmp]# cp -rd /etc/p*[^[:digit:]] /tmp/mytest1/
[root@localhost tmp]# ls -l /tmp/mytest1/
total 56
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 pam.d
-rw-r--r--. 1 root root 3450 Jan  6 09:57 passwd
-rw-r--r--. 1 root root 3407 Jan  6 09:57 passwd-
-rw-r--r--. 1 root root 1362 Jan  6 09:57 pbm2ppa.conf
-rw-r--r--. 1 root root 2872 Jan  6 09:57 pinforc
drwxr-xr-x. 9 root root   91 Jan  6 09:57 pki
drwxr-xr-x. 2 root root   27 Jan  6 09:57 plymouth
drwxr-xr-x. 5 root root   49 Jan  6 09:57 pm
-rw-r--r--. 1 root root 6300 Jan  6 09:57 pnm2ppa.conf
drwxr-xr-x. 2 root root    6 Jan  6 09:57 popt.d
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 postfix
drwxr-xr-x. 3 root root 4096 Jan  6 09:57 ppp
drwxr-xr-x. 2 root root  101 Jan  6 09:57 prelink.conf.d
-rw-r--r--. 1 root root  233 Jan  6 09:57 printcap
-rw-r--r--. 1 root root 1750 Jan  6 09:57 profile
drwxr-xr-x. 2 root root 4096 Jan  6 09:57 profile.d
-rw-r--r--. 1 root root 6545 Jan  6 09:57 protocols
drwxr-xr-x. 2 root root   75 Jan  6 09:57 pulse
drwxr-xr-x. 2 root root   22 Jan  6 09:57 purple
drwxr-xr-x. 2 root root   34 Jan  6 09:57 python

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

[root@localhost tmp]# cp -rf /etc/*.d /tmp/mytest2/
[root@localhost tmp]# ls /tmp/mytest2/
auto.master.d      dracut.conf.d  logrotate.d     profile.d  rc.d           sysctl.d
bash_completion.d  exports.d      modprobe.d      rc0.d      request-key.d  tmpfiles.d
binfmt.d           gdbinit.d      modules-load.d  rc1.d      rsyslog.d      usb_modeswitch.d
cgconfig.d         grub.d         my.cnf.d        rc2.d      rwtab.d        xinetd.d
chkconfig.d        init.d         oddjobd.conf.d  rc3.d      sane.d         yum.repos.d
cron.d             ipsec.d        pam.d           rc4.d      setuptool.d
depmod.d           ld.so.conf.d   popt.d          rc5.d      statetab.d
dnsmasq.d          libibverbs.d   prelink.conf.d  rc6.d      sudoers.d

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

[root@localhost tmp]# ls /tmp/mytest3/
ld.so.conf     libuser.conf  logrotate.conf  mke2fs.conf  nfsmount.conf  ntp.conf
libaudit.conf  locale.conf   man_db.conf     mtools.conf  nsswitch.conf  numad.conf

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

(0)
上一篇 2017-01-06 15:48
下一篇 2017-01-06 23:17

相关推荐

  • 集中练习2

    用户管理、文本处理、文件管理相关

    2017-09-20
  • bash脚本与程序包管理

    概述:本章主要介绍bash编程中的函数和数组以及字符串处理和程序包管理工具等,来帮助小伙伴们更进一步的了解bash编程的内容和软件的安装、更新、卸载、查询等操作。 一、函数介绍 函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序…

    Linux干货 2016-08-24
  • 磁盘管理详解

    linux系统如何识别硬盘 硬盘类型:        按接口可划分为        并行             &nb…

    Linux干货 2016-08-29
  • http和apache服务器

    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 http/1.1 :1997年1月 引入了持久连接(persistent connection) , tcp连接默认不关闭,可以被多个请…

    2017-12-05
  • 22期+第一周课堂练习

    一.计算机的组成及其功能 计算机的组成及其功能结构图      各部件的关系图          二.按系列罗列Linux的发行版,并描述不同版本之间的联系与区别 1.各版本逻辑结构图 2.各版本的介绍   Redhat,应该称为Redhat系列,包括RHEL(Redh…

    Linux干货 2016-08-15
  • 第一周:Linux基础之系统入门知识(一)

    一、计算机的组成及功能 现代计算机的基本结构是由匈牙利-美国科学家冯· 诺依曼于1946年提出的。迄今为止所有进入实用的电子计算机  都是按冯· 诺依曼提出的结构体系和工作原理设计制造的故又统称为“冯·诺依曼型计算机"。 根据冯.诺依曼原理:计算机由运算器、控制器、存储器、输入设备、输出设备所组成 运算器: 进行算术与逻辑运算 控制器:&…

    Linux干货 2016-09-18

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-02 19:51

    非常的棒,继续加油。