问题:
1.//.bashrc中添加"alias ls='ls --color'"后,使用secureCRT(已配置ANSI颜色)登录并执行"ls"时没有出现颜色.
原因:文件.bashrc没有被执行,查到.bash_profile文件信息丢失造成.bashrc文件失效(.bash_profile由login shell执行,.bashrc由非login shell执行).
补充:在不同的LINUX操作系统下,.bash_profile这个文件可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。
修复方法:在 ~/.bash_profile 中追加这样的命令:
if [ -f ~/.bashrc ]; then . ~/.bashrcfi
sudo update-alternatives --config gcc #切换gcc版本
grep -r cams /root/cams 在 “/root/cams” 目录及其子目录下的所有文件中,查找cams 字符串; grep cams test.txt 在 “test.txt” 文件中查找cams 字符串; ps -ef | grep ora 查找进程名中包含 “ora” 的所有进程信息。 find . -name 1.txt 在当前目录及其子目录下查找文件 “1.txt”; find /tmp -name 1.txt 在 “/tmp” 目录及其子目录下查找文件“1.txt”。//shell 版本
echo $SHELL #查看当前是什么shell
/bin/bash bash --version #再用"shell_name --version"查看具体版本,即"$SHELL --version"//Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
$# 是传给脚本的参数个数
$0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误shell以相似的方式处理单/双引号括起的字符串,区别在于双引号里的变量可以进行替换和变量扩展,单引号里的内容为原样输出;反引号里的内容会被当做shell命令执行,输出结果替代其内容的位置.
shell里的变量用"$var_name"表示,但在双引号字符串里扩展变量时需用"${var_name}"表示.
$bash hello.sh //等于"./hello.sh",在子shell中执行$source hello.sh //在当前shell执行,用于设置当前环境变量或针对当前shell做定制时使用可在hello.sh中加echo "$SHLVL" 来说明echo "$SHLVL" #找出子shell的层级或临时shell的嵌套层级,每个bash实例启动后,变量$SHLVL的值都会加一参考:http://linux.cn/article-5151-1.html