bash及其特性笔记

bash及其特性

shell: 外壳

GUI: Gnome,KDE,Xfce

CLI: sh, csh, ksb, bash, tcsh, ksh, zch

程序: 进程

允许同一个用户登陆多次,互不相干,进程独立

进程: 在每个进程看来,当前主机上只存在内核和当前进程

进程是程序的副本,进程是程序执行的实例

用户工作环境:

#

$

shell, 子shell

bash:

1. 命令历史

2. 管道、重定向

3. 命令别名

4. 命令行编辑

5. 命令行展开

6. 文件名通配

7. 变量

8. 编程

命令行编辑:

ctrl+a: 跳到命令行收

ctrl+e: 跳到命令行尾

ctrl+u: 删除光标至命令行首的内容

ctrl+k: 删除光标至命令行尾的内容

ctrl+l: 清屏

命令历史:

查看命令历史: history

-c: 清空命令历史

-d: OFFSET【n】清除指定行号的命令条数

eg: history 500 删除1-500条记录

eg: history 500 10 删除从第500条到510条记录

-w: 保存命令历史至历史文件中 ~/.bash_history

环境变量

PATH: 命令搜索路径

HISTSIZE: 命令历史缓冲区大小 eg:  echo $HISTSIZE

命令历史的使用技巧:

!n : 执行history中的第n条命令

!-n: 执行history中倒数第n条命令

!!:   执行上一条命令

!string: 执行命令历史中最近一个以指定字符串开头的命令

!$: 引用前一个命令的最后一个参数

ESC, . (按ESC松开,点按.) 就可以出现上一个命令的最后一个参数

eg: nano !$

命令补全

路径补全

命令别名

alias CMEALIAS=‘COMMAND [options] [arguments]‘

在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围仅为当前shell进程:

unalias

命令替换 $(COMMAND), 反引号: `COMMAND`

把命令中某个子命令替换为其执行结果的过程

eg: echo "the current directory is $(pwd)"

创建一个 file-$(date +%F-%H-%M-%S).txt

bash支持的引号:

``: 命令替换

"": 弱引用,可以实现变量替换

‘‘: 强引用,不完成变量替换

文件名通配, globbing

* 任意长度的任意字符

? 任意单个字符

[] 匹配指定范围内的任意单个字符

eg: [abc], [a-m],[a-z], [A-Z],[0-9][a-zA-Z],[0-9a-zA-z]

[:space:] 空白字符

[:punct:] 标点符号

[:lower:] 小写字母

[:upper:] 大写字母

[:alpha:] 大小写字母

[:digit:] 数字

[:alnum:] 数字和大小写字母

#man 7 glob 可以查到上述的列表

调用[[:space:]] 所有的空格字符

检测中间有空格的:

[[:alpha:]]*[[:space:]]*[[:alpha:]]

[^] 匹配指定范围之外的任意单个字符

eg: 以为非数字开头的文件 [^0-9]

练习:

1. 创建a123,cd6,c78m,c1 my, m.z, k 67, 8yu, 789等文件: 注意, 以上文件是以逗号隔开的, 其他符号都是文件名的组成部分

2. 显示所有以a或m开头的文件

ls [am]*

3. 显示所有文件名中包含了数字的文件

*[[:digit:]]* 或者 *[0-9]*

4. 显示所有以数字结尾且文件名中不包含空白的文件

*[^[:space:]]*[[:digit:]] 或者 *[[:space:]]*[^0-9]

5. 显示文件名中包含了非字母或数字的特殊符号文件

*[^[:alnum:]]*

时间: 2024-10-08 01:42:15

bash及其特性笔记的相关文章

Linux之bash shell特性

一.shell是什么? Shell 本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 如图shell是一个应用程序,是用户管理应用程序的一个接口. 二.广义上shell的分类 GUI:图形用户界面 KDE,GNOME,XFCE CLI:

bash的特性(一)

一.Shell 说到bash,首先就必须先提一下shell.Shell是什么呢?Shell是一个C语言编写的给用户提供交互的接口程序.用户的大部分操作都是通过shell完成的. 广义上Shell主要分为两类: 1.GUI图形用户界面:主要有KDE.GNOME.XFCE等 2.CLI命令行界面:bash.zsh.fish.sh.csh.tcsh等.各个发行版主要使用bash. 二.bash的特性 (一)命令别名 在linux的使用和管理过程中,将会用到大量的命令,我们可以通过命令别名来避免一些常用

权限管理2 以及bash的特性 快捷键,补全功能以及变量的类型,登录类型,脚本

权限管理: owner          group         other 属主              属组            其它 权限:read   write     execute r           w            x 文件: -r:可以使用文件查看类的命令来显示相关内容 -w:可以使用编辑器修改内容 -x:可以将其发起一个进程 目录: -r:可以使用ls命令查看目录内容的的文件信息 -w:可以创建 删除文件 -x:可以使用ls -l命令查看内容的文件信息,

linux学习之路之bash及其特性

我们知道当我们用鼠标点击,或输入一个命令,系统就玩帮我们完成一个任务,那么当我们点击一个链接时,系统由是如何知道要去完成相应的操作呢?这是因为通过shell来完成的. 那么什么是shell呢? shell就是用户和操作系统之间的一个接口,通过这个接口shell接受来自用户的命令,并调用相应的应用程序来呼叫kernel来处理相应的工作. 在linux系统上面存放着多种类型的shell,这些shell存放在/etc/shells文件里,默认RedHat使用的shell为bash 下面介绍一些bash

谢烟客---------Linux之Bash基础特性条件测试&&自定义退出状态码(6)

条件测试 判断某需求是否满足,需要由测试机制来实现. 根据命令的执行状态结果,表达不同的测试条件 1.根据id命令的执行状态结果,判断用户是否存在 [[email protected] ~]# id root uid=0(root) gid=0(root) groups=0(root) [[email protected] ~]# echo $? 0 [[email protected] ~]# id help id: help: no such user [[email protected] 

bash的特性总结

什么是bash:       shell作为用户与计算机内核交互的接口,是用户与计算机沟通的桥梁,而bash(borne again shell)是众多shell里面最为流行一种,bash作为众多shell里面的一种有着众多的特性,掌握bash的众多特性将会是我们今后学习linux必经之路.       首先介绍一下bash的特性之一       命令历史:这个特性是将用户之前执行过的命令保存到缓存当中,通过上下键以及history命令的特殊选项来方便用过顺利完成操作系统功能.键入不带任何选项的

Linux之bash的特性

bash的特性(1)常用组合快捷键:,ctrl+d Ctrl+a: 跳转至命令行首 Ctrl+e: 跳转至命令行尾 Ctrl+u: 删除命令行首至当前光标所在处之前的所有内容 Ctrl+k: 删除当前光标所在处至命令行尾的所有内容 Ctrl+l: 清屏 Ctrl+c: 中止或取消 Ctrl+z: 把当命令送至后台 Ctrl+d:回到登陆用户登陆界面 (2)命令补全:命令的补齐,参数中目录或文件的补齐 当输入命令的部分是唯一的时候按TAB键就可以不全剩下的部分 当输入命令的部分不是唯一的,按两次T

Learning The Bash Shell读书笔记(整理)

最近搞了一本书 Learning Bash Shell,发现有人已经写了阅读笔记,我就在这边整理一下 来自blog:http://blog.sina.com.cn/n4mine Learning The Bash Shell读书笔记(1)bash初识,通配符 Learning The Bash Shell读书笔记(2)重定向,管道,后台 Learning The Bash Shell读书笔记(3)特殊字符,引用,控制键 Learning The Bash Shell读书笔记(4)历史命令 Lea

5、自学——Linux的学习进度与任务【shell中bash的特性】

shell中bash的特性 shell中bash的特性 bash特性之一:命令行展开   把命令行的给定的一个特殊符号自动替换为别的字符串的机制 目录: 命令:cd [内置命令] 工作目录:当前所处的目录 cd:change directory(切换目录) cd 目标路径(不能是一个文件必须是一个目录) 所有从根起始的都是绝对路径:/文件名 基名:路径最后一个文件的名字  /x/y/z/m/n: 目标路径  /x/y/z/m: 是目录名或者路径名   两个命令: 获取路径的基名:   # bas