今天是生信星球陪你的第47天
你想找辆共享单车,发现满街都是别家车,没有一辆你能骑。
你想学点生信,搜了“初学者教程”,满眼尽是高大上,没有一句能看懂。
终于你跨越茫茫宇宙,来到生信星球,发现了初学者的新大陆!
bash及其特性:
发展历史:
shell翻译为外壳,是用户连入计算机后进行交互式操作的程序
广义上shell包含两类:
GUI:Gnome、KDE、Xface
CLI:最早期bsh(近似B语言) --> csh(编程方式类似C语言), 大大促进Unix流行-->ksh(比csh更强大,但需要付费) --> linux流行后也需要一个shell, 出现了bash(born again shell),兼具了csh、ksh的各种特性,且更强大 --> 最新的zsh更丰富,但不是很流行
shell特点:
shell本身就是进程。可以新建多个shell,且互不冲突。
进程:在每个进程看来,当前主机上只存在内核和当前进程。名字可以相同,但进程号各自唯一,Linux只识别进程号【就像全国重名的人很多,但身份证没有重复】
shell作为一个程序、一个外部命令(相对于内核来讲)。作为程序就能运行内部命令,因此还能继续创建子shell。因此很多时候,对子shell的设定,对父shell无效;反之亦如此。
shell可以交互打开。例如当前打开的是bash,可以在bash中敲ksh,在ksh中又可以敲zsh…
bash特性
命令行编辑:
光标跳转:
Ctrl+A:跳到命令行首
Ctrl+E:跳到命令行尾
Ctrl+U:删除光标至命令行首的内容
Ctrl+K:删除光标至命令行尾的内容
Ctrl+L:清屏
命令历史:history
删除:
-c : 清空全部历史
-d:删除指定位置【要删除指定位置向下n个,在-d后加n】
调用:
!n: 执行第n条命令
!-n:执行倒数第n条
!!:执行上一条
!string: 执行命令历史中最近一个以指定字符串开头的命令
: 引用上一个命令的最后一个参数【也可以用】
命令补全:
输入的前几个字符是在PATH中能唯一识别的,敲一次tab就能打出来;
如果不能,敲两次tab会列出所有和输入字符相关的命令
命令别名alias:
bash只是一个程序,当前所有的设置将在退出这一个程序后失效
若要长期使用alias,可将相应的alias命令存放到bash的初始化文件中
方法:alias 别名='原命令 -选项/参数'
撤销:unalias 别名
\别名:适用于别名和原命令一样,只是添加了一些参数,现在想使用原命令
命令替换:
把中的子命令替换为前面命令的执行结果,举两个例子就能懂
例如要打印当前路径:
echo "The current dir is $(pwd)"
例如要在当前目录下新建一个包含年月日时分秒的文件
touch ./file-$(date +%F-%H-%M-%S).txt
命令行展开
用命令行展开特性一步完成需要分开成多步完成的操作
使用将相应的参数括起来,括号中的参数以逗号分隔, 例如:
/tmp/ #生成/tmp/x和/tmp/y
mkdir #生成1-5为名的文件夹
mkdir -p / #在1-5的文件夹里再生成1-5的文件夹
文件名通配 globbing
快速匹配到你想要的文件
例如: 新建6个文件
目的:
1. 找出a开头的文件:
【*:匹配任意长度的任意字符】
2. 找出第二个字母是y的文件【?:任意单个字符】
【如果找第三个字母是y的,只需要】
3. 以字母开头,数字结尾,中间不限ls [a-zA-Z] * [0-9]
[ ]:匹配指定范围内的任意单个字符
:匹配指定范围之外的任意单个字符
非数字 非大小写字母
:大小写字母 =
:空白字符
:标点符号
:小写字母
:大写字母
:数字
:数字和大小写字母 =
【练习:】
创建如下文件:xi、jie6、u56m、my、m.r、t 94、8%u、567【注意:t 94文件中间有空格!】
显示以a或m开头的文件;
显示文件名中包含数字的文件;
显示以数字结尾且文件名中没有空白的文件;
显示文件名中包含非字母或数字的特殊符号文件
初学生信,很荣幸带你迈出第一步。
领取专属 10元无门槛券
私享最新 技术干货