1. 程式人生 > >Linux命令詳解--文件與目錄查找

Linux命令詳解--文件與目錄查找

Linux命令詳解--文件與目錄查找

一·文件搜索

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在排除列表中


Linux命令詳解--文件與目錄查找