bash快捷键
编辑类命令
Ctrl + a : 移到命令行首 Ctrl + e : 移到命令行尾 Ctrl + f : 按字符前移 ( 右向 ) Ctrl + b : 按字符后移 ( 左向 ) Alt + f : 按单词前移 ( 右向 ) Alt + b : 按单词后移 ( 左向 ) Ctrl + xx: 在命令行首和光标之间移动 Ctrl + u : 从光标处删除至命令行首 Ctrl + k : 从光标处删除至命令行尾 Ctrl + w : 从光标处删除至字首 Alt + d : 从光标处删除至字尾 Ctrl + d : 删除光标处的字符 Ctrl + h : 删除光标前的字符 Ctrl + y : 粘贴至光标后 Alt + c : 从光标处更改为首字母大写的单词 Alt + u : 从光标处更改为全部大写的单词 Alt + l : 从光标处更改为全部小写的单词 Ctrl + t : 交换光标处和之前的字符 Alt + t : 交换光标处和之前的单词 Alt + Backspace: 与 Ctrl + w ~~ 相同 ~~ 类似 , 分隔符有些差别
重新执行命令
Ctrl + r: 逆向搜索命令历史 Ctrl + g: 从历史搜索模式退出 Ctrl + p: 历史中的上一条命令 Ctrl + n: 历史中的下一条命令 Alt + .: 使用上一条命令的最后一个参数
控制命令
Ctrl + l: 清屏 Ctrl + o: 执行当前命令 , 并选择上一条命令 Ctrl + s: 阻止屏幕输出 Ctrl + q: 允许屏幕输出 Ctrl + c: 终止命令 Ctrl + z: 挂起命令
Bang (!) 命令
!!: 执行上一条命令 !blah: 执行最近的以 blah 开头的命令 , 如 !ls !blah:p: 仅打印输出 , 而不执行 !$: 上一条命令的最后一个参数 , 与 Alt + . 相同 !$:p: 打印输出 !$ 的内容 !*: 上一条命令的所有参数 !:p: 打印输出 ! 的内容 ^blah: 删除上一条命令中的 blah ^blah^foo: 将上一条命令中的 blah 替换为 foo ^blah^foo^: 将上一条命令中所有的 blah 都替换为 foo
bash环境
编译器:
解释器:
过程式编程语言:
顺序执行
选择执行
循环执行
解释器:同时提供了编程环境
bash重要特性:变量
本地变量:只对当前shell进程有效的变量;对其他shell进程无效,包括当前shell进程的子进程;
变量赋值:向变量的存储空间保存数据
VAR_NAME=VALUE,由于bash是动态语言,所以变量无需事先声明,可以直接拿来赋值。
变量引用:${VAR_NAME} ({}经常可以被省略)
"":弱引用,里面的变量会被替换
'':强引用,里面的所有字符都是字面量,直接输出
环境变量:对当前shell进程及其子shell进程有效,对其他shell进程无效;
export VAR_NAME=VALUE:用户可自定义环境变量,bash有许多内置的环境变量
撤销变量:unset VAR_NAME
只读变量:readonly VAR_NAME
局部变量:
local VAR_NAME=VALUE:只对shell脚本中某代码片段有效;通常用于函数本地
位置变量:
$1,$2,$3...${10},${11}...:当位置变量达到2位数时需要用{}括起来
特殊变量:
$?、$!、$$、$#、$@、$0、$_ 、$-
变量查询:
set:列出当前shell进程中的所有变量
exprot、printenv、env:列出当前shell进程中的环境变量
变量命名:
1、不能使用程序中的关键字(保留字);
例如:if、for、while、case
2、只能试用数字、字母、下划线,且不能以数字开头
3、要能见名知义,
注意:Linux是严格区分大小写的,所以username≠Username≠USERNAME
(一个默认规则,一般变量名都不用大写开始,大写开始的一般都用作函数,当然这只是个良好编程的习惯,不是强制要求)
变量类型:(这里的变量指的是变量名本身而严格来说变量的值才有类型的所以说这里的定义并不严谨)
1、定义存储机制
2、定义存储空间
3、定义参与的运算类型
变量类型:
数值型:
精确数值:整数
近似数值:浮点型 什么叫浮点数?
字符型:
单个字符 char
字串 string
布尔型:
true、false
类型转换:
显示转换
隐式转换
bash的配置文件:
profile类:主要为交互式登录的用户提供配置
全局:
/etc/profile
/etc/profile.d/*.sh
用户:
~/.bash_profile
功用:
1、设定环境变量
2、运行命名或脚本
bashrc类:主要为非交互式用户提供配置
全局:
/etc/bashrc
用户:
~/.bashrc
功用:
1、设定本地变量
2、定义命令别名
登录类型:
交互式:
直接通过终端输入帐号和密码登录:
使用su -l USERNAME 或 su - USERNAME
非交互式:
su USERNAME
图形界面下打开的终端
执行脚本
通过编辑配置文件修改的配置生效:
1、退出并重新登录
2、让bash重读此配置文件
方法1:. FILE
方法2:source FILE
交互登录的用户:
配置文件读取次序:
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非交互式登录的用户:
配置文件读取次序:
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
$* | 传递给脚本或函数的所有参数。 |
$@ | 传递给脚本或函数的所有参数。 |
$# | 传递给脚本或函数的参数个数。 |
$? | 最后运行的命令的结束代码(返回值) |
$! | Shell最后运行的后台Process的PID |
$$ | Shell本身的PID(ProcessID) |
$0 | 当前脚本的文件名 |
$_ | shell启动时,设置为shell或参数中被执行的shell脚本的绝对路径名 |
$- | 显示shell使用的当前选项,与set命令功能相同 |
如果"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 | |
如果"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 | |
"$_":它也被设置为被执行的每个命令的文件全名并且被设置到这个命令执行的环境当中。当检查邮件时,这个参数保存着正在检查的邮件文件的名称。 |
bash快捷键本地变量只对当前shell进程有效
[root@www.dwhd.org ~]$ UserName="www.dwhd.org"<br /> [root@www.dwhd.org ~]$ echo $UserName<br /> www.dwhd.org<br /> [root@www.dwhd.org ~]$ bash<br /> [root@www ~]# bash<br /> [root@www ~]# echo $UserName </p> <p> [root@www ~]# pstree<br /> init─┬─abrtd<br /> ├─acpid<br /> ├─atd<br /> ├─auditd───{auditd}<br /> ├─automount───4*[{automount}]<br /> ├─bluetoothd<br /> ├─crond<br /> ├─cupsd<br /> ├─dbus-daemon<br /> ├─dhclient<br /> ├─hald─┬─hald-runner─┬─hald-addon-acpi<br /> │ │ ├─hald-addon-inpu<br /> │ │ └─hald-addon-rfki<br /> │ └─{hald}<br /> ├─irqbalance<br /> ├─master─┬─pickup<br /> │ └─qmgr<br /> ├─6*[mingetty]<br /> ├─rpc.statd<br /> ├─rpcbind<br /> ├─rsyslogd───3*[{rsyslogd}]<br /> ├─sshd───sshd───bash───screen───screen───bash───bash───bash───pstree<br /> └─udevd───2*[udevd]<br /> [root@www ~]#
[root@www.dwhd.org ~]$ echo $UserName<br /> www.dwhd.org<br /> [root@www.dwhd.org ~]$ echo "$UserName"<br /> www.dwhd.org<br /> [root@www.dwhd.org ~]$ echo '$UserName'<br /> $UserName<br /> [root@www.dwhd.org ~]$
[root@www.dwhd.org ~]$ export UserName=www-test.dwhd.org<br /> [root@www.dwhd.org ~]$ echo $UserName<br /> www-test.dwhd.org<br /> [root@www.dwhd.org ~]$ bash<br /> [root@www ~]# echo $UserName<br /> www-test.dwhd.org<br /> [root@www ~]# echo $UserName<br /> www-test.dwhd.org<br /> [root@www ~]# pstree<br /> init─┬─abrtd<br /> ├─acpid<br /> ├─atd<br /> ├─auditd───{auditd}<br /> ├─automount───4*[{automount}]<br /> ├─bluetoothd<br /> ├─crond<br /> ├─cupsd<br /> ├─dbus-daemon<br /> ├─dhclient<br /> ├─hald─┬─hald-runner─┬─hald-addon-acpi<br /> │ │ ├─hald-addon-inpu<br /> │ │ └─hald-addon-rfki<br /> │ └─{hald}<br /> ├─irqbalance<br /> ├─master─┬─pickup<br /> │ └─qmgr<br /> ├─6*[mingetty]<br /> ├─rpc.statd<br /> ├─rpcbind<br /> ├─rsyslogd───3*[{rsyslogd}]<br /> ├─sshd───sshd───bash───screen───screen───bash───bash───pstree<br /> └─udevd───2*[udevd]<br /> [root@www ~]#
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏