bash基本特性及基础命令

一、bash特性

1.命令历史

  • history命令

环境变量:

  1. HISTSIZE:命令历史记录的条数
  2. HISTFILE:~/.bash_history
  3. HISTFILESIZE:命令历史文件记录历史的条数

调用历史中的命令:
!#:重复执行第#条指令
!!:上一条命令
!string:调用历史中最近一条字符串指令

调用上一条命令的最后一个参数:

  1. !$(建议使用)
  2. ESC,.(先按esc再按点号) (建议使用)
  3. alt+.

控制命令历史的记录方式:
环境变量:HISTCONTROL

  1. ignoredups:忽略重复的命令;连续且相同方为“重复”
  2. ignorespace:忽略所有以空白开头的命令
  3. ignoreboth:相当于上边两条的综合使用

修改环境变量值的方式:export 变量名=“值”
变量赋值:把赋值符号后边的数据存储于变量名指向的内存空间

2.命令补全

2.1 bash执行命令方式
  1. 内部命令:自带命令
  2. 外部命令:bash根据PATH环境变量定义的路径,自作而右在每个路径搜寻以用户给定命令名命名的文件,第一次找到即为要执行的命令
2.2 补全命令的方式
  • 直接补全:tab键;用户给定的字符串只有一条唯一对应的命令
  • 以用户给定的字符串为开头对应的命令不唯一。则再次tab会给出列表啊(按两次tab键)

3.路径补全

3.1 路径补全的原理

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名,如果唯一,则直接补全;否则按两次tab键给出所有符合条件的列表(操作跟命令补全类似)。

4.命令行展开

  • ~:展开为用户的主目录
  • ~USERNAME:展开为指定用户的主目录
  • {}:可承载一个以逗号分割的列表,并将其展开为多个路径(注意展开列表的生效范围)

比如:/tmp/{a,b}就相当于/tmp/a加/tmp/b
练习:

  1. 创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/
    y2/a,/tmp/x/y2/b
    答:mkdir /tmp/x/{y1,y2}/{a,b}
  2. 创建x_m,y_m,x_n,y_n
    答:mkdir {x,y}_{m,n}
  3. 创建/tmp/bin,/tmp/sbin,/tmp/usr,/tmp/usr/bin,
    /tmp/usr/sbin
    答:mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}

5.命令的执行状态(结果)

  • 成功
  • 失败

bash使用特殊变量$?保存最近一条命令的执行状态结果:
0:成功
1-255:失败
在命令行模式中输入:echo $?就可以查看特殊变量 $?的值

二、目录管理类命令

  • cd:进入目录
  • pwd:显示当前目录
  • ls:显示目录内容
  • mkdir:创建目录

使用语法:mkdir [OPTION] 路径
注意点:

  1. 若是不加-p,创建的目标目录若是没有父目录则会报错
  2. 使用mkdir可以一次性创建多个目录:mkdir 目录1 目录2 目录3…
    OPTION:
  • -p 若是目标文件夹没有父目录,则创建
  • -v 显示详细信息
  • -m MODE:创建目录时直接指定权限
  • rmdir:删除目录

使用语法: rmdir [OPTION] 路径
注意点:只能用来删除空目录
OPTION:

  • -p 若是目标文件夹没有子目录,则删除(递归删除)
  • -v:显示过程
  • tree:显示当前目录的树形结构

显示目录的层级目录
语法:tree [OPTION] 目录
OPTION:

  • -d:只显示目录
  • -L level:指定显示的层级数目
  • -P pattern:只显示由指定pattern匹配到的路径

三、文本文件查看类命令

  • cat:查看文本文件(内容比较少的时候适用)
  • tac:反序查看文本文件(刚好和cat命令的拼写也相反)
  • more:查看文本文件

语法:more [OPTION] FILE…
注意:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便。
-d:显示翻页及退出提示

  • less:查看文本文件

语法:less [OPTION] FILE…
注意:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)

  • tail:查看文本文件的结尾

语法:tail [OPTION] FILE…
-c #:指定获取后#个字节
-n #:指定获取后#行
-f:跟踪显示文件新追加的内容(一般用来查看日志文件,随日志文件内容的增加而跟踪读取)
默认获取前十行(tail FILE)

  • head:查看文本文件的开头

语法:head [OPTION] FILE…
-c #:指定获取前#个字节
-n #:指定获取前#行
默认获取前十行(head FILE)

四、文件的时间戳管理工具

文件一般由两种数据组成:metadata(元数据)和data(数据)组成。查看文件状态用stat命令来查看。
每一个文件都有三个时间戳:

  1. access time:访问时间,简写atime,读取文件内容
  2. modify time:修改时间,简写mtime,改变文件内容(数据)
  3. change time:改变时间,简写ctime,元数据发生改变
  • touch命令

语法:touch [OPTION] FILE
作用:修改atime和mtime
OPTION:

  1. -a:only atime
  2. -m:only mtime
  3. -t:将时间戳修改为指定时间戳
  4. -c:如果文件不存在,则不会创建文件(若是不加-c则会创建文件)
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值