Linux常用命令及bash特性(1)

马哥教育网络班22期第二周课程练习

Linux简单使用(1)

Linux常用命令介绍

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、 磁 盘驱动器 、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。

linux命令在系统中有两种类型:内置Shell命令和Linux命令。可以使用help、man和info命令获得帮助。

* help提供内部命令的帮助;man和info提供外部命令的帮助。

Linux常用命令

    • pwd命令:以绝对路径的方式显示当前的工作目录;

    • cd命令:用来切换工作目录至dirname,其中dirName表示法可为绝对路径或相对路径;

使用格式:cd [-L|[-P [-e]]] [dir]

选项:

-P :如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录;

-L :如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录;

– :当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录;

    • ls命令:list,用于显示目录列表;

使用格式:ls [OPTION]… [FILE]…

选项:

-a :显示所有文件,包括隐藏文件(.和..开头的文件和目录);

-A :显示除.和..开头以外的所有文件;

-l :长格式列表,显示文件的详细属性信息;

-h :文件大小单位转换;

-d :仅显示目录名,而不显示目录下的内容列表;

-r :以文件名反序排列并输出目录内容列表;

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

    • cat命令:连接文件并打印到标准输出设备上,经常用来显示文件内容;

使用格式:cat [OPTION]… [FILE]…

选项:

-n :由1开始给所有输出的文本行编号;

-E :用$作为行结束符;

    • tac命令:用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示;即显示方式与cat相反;

    • file命令:用来探测给定文件的类型;

    • which命令:查找并显示给定命令的绝对路径;

使用格式:which [options] [–] programname […]

选项:

–skip-alias :忽略指定命令的别名;

    • whereis命令:用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径;

使用格式:whereis [options] [-BMS directory… -f] name…

选项:

-b :只查找二进制文件;

-m :只查找说明文件;

    • who命令:显示目前登录系统的用户信息;

使用格式:who [OPTION]… [ FILE | ARG1 ARG2 ]

选项:

-b :显示系统此次的启动时间;

-u :显示用户登录详细信息;

-r :显示用户运行的级别;

* w命令同who命令,可显示用户正在执行的操作;

    • mkdir命令:用于创建目录;

使用格式:mkdir [OPTION]… DIRECTORY…

选项:

-p :若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

-v :显示创建目录的详细过程;

-m :建立目录的同时设置目录的权限;

示例:

    • rmdir命令:用于删除空目录;

使用格式:rmdir [OPTION]… DIRECTORY…

选项:

-p :删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

-v :显示命令的详细执行过程;

示例:

    • tree命令:以树状图列出目录的内容;

使用格式:tree [OPTIONS] [directory …]

选项:

-L # :显示#级目录和文件

示例:

bash基础特性介绍)(1)

命令的执行结果状态返回

Linux下一条命令或一个进程执行完成会返回一个一个状态码。

0 :表示成功执行

非0 :表示执行过程中出现异常或非正常退出

在Shell脚本中 最后执行的一条命令将决定整个shell脚本的状态. 此外 shell的内部命令exit也可以随时终止shell脚本的执行,返回Shell脚本的状态码; 当shell脚本执行结束前的最后一个命令是不带参数的exit ,那么 shell脚本的最终返回值就是exit语句前一条语句的返回值,根据这个值可以判断脚本成功执行与否。

$? 可以查看最后一条命令的返回值,该变量可以在shell 脚本中的任何地方使用。

命令行展开

在非引号内的内容,如果用花括号包括,而且里面用逗号分隔(至少包含一个逗号,可以是空内容),这样花括号里的内容会被展开成用空格分开的一个列表,花括号前后可以紧随前缀和后缀(前后缀都是可选的);

示例1:在tmp目录下创建a_c、a_d、b_c、b_d四 个目录;

示例2:在tmp目录下创建各种目录:

元数据及命令引用

元数据介绍

任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode)等。

在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。

元数据管理方式

元数据管理有两种方式:集中式管理和分布式管理。

集中式管理是指在系统中有一个节点专门司职元数据管理,所有元数据都存储在该节点的存储设备上。所有客户端对文件的请求前,都要先对该元数据管理器请求元数据。

分布式管理是指将元数据存放在系统的任意节点并且能动态的迁移。对元数据管理的职责也分布到各个不同的节点上。

元数据信息及查看方法

文件的元数据信息包括文件类型,权限,属主,属组,文件大小,时间戳。

文件类型:

      • 普通文件(regular file):就是一般存取的文件,由ls -al显示出来的属性中,第一个属性为 [-],例如 [-rwxrwxrwx];

      • 目录文件(directory):就是目录,第一个属性为 [d],例如 [drwxrwxrwx];

      • 连接文件(link):类似Windows下面的快捷方式。第一个属性为 [l],例如 [lrwxrwxrwx];

      • 设备与设备文件(device):与系统外设及存储等相关的一些文件,通常都集中在 /dev目录;

      • 套接字文件(sockets):这类文件通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 ,最常在 /var/run目录中看到这种文件类型;

      • 管道文件(FIFO,pipe):FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO是first-in-first-out(先进先出)的缩写。第一个属性为

权限:

      • 读权限:[r]

      • 写权限:[w]

      • 执行权限:[x]

时间戳类型:通常是一个字符序列,唯一地标识某一刻的时间;

      • access time :最近访问的时间;

      • modife time :最近更改的时间;

      • change time :最近改动的时间;

查看文件元数据方法:

    • ls命令:

ls -l :以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

示例:

    • stat命令:用于显示文件的状态信息;输出的信息比ls命令的输出信息要更详细。

使用格式:stat FILE…

示例:

    • touch命令:有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

使用格式:touch [OPTION]… FILE…

选项:

-c :不建立任何文件;

-a :只更改存取时间;

-m :只更该变动时间;

-t :使用指定的日期时间,而非现在的时间;

示例:

命令别名的定义及引用

在管理和维护Linux系统的过程中,将会使用到大量命令,有一些很长的命令或用法经常被用到,重复而频繁地输入某个很长命令或用法是不可取的。这时可以使用命令别名功能将这个过程简单化。

通常情况下,系统中已经定义了一些命令别名,要查看已经定义的命令别名,可以使用alias命令:

当我们使用命令cp(复制文件命令)时,系统会用cp -i代替命令中的cp。除此之外,还定义了ls命令及其使用的颜色、移动文件命令mv、删除命令rm等;

用于设置系统别名的相关文件保存在/etc/profile.d/目录中(系统别名目录);

许多时候管理员都会按自己的使用习惯定义命令别名:

要取消已经定义好的命令别名,可以对别名使用unalias命令:

命令引用

引用就是指将字符串用引用符号括起来,以防止特殊字符被解释为其他意义。引用时屏蔽特殊字符的特殊意义,而将其解释为字面意义。

引用命令的执行结果可以使用两种方式:

$(COMMAND)或COMMAND

示例:

bash基础特性介绍)(2)

文件名通配

当在使用命令行时,有很多时间都用来查找你所需要的文件,如ls、find等。 shell提供了一套完整的字符串模式匹配规则,或者称之为元字符,当shell遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名,这可以称为通配符。

通配符列表:

* :表示匹配任意长度的任意字符;

例:

? :表示匹配任意单个字符;

例:

[] :表示匹配指定范围内任意单个字符;常用的有[a-z],[0-9],[A-Z]

常用字符集合:均只匹配单个

[[:space:]] :所有空白字符 ;

[ [:punct:]] :所有标点符号; 

[[:lower:]] :所有小写字母;

[[:upper:]] :所以大写字母;

[[:digit:]] :所有数字集合;

[[:alnum:]] :所以字母和数字;

[[:alpha:]] :所以字母;

[^] :匹配指定范围外的任意字符;

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

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

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

date命令:可以用于创建以 当前系统日期与时间为名的文件和目录;

使用方法:date [options][+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

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

复制匹配到的文件到指定目录:

示例1:复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

示例2:复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

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

  • 版权声明: 本文源自互联网, 于5个月前,由整理发表,共 5324字。
  • 原文链接:点此查看原文