1、输入输出重定向
输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。相较于输入重定向,我们使用输出重定向的频率更高,所以又将输出重定向分为了标准输出重定向和错误输出重定向两种不同的技术,以及清空写入与追加写入两种模式。
#使用输入重定向把 readme.txt 文件导入给 wc -l 命令,统计一 下文件中的内容行数
[root@linuxprobe ~]# wc -l < readme.txt
2
echo "输出重定向" > out.txt #将内容重定向到out.txt中,会清空原有文件的数据
echo "输出重定向" >> out.txt #将内容追加到out.txt中,不会清空原有文件的数据
2> xxxx.txt #将错误输出重定向到一个文件中(清空原有文件的数据)
2>> xxxx.txt #将错误输出重定向到一个文件中(不会清空原有文件的数据)
[root@linuxprobe ~]# ls -l xxxxxx > /root/stderr.txt
cannot access xxxxxx: No such file or directory
[root@linuxprobe ~]# ls -l xxxxxx 2> /root/stderr.txt
[root@linuxprobe ~]# cat /root/stderr.txt
ls: cannot access xxxxxx: No such file or directory
2、管道符、通配符
| 可以使用多个管道符,搭配awk、sed使用更加
[root@localhost study]# cat readme.txt | wc -l
9
- 通配符
[root@localhost study]# ll a*
-rwxr-xr-x. 1 root root 0 12月 2 2025 abc.txt
-rw-r--r--. 1 root root 15440 4月 18 17:30 a.txt
3、转移字符
1、反斜杠(\) 使反斜杠后面的一个变量变为单纯的字符串
2、单引号(’ ‘) 转义其中所有的变量为单纯的字符串
3、双引号(” “) 保留其中的变量属性,不进行转义处理。
4、反引号(4、环境变量
一、按照生命周期来分,Linux环境变量可以分为两类:
1、永久的:需要用户修改相关的配置文件,变量永久生效。
2、临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。例如:编辑/etc/profile文件,添加CLASSPATH变量
[root@localhost study]# vim /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib #增加的变量值
[root@localhost study]# source /etc/profile #使改完之后生效
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib #增加的变量值
二、按照作用域来分,Linux环境变量可以分为两类:
1、系统环境变量:系统环境变量对该系统中所有用户都有效。
2、用户环境变量:顾名思义,这种类型的环境变量只对特定的用户有效。 ```basic ~/.bashrc/etc/profile
1).bash_profile(推荐首选) 当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量。 2).bashrc 当用户登录时以及每次打开新的Shell时该文件都将被读取,不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。 3).bash_logout 当每次退出系统(退出bash shell)时执行该文件。 4).bash_history 保存了当前用户使用过的历史命令。
<a name="bxBtt"></a>
###### 三、环境变量脚本文件的执行顺序
/etc/profile->/etc/profile.d->/etc/bashrc->用户的.bash_profile->用户的.bashrc同名的环境变量,如果在多个脚本中有配置,以最后执行的脚本中的配置为准。
<a name="FZPRf"></a>
###### 四、重要环境变量的详解
1、PATH环境<br />1)PATH环境变量存放的是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录。<br />export PATH=目录1:目录2:目录3:......目录n:
```basic
[root01@VM-0-15-centos ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/coremail/java/jdk8u275-b01/bin:/home/root01/.local/bin:/home/root01/bin
2、LANG环境变量
LANG环境变量存放的是Linux系统的语言、地区、字符集,它不需要系统管理员手工设置,/etc/profile会调用/etc/profile.d/lang.sh脚本完成对LANG的设置。
CentOS6.x 字符集配置文件在/etc/syscconfig/i18n文件中。
CentOS7.x 字符集配置文件在/etc/locale.conf文件中,内容如下
[root01@VM-0-15-centos ~]$ more /etc/locale.conf
LANG=en_US.utf8
补充:
1、LD_LIBRARY_PATH环境变量
C/C++语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C++程序员来说非常重要。
LD_LIBRARY_PATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同。
export LD_LIBRARY_PATH=目录1:目录2:目录3:……目录n:.
2、CLASSPATH
JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要。
CLASSPATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同。