N26 第二周

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

 [1]mkdir : make directories

           mkdir [OPTION]… DIRECTORY…

     example:

[root@localhost test]# ls

[root@localhost test]# mkdir a

[root@localhost test]# ls

a

        -p:自动按需创建父目录(-p, –parentsno error if existing, make parent       directories as needed

[root@localhost test]# mkdir -p a/b

         -v, –verbose  显示创建过程

[root@localhost test]# mkdir   -pv  a/b/c

mkdir: 已创建目录 "a/b"

mkdir: 已创建目录 "a/b/c"

         -m, –mode=M   set file mode (as in chmod), not a=rwx – umask

[root@localhost test]# mkdir  b

[root@localhost test]# mkdir -m 666 c

[root@localhost test]# ll

总用量 0

drwxr-xr-x. 4 root root 22 2月   5 13:35 a

drwxr-xr-x. 2 root root  6 2月   5 13:38 b

drw-rw-rw-. 2 root root  6 2月   5 13:38 c

 [2]rmdir : remove empty directories

rmdir [OPTION]… DIRECTORY…

example:

[root@localhost test]# tree

.

├── a

   ├── b

      └── c

   └── d

└── c

5 directories, 0 files

[root@localhost test]# rmdir c

[root@localhost test]# ls

a

      -p:删除目录后,如果其父目录为空,则一并删除之

  -v:显示过程

            [root@localhost test]# tree a

        a

        └── b

   1 directory, 0 files

   [root@localhost test]# rmdir -pv a/b

   rmdir: 正在删除目录 "a/b"

   rmdir: 正在删除目录 "a"

 

 [3]tree命令

tree – list contents of directories in a tree-like format

        tree [options] [directory]

       -L level:指定要显示的层级

   example:

[root@localhost test]# tree

.

└── a

    └── b

        └── c

3 directories, 0 files

[root@localhost test]# tree -L 2

.

└── a

    └── b

2 directories, 0 files

 [4]cat命令和tac命令

 cat [OPTION]… [FILE]…   #concatenate  files and print on the standard output

    -n : 显示输出行数

   [root@localhost test]# cat -n b

     1 a

     2 a

     3 a

[root@localhost test]# tac –help b

用法:tac [选项]… [文件]…

Write each FILE to standard output, last line first.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.

  -b, –before   在行前而非行尾添加分隔标志

  -r, –regex   将分隔标志视作正则表达式来解析

  -s, –separator=字符串 使用指定字符串代替换行作为分隔标志

 [5]more命令和less命令

 more命令:

more FILE

特点:翻屏至文件尾部后自动退出

     less命令和more命令相反

 [6]head命令

查看文件的前n

   head [options] FILE

 -n #=-#

[root@localhost test]# head b

a

b

c

[root@localhost test]# head -n 2 b

a

b

[root@localhost test]# head -2 b

a

b

 [7]tail命令:

查看文件的后n

      tail  [options] FILE

      -n #=-#

            [root@localhost test]# tail b

    a

    b

    c

    [root@localhost test]# tail -n 2 b

    b

    c

    [root@localhost test]# tail -2 b

    b

    c

-f:查看文件尾部内容结束后不退出,跟随显示新增的行

    图片1.png

 [8]stat命令

stat -display file or file system status

   stat FILE…

     -f:–file-system   display file system status instead of file status

   example:

[root@localhost test]# stat a

  文件:"a"

  大小:14         块:0          IO 块:4096   目录

设备:fd03h/64771d Inode8404856     硬链接:3

权限:(0755/drwxr-xr-x)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2017-02-05 14:21:28.944173969 +0800

最近更改:2017-02-05 14:21:28.944173969 +0800

最近改动:2017-02-05 14:21:28.944173969 +0800

创建时间:

[root@localhost test]# stat -f a

  文件:"a"

    IDfd0300000000 文件名长度:255     类型:xfs

块大小:4096       基本块大小:4096

    块:总计:1277440    空闲:1244764    可用:1244764

Inodes: 总计:5120000    空闲:5115491

 [9]touch 命令

   touch – change file timestamps

    touch [OPTION]… FILE

     example

          -c –no create  不创建文件

[root@localhost test]# touch -c c

[root@localhost test]# ls

a  b

          -t  改成指定的时间  synopsis:YYMMDDHHMM.SS

  -a  change only the access time

[root@localhost test]# stat a

  文件:"a"

  大小:0          块:0          IO 块:4096   普通空文件

设备:fd03h/64771d Inode11830       硬链接:1

权限:(0644/-rw-r–r–)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2017-02-05 19:20:33.997396041 +0800

最近更改:2017-02-05 19:20:33.997396041 +0800

最近改动:2017-02-05 19:20:33.997396041 +0800

创建时间:

[root@localhost test]# touch -a -t 1612261759.56 a

[root@localhost test]# stat a

  文件:"a"

  大小:0          块:0          IO 块:4096   普通空文件

设备:fd03h/64771d Inode11830       硬链接:1

权限:(0644/-rw-r–r–)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2016-12-26 17:59:56.000000000 +0800

最近更改:2017-02-05 19:20:33.997396041 +0800

最近改动:2017-02-05 19:20:48.373396219 +0800

创建时间:

    -m   change only the modification time

          -r  –references   use this file's times instead of current time

[root@localhost test]# stat a

  文件:"a"

  大小:14         块:0          IO 块:4096   目录

设备:fd03h/64771d Inode8404856     硬链接:3

权限:(0755/drwxr-xr-x)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2016-01-12 17:58:36.000000000 +0800

最近更改:2017-02-05 14:21:28.944173969 +0800

最近改动:2017-02-05 15:22:34.117219326 +0800

创建时间:

[root@localhost test]# touch -r a c

[root@localhost test]# stat c

  文件:"c"

  大小:0          块:0          IO 块:4096   普通空文件

设备:fd03h/64771d Inode11830       硬链接:1

权限:(0644/-rw-r–r–)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2016-01-12 17:58:36.000000000 +0800

最近更改:2017-02-05 14:21:28.944173969 +0800

最近改动:2017-02-05 15:36:29.399229662 +0800

创建时间:

 [10]cp命令:copy

源文件:目标文件

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

如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST

[root@localhost test]# ls

[root@localhost test]# touch 1

[root@localhost test]# mkdir a

[root@localhost test]# cp 1 a/2

[root@localhost test]# ls a

2

如果DEST存在:

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

[root@localhost test]# cat  1

111

[root@localhost test]# cat a/1

[root@localhost test]# cp 1 a/

cp:是否覆盖"a/1"y

[root@localhost test]# cat a/1

111

  如果DEST是目录文件,则先在DEST目录下创建一个与源文件同名的文件,并      

          复制数据流

[root@localhost test]# ls

1  a

[root@localhost test]# ls a

2

[root@localhost test]# cp 1 a/

[root@localhost test]# ls a

1  2

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

  cp [OPTION]… -t DIRECTORY SOURCE…

如果DEST不存在,错误

[root@localhost test]# ls

1  2

[root@localhost test]# cp {1,2} a

cp: 目标"a" 不是目录

如果DEST存在:

  如果DEST是非目录文件,错误

[root@localhost test]# ll

总用量 0

-rw-r–r–. 1 root root 0 2月   5 16:46 1

-rw-r–r–. 1 root root 0 2月   5 16:46 2

-rw-r–r–. 1 root root 0 2月   5 16:48 3

[root@localhost test]# cp {1,2} 3

cp: 目标"3" 不是目录

  如果DEST是目录文件,分别复制每个文件至目标目录中,并保持原名

[root@localhost test]# ll

总用量 0

-rw-r–r–. 1 root root 0 2月   5 16:46 1

-rw-r–r–. 1 root root 0 2月   5 16:46 2

-rw-r–r–. 1 root root 0 2月   5 16:48 3

drwxr-xr-x. 2 root root 6 2月   5 16:49 a

[root@localhost test]# cp {1,2,3} a

[root@localhost test]# ls a

1  2  3

  常用选项:

-i-interactive交互式复制,既覆盖之前提醒用户确认

[root@localhost test]# ls

1  2  3  a

[root@localhost test]# ls a

1  2  3

[root@localhost test]# cp -i 1 a/

cp:是否覆盖"a/1"y

-f–force强制覆盖目标文件

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

[root@localhost test]# ls

1  2  3  a

[root@localhost test]# mkdir b

[root@localhost test]# cp a b

cp: 略过目录"a"

[root@localhost test]# cp -r  a b

[root@localhost test]# ls b

a

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

[root@localhost test]# touch 1

[root@localhost test]# ln -s 1 2

[root@localhost test]# cp -d 2 3

[root@localhost test]# ll

总用量 0

-rw-r–r–. 1 root root 0 2月   5 17:16 1

lrwxrwxrwx. 1 root root 1 2月   5 17:16 2 -> 1

lrwxrwxrwx. 1 root root 1 2月   5 17:16 3 -> 1

-a-dR –preserve=allarchive,用于实现归档

[root@localhost test]# cp -a 3 4

[root@localhost test]# ll

总用量 0

-rw-r–r–. 1 root root 0 2月   5 17:16 1

lrwxrwxrwx. 1 root root 1 2月   5 17:16 2 -> 1

lrwxrwxrwx. 1 root root 1 2月   5 17:16 3 -> 1

lrwxrwxrwx. 1 root root 1 2月   5 17:16 4 -> 1

[root@localhost test]#

  -preserv=

mode:权限

[root@localhost test]# ll

总用量 0

-rw-rw-rw-. 1 root root 0 2月   5 17:16 1

[root@localhost test]# cp 1 5

[root@localhost test]# cp –preserve=mode 1 6

[root@localhost test]# ll

总用量 0

-rw-rw-rw-. 1 root root 0 2月   5 17:16 1

-rw-r–r–. 1 root root 0 2月   5 17:25 5

-rw-rw-rw-. 1 root root 0 2月   5 17:26 6

ownership:属主和属组

[root@localhost test]# ll

总用量 0

-rw-rw-r–. 1 l_cong l_cong 0 2月   5 17:29 1

[root@localhost test]# cp  1 2

[root@localhost test]# cp –preserve=ownership 1 3

[root@localhost test]# ll

总用量 0

-rw-rw-r–. 1 l_cong l_cong 0 2月   5 17:29 1

-rw-r–r–. 1 root   root   0 2月   5 17:30 2

-rw-rw-r–. 1 l_cong l_cong 0 2月   5 17:30 3

timestamp:时间戳

[root@localhost test]# cp –preserve=timestamp 1 3

[root@localhost test]# ll

总用量 0

-rw-rw-r–. 1 l_cong l_cong 0 2月   5 17:29 1

-rw-r–r–. 1 root   root   0 2月   5 17:31 2

-rw-r–r–. 1 root   root   0 2月   5 17:29 3

context:安全标签

xattr:扩展属性

links:符号链接

all:上述所有属性

 [12]mv命令:move

mv [OPTION]…[-T] SOURCE DEST

mv [OPTION]… SOURCE…DIRECTORY

mv [OPTION]… DIRECTORY SOURCE…

常用选项:

-i:交互式

-fforce

example

[root@localhost test]# cat 1

qqqqqq

[root@localhost test]# cat 6

[root@localhost test]# mv -f 1 6

[root@localhost test]# ls

3  6

[root@localhost test]# cat 6

qqqqqq

[root@localhost test]#

 [13]rm命令:remove

rm [OPTION]…FILE…

 常用选项:

-iinteractive

-fforce

-rrecursive

example

[root@localhost test]# rm 3

rm:是否删除普通空文件 "3"

[root@localhost test]# rm -r 3

rm:是否删除普通空文件 "3"

[root@localhost test]# mkdir a

[root@localhost test]# rm a

rm: 无法删除"a": 是一个目录

[root@localhost test]# rm -r a

rm:是否删除目录 "a"

[root@localhost test]# rm -f a

rm: 无法删除"a": 是一个目录

[root@localhost test]# rm -f 1

[root@localhost test]# rm -rf a

 

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

 [1]命令执行的状态结果:

bash通过状态返回值来输出此结果:

成功:0

失败:1-255

命令执行完成之后,其状态返回值保存于bash的特殊变量$?

命令正常执行时,有的还回有命令返回值

根据命令及其功能不同,结果各不相同

example:

[root@localhost test]# ls

3  6

[root@localhost test]# echo $?

0

[root@localhost test]# lll

bash: lll: 未找到命令

[root@localhost test]# echo $?

127

 [2]引用命令的执行结果:$(COMMAND)`COMMAND`

example:

[root@localhost test]# touch 1

[root@localhost test]# cat 1

[root@localhost test]# echo $(ls /)  >>  1

[root@localhost test]# cat 1

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

[root@localhost test]# echo `ls /root`  >>  1  

[root@localhost test]# cat 1

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面

 [3]强引用:''和弱引用:""

 [4]快捷键

Ctrl+a:跳转至命令行行首

Ctrl+e:跳转至命令行行尾

Ctrl+l:清屏,相当于clear

 

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

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

[root@localhost /]# cd /var/tmp/test/

[root@localhost test]# mkdir -v /tmp/{a,b}_{c,d}

mkdir: 已创建目录 "/tmp/a_c"

mkdir: 已创建目录 "/tmp/a_d"

mkdir: 已创建目录 "/tmp/b_c"

mkdir: 已创建目录 "/tmp/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 test]# 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: 已创建目录 "/tmp/mylinux"

mkdir: 已创建目录 "/tmp/mylinux/bin"

mkdir: 已创建目录 "/tmp/mylinux/boot"

mkdir: 已创建目录 "/tmp/mylinux/boot/grub"

mkdir: 已创建目录 "/tmp/mylinux/dev"

mkdir: 已创建目录 "/tmp/mylinux/etc"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"

mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"

mkdir: 已创建目录 "/tmp/mylinux/lib"

mkdir: 已创建目录 "/tmp/mylinux/lib/modules"

mkdir: 已创建目录 "/tmp/mylinux/lib64"

mkdir: 已创建目录 "/tmp/mylinux/proc"

mkdir: 已创建目录 "/tmp/mylinux/sbin"

mkdir: 已创建目录 "/tmp/mylinux/sys"

mkdir: 已创建目录 "/tmp/mylinux/tmp"

mkdir: 已创建目录 "/tmp/mylinux/usr"

mkdir: 已创建目录 "/tmp/mylinux/usr/local"

mkdir: 已创建目录 "/tmp/mylinux/usr/local/bin"

mkdir: 已创建目录 "/tmp/mylinux/usr/local/sbin"

mkdir: 已创建目录 "/tmp/mylinux/var"

mkdir: 已创建目录 "/tmp/mylinux/var/lock"

mkdir: 已创建目录 "/tmp/mylinux/var/log"

mkdir: 已创建目录 "/tmp/mylinux/var/run"

 

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

 元数据信息有:文件名称,文件大小,文件类型,访问权限,时间戳等等。用stat命令查看,touch命令更改时间戳。

Example:

[root@localhost test]# stat a

  文件:"a"

  大小:0          块:0          IO 块:4096   普通空文件

设备:fd03h/64771d Inode11830       硬链接:1

权限:(0644/-rw-r–r–)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2017-02-05 19:11:49.380389549 +0800

最近更改:2017-02-05 19:11:49.380389549 +0800

最近改动:2017-02-05 19:11:49.380389549 +0800

创建时间:

  更改访问的时间为指定的时间:

[root@localhost test]# stat a

  文件:"a"

  大小:0          块:0          IO 块:4096   普通空文件

设备:fd03h/64771d Inode11830       硬链接:1

权限:(0644/-rw-r–r–)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2017-02-05 19:20:33.997396041 +0800

最近更改:2017-02-05 19:20:33.997396041 +0800

最近改动:2017-02-05 19:20:33.997396041 +0800

创建时间:

[root@localhost test]# touch -a -t 1612261759.56 a

[root@localhost test]# stat a

  文件:"a"

  大小:0          块:0          IO 块:4096   普通空文件

设备:fd03h/64771d Inode11830       硬链接:1

权限:(0644/-rw-r–r–)  Uid(    0/    root)   Gid(    0/    root)

环境:unconfined_u:object_r:user_tmp_t:s0

最近访问:2016-12-26 17:59:56.000000000 +0800

最近更改:2017-02-05 19:20:33.997396041 +0800

最近改动:2017-02-05 19:20:48.373396219 +0800

创建时间:

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

   用alias命令定义别名:

     alias  name=value

注意:别名只对当前shell有效,如果想永久生效,需要定义在配置文件中。

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

 

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

[root@localhost test]# ls -d  /var/1*[0-9]*[[:lower:]]

/var/1a2sa

 

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

[root@localhost test]# ls  -d /etc/[0-9]*[^0-9]

/etc/1aaa

 

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

[root@localhost test]# ls -d  /etc/[^[:alpha:]][a-z]*

/etc/1aaa

 

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

[root@localhost test]# touch /var/tfile-$(date +%F-%H-%M-%S)

 

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

[root@localhost test]# cp -r /etc/p*[^0-9] /tmp/mytest1/

 

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

[root@localhost test]# cp -r /etc/*.d /tmp/mytest2

 

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

[root@localhost test]#cp -r /etc/[1mn]*.conf /tmp/mytest3

 

 

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

(0)
N26-xiaocongN26-xiaocong
上一篇 2017-02-05
下一篇 2017-02-05

相关推荐

  • Android必备的Java知识点

     Android应用程序开发是以Java语言为基础的,所以需要有扎实的Java基础知识。首先熟悉java基本语法,然后熟悉设计模式等。         a) Java基础语法:看下面的《Java知识点列表》       b)设计模式:由于在Android系统的框架层当中,使用了大…

    Linux干货 2015-04-08
  • 磁盘管理进阶–RAID–LVM初步应用

    配置配额系统 综述   在内核中执行   以文件系统为单位启用   对不同组或者用户的策略不同 根据块或者节点进行限制 执行软限制( soft limit)硬限制( hard limit) 初始化 分区挂载选项: usrquota、 grpquota 在创建好分区后, 对/etc/fstab 进行修改 , 加入 后加进来的分区的…

    Linux干货 2016-09-01
  • AOP面向方面编程

    1.引言         软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块。于是出现了以系统模块化特性的面向对象程序设计技术。模块化的面向对象编程极度极地提高了软件系统的可读性、复用性和可扩展性。向对象方法的焦点在于选择对象作为模块的主要单元,并将对象与系统的…

    Linux干货 2015-04-07
  • 文本处理(1)

    文本处理工具最全整理上半部

    Linux干货 2018-03-15
  • N28-第二周

    1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
    2. bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
    3. 請使用命令行展開功能來完成以下練習:
    (1) 創建/tmp目錄下的a_c、a_d、b_c、b_d。
    (2) 創建/tmp/mylinux目錄下的bin、boot/grub、dev、etc/rc.d/init.d、etc/sysconfig/network-scripts、lib/modules、
    lib64、proc、sbin、sys、tmp、usr/local/bin、usr/local/sbin、var/lock、var/log、var/run目錄。
    4. 如何查看文件的元數據,其信息有哪些,分別表示什麼含意?如何修改文件的時間戳信息?
    5. 如何定義一個命令的別名?如何在命令中引用另一個命令的執行結果?
    6. 顯示/var目錄下所有以L小寫開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
    7. 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
    8. 顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其他任意長度任意字符的文件或目錄。
    9. 在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10. 複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
    11. 複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
    12. 複製/etc目錄下所有以L小寫或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

    Linux干货 2017-12-14
  • 第六周作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;          cp/etc/rc.d/rc.sysinit /tmp/     &nbs…

    2017-09-04

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-02 19:48

    建议操作系统中要使用中文。