linux 系统cshrc 文件
1.简介
.cshrc 文件是 C Shell(csh) 的配置文件,用于在用户启动交互式 Shell 时自动设置环境变量、别名(aliases)、路径(PATH)和其他自定义功能。
2.文件位置:
- 通常位于用户的家目录下:
~/.cshrc
- 系统级配置可能位于
/etc/csh.cshrc
(影响所有用户)。
3.常见配置示例:
路径设置
将 /usr/local/bin 添加到 PATH 环境变量开头:
setenv PATH "/usr/local/bin:$PATH"
常用命令别名
alias rm "rm -i" #每次删除前询问确认(防止误删)。alias mv "mv -i" #移动文件前询问确认(覆盖时提示)。alias cp "cp -i --reflink=auto --sparse=auto" alias cp "cp -i --reflink=auto --sparse=auto"
#
#-i:覆盖前询问。
#
#--reflink=auto:支持写时复制(节省空间,需文件系统支持如 Btrfs)。
#
#--sparse=auto:优化稀疏文件(如虚拟机磁盘)的拷贝效率。alias l "ls -ltr" #按时间倒序列出文件(最新文件在最后)。alias ll "ls -l" #显示详细文件列表(权限、大小、时间等)。
终端提示符
set prompt = "%n@%m:%~ %# " # 显示用户名@主机名:当前目录
编辑器设置
setenv EDITOR vim # 设置默认编辑器为vim
4.自定义 Shell 行为和用户偏好。
1.set autologout off
- 作用:禁用 Shell 的自动注销(超时退出)功能。
- 默认情况下,如果长时间无操作,C Shell 可能会自动断开会话(
autologout=30
表示 30 分钟后退出)。 off
表示关闭此功能,保持会话一直活跃。
2.umask 022
- 作用:设置新建文件的默认权限掩码。
umask 022
表示:- 文件权限默认为
644
(rw-r--r--
)。 - 目录权限默认为
755
(rwxr-xr-x
)。
- 文件权限默认为
- 目的是限制其他用户的写权限(防止误修改)
3.setenv TERM xterm
- 作用:设置终端类型为
xterm
。 TERM
是环境变量,告诉程序如何控制终端显示(如颜色、光标移动等)。xterm
是常见的终端仿真器类型,兼容大多数命令行工具。
4.setenv EDITOR vi
- 作用:设置默认文本编辑器为
vi
。 - 当程序需要调用编辑器时(如
crontab -e
或git commit
),会自动使用vi
。
5.setenv PAGER less
- 作用:设置默认分页器为
less
。 - 当输出内容过长时(如
man
或git log
),会用less
分页显示,支持上下滚动。
6.配置系统限制
limit coredumpsize 0
limit stacksize unlimited
limit coredumpsize 0
- 作用:禁止生成核心转储文件(core dump)。
- 程序崩溃时,默认会生成
core
文件用于调试。 0
表示禁用此功能,节省磁盘空间。
limit stacksize unlimited
- 作用:设置程序的栈大小为无限制。
- 避免某些程序(如递归调用深的程序)因栈空间不足而崩溃。
5.终端样式设置
5.1终端样式设置
变量:
set n="%b%{\e[00m%}" # n = Normal(重置所有样式)
set b="%{\e[34m%}%B" # b = Blue(蓝色 + 加粗)
set r="%{\e[31m%}%B" # r = Red(红色 + 加粗)
set rev="%{\e[7m%}%B" # rev = Reverse(反色 + 加粗)
1.ANSI 转义码说明
%{\e[...m%}
用于设置终端颜色/样式\e[00m
→ 重置样式(对应变量n
)\e[34m
→ 蓝色(对应变量b
)\e[31m
→ 红色(对应变量r
)\e[7m
→ 反色显示(对应变量rev
)%B
表示加粗(Bold)%b
表示取消加粗
2.设置 prompt
%n
→ 当前用户名。%m
→ 主机名(短格式)。%h
→ 当前命令的历史编号(即!%h
可以重新执行这条命令)。%/
→ 当前工作目录(完整路径)。n
→ 换行,使提示符分成两行。%n@%m
(用户名@主机名)显示为 红色加粗(${r}
)。:
和空格是普通文本。%/
(当前目录)显示为 蓝色加粗(${b}
)。- 最后用
${n}
重置颜色。
[Num=%h]
(历史编号)显示为 反色加粗(${rev}
)。
3.unset n b r rev
- 删除临时变量
n
、b
、r
、rev
,避免污染 Shell 环境。
4.修改或调试
- 如果想调整颜色,可以修改
e[34m
(蓝色)等 ANSI 颜色代码:e[30m
黑色e[31m
红色e[32m
绿色e[33m
黄色e[34m
蓝色e[35m
紫色e[36m
青色e[37m
白色
5.2终端样式设置
set prompt="%B%n@%m[%/] ->"
1.解析:
%B
→ 加粗(Bold)%n
→ 当前用户名@
→ 普通字符%m
→ 主机名(短格式)[%/]
→ 当前工作目录(完整路径),放在方括号内->
→ 普通字符
2.示例输出:
6.检测平台和版本的语句:
setenv OSPLATFORM `/bin/uname`if (-f /etc/os-release) thenset OSVERSION = `grep -oP '(?<=VERSION_ID=").*?(?=")' /etc/os-release | cut -d '.' -f 1`
else if (-f /etc/redhat-release) thenset OSVERSION = `grep -oP '(?<=release ).*' /etc/redhat-release | cut -d '.' -f 1`
elseset OSVERSION = 7 # Default value
endif
1.最终变量示例
echo $OSPLATFORM # 显示当前操作系统平台(如Linux)
echo $OSVERSION # 显示操作系统版本号(如7)
7.设置 PATH
环境变量 和 加载用户自定义配置文件
set path = (. /sbin /usr/sbin /usr/local/sbin /bin /usr/bin /usr/local/bin $path)if (-r ${HOME}/.my_cshrc) thensource ${HOME}/.my_cshrc
endifif (-r ${HOME}/.my_alias) thensource ${HOME}/.my_alias
endif
1.set path = (... $path)
set path = (/sbin /usr/sbin /usr/local/sbin /bin /usr/bin /usr/local/bin $path .)
- 作用:
- 重新定义
PATH
环境变量,决定 Shell 在哪些目录下查找可执行程序。 - 按照从左到右的顺序搜索(优先级由高到低)。
- 重新定义
- 包含的目录:
/sbin
(系统管理员命令)/usr/sbin
(系统管理员命令)/usr/local/sbin
(本地安装的系统管理员命令)/bin
(基本命令)/usr/bin
(用户命令)/usr/local/bin
(本地安装的用户命令)$path
(保留原有的PATH
,避免覆盖).
(当前目录)
- echo $path # 输出类似: . /sbin /usr/sbin /usr/local/sbin /bin /usr/bin /usr/local/bin /usr/local/sbin ...
2.if ( -r ${HOME}/.my_cshrc ) then ...
if (-r ${HOME}/.my_cshrc) thensource ${HOME}/.my_cshrc
endif
- 作用:
- 检查用户主目录下是否存在可读的
.my_cshrc
文件。 - 如果存在,用
source
加载该文件(通常包含自定义的 Shell 配置)。
- 检查用户主目录下是否存在可读的
- 用途:
- 允许用户自定义
csh/tcsh
环境变量、别名、函数等。
- 允许用户自定义