Linux对环境变量的理解以及alias、rm、hostory的使用

目标

  1. 整理 全局环境变量 个人环境变量 which的理解
  2. 整理 别名
  3. 整理 删除
  4. 整理 history

全局环境变量

全局环境变量的配置文件是:/etc/profile

全局环境变量中一般配置的是共用的程序环境 比如java

下面以java为例子配置

[root@aliyun ~]# vim /etc/profile

java的安装路径在 /usr/java下,所以文件中如下配置

export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH

需要注意的是 $PATH接在$JAVA_HOME的后面,即把$JAVA_HOME放在$PATH的最前面

/opt/module/jdk1.8.0_144/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/module/jdk1.8.0_144/bin:/root/bin

个人环境变量

个人环境变量配置在 ~/.bashrc 文件中,这里需要注意的是如果配置在 ~/.bash_profile文件中,使用ssh远程连接的时候不会加载 ~/.bash_profile,造成一些无法排查的bug

个人环境配置一些独自使用的程序变量,如果配置在用户的个人环境中,其他用户无法访问,比如在hadoop用户下配置 hadoop的环境变量,只有hadoop一个用户能使用

which的理解

安装完程序或者配置完变量后,最好的习惯是使用which看一下,检查一下环境是否配置正确,否则可能遇到自以为正确的bug

[root@aliyun ~]# which java
/opt/module/jdk1.8.0_144/bin/java

别名

别名的使用可以简写冗长且难以记忆或者难以书写的命令

格式:

alias [-p] [name[=value] ... ]

例子:

[root@aliyun ~]# alias a='ll -a'
[root@aliyun ~]# a
total 80
dr-xr-x---. 6 root root 4096 Nov 15 19:46 .
dr-xr-xr-x. 19 root root 4096 Nov 3 17:29 ..
-rw------- 1 root root 6453 Nov 14 11:16 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
drwx------ 3 root root 4096 Aug 18 2017 .cache

查询主机中已经存在的别名:

[root@aliyun ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

永久配置别名:

配置在环境变量中 /etc/profile~/.bashrc~/.bash_profile中,即永久配置别名

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

删除

命令 作用
mkdir 删除一个空文件
rm -f 直接删除文件
rm -rf 直接删除文件夹
rm -rf 是一个高危的命令

场景:

shell脚本中,定义变量k = "" 然后rm -rf $k 会默认指定根目录下

K=""rm -rf $K 实际上是rm -rf /

解决办法是先判断k是否为空

history

history命令用来查询历史记录

[root@aliyun ~]# history | head -10
1 passwd
2 ls
3 cat /etc/hosts
4 yum install redis
5 yum install epel-release
6 yum install redis
7 df -hT
8 service redis start
9 service redis stop
10 service redis status

场景:

莫名其妙的发现主机中的数据没了,可以查看一下历史记录用了哪些命令

使用 !n 来快速使用一条历史命令

[root@aliyun ~]# !7
df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 40G 11G 27G 29% /
devtmpfs devtmpfs 911M 0 911M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 332K 920M 1% /run
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs tmpfs 184M 0 184M 0% /run/user/0

history -c 命令可以清空当前窗口的历史输出命令。

[root@aliyun ~]# history -c
[root@aliyun ~]# history
1 history

但是历史记录实际上保存在 ~/.bash_history中的

[root@aliyun ~]# cat .bash_history | head -10
passwd
ls
cat /etc/hosts
yum install redis
yum install epel-release
yum install redis
df -hT
service redis start
service redis stop
service redis status

彻底清空该文件夹的方式为:cat /dell/null > .bash_history

[root@aliyun ~]# cat /dev/null > .bash_history 
[root@aliyun ~]# cat .bash_history
[root@aliyun ~]#
Author: Tunan
Link: http://yerias.github.io/2018/09/19/linux/2/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.