前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >玩转服务器 —了解bashrc文件

玩转服务器 —了解bashrc文件

作者头像
生信菜鸟团
发布于 2024-12-20 11:07:27
发布于 2024-12-20 11:07:27
77700
代码可运行
举报
文章被收录于专栏:生信菜鸟团生信菜鸟团
运行总次数:0
代码可运行

滴水穿石 非一日之功

.bashrc文件

.bashrc 是一个配置文件,主要用于用户自定义 Bash shell(Linux 系统中的默认命令行解释器)的行为和环境。你可以在 .bashrc 文件中设置环境变量,比如修改 PATH 路径以添加自己的程序目录;也可以为常用命令设置别名,简化操作,例如将 ls -lh 设置为 ll 以及 自定义命令行提示符、编写简单函数、自动执行特定的命令或脚本等等。

.bashrc 文件位于用户主目录下,路径是:~/.bashrc 。当用户启动一个交互式的非登录 shell时,.bashrc 文件就会自动被加载。如果进行修改,修改完成后需要使用 source ~/.bashrc 使其生效。

良好的习惯

作为新手用户,在拿到服务器账号后,如果要修改.bashrc 配置文件,建议在每次修改之前都做一个 bashrc文件的备份,这样即便误操作,还能最大程度恢复。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##备份bashrc文件
cp ~/.bashrc ~/.bashrc_20241217

备份

修改bashrc

  1. vi/vim 编辑器打开 .bashrc 。前提是需要掌握vim编辑器的用法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim ~/.bashrc
  1. 自定义 .bashrc 文件,比如设置命令提示符、添加自己安装的软件路径到环境变量 等等
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#自定义命令提示符(PS1 变量)
PS1="\[\e[32;1m\]\u \[\e[33;1m\]\t \[\e[35;1m\]\w \n\[\e[0;0m\]$"

#添加软件路径到环境变量
export PATH="/home/data/t160560/softname/bin:$PATH"
  1. 保存文件后,使修改生效
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source ~/.bashrc

修改PS1变量

恢复初始的bashrc

如果你之前没有备份过basrc文件,同时你又误操作(比如删除了 .bashrc 、修改PATH变量结果把初始的PATH路径覆盖掉了、.bashrc文件写入了很多乱七八糟的字符 等等),如果你想恢复初始的 .bashrc 。这时候你可以从 /etc/skel 路径下去复制一份。【/etc/skel 目录是 Linux 系统中的一个模板目录,用于存放用户主目录的默认配置文件】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /etc/skel/.bashrc  ~/
#cp /etc/skel/.profile ~/

注:这个恢复也仅仅是限于恢复初始的 .bashrc 配置,如果你在误操作之前,就已经自己进行过一些个性化设置,那么这个操作是无法对你的个性化设置恢复的。你只有重新设置,或者在操作前提前备份你的bashrc

背景补充

shell

GNU/Linux shell 是一种特殊的交互式工具。它为用户提供了启动程序,管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。在Linux系统上,通常有好几种 Linux shell 可用,其本身也是一个可执行程序,不同shell有不同的特性,有些利于创建脚本,有些则更利于管理进程。通常Linux发行版系统默认的shell是 sh 或者bash。

  • ash 一种运行在内存受限环境中简单的轻量级shell,与bash shll 完全兼容
  • korn 一种与Bourne shell 兼容的编程shell,其支持如关联数组和浮点运算等一些高级的编程特性
  • tcsh 一种将C语言中一些元素引入到shell脚本中的shell
  • zsh 一种结合了bash、tcsh和korn的特性,同时提供高级编程特性、共享历史文件和主体化提示符的高级shell(MAC电脑终端的默认shell 就是 zsh)
  • Fish 一种用户友好的现代命令行 Shell,专为简化使用、提高效率而设计。它与传统 Shell(如 Bash 或 Zsh)相比,更加直观,易于上手,并且提供了开箱即用的强大功能和美观的默认配置。

这些shell都可以被设置为用户默认的shell。不过由于bash shell 的广为流行,很少有使用其他shell作为默认shell。至于用户启动什么样的shell程序取决于个人的用户ID配置。在 /etc/passwd 文件中,用户ID记录的第7个字段,列出了用户的默认shell程序。只要用户登录,默认的shell程序就会开始运行。

用户ID记录

不同的shell 有其不同的配置文件

  • Bash(Bourne Again Shell):~/.bashrc
  • Ksh(Korn Shell): ~/.kshrc
  • Csh(C Shell)和 Tcsh(Enhanced C Shell): ~/.cshrc
  • Zsh(Z Shell): ~/.zshrc
  • Fish(Friendly Interactive Shell):~/.config/fish/config.fish

vim 编辑器

Vim 是 Linux 和其他类 Unix 系统上广泛使用的文本编辑器,它是 Vi 编辑器的增强版,名字来源于 “Vi IMproved”(Vi 的改进版)。最常用的是以下 3 种模式:

  • 普通模式(Normal Mode)
    • h / j / k / l:左右上下移动光标
    • dd:删除当前行
    • yy:复制当前行
    • gg:跳转到行首
    • G:跳转到行尾
    • 默认进入的模式,用于导航和操作文本。
    • 常用命令:
  • 插入模式(Insert Mode)
    • 用于插入或修改文本。
    • 进入方式:在普通模式下按 ia
    • 退出方式:按 Esc 返回普通模式
  • 命令模式(Command Mode)
    • :w:保存文件。
    • :q:退出。
    • :wqZZ:保存并退出。
    • :q!:强制退出不保存。
    • 用于执行保存、退出、查找等命令。
    • 进入方式:在普通模式下按 :
    • 常用命令:

bash shell 命令提示符 PS1 变量

PS1常用的参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\d :#代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :#完整的主机名称
\h :#仅取主机的第一个名字
\t :#显示时间为24小时格式,如:HHMMSS
\T :#显示时间为12小时格式
\A :#显示时间为24小时格式:HHMM
\u :#当前用户的账号名称
\v :#BASH的版本信息
\w :#完整的工作目录名称
\W :#利用basename取得工作目录名称,所以只会列出最后一个目录
\# :#下达的第几个命令
\$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$

颜色值设置:PS1中设置字符颜色的格式为:\[\e[F;Bm\],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
颜色表如下:
F前景色  B背景色
30      40      黑色
31      41      红色
32      42      绿色
33      43      黄色
34      44      蓝色
35      45      紫红色
36      46      青蓝色
37      47      白色

效果控制代码:
代码              意义   
-------------------------   
0                 OFF   
1                 高亮显示   
4                 underline   
5                 闪烁   
7                 反白显示   
8                 不可见

一个例子

示例

  • \[\e[32;1m\]\u:显示用户名,绿色高亮
  • \[\e[33;1m\]\t:显示时间,黄色高亮
  • \[\e[35;1m\]\w:显示当前路径,紫色高亮
  • \n:换行
  • \[\e[0;0m\]:重置颜色并显示 提示符
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验