shell 学习 笔记(二)


一、Bash Shell的操作环境


bash的登陆与欢迎信息


/etc/issue 登陆前的信息
/etc/issue.net  telnet 远程登陆的信息
/etc/motd 登陆后的信息


bash的环境配置文件


login shell 只会读取 这两个文件

/etc/profile
~/.bash_profile  或 ~/.bash_login  或  ~/.profile  (login shell 只会读取这三个的其中一个,而且读取的顺序是按照上面的顺序)


可以在 /etc/profile看到

for sh in /etc/profile.d/*.sh ; do


[ -r "$sh" ] && . "$sh"
done

可以把自己要启动的shell脚本 都放在 /etc/profile.d/ 里


/etc/bash/bashrc(gentoo是放在这里,redhat 是放在/etc/bashrc) 定义了PS1 变量(就是  每行前面的 localhost ~ # 怎么显示)等

/etc/man.config   man的配置文件  里面 MANPATH 是 man去 寻找的路径

~/.bash_history 记录历史记录

~/.bahs_logout   记录当我们注销bash后系统再帮我们做的事

source 或  .   读取配置文件到shell环境中


终端机的环境设置:stty,set



stty可以设置 eof kill, 等的快捷键
(ctrl+U 删除 光标前面的命令,ctrl+?恢复)

set [-uvCHhmBx]

通配符与特殊符号

*             代表 0 个或无穷多个任意字符
?             代表『一定有一个』任意字符
[ ]          同样代表『一定有一个在括号内』癿字符(非任意字符)。例如 [abcd] 代表『一定有一个字 符, 可能是 a, b, c, d 这四个任何一个』
[ - ]        若有减号在中括号内时,代表『在编码顺序内癿所有字符』。例如 [0-9] 代表 0 刡 9 乊间癿所有数字,因为数字癿诧系编码是连续癿!
[^ ]       若中括号内癿第一个字符为挃数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,叧要是非 a, b, c 癿其他字符就接叐                   癿意思。

数据流重定向



standard   (标准的意思)  standard input  标准输入


标准输入(stdin):代码为0    ,<或<<

标准输出(stdout):代码 1, 使用  >或>>

标准错误输出(stderr)代码 2,使用 2> 或 2>>

 一个>表示覆盖原有的文件,>> 表示添加

/dev/null 垃圾黑洞   find / home -name 111 2> /dev/null  丢弃错误信息

如果要将错误信息和正确信息写到同一个文件中

find /home -name .bashrc > list 2> list                 <==错误

find /home -name .bashrc >> list 2>> list           <==虽然能保存正确错误,但顺序可能不对

find /home -name .bashrc > list 2>&1                  <==正确

find /home -name .bashrc &> list                           <==正确


<

cat > /test/hist  <  /root/.bash_history
hist文件就是 .bash_history的内容


<< 表示结束 输入 的意思

cat  > /test/hist << "eof"
aaa
bbb
eof                          当输入eof时结束 输入


 

管道命令(pipe)


“ | ”

standard error output  会被 忽略


ls  -al  /etc | less


选取命令:cut,grep


cut

localhost ~ # echo $PATH | cut -d ':' -f 2
/usr/local/bin
localhost ~ # echo $PATH | cut -d ':' -f 2,3
/usr/local/bin:/usr/sbin
localhost ~ #


localhost ~ # export
declare -x CG_COMPILER_EXE="/usr/bin/cgc"
declare -x COLORTERM="gnome-terminal"
declare -x CONFIG_PROTECT="/usr/share/gnupg/qualified.txt /usr/share/config"


localhost ~ # export | cut -c 12-
CG_COMPILER_EXE="/usr/bin/cgc"
COLORTERM="gnome-terminal"
CONFIG_PROTECT="/usr/share/gnupg/qualified.txt /usr/share/config"

grep

只要有root的行就输出

last | grep 'root'

没有root的行输出

last | grep -v 'root'


 


 


 


 


 


 


 


 


 


 


 


 

你可能感兴趣的:(linux,shell)