Linux 常用命令(二)

Linux常用命令(二)

Linux文件管理

Linux的文件層次標(biāo)準(zhǔn)

Filesystem Hierarchy Standard(FHS)根據(jù)FHS的官方文件指出晰甚,該標(biāo)準(zhǔn)主要是為了用戶了解已安裝程序通常放置在哪個(gè)目錄下娇哆,同時(shí)希望獨(dú)立的開發(fā)商樱拴、系統(tǒng)開發(fā)者和用戶都遵循這個(gè)標(biāo)準(zhǔn)。

典型的目錄 可分享的 不可分享的
不可改變的 /usr(軟件存放處) /etc(配置文件)
不可改變的 /opt(第三方軟件) /boot(開機(jī)與內(nèi)核)
可以改變的 /var/mail(郵件) /var/run(程序相關(guān))
可以改變的 /var/spool/news(新聞) /var/lock(程序相關(guān))

Linux 目錄樹如下所示:

├── bin -> usr/bin          # bin是Binary的縮寫, 這個(gè)目錄存放著最經(jīng)常使用的命令。
├── boot                    # 這里存放的是啟動(dòng)Linux時(shí)使用的一些核心文件,包括一些連接文件以及鏡像文件。
├── dev                     # dev是Device(設(shè)備)的縮寫, 該目錄下存放的是Linux的外部設(shè)備屈扎,在Linux中訪問設(shè)備的方式和訪問文件的方式是相同的。
├── etc                     # 這個(gè)目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄撩匕。
├── home                    # 用戶的主目錄鹰晨,在Linux中,每個(gè)用戶都有一個(gè)自己的目錄止毕,一般該目錄名是以用戶的賬號(hào)命名的模蜡。
├── lib -> usr/lib          # 這個(gè)目錄里存放著系統(tǒng)最基本的動(dòng)態(tài)連接共享庫,其作用類似于Windows里的DLL文件扁凛。幾乎所有的應(yīng)用程序都需要用到這些共享庫忍疾。
├── lib64 -> usr/lib64      # 
├── lost+found              # 這個(gè)目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后谨朝,這里就存放了一些文件卤妒。
├── media                   # linux系統(tǒng)會(huì)自動(dòng)識(shí)別一些設(shè)備,例如U盤叠必、光驅(qū)等等荚孵,當(dāng)識(shí)別后,linux會(huì)把識(shí)別的設(shè)備掛載到這個(gè)目錄下纬朝。
├── mnt                     # 系統(tǒng)提供該目錄是為了讓用戶臨時(shí)掛載別的文件系統(tǒng)的,我們可以將光驅(qū)掛載在/mnt/上骄呼,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了共苛。
├── opt                     # 這是給主機(jī)額外安裝軟件所擺放的目錄。比如你安裝一個(gè)ORACLE數(shù)據(jù)庫則就可以放到這個(gè)目錄下蜓萄。默認(rèn)是空的隅茎。
├── proc                    # 這個(gè)目錄是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射嫉沽,我們可以通過直接訪問這個(gè)目錄來獲取系統(tǒng)信息辟犀。
|                           # 這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存里,我們也可以直接修改里面的某些文件绸硕,比如可以通過下面的命令來屏蔽主機(jī)的ping命令堂竟,
|                           # 使別人無法ping你的機(jī)器:
|                           # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
├── root                    # 該目錄為系統(tǒng)管理員魂毁,也稱作超級(jí)權(quán)限者的用戶主目錄。
├── run                     # 是一個(gè)臨時(shí)文件系統(tǒng)出嘹,存儲(chǔ)系統(tǒng)啟動(dòng)以來的信息席楚。
|                           # 當(dāng)系統(tǒng)重啟時(shí),這個(gè)目錄下的文件應(yīng)該被刪掉或清除税稼。如果你的系統(tǒng)上有 /var/run 目錄烦秩,應(yīng)該讓它指向 run。
├── sbin -> usr/sbin        # s就是Super User的意思郎仆,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序只祠。
├── selinux                 # 這個(gè)目錄是Redhat/CentOS所特有的目錄,Selinux是一個(gè)安全機(jī)制扰肌,類似于windows的防火墻铆农。
|                           # 但是這套機(jī)制比較復(fù)雜,這個(gè)目錄就是存放selinux相關(guān)的文件的狡耻。
├── srv                     # 該目錄存放一些服務(wù)啟動(dòng)之后需要提取的數(shù)據(jù)墩剖。
├── sys                     # 這是linux2.6內(nèi)核的一個(gè)很大的變化。該目錄下安裝了2.6內(nèi)核中新出現(xiàn)的一個(gè)文件系統(tǒng) sysfs 夷狰。
├── tmp                     # 這個(gè)目錄是用來存放一些臨時(shí)文件的岭皂。
├── usr                     # 這是一個(gè)非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下沼头,類似于windows下的program files目錄爷绘。
|   ├── bin -> usr/bin      # 系統(tǒng)用戶使用的應(yīng)用程序。
|   ├── include             # C/C++header Files
|   ├── lib -> usr/lib      # 應(yīng)用程序庫文件
|   ├── lib64 -> usr/lib64  # 
|   ├── local               # 一些自行安裝的應(yīng)用程序文件目錄
|   ├── sbin -> usr/sbin    # 超級(jí)用戶使用的比較高級(jí)的管理程序和系統(tǒng)守護(hù)程序进倍。
|   ├── share               # 一些共享文件
|   ├── src                 # 內(nèi)核源代碼默認(rèn)的放置目錄土至。
|   ├── tmp                 # 
|   └── var                 #                  
└── var                     # 這個(gè)目錄中存放著在不斷擴(kuò)充著的東西,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個(gè)目錄下猾昆。包括各種日志文件陶因。
|   ├── cache               # 程序執(zhí)行緩存(暫存)文件
|   ├── lib                 # 應(yīng)用產(chǎn)生的數(shù)據(jù)文件放置目錄
|   ├── local               #                
|   ├── lock -> ../run/lock # 鎖定程序或設(shè)備使用
|   ├── log                 # 放置系統(tǒng)日志記錄文件
|   ├── run -> ../run       # 執(zhí)行PID
|   ├── spool               # 存放數(shù)據(jù)序列,如mail等
|   └── www                 # 預(yù)設(shè)網(wǎng)頁放置目錄

常用文件管理命令

目錄相關(guān)命令

場(chǎng)景 命令 描述
切換目錄 cd cd {目標(biāo)目錄} 切換至目標(biāo)目錄文件
顯示目錄 pwd pwd 顯示當(dāng)前所在目錄
新建目錄 mkdir mkdir {目標(biāo)目錄} 創(chuàng)建目標(biāo)目錄
刪除目錄 rmdir rmdir {目標(biāo)目錄} 刪除目標(biāo)目錄
樹形目錄 tree tree -L {目錄層次深度垂蜗,如:1} 顯示從當(dāng)前目錄直到指定目錄深度下的所有文件楷扬,1代表當(dāng)前目錄
tree -d僅顯示目錄
tree -a 同時(shí)顯示隱藏文件
tree -i -f 不使用縮進(jìn)線(-i),而是使用完整路徑(-f)贴见,使用-N不對(duì)空白以及特殊字符轉(zhuǎn)義
tree -s -h 在每個(gè)節(jié)點(diǎn)后面顯示其大小(-s)烘苹,以方便閱讀的形式展示(-h顯示1k而不是1024)
tree -N 使用-N不對(duì)空白以及特殊字符轉(zhuǎn)義
tree -P {{*.txt}} 使用通配符(glob)來過濾文件
tree -l {{*.txt}} 忽略匹配通配符的項(xiàng)目
# a 顯示隱藏文件
# f 顯示完整路徑
# s 顯示文件目錄大小
# h 顯示1k而不是1024
# L 顯示目錄層次深度為 2,1 表示當(dāng)前目錄
tree -afshL 2

##  顯示結(jié)果
└── [  40]  ./download
    └── [186M]  ./download/jdk-8u251-linux-x64.tar.gz

復(fù)制片部、移動(dòng)以及移動(dòng)(重命名)

場(chǎng)景 命令 描述
創(chuàng)建文件 touch touch 文件名稱創(chuàng)建文件
復(fù)制 cp cp {源文件地址} {目標(biāo)文件地址}復(fù)制文件
刪除 rm rm {文件名稱/文件路徑} 只能刪除任意位置文件
rm -r {目錄名稱/目錄路徑}遞歸刪除目錄以及其子目錄
rm -rf {目錄名稱/目錄路徑}強(qiáng)制遞歸刪除目錄以及其子目錄
rm -i {目錄名稱/目錄路徑}刪除前逐一詢問是否刪除確認(rèn)
rm -v {目錄名稱/目錄路徑}用冗長模式刪除文件镣衡,每刪除一個(gè)文件打印一條信息
移動(dòng) mv mv {源文件/目錄} {目標(biāo)文件/目錄}

軟連接命令

所謂軟連接,類似windows中的快捷方式。

語法 說明 描述
ln {源文件或目錄} {目標(biāo)文件或目錄} 創(chuàng)建硬連接
ln -s {源文件或目錄} {目標(biāo)文件或目錄} 創(chuàng)建軟連接
ln –snf {新的源文件或目錄} {目標(biāo)文件或目錄} 修改軟連接

文件查看命令

命令 說明 描述
cat 由第一行開始顯示內(nèi)容 cat {文件名稱}標(biāo)準(zhǔn)輸出一個(gè)文件內(nèi)容
cat {文件1名稱} {文件2名稱} > {目標(biāo)文件}將多個(gè)文件(的內(nèi)容)連接成一個(gè)目標(biāo)文件
cat {文件1名稱} {文件2名稱} >> {目標(biāo)文件}將多個(gè)文件(的內(nèi)容)追加到一個(gè)目標(biāo)文件末尾
cat -n {文件名稱}給所有輸出行編號(hào)
tac 由最后一行開始顯示內(nèi)容 從名字上來看與cat是完全相反的廊鸥,和cat輸出的比較望浩,完全是倒過來的。
nl 顯示黍图,同時(shí)顯示行號(hào) -b 指定行號(hào)指定的方式曾雕,主要有兩種:
-b a 表示不論是否為空行,也同樣列出行號(hào)(類似 cat -n)助被;
-b t 如果有空行剖张,空的那一行不要列出行號(hào)(默認(rèn)值);
-n列出行號(hào)表示的方法揩环,主要有三種:
-n ln 行號(hào)在螢?zāi)坏淖钭蠓斤@示搔弄;
-n rn 行號(hào)在自己欄位的最右方顯示,且不加0丰滑;
-n rz 行號(hào)在自己欄位的最右方顯示顾犹,且加0;
-w 行號(hào)欄位的占用的位數(shù)褒墨。
-p 在邏輯定界符處不重新開始計(jì)算炫刷。
more 一頁一頁的顯示內(nèi)容 more {目標(biāo)文件} 打開文件。
more -dc {目標(biāo)文件} 顯示文件內(nèi)容之前先清屏郁妈,并在屏幕下方顯示百分比
more -c 10 {目標(biāo)文件} 顯示文件內(nèi)容浑玛,每10行顯示一次。
<space>空格鍵噩咪,進(jìn)行“下一頁”操作顾彰。
/{查找內(nèi)容} 搜索字符串,按n跳轉(zhuǎn)到下一個(gè)匹配項(xiàng)胃碾。
q 退出
less 類似more涨享,交互式讀取文件 less {文件名稱} 打開文件
<space>空格鍵,進(jìn)行“下一頁”操作仆百;b向上翻一頁厕隧。
/{查找內(nèi)容} 向前搜索字符串,按n跳轉(zhuǎn)到前一個(gè)匹配項(xiàng)儒旬。
?{查找內(nèi)容} 向后搜索字符串栏账,按n跳轉(zhuǎn)到后一個(gè)匹配項(xiàng)。
g(start)到達(dá)文件開頭栈源;G(end)到達(dá)文件末尾。
q 退出竖般。
F 跟隨當(dāng)前已打開的文件輸出甚垦。
v 在編輯器中打開當(dāng)前文件。
head 只看頭幾行 head -n {count of lines} {文件名稱}輸出文件的開頭部分內(nèi)容,-n指定輸出的行數(shù)艰亮。
head -c {size of bytes} {文件名稱}輸出文件開始的一些字節(jié)闭翩。
head -n -{count of lines} {文件名稱} 輸出文件的最后幾行以外的所有內(nèi)容文件的最后幾個(gè)字節(jié)以外的所有內(nèi)容
head -c -{size of bytes} {文件名稱}輸出文件中除最后幾個(gè)字節(jié)外的所有內(nèi)容。
tail 只看尾部幾行 tail -f {文件名稱} 保持查看文件內(nèi)容迄埃。
tail -n {number} {文件名稱} 顯示文件最后number行疗韵。
tail -n +{number} {文件名稱}number行開始顯示文件的全部內(nèi)容。
tail -c {number} {文件名稱} 顯示文件最后的number個(gè)字節(jié)侄非。
tail -F {文件名稱} 持續(xù)顯示閱讀文件的內(nèi)容蕉汪,知道按住Ctrl+C,即使文件在翻頁

重定向(>逞怨、>>以及>!)命令

命令 示例 說明
> echo abc > test 輸出重定向到一個(gè)文件或設(shè)備 覆蓋原來的文件
>! echo abc >! test 輸出重定向到一個(gè)文件或設(shè)備 強(qiáng)制覆蓋原來的文件
>> echo abc >> test 輸出重定向到一個(gè)文件或設(shè)備 追加原來的文件

下面舉個(gè)兩個(gè)列子

################## 第一個(gè)例子 輸出重定向到一個(gè)文件或設(shè)備 覆蓋原來的文件
# 輸出一個(gè)結(jié)果并重定向至test.log文件中
echo "你好者疤,世界" > test.log
# 列出當(dāng)前目錄信息
ls -al

總用量 190576
-rw-r--r--. 1 root root         0 4月  27 21:26 !
drwxr-xr-x. 3 root root      4096 4月  27 21:55 .
drwxr-xr-x. 3 root root      4096 4月  25 19:02 ..
drwxr-xr-x. 3 root root      4096 4月  27 21:03 jdk-8u251-linux-x64
-rw-r--r--. 1 root root 195132576 4月  21 13:21 jdk-8u251-linux-x64.tar.gz
-rw-r--r--. 1 root root        16 4月  27 21:55 test.log

# 打印文本信息
cat -n test.log 

     1  你好,世界
################## 第二個(gè)例子 輸出重定向到一個(gè)文件或設(shè)備 覆蓋原來的文件
# 輸出一個(gè)文本信息并追加至test.log中
echo "你好叠赦,帥哥驹马!" >> test.log 
# 查看文本信息
cat -n test.log

     1  你好,世界
     2  你好除秀,帥哥糯累!

關(guān)于>!強(qiáng)制覆蓋命令。本人在centos7以及centos8都未使用成功册踩!所以此處暫不聚該例子泳姐。下面是在centos8中使用>!重定向命令

$ echo "帥哥" > test.log
$ ls -al
總用量 12
drwxr-xr-x.  2 ermao ermao 4096 4月  27 10:03 .
drwx------. 15 ermao ermao 4096 4月  27 09:53 ..
-rw-rw-r--.  1 ermao ermao    7 4月  27 10:03 test.log

$ cat -n test.log 
     1  帥哥
$ echo "世界" >! test.log 
$ cat -n test.log 
     1  帥哥
$ echo "世界" >> test.log 
$ cat -n test.log 
     1  帥哥
     2  世界

查找文件命令

常用查找文件的命令有兩個(gè):

  1. find命令,主要用于查找文件以及目錄棍好。
  2. whereis命令仗岸,主要用于查找二進(jìn)制文件以及man手冊(cè)等,linux系統(tǒng)會(huì)將系統(tǒng)內(nèi)的所有文件都記錄在一個(gè)數(shù)據(jù)庫文件中借笙,whereis則主要查找這個(gè)文件
  3. which命令扒怖,which主要查找PATH變量中的二進(jìn)制文件是否存在。簡(jiǎn)單理解就是從$PATH中查詢命令是否存在业稼。

下面簡(jiǎn)單介紹上面三個(gè)命令盗痒。

Find 命令
find path -option [-print]
  • path 查找的路徑,如:/低散、~俯邓、/etc等等
  • option 選項(xiàng)
  • [-print] 參數(shù)

option的選項(xiàng)有很多,下面介紹幾個(gè)常見的選項(xiàng)

選項(xiàng) 選項(xiàng)說明 示例
-name 指定字符串作為尋找文件或目錄的范本樣式
可以使用通配符號(hào)熔号。如果沒有通配符號(hào)則是精確查找稽鞭。
find / -name 'test.log'
-type 查找指定類型的文件 find . -type f 將目前目錄其其下子目錄中所有一般文件列出
-atime
-ctime

-mtime
用戶最近一次訪問時(shí)間(-atime 天-amin 分鐘)引镊。
文件數(shù)據(jù)元(例如權(quán)限等)最后一次
修改時(shí)間(-ctime 天朦蕴,-cmin 分鐘)篮条。
文件最后一次修改時(shí)間(-mtime 天-mmin 分鐘)吩抓。
find -ctime -20
將目前目錄及其子目錄下所有最近
20 天內(nèi)更新過的文件列出
-exec -exec <執(zhí)行指令>涉茧,假設(shè)find指令的回傳值為True,
就執(zhí)行該指令疹娶;
find .-type f -user root -exec chown tom {} \;
{} 用于與-exec選項(xiàng)結(jié)合使用來匹配所有文件伴栓,然后會(huì)被替換為相應(yīng)的文件名。

示例

# 搜索等于10KB的文件 
find . -type f -size 10k

# 搜索結(jié)果
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/plugins/com.jrockit.mc.rjmx.ui.zh_CN_5.5.2.174165.jar
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/plugins/com.jrockit.mc.rjmx.ui.ja_5.5.2.174165.jar
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/plugins/org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20140827-1444.jar
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/plugins/org.eclipse.e4.ui.workbench3_0.12.0.v20140227-2118.jar
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.equinox.p2.rcp.feature_1.2.0.v20140523-0116/feature.properties
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.emf.ecore_2.10.1.v20140901-1043/feature.properties
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.emf.common_2.10.1.v20140901-1043/feature.properties
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.help_2.0.102.v20141007-2301/feature.properties
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.rcp_4.4.0.v20141007-2301/feature.properties
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.equinox.p2.core.feature_1.3.0.v20140523-0116/feature.properties
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.e4.rcp_1.3.100.v20141007-2033/feature.properties
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/visualvm/platform/modules/locale/org-netbeans-modules-autoupdate-ui_zh_CN.jar
./download/jdk-8u251-linux-x64/jdk1.8.0_251/lib/visualvm/profiler/modules/org-netbeans-modules-profiler-utilities.jar
Find中-exec與其他命令結(jié)合使用

找當(dāng)前目錄下所有.txt文件并把他們的內(nèi)容拼接起來寫入到all.txt文件中

find . -type f -name "*.txt" -exec cat {} \;> all.txt
  • find命令執(zhí)行-exec命令時(shí)雨饺,需要將{} \;結(jié)合使用钳垮,{}代表find找到的匹配項(xiàng),\;則代表結(jié)束符號(hào)沛膳。

查找.txt結(jié)尾的文件扔枫,并將其輸出只test.log

# 查找`.txt`結(jié)尾的文件,并將其輸出只`test.log`中
find ./ -name "*.txt" -exec ls -al {} \;> test.log
# 查看是否存在test.log文件
ls -al

總用量 190576
drwxr-xr-x. 3 root root      4096 4月  28 18:06 .
drwxr-xr-x. 3 root root      4096 4月  27 23:06 ..
drwxr-xr-x. 3 root root      4096 4月  27 21:03 jdk-8u251-linux-x64
-rw-r--r--. 1 root root 195132576 4月  21 13:21 jdk-8u251-linux-x64.tar.gz
-rw-r--r--. 1 root root      1599 4月  28 18:06 test.log

## 查看輸出結(jié)果
cat -n test.log 
     1  -rw-r--r--. 1 10143 10143 117369 4月  28 17:37 ./jdk-8u251-linux-x64/jdk1.8.0_251/jre/THIRDPARTYLICENSEREADME-JAVAFX.txt
     2  -r--r--r--. 1 10143 10143 169571 3月  12 14:33 ./jdk-8u251-linux-x64/jdk1.8.0_251/jre/THIRDPARTYLICENSEREADME.txt
     3  -rw-r--r--. 1 10143 10143 4226 3月  12 14:33 ./jdk-8u251-linux-x64/jdk1.8.0_251/jre/lib/jvm.hprof.txt
     4  -rw-r--r--. 1 10143 10143 1423 3月  12 14:33 ./jdk-8u251-linux-x64/jdk1.8.0_251/jre/lib/amd64/server/Xusage.txt
     5  -rw-r--r--. 1 10143 10143 117365 3月  12 11:25 ./jdk-8u251-linux-x64/jdk1.8.0_251/THIRDPARTYLICENSEREADME-JAVAFX.txt
     6  -r--r--r--. 1 10143 10143 169571 3月  12 14:33 ./jdk-8u251-linux-x64/jdk1.8.0_251/THIRDPARTYLICENSEREADME.txt
     7  -rw-r--r--. 1 10143 10143 30275 12月  8 2017 ./jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/THIRDPARTYLICENSEREADME.txt
     8  -rw-r--r--. 1 10143 10143 11358 12月  8 2017 ./jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.ecf.filetransfer.httpclient4.feature_3.9.1.v20140827-1444/asl-v20.txt
     9  -rw-r--r--. 1 10143 10143 11358 12月  8 2017 ./jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.ecf.filetransfer.httpclient4.ssl.feature_1.0.0.v20140827-1444/asl-v20.txt
    10  -rw-r--r--. 1 10143 10143 11358 12月  8 2017 ./jdk-8u251-linux-x64/jdk1.8.0_251/lib/missioncontrol/features/org.eclipse.ecf.filetransfer.feature_3.9.0.v20140827-1444/asl-v20.txt
    11  -rw-r--r--. 1 10143 10143 42 1月  15 2017 ./jdk-8u251-linux-x64/jdk1.8.0_251/lib/visualvm/platform/VERSION.txt
    12  -rw-r--r--. 1 10143 10143 42 1月  15 2017 ./jdk-8u251-linux-x64/jdk1.8.0_251/lib/visualvm/profiler/VERSION.txt

注意如果需要將查詢結(jié)果直接重定向至一個(gè)文本锹安,則直接使用重定向命令而不需要再添加-exec命令來執(zhí)行短荐,否則將提示權(quán)限不足的錯(cuò)誤信息!如下所示:

find ./ -name "*.txt" > test.log
whereis命令

whereis命令用來定位指令的二進(jìn)制程序叹哭、源代碼文件和man手冊(cè)頁等相關(guān)文件的路徑忍宋。

whereis命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)风罩、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)糠排。如果省略參數(shù),則返回所有信息超升。

和find相比入宦,whereis查找的速度非常快室琢,這是因?yàn)閘inux系統(tǒng)會(huì)將系統(tǒng)內(nèi)的所有文件都記錄在一個(gè)數(shù)據(jù)庫文件中乾闰,當(dāng)使用whereis和下面即將介紹的locate時(shí),會(huì)從數(shù)據(jù)庫中查找數(shù)據(jù)盈滴,而不是像find命令那樣涯肩,通 過遍歷硬盤來查找,效率自然會(huì)很高巢钓。

whereis [選項(xiàng)] [參數(shù)]
  • [選項(xiàng)] 參見選項(xiàng)說明病苗;
  • [參數(shù)] 參見參數(shù)說明;
選項(xiàng)說明
選項(xiàng) 說明
-b 只查找二進(jìn)制文件症汹;
-B [目錄] 只在設(shè)置的目錄下查找二進(jìn)制文件硫朦;
-f 不顯示文件名前的路徑名稱;
-m 只查找說明文件背镇;
-M [目錄] 只在設(shè)置的目錄下查找說明文件阵幸;
-s 只查找原始代碼文件花履;
-S 目錄>只在設(shè)置的目錄下查找原始代碼文件芽世;
-u 查找不包含指定類型的文件挚赊。
參數(shù)說明

要查找的二進(jìn)制程序、源文件和man手冊(cè)頁的指令名济瓢。

示例:

# 查詢 git 相關(guān)二進(jìn)制程序以及幫助手冊(cè)
whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz
# /usr/bin/git                      為 git 的二進(jìn)制程序
# /usr/share/man/man1/git.1.gz      為 git 的 man 手冊(cè)地址
which命令

which命令用于查找并顯示給定命令的絕對(duì)路徑荠割,環(huán)境變量PATH中保存了查找命令時(shí)需要遍歷的目錄。which指令會(huì)在環(huán)境變量$PATH設(shè)置的目錄里查找符合條件的文件旺矾。也就是說蔑鹦,使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在箕宙,以及執(zhí)行的到底是哪一個(gè)位置的命令嚎朽。

which [選項(xiàng)] [參數(shù)]
  • [選項(xiàng)] 參見選項(xiàng)說明;
  • [參數(shù)] 參見參數(shù)說明柬帕;
選項(xiàng)說明
選項(xiàng) 說明
-n [文件名長度] 制定文件名長度哟忍,指定的長度必須大于或等于所有文件中最長的文件名;
-p [文件名長度] 與-n參數(shù)相同陷寝,但此處的<文件名長度>包含了文件的路徑锅很;
-w 指定輸出時(shí)欄位的寬度;
-V 顯示版本信息凤跑。
參數(shù)說明

指令名:指令名列表爆安。

示例:

[root@localhost ~]# which pwd
/bin/pwd

[root@localhost ~]#  which adduser
/usr/sbin/adduser

文件打包、壓縮以及解壓操作

tar命令

語法:tar [選項(xiàng)] [參數(shù)]

示例命令 說明
tar –cvf /tmp/etc.tar /etc 僅打包仔引,不壓縮
tar –zcvf /tmp/etc.tar.gz /etc 打包以gzip壓縮
tar –xzvf /tmp/etc.tar.gz 解壓

參數(shù)簡(jiǎn)單說明:

選項(xiàng) 說明 選項(xiàng) 說明
c 建立一個(gè)打包文件 f 給出文檔名
x 解壓縮 z 壓縮gzip
v 有提示信息
f 指定備份文件
z--gzip 通過gzip指令處理備份文件

常用命令說明:

  • 打包文件
    • tar -cf {target.tar} {file1 file2 file3} 從文件創(chuàng)建歸檔扔仓。
    • tar -czf {target.tar.gz} {file1 file2 file3} 創(chuàng)建一個(gè)壓縮的歸檔。
    • tar -caf {target.tar.xz} {file1 file2 file3} 創(chuàng)建一個(gè)壓縮的歸檔文件咖耘,使用歸檔文件的后綴來確定使用的壓縮程序翘簇。
  • 解壓提取文件
    • tar -xf {source.tar} -C {folder} 提取source文檔至folder目錄中。
    • tar -xzf {source.tar.gz} 將gzip壓縮的source壓縮文檔提取當(dāng)前目錄中鲤看。
    • tar -xzvf {source.tar.gz} -C {target folder} 將gzip壓縮的source壓縮文檔提取target目錄中并列舉解壓信息缘揪。
    • tar -xjf {source.tar.bz2} 將bzip壓縮的source壓縮文檔提取當(dāng)前目錄中。
    • tar -tvf {source.tar} {file1 file2 file3} 列出歸檔文件的內(nèi)容义桂。
    • tar -xf {source.tar} --wildcard {'*.html'} 提取與模式匹配的文件找筝。

軟件包管理命令

RPM命令

rpm [選項(xiàng)] [參數(shù)]

選項(xiàng)

選項(xiàng) 描述
-a 查詢所有套件;
-b <完成階段> <套件檔>+
-t <完成階段> <套件檔>+
設(shè)置包裝套件的完成階段慷吊,并指定套件檔的文件名稱袖裕;
-c 只列出組態(tài)配置文件,本參數(shù)需配合-l參數(shù)使用溉瓶;
-d 只列出文本文件急鳄,本參數(shù)需配合-l參數(shù)使用谤民;
-e <套件檔>
--erase <套件檔>
刪除指定的套件;
-f <文件>+ 查詢擁有指定文件的套件疾宏;
-h
--hash
套件安裝時(shí)列出標(biāo)記张足;
-i 顯示套件的相關(guān)信息;
-i <套件檔>
--install <套件檔>
安裝指定的套件檔坎藐;
-l 顯示套件的文件列表为牍;
-p <套件檔>+ 查詢指定的RPM套件檔;
-q 使用詢問模式岩馍,當(dāng)遇到任何問題時(shí)碉咆,rpm指令會(huì)先詢問用戶;
-R 顯示套件的關(guān)聯(lián)性信息蛀恩;
-s 顯示文件狀態(tài)疫铜,本參數(shù)需配合"-l"參數(shù)使用;
-U <套件檔>
--upgrade <套件檔>
升級(jí)指定的套件檔双谆;
-v 顯示指令執(zhí)行過程壳咕;
-vv 詳細(xì)顯示指令執(zhí)行過程,便于排錯(cuò)佃乘。

參數(shù)

軟件包:指定要操縱的rpm軟件包囱井。

下面是幾個(gè)示例

# rpm軟件包的安裝可以使用程序rpm來完成。執(zhí)行下面的命令
rpm -ivh your-package.rpm

如何安裝.src.rpm軟件包

有些軟件包是以.src.rpm結(jié)尾的趣避,這類軟件包是包含了源代碼的rpm包庞呕,在安裝時(shí)需要進(jìn)行編譯。這類軟件包有兩種安裝方法:

方法一:

rpm -i your-package.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp your-package.specs             #一個(gè)和你的軟件包同名的specs文件
cd /usr/src/redhat/BUILD/your-package/      #一個(gè)和你的軟件包同名的目錄
./configure                                 #這一步和編譯普通的源碼軟件一樣程帕,可以加上參數(shù)
make
make install

方法二:

rpm -i you-package.src.rpm
cd /usr/src/redhat/SPECS

此包需要的一些軟件你沒有安裝可以用rpm --nodeps -i 來忽略此信息住练,也就是說rpm -i --force --nodeps可以忽略所有依賴關(guān)系和文件問題,什么包都能安裝上愁拭,但這種強(qiáng)制安裝的軟件包不能保證完全發(fā)揮功能讲逛。

卸載rpm軟件包

使用命令rpm -e包名,包名可以包含版本號(hào)等信息岭埠,但是不可以有后綴.rpm盏混,比如卸載軟件包proftpd-1.2.8-1,可以使用下列格式:

rpm -e proftpd-1.2.8-1
rpm -e proftpd-1.2.8
rpm -e proftpd-
rpm -e proftpd

不可以是下列格式:

rpm -e proftpd-1.2.8-1.i386.rpm
rpm -e proftpd-1.2.8-1.i386
rpm -e proftpd-1.2
rpm -e proftpd-1

** 這說明這個(gè)軟件被其他軟件需要惜论,不能隨便卸載许赃,可以用rpm -e --nodeps強(qiáng)制卸載**

查詢安裝包

rpm -qa 講列出所有安裝過的包

或者利用管道

rpm -qa | grep sql

查詢安裝包全名

rpm -q mysql

可以獲得系統(tǒng)中安裝的mysql軟件包全名,從中可以獲得當(dāng)前軟件包的版本等信息馆类。這個(gè)例子中可以得到信息mysql-3.23.54a-11

查詢安裝包安裝的位置

rpm -ql 包名

注意這里的是不包括.rpm后綴的軟件包的名稱混聊,也就是說只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。如果只是想知道可執(zhí)行程序放到那里去了乾巧,也可以用which句喜,比如:

which mysql
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末预愤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咳胃,更是在濱河造成了極大的恐慌植康,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拙绊,死亡現(xiàn)場(chǎng)離奇詭異向图,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)标沪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗜傅,“玉大人金句,你說我怎么就攤上這事÷类郑” “怎么了违寞?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偶房。 經(jīng)常有香客問我趁曼,道長,這世上最難降的妖魔是什么棕洋? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任挡闰,我火速辦了婚禮,結(jié)果婚禮上掰盘,老公的妹妹穿的比我還像新娘摄悯。我一直安慰自己,他們只是感情好愧捕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布奢驯。 她就那樣靜靜地躺著,像睡著了一般次绘。 火紅的嫁衣襯著肌膚如雪瘪阁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天邮偎,我揣著相機(jī)與錄音管跺,去河邊找鬼。 笑死钢猛,一個(gè)胖子當(dāng)著我的面吹牛伙菜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播命迈,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼贩绕,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼火的!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起淑倾,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤馏鹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后娇哆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湃累,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年碍讨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了治力。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勃黍,死狀恐怖宵统,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情覆获,我是刑警寧澤马澈,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站弄息,受9級(jí)特大地震影響痊班,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摹量,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一涤伐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荆永,春花似錦废亭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骂删,卻和暖如春掌动,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宁玫。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工粗恢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人欧瘪。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓眷射,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妖碉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 顯示系統(tǒng)運(yùn)行級(jí)別 runlevel N 5 切換級(jí)別: init 0 關(guān)機(jī) init 3 字符界面 init 5 ...
    六藝str閱讀 262評(píng)論 0 0
  • 1涌庭、yum 從指定的服務(wù)器自動(dòng)下載RPM包并且安裝,可以自動(dòng)處理依賴性關(guān)系欧宜,并且一次安裝所有依賴的軟體包 選項(xiàng) -...
    劉子棟閱讀 316評(píng)論 0 0
  • 初學(xué)Linux豪诲,記錄資料,以備留存麻蹋,親手測(cè)試了一部分跛溉,有的正確,不正確的也改了扮授,沒有全部測(cè)試,如有誤专肪,望大神們不吝...
    世外大帝閱讀 5,536評(píng)論 1 32
  • 輸出重定向命令:>Linux允許將命令執(zhí)行結(jié)果重定向到一個(gè)文件刹勃,本應(yīng)顯示在終端上的內(nèi)容保存到指定文件中。ls > ...
    nayli閱讀 382評(píng)論 0 8
  • 文件搜索find / -name file 從 '/' 開始搜索目標(biāo)文件和目錄 find / -user plus...
    Summer_1981閱讀 219評(píng)論 0 0