在实际系统管理中,尽量不要保留这些操作命令历史,将所有操作命令历史删除,这样系统才有安全保障。
使用history命令查看所使用过的操作命令
加上管道和more命令,一段一段显示 ,按空格键 进行翻页查看
-
158 cd /ect
-
159 vim /etc/bashrc
-
160 cd /ect
-
161 pwd
-
162 shutdown -r now
-
163 cd /ect
-
164 vim /etc/bashrc
-
165 cd /ect
-
166 pwd
-
167 cd /ect/sysconfig/
-
168 pwd
-
169 ls -a
-
170 vim /boot/grub/menu.lst
删除以前执行过的命令,加上参数 -c
-
[root@localhost ~]# history -c
删除历史命令后,要重新启动才会生效,在未重新启动前命令写在buffer中,可以输入history -w,这样就可以完全删除所使用过的命令了
-
[root@localhost ~]# history -w
建议将操作系统命令记录数量减少,HISTSIZE默认为1000行,如果操作过的命令都不想记录,可以改成0,然后重新启动,这样操作过的命令都不会记录下来
-
[root@localhost ~]# vim /etc/profile
-
# /etc/profile
-
-
# System wide environment and startup programs, for login setup
-
# Functions and aliases go in /etc/bashrc
-
-
# It's NOT a good idea to change this file unless you know what you
-
# are doing. It's much better to create a custom.sh shell script in
-
# /etc/profile.d/ to make custom changes to your environment, as this
-
# will prevent the need for merging in future updates.
-
-
pathmunge () {
-
case ":${PATH}:" in
-
*:"$1":*)
-
;;
-
*)
-
if [ "$2" = "after" ] ; then
-
PATH=$PATH:$1
-
else
-
PATH=$1:$PATH
-
fi
-
esac
-
}
-
-
-
if [ -x /usr/bin/id ]; then
-
if [ -z "$EUID" ]; then
-
# ksh workaround
-
EUID=`id -u`
-
UID=`id -ru`
-
fi
-
USER="`id -un`"
-
LOGNAME=$USER
-
MAIL="/var/spool/mail/$USER"
-
fi
-
-
# Path manipulation
-
if [ "$EUID" = "0" ]; then
-
"/etc/profile" 79L, 1797C 1,1 椤剁?
-
pathmunge /usr/sbin after
-
pathmunge /sbin after
-
fi
-
-
HOSTNAME=`/bin/hostname 2>/dev/null`
-
HISTSIZE=1000
-
if [ "$HISTCONTROL" = "ignorespace" ] ; then
-
export HISTCONTROL=ignoreboth
-
else
-
export HISTCONTROL=ignoredups
-
fi
-
-
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
-
-
# By default, we want umask to get set. This sets it for login shell
-
# Current threshold for system reserved uid/gids is 200
-
# You could check uidgid reservation validity in
-
# /usr/share/doc/setup-*/uidgid file
-
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
-
umask 002
-
else
-
umask 022
-
fi
-
-
for i in /etc/profile.d/*.sh ; do
-
if [ -r "$i" ]; then
-
if [ "${-#*i}" != "$-" ]; then
-
. "$i"
-
else
-
. "$i" >/dev/null 2>&1
-
fi
-
fi
-
done
-
-
unset i
-
unset -f pathmunge
HISTSIZE=1000 //默认为1000,设为0则不会做记录
因此,在server用户的.profile文件中加上如下设置:
$HOME/bin/server >>/tmp/server.tmp 2> &1
说明:
1."&"符号的作用是使系统将进程作为后台进程处理。
2."2"的作用。
SHELL在执行一个UNIX命令时,自动打开三个文件:stdin(标准输入)、stdout(标准输出
)、stderr(标准错误),文件描述字分别是0、1、2。所以,上面语句中的"2"表示标准错误的
文件描述字。将server进程的错误信息重定向到/tmp/sever.tmp文件中,而不是stdout上,这
样处理后既不会干扰前台工作,而且用户可随时浏览/tmp/server.tmp文件及时发现错误,便
于程序调试,一举两得。对于后台进程,一般都要将其结果重定向到某固定文件中。
3.由于UNIX系统是多用户、多任务、分时处理系统,所以不排除许多用户以server用户
注册,因此其.profile文件会被执行许多次,因之server进程也会被启动许多次,这种情况是
有害的,所以我们作以下修改:
if ps -ef| grep "server" >/dev/null
then echo"server already running……"
else
echo "server is running..."
$HOME/bin/server >> /tmp/server.tmp 2>&1
sleep 5
fi
对所有UNIX/Xenix系统守侯进程都可按上述处理。
常见的环境变量
PATH:决定了shell将到哪些目录中寻找命令或程序
HOME:当前用户主目录
MAIL:是指当前用户的邮件存放目录。
SHELL:是指当前用户用的是哪种Shell。
HISTSIZE:是指保存历史命令记录的条数。
LOGNAME:是指当前用户的登录名。
HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
PS1:是基本提示符,对于root用户是#,对于普通用户是$。
PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。
# PS1=” Hello,My NewPrompt :) “
参考文章
/etc/profile和 . profile 文件
阅读(1975) | 评论(0) | 转发(0) |