N22-妙手-第二周博客作业

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

    mkdir: 创建目录

        使用方法:mkdir [OPTION]… DIRECTORY…

        常用选项:

            -p:按需创建父目录

            -m:创建目录权限

            -v:输出详细创建目录过程

[root@localhost ~]# mkdir -m 700 -pv /users/myDir/u/i/o/p
mkdir: created directory ‘/users/myDir’
mkdir: created directory ‘/users/myDir/u’
mkdir: created directory ‘/users/myDir/u/i’
mkdir: created directory ‘/users/myDir/u/i/o’
mkdir: created directory ‘/users/myDir/u/i/o/p’
[root@localhost ~]# ll /users
drwxr-xr-x. 3 root      root      14 Aug 27 00:57 myDir

    rmdir: 删除目录

        使用方法:rmdir [OPTION]… DIRECTORY…

        常用选项:

            -p:删除某目录后,如果其父目录存在,则一并删除

            -v:显示详细删除过程

[root@localhost users]# rmdir -pv myDir/u/i/o/p
rmdir: removing directory, ‘myDir/u/i/o/p’
rmdir: removing directory, ‘myDir/u/i/o’
rmdir: removing directory, ‘myDir/u/i’
rmdir: removing directory, ‘myDir/u’
rmdir: removing directory, ‘myDir’

    head:查看文件的前n行,默认是10行

        使用方法:head [OPTION]… [FILE]…

            -n #:查看文件的前#行

            -#

[root@localhost users]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost users]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

    tail:查看文件的后n行,默认是10行

        -n #:查看文件的后#行

        -#

[root@localhost users]# tail -n 3 /etc/passwd
user4:x:4011:4011::/home/user4:/bin/chroot
chrooter:x:4012:4012::/home/chrooter:/bin/bash
expand:x:4013:4013::/users/testExpand:/bin/bash
[root@localhost users]# tail -3 /etc/passwd
user4:x:4011:4011::/home/user4:/bin/chroot
chrooter:x:4012:4012::/home/chrooter:/bin/bash
expand:x:4013:4013::/users/testExpand:/bin/bash

    cp: 拷贝文件

        使用方法:

             单源复制:cp [OPTION]… [-T] SOURCE DEST

                 如果目标不存在,则先创建与源文件同名的文件,并复制源文件的数据流至目标文件中

                 如果目标存在:

                     如果目标是非目录文件,则覆盖此文件

                     如果目标是目录文件,怎现在目标目录下创建与源文件同名的目标文件,并复制源文件数据流至目标文件中

                     注意:cp命令是默认不支持源文件为目录文件的

             多源复制:cp [OPTION]… SOURCE… DIRECTORY
                               cp [OPTION]… -t DIRECTORY SOURCE…

                    如果目标文件不存在,错误

                    如果目录文件存在:

                        如果目标文件不是目录,错误

                        如果目标文件是目录,则将源文件一一在目标目录中创建与源文件同名的文件,并将源文件数据流复制至目标文件中

          常用选项:

              -i:交互式复制,即复制之前提醒用户确认

              -f:强制覆盖目标文件

              -r, -R:递归复制目录

              -d:复制符号链接文件本身,而非其指向的源文件

              -a:-dR,用户实现归档

[root@localhost init.d]# cp -i functions network README /users/mydir
[root@localhost init.d]# ll /users/mydir
total 28
-rw-r--r--. 1 root root 13948 Aug 27 01:25 functions
-rwxr-xr-x. 1 root root  6630 Aug 27 01:25 network
-rw-r--r--. 1 root root  1160 Aug 27 01:25 README
[root@localhost init.d]# cp -f functions network README /users/mydir
cp: overwrite ‘/users/mydir/functions’? y
cp: overwrite ‘/users/mydir/network’? y
cp: overwrite ‘/users/mydir/README’? y

[root@localhost ~]# cp -r /etc/rc.d /users/mydir
[root@localhost ~]# ls /users/mydir
functions  network  rc.d  README

    mv: 移动文件

        使用方法:

            单源复制:mv [OPTION]… [-T] SOURCE DEST

            多源复制:mv [OPTION]… SOURCE… DIRECTORY
                               mv [OPTION]… -t DIRECTORY SOURCE…

            常用选项:

                -i:交互式移动文件,提醒用户确认

                -f:强制移动文件

[root@localhost ~]# mv -v /users/mydir/rc.d /users/mydir1
‘/users/mydir/rc.d’ -> ‘/users/mydir1/rc.d’

    rm: 删除文件。注意,不要直接删除文件,而是将文件移到模拟回收站中

        使用方法:rm [OPTION]… FILE…

            常用选项:

                -i:交互式

                -f:强制删除

                -r:递归删除

[root@localhost users]# rm -rf myDir
[root@localhost users]# ls 
adc  b  differentUsers  fedora  gentoo  gentoo2  m  me  n  testExpand  www  www3

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

    (1) Bash工作特性之命令执行状态返回值,其命令执行结果返回值会保存在bash特殊变量$?中:使用 ~]# echo $? 来查看命令执行返回值

        执行正确,返回值为0

[root@localhost ~]# mkdir /tmp/testBashCharacter
[root@localhost ~]# echo $?
0

         执行错误,返回非0值

[root@localhost ~]# mmkdir /tmp/testWrongCode
bash: mmkdir: command not found...
Similar command is: 'mkdir'
[root@localhost ~]# echo $?
127

    (2) Bash命令行展开

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

        {}:可承载一个以逗号为分隔符的路径列表,并能将其展开为多个并行的路径

        ~展开为用户家目录示例

[root@localhost ~]# cd /etc/cups
[root@localhost cups]# cd ~
[root@localhost ~]# pwd
/root
[Meng@localhost ~]$ cd /etc/cups
[Meng@localhost cups]$ cd ~
[Meng@localhost ~]$ pwd
/home/Meng

        {}展开为多个并行路径示例

[root@localhost ~]# mkdir -pv /users/{b,n,m}
mkdir: created directory ‘/users/b’
mkdir: created directory ‘/users/n’
mkdir: created directory ‘/users/m’

3、请使用命令展开来完成以下练习

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

[root@localhost ~]# mkdir /tmp/{a,b}_{c,d}
[root@localhost ~]# ll /tmp
total 696
drwxr-xr-x.  2 root root          6 Aug 25 03:21 a_c
drwxr-xr-x.  2 root root          6 Aug 25 03:21 a_d
drwxr-xr-x.  2 root root          6 Aug 25 03:21 b_c
drwxr-xr-x.  2 root root          6 Aug 25 03:21 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 ~]# 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}}

blob.png

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

        (1) 文件的数据元素有:

            元数据:metadata,用来描述属性

            数据: data,代表文件的真实数据

            timestamp:

                Access: 2016-08-12 12:29:57.121317321 +0800
                Modify: 2016-08-12 12:29:07.674320672 +0800:数据改变
                Change: 2016-08-12 12:29:07.674320672 +0800:元数据改变

        (2) 使用命令stat可以查看文件的数据信息

[root@localhost ~]# stat /etc/rc.d
  File: ‘/etc/rc.d’
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 70860       Links: 10
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2016-08-27 01:23:06.333072492 +0800
Modify: 2015-11-20 14:21:47.000000000 +0800
Change: 2016-08-07 16:24:31.494986420 +0800

        (3) 使用命令touch可以修改文件的时间戳信息,一般用来改变access time和modify time

            touch:修改文件access time 和 modify time

                使用方法:touch [OPTION]… FILE…
                常用选项:

                    -c:指定的文件路径不存在时不予创建

                    -a:仅修改access time

                    -m:仅修改modify time

                    -t:指定时间[[CC]YY]MMDDhhmm[.ss]

[root@localhost ~]# touch -a -m 1208081230.23 /users/functions
[root@localhost ~]# stat /users/functions
  File: ‘/users/functions’
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 207475418   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2016-08-27 01:59:40.148104233 +0800
Modify: 2016-08-27 01:59:40.148104233 +0800
Change: 2016-08-27 01:59:40.148104233 +0800

        

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

    (1) alias命令可以定义一个命令的别名,其使用方法是 alias NAME=COMMAND。需要注意的是,命令别名只对当前shell进程有效

    如下例所示:

[root@localhost ~]# alias
alias cls='clear'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]# alias lsa='ls -al'
[root@localhost ~]# lsa /home
total 20
drwxr-xr-x. 10 root      root      4096 Aug 23 12:55 .
dr-xr-xr-x. 18 root      root      4096 Aug 22 14:23 ..
drwx------.  5 archlinux archlinux 4096 Aug 22 15:01 archlinux
drwx------.  5 centos    centos    4096 Aug 19 01:51 centos
drwx------.  3      4000      4000   74 Aug 22 13:59 gentoo
drwx------.  3 gentoo1   gentoo1     74 Aug 22 14:04 gentoo1
drwx------. 15 Meng      Meng      4096 Aug 23 10:09 Meng
drwx------.  3 user1     user1       74 Aug 23 12:05 user1
drwx------.  3 user2     user2       74 Aug 23 12:49 user2
drwx------.  3 user3     user3       74 Aug 23 12:55 user3

    撤销命令别名:unalias NAME

[root@localhost ~]# unalias lsa
[root@localhost ~]# lsa /home
bash: lsa: command not found...

   

    (2) 如何在命令中引用另一个命令的执行结果

        引用命令的执行结果:$(COMMAND) 或 `COMMAND`

[root@localhost ~]# echo $(pwd)
/root
[root@localhost ~]# echo $`pwd`
$/root

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

[root@localhost ~]# ls -d /var/l*[0-9]*[[:lower:]]
/var/l34dD4c

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

[root@localhost log_test]# ls /etc/[0-9]*[^0-9]
/etc/8sfsdf

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

[root@localhost log_test]# ls /etc/[^[:alpha:]][[:alpha:]]*
/etc/8sfsdf

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

[root@localhost ~]# mkdir /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
tfile-2016-08-27-00-51-08

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

[root@localhost ~]# mkdir /tmp/{mytest1,mytest2,mytest3}
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
[root@localhost ~]# ls /tmp/mytest1
pam.d  passwd  passwd-  pbm2ppa.conf  pcp  pcp.conf 
pcp.env  pcp.sh  pinforc  pki  plymouth  pm  pnm2ppa.conf  
popt.d  postfix  ppp  prelink.conf.d  printcap  profile  
profile.d  protocols  pulse  purple  python

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

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

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

[root@localhost ~]# cp -r /etc/[lmn]*.conf /tmp/mytest3
[root@localhost ~]# ls /tmp/mytest3
ld.so.conf  libaudit.conf  libuser.conf  locale.conf  logrotate.conf  man_db.conf  mke2fs.conf  mtools.conf  nfsmount.conf  nsswitch.conf  ntp.conf  numad.conf

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

(0)
mxb93mxb93
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • sed

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

    Linux干货 2016-03-22
  • Unix与linux的发展历程以及linux的发行版

    Unix的发展与诞生是有源头的,早期的时候,为了生产处多任务操作系统,Bell,MIT,GE这三个单位合作要制作一款多任务操作系统,也就是multitasks,这款操作系统后来是研制成功了,但是往后的目标越来越大也越来越模糊,最终这三家单位也就相继退出了这个项目。 bell实验室的Ken Thompson因为之前在multitasks运行过一款游戏,spac…

    Linux干货 2016-10-30
  • yum详解及源码包的编译安装

    yum的功能:     在我们使用rpm包安装程序时,各个程序包之间可能存在非常严重的依赖关系,这就导致我们在安装一个包的同时还需要安装其他存在依赖关系的包,因此我们可以使用rpm包的前端管理工具yum,可通过yum所支持的文件共享机制来解决各个rpm包之间的依赖关系。 yum仓库的配置文件:   …

    Linux干货 2016-08-25
  • M20-1扩展正则表达式作业

    1、取本机ip地址 [root@centos6 ~]# ifconfig eth1      Link encap:Ethernet  HWaddr 00:0C:29:35:DD:AB     &nb…

    Linux干货 2016-08-10
  • yum安装 源码安装实例

     yum安装 源码安装实例 §·源码安装 http 2.2.29实例 1     1.下载源码包。 1     2.配置系统需要的编译环境。 2     3 ./configure ; make  ;…

    Linux干货 2016-08-24
  • class8 文本处理工具sed和vim编辑器

    一、处理文本的工具sed     Stream EDitor,  行编辑器     sed是linux上一款比较重要的流编辑器。     特点:一次处理一行内容,处理完成后,把缓冲区的内容送往屏幕。这样不断重复,直到文件末尾。 &…

    Linux干货 2016-08-11

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-30 12:51

    除相关作业外,等学习完bash相关课程后,可以试着总结一下bash的特性,加油