第十章 认识和学习bash
一个命令有了别名的时候,比如:alias echo=”echo -n”。那么执行echo的时候是执行echo还是echo –n呢?
type –aecho:查看命令的执行顺序。
进入Linux的控制台后,会有提示信息
这些信息放在/etc/issue这个文件中。用vim编辑器编辑后保存,就可以修改这些信息。
在控制台中登入系统后也会有提示信息,这些信息存放在/etc/motd中,用vim编辑器编辑后保存也可以修改这些信息。
bash的环境配置文件:
在登入系统的时候,会有两个shell:login-shell和no-login shell。
在图形化界面中启用终端的时候,不用再登入,这是no-login shell,而在控制台中登入的时候,需要登入,这是login-shell。
登入系统的时候,会先读取/etc/profile,这个文件里面保存了系统的全局变量,在读取/etc/inputrc,在这个文件中定义了环境变量等。然后在读取/etc/profile.d。登入完系统后,会读取.bash_profile这个隐藏文件,在这个隐藏文件中定义了关于登入用户的信息,然后再将这些信息定义成环境变量。
修改环境设置时,一般修改.bash_profile这个文件。
终端机的环境设置:
set –u:在使用变量的时候,如果变量没有定义,那么就输出提示信息,如果变量定义了,就不显示。
set +u:与上功能相反。
set –x:系统会跟踪每一个操作。一般使用在排错的时候使用(个人认为像单步调试)。
通配符与特殊符号:
首先,一对中括号 [] 只匹配一个字符,凡是出现在中括号里面的都是匹配的。‘?’:随意一个字符。‘!’:否定。‘*’:0-n个任意字符。
例:在一个文件夹中寻找文件,这个文件的第一个字符只能是字母,第二个字符只能是数字,第三个字符随意,第四个字符不能是数字,之后随意,最后要以.mp3结束。
[a-z]:从a到z。[a\-z]:a,-,z这三个字符。
[0-9]:从0到9。
?:随意一个字符。
[!0-9]:不是数字。
ls [a-z][0-9]?[!0-9]*.mp3:上个问题的答案。
数据流的重定向:
在终端中输入命令,执行后在终端中显示,但是当命令输入的很多的时候,就会覆盖掉以前的命令,系统默认的是从键盘输入命令然后输出到屏幕上,你可以设置输入到文件中,例如:
cal > xx(>两边都有空格)。xx是一个文件。这样,就会把cal命令执行后的结果写入xx中,如果xx中有内容的话,会被覆盖掉。
如果不想覆盖掉:cal >> xx。用两个大于号,这个过程叫追加。
注意:以上只能重定向正确的命令,也就是能够执行的命令,而对于不能执行的命令,是不能够重定向的。cal > xx 1>&2。
如果想重定向错误的命令:2>,2>>。这个不能重定向真确的命令。如果想重定向正确的:cal 2> xx 2>&1。
&>:不管真确的还是错误的都会重定向。
输入的重定向:
tr ‘a-z’‘A-Z’ < xx:tr是转义的意思,将xx文件中的内容按照将小写转换成大写的形式显示出来。
aa=33333
cat >xxxx << EOF
$aa
ssssssssssssss
EOF
<<:以上就是<<的使用,必须以<<后面的内容结束,(这个东西好像叫here文档),这个里面支持变量。