回顾:

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,whereis,who,w,alias,unalias

命令历史:history

一个程序是由4个文件组成:

二进制文件,配置文件,库文件,帮助文件

二进制文件存放在:/bin       /sbin

库文件存放在:/lib        /lib64

配置文件存放在:/etc

帮助文件存放在:/usr/

bash的基础特性:

命令补全:

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

命令处理机制:

查找内部命令:

根据PATH环境变量中设定的目标,自左而右逐个搜索目录下的文件名,找到与命令名称相同的文件后,就将其发起为一个进程。

命令补全操作:

给定的打头字符串如果能唯一标识某命令程序文件,则直接补全,不能唯一标识的某命令程序文件,再击一次tab键一次,会给出列表。

路径补全:

与命令补全的机制不完全一样,根据给定的起始路径补全。

目录管理类的命令:

mkdir,rmdir

mkdir:       make directory

语法:mkdir[OPTION]... DIRECTORY...

目录有基名(basename)与目录名(dirname)之分,

注意:路径基名才是命令的操作对象。基名之前的路径名必须存在。

选项:

-p:    创建嵌套的多层子目录

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

-pv常结合使用

-mMODE:   直接给定权限(mode是用户在创建目录时指定的权限,不指定则默                                                认权限,mode就是选项参数)

rmdir

全称:removeempty directory      //删除空目录(empty:空的)

注意:rmdir只能删除空目录

语法:rmdir[OPTION]... DIRECTORY...

选项:

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

-v:     显示执行过程

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

问题二:如何创建/a/d,/ a/c,/ b/d,/ b/c

上面的这两个问题,引出bash命令行的展开。

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

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

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

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

创建目录完成后,可以用tree命令查看,tree命令需要安装,可以用rpm安装,也可以用yum安装

解决上面的两个问题:

问题一:

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

演示:

[root@localhost Packages]# 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 Packages]# tree /tmp/x

/tmp/x

├── y1

│   ├── a

│   └── b

└── y2

问题二:

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

演示:

[root@localhost Packages]# tree /{a,b}

/a

├── c

└── d

/b

├── c

└── d

问题三:创建如下目录结构:(使用命令行的展开方式创建)

/tmp/mysysroot/

bin

sbin

etc

sysconfig

network-scripts

usr

bin

sbin

local

bin

sbin

etc

lib

lib

lib64

var

cache

log

run

tree命令:

tree:tree - listcontents of directories in a tree-like format.(翻译:树状目录的格式列表内容)

tree           //不跟选项,单独执行tree,显示当前目录结构

选项:

-d:             List directories only.(翻译:只列出目录)

-L level:          Maxdisplay depth of the directory tree.(翻译:最大显示目录树的深度)                                          指定显示目录的层级,不指定level,则全部显示

举例:tree  -L 2  /tmp     //只显示出两层目录

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

命令执行的状态结果:

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

成功:0

失败:1-255

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

注意:命令的执行状态结果保存在变量$?中,要获取的时候,在命令执行完后就要立即获取,不能中间再执行命令,这个变量只能保存一个命令的执行状态结果,并且只能获取最近的执行命令的结果。

演示:

[root@localhost ~]# ls

anaconda-ks.cfg  Desktop   Downloads   install.log.syslog  Pictures  Templates

core.10718       Documents  install.log Music               Public   Videos

[root@localhost ~]# echo $?

0

[root@localhost ~]# ls adfadf

ls: cannot access adfadf: No such file ordirectory

[root@localhost ~]# echo $?

2

[root@localhost ~]#

命令正常执行时,有的还会有命令返回值,根据命令及其功能不同,结果各不相同。

引用命令的执行结果:

$(COMMAND)          或     `COMMAND`   //``是反引号

举例:要创建一个以创建时间为名称的目录:

命令引用是非常重要的。

bash基础特性——引用

强引用:         '        '

弱引用:         "       "

命令引用:     `        `   $()

bash基础特性——快捷键

ctrl+a:      跳转至命令行首

ctrl+e:      跳转至命令行尾

ctrl+u:      删除命令行首到光标处之间的字符

ctrl+k:       删除命令行尾到光标后之间的字符

ctrl+l:        等同于clear清屏

文件查看类命令:

cat,tac, head, tail, more, less

cat

演示操作:

[root@localhost~]# cat/etc/rc.d/init.d/functions

[root@localhost~]# cat -n/etc/rc.d/init.d/functions

分屏查看命令:

more和less

more

[root@localhost~]# more /etc/rc.d/init.d/functions

more查看文件内容时,在文件的左下角会显示显示文件百分之多少内容

查看more显示的文件的操作命令:

空格:        向下翻屏,但是more翻到文件尾部后,就退出阅读了,不能再往前翻屏                              了。无需使用q退出,但是也可以使用q直接退出

b:               向上翻屏

less

[root@localhost~]# less /etc/rc.d/init.d/functions

less命令其实就是man 命令调用的,man手册页查看时的操作,就是less的操作。

head命令:

查看文件的前n行

语法:

head[OPTION]... [FILE]...

head默认查看文件的前10行

选项:

-n#或-#:        想查看文件的指定的前#行

演示:

[root@localhost ~]# head -n 5 /etc/rc.d/init.d/functions

# -*-Shell-script-*-

#

# functions       Thisfile contains functions to be used by most or all

#                shellscripts in the /etc/init.d directory.

#

[root@localhost ~]# head -5 /etc/rc.d/init.d/functions           //functions:函数

# -*-Shell-script-*-

#

# functions       Thisfile contains functions to be used by most or all

#                shellscripts in the /etc/init.d directory.

#

[root@localhost ~]#

tail命令:

查看文件的后n行

语法:

tail[OPTION]... [FILE]...

选项:

-n# 或 -#:       查看文件的指定的后#行

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

演示:

[root@localhost ~]# tail -n 20 -f /etc/rc.d/init.d/functions

结束跟踪,用命令ctrl+c

注意:这个tail -f 这个选项命令,在以后人工监控日志更新时,是非常有用的。

stat命令:

displayfile or file system status(翻译:显示文件或文件系统的状态)

语法:

stat[OPTION]... FILE...

stat的选项很少用,我们记住stat后加文件就可以。

statFILE            //file是指定的文件

[root@localhost ~]# stat/etc/rc.d/init.d/functions

File: `/etc/rc.d/init.d/functions'

Size: 25430              Blocks: 56         IO Block: 4096   regular file

Device: 802h/2050d         Inode: 1706481    Links: 1

Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)

Access:2016-09-21 21:09:15.014999428 -0400

Modify:2016-09-21 21:09:15.012999479 -0400

Change: 2016-09-21 21:09:15.012999479 -0400

[root@localhost ~]#

在stat命令中,最重要的就是关心这三个文件的时间戳

每一个文件,都有两类数据:

元数据:metadata

数据:     data

元数据是文件的相关属性,名称,大小....

数据就是文件真实内容了。

Access:2016-09-21 21:09:15.014999428 -0400             //最近访问时间,即打开文件的时间

Modify:2016-09-21 21:09:15.012999479 -0400              //最近更改时间,是文件数据改变

Change:2016-09-21 21:09:15.012999479 -0400             //最近改动时间,是文件的元数据改变

注意:文件的更改时间发生变化,则文件改动时间一定发生变化,因为,更改时间,对应的是文件的内容,当文件内容发生变化时,可能文件的大小就会发生变化,而改动时间是对应文件的元数据,那改动时间就一定会发生变化。

上面的三个时间戳,被简写成:atime(访问), mtime(更改), ctime(改动).

文件的三个时间戳是可以手动改动的,

更改时间戳,就是用命令,touch

touch命令:

touch - change file timestamps(翻译:更改文件的时间戳)

语法:

touch[OPTION]... FILE...

当用touch单独执行更新一个已经存在的文件的时间戳时,不加任何选项,则文件的三个时间戳都会被改变。

演示:

第二种情况,当我们用touch一个不存在文件时,则会创建该文件

演示:

[root@localhost~]# cd hello/

[root@localhosthello]# ls

[root@localhosthello]# touch myfile

[root@localhosthello]# ls

myfile                                   //显示创建了一个新的文件。

[root@localhosthello]# file myfile

myfile:empty                     //空文件

[root@localhosthello]#

创建一个文件名带有空格的文件:(就需要用到转义字符)

[root@localhost hello]# ls

myfile

[root@localhost hello]# touch a b

[root@localhost hello]# ls

a b  myfile

[root@localhost hello]# touch c\ d

[root@localhost hello]# ls

a b  c d  myfile

[root@localhost hello]#

选项

-c:     --no-create, do not create any files表示:文件存在则更新时间戳,文件不存在则不                                                                                                           进行创建动作。

-a:    仅修改access times

-m:   仅修改modify times

-tSTAMP(STAMP的格式:[[CC]YY]MMDDhhmm[.ss]):手动指定更新的时间戳。

演示:

[root@localhost hello]# stat myfile

File: `myfile'

Size: 0                  Blocks: 0          IO Block: 4096   regular empty file

Device: 802h/2050d         Inode: 2364574    Links: 1

Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)

Access: 2016-09-21 21:42:54.206998481 -0400

Modify: 2016-09-21 21:42:54.206998481 -0400

Change: 2016-09-21 21:42:54.206998481 -0400

[root@localhost hello]# touch -m -t 0209171200.56 myfile

[root@localhost hello]# stat myfile

File: `myfile'

Size: 0                  Blocks: 0          IO Block: 4096   regular empty file

Device: 802h/2050d         Inode: 2364574    Links: 1

Access: (0644/-rw-r--r--)  Uid: (   0/    root)   Gid: (   0/    root)

Access: 2016-09-21 21:42:54.206998481 -0400

Modify: 2002-09-17 12:00:56.000000000 -0400

Change: 2016-09-21 21:58:22.401998303 -0400

[root@localhost hello]#

注意:change time是不能手动更改的。

转载于:https://blog.51cto.com/11857750/1869378

bash的常见命令及文章查看命令相关推荐

  1. Linux 如何查看命令所在位置/查看命令文件所在位置

    文章目录 which type whereis which which 命令的作用是在环境变量 PATH 所指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果. 查看命令详情,猛戳 < ...

  2. linux命令只有一个文件,一天一个Linux基础命令之文件查看命令more

    more:查看文件内容并分屏显示 1.命令格式 more [-d] [-num] [+/pattern] [+linenum] [file...] 2.命令功能 Linux more命令类似cat,不 ...

  3. linux系统信息 命令,Linux_Linux系统信息查看命令大全,系统    # uname -a # - phpStudy...

    Linux系统信息查看命令大全 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinf ...

  4. linux打开txt文件命令_Linux怎么查看命令文件位置

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. Linux which命令 本文主要讲解Linux whic ...

  5. Linux 命令之 which -- 查找并显示给定命令的绝对路径(查找命令的位置/查询命令的位置/搜索命令的位置/查看命令的位置)

    文章目录 一.命令介绍 二.选项参数 三.参考示例 (一)查找 java 命令的位置 一.命令介绍 which 命令的作用是在 PATH 变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结 ...

  6. Linux--用history查看历史命令如何在history命令时,查看历史命令执行时间

    文章目录 一.history 用法汇总 history--列出全部历史命令 history 数字#--列出最近的#条命令 history -c--将目前shell中的所有history命令消除,对命令 ...

  7. Linux中查看命令帮助手册

    目录 Linux中查看命令帮助手册 查看命令类型 --- type Linux中对应的命令类型 帮助命令 help 命令 用法1 help 内部命令 用法2 命令 --help 命令的部分语法符号解析 ...

  8. Linux之查看命令帮助 --help man

    Linux之查看命令帮助 1. 查看命令帮助方式 --help 使用说明: 命令 --help man 使用说明: man 命令 查看命令帮助的目的说明: 查看命令帮助目的是查看命令选项信息的 --h ...

  9. Linux入门学习(九)—— 怎么查看命令的帮助文档、怎么查看系统配置文件的帮助文档?

    引言:上期回顾(想要学习的童鞋可以点击看看)     上一章讲诉了怎么快速查找文件,以及怎么找到一个命令所在位置,那么这一章就来讲怎么查看命令的帮助文档.在Linux命令中,我们是不会每个命令都会讲到 ...

最新文章

  1. 第十五届全国大学生智能汽车竞赛竞速赛规则(讨论稿)
  2. 云服务器 文件 传输,云服务器文件 传输
  3. SpringCloud分布式事务,版本一:未加事务版本
  4. 搜索推荐炼丹笔记:评论是怎么影响推荐的?
  5. flask tutorial = make a blog :) flask 搭建博客系统从零开始!
  6. 200815-C指针高级和链表
  7. .NET SDK-Style 项目(Core、Standard、.NET5)中的版本号
  8. 【转】ABP源码分析二十八:ABP.MemoryDB
  9. android 480p分辨率,[RK3399][Android7.1] HDMI显示屏(副屏)调试记录小结
  10. iOS开发——基础篇——iOS开发 Xcode8中遇到的问题及改动
  11. mysql多表连接的几种写法
  12. AFNetwork 作用和使用方法具体解释
  13. echarts柱形图x轴y轴互换_echarts X Y轴互换后显示问题
  14. collections.Counter 用法
  15. Leet Code题(2)——整数反转
  16. Android 的录音分享特性
  17. GitHub:30%的新增代码出自AI工具Copilot之手
  18. 嵌入式linux使用A7680C 4G 网卡
  19. 模拟【The Biggest Water Problem】+模拟【明明的随机数】
  20. LaTeX学习准备——TexLive和TeXStudio的安装

热门文章

  1. nginx-0.1.0文件分析3:ngx_send.c
  2. 企业创新系列之:青苹之末
  3. XPath基本概念(一)
  4. python selenium 文件上传_Python+Selenium学习--上传文件
  5. html在线热点工具,Heatmap.js 强大的 HTML5 画布 WEB 网页在线热点图插件 - 资源分享...
  6. vconsole插件_手机前端开发调试利器 – vConsole
  7. 计算机从网络上启动,如何设置计算机以从网络驱动器启动
  8. java 高级数据类型_【高级数据类型】- 2.通道的更多种类
  9. html实现点赞评论功能_html的canvas实现画布功能
  10. 4 相机切换_新手必读 | iPhone手机的自带相机操作完全指南