Linux关于bash的二三事(2)
来源:互联网 发布:博雅软件2017 编辑:程序博客网 时间:2024/04/30 03:53
bash shell的操作环境
路径与命令查找顺序
执行一个命令时,命令运行的顺序为:
1. 以相对/绝对路径执行命令;
2. 由alias找到该命令执行;
3. 由bash内置的命令来执行;
4. 通过$PATH这个变量的顺序找到第一个命令来执行。
登录与欢迎信息
登录界面中的提示信息在/etc/issue文件中,这个文件中的内容与$PS1变量相似,通过反斜杠作为变量调用,各代码意义如下表所示:
如果希望用户登录之后取得一些信息,可以将信息加入/etc/motd中去。
环境配置文件
系统中有一些环境配置文件,在bash启动时直接读取这些文件,规划好bash的操作环境。
在了解配置文件前,需要区分login shell和non-login shell,这两个shell所读取的配置文件并不相同。取得bash时需要完整的登录流程的就成为login shell。取得bash接口的防范不需要重复登录的举动,这样的bash环境就成为non-login shell。
- /etc/profile
这个文件可以利用用户的UID来决定很多重要的变量数据,也是每个用户登录取得bash时一定会读取的配置文件。这个文件设置的主要变量有 :PATH,MAIL,USER,HOSTNAME,HISTSIZE。
- /etc/inputrc
此文件内容为bash的热键、[tab]有没有声音等的数据。
- /etc/profile.d/*.sh
这个目录下的一系列文件规定了bash操作接口的颜色、语系、ll与ls命令的命令别名、vi的命令别名、which的命令别名等。
- /etc/sysconfig/i18n
bash默认何种语系的重要配置文件。
- ~/.bash_profile
个人偏好设置文件,除了此文件之外还有~/.bash_login和~/.profile,这三个文件只会读取一个。
- ~/.bashrc
只有non-login shell会读取的配置文件。
- /etc/man.config
这个文件规定了执行man的时候该去哪里查看数据的路径设置。
- ~/.bash_histroy
这个文件与历史命令有关。
- ~/.bash_logout
当注销bash后系统进行的操作。
通配符和特殊符号
通配符可以方便bash处理数据,常用的通配符如下表所示:
bash环境中的特殊符号如下表所示:
终端机的环境设置
可以使用stty命令查看当前的按键内容。
stty [-a]参数:-a:将目前所有的stty参数列出来
几个重要的按键值得意义如下:
- eof:代表结束输入
- erase:向后删除字符
- intr:发送中断信号给目前正在运行的程序
- kill:删除目前命令行上所有文字
- quit:发送quit信号给目前正在运行的程序
- start:在某个进程停止后,重新启动它的输出
- stop:停止目前屏幕的输出
- susp:发送终端停止的信号给正在运行的程序
利用set来设置终端机的变量值。
set [-uvCHhmBx]参数:-u:默认不启用,启用后,当使用未设置变量时,会显示错误信息-v:默认不启用,启用后,在讯息被输出后,会先显示信息的原始内容-x:默认不启用,启用后,在命令被执行前,会显示命令内容-h:默认启用,与历史命令有关-H:默认启用,与历史命令有关-m:默认启用,与工作管理有关-B:默认启用,与[]的作用有关-C:默认不启用,使用>等时,则若文件存在时,该文件不会被覆盖
bash默认的组合键如下表所示:
数据流重定向
什么是数据流重定向
数据流重定向可以将standard output(简称stdout)与standard error output(简称stderr)分别传送到其他的文件或设备中去,分别传送使用的特殊字符如下表示:
1. 标准输入(stdin):代码为0,使用<或<<;
2. 标准输出(stdout):代码为1,使用>或>>;
3. 标准错误输出(stderr):代码为2,使用2>或2>>。
<和<<的区别是:<以覆盖的方式工作,而<<以累加的方式工作,同理>和>>也是如此。如果要将错误信息忽略掉而不显示 或存储,可以重定向到/dev/null中。需要将两条信息写入同一个文件时,可以使用“&”符号。
命令执行的判断依据:;,&&,||
- cmd;cmd
两条指令按顺序执行,两条命令没有相关性。 - &&和||
两个连接符的意义如下表所示:
- Linux关于bash的二三事(2)
- Linux关于bash的二三事(1)
- Linux关于bash的二三事(3)
- 关于Linux bash 中的变量
- 关于while read line循环的linux bash shell bug
- 关于linux系统bash shell编程中开头#!/bin/bash的理解
- 关于LINUX权限(启动tomcat)-bash: ./startup.sh:
- 掌握Linux的Bash命令(转)
- Linux中bash的使用(二)
- linux的shell(bash)脚本学习
- Linux的Bash学习
- linux 的 BASH
- Linux---Bash的基本功能
- linux bash的$ !
- Linux下的bash
- Linux的-bash-4.2$
- Linux的Bash变量
- linux的bash环境变量
- DevExpress GridControl 跨列横向合并单元格两个官方例子
- Map<String,Object> ,List 顺序排列
- [LeetCode]Contains Duplicate III
- 提题来见(1)
- mysql中的共享锁与排他锁
- Linux关于bash的二三事(2)
- 【Get深一度】ASCII表ASCII表ASCII表ASCII表
- Stack
- SQL with(nolock)详解
- 网格生产的常用算法
- 函数特性
- PL/SQL 标签与GOTO语句
- react native事件机制(Eventdispather)
- C++ Dll 导出类