linux图形界面注销时不调用.bash_logout吗,Linux基础 Bash Shell特性

1 一些内置命令

echo 输出字符串并换行  -n 不换行 -e 启用转义字符

printf 类似C语言的格式输出

read 读取变量 -p STRING 显示提示 -s 不回显 -t 输入时限

source FILE 或者一个点[.]代替source 读取文件中的脚本并执行

hash 检查命令缓存和击中次数

type CMD 检查命令类型并显示信息

-t 仅显示命令类型[file|alias|butltin]

-a 搜索$PATH 显示CMD命令

-p 如果CMD为外部命令 才显示完整文件名

ulimit [options] [配额]

-a 显示所有限制额度

-H 严格设置 用户无法超出此值

-S 警告设置 用户超出此值会被警告

-c 限制core file最大容量[进程发生错误时生成的文件]

-f 创建的最大文件容量

-d 最大断裂内存(segment)的容量

-l 锁定(lock)的内存量

-t 可使用的最大CPU时间 单位为秒

-u 用户可使用的最大进程(process)数量

2 bash变量

env 列出所有环境变量

$_ 上一次命令的最后一个参数或者命令本身

$TERM 终端环境类型

$SHELL shell类型

$HISTSIZE 命令历史条目数

$USER 用户名

$MAIL 邮箱目镜

$PATH 命令搜索路径

$PWD 当前目录(pwd命令取出)

$LANG 语言和编码

$HOME 家目录

set 列出所有环境变量以及自定义变量[当前bash有效]

$HOSTNAME 主机名

$HOSTTYPE 硬件架构

$HISTFILE 命令历史记录文件

$$ bash的PID

$? 上一个命令的状态码

$PS1 命令提示符

$PS2 多行命令提示符

export 显示所有环境变量的定义

export VAR 将自定义变量升级为环境变量

locale 显示语言和编码 -a 显示所有系统支持的语言和编码

$RANDOM 随机生成一个0-32767的数的变量

unset 删除变量

3 命令特性和历史

\ 延续命令多行输入

[TAB]命令补全

[TAB][TAB]路径补全

Ctrl+c 终止当前命令

Ctrl+d 输入EOF

Ctrl+z 将当前命令暂停[调入后台]

Ctrl+a 跳到命令行首

Ctrl+e 跳到命令行尾

Ctrl+u 删除光标至命令行首的内容

Ctrl+k 删除光标至命令行尾的内容

Ctrl+l 清屏 (clear命令)

Ctrl+m 等同于ENTER

Ctrl+s 暂停屏幕输出

Ctrl+q 恢复屏幕输出

history 显示命令历史

-c 清空命令历史

-d N 删除指定位置N的命令

-w 保存命令历史至历史文件中

!string 执行命令历史中最近一个以指定字符串开头的命令

!$/Esc, . 引用前一个命令的最后一个参数

!n 执行命令历史中的第n条命令

!-n 执行命令历史中的倒数第n条命令

!! 执行上一条命令 (UP ENTER)

4 命令替换和别名

alias CMDALIAS='CMD [options] [arguments]' 设定命令别名

ualias CMDALIAS 取消命令别名

"" 双引号 弱引用 可以实现变量替换

'' 单引号 强引用 不能实现变量替换

$(CMD)|`COMMAND` 命令替换

{} 花括号同级展开 例子 mkdir ./test/{a,b,c} mkdir ./test/{a,b}{c,d}

- 上一个工作目录 ~ 当前家目录 ~root ROOT家目录

echo ~+ 显示$PWD

echo ~- 显示$OLDPWD

echo ~+N  显示dirs中第N+1个内容 索引基于0

echo ${!PWD} 显示PWD的变量名 而不是它的值

echo ${!P*} 显示所有以P开头的环境变量名

echo $((16#32)) 十六进制的32 输出50 双圆括号算数展开

echo $[1+4] 输出1+4的值5 方括号算数展开

命令替换时的特性

a5346f3a38138e777b265a7b4832480b.png

b09c68c648c91e71192d28257c36af89.png

5 文件名通配(globbing)

* 任意长度的任意字符

? 任意单个字符

[] 匹配指定范围内的任意单个字符

[^] 匹配指定范围外的任意单个字符

[abc],[a-z],[0-9a-zA-Z] 常用检测字符组

[[:space:]] 空白字符

[[:punct:]] 标点符号

[[:lower:]] 小写字母

[[:upper:]] 大写字母

[[:alpha:]] 大小写字母

[[:digit:]] 数字

[[:alnum:]] 数字和大小写字母

匹配4个字符的文件名

ls ????

匹配字母|下划线开头 数字结尾的文件名

ls [a-zA-Z_]*[0-9]

匹配非数字开头 非字母结尾的文件名

ls [^0-9]*[^[:alpha:]]

6 重定向和管道和命令连用

&& 同时执行命令

|| 上一个命令不执行时执行

; 分步执行命令

&& || 相当于一个if else控制流程结构

<< EOF 重定向大段标准输入 EOF结尾

> 重定向标准输出[覆盖方式]

>> 重定向标准输出[追加方式]

2> 重定向错误输出[覆盖方式]

2>> 重定向错误输出[追加方式]

&> 重定向标准输出和错误输出 [覆盖方式]

&>>  重定向标准输出和错误输出 [追加方式]

管道 前一个命令的输出 作为后一个命令的输入

格式 CMD1 | CMD2 | CMD3 | ...

set -C 禁止对已经存在文件使用覆盖重定向 强制覆盖输出使用 >|

set +C 关闭上述功能

7 相关配置文件

/etc/sysconfig/i18n 语言和编码配置文件

~/.bash_history 命令历史文件

~/.bash_logout 注销时执行的文件

/etc/issue 登陆显示信息的文件

/etc/motd 远程连接登陆显示信息的文件

/etc/profile bash总体配置文件

/etc/inputrc 输入特性文件

/etc/profile.d/*.sh 被/etc/profile调用

~/.bash_profile 个人配置文件

如果没有~/.bash_profile 则会读取~/.bash_login或者~/.profile

~/.bashrc 个人配置文件 被~/.bash_profile调用

/etc/bashrc REDHAT系列独有的文件 设置一些属性

/etc/man.config 设置man page的搜索路径的文件

bash配置文件的登陆调用流程 非登陆式切换用户则从~/.bashrc开始调用

0780d56ec36cd0c3cb0168e9eccd8ada.png

8 其他

如果不喜欢默认终端机的特性 可以使用stty和set来设置终端机的特性

echo 字符串中的特殊属性

\033[0m 关闭所有属性

\033[1m 设置高亮度

\033[4m 下划线

\033[5m 闪烁

\033[7m 反显

\033[8m 消隐

\033[30m -- \033[37m 设置前景色

\033[40m -- \033[47m 设置背景色

\033[nA 光标上移n行

\033[nB 光标下移n行

\033[nC 光标右移n行

\033[nD 光标左移n行

\033[y;xH设置光标位置

\033[2J 清屏

\033[K 清除从光标到行尾的内容

\033[s 保存光标位置

\033[u 恢复光标位置

\033[?25l 隐藏光标

\033[?25h 显示光标

echo -e "\033[42;36m hello \033[0m" 绿底蓝字例子

颜色特性中 0~7颜色分别为 黑红绿黄蓝紫青白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值