鸟哥的linux私房菜学习笔记《二十二》bash shell的操作环境
2017-03-09 21:48
399 查看
命令执行的是顺序:
可以通过“type -a 命令”来查询执行顺序
bash的登录与欢迎信息
![](https://oscdn.geek-share.com/Uploads/Images/Content/201703/09/c194d792405c8310c4e525d103d4b771)
/etc/issue.net:提供telnet这个远程登录程序用的
bash的环境配置文件
命令别名、自定义变量在注销shell后会失效,写在配置文件可以一直有效
login shell:通过密码登录的shell(文字界面登录的系统)
non-login shell:通过Xwindows打开的shell或者子shell
![](https://oscdn.geek-share.com/Uploads/Images/Content/201703/09/c2180265ffd0b32ea40fa475aed165c5)
实现是主线流程,虚线是调用,CentOS默认login shell读取~/.bashrc这个文件,可以将自己偏好写入
source:读入环境配置文件
由于~/.bashrc会调用/etc/bashrc及/etc/profile.d/*/sh,所以万一自己删除了~/.bashrc,那么也不会影响bash的使用,想要调回来,可以复制/etc/skel/.bashrc到主目录,再修改一下想要的内容,bingyongsource去调一下~/.bashrc,那么就回来了。
stty:终端机的设置
在登录终端机时,会自动取得一些终端机的输入环境的设置
1 . stty(setting tty):设置终端
参数:
-a:将目前所有的stty参数列出来
^代表Ctrl按键
几个重要的意义:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201703/09/ef07c4976bfac256aa680abf94667afc)
2 . set设置整个命令输出/输入的环境:
参数:
-u:启用后,当使用未设置的变量会显示错误信息
-v:启动后,在讯息被输出前,会先显示信息的原始内容
-x:启用后,命令被执行前,会显示命令内容(前面有+符号)
-h:与历史命令有关
-H:与历史命令有关
-m:与工作管理有关
-B:与[]有关
-C:使用>等时,则若文件存在时,该文件不会被覆盖
3 . 其他按键功能
在/etc/inputrc里面
可以通过“type -a 命令”来查询执行顺序
以相对/绝对路径执行 由alias找到该命令来执行 由bash内置的(builtin)命令来执行 通过$PATH这个变量的顺序找到的第一个命令来执行
# 查询ls执行顺序: [root@CentOS ~]# type -a ls ls is aliased to `ls --color=auto' ls is /bin/ls # 查询入门执行顺序: [root@CentOS ~]# type -a rm rm is /bin/rm [root@CentOS ~]#
bash的登录与欢迎信息
[root@CentOS ~]# cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m
``` # 想要显示界面: CentOS release5.3 (Final) (terminal: tty3) Date: 2017-03-05 17:29:19 Kernel: 2.6.18-128.e15 on an i686 Welcome! # 将/etc/issue设置为: CentOS release5.3 (Final) (terminal: \1) Date: \d \t Kernel: \r on an \m Welcome! ```
/etc/issue.net:提供telnet这个远程登录程序用的
# 如果想让用户登录后获取一些信息,可以加入到/etc/motd里面 [root@CentOS ~]# vim /etc/motd Hello,everyone, We will shutdown the system at 2017/06/06.
bash的环境配置文件
命令别名、自定义变量在注销shell后会失效,写在配置文件可以一直有效
login shell:通过密码登录的shell(文字界面登录的系统)
non-login shell:通过Xwindows打开的shell或者子shell
login shell 一般会读取两个配置文件: 1. /etc/profile:系统整体的配置 2. ~/.bash_profile或者~/.bash_login或者~/.profile:用户个人配置
实现是主线流程,虚线是调用,CentOS默认login shell读取~/.bashrc这个文件,可以将自己偏好写入
``` # /etc/profile: PATH:会依据UID决定PATH变量要不要显示sbin的系统命令目录 MAIL:依据账号设置好用户的mailbox到/var/spool/mail账号名 USER: 4000 根据用户的账号设置此项 HOSTNAME:依据主机名设置此项 HISTORY:命令记录条数 ``` ``` # /etc/inputrc 内容为bash的热键,[TAB]有没有声音等数据 ``` ``` # /etc/profile.d/*sh 只用用户具有r权限就可以执行目录内所有*.sh文件 这个目录规定了bash操作接口的颜色,语言,ll与ls命令别名,vi的别名,which的别名等 ``` ``` # /etc/susconfig/i18n 语言设置 ``` bash的login shell情况下所读取的整体环境配置文件就是/etc/profile,然后/etc/profile调用其他文件执行 ``` #~/.bash_profile(login shell才会读)(以下三选一执行,那个存在读哪个) ~/.bash_profile ~/.bash_login ~/.profile ```
source:读入环境配置文件
# 读入环境配置文件(两种都可以) [root@CentOS ~]# source ~/.bashrc [root@CentOS ~]# . ~/.bashrc
# ~/.bashrc(non-login shell会读) [root@CentOS ~]# 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/bashrc定义了如下内容: 依据不同的UID规定的umask的值 依据不同的UID规定提示符(就是PS1变量) 调用/etc/profile.d/*.sh的设置
由于~/.bashrc会调用/etc/bashrc及/etc/profile.d/*/sh,所以万一自己删除了~/.bashrc,那么也不会影响bash的使用,想要调回来,可以复制/etc/skel/.bashrc到主目录,再修改一下想要的内容,bingyongsource去调一下~/.bashrc,那么就回来了。
# /etc/man.config 规定了man的时候去哪里找man page man时找不到命令路径时可以手动添加到这个文件
# ~/.bash_history 历史命令就记录在这里
# ~/.bash_logout 记录注销bash后系统帮我做完什么操作再离开
stty:终端机的设置
在登录终端机时,会自动取得一些终端机的输入环境的设置
1 . stty(setting tty):设置终端
参数:
-a:将目前所有的stty参数列出来
[root@CentOS ~]# stty -a speed 38400 baud; rows 36; columns 88; 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;
^代表Ctrl按键
几个重要的意义:
# 设置Ctrl+h作为退格键 [root@CentOS ~]# stty erase ^h
2 . set设置整个命令输出/输入的环境:
参数:
-u:启用后,当使用未设置的变量会显示错误信息
-v:启动后,在讯息被输出前,会先显示信息的原始内容
-x:启用后,命令被执行前,会显示命令内容(前面有+符号)
-h:与历史命令有关
-H:与历史命令有关
-m:与工作管理有关
-B:与[]有关
-C:使用>等时,则若文件存在时,该文件不会被覆盖
[root@CentOS ~]# echo $- himBH [root@CentOS ~]# set -u [root@CentOS ~]# set -x ++ printf '\033]0;%s@%s:%s\007' kevin CentOS '~' [root@CentOS ~]# echo $HOME + echo /root /root ++ printf '\033]0;%s@%s:%s\007' kevin CentOS '~' [root@CentOS ~]#
3 . 其他按键功能
在/etc/inputrc里面
相关文章推荐
- Bash shell基本操作命令和环境变量命令(笔记)
- linux Bash Shell的操作环境
- 第十一章、认识与学习 BASH Bash Shell 的操作环境
- 鸟哥的私房菜学习笔记 重要的Bash Shell的操作环境
- Linux下Bash的操作环境相关,issue,motd,login shell,non-login shell,source,stty,set
- Bash Shell字符串操作小结
- lunix:进入root进入非root用户的shell bash环境[用于权限测试]
- android环境抓Wireshark码流数据包,shell命令操作
- linux shell bash 比较操作
- Bash Shell的环境配置文件
- Bash Shell字符串操作小结
- Linux下Bash对环境变量的操作,env,set,export,locale,ulimit,alias,unalias,history
- bash shell 文本文件操作
- Linux编程环境介绍(2) -- shell(Bash) 介绍
- Shell(bash)脚本学习之--------内建/外建,自定义变量和环境变量
- Linux Bash Shell学习(六):设置环境参数
- Bash shell(四)-Bash shell的使用环境
- 用户shell环境基本操作2
- Linux/Unix下Shell快捷键操作大集合及部分Bash使用技巧-另附Ubuntu常用快捷键
- Centos shell bash操作界面 不显示路径 改为显示路径的方法