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

相关推荐

  • 编译安装httpd-2.2.27.tat.gz及配置常见参数

    一、编译安装的整体步骤  1、在官网下载源码,并解压 2、切换到其目录中  3、执行./configure 4、编译   二、编译中及安装后配置常见的参数及其说明 编译中配置 1)指定安装路径 –prefix=/usr/local/Pacakage_name  指定安装路径 –sysc…

    Linux干货 2016-08-24
  • bash脚本与程序包管理

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

    Linux干货 2016-08-24
  • iptables练习

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; 系统默认策略设定: ~]# iptables -P INPUT DROP ~]# iptables -P OUPUT DROP 网络说明…

    Linux干货 2016-12-27
  • 序列化和反序列化

    序列化和反序列化之基本笔记

    2017-10-29
  • N25第三周作业

    .列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登陆多次,则只显示一次即可。 此题主要考察命令who,cut,sort以及管道的基本用法:who:列出当前已登陆的用户名,登陆设备名,时间以及ip地址。 cut:    顾名思义就是截取之意, -d 指定要截取信息的分隔符,此处是以空格为分隔符,-f指定要截取的字段,此…

    Linux干货 2016-12-20
  • FHS文件系统各目录及Linux文件类型和颜色标识整理

    一.FHS (Filesystem Hierarchy Standard文件系统层级标准)   使用文件系统层级标准可以使软件和用户可以预测已安装文件和文件夹位置 文件系统各目录:   /boot     系统引导启动时要加载的静态文件,内核和ramdisk及grub等    (系统启动时…

    Linux干货 2016-10-17

评论列表(1条)

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

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