[Linux入门第十一天]Linux入门之bash基础特性

回顾:

FHS、命令及bash命令历史

FHS:

/bin, /sbin, /lib, /lib64, /etc

/home, /root

/boot

/media, /mnt

/proc, /sys

/tmp

/srv

/opt

/dev

/usr

Bin, sbin, lib, lib64, share, local, include, …

/var

cache, lib, log, ….

命令:  which whersis,  who, w, alias, unalias

命令历史:  history

bash的基础特性:

命令补全:

Shell程序在接收到用户执行命令的请求,分析完成之后, 最左侧的字符串会被当作命令:

命令查找机制:

查找内部命令:

根据PATH环境变量中设定的目录, 自左而右逐个搜索目录下的文件名:

给定的打头字符串如果能唯一标识某命令程序文件,则直接补全:

不能唯一标识某命令程序文件,再单击tab键一次,会出现列表:

路径补全:

在给定的起始路径下,以对应路径下的打头字符串逐一匹配起始路径下的每个文件:

Tab:

如果能唯一标识,则直接补全:

否则,再一次tab,给出列表:

目录管理类命令:

mkdir, rmdir

mkdir – make directories

mkdir [option]…DIRECTORY…

-p:自动按需创建父目录:

-v: verbose,显示详细过程:

-m: MODE:直接给定权限:

注意:路径基名方为命令的作用对象: 基于之前的路径必须存在:

rmdir – remove empty directories

rmdir [OPTION]… DIRECTORY…

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

-v:显示过程:

问题1:如何创建/tmp/x/y1, tmp/x/y2, /tmp.x/y1/a, /tmp/x/y1/b?

mkdir -pv /tmp/x/{y1/{a,b},y2}

mkdir:已创建目录 “/tmp/x”

mkdir:已创建目录 “/tmp/x/y1”

mkdir:已创建目录 “/tmp/x/y1/a”

mkdir:已创建目录 “/tmp/x/y1/b”

mkdir:已创建目录 “/tmp/x/y2”

问题2:如何创建a_c, a_d, b_c, b_d?

mkdir -pv {a,b}_{c,d}

mkdir:已创建目录 “a_c”

mkdir:已创建目录 “a_d”

mkdir:已创建目录 “b_c”

mkdir:已创建目录 “b_d”

问题3:创建如下目录结构:

/tmp/mysysroot/

──bin

├──etc

│   └── sysconfig

│       └── network-scripts

├──sbin

├──user

│   ├── bin

│   ├── lib

│   ├── lib64

│   ├── local

│   │   ├── bin

│   │   ├── etc

│   │   ├── lib

│   │   └── sbin

│   └── sbin

└──var

├──cache

├──log

└──run

mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfig/network

-scripts,user/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}

bash的基础特性之: 命令行展开

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

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

例如:  /tmp/{a,b}相当于 /tmp/a /tmp/b

tree命令:

tree  [option] [directory]

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

bash的基础特性:  命令的执行状态结果:

成功: 0

失败: 1-255

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

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

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

引用命令的执行结果:

$(COMMAND)

或`COMMAND`

bash的基础特性: 引用

强引用:‘’

弱引用:“”

命令引用: “

bash的基础特性: 快捷键

Ctrl+a:跳转至命令行首

Ctrl+e:跳转至命令行尾

Ctrl+u:删除行首至光标所在处之间的所有字符:

Ctrl+k:删除光标所在处至行尾的所有字符:

Ctrl+l:清屏, 相当于clear

文本查看命令: cat, tac, head, tail, more, less

分屏查看命令: more less

more命令:

more FILE

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

less命令:

less FILE

head命令:

查看文件的前n行:

head [option] FILE

-n #

-#

tail命令:

查看文件的后n行:

Tail [option] FILE

-n #

-#

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

stat命令:

stat – display file or file system status

stat FILE…

文件:两类数据

元数据: metadate

数据: data

时间戳:

Access time: 2018-03-30 09:22:18.848259259 -0400

Modify time: 2018-03-30 09:20:42.788259296 -0400

Change time: 2018-03-30 09:20:42.788259296 -0400

touch命令:

touch – change file timestamps

touch [OPTION]… FILE…

-c:指定的文件路径不存在时不予创建:

-a:仅修改access time:

-m:仅修改modify time:

-t: STAMP

[[CC]YY]MMDDhhmm[.ss]

��|a,f]

    原文作者:lvdunlinux
    原文地址: https://www.jianshu.com/p/d1a071bfe543
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞