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 行为和用户偏好。
set autologout off
umask 022
setenv TERM xterm
setenv EDITOR vi
setenv PAGER less
limit coredumpsize 0
limit stacksize unlimited
alias rm "rm -i"
alias mv "mv -i"
alias cp "cp -i --reflink=auto --sparse=auto"
alias l "ls -ltr"
alias ll "ls -l"
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%}"
set b="%{\e[34m%}%B"
set r="%{\e[31m%}%B"
set rev="%{\e[7m%}%B"
set prompt="[${r}%n@%m${n}: ${b}%/${n}]\n${rev}[Num=%h]${n} "
unset n b r rev
变量:
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
endif
if (-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环境变量、别名、函数等。
- 允许用户自定义
