一. 文件搜索
which: 用来查找命令的绝对路径
-- 显示 shell 命令的绝对路径
-- 仅仅会在 PATH 变量中搜索要查找的命令
-- 搜索时先查找别名, 然后从 PATH 中查找
1, 查看用户的 PATH 变量: 命令的搜索路径
- # echo $PATH
- /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
command not found 可能原因:
1) 敲错了
2) 命令没有安装
3) 命令所在路径没在 PATH 变量的定义中
- # cp which vim /tmp/vim2
- # vim2 /etc/passwd
- bash: vim2: command not found
- # /tmp/vim2 /etc/passwd // 绝对路径执行
2, 添加路径到 PATH
1) 临时修改 PATH 值
- # PATH=$PATH:/tmp //$PATH: 保留变量原有值
- # echo $PATH
- /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/tmp
2) 永久修改 PATH 值工作中一定会用的
- /etc/profile // 全局配置文件, 对所有用户生效
- ~username/.bashprofile // 局部配置文件, 只对特定用户生效
- # vim /root/.bashprofile
- PATH=$PATH:$HOME/bin:/tmp // 添加红色部分即可
上述文件不是即时生效的, 正常情况下, 它是用户登录时执行的.
- # source /root/.bashprofile // 重新读取配置文件, 使修改生效
- # echo $PATH
- /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/root/bin:/tmp
弊端: 每次新开启一个终端或标签, 都需要执行# source /root/.bashprofile
如果想一劳永逸, 那么需要退出系统, 重新登录, 即注销.
- System --> Log out root --> Log out
- # echo $PATH
- /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/tmp
- # which ls
- alias ls='ls --color=auto'
- /bin/ls
- # which vim
- /usr/bin/vim
命令的别名: alias
1, 查看当前系统中有哪些别名 (root 用户和普通用户的别名可能不一样)
2, 设置命令的别名
1) 临时
2) 永久, 改文件
别名在哪定义的?
- (1)/root/.bashrc cp rm mv
- (2) /etc/profile.d
- colorls.sh
- which2.sh
3, 取消别名
- [ profile.d]# unalias vi
- [ profile.d]# vi /etc/passwd // 没颜色了
- locate
-- 通过文件名检索文件, 检索速度最快
-- 所有能够检索的东西, 都是存放在数据库中的
-- locate 局限性, 有的文件系统, 有的文件及有的目录默认是不会搜索的
1, 假设我知道网卡配置文件的名字, 但是不知道具体路径:
- # locate ifcfg-eth0
- /etc/sysconfig/network-scripts/ifcfg-eth0
- # locate ifcfg
- /etc/dbus-1/system.d/nm-ifcfg-rh.conf
- /etc/sysconfig/network-scripts/ifcfg-eth0
- /etc/sysconfig/network-scripts/ifcfg-lo
- /sbin/ifcfg
- /usr/lib64/NetworkManager/libnm-settings-plugin-ifcfg-rh.so
- /usr/share/man/man8/ifcfg.8.gz
- /var/log/anaconda.ifcfg.log
2, 手动更新数据库
- # cp which vim /root/vim3
- # locate vim3 // 未查询到结果
原因: 因为 locate 的数据库是一天一更新, 不是实时更新的.
- # updatedb
- # locate vim3
- /root/vim3
数据库文件:/var/lib/mlocate/mlocate.db
报错:
1) 数据库文件不存在
2) 手动生成它
# updatedb
3,locate 数据库配置文件
- # vim /etc/updatedb.conf
- # ls /tmp/vim2
- /tmp/vim2
- # locate vim2 // 搜索不到, 因为 / tmp 在排除列表中
来源: http://www.bubuko.com/infodetail-2550392.html