Shell个性化

发布时间 2023-11-30 19:49:48作者: 飔鬏
创建个人的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或其他管理特权的命令

系统管理员