bash特性

xmtxh      2022-02-17     623

关键词:

Bash
Linux系统终端概述
图形化
       服务器终端切换:Ctrl + Alt + F1 _ F6
       虚拟机终端切换:Ctrl + Shift +Alt + F1 _ F6

字符终端
       服务器终端切换:Alt + F1 _ F6
       pkill -9 -t tty2
             -t:终端名称
            -9:强制

2.Linux系统和Bash管理
Linux提供的用户界面
       字符界面
              shell
                     bash(默认)
[root@oldboy ~]# echo $SHELL #查看当前系统使用的shell版本(默认是bash)
/bin/bash

[root@oldboy ~]# cat /etc/shells #查看Linux当前系统支持的shell版本有哪些
sh -->bash的软(符号)链接
bash
nologin

/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

图形化界面
       gnome
       kde

date
查看时间
一般使用+格式的方式来显示我们所需要的时间格式
[root@oldboy ~]# date +%F_%R
2019-10-15_14:37
[root@oldboy ~]# date +%F-%R
2019-10-15-14:38
[root@oldboy ~]# date +"%F %R"
2019-10-15 14:39

touch log_`date +%F_%R`.bak
touch log_$(date +%F_%R).bak

whoami 查看当前位置

Bash特性:命令补全
通过上下方向键来调取过往执行过的Linux命令;
命令或参数仅需输入前几位的可以用Tab键补全

Bash特性:命令快捷键
终端快捷键的使用可以帮助我们大大提升效率

Ctrl + a #光标跳转至正在输入的命令行的首部 home
Ctrl + e #光标跳转至正在输入的命令行的尾部 end
Ctrl + c #终止前台运行的程序
Ctrl + d #在shell中,ctrl-d表示推出当前shell。
Ctrl + z #将任务暂停,挂至后台
Ctrl + l #清屏,和clear命令等效。
Ctrl + k #删除从光标到行末的所有字符
Ctrl + u #删除从光标到行首的所有字符
Ctrl + r #搜索历史命令, 利用关键字

//在命令行前加“#”,则该命令不会被执行

History查看系统命令历史,追溯之前发生情况

[root@oldboy ~]# echo $HISTSIZE
1000
[root@oldboy ~]# HISTSIZE=200
[root@oldboy ~]# echo $HISTSIZE
200

命令选项:
       -w 保存命令历史到历史文件
       -c 清空命令历史记录,不会情况文件
       -d 删除命令历史的第N条行
            !可以调用之前的命令
                  !num
                            调用第num行的命令历史
                   !!
                            执行上一条命令
                   !cmd
                            调用离当前最近以该cmd开头的命令
                   !$/按住ESC,松开按.
                            执行上条命令的参数

命令别名
alias
       alias cmd=‘cmd ‘
       unalias cmd
注意:
       1.使用alias命令就可以查看当前生效的别名有哪些
       2.使用unalias 接别名名称 取消
       3.alias只对当前环境临时生效
       4.如需永久生效,需将定义别名的命令写入登录配置问价
              ~/.bash_profile 只对当前用户生效,局部配置文件
              ~/.bashrc 只对当前用户生效,局部配置文件
              /etc/profile 对所有用户生效,全局配置文件
              /etc/bashrc 对所有用户生效,全局配置文件

[root@oldboy ~]# alias ifconfig=‘ifconfig ens33‘


命令流程
当我们执行一个命令,整个命令执行流程如下 :
1.判断命令是否通过绝对路径执行
2.判断命令是否存在别名
3.判断用户输入的是内部命令还是外部命令
      内部命令:shell程序自带的命令
      外部命令:在系统PATH变量的某个路径下的可执行程序
      使用type命令检测用户输入的命令属于内部命令还是外部命令
4.内部命令直接执行,外部命令检测是否存在缓存
5.检测PATH路径,有执行,无报错

//表缓存命令所在位置
[root@oldboy ~]# hash
命中 命令
3 /usr/bin/locate
1 /usr/bin/ls
1 /usr/bin/find

//已缓存命令,如果移动位置会导致无法找到该命令
[root@oldboy ~]# mv /usr/bin/find /tmp/
[root@oldboy ~]# find
-bash: /usr/bin/find: 没有那个文件或目录

//删除缓存过的find命令,即可执行
[root@oldboy ~]# hash -d find
[root@oldboy ~]# find

//当然可以清空缓存表
[root@oldboy ~]# hash -r

//命令缓存hash需要注意如下情况
1.如果执行外部命令1次就会对该命令进行缓存
2.如果将命令移动了位置
a.使用绝对路径执行
b.删除hash表的缓存指令

总结,当我们执行了一个Ping命令之后,整个命令执行的流程步骤如下:

1.检查执行的是否是绝对路劲
2.检查该ping命令是否存在别名
3.检查该ping命令是内部命令还是外部命令
4.如果是内部命令直接执行,如果是外部命令
5.检测该命令是否有缓存,如果没有,查找PATH变量
6.检查PATH路径知道查到该命令然后执行
7.如果没有找到该命令则返回错误。command not found

路径展开
思考:在/tmp路径下创建以下目录
etc/init.date
etc/sysconfig
usr/lib
usr/bin
usr/include
var/spool
var/run
proc
sys
bin

mkdir -pv /tmp/{etc/{init.d,sysconfig},usr/{bin,lib,include},var/{spool,run},proc,sys,bin}

[root@oldboy ~]# tree /tmp/
/tmp/
├── bin
├── etc
│   ├── init.d
│   └── sysconfig
├── proc
├── sys
├── usr
│   ├── bin
│   ├── include
│   └── lib
└── var
├── run
└── spool

转义符
反斜杠():使反斜杠后面的一个变量变为字符串
单引号(‘‘):转义其中所有的变量为单纯字符串
双引号(""):保留其中的变量属性,不进行转义处理
反引号(``): 把其中的命令执行返回结果

//将特殊字符转换为正常字符
[root@oldboy ~]# echo "shop is $500"
shop is 00
[root@oldboy ~]# echo "shop is $500"
shop is $500
//转义其中特殊字符为普通字符串
[root@oldboy ~]# echo ‘shop is $500‘
shop is $500

//使用$()实现命令替换
[root@oldboy ~]# echo "The dir is $(pwd)"
The dir is /root
//使用``实现命令替换
[root@oldboy ~]# echo "The dir is `pwd`"
The dir is /root

//转义其中所有的变量为单纯的字符串
[root@oldboy ~]# touch file-`date +%F-%H-%S`
[root@oldboy ~]# ls
anaconda-ks.cfg file-2019-10-17-22-54 log_2019-10-15_14:47.bak

[root@oldboy ~]# touch ‘file-`date +%F-%H-%S`‘
[root@oldboy ~]# ls
file-`date +%F-%H-%S`

[root@oldboy ~]# cat >>.bashrc <<EOF
> echo "server ip is `ifconfig| awk ‘NR==2{pring $2}‘`"
> EOF

 

bash特性小结&bash变量

时间就是金钱效率就是生命一、bash编程 |---------------||应用           ||-----------|   ||壳|库函数 |    | //可以直接针对系统调 查看详情

bash特性

bash的基础特性(1): (1)命令历史history系统中history环境变量:HISTSIZE:命令历史记录的条数;HISTFILE:~/.bash_history;HISTFILESIZE:命令历史文件记录历史的条数; history-dOFFSET(具体删除第几条历史记录)history-c 清空所有... 查看详情

bash基础特性

...的环境变量可以通过ehco$#查看#为环境变量 bash的基础特性:(1)命令历史 history 环境变量: HISTSIZE:命令历史记录的条数 HISTFILE;~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 history-doffset删除某条历史命令 his... 查看详情

bash的特性

bash的特性Bash(GNUBourne-AgainShell)是许多Linux发行版的默认Shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh、csh、ash、bsh、ksh等等,ShellScript大致都类同,当您学会一种Shell以后,其它的Shell会很快就上手,大多数的时候,一个Shel... 查看详情

bash基础特性命令引用

...D` 这是反引号:就是ESC键下面的那个反引号bash的引用特性: 引用 强引用:‘‘单引号弱引用:""双引号命令引用:$(COMMADN) bash特性:快捷键 ctrl+a:跳转至命令行首ctrl+e:跳转至命令行行尾ctrl+u:删除行首至光标... 查看详情

bash特性

bash特性一、命令别名:(自定义命令) 用alias命令查看 alias命令可以用来定义和现实命令的别名 但是使用alias命令定义的别名,其生命仅为当前shell的生命期 对于每个用户来说,都有一个私有的bash文件,用于保... 查看详情

bash特性之五

一、bash特性之四,命令别名alias,shell的内建命令,显示当前系统所有的命令别名alias别名="原始命令"ualias别名撤销已经定义的别名。命令使用命令本身,而非命令别名。二、bash特性之五,globbing,统配符 *:匹配任意长度的... 查看详情

bash及其特性

...:Gnome,KDE,XfaceCLI:sh,csh,ksh,bash(兼具sh、csh等各种特性,功能更强大,且遵循开源协议),tcsh,zsh进程:在每个进程看来,当前主机上只存在内核和当前进程进程是程序的副本,进程是程序的执行过程用户工作环境:窗... 查看详情

bash及其特性

bash及其特性:        1.程序只有一个,但可以有多个进程,在每个进程来看,当前主机上只存在内核与当前进程          2.进程是程序的副本,进程是程序的执行实例 ... 查看详情

bash特性及用户和组管理

bash特性及用户和组管理 上篇博文中总结了bash的一些特性,这次做补充: bash变量 变量:一段由名称的连续的内存空间;这段内存空间的名称,就是变量名,在这   段内存空间存储数据 就是变量值;&nb... 查看详情

bash特性

BashLinux系统终端概述图形化    服务器终端切换:Ctrl+Alt+F1_F6    虚拟机终端切换:Ctrl+Shift+Alt+F1_F6 字符终端    服务器终端切换:Alt+F1_F6    pkill-9-ttty2& 查看详情

bash基础特性

对BASH做一下总结一、命令历史特性: historyshell进程会其会话中保存此前用户提交执行过的命令history是shell的内置命令650)this.width=650;"src="http://s5.51cto.com/wyfs02/M00/78/1F/wKiom1Z2ZjWSJrjdAAA9gP4LoMo818.jpg"title="未命名图片.jpg"width="400 查看详情

08-bash基础特性及基础命令

bash的基础特性  (1)命令历史 history HISTSIZE:命令历史记录的条数: HISTSIZE:~/.bash_history HISTFILESIZE:命令历史文件记录的条数: history-dOFFSET   -c history#:显示历史最近的#条命令: -a:手动追加当前会话... 查看详情

bash的特性之多命令执行

bash的特性之多命令执行  一上午的时间学习了bash的特性之多命令执行,和对shell脚本编程的初步学习。bash的特性的多命令执行的顺序执行结构就是把几个命令用分号隔开。而选择执行结构有与、或、非三种运算法则。shel... 查看详情

bash的基本特性

Bash基本特性: 首先得从逻辑运算来说起: 与运算 && 两个判断条件都必须为真时,状态才为真,否则都为假,在此1是真,0是假 1&&1=1 1&&0=0 0&&1=0 0&&0=0 或运算|| 两个判断条件中都必须... 查看详情

bash的特性

                                 &n 查看详情

bash相关特性

   一、bash的快捷键:      C:Ctrl键;M:Alt键;E:ESC键      C-l:清屏,相当于clear命令;      C-a:将光标跳转至命令行编辑模式的行首;&nb 查看详情

bash的工作特性及命令状态返回查询

bash的基础特性:命令的执行状态结果        命令执行的状态结果:        bash通过状态返回值来输出此结果:         &nb 查看详情