linux学习12 bash的常见特性及文本查看命令实战
一、回顾
1、FHS,命令及bash命令历史
a、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,
2、命令:which,whereis,who,w,alias,unalias
3、命令历史:history
4、文件类型:-,d,b,c,l,p,s
二、bash的基础特性
1、命令补全:
a、shell程序在接收到用户执行命令的请求,分析完成后,最左侧的字符串会被当做命令
b、命令查找机制:
查找内部命令
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名
c、给定的打头字符串如果能唯一的标识某命令程序文件,则直接补全,如果不能唯一标识某命令程序文件,再敲击一次tab键会给出列表
2、路径补全
a、在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件
tag:如果能唯一标识,则直接补全;否则,再一次tab,给出列表。
三、目录管理类的命令
1、mkdir(make directory):mkdir [OPTION]... DIRECTORY...,创建目录
a、注意:路径基名方为命令的作用对象,基名之前的路径必须存在
b、mkdir -pv :自动按需创建父目录并显示详细的过程信息
[root@localhost ~]# mkdir -pv /tmp/m/n/p
mkdir: created directory ‘/tmp/m’
mkdir: created directory ‘/tmp/m/n’
mkdir: created directory ‘/tmp/m/n/p’
c、-m MODE:直接给定权限,否则为默认权限
2、rmdir(remove empty directory):仅用于删除空目录。
a、rmdir -p :删除某目录后,如果其父目录为空,则一并删除
b、rmdir -v:显示过程
四、bash的基础特性之:命令行展开
1、思考如下问题
a、问题1:如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b ?
b、问题2:如何创建a_c,a_d,b_c,b_d
c、创建如下目录结构
/tmp/mysysroot/
bin
sbin
etc
sysconfig
network-scripts
usr
bin
sbin
local
bin
sbin
etc
lib
lib
lib64
var
cache
log
run
2、命令行展开
a、~:自动展开为用户的家目录,或指定的用户的家目录
b、{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
例如:/tmp/{a,b},相当于/tmp/a,/tmp/b
问题一答案:
[root@localhost tmp]# mkdir -pv /tmp/x/{y1/{a,b},y2}
mkdir: created directory ‘/tmp/x’
mkdir: created directory ‘/tmp/x/y1’
mkdir: created directory ‘/tmp/x/y1/a’
mkdir: created directory ‘/tmp/x/y1/b’
mkdir: created directory ‘/tmp/x/y2’
[root@localhost tmp]# tree /tmp/x/
/tmp/x/
├── y1
│ ├── a
│ └── b
└── y2
问题二答案:
[root@localhost tmp]# mkdir -pv {a,b}_{c,d}
mkdir: created directory ‘a_c’
mkdir: created directory ‘a_d’
mkdir: created directory ‘b_c’
mkdir: created directory ‘b_d’
问题三答案:


3、tree命令:tree [options] [directory]
a、tree -L level:指定要显示的层级
五、bash的基础特性:命令的执行状态结果
1、命令执行的状态结果:
a、bash通过状态返回值来输出此结果:
成功:0
失败:1-255
b、命令执行完成之后,其状态返回值保存于bash的特殊变量$?中
2、命令正常执行时,有的还会有命令返回值:
根据命令及其功能不同,结果各不相同
3、引用命令的执行结果
$(COMMAND)
`COMMAND`:`是esc键下的符号
六、bash的基础特性:引用
1、强引用:''
2、弱引用:“”
3、命令引用:`` && $(COMMAND)
七、bash基础特性:快捷键
1、Ctrl + a:跳转至命令行首部
2、Ctrl + e:跳转至命令行行尾
3、Ctrl + u:删除行首至光标所在处之间的所有字符
4、Ctrl + k:删除光标所在处至行尾的所有字符
5、Ctrl + l:相当于clear命令
八、文件查看类命令:cat,tac,head,tail,more,less
1、分屏查看命令:more,less
a、more
more FILE,主要特点在于翻屏至文件尾部后自动退出。
b、less
less FILE
2、head命令
a、查看文件的前n行,默认前n行
b、查看前5行。-n 5 && -5
[root@localhost tmp]# head -n /etc/init.d/functions
# -*-Shell-script-*-
#
# functions This file contains functions to be used by most or all
# shell scripts in the /etc/init.d directory.
#
[root@localhost tmp]# head - /etc/init.d/functions
# -*-Shell-script-*-
#
# functions This file contains functions to be used by most or all
# shell scripts in the /etc/init.d directory.
#
3、tail命令
a、查看文件的后n行,默认为后10行
b、查看后5行。-n 5 && -5
c、-f :查看文件尾部内容结束后不退出,跟随显示新增的行
4、stat命令,显示文件或文件系统的状态
a、stat FILE
[root@localhost tmp]# stat /tmp/functions
File: ‘/tmp/functions’ #文件名
Size: #大小 Blocks: #占据了多少个块 IO Block: 4096 #io块大小是多少,即有30个块,每个块大小是这么大 regular file
Device: fd00h/64768d #所在设备的设备号 Inode: #索引节点号 Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::32.178963513 +0800 #最近一次访问时间
Modify: -- ::32.178963513 +0800 #最近一次更改时间
Change: -- ::32.178963513 +0800 #最近一次改动时间
Birth: - #普通文件
b、时间戳
1)、Access: 2019-12-15 19:46:32.178963513 +0800 #最近一次访问时间
对Linux文件来说我们分为两种数据
元数据:metadata
数据:data
比如你拿到一本书,会有索引,他虽然也是书的一部门不过他不是真正的数据,他相当于是描述内容属性的,这种就相当于元数据,而书的真正内容才是数据。我们cat命令查看的相当于是数据,而我们stat查看的相当于是元数据。此数据中有三个时间戳,如果我们此时用cat 查看了这个文件的内容那么时间戳中的Access时间就会变成查看时的时间
2)、Modify: 2019-12-15 19:46:32.178963513 +0800 #最近一次更改时间
打开文件新增一行即是更改,更改是指数据改变,即内容发生改变。内容发生改变元数据也会发生改变,即change时间会发生改变。
3)、Change: 2019-12-15 19:46:32.178963513 +0800 #最近一次改动时间
改动是指元数据改变。如果文件名称发生改变那么其时间就会发生改变,不过更改时间不会发生改变。
5、touch命令。
a、修改文件的时间戳,他可以修改当前文件的时间戳,将时间戳修改为最近的时间
[root@localhost tmp]# stat functions
File: ‘functions’
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::47.370957047 +
Modify: -- ::26.997956895 +
Change: -- ::43.882956602 +
Birth: -
[root@localhost tmp]# touch functions
[root@localhost tmp]# stat functions
File: ‘functions’
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::48.710956355 +
Modify: -- ::48.710956355 +
Change: -- ::48.710956355 +
Birth: -
b、当touch一个不存在的文件时就会创建一个空文件
c、touch -c ,指定的文件路径不存在时不予创建。即文件存在就修改时间戳,文件不存在就算了,也不创建文件。
d、touch -a:仅修改access time
e、touch -m:仅修改modify time
chang time不能手动指定修改
f、touch -t :修改至指定的时间
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
[root@localhost tmp]# touch -m -t 0212010303.03 functions #也可以写为200212010303.
[root@localhost tmp]# stat functions
File: ‘functions’
Size: Blocks: IO Block: regular file
Device: fd00h/64768d Inode: Links:
Access: (/-rw-r--r--) Uid: ( / root) Gid: ( / root)
Access: -- ::48.710956355 +
Modify: -- ::03.000000000 +
Change: -- ::44.012954999 +
Birth: -
linux学习12 bash的常见特性及文本查看命令实战的更多相关文章
- Linux 学习 之 bash
Anything is programmable with defined syntax and common lib. Bash Shell is created to programme to L ...
- linux 学习 12 服务管理
第十二讲 Linux服务管理 12.1 Linux服务管理-服务分类 ——Linux服务 ----RPM包默认安装的服务 ————独立的服务 ————基于xinetd服务 ----源码包安装的服务 ...
- 鸟哥的Linux学习笔记-bash
1. /bin/bash是linux预设的shell,也是Linux发行版的标准shell,它兼容sh,可以看作是sh的功能加强. 2. bash具有命令记录功能,在bash中通过上下键就可以翻找之前 ...
- 【linux学习笔记二】常见目录的作用
- Linux学习(一):从图形界面进入命令行及命令行进入图形界面
一.从图形界面进入命令行 最近脑洞大开,想接触一下linux.本人设备是win7,于是安了VMware(12.0.0)虚拟机,在安Linux(我用的CentOS 6.3 64)时不太会搞,跟据提示(英 ...
- Linux学习——卸载Ubuntu,安装CentOS,第一次使用命令
最近,看了相关的资料,发现Ubuntu不是很利于学习Linux操作系统,而CentOS比较有利于学习Linux操作系统,就卸载了. 当然,对于菜鸟,自然是很没有主见. 卸载Ubuntu感觉很奇怪,下来 ...
- Linux学习笔记(一)----Ubuntu下的apt命令
一.原理与目录 先介绍几个和apt-get相关的目录: /var/lib/dpkg/available文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 Debian 安装源中的所有软件包,其 ...
- 【Linux学习三】VI/VIM全屏文本编辑器
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 一.打开关闭文件打开文件:vim /path/to/somefilev ...
- Linux学习笔记(十)shell基础:历史命令、命令补全、输出重定向、输出重定向
一.历史命令 history [选项] [历史命令保存文件] -c 清空历史命令 -w 吧缓存中的历史命令写入历史命令保存文件~/.bash_history中 系统会默认将上次注销登录(正确退出)之前 ...
随机推荐
- 【简记】修改Docker数据目录位置,包含镜像位置
为啥要改? Docker安装后默认下载的位置在/var/lib/docker ,如果/var分区没有独立分出来,Linux下默认是与/根分区在一起.一般我们装Linux系统的时候,除了做邮件服务器外, ...
- asp.net core 系列之Reponse caching 之 Response Caching Middleware(4)
这篇文章介绍 Response Caching Middleware . Response Caching Middleware in ASP.NET Core 通过在ASP.NET Core应用中 ...
- JVM故障分析系列之四:jstack生成的Thread Dump日志线程状态
JVM故障分析系列之四:jstack生成的Thread Dump日志线程状态 2017年10月25日 Jet Ma JavaPlatform JVM故障分析系列系列文章 JVM故障分析系列之一: ...
- Eclipse集成Git做团队开发:分支管理
在日常开发工作中,我们通常使用版本控制软件管理团队的源代码,常用的SVN.Git.与SVN相比,Git有分支的概念,可以从主分支创建开发分支,在开发分支测试没有问题之后,再合并到主分支上去,从而避免了 ...
- [TensorFlow 2.0] Keras 简介
Keras 是一个用于构建和训练深度学习模型的高阶 API.它可用于快速设计原型.高级研究和生产. keras的3个优点: 方便用户使用.模块化和可组合.易于扩展 简单点说就是,简单.好用.快(构建) ...
- PL/SQL 出现死锁解决办法
转自:https://blog.csdn.net/u013015629/article/details/48005763 在PL/SQL中操作数据表时,长时间没反应,并且编辑某个表中数据时,出现“re ...
- Java 8中的Base64编码和解码
转自:https://juejin.im/post/5c99b2976fb9a070e76376cc Java 8会因为将lambdas,流,新的日期/时间模型和Nashorn JavaScript引 ...
- 虚拟机-VMware小结
1.网卡的3种模式 桥接模式:虚拟机=物理机器,连接物理网卡,虚拟ip设置物理网卡的网段和网管.可上网. NAT模式:虚拟机把物理机器当做路由器,虚拟ip网段ip自动获取.可上网. https://w ...
- 使用nginx 做kbmmw REST 服务的负载均衡
我们一般在云上部署REST服务.既想利用kbmmw 的方便性,又想保证系统的安全性,同时 想通过负载均衡保证服务器的健壮性.下面我们使用ubuntu+nginx 来实现以下kbmmw rest 服务器 ...
- Appium的测试简单流程
1.环境的搭建:jdk,SDK,appium,手机模拟器(夜神模拟器) 2.appium的运作流程图: 图中的流程步骤简单来说是: 1.测试脚本写入appium: 2.appium创建连接,将脚本利用 ...