马哥教育网络班21期+第2周课程练习

#

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

### A.cp(copy,复制)

基本格式:cp 需要复制的文件路径 复制目的目录路径

~~~

[root@iZ23olnit2eZ ~]# ls

jdk-8u91-linux-x64.tar.gz 

[root@iZ23olnit2eZ ~]# pwd

/root

[root@iZ23olnit2eZ ~]# cp /root/jdk-8u91-linux-x64.tar.gz /tmp

[root@iZ23olnit2eZ ~]# ls /tmp

jdk-8u91-linux-x64.tar.gz  

~~~

### B.mv(move,移动)

基本格式:mv 需要移动的文件路径 复制移动文件路径(可改原文件名)

~~~

[root@iZ23olnit2eZ ~]# mv /root/jdk-8u91-linux-x64.tar.gz /tmp/myname

[root@iZ23olnit2eZ ~]# ls /tmp

myname

~~~

### C.rm(remove,删除)

基本格式:rm 需删除文件(不需确认则加-f参数,涉及文件夹需要递归删除时加上-rf选项)

~~~

[root@iZ23olnit2eZ ~]# rm /tmp/myname 

rm: remove regular file `/tmp/myname'? y

[root@iZ23olnit2eZ ~]# ls /tmp

~~~

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

### A.查看命令执行状态

echo $? 查看命令执行返回值,为0表示执行成功,非0表示执行失败

~~~

[root@iZ23olnit2eZ ~]# ls 

jdk-8u91-linux-x64.tar.gz  

[root@iZ23olnit2eZ ~]# echo $?

0

[root@iZ23olnit2eZ ~]# ls nothing

ls: cannot access nothing: No such file or directory

[root@iZ23olnit2eZ ~]# echo $?

2

~~~

### B.命令行展开

~为当前系统用户家目录

~~~

[root@iZ23olnit2eZ ~]# cd /tmp

[root@iZ23olnit2eZ tmp]# cd ~

[root@iZ23olnit2eZ ~]# pwd

/root                                                

~~~

-为上一次使用目录

~~~

[root@iZ23olnit2eZ ~]# cd –

/tmp                                                

~~~

{}在大括号中加上带逗号的列表,可展开为相应目录

~~~

[root@iZ23olnit2eZ tmp]# mkdir {a_{a,b},{c,d}_e}

[root@iZ23olnit2eZ tmp]# ls

a_a  a_b  c_e  d_e                                                 

~~~

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

~~~

   (1)、创建/tmp目录下的:a_c, a_d, b_c, 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

~~~

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

~~~

[root@iZ23olnit2eZ tmp]# ls

[root@iZ23olnit2eZ tmp]# mkdir {a_{c,d},b_{c,d}}

[root@iZ23olnit2eZ tmp]# ls

a_c  a_d  b_c  b_d

~~~

### B.按图示创建/tmp/mylinux目录下的目录

~~~

[root@iZ23olnit2eZ 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}}

mkdir: created directory ‘/tmp/mylinux’

mkdir: created directory ‘/tmp/mylinux/bin’

mkdir: created directory ‘/tmp/mylinux/boot’

mkdir: created directory ‘/tmp/mylinux/boot/grub’

mkdir: created directory ‘/tmp/mylinux/dev’

mkdir: created directory ‘/tmp/mylinux/etc’

mkdir: created directory ‘/tmp/mylinux/etc/rc.d’

mkdir: created directory ‘/tmp/mylinux/etc/rc.d/init.d’

mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’

mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’

mkdir: created directory ‘/tmp/mylinux/lib’

mkdir: created directory ‘/tmp/mylinux/lib/modules’

mkdir: created directory ‘/tmp/mylinux/lib64’

mkdir: created directory ‘/tmp/mylinux/proc’

mkdir: created directory ‘/tmp/mylinux/sbin’

mkdir: created directory ‘/tmp/mylinux/sys’

mkdir: created directory ‘/tmp/mylinux/tmp’

mkdir: created directory ‘/tmp/mylinux/usr’

mkdir: created directory ‘/tmp/mylinux/usr/local’

mkdir: created directory ‘/tmp/mylinux/usr/local/bin’

mkdir: created directory ‘/tmp/mylinux/usr/local/sbin’

mkdir: created directory ‘/tmp/mylinux/var’

mkdir: created directory ‘/tmp/mylinux/var/lock’

mkdir: created directory ‘/tmp/mylinux/var/log’

mkdir: created directory ‘/tmp/mylinux/var/run’

 

[root@iZ23olnit2eZ tmp]# 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

~~~

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

### A.查看文件元数据命令 stat (大致信息可通过ls -l(或者ll)查询)

~~~

[root@iZ23olnit2eZ tmp]# stat a_c 

  File: `a_c'                                                               #文件名

  Size: 4096 #文件大小  Blocks: 8  #占用块个数  IO Block: 4096  #占用块大小  directory    #文件类型

Device: ca01h/51713d  #存储设备 Inode: 538986 #索引节点     Links: 2 #链接数

Access: (0755/drwxr-xr-x)  #权限  Uid: (    0/    root) #属主   Gid: (    0/    root) #属组

Access: 2016-07-17 18:26:43.827784089 +0800   #访问时间,读取文件时间,atime

Modify: 2016-07-17 18:26:43.827784089 +0800   #修改时间,内容(数据)改变,mtime

Change: 2016-07-17 18:26:43.827784089 +0800   #改变时间,元数据改变,ctime

~~~

### B.修改文件时间戳 touch

~~~

touch -a #修改atime

touch -m #修改mtime

修改atime或者mtime都会导致ctime的改变

~~~

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

### A.定义别名 alias 

~~~

[root@iZ23olnit2eZ tmp]# alias cls='clear'

[root@iZ23olnit2eZ tmp]# type cls

cls is aliased to `clear'

~~~

### B.引用另一命令执行结果 |(管道)

~~~

[root@iZ23olnit2eZ tmp]# b=2|echo $b-1

-1

~~~

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

~~~

find /var -name "1*[0-9]?*[[:lower:]]"

~~~

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

~~~

find /var -name "[0-9]?*[^0-9]"

~~~

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

~~~

find /var -name "[^[:alpha:]][[:alpha:]]*"

~~~

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

~~~

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

[root@iZ23olnit2eZ ~]# ls /tmp

tfile-2016-07-17-19-16-24

~~~

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

~~~

[root@iZ23olnit2eZ ~]# mkdir /tmp/mytest{1,2,3}

[root@iZ23olnit2eZ ~]# ls /tmp/mytest{1,2,3}

/tmp/mytest1:

/tmp/mytest2:

/tmp/mytest3:

[root@iZ23olnit2eZ ~]# cp -r `find /etc -name "p*[^0-9]"` /tmp/mytest1/

cp: cannot overwrite non-directory `/tmp/mytest1/profile' with directory `/etc/lvm/profile'

cp: overwrite `/tmp/mytest1/passwd'? y

cp: will not overwrite just-created `/tmp/mytest1/passwd' with `/etc/pam.d/passwd'

cp: overwrite `/tmp/mytest1/poweroff'? y

cp: will not overwrite just-created `/tmp/mytest1/poweroff' with `/etc/pam.d/poweroff'

cp: overwrite `/tmp/mytest1/prelink'? y

cp: will not overwrite just-created `/tmp/mytest1/prelink' with `/etc/cron.daily/prelink'

cp: overwrite `/tmp/mytest1/psacct'? y

cp: will not overwrite just-created `/tmp/mytest1/psacct' with `/etc/rc.d/init.d/psacct'

cp: cannot overwrite non-directory `/tmp/mytest1/postfix' with directory `/etc/postfix'

[root@iZ23olnit2eZ ~]# ls /tmp/mytest{1,2,3}

/tmp/mytest1:

pads.pp           pem                           policy.kern      preprobe

pam.d             permissivedomains.pp          policykit.pp     printcap

pam_env.conf      phar.ini                      popt.d           print_event.conf

pango             php.conf                      portmap.pp       private

pango.modules     php.d                         portreserve.pp   privoxy.pp

pangox.aliases    php.ini                       postfix          procmail.pp

passenger.pp      php.ini.zabbixbak             postfix.pp       profile

passwd            pinforc                       postgresql.pp    profile.d

passwd-           pingd.pp                      postgrey.pp      profiles

password          piranha.pp                    post_report.xml  protected.d

password-auth     pkcs11.txt                    power.conf       protocols

password-auth-ac  pkcsslotd.pp                  power.d          psacct

path              pki                           poweroff         psad.pp

pcmcia            pluginconf.d                  power.sh         ptchown.pp

pcp.pp            plugins                       ppp              publicfile.pp

pcscd.pp          plugins.d                     ppp.pp           pulseaudio.pp

pdo.ini           plymouth                      prefdm           puppet.pp

pdo_mysql.ini     plymouthd.conf                prefdm.conf      pw

pdo_odbc.ini      plymouthd.pp                  prefixes         python.conf

pdo_sqlite.ini    plymouth-shutdown.conf        prelink          python_event.conf

pear              pm                            prelink.cache    pyzor.pp

pear.conf         pm-utils-hd-apm-restore.conf  prelink.conf

peers             podsleuth.pp                  prelink.conf.d

pegasus.pp        policy                        prelude.pp

/tmp/mytest2:

/tmp/mytest3:

~~~

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

~~~

[root@iZ23olnit2eZ ~]# yes|cp -r /etc/*\.d /tmp/mytest2

[root@iZ23olnit2eZ ~]# ls /tmp/mytest2

bash_completion.d  init.d         monit.d         rc0.d  rc6.d        sudoers.d

chkconfig.d        ld.so.conf.d   pam.d           rc1.d  rc.d         xinetd.d

cron.d             logrotate.d    php.d           rc2.d  rsyslog.d    yum.repos.d

depmod.d           lsb-release.d  popt.d          rc3.d  rwtab.d

dracut.conf.d      makedev.d      prelink.conf.d  rc4.d  setuptool.d

event.d            modprobe.d     profile.d       rc5.d  statetab.d

~~~

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

~~~

[root@iZ23olnit2eZ ~]# yes|cp -r /etc/[l,m,n]*\.conf /tmp/mytest3

[root@iZ23olnit2eZ ~]# ls /tmp/mytest3

ld.so.conf     libuser.conf    mke2fs.conf  nscd.conf      ntp.conf

libaudit.conf  logrotate.conf  monit.conf   nsswitch.conf

~~~

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

赞 (0)
N21_郁蓝N21_郁蓝
上一篇 2016-07-17 21:50
下一篇 2016-07-17 21:50

相关推荐

  • linux上的LVM简明教程

    LVM是一个多才多艺的硬盘系统工具。在Linux上非常的好用,传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。 首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV…

    Linux干货 2017-05-02
  • 马哥教育20期面授2班第一周课程练习1

    计算机基础   1,计算机系统           硬件系统            主机部分:中央处理器CPU(运算器ALU、控制器CU);  &nb…

    Linux干货 2016-07-29
  • 文本处理工具-2

    1、 sed 是一种行/流编辑器,它一次处理一行内容;处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中该行内容,处理完成后,把缓冲区的该行内容送往屏幕,接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出,Sed 可以用来自动编辑一个或多个文件。 2…

    Linux干货 2016-08-15
  • 关于压测的宏观个人总结

    工作角色定位 首先先从宏观角度来评估下本次的压测工作. 从工作职责上说本次压测理应由组内其它同学来完成,个人从旁协助或指导即可。团队成员的成长对我个人来说才是更大的成长。所以即使这次压测工作完成的再出色,都会因为是由我来完成的,所以都不能称之为优秀的。对我个人的成长最多是项目经验的增长和问题的积累,但对组员来说如何让他们做到现有成果的80%是我需要帮助他们来…

    Linux干货 2015-04-21
  • 文本处理工具

    1.cat 主要三大功能: 1.一次显示整个文件:cat filename 2.从键盘创建一个文件:cat > filename << EOF ….>EOF (只能创建新文件,不能编辑已有文件);cat向已经存在的文件追加内容:cat >> file <<EOF…>EOF 3.将几…

    2017-07-29
  • iptables简单概念..

    iptables: 包过滤型的防火墙 Firewall:防火墙,隔离工具;工作于主机或网络边缘,对于进出本主机或本网络的报文根据事先定义的检查规则作匹配检测,对于能够被规则匹配到的报文作出相应处理的组件;    主机防火墙     网络防火墙   &…

    Linux干货 2017-06-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-17 22:03

    写的很好,排版还可以在改进一下,第9个有没有更简单的命令,加油