第四章 Bash Shell基础应用

一、Bash Shell 介绍

1.什么是bash shell?

是一个命令解释器   它在操作系统的最外面  
负责用户与内核进行交互的一种接口   将用户输入的命令翻译给操作系统,并将处理后的结果输出到屏幕

2.bash shell作用

实现对linux系统进行管理,包含: 
文件管理     权限管理     用户管理     磁盘管理     网络管理     软件管理    等等	

3.Bash shell的执行方式

1.命令方式    		效率低    适合少量的工作  	
2.脚本方式 			效率高    适合复杂的工作  

4.远程连接之后的命令行

Last login: Wed Jun 10 19:50:59 2020 from 10.0.0.1
[root@sh-jindada ~]#

二、命令行提示符介绍

1.超级管理员命令行提示符

[root@sh-jindada ~]#   #超级管理员命令行提示符     #这一行字符表示什么意思  

[]			#没有什么特殊的含义   就是起到一个括号的作用  把里面的内容看做是一个整体  

root		#表示当前登录的用户    我是谁     root本身又是超级管理员  拥有最大的权限  

@			#分隔符

sh-jindada		#主机名  系统主机名    可以修改,但是是唯一的  所有用户的主机名都是他  

~			#表示当前的所在位置   我在哪里  目录    ~ 本身表示当前用户的家目录    /root   /home/xx

#			#命令行结尾提示符    # 表示是超级管理员的命令行提示符   $  是普通用户命令行提示符 

2.普通用户命令行提示符

[user@sh-jindada ~]$   	#普通用户命令行提示符 

ps:Linux命令行提示符都是有PS1的变量所控制的  

3.给命令行加上颜色

[root@sh-jindada ~]# echo 'PS1="\[\e[37;40m\][\[\e[32;1m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\[\e[32;1m\]\\$ \[\e[0m\]"' >>/etc/profile
[root@sh-jindada ~]# source  /etc/profile

三、Linux命令组成结构

1.命令在命令行上面的操作语法

# 1.语法格式(中括号中的内容是可有可无的,不是必须要有的):
命令      [选项]      [参数/路径]

command    options	 arguments
  
命令    #每个命令都有自己的功能   你要干什么   你要针对谁做些什么    最主要的,是整条命令的主体
  
  
选项	#表示命令的其他的扩展功能    单独指定的命令的其他功能	 实现命令的具体功能 
  
  
参数	#文件 目录   你要对谁操作    文件或者目录都是用路径来表示的
  
  
# 2.示例:
[root@sh-jindada ~]# ls			#命令 		没有指定参数时,默认针对是当前所在目录  
anaconda-ks.cfg

[root@sh-jindada ~]# ls -l		#命令+选项  
total 4
-rw-------. 1 root root 1497 Jun  9 20:00 anaconda-ks.cfg

[root@sh-jindada ~]# ls -l /root	#命令+选项+参数
total 4
-rw-------. 1 root root 1497 Jun  9 20:00 anaconda-ks.cfg

[root@sh-jindada ~]# ls /root		#命令+参数  
anaconda-ks.cfg


# 3.选项:
以短横岗 “-”  短格式选项  单个字符   例如:  -l

以长横岗 “--”  长格式选项  多个一组字符  例如: --all   这组字符串是一个整体 有些特殊含义 

多个短横岗  指定多个功能    -a  -l  -i    ====  -ali   使用一个短横岗  


# 4.注意事项:
1. 中括号表示可选,命令的选项和参数是可选的,不是必须要有的	
2. 选项表示的是命令的不同功能  	
3. 参数是命令要操作的对象,这个对象可以是文件或者目录	
4. 命令、选项、参数两两之间至少要有一个空格,一个完整的命令或者选项和参数不能有空格的	
5. 命令必须要放在开头,选项和参数在有些命令的时候,位置是可以发生变化的  	

2.执行命令的时候报错

[root@sh-jindada ~]# l s
-bash: l: command not found			#命令找不到  

#命令写错了,根本没有这个命令    

#系统中没有安装这个命令,需要安装才能使用 

[root@sh-jindada ~]# ls /roo
ls: cannot access /roo: No such file or directory	#没有这个文件或者目录 

#文件或者目录名写错了

#路径写错了  

#相信电脑,电脑是不会出错的,如果电脑的出现结果跟你想象的不一样,那么一定是你错了,不要那么固执认为自己就是对的

四、Bash Shell 特性

1.Tab键补全

# 1.命令补全 
[root@sh-jindada ~]# user
useradd     userdel     usermod     usernetctl  users	

[root@sh-jindada ~]# s
Display all 220 possibilities? (y or n)		#有很多命令,一页显示不全

# 2.选项补全
yum install  -y  bash-completion		#需要安装补全软件  

[root@jindada ~]# ls --
--all                                      --indicator-style=
--almost-all                               --inode
--author                                   --kibibytes
--block-size=                              --lcontext

[root@jindada ~]# systemctl  st
start   status  stop   

# 3.参数补全  路径补全 
[root@sh-jindada ~]# ls /r
root/run/

2.命令行常用快捷键

命令行常用快捷键 特殊含义
Ctrl键 + c #取消当前的操作
Ctrl键 + d #退出当前用户的登录
Ctrl键 + a #把光标从当前位置移动到命令行的行首
Ctrl键 + e #把光标从当前位置移动到命令行的行尾
Ctrl键 + u #把光标从当前位置到行首的内容进行剪切或者删除
Ctrl键 + k #把光标从当前位置到行尾的内容进行剪切或者删除
Ctrl键 + y #粘贴你所剪切的内容
delete键 #从前往后删除一个字符
Ctrl键 + w #删除当前位置至上一个空格的字符 删除一组字符串
Ctrl键 + 左方向键 #向左移动一组单词 以空格或者特殊字符作为分隔符
Ctrl键 + 右方向键 #向右移动一组单词
Ctrl键 + l #清屏 clear 清除当前的窗口内容
Ctrl键 + r #查找历史命令 搜索最近的一次命令
Ctrl键 + s #锁屏 锁屏之后,也是可以继续输入命令和操作命令,只是你看不到
Ctrl键 + q #解锁
Esc键 + . #获取上一条命令最后的参数 或者最后面的内容 以空格分隔符
!! #执行上一条执行过的命令
!ls #执行最近一次以ls开头的命令

3. 历史记录

# 1.命令
history		#显示所有执行过的命令  
	
!id			#历史记录中某个命令的历史ID  执行这个id所对应的命令  
	
# 2.选项:
-d	ID		#删除指定的ID信息  
	
-w			#将你当前shell窗口执行的命令保存到默认的文件  ~/.bash_history
	
-c			#清除所有命令的历史记录 

4. 命令别名

# 1.查看系统自带的别名
[root@sh-jindada ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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'

# 2.如何设置别名
别名的名称不能跟系统中命令名称有冲突 
[root@sh-jindada ~]# alias   network='ping -c1 baidu.com'


# 3.检查别名
[root@sh-jindada ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias network='ping -c1 baidu.com'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

# 4.验证别名 
[root@sh-jindada ~]# network 
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=31.2 ms

--- baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 31.235/31.235/31.235/0.000 ms
[root@sh-jindada ~]# 

# 5.取消别名
[root@sh-jindada ~]# unalias  network
[root@jindada ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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'

# 6.让别名永久生效 
把设置别名的命令写入到下面的文件中
[root@jindada ~]# ls  /etc/bashrc 
/etc/bashrc
[root@jindada ~]# ls  ~/.bashrc 
/root/.bashrc

[root@jindada ~]# alias  network='cat  /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@jindada ~]# network
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=025bb6de-7ddd-41e5-87c5-16724d3c293e
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.100
PREFIX=24
GATEWAY=10.0.0.2
DNS1=223.5.5.5
IPV6_PRIVACY=no


# 7.临时取消别名 
\		#取消特殊字符的特殊含义   取消转义    撬棍 

[root@jindada ~]# \network
-bash: network: command not found

# 8.实现永久生效 
[root@jindada ~]# echo  "alias  network='cat  /etc/sysconfig/network-scripts/ifcfg-eth0'"  >>/etc/bashrc

#将其配置文件重新加载生效 
[root@jindada ~]# source  /etc/bashrc


#退出重新登录测试  依然生效  


#取消永久生效 

[root@jindada ~]# sed  -i   '/network/d'  /etc/bashrc

#退出重新登录 

五、获取命令的帮助

获取命令 含义
man 获取指定命令的帮助
help 只能查看系统内置命令
命令 +‘--help' 获取命令选项的帮助
info

六、互联网模式查找命令

1.https://man.linuxde.net/
	
2.https://liunx.web3.xin/
	
3.http://linux.51yip.com/
posted @ 2020-07-06 19:53  年少纵马且长歌  阅读(188)  评论(0编辑  收藏  举报