第22节-Bash Shell 的操作环境
来源:互联网 发布:java素数的判断 编辑:程序博客网 时间:2024/06/03 22:48
路径与命令搜寻顺序
执行一个命令有4种运行方式: 1.以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』; 2.由 alias 找到该命令来运行; 3.由 bash 内建的 (builtin) 命令来运行; 4.透过 $PATH 这个变量的顺序搜寻到的第一个命令来运行。 例题: 配置 echo 的命令别名成为 echo -n ,然后再观察 echo 运行的顺序 答: [root@www ~]# alias echo='echo -n' [root@www ~]# type -a echo echo is aliased to `echo -n' echo is a shell builtin echo is /bin/echo 瞧!很清楚吧!先 alias 再 builtin 再由 $PATH 找到 /bin/echo.
bash 的进站与欢迎信息:/etc/issue, /etc/motd
终端机接口 (tty1 ~ tty6) 登陆进站画面设置 [root@node1 ~]# cat /etc/issue(本机登录画面) \S Kernel \r on an \m [跟着上面这句添加要显示的内容] [root@node1 ~]# cat /etc/issue.net(远程登录画面) \S Kernel \r on an \m [跟着上面这句添加要显示的内容] issue 内的各代码意义 \d 本地端时间的日期; \l 显示第几个终端机接口; \m 显示硬件的等级 (i386/i486/i586/i686...); \n 显示主机的网络名称; \o 显示 domain name; \r 操作系统的版本 (相当于 uname -r) \t 显示本地端时间的时间; \s 操作系统的名称; \v 操作系统的版本。
bash 的环境配置文件
login 与 non-login shell login shell:取得 bash 时需要完整的登陆流程的,就称为 login shell。举例来说,你要由 tty1 ~ tty6 登陆,需要输入用户的账号与密码,此时取得的 bash 就称为『 login shell 』啰; non-login shell:取得 bash 接口的方法不需要重复登陆的举动,举例来说,(1)你以 X window 登陆 Linux 后, 再以 X 的图形化接口启动终端机,此时那个终端接口并没有需要再次的输入账号与密码,那个 bash 的环境就称为 non-login shell了。(2)你在原本的 bash 环境下再次下达 bash 这个命令,同样的也没有输入账号密码, 那第二个 bash (子程序) 也是 non-login shell 。 login shell 其实只会读取这两个配置文件: 1./etc/profile:这是系统整体的配置,你最好不要修改这个文件; 2.~/.bash_profile 或 ~/.bash_login 或 ~/.profile:属于使用者个人配置,你要改自己的数据,就写入这里!
/etc/profile (login shell 才会读)
这是每个使用者登陆取得 bash 时一定会读取的配置文件! 这个文件配置的变量主要有: PATH:会依据 UID 决定 PATH 变量要不要含有 sbin 的系统命令目录; MAIL:依据账号配置好使用者的 mailbox 到 /var/spool/mail/账号名; USER:根据用户的账号配置此一变量内容; HOSTNAME:依据主机的 hostname 命令决定此一变量内容; HISTSIZE:历史命令记录笔数。CentOS 5.x 配置为 1000 ; /etc/profile 可不止会做这些事而已,他还会去呼叫外部的配置数据,底下这些数据会依序的被呼叫进来: /etc/inputrc /etc/profile 会主动的判断使用者有没有自定义输入的按键功能 /etc/profile.d/*.sh 这个目录底下的文件规范了 bash 操作接口的颜色、 语系、ll 与 ls 命令的命令别名、vi 的命令别名、which 的命令别名等等 /etc/sysconfig/i18n 这个文件是由 /etc/profile.d/lang.sh 呼叫进来的!这也是我们决定 bash 默认使用何种语系的重要配置文件!
~/.bash_profile (login shell 才会读)
bash 在读完了整体环境配置的 /etc/profile 并藉此呼叫其他配置文件后,接下来则是会读取使用者的个人配置文件。 在 login shell 的 bash 环境中,所读取的个人偏好配置文件其实主要有三个,依序分别是: 1.~/.bash_profile 2.~/.bash_login 3.~/.profile
source :读入环境配置文件的命令
由于 /etc/profile 与 ~/.bash_profile 都是在取得 login shell 的时候才会读取的配置文件,所以, 如果你将自己的偏好配置写入上述的文件后,通常都是得注销再登陆后,该配置才会生效。那么,能不能直接读取配置文件而不注销登陆呢? 可以的!那就得要利用 source 这个命令了! [root@www ~]# source 配置文件档名 范例:将家目录的 ~/.bashrc 的配置读入目前的 bash 环境中 [root@www ~]# source ~/.bashrc <==底下这两个命令是一样的! [root@www ~]# . ~/.bashrc
~/.bashrc (non-login shell 会读)
谈完了 login shell 后,那么 non-login shell 这种非登陆情况取得 bash 操作接口的环境配置文件又是什么? 当你取得 non-login shell 时,该 bash 配置文件仅会读取 ~/.bashrc 而已啦!那么默认的 ~/.bashrc 内容是如何? [root@www ~]# cat ~/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' <==使用者的个人配置 alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then <==整体的环境配置 . /etc/bashrc fi
其他相关配置文件
/etc/man.config ~/.bash_history ~/.bash_logout
终端机的环境配置: stty, set
[root@www ~]# stty [-a] 选项与参数: -a :将目前所有的 stty 参数列出来; 范例一:列出所有的按键与按键内容 [root@www ~]# stty -a speed 38400 baud; rows 24; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; ....(以下省略).... eof : End of file 的意思,代表『结束输入』。 erase : 向后删除字符, intr : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序; kill : 删除在目前命令列上的所有文字; quit : 送出一个 quit 的讯号给目前正在 run 的程序; start : 在某个程序停止后,重新启动他的 output stop : 停止目前屏幕的输出; susp : 送出一个 terminal stop 的讯号给正在 run 的程序。 [root@www ~]# set [-uvCHhmBx] 选项与参数: -u :默认不激活。若激活后,当使用未配置变量时,会显示错误信息; -v :默认不激活。若激活后,在信息被输出前,会先显示信息的原始内容; -x :默认不激活。若激活后,在命令被运行前,会显示命令内容(前面有 ++ 符号) -h :默认激活。与历史命令有关; -H :默认激活。与历史命令有关; -m :默认激活。与工作管理有关; -B :默认激活。与刮号 [] 的作用有关; -C :默认不激活。若使用 > 等,则若文件存在时,该文件不会被覆盖。 范例一:显示目前所有的 set 配置值 [root@www ~]# echo $- himBH # 那个 $- 变量内容就是 set 的所有配置啦! bash 默认是 himBH 另外,其实我们还有其他的按键配置功能呢!就是在前一小节提到的 /etc/inputrc 这个文件里面配置。 [root@www ~]# cat /etc/inputrc # do not bell on tab-completion #set bell-style none set meta-flag on set input-meta on set convert-meta off set output-meta on
通配符与特殊符号
在 bash 的操作环境中还有一个非常有用的功能,那就是通配符 (wildcard) ! 我们利用 bash 处理数据就更方便了!底下我们列出一些常用的通配符喔:
利用通配符配合 ls 找文档看看:
[root@www ~]# LANG=C <==由于与编码有关,先配置语系一下范例一:找出 /etc/ 底下以 cron 为开头的档名[root@www ~]# ll -d /etc/cron* <==加上 -d 是为了仅显示目录而已范例二:找出 /etc/ 底下文件名『刚好是五个字母』的文件名[root@www ~]# ll -d /etc/????? <==由于 ? 一定有一个,所以五个 ? 就对了范例三:找出 /etc/ 底下文件名含有数字的文件名[root@www ~]# ll -d /etc/*[0-9]* <==记得中括号左右两边均需 *范例四:找出 /etc/ 底下,档名开头非为小写字母的文件名:[root@www ~]# ll -d /etc/[^a-z]* <==注意中括号左边没有 *范例五:将范例四找到的文件复制到 /tmp 中[root@www ~]# cp -a /etc/[^a-z]* /tmp
阅读全文
0 0
- 第22节-Bash Shell 的操作环境
- bash shell的操作环境
- Bash Shell 的操作环境
- 十四. bash shell的操作环境
- 第十一章 Bash Shell 的操作环境
- Linux shell变量功能和Bash shell的操作环境
- Bash Shell的使用环境
- 第19节-认识 BASH 这个 Shell
- 鸟哥的私房菜学习笔记 重要的Bash Shell的操作环境
- 【鸟哥的linux私房菜-学习笔记】Bash shell的变量功能及操作环境
- 鸟哥的linux私房菜学习笔记《二十二》bash shell的操作环境
- shell - Bash中对变量的操作
- Bash Shell环境
- Linux下Bash的操作环境相关,issue,motd,login shell,non-login shell,source,stty,set
- 实战Linux Shell(2):布署Bash Shell 的环境
- bash shell字符操作
- Bash Shell 字符串操作
- shell,bash操作快捷键
- Spark学习之键值对(pair RDD)操作
- Java环境变量配置&解决版本不一致问题
- HTML5_京东首页样式
- mysql
- 删除kfaka topic
- 第22节-Bash Shell 的操作环境
- sql索引原理及应用
- jquery 判断移动端是安卓系统还是ios系统
- 网络模拟器
- iTween基础之Rotate(旋转角度)
- Java多线程基础
- 初探Laravel
- 查看系统短信
- 语义分割--Efficient and Robust Deep Networks for Semantic Segmentation