博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux学习笔记之bash
阅读量:6847 次
发布时间:2019-06-26

本文共 1788 字,大约阅读时间需要 5 分钟。

一、shell(外壳)→离用户最近的计算机程序,提供人机交互的功能

广义的shell:
GUI(Graphical User Interface)
CLI(Command Line Interface):sh,csh(类似于C语言),ksh(功能更强大,付费使用),tcsh(增强的csh),zsh

bash:shell在用户登录后启动,大多数默认使用bash

二、bash(Bourne-Again Shell)
1、每个进程不知道别人的存在,在每个进程看来,当前主机上只存在内核和当前进程
2、系统靠进程号识别进程,进程是程序的副本,进程是程序执行的实例
例:两个用户登陆,只有一个shell程序执行,但是有2个进程,但是两个进程之间互不相干
shell是一个外部命令
Linux学习笔记之bash
用户工作环境
#管理员模式
$用户模式
支持用户自定义工作环境
shell 有父shenll 和子shell的概念 每个shell并不知道其他shell去运行,对子shell的设定不影响父shell,对父shell的设定不影响子shell
三、bash的功能
1、命令历史:上下翻使用
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程(将执行的命令通过各种逻辑组合起来,脚本)
四、bash特性
1、命令行编辑
光标跳转:ctrl+a:跳转到命令行行首
ctrl+e:跳转到命令行行尾
ctrl+⬅:按单词向左跳转
ctrl+➡:按单词向右跳转
命令删除:ctrl+u:删除光标至行首
ctrl+k:删除光标至行尾
清屏(clear):ctrl+L windows(cls)
2、命令历史
bash自动记录过去执行的命令,保存在内存的缓冲区上,进程结束命令将保存至某一个文件,当用户正常退出,文件保存于家目录下隐藏文件bash_history
history:查看命令历史(属于内建命令)
Linux学习笔记之bash
history -c(clear):清空命令历史
Linux学习笔记之bash
history -d(delete):清空指定命令历史
Linux学习笔记之bash
history -w:保存历史命令至历史文件中(覆盖之前保留的命令)
Linux学习笔记之bash
环境变量
PATH:命令搜索的路径
HISTSIZE:命令历史缓冲区大小,默认1000条命令
命令历史使用技巧
!n 执行命令历史中第n条命令
Linux学习笔记之bash
!-n 执行命令历史中倒数第n条
Linux学习笔记之bash
!! 执行刚刚执行的命令
Linux学习笔记之bash
!string 执行命令历史中最近一个以指定字符串开头的命令
Linux学习笔记之bash
!$:引用上一个命令中最后一个参数 ESC和"." Alt和"."
Linux学习笔记之bash
3、补齐(tab)
命令补齐(在命令搜索路径下补齐命令)
一次tab 命令自动补齐(写出的字符能够唯一标识命令)
两次tab 显示所有与字符有关的命令
路径补齐:和命令补齐类似(在所给打头目录下查找补齐目录或文件)
4、命令别名
alias CMDALIAS='CMMAND [option] [argument]'
Linux学习笔记之bash
在shell中定义的别名仅在当前shell生命周期有效:别名的有效范围仅为当前shell进程
alias 显示所有命令别名(内建命令)
Linux学习笔记之bash
unalias CMDALIAS 撤销别名
在定义命令别名的情况下可以使用 \COMMAND 使用原命令
Linux学习笔记之bash
5、命令替换
把命令中某个子命令替换为其执行结果的过程
echo "the current directory is $(pwd)"
$(pwd)=pwd
Linux学习笔记之bash
touch file-$(date +%F-%H-%M-%S).txt
Linux学习笔记之bash
``:命令替换
"":弱引用,可以实现变量替换
'':强引用,不完成变量替换
6、文件名通配(globbing)

  • 任意长度的任意字符
    ? 任意长度单个字符
    [] 匹配指定范围内任意单个字符
    [abc],[a-m],[a-z],][0-9],[A-Za-z]
    [^] 匹配指定范围外的任意字符
    [[:space:]] 空白字符
    [[:punct:]] 标点符号
    [[:lower:]] 小写字母
    [[:upper:]] 大写字母
    [[:alpha:]] 大小写字母
    [[:digiqt:]] 数字
    [[:alnum:]] 数字和大小写字母
    man 7 glob(查看文件名统配)

转载于:https://blog.51cto.com/13353803/2148163

你可能感兴趣的文章