5_bash
bash及其特性:
shell:外壳。用户直接接入计算机的时候所使用的外壳程序
linux允许一个用户账户登录多次,而这多次登录的每一个打开的shell都是独立的互不相干的shell,它们是三个进程,每一个进程只认为当前系统所运行的程序支持它自己,也就是意味着每一个进程是不知道别的进程存在的。
进程:在每个进程看来,当前主机上只存在内核和当前进程
进程是程序的副本,进程是程序执行的实例
用户工作环境:
bash:工作环境可以是不一样的
shell,子shell,shell里可以打开shell,exit可以退出当前shell,最后一层shell退出时退出系统
shell还可以交互打开,bash下可以打开csh,csh里也可以打开ksh。
bash:
1.命令历史、命令补全
2.管道、重定向
3.命令别名
4.命令行编辑
5.命令行展开
6.文件名通配
7.支持使用变量
8.支持编程
----特性----
命令行编辑:
光标跳转:
ctrl+a:跳到命令行首
ctrl+e:跳到命令行尾
ctrl+u:删除光标至命令行首的内容
ctrl+k:删除光标至命令行尾的内容
ctrl+左右箭头可以跳跃一个单词
ctrl+l:清屏
命令历史:
bash会自动记录过去曾经执行过的命令,它会把命令保存在内存的一块缓冲区内,使用上下箭头就可以翻出来
history:查看命令历史 //重要
-c:清空整个命令历史
-d OFFSET [n]:删除指定位置的命令。-d 跟参数 删除参数那一行。-d 跟参数 跟10 删除参数那一行起10个命令
-w:保存命令历史至历史文件中 //家目录下的 .bash_history
环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小
[root@localhost ~]# echo $HISTSIZE
1000
命令历史的使用技巧:
!n:执行命令历史中的第n条命令
!-n:执行命令历史中的倒数第n条命令
!!:执行上一条命令
!string:执行命令历史中最近一个指定字符串的命令
!$:引用前一个命令的最后一个参数
Esc,.:引用前一个命令的最后一个参数
Alt+.:引用前一个命令的最后一个参数
命令补全:
tab:命令补全-在命令搜索路径下查找
路径补全-在给的打头路径下查找
tab tab显示与已输入字符的所有相关
命令别名:
alias CMDALISA='COMMAND [options] [arguments]'
[root@localhost ~]# cls //windows下cls是清屏,linux下clear是清屏
bash: cls: 未找到命令...
[root@localhost ~]# alias cls=clear
再次输入cls就是清屏 //这些定义跟变量的定义一样,它是shell的特性,因此,如果shell关闭了,再启动,这个命令别名就没有了,所以我们定义的别名,只在当前shell的生命进程周期有效
alias
不带任何参数和选项的alias命令,可以显示当前系统上定义的所有的别名
unalias
unalias CMDALIAS
撤销命令别名
[root@localhost ~]# unalias cls
[root@localhost ~]# cls
bash: cls: 未找到命令...
命令替换:
把命令中某个子命令替换为其执行结果的过程
$(COMMAND) //第一种
`COMMAND` //第二种,这里是反引号,反引号是波浪线下那一个对应的键
bash支持的引号:
``:命令替换
"":弱引用,可以实现变量替换
'':强引用,不完成变量替换
文件名通配,globbing
*:匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的任意单个字符 //特别注意的是[a-zA-Z],大小写字母都取应这样表达
[^]:匹配指定范围外的任意 单个字符
补充:
[:space:]:空白字符
[[:space:]]:所有的空白字符。里面是取值范围
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
# man 7 glob:忘记的话,查看说明
[[:alpha:]]*[[:space:]]*[[:alpha:]]:找 字母开头+空白字符+字母结尾 的通配名
[[:alpha:]]*[[:space:]]*[^[:alpha:]]:找 字母开头+空白字符+非字母结尾 的通配名
[yanhan@localhost ~]$ ls
公共 模板 视频 图片 文档 下载 音乐 桌面
[yanhan@localhost ~]$ touch abc xyz abc123 xyz123 123abc 123xyz 'a b' 'a 3'
[yanhan@localhost ~]$ ls
123abc a 3 abc xyz 公共 视频 文档 音乐
123xyz a b abc123 xyz123 模板 图片 下载 桌面
[yanhan@localhost ~]$ ls [[:alpha:]]*[[:space:]]*[[:alpha:]]
a b
[yanhan@localhost ~]$ ls [[:alpha:]]*[[:space:]]*[^[:alpha:]]
a 3
5_bash的更多相关文章
随机推荐
- Java应用之shiro
Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密. 以下是你可以用 Apache Shiro所做的事情: 1.验证用户 2. 对用户执行访 ...
- 怎么把mkv转成mp4,有什么方法
Mkv怎样转换成MP4呢?mkv是一种开放标准的自由的容器和文件格式,是一种多媒体封装格式,能够在一个文件中容纳无限数量的视频.音频.图片或字幕轨道.所以其不是一种压缩格式,而是Matroska定义的 ...
- Laravel-2
● php发邮件 参考:https://blog.csdn.net/sinat_37390744/article/details/54667794 ● ajax提交表单时防止csrf攻击 1. 在网页 ...
- 洛谷P3919 【模板】可持久化数组(可持久化线段树/平衡树)
题目背景 UPDATE : 最后一个点时间空间已经放大 标题即题意 有了可持久化数组,便可以实现很多衍生的可持久化功能(例如:可持久化并查集) 题目描述 如题,你需要维护这样的一个长度为 N 的数组, ...
- 限时免费 | 12月6日,广州保利洲际酒店,ABC Summit 2018云智峰会来了!
随着科技的迅猛发展,人工智能技术也逐渐取得了各个突破.自20世纪70年代以来,作为计算机学科的一个分支,人工智能就被列为世界三大尖端技术之一.近年来,阿尔法狗战胜世界第一柯洁,使人工智能再度迎来新的热 ...
- mysql 时间戳的使用!
时间转时间戳方法: unix_timestamp() 记录时间戳的类型: bigint 时间戳转时间的方法:from_timestamp() 感谢水哥给的截图!
- HDFS,MapReduce,Hive,Hbase 等之间的关系
HDFS: HDFS是GFS的一种实现,他的完整名字是分布式文件系统,类似于FAT32,NTFS,是一种文件格式,是底层的. Hive与Hbase的数据一般都存储在HDFS上.Hadoop HDFS为 ...
- androidj基础:从网上下载图片
一.布局文件 设置界面,添加一个ImageView,和两个Button按钮,设置其属性及id <ImageView android:id="@+id/ImageView" a ...
- hibernate重要知识点总结
一.使用注解方式-----实体和表之间的映射 配置spring的applicationContext.xml文件: <bean id="sessionFactory" cla ...
- 024-母版页MasterPage
网站的布局通常是统一的,上面是Logo.菜单条.下面是公司地址.版权声明等.如果每个页面都重复做这些功能的话:重复性劳动.一旦修改那么每个页面都要修改..Net中一般用母版(MasterPage)技术 ...