【Linxu学习004】Bash Shell 相关

一、bash

1.bash也是一个程序,该程序什么时候被调用?

用户登陆、使用su命令切换用户、直接执行bash命令都会打开一个新的bash,这种shell称之为子shell,子shell可以不和父shell类型相同,比如,子shell可以是cshell,可以是kshell,也就是说子shell的类型任意。

2.如何查看当前的shell类型

echo $SHELL

3.如何查看bash的具体使用方法

man bash

更加详细的信息:http://pubs.opengroup.org/onlinepubs/9699919799/

二、bash环境中的命令行编辑

1.光标跳转

ctrl+a:光标跳转到命令行首

ctrl+e:光标跳转到命令行尾部

ctrl+d:删除当前光标所在字符

ctrl+u:删除当前光标到行首的所有字符

ctrl+k:删除当前光标到行尾的所有字符

2.清屏方法

使用ctrl+l快捷键或者使用命令

clear

3.命令补全和路径补全

使用tab键能够实现命令补全或者路径补全,但是二者的实现原理不一样:命令补全是在PATH环境变量下找相应的命令,但是路径补全是在打头的路径下进行搜索的。

三、命令历史相关

1.怎样查看命令历史

history

2.history相关

(1). history是内部命令(type命令查看),需要使用help查看,不能使用man查看。

(2). 使用

echo $HISSIZE

查看能够缓存的历史记录数量。默认是1000条。

(3). history命令选项

histroy
           -c            #清空历史记录
           -d 500        #删除第500条记录
           -d 500 10     #删除第500条记录到之后的十条记录之间的所有记录
           -w            #写入到配置文件中~/.bash_history

(4). 如果用户正常退出的话,历史记录会被保存到~/.bash_history中,下次登陆可以继续使用,否则不被保存;可以使用history -w手动保存当前历史记录到配置文件~/.bash_history

3.执行某条历史记录中的命令

!n:执行第n条命令

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

!!:执行最近一条命令

!string:执行以string开头的最后一条命令

!$:引用自后一条命令使用的最后一个参数,可以使用alt+.快捷键或者按下ESC键不放再按下.

四、命令别名

使用别名能够使得用户键入命令的效率更高,给命令其别名的目的就是“化繁为简”,将复杂而且经常使用的命令使用一个简单的命令代替。

1.查看所有别名

alias

2.起别名

alias cls=clear

3.解除别名绑定

unalias cls

4.如何调用命令本身而不是别名

使用\COMMAND即可。

五、命令引用

命令引用的目的就是将某个命令的执行结果作为另外一个命令的执行参数。

命令引用的方式就是$()或者使用``

1.显示当前目录(自定义)

[email protected]:~$ echo "this is $(pwd) dir"    #这里必须使用双引号
this is /home/kdyzm dir

2.显示当前文件夹中所有文件的文件类型列表

[email protected]:~$ file $(ls)
a.txt:            empty
b.txt:            ASCII text
datastructure:    directory
Desktop:          directory
Documents:        directory
Downloads:        directory
examples.desktop: UTF-8 Unicode text
Music:            directory
Pictures:         directory
ProgramFiles:     directory
Public:           directory
SoftWare:         directory
Templates:        directory
Videos:           directory

3.动态创建以当前时间为名字的文件

[email protected]:~$ touch "file-$(date +‘%Y-%m-%d_%H:%M:%S‘).txt"
[email protected]:~$ ll file*
-rw-rw-r-- 1 kdyzm kdyzm 0  1月 28 17:27 file-2016-01-28_17:27:45.txt

六、文件名通配glob

1.通配符

*    :匹配任意长度的任意字符

?    :匹配长度为1的任意字符

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

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

2.通过man 7 glob命令查看glob中的特殊通配符号

[:alnum:]  [:alpha:]  [:blank:]  [:cntrl:]
[:digit:]  [:graph:]  [:lower:]  [:print:]
[:punct:]  [:space:]  [:upper:]  [:xdigit:]
    so  that  one can say "[[:lower:]]" instead of "[a-z]", and have things
work in Denmark, too, where there are three letters  past  ‘z‘  in  the
alphabet.  These character classes are defined by the LC_CTYPE category
in the current locale.

3.示例

(1). 显示所有字母开头,字母结尾,中间有空白的所有文件:

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

(2). 显示所有以任意字符开头,以数字结尾,中间没有空格的文件

错误的写法:

ls *[^[:space:]]*[[:digit:]]

实际上只是使用通配符时解决不了该问题的,需要使用正则表达式解决该问题,存档待续。

时间: 2024-10-11 01:35:54

【Linxu学习004】Bash Shell 相关的相关文章

bash shell相关命令记录(2)---注释、字符串、数组

参考链接http://c.biancheng.net/cpp/view/7000.html 1.shell注释 以“#”开头的行就是注释,会被解释器忽略.sh里没有多行注释,只能每一行加一个#号. 如果在开发过程中,遇到大段的代码需要临时注释起来,过一会儿又取消注释,怎么办呢?每一行加个#符号太费力了,可以使用 : << ! 语句1 语句2 语句3 语句4 ! 或者 : ' 语句1 语句2 语句3 ' 2.字符串 字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引

马哥linux学习(bash shell学习)

Shell原理 在操作系统中,最底层是硬件,而硬件上面是内核(kemel),内核上面是库,库上面是应用程序,在众多的应用程序当中,有一个shell的应用程序,俗称外壳,用户是无法直接和内核交互的,那么就必须借助shell来实现系统的调用.图: shell是工作在操作系统的最外层,而内核(kernel)则是工作在操作系统的最里层,由于内核听不懂人类语言,而我们也记不住内核语言,而两者的沟通就需要shell的支持了. 2.Bash:编程 程序控制结构,调用机器上命令程序文件进行程序编写: 外部命令:

Bash shell 相关特性

bash 基础特性之:命令历史 命令历史:shell进程会在会话中保存此前用户提交执行过的命令: 查看历史命令: ~]# history 定制history的功能,可通过环境变量来实现 HISISIZE:shell进程可保留的命令历史条数 HISIFILE:持久保存命令历史的文件 (.bash_history) HISIFILESIZE:命令历史文件的大小 用法: -c:清空当前历史命令: -a:将历史命令缓冲区中命令写入历史命令文件中: -r:将历史命令文件中的命令读入当前历史命令缓冲区: -

Shell学习之Bash变量详解(二)

Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这种变量中主要保存和系统操作环境相关的数据. 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的. 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的. Bash变量注意点 1.变量名称可以由字母.数字和下划线组成,但是不能以数字

bash shell学习-基础 (笔记)

When you hoist the sails to cross the sea, you willride the wind and cleave the waves. "长风破浪会有时,直挂云帆济沧海" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) 一.认识shell 1.什么是shell shell是一种“提供使用者界面”来实现用户与内核通信的软件(命令解释器) 2.为什么要学习shell ①命令行界面的shell在各大Linux发行版中都一样: ②远程管理时命令行界

Linux 学习作业:认识bash shell

本次记录bash shell基础知识及bash变量功能,bash操作环境的配置内容,涉及解释什么是shell?.bash变量的定义和引用.怎样读入与设定bash的环境配置文件等. ? Shell的基本概念 1. Shell是什么? Linux系统由3个重要部分组成: w 内核(kernel) w Shell w 应用程序 内核真正在控制着计算机系统上的各种硬件与软件.功能包括进程管理.内存管理.设备管理.文件系统管理等等. 内核相当抽象,使用者不易和它直接通信,因此需要一个良好的接口,使得操作时

&lt;LINUX &gt;bash shell 入门 --linux学习笔记

首先说下我个人对于shell的理解,我觉得shell是一种通过各种控制语句将linux命令进行集合实现批处理的一种脚本语言. shell编程入门其实很简单,语法知识并不多,但是高级shell编程就很难,因为shell是用户和linux之间的桥梁,要编写高质量的shell脚本,就需要用户对linux有很全面的认识. 这里我们只分析shell脚本的语法知识,如想透彻的学习linux还需多努力. shell结构       1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建she

bash shell学习-shell script基础 (笔记)

A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版)  Linux Shell脚本攻略     Linux程序设计(第四版) 一.什么是shell script 1.什么是shell script 简单来说,shell script(程序化脚本)是利用shell功能所写的一个“程序”,它拥有自己的语法特性 2.为什么要学shell script 对于一个初学者来说,我觉得就那

bash shell学习笔记(一)—— 常用命令

一.基本的bash shell命令 1.默认bash shell 提示符是美元符号($); 2.bash手册 使用man命令来访问存储在Linux系统上的手册页面,如: bogon:~ Mac$ man kill KILL(1)                   BSD General Commands Manual                  KILL(1) NAME kill -- terminate or signal a process SYNOPSIS kill [-s sig