Bash这个Shell,了解一下概念

BoumeAgain Shell(bash),是一个Bourne Shell的增强版本,基准于GNU架构下发展出来。

GNU是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU’s Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的创始人,理查德·马修·斯托曼,将GNU视为“达成社会目的技术方法”。
作为操作系统,GNU的发展仍未完成,其中最大的问题是具有完备功能的内核尚未被开发成功。GNU的内核,称为Hurd,是自由软件基金会发展的重点,但是其发展尚未成熟。在实际使用上,多半使用Linux内核、FreeBSD等替代方案,作为系统核心,其中主要的操作系统是Linux的发行版。Linux操作系统包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux(见GNU/Linux命名争议)。

合法的shell需要被写入 /etc/shells ,某些服务在运行过程中,会在此检查使用者能够使用的shell

[root@student01 etc]# cd /etc/
[root@student01 etc]# cat -n shells
     1	/bin/sh  ## 已经被 /bin/bash替代
     2	/bin/bash ##Linux的默认Shell
     3	/sbin/nologin ##用来混淆视听的怪怪的shell 
     4	/bin/dash 
     5	/bin/tcsh  ## 整合C Shell,提供更多的功能
     6	/bin/csh  ##已经被 /bin/tcsh 所取代

以 /etc/passwd 为例,可以看到以下内容,最后一个数据就是对应账号登录后可以获得的默认shell

[root@student01 etc]# cat -n /etc/passwd
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

Bash shell功能

1 命令编辑能力 history

主文件夹内 .bash_history中会存储之前登录用过的1000个指令,本次登录的指令则会记录在内存中,只有登出才会持久化到.bash_history

优点 :记录足迹,但是要小心骇客入侵获取与系统有关的命令,例如直接输入mysql的密码在命令行上

2 命令与文件补全功能 tab

一次tab补全命令,两次tab显示备选文件

3 命令别名设置功能 alias

[root@student01 ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

别名设置办法:

[root@student01 ~]# alias la='ls -al'
[root@student01 ~]# la
total 248
dr-xr-x---. 27 root root  4096 Nov 17 09:26 .
dr-xr-xr-x. 22 root root  4096 Nov 17 08:32 ..
......

4 工作控制、前景背景控制 job control、foreground、background

使用前、背景的控制可以让工作进行的更为顺利!

至于工作控制(jobs)的用途则更广, 可以让我们随时将工作丢到背景中执行!而不怕不小心使用了 [Ctrl] + c 来停掉该程序。此外,也可以在单一登陆的环境中,达到多任务的目的。

5 程序化脚本 shell scripts

将系统管理常需要下达的连续指令写成一个文件,该文件可以通过对谈互动式的方式来进项主机的侦测工作。

借由shell提供的环境变量和相关指令来设计程序

6 万用字符 Wildcard

例如 *

[root@student01 bin]# ll /usr/bin/X*
lrwxrwxrwx. 1 root root       4 Oct  5  2015 /usr/bin/X -> Xorg
-rwsr-xr-x. 1 root root 2274256 Nov 23  2013 /usr/bin/Xorg

常用指令介绍

type 查询指令是否为Bash shell的内置命令

[root@student01 bin]# type ls  
ls is aliased to `ls --color=auto'	#列出ls主要使用状态
[root@student01 bin]# type -t ls
alias								#列出ls执行时的依据
[root@student01 bin]# type -a ls
ls is aliased to `ls --color=auto'	#最先使用aliase
ls is /bin/ls						#外部指令的位置在 /bin/ls
[root@student01 bin]# type -p ls	#如果是外部指令,则会显示完整文件名

指令下达的快速编辑

\ + [Enter] - 折到下一行

[ctrl] + u - 从光标处向删除指令串

[ctrl] + u - 从光标出向删除指令串

[ctrl] + a - 让光标移动到整个指令串的最前面

[ctrl] + e - 让光标移动到整个指令串的最后面

猜你喜欢

转载自blog.csdn.net/weixin_42712876/article/details/84227651
今日推荐