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)
上一篇 2016-08-29 09:00
下一篇 2016-08-29 09:01

相关推荐

  • shell脚本编写-3

    1、for循环 for 变量名 in  列表;do 循环体 done 执行机制:依次将列表中元素赋值给“变量名”;每次赋值后即执一次循环体;直到列表中元素耗尽循环结束 列表生成方式: (1) 直接给出列表 (2) 整数列表: (a){start..end} (b) $(seq [start [step]] end)  (3) 返回列表的命…

    Linux干货 2016-08-18
  • 优云APM最佳实践: 诊断平安城市视频网性能问题

    前言: 平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战。如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,优云APM在发现问题,定位故障等方面,起了很大作用,帮助我们顺利的定位到了系统的故障所在。 平安城市是一个特大型、综合性非常强的管理系统,不仅需要满足治安管理、城市管理、交通…

    Linux干货 2016-08-05
  • RPM简述

    RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。 RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Win…

    Linux干货 2017-08-12
  • 作业练习题汇总

    需要用到的命令补充  文件通配符                                            …

    2017-07-22
  • 软件包管理

    软件包管理 软件运行和编译 ABI:应用程序二进制接口;直接给编译好的二进制使用; windows与linux不兼容, windows: ELF linux: PE 库级别的虚拟化: linux:WINE windows:Cywin API:定义了和库之间的接口;编写应用程序时调用的函数之类的; 编译程序源代码(.c) –> 预编译(.i)…

    Linux干货 2017-04-21
  • Linux命令学习

    阅读目录 Linux cat命令 file命令 dd命令 hexdump命令 cat命令   cat三大功能:      1.一次显示整个文件:cat filename      2.从键盘创建一个文件:cat > filename 注意只能创建新文件,…

    Linux干货 2017-07-16

评论列表(1条)

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

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