Bash基本功能

Bash

Bourne Again shell —— bash —— 支持功能:历史命令、命令别名、命令与文件名的补全、、、

历史命令

history、、、tab 补全命令与文件、、、

history —— 查看或调用历史命令

  • 格式:history [选项]
    • -c —— 清空当前 shell 环境中的历史命令的缓存(内存)
    • -w —— 将当前缓存中的历史命令保存到配置文件
  • 说明
    • -c 只是临时清空缓存,新建的 shell 环境使用 history 还是可以找到被清空的记录
    • 只有 history -c 之后再执行 history -w,配置文件才会被清空,覆盖

注:-c 只是清空当前 shell 环境中的缓存,也就是内存中的记录,配置文件中的记录并不会被清空

历史命令保存文件

  • ~/.bash_history —— “~” 表示用户的家目录
  • 文件中记录的是上次 shell 环境结束前所执行的命令,只有当前 shell 结束时才会将命令保存进去

注:当用户正常退出时,当前 shell 中的缓存才会被保存到配置文件中,即更新配置文件 —— 否则数据丢失

历史命令的调用

  • 使用上、下光标键调用
    • 使用 “!!” 执行上一条命令
  • 使用 “!n”,执行第 n 条历史命令
  • 使用 “!字符”,执行最近一条,以此字符、关键字开头的命令

例:history —— 显示当前 shell 环境中的历史命令记录

例:history --》!n、↑、、、—— 显示历史命令快速执行,或直接 “↑”、、、

注:shell 脚本中执行的命令,和当前终端 shell 环境,以及其它终端 shell 环境是独立的

说明:shell 脚本的 shell 环境是在当前的 shell 环境中新建出的一个子 shell、分支 shell,它们只是一种依附关系 —— 不同 shell 环境中 history 记录的内容不互通

命令与文件名的补全

  • 使用 tab 按钮,提供了如命令补齐、路径补齐等功能

注;不起功能有时候会将目录结尾处自动补上目录结尾的 “/” 符号,目录软链接后加 “/” 表示其原文件

命令别名

alias —— ~/.bashrc、/etc/bashrc、、、

alias —— 命令别名

  • 格式:alias 别名=‘原命令 [选项]’ —— 让某一个别名代替原命令以及命令的选项

注:别名命令的优先级更高,直接输入命令相同的别名会优先选择执行命令的别名,如 ls=‘ls --color=auto’

alias —— 查看现有生效了的别名组合

[root@localhost ~]# alias				#alias —— 直接输入是查看现有别名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

注:直接按照以上命令格式在命令行中执行的 alias 命令设置的别名是临时生效

注:新建别名不要和已存在的命令重名,但可以尝试将 rm 删除命令设置成 mv 的一个别名,实现将文件删除转义,改为将文件移动到自己新建的某一目录里 —— 回收站,防止误删除

别名相关配置文件 —— 使设置的别名永久生效

  • 单个用户生效:~/.bashrc —— 某用户家目录,让某一用户生效
  • 所有用户生效:/etc/bashrc —— 修改 /etc/ 目录下的系统配置文件,针对所有用户生效

刷新配置文件

  • cource 配置文件、. 配置文件 —— 刷新配置文件内容,使新设置的选项生效
  • source 和 “.” 是一样的功能,都是用来将配置文件修改的内容更新到当前的 shell 解释器中,识别并加载

注:当前 shell 环境,如果脚本里执行的某些语句在当前 shell 环境调用不到,就会执行失败

系统启动管理流程

  • 环境变量配置文件:/etc/bashrc、/etc/profile
    • /etc/bashrc 会被优先加载,/etc/profile 是作为补充
    • 所以别名写到这两个文件中都可以 —— 下次登录生效(可通过 source 或 “.” 命令更新)

例:设置一个能查看目录详细信息的别名 —— ls -ld

  • vim /etc/bashrc --》最后一行编辑 alias lld=‘ls -ld’
  • source /etc/bashrc —— 把已修改的文件内容更新到当前的 shell 命令解释器环境

注:source /etc/bashrc 和. /etc/bashrc —— 这两个是一样的,“.” 和 source 的功能是相同的

注:不要用 source 当作执行脚本的命令,执行脚本只有 bash 命令和加权限两种方式

命令优先级

命令不同执行方式的判定顺序 —— 路径 --》别名 --》shell内嵌 --》PATH

命令执行优先级

  1. 用绝对路径或相对的方式执行命令
    • /usr/bin/rm a.txt —— 不会提示,绝对路径优先级高于命令的别名(rm=‘rm -i’)
    • 绝对路径执行的命令优先级最高,使用命令的绝对路径执行别名不会生效
  2. 别名命令
    • rm 存在 “rm=‘rm -i’” 的别名,直接输入 rm 命令会执行别名命令
  3. bash 内置命令
    • 内置命令:不通过软件包安装,就存在的命令 —— shell 解释器自带的,不靠第三方软件安装
  4. 根据环境变量定义的目录查询到的命令 —— /etc/bashrc
    • echo $PATH --》/usr/local/sbin;/usr/local/bin;/usr/sbin;/usr/bin;/root/bin —— 命令查找的路径

注:echo $PATH 输出的五个目录是命令执行最后查找的位置,可以将脚本添加到其中某目录,实现设置命令

例:测试将 pass.sh 脚本改名为 pass,放入 echo $PATH 其中一个目录

  • cp -a ./pass.sh /usr/local/bin/pass --》pass —— 注意添加可执行权限

注:这是把脚本的执行方式变成普通命令执行的一种方式

Bash 常用快捷键

  • Ctrl + A、Ctrl + E —— home、end
  • Ctrl + C —— 强制终止当前的命令
  • Ctrl + L —— 清屏
  • Ctrl + U、Ctrl + K —— 剪切当前行光标前、后的内容
  • Ctrl + R —— 查历史命令,比 history 更智能一些,可以找到包含关键字的命令,而不是以关键词开头的命令
  • Ctrl + D —— 退出当前终端
  • Ctrl + S、Ctrl + Q —— 暂停、恢复屏幕输出
  • Ctrl + Z —— 暂停命令,放入后台(jobs、fg、bg)—— 命令结尾加 &,后台继续执行
  • Ctrl + ↑ —— 调整字体(Ctrl + Alt + Shift + [])

注:Xshell 中可实现选中即复制,右键即粘贴,工具 --》选项 --》键盘和鼠标 --》勾选相应复制粘贴选项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值