马哥教育网络班21期+第二周博客作业

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

Linux下常见的文件管理命令有:touch、cp、mv、rm、cat等

touch

描述:创建一个空文件,或者更新时间的时间戳

[root@zabbix wanwan]# touch wanwan02
[root@zabbix wanwan]# ls -l wanwan02
-rw-r--r-- 1 root root 0 Jul 13 11:24 wanwan02
[root@zabbix wanwan]# du -sh wanwan02
0wanwan02
说明:新创建的文件wanwan02为空文件
查看文件时间戳:
[root@zabbix wanwan]# stat wanwan02
  File: ‘wanwan02’
  Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: 25h/37dInode: 627081291   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-13 11:24:45.095028777 +0800
Modify: 2016-07-13 11:24:45.095028777 +0800
Change: 2016-07-13 11:24:45.095028777 +0800
 Birth: -
使用touch命令修改wanwan02的时间戳:
[root@zabbix wanwan]# touch wanwan02
[root@zabbix wanwan]# stat wanwan02
  File: ‘wanwan02’
  Size: 0         Blocks: 0          IO Block: 4096   regular empty file
Device: 25h/37dInode: 627081291   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-13 11:25:27.058025219 +0800
Modify: 2016-07-13 11:25:27.058025219 +0800
Change: 2016-07-13 11:25:27.058025219 +0800
 Birth: -
对比之前的时间戳,可以发现已经变化了

cp

描述:复制文件与目录

选项:-r 递归,复制子文件与子目录,一般复制目录时使用

[root@zabbix wanwan]# ls
[root@zabbix wanwan]# cp /etc/passwd .
[root@zabbix wanwan]# ls
passwd
[root@zabbix log]# cp -r /var/log/samba/ /tmp/
[root@zabbix log]# ls -ld /tmp/
drwxrwxrwt 19 root root 500 Jul 13 13:14 /tmp/
[root@zabbix log]# ls -l /tmp/
total 12
drwxr-xr-x 14 root root  280 Jul  5 13:27 mylinux
-rw-r--r--  1 root root 7315 Jul 12 23:30 mysql_bak.log
drwxr-xr-x 14 root root  400 Jul 13 10:54 mytest1
drwxr-xr-x 33 root root  820 Jul 13 10:56 mytest2
drwxr-xr-x  2 root root  140 Jul 13 10:58 mytest3
-rw-r--r--  1 root root 2629 Jul  5 16:28 passwd
drwxr-xr-x  2 root root   40 Jun 27 17:26 python-build.20160627172622.20789
drwx------  4 root root 2380 Jul 13 13:14 samba
drwx------  2 root root   60 Mar 17 12:52 ssh-0CeK7US8msI8
drwx------  2 root root   60 May  3 17:15 ssh-cKDJ7FFBpQ4g
drwx------  2 root root   60 May  3 17:17 ssh-DY1nyXYKnMRR
drwx------  2 root root   60 May  5 09:11 ssh-Rte4UArLkDfW
drwx------  3 root root   60 May 27 09:23 systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt
drwx------  3 root root   60 May  3 14:30 systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD
drwx------  3 root root   60 May 27 09:05 systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24
-rw-r--r--  1 root root    0 Jul 13 10:41 tfile-2016-07-13-10-41-40
-rw-r--r--  1 root root    0 Jul 13 10:41 tfile-2016-07-13-10-41-49
drwxr-xr-x  2 root root 2020 Jul  5 16:55 var
drwxr-xr-x  2 root root   60 Jul 13 13:13 wanwan
drwxr-xr-x  3 root root   60 Jun 27 13:35 zhang3

rm

描述:删除文件或目录

选项:-f 不提示,强制删除

      -i 删除前,提示是否删除

      -r 删除目录以及目录下的所有文件

[root@zabbix tmp]# cd wanwan/
[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# rm passwd 
rm: remove regular file ‘passwd’? yes
[root@zabbix wanwan]# ls
[root@zabbix tmp]# cd wanwan/
[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# rm passwd 
rm: remove regular file ‘passwd’? yes
[root@zabbix wanwan]# ls
[root@zabbix wanwan]# cp /etc/sysconfig/network .
[root@zabbix wanwan]# ls
network
[root@zabbix wanwan]# rm -rf network #删除文件前,没有任何提示
[root@zabbix wanwan]# ls

mv

描述:移动(重命名)文件或目录

[root@zabbix wanwan]# ls
passwd
[root@zabbix wanwan]# mv passwd passwd.org  #将passwd改名为passwd.org
[root@zabbix wanwan]# ls
passwd.org
[root@zabbix tmp]# mv tfile-2016-07-13-10-41-40 /wanwan/  #将/tmp目录下的tfile-2016-07-13-10-41-40剪切到/wanwan目录下
[root@zabbix tmp]# ls -l /wanwan/
total 410044
-rw-r--r-- 1 root root       254 Jun 22 14:21 adduser.sh
-rw-r--r-- 1 root root       167 Jul 12 14:28 checkup.sh
-rw-rw-r-- 1 root root         0 Jun 22 13:19 li4
-rw-r--r-- 1 root root    204101 Jun 27 10:43 li4.zip
-rw-r--r-- 1 root root       157 Jun 22 15:57 ping.sh
-rw-r--r-- 1 root root 209715200 Jun 27 10:42 test.iso
-rw-r--r-- 1 root root         0 Jul 13 10:41 tfile-2016-07-13-10-41-40
-rw-r--r-- 1 root root 209940480 Jun 27 10:48 wanwan.tar.gz
drwxr-xr-x 3 root root        29 Jun 27 10:45 zhang3
-rw-r--r-- 1 root root     10240 Jun 27 13:34 zhang3.tar

cat

描述:查看文件内容

选项:-b 显示行号,空白行不显示行号

      -n 显示行号,包括空白行

[root@zabbix wanwan]# cat -n passwd|head -10
     1root:x:0:0:root:/root:/bin/bash
     2bin:x:1:1:bin:/bin:/sbin/nologin
     3daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4
     5
     6
     7adm:x:3:4:adm:/var/adm:/sbin/nologin
     8
     9lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    10
[root@zabbix wanwan]# cat -b passwd|head -10
     1root:x:0:0:root:/root:/bin/bash
     2bin:x:1:1:bin:/bin:/sbin/nologin
     3daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4adm:x:3:4:adm:/var/adm:/sbin/nologin
     5lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

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

a、键入的命令到底有没有执行成功呢?我们输入 echo $? 来查看该命令执行状态的返回值。返回值为 0,表示成功执行。

b、echo $?如果返回值为0,则表示上一条命令执行成功

c、如果返回值是1-255的任何值,表明上一条命令执行失败

[root@zabbix ~]# pwd
/root
[root@zabbix ~]# echo $?
0
说明:pwd这条命令是执行成功的
[root@zabbix ~]# pwdd
-bash: pwdd: command not found
[root@zabbix ~]# echo $?
127
说明:由于根本不存在pwdd命令,返回值非0,说明失败

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

# mkdir -p /tmp/{a,b}_{c,d}
# mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/networkscripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}

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

元数据信息:用来描述一个文件的特征的系统数据,包括文件大小,inode数,连接数,访问权限,UID、GID以及三个时间戳,通常情况下,我们可以用stat命令来进行查看。

文件有三个时间戳,分别是:

     access time:访问时间,atime,读取文件内容

     modify time: 修改时间, mtime,改变文件内容(数据)

     change time: 改变时间, ctime,元数据发生改变

[root@localhost ~]# stat /etc/passwd
  File: '/etc/passwd'
  Size: 2062      Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050dInode: 136839480   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2016-07-11 21:26:19.946999372 +0800
Modify: 2015-09-08 01:02:10.002179228 +0800
Change: 2015-09-08 01:02:10.002179228 +0800
 Birth: -
touch:
  -a只更改访问时间
  -c, --no-create不创建任何文件
  -m只更改修改时间
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大小:2062      块:8          IO 块:4096   普通文件
设备:802h/2050dInode:7104        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-07-12 15:53:50.400028573 +0800
最近更改:2016-07-12 15:53:50.400028573 +0800
最近改动:2016-07-12 15:53:50.400028573 +0800
创建时间:-
[root@localhost tmp]# touch -a passwd 
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大小:2062      块:8          IO 块:4096   普通文件
设备:802h/2050dInode:7104        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-07-12 15:54:20.547714007 +0800
最近更改:2016-07-12 15:53:50.400028573 +0800
最近改动:2016-07-12 15:54:16.468621271 +0800
创建时间:-
[root@localhost tmp]# touch -m passwd 
[root@localhost tmp]# file passwd 
passwd: ASCII text
[root@localhost tmp]# stat passwd 
  文件:"passwd"
  大小:2062      块:8          IO 块:4096   普通文件
设备:802h/2050dInode:7104        硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:user_tmp_t:s0
最近访问:2016-07-12 15:54:49.465370687 +0800
最近更改:2016-07-12 15:54:47.218319686 +0800
最近改动:2016-07-12 15:54:47.218319686 +0800

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

a、临时生效:

[root@localhost ~]# alias cls='clear'
[root@localhost ~]# alias cls
alias cls='clear'
[root@localhost ~]# cls
[root@localhost ~]# echo $?

b、永久生效:

说明:永久生效, 写入/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile 四文件之一
[root@localhost ~]# echo "alias cls='clear'">>/etc/profile
[root@localhost ~]# echo $?
0
[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $?
0
命令中引用另一个命令的执行结果:
[root@localhost ~]# echo "My directory is `pwd`"
My directory is /root
[root@localhost ~]# echo "My directory is $(pwd)"
My directory is /root

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

[root@localhost var]# ls -l 1*[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:08 15wk
-rw-r--r--. 1 root root 0 7月  12 16:08 188k

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

# ls -l /etc/[0-9]*[^0-9]
案例:
[root@localhost tmp]# cd /etc/
[root@localhost etc]# touch 9wanw
[root@localhost etc]# ls -l /etc/[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:05 /etc/9wanw
[root@localhost etc]# touch 8wan8
[root@localhost etc]# ls -l /etc/[0-9]*[^0-9]
-rw-r--r--. 1 root root 0 7月  12 16:05 /etc/9wanw

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

# ls /etc/[^a-zA-Z][a-zA-Z]*
[root@zabbix etc]# touch 1a11 2a3z
[root@zabbix etc]# ls -l /etc/[^a-zA-Z][a-zA-Z]*
-rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/1a11
-rw-r--r-- 1 root root 0 Jul 13 10:35 /etc/2a3z

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

方法1:
[root@zabbix tmp]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
方法2:
[root@zabbix tmp]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
[root@zabbix tmp]# ls
mylinux                         systemd-private-a293e18c9e6f4755986a533a2b4227a0-httpd.service-lf1vFt
mysql_bak.log                     systemd-private-a293e18c9e6f4755986a533a2b4227a0-mariadb.service-3Xn9YD
passwd                          systemd-private-a293e18c9e6f4755986a533a2b4227a0-munin-node.service-ys9n24
python-build.20160627172622.20789          tfile-2016-07-13-10-41-40
ssh-0CeK7US8msI8                   tfile-2016-07-13-10-41-49
ssh-cKDJ7FFBpQ4g                   var
ssh-DY1nyXYKnMRR                   zhang3
ssh-Rte4UArLkDfW
说明:可以看到tfile开头的文件,就是我新创建的

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

# cp -rf /etc/p*[^0-9] /tmp/mytest1/

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

[root@zabbix ~]# mkdir -p /tmp/mytest2
[root@zabbix ~]# cp -rf /etc/*.d /tmp/mytest2/
[root@zabbix ~]# ls /tmp/mytest2/
bash_completion.d  exports.d     modules-load.d  rc0.d  rc.d           sysctl.d
binfmt.d           gdbinit.d     my.cnf.d        rc1.d  request-key.d  tmpfiles.d
chkconfig.d        grub.d        pam.d           rc2.d  rsyslog.d      xinetd.d
cron.d             init.d        php.d           rc3.d  rwtab.d        yum.repos.d
depmod.d           ld.so.conf.d  popt.d          rc4.d  statetab.d
dnsmasq.d          logrotate.d   prelink.conf.d  rc5.d  sudoers.d
dracut.conf.d      modprobe.d    profile.d       rc6.d  supervisord.d

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

[root@zabbix ~]# cp -rf /etc/[l,m,n]*.conf /tmp/mytest3/
[root@zabbix ~]# ls /tmp/mytest3/
man_db.conf  mke2fs.conf  mongod.conf  nfsmount.conf  nsswitch.conf



原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/24130

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-07-16
下一篇 2016-07-16

相关推荐

  • sed

    Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前 处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后 ,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环 。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空 模式空间,但不会清空保留…

    Linux干货 2017-12-03
  • heartbeat实现高可用集群(2)

    [[ heartbeat v2 + crm ]] 环境 node1 192.168.1.35 node2 192.168.1.36 fip 192.168.1.81 daemon httpd ha web service ip httpd node1&2 # vim ha.cf crm on # cd # rpm -ivh heartbeat-gui…

    Linux干货 2017-11-03
  • DNS

    配置缓存服务器: #vim /etc/named.conf Options { Listen-on port 53 { 127.0.0.1;172.16.0.68;}; //listen-on-v6 port 53 {::1;}; ……. Allow-query {any;}; …… Dnssec-enable…

    2017-06-04
  • OpenSSL:实现创建私有CA、签署证书请求详解

    一、OpenSSL:CA默认配置信息     1.证书签发机构CA:公共信任CA、私有CA                建立私有CA方式如下: 小范围测试使用openssl、 大…

    Linux干货 2016-04-30
  • linux 系统启动流程

    假设以个人架设的linux主机为例:当你按下电源键之后,计算机硬件会主动读取BIOS来加载硬件信息及进行硬件系统的自我测试,之后系统会主动读取系统第一个可启动的设备,此时就可以读入引导装载程序了。 引导程序可以指定使用哪个内核文件来启动,并实际加载内核到内存中解压缩与执行,此时内核就能够开始在内存内活动,并检测所有硬件信息,与加载适当的驱动程序来使这部主机开…

    Linux干货 2016-09-12
  • iptables实现地址转换

    NAT:(工作在网络和传输层) 过载技术 Basic NAT:静态NAT     一个内部主机,分配一个外网地址 NAPT:动态NAT,网络地址端口转换;net会话表     源地址转换:SNAT 用于内网主机访问互联网    &…

    Linux干货 2016-10-31

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-17 20:33

    写的很好,排版也很漂亮,加油