您的位置:首页 > 运维架构 > Shell

Linux系统运维/Bash/5-4-Bash操作环境

2016-03-05 23:37 134 查看

路径与命令搜寻顺序

命令运行的顺序可以这样看:

1. 以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』;

2. 由 alias 找到该命令来运行;

3. 由 bash 内建的 (builtin) 命令来运行;

透过 $PATH 这个变量的顺序搜寻到的第一个命令来运行。

bash 的进站与欢迎信息: /etc/issue, /etc/motd

[root@www ~]# cat /etc/issue

CentOS release 5.3 (Final)

Kernel \r on an \m

issue 内的各代码意义

\d 本地端时间的日期;

\l 显示第几个终端机接口;

\m 显示硬件的等级 (i386/i486/i586/i686...);

\n 显示主机的网络名称;

\o 显示 domain name;

\r 操作系统的版本 (相当于 uname -r)

\t 显示本地端时间的时间;

\s 操作系统的名称;

\v 操作系统的版本。

1.
\d 本地端时间的日期;

\l 显示第几个终端机接口;

\m 显示硬件的等级 (i386/i486/i586/i686...);

\n 显示主机的网络名称;

\o 显示 domain name;

\r 操作系统的版本 (相当于uname -r)

\t 显示本地端时间的时间;

\s 操作系统的名称;

\v 操作系统的版本。

2. /etc/issue.net这个是提供给 telnet 这个远程登录程序用的

3. /etc/motd告诉登陆者信息

bash 的环境配置文件

login、non-login

/etc/profile:这是系统整体的配置,你最好不要修改这个文件;

/etc/inputrc

/etc/profile.d/*.sh(/etc/profile.d/lang.sh->/etc/sysconfig/i18n)

~/.bash_profile 或 ~/.bash_login 或 ~/.profile:属于使用者个人配置,你要改自己的数据,就写入这里!

~/.bash_profile

~/.bash_login

~/.profile

其实 bash 的 login shell 配置只会读取上面三个文件的其中一个, 而读取的顺序则是依照上面的顺序。

source :读入环境配置文件的命令

~/.bashrc (non-login shell 会读)

其他相关配置文件

/etc/man.config--MANPATH

~/.bash_history

~/.bash_logout

这个文件则记录了『当我注销 bash 后,系统再帮我做完什么动作后才离开』

stty, set

组合按键

运行结果

Ctrl + C

终止目前的命令

Ctrl + D

输入结束 (EOF),例如邮件结束的时候;

Ctrl + M

就是 Enter 啦!

Ctrl + S

暂停屏幕的输出

Ctrl + Q

恢复屏幕的输出

Ctrl + U

在提示字符下,将整列命令删除

Ctrl + Z

『暂停』目前的命令

通配符:

符号

意义

*

代表『 0 个到无穷多个』任意字符

?

代表『一定有一个』任意字符

[ ]

同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』

[ - ]

若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!

[^ ]

若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。

bash 环境中的特殊符号:

符号

内容

#

批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行

\

跳脱符号:将『特殊字符或通配符』还原成一般字符

|

管线 (pipe):分隔两个管线命令的界定(后两节介绍);

;

连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同)

~

用户的家目录

$

取用变量前导符:亦即是变量之前需要加的变量取代值

&

工作控制 (job control):将命令变成背景下工作

!

逻辑运算意义上的『非』 not 的意思!

/

目录符号:路径分隔的符号

>, >>

数据流重导向:输出导向,分别是『取代』与『累加』

<, <<

数据流重导向:输入导向 (这两个留待下节介绍)

' '

单引号,不具有变量置换的功能

" "

具有变量置换的功能!

` `

两个『 ` 』中间为可以先运行的命令,亦可使用 $( )

( )

在中间为子 shell 的起始与结束

{ }

在中间为命令区块的组合!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: