linux Shell入门:掌握Linux,OS X,Unix的Shell环境

2019-09-23 09:27:24于丽

看下"如何编写和应用shell函数"了解更多信息。

综合一下:定制你自己的Linux或Unix bash shell工作环境

现在,你将使用bash shell配置自己的环境。我只介绍bash。但是理论上zsh,ksh和其他常用shell都差不多。让我们看看如何调整shell来适合我作为系统管理员的需求。编辑你的~/.bashrc文件来附加设定。下面是一些常用的配置选项。

#1: 设定bash路径和环境变量

# 设定路径 ##
export PATH=$PATH:/usr/local/bin:/home/vivek/bin:/opt/firefox/bin:/opt/oraapp/bin
 
# 为cd命令设定路径
export CDPATH=.:$HOME:/var/www

使用less或more命令作为翻页器:

export PAGER=less

设定vim作为默认文本编辑器:

export EDITOR=vim
export VISUAL=vim
export SVN_EDITOR="$VISUAL"

设定Oracle数据库特别要求的参数:

export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_SID=XE
export NLS_LANG=$($ORACLE_HOME/bin/nls_lang.sh)

设定JAVA_HOME和其他java路径,比如java版本:

export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
 
# 把ORACLE和JAVA加入到PATH里
export PATH=$PATH:$ORACLE_HOME/bin:$JAVA_HOME/bin

使用密钥实现免密码登录让ssh远程登录更安全:

# 再也不用输密码了
/usr/bin/keychain $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOSTNAME-sh

最后,打开bash命令补齐

source /etc/bash_completion

#2: 设定bash命令提示符

设定定制的bash提示符(PS1):

PS1='{u@h:w }$ '

#3: 设定默认文件权限

## 设定默认权限为644 ##
umask 022

#4: 调整shell命令历史设定

# 不往命令历史里写入相同的行
HISTCONTROL=ignoreboth
 
# 忽略这些命令
HISTIGNORE="reboot:shutdown *:ls:pwd:exit:mount:man *:history"
 
# 通过HISTSIZE和HISTFILESIZE设定命令历史的长度
export HISTSIZE=10000
export HISTFILESIZE=10000
 
# 为命令历史文件增加时间戳
export HISTTIMEFORMAT="%F %T "
 
# 附加到命令历史文件,而不是覆盖
shopt -s histappend

#5: 设定shell会话的时区

## 为我自己的shell会话设定IST(印度标准时间) ##
TZ=Asia/Kolkata

#6: 设定shell行编辑接口

## 使用vi风格的行编辑接口,替代bash默认的emacs模式 ##
set -o vi

#7: 设定自己喜好的别名

## 增加一些保护 ##
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
 
## Memcached ##
alias mcdstats='/usr/bin/memcached-tool 10.10.29.68:11211 stats'
alias mcdshow='/usr/bin/memcached-tool 10.10.29.68:11211 display'
alias mcdflush='echo "flush_all" | nc 10.10.29.68 11211'
 
## 默认命令参数 ##
alias vi='vim'
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias bc='bc -l'
alias wget='wget -c'
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'
alias rm='rm -I --preserve-root'
alias ln='ln -i'