文件名在telnet中显示乱码的问题,因为不能重启服务器,执行以下环境变量更改即可中文显示:
export LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN:en_US.UTF-8"
export LC_CTYPE="zh_CN.GB18030"
export LC_TIME="en_US.UTF-8"
[oracle@localhost dbs]$ ll
total 6256632
-rw-rw---- 1 oracle oinstall 1552 Jul 28 2010 hc_orcl.dat
-rw-r----- 1 oracle oinstall 12920 May 3 2001 initdw.ora
-rw-r----- 1 oracle oinstall 8385 Sep 11 1998 init.ora
-rw-r----- 1 oracle oinstall 2457 Jul 28 2010 initorcl.ora
-rw-r----- 1 oracle oinstall 6390030336 Feb 25 10:32 ?????募???路??
-rw-rw---- 1 oracle oinstall 24 Jul 28 2010 lkORCL
-rw-r----- 1 oracle oinstall 1536 Sep 9 18:45 orapworcl
-rw-r----- 1 oracle oinstall 10436608 Feb 25 09:46 snapcf_orcl.f
-rw-r----- 1 oracle oinstall 4608 Feb 24 21:55 spfileorcl.ora
[oracle@localhost dbs]$ export LANG="zh_CN.GB18030"
[oracle@localhost dbs]$ export LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN:en_US
.UTF-8"
[oracle@localhost dbs]$ export LC_CTYPE="zh_CN.GB18030"
[oracle@localhost dbs]$ export LC_TIME="en_US.UTF-8"
[oracle@localhost dbs]$ ll
总用量 6256632
-rw-rw---- 1 oracle oinstall 1552 2010-07-28 hc_orcl.dat
-rw-r----- 1 oracle oinstall 12920 2001-05-03 initdw.ora
-rw-r----- 1 oracle oinstall 8385 1998-09-11 init.ora
-rw-r----- 1 oracle oinstall 2457 2010-07-28 initorcl.ora
-rw-rw---- 1 oracle oinstall 24 2010-07-28 lkORCL
-rw-r----- 1 oracle oinstall 1536 Sep 9 18:45 orapworcl
-rw-r----- 1 oracle oinstall 10436608 Feb 25 09:46 snapcf_orcl.f
-rw-r----- 1 oracle oinstall 4608 Feb 24 21:55 spfileorcl.ora
-rw-r----- 1 oracle oinstall 6390030336 Feb 25 10:37 数据文件的路径
多个环境验证过,证明是行之有效的,希望遇到类似问题的朋友,可以借助以上方法解决您的问题。
您可能感兴趣的的文章:
linux打开浏览器中文显示乱码的解决办法
SSH显示中文乱码问题
linux中文显示乱码的解决办法
tcp_wrappers防火墙配置方法,供大家学习参考。
两个配置文件:/etc/hosts.allow和/etc/hosts.deny
格式:
service:host(s) [:action]
服务名 主机名(或多个) 动作,符合条件后所采取的动作
关键字:
ALL
ALL EXCEPT
如:
ALL:ALL EXCEPT 192.168.0.8除了这台机器,所有的执行所有服务时被允许或拒绝。
service代表服务名,就是使用ps -e看到的服务名。
host(s)形式:192.168.0.0 192.168.1. abc.com def.com
action的写法:
in.telnetd:ALL:spawn /bin/echo `data` %c %d >> /var/log/tcp_wrappers
表示在telnet请求时执行特定的命令,通常是向某个日志文件中写入一条信息。
spawn代表执行一个命令,%c、%d以及其它参数的用法可以使用man hosts.allow或man host.deny
tcp_wrappers防火墙的局限性:
某个服务是否可以使用tcp_wrappers防火墙,取决于该服务是否应用了libwrapped库文件,如果应用了就可以使用tcp_wrappers防火墙。sendmail、sshd、tcpd、xinetd、gdm、portmap都可以使用。
实验:
禁止某人访问你的telnet服务
in.telnetd:192.168.1.4
允许某人访问你的telnet服务,但对该访问进行日志
in.telnetd:ALL:spawn /bin/echo `data` %h >>/var/log/telnet
sshd:192.168.0.6
vi /etc/hosts
in.telnetd:ip地址
in.telnetd:crazylinux.hn.org
in.telnetd:other_ip
在以普通用户登录系统后,需要用su切换至管理员权限。
今天有一同事说在切换用户的时候,找不到该用户下用户命令,后来仔细检查了一下过程,发现他切换用户的时候用的命令是 su oracle,以前我们切换用户的时候是su - oracle ,只知道要这样用,不清楚为什么要这么用,今天我仔细研究了他们的区别,以下是研究的过程:
先用su oracle并且把环境变量重定向到/tmp/1 中
[root@stream ~]# su oracle
[oracle@stream root]$ env >>/tmp/1
再用 su - oracle 把环境变量重定向到/tmp/2中
[root@stream ~]# su - oracle
[oracle@stream ~]env >>/tmp/2
比较上面2个过程,可以发现当使用su oracle 的时候,目录没有改变,而且PATH的变量也没改变,用diff /tmp/1 /tmp/2 比较2个环境变量
[oracle@stream tmp]$ diff 1 2
4,6c4
< HISTSIZE=1000
< SSH_CLIENT=200.120.75.211 1765 22
< SSH_TTY=/dev/pts/1
---
> HISTSIZE=500
9,11c7,11
< PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
< MAIL=/var/spool/mail/root
< PWD=/root
---
> ORACLE_SID=orcl
> ORACLE_BASE=/DBSoftware/app/oracle
> LD_LIBARY_PATH=/DBSoftware/app/oracle/product/10.2.0/db_1/lib
> MAIL=/var/spool/mail/oracle
> PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/DBSoftware/app/oracle/product/10.2.0/db_1/bin
12a13
> PWD=/tmp
14a16
> SHLVL=1
16d17
< SHLVL=2
19d19
< SSH_CONNECTION=200.120.75.211 1765 200.120.75.214 22
20a21
> ORACLE_HOME=/DBSoftware/app/oracle/product/10.2.0/db_1
22a24
> OLDPWD=/home/oracle
[oracle@stream tmp]$ diff 1 2
4,6c4
< HISTSIZE=1000
< SSH_CLIENT=200.120.75.211 1765 22
< SSH_TTY=/dev/pts/1
---
> HISTSIZE=500
9,11c7,11
< PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
< MAIL=/var/spool/mail/root
< PWD=/root
---
> ORACLE_SID=orcl
> ORACLE_BASE=/DBSoftware/app/oracle
> LD_LIBARY_PATH=/DBSoftware/app/oracle/product/10.2.0/db_1/lib
> MAIL=/var/spool/mail/oracle
> PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/DBSoftware/app/oracle/product/10.2.0/db_1/bin
12a13
> PWD=/tmp
14a16
> SHLVL=1
16d17
< SHLVL=2
19d19
< SSH_CONNECTION=200.120.75.211 1765 200.120.75.214 22
20a21
> ORACLE_HOME=/DBSoftware/app/oracle/product/10.2.0/db_1
22a24
> OLDPWD=/home/oracle
[oracle@stream tmp]$
这里可以很清楚的看到当使用 su oracle 的使用,oracle 用户下的环境变量很多都没加载进来,可su - oracle都吧环境变量都加载了呢,这是为什么呢?
我们 man su 一下, -, -l, --loginmake the shell a login shell 大概意思就是用su - 的时候要执行一下登陆的shell脚本,我们都知道在用户登陆过程中用/etc/profile,.bash_profile,.bashrc,/etc/bashrc这些脚本来决定环境变量,下面再做个测试:
在root用户下,
[root@stream ~]# echo $HISTSIZE
1000
现在我们改变下/etc/profile 中HISTSIZE 变量的值 改成500,
[root@stream ~]# grep HISTSIZE /etc/profile
HISTSIZE=500
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
然后su oracle,
[root@stream ~]# su oracle
[oracle@stream root]$ echo $HISTSIZE
1000
[oracle@stream root]$
su - oracle 呢?
[root@stream ~]# su - oracle
[oracle@stream ~]$ echo $HISTSIZE
500
HISTSIZE 变量值变了。
通过以上比较我们发现用su - 就相当于一个完整的登陆过程,而su只是简单的把用户切换过去,一些环境变量什么的都没带过去。
最后加上:login shell , /etc/profile,.bash_profile,.bashrc,/etc/bashrc 都执行
non login shell, /etc/profile,.bash_profile 不执行, .bashrc,/etc/bashrc 执行。