Shell个性化
配置Shell
Shell的行为方式由多个配置文件所支持。默认均为Bash Shell,以下列出Bash Shell的配置文件:
文件 |
描述 |
/etc/profile |
为每个用户设置用户环境信息,首次登陆时执行此文件。对于设置的环境变量还会提高路径值。 |
/etc/bashrc |
每次打开一个Bash Shell时都会执行此文件,该文件设置默认提示符。 |
~/.bash_profile |
通常被每个用户用来输入shell具体用法的信息。该文件是添加环境变量的绝佳位置 |
~/.bashrc |
包含了特定于Bash Shell的信息,添加修改别名 |
~/.bash_logout |
每次注销时(即退出最后一个Bash Shell)执行文件,并且在默认情况下清除屏幕。 |
对于想要编辑纯文本文件,可以使用nano简单编辑器。
[root@fedora32 ~]# yum install nano -y [root@fedora32 ~]# nano .bashrc #进入编辑页面,使光标到底部,输入命令语句,若保存文件单击Ctrl+O,之后单击Enter,退出文件单击Ctrl+X。 alias dt='date +%D' [root@fedora32 ~]# source .bashrc #使修改后的文件生效 [root@fedora32 ~]# dt 11/29/23 |
设置提示符
提示符通常不仅包含一个美元符号或英镑符号,提示符设置应包含以下信息:用户名、主机名以及当前工作目录,这些信息用方括号括起来,之后紧跟一个美元符号(针对普通用户)或者一个英镑符号(针对root用户)。
在提示符中,可以使用多个特殊字符(通过在各种字母前添加一个反斜杠来表示)来包含不同信息。(Bash Shell相关网址:https://tldp.org/)
若临时设置提示符,应将PS1值放在引号中,例如:
[root@fedora32 ~]# export PS1="[\t\w]\$" [11:40:25~]$ |
若要永久化更改提示符,需要向主目录中的.bashrc添加PS1值(适用于Bash Shell)。
添加环境变量
有时需要向.bashrc文件添加一些环境变量,有助于使用shell。
- TMOUT——设置在Bash自动退出之前shell可以处于非活动状态多长时间,以秒为单位计算shell没有接收输入的时间。
- PATH——设置了对所使用的命令进行搜索的目录。若需要使用不在路径中的命令目录,可以永久性地添加。例如:
[root@fedora32 ~]# $PATH -bash: /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin [root@fedora32 ~]# PATH=$PATH:/getstuff/bin ; export PATH #首先将所有当前的路径目录读取到新PATH变量中($PATH),然后添加/getstuff/bin目录,最后导出新的PATH变量 [root@fedora32 ~]# $PATH -bash: /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/snapd/snap/bin:/getstuff/bin |
- WHATEVER——可以创建自己的环境变量,为工作提高快捷方式,可以为这些变量选择未被使用的任何名称,并赋予一个有用的值。
[root@fedora32 ~]# M=/work/time/memos ; export M 通过 cd $M 可以进入以上目录; 通过 $M/hggh 执行该目录下的hggh程序; 通过 vi $M/tesn 编辑该目录中的文件。 |
获取相关命令信息
- 检查PATH。输入 echo $PATH,可以看到一个目录列表,这些目录包含了可以使用的命令,其中大部分都是标准的Linux命令。
[root@fedora32 ~]# ls /bin |
- 使用help命令。Help命令可以显示这些内置shell的命令以及这条命令可用的选项(输入commond --help | less,查看该列表)
[root@fedora32 ~]# date --help | less |
- 使用info命令。Info命令是shell中另一种用来显示关于命令的信息的工具。Info可以在节点间移动,找到关于命令以及其他项目的信息。
- 使用man命令。使用man commond会显示该命令的描述及其选项。
[root@fedora32 ~]# man cat [root@fedora32 ~]# man -k passwd #若man -k没有显示任何输出,可能是因为手册页数据库还有初始化,以root身份键入mandb来初始化手册页数据库。 chgpasswd (8) - update group passwords in batch mode chpasswd (8) - update passwords in batch mode gpasswd (1) - administer /etc/group and /etc/gshadow grub2-mkpasswd-pbkdf2 (1) - Generate a PBKDF2 password hash. [root@fedora32 ~]# man 1 passwd [root@fedora32 ~]# man -k mount | grep ^mount mount (8) - mount a filesystem mountpoint (1) - see if a directory or file is a mountpoint [root@fedora32 ~]# man 8 mount |
Shell中使用man中使用-k选项,可以对安装到系统中所有手册页的名称和概要部分进行搜索。
当正在显示一个手册页时,可以使用Page Down和Page Up键浏览文件的不同部分(每次移动一页)。也可以使用Enter键或者向上向下箭头每次移动一行。若想要搜索文档,可以按下正斜杠(/)并输入想要搜索的项目,按n,重复向前搜索;而按N则重复向后搜索,输入q退出手册页。
Linux Shell的手册页
手册页是获取命令及其Linux系统中其他基本组件相关信息的最常用方法,每一个手册页都属于下表所列出的某一个类别。
节数 |
节名称 |
描述 |
适用者 |
1 |
用户命令(Standard commands,标准命令) |
由普通用户通过shell运行的命令(一般不需要管理特权) |
普通用户 |
2 |
系统调用(System calls) |
某一应用程序中用来调试系统内核的编程函数 |
程序开发人员 |
3 |
C库函数 (Library functions) |
为特定编程库提供接口的编程函数(例如针对图形接口或其他库的函数) |
程序开发人员 |
4 |
设备和特殊文件(Special devices) |
表示硬件设备(终端设备或CD驱动器)或者软件设备(如随机生成器)的文件系统节点 |
系统管理员 |
5 |
文件格式和约定(File formats) |
文件类型(如图形或字处理文件)或者特定的配置文件(如passwd或者group文件) |
系统管理员 |
6 |
游戏(Games and toys) |
系统中可玩的游戏 |
|
7 |
杂项(Miscellaneous) |
对相关主题(如协议、文件系统、字符集标准等)的概述 |
|
8 |
系统管理工具和守护进程(Administrative Commands) |
需要root或其他管理特权的命令 |
系统管理员 |