Linux基础命令与bash基础特性

第二周作业

Linux基础命令与bash基础特性

 

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

Linux系统在命令行界面,是通过命令来完成对文件的管理的,当然文件系统里有目录也有文件,我们今天就来说说其命令及用法。

 

与目录相关的命令:

ls 这个命令很特殊,应用于目录,文件都可以。即列出目录内容。

选项:-l:详细列出文件属性,包括文件类型,权限,属主属组,创建时间等。

-a:列出指定目录里的全部文件,包括隐藏文件,于-l可配合使用。

-A:显示除.,..以外的所有文件。

-h:显示文件大小,以KB为单位,默认是字节。

-d:查看目录自身,而非目录里的文件内容。

-R:递归显示文件,以英文字母顺序排序。

-r:逆序显示。以上选项均可配合使用,如图。

ls1ls2ls3

mkdir,rmdir 创建目录,移除空目录

mkdir 创建目录其可使用绝对路径和相对路径,但路径必须存在,否则会报错。

mk1

如果想创建层级目录,用相对路径,可加选项,-p,显示其创建过程,-v,一般配合使用,-p会按从左至右顺序依次创建其要创建的目录的父目录。

mk2

mkdir -m 可在创建时指定权限。

rmdir 删除空目录,如不是空目录,则有报错。

rm

所以,rmdir用于删除空目录,如不是空的,则需要以此删除,当然也有rm命令,这里先不做说明。rmdir也支持-p,-v选项,而-p选项也只是针对要删除目录的父目录里没有其他文件,删除之后也为空,可依层级删除。

 

与文件相关的命令:

touch(创建空文本文件,也可用于改变文件的时间戳),stat,cat,tac,more,less,head,tail(文本查看类命令)

cp,mv,rm(文件管理类命令)

 

这里对于文本文件查看类命令,不做过多解释,主要详解文件管理类命令。

touch 创建空文件,stat 显示文件或文件系统状态,cat 查看文本内容,tac 逆序查看文本内容,more,less 均为查看内容较多的文本文件,可实现翻屏,more翻屏结束后自动退出,不能向前翻,less可前后翻屏查看,类似于man的用法,head 查看文本文件首部,默认是前10行,可加选项 -n # 为查看前几行,tail 查看文本文件尾部,默认后10行,与head用法一样。

 

cp copy 复制文件的数据 (数据,元数据)

单源复制:如果目标不存在,则事先创建文件,并复制源文件的数据流至目标文件中;如果目标存在,其非目录文件,则覆盖目标文件,如果目标存在其为目录文件,则先在目标目录下创建一个同文件名的文件,并复制源文件的数据流至文件中。

多源复制:如果目标不存在,则错误不复制;如果目标存在,其为非目录文件,则错误不复制,如果目标存在其为目录文件,分别复制每个文件至目录中,并保持原名。

cp 选项 源文件 目标文件或多个源文件 目标目录

选项:-i 交互式复制,有询问的,因为管理员权限太大,故系统有cp的别名,cp=cp -i,覆盖掉要复制的内容是有询问的,如图。

cp

cp -f:强制覆盖目标文件,不论目标文件或目录已存在

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理

-d:当复制符号链接时,把目标文件或目录也建立为符号链接,并指向与源文件或目录连接的原始文件或目录

-p:保留源文件或目录的属性

-a:其效果与-dpr效果一样

 

mv 移动并重命名文件

-i:交互式操作

-f:强制覆盖目标文件或目录,这必须是与源文件或目录重复的情况下

 

rm 删除文件或目录

-i:删除已有文件或目录之前,与用户进行交互,询问

-f:强制删除文件或目录

-r:递归处理,将目标文件或目录下的所有文件或子目录一并处理

所以,rm命令很重要,也很危险,尤其是rm -rf / 这个命令请慎重使用。如在/下有不用的文件,可转移至专有的文件夹下,类似于windows的回收站。

 

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

Bash工作特性之命令执行状态返回值,其命令行界面下,执行命令有正确结果,和错误结果,Linux系统,无报错信息即最好的信息,就是执行正确,有报错信息就是执行错误的命令或格式不对,或参数不对等原因,但这些都是命令执行结果,其bash中也定义了有命令执行状态返回值,正确为0,错误为1-255之间,其执行状态返回值保存在bash的特殊变量中,$?,查看用echo $?,如图。

number

ls查看当前目录下的文件,显示其正确结果,当然命令是正确的,echo $? 其返回值为0,如命令错误,状态为告诉你,bash里没发现此命令,返回值为127,如参数不对,/etc下没有aa这个文件,返回值为2。

 

Bash命令行也支持命令行展开等功能,这里介绍~,{ },两种。

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

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

可用tree命令来查看其展开的层级结构。如图所示。

zhankai1

我们创建了一个用户tom,切换到tom登录,显示当前在root目录下,cd ~,就到了tom自己的家目录下,实际上~就是个命令行展开模式,~=/home/tom。

zhankai2

创建目录ab,ac,a_b,a_c,d_a,a_c,重复部分可以用嵌套花括号的方式展开完成。

zhankai3

命令行展开模式,也就是简化了我们的工作内容。

zhankai4

 

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

(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

完成命令。

1:mkdir /tmp/{a_{c,d},b_{c,d}}。

zuoye1

2: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}}

zuoye2zuoye3

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98846

(0)
上一篇 2018-05-19 15:16
下一篇 2018-05-19 15:54

相关推荐

评论列表(2条)

  • 马哥教育
    马哥教育 2018-05-23 21:14

    命令执行过程 演示的很不错。不过建议命令的演示图片可以换成命令行编辑器贴上来 格式会更清晰。

    • 圣殿小超
      圣殿小超 2018-05-28 02:58

      @马哥教育嗯,好的,下回注意,主要是为了让我自己看演示效果,哈哈!