【深刻學習linux】Linux命令格式

1、命令基本格式

命令提示符

[root@localhost ~]# 

root 表明當前登陸用戶,Linux當中管理員帳號是 rootphp

localhost 表明主機名前端

~ 表明當前所在目錄(家目錄),對於管理員來講他的家目錄就是 /root ,普通用戶家目錄就是 /home/用戶名 這個目錄下,好比 test ,那麼他的家目錄就是 /home/testnode

# 表明超級用戶的提示符,普通用戶的提示符是 $linux

pwd

pwd 命令能夠查看當前所在目錄的位置信息git

cd /home/local/src/

cd 命令就是進入指定目錄github

命令格式

命令 [選項] [參數]

注意:web

  1.個別命令使用不遵循此格式;正則表達式

  2.當有多個選項時,能夠寫在一塊兒;好比某個命令既有 -a 也有 -l ,那麼就能夠寫成 -al ;shell

  3.簡化選項和完整選項,-a 等於 --all數據庫

查詢目錄中內容:ls

ls [選項] [文件或目錄]
選項:
    -a 顯示全部文件,包含隱藏文件
    -l 顯示詳細信息
    -d 查看目錄屬性
    -h 人性化顯示文件大小
    -i 顯示inode
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# ls -l
總用量 4
-rw-------. 1 root root 1615 10月 21 05:16 anaconda-ks.cfg

解釋下權限

-rw-r--r--
    - 文件類型( - : 文件, d : 目錄, l : 軟連接文件 )
    rw-            r--           r--
    u全部者         g全部組        o其餘人
r讀 w寫 x執行

第一位來區分文件類型,除開(-、d、l)還有其餘的四種:塊設備文件、字符設備文件、套接字文件和管道文件。

除開第一位,還有九位,每三位爲一組,好比這裏(rw-(u全部者)、r--(g全部組)、r--(o其餘人))。

 而後後面 「.」 表明ACL權限

而後後面 「1」 數字1表明引用計數,表明這個文件被調用幾回

而後後面 「root」 表明文件的u全部者

而後後面 「root」 表明文件的g全部組

而後後面 「1615」 表明文件的大小,單位是字節,可使用 ls -lh,-h表示人性化顯示大小,後面統計大小的命令基本都支持 -h 

而後後面 「10月 21 05:16」 最後一次修改時間

而後最後一列表示文件名

另外擴展:Linux裏面隱藏文件通常都用 「.」 開頭,可使用 ls -a 進行查看隱藏文件;ls -d 只是查看目錄自己的屬性,而不是查看目錄下的文件信息;ls -i 查看當前目錄下全部的inode的id號,id號就是爲了系統能快速找到文件索引設置的。ll 命令至關於 ls -l 。

2、文件處理命令

目錄處理命令

創建目錄:mkdir

mkdir -p [目錄名]
    -p 遞歸建立
    命令英文願意:make directories

-p 是選項,表示建立多級目錄都不存在的時候須要使用-p來進行遞歸建立,好比 mkdir -p /a/b/c

切換所在目錄:cd

cd [目錄]
    命令英文原意:change directory

簡化操做
cd 進入當前用戶的家目錄 cd
~ 進入當前用戶的家目錄 cd - 進入上次目錄 cd .. 進入上一級目錄 cd . 進入當前目錄

擴展提高:Ctr+L進行清屏

相對路徑:參照當前所在目錄,進行查找,如:[root@localhost ~]# cd ../usr/local/src/

絕對路徑:從根目錄開始指定,一級一級遞歸查找。在任何目錄下,都能進入指定位置,如:[root@localhost ~]# cd /etc/

使用Tab來進行目錄文件補全,也可使用命令補全

查詢所在目錄位置:pwd

pwd
    命令英文原意:print working directory

刪除空目錄:rmdir(通常不會用)

rmdir [目錄名]
    命令英文原意:remove empty directories

刪除文件或目錄:rm(推薦使用)

rm -rf [文件或目錄]
    命令英文原意:remove
選項:
    -r 刪除目錄或者文件
    -f 強制

rm 文件,只能刪除文件

rm -r 目錄名,可是會詢問是否刪除,若是肯定都須要刪除,那麼就能夠直接使用 rm -rf 目錄名,會強制刪除下面全部

複製命令:cp

cp [選項] [原文件或目錄] [目標目錄]
    命令英文原意:copy
選項:
    -r 複製目錄
    -p 連帶文件屬性複製
    -d 若源文件是連接文件,則複製連接屬性
    -a 相對於 -pdr

cp 文件 目標文件,只能複製文件

cp -r 目錄名 目標目錄

cp -a xxx xxx,-a 等同於 -pdr ,與源文件或者目錄日期時間都如出一轍了。

剪切或更名命令:mv

mv [原文件或目錄] [目標目錄]
    命令英文原意:move

同一個目錄mv就能夠進行更名,不一樣目錄使用mv就進行剪切。

經常使用目錄的做用

/ 根目錄
/bin 命令保存目錄(普通用戶就能夠讀取的命令)
/boot 啓動目錄,啓動相關文件
/dev 設備文件保存目錄
/etc 配置文件保存目錄
/root 超級用戶的家目錄
/home 普通用戶的家目錄 /lib 系統庫保存目錄 /mnt 系統掛載目錄 /media 掛載目錄
/tmp 臨時目錄
/sbin 命令保存目錄(超級用戶才能使用的目錄)
/proc 直接寫入內存的
/sys
/usr 系統軟件資源目錄
/usr/bin/ 系統命令(普通用戶)
/usr/sbin/ 系統命令(超級用戶)
/var 系統相關文檔內容

根目錄下的bin和sbin,usr目錄下的bin和sbin,這四個目錄都是用來保存系統命令的。

根目錄下的bin和usr目錄下的bin下的命令,任何用戶均可以去使用並執行。

根目錄下的sbin和usr目錄下的sbin下的命令,只有root才能執行的命令。

根目錄下的lib目錄下,都是一些函數庫,不是全部功能都寫到了linux系統裏,有些是經過函數庫來進行動態調用使用的,提高Linux系統效率。

根目錄下的mnt、media、misc都表示外接存儲設備的盤弧,misc通常是外接磁帶機的掛載目錄,media通常是外接光盤的掛載目錄,mnt通常是外接u盤或者移動硬盤的掛載目錄。老版的linux系統下沒有media和misc的,因此習慣性將全部的掛載點都放入mnt目錄了。

根目錄下的proc和sys目錄不能直接操做,這兩個目錄保存的是內存的過載點。

通常推薦使用目錄有:能夠在家目錄root 或者 home,以及tmp目錄下隨便放內容。

文件處理命令

連接命令

連接命令:ln

ln -s [原文件] [目標文件]
    命令英文原意:link
    功能描述:生成連接文件
    選項:-s 建立軟連接

硬連接特徵:

1. 擁有相同的i節點和存儲block塊,能夠看作是同一個文件

2. 可經過i節點識別

3.不能跨分區

4.不能針對目錄使用

ln /root/xxx.cfg /tmp/硬連接名稱,使用以後引用計數爲增長1,並且經過  ls -i /root/xxx.cfg /tmp/硬連接名稱 發現它們的 i 節點相關,不管你是否重命名仍是刪除均可以正常使用。

軟連接特徵:

1. 相似Windows快捷方式

2. 軟連接擁有本身的i節點和Block塊,可是數據塊中只保存原文件的文件名和i節點號,並無實際的文件數據

3. lrwxrwxrwx l軟連接(是l 不是大寫 i),軟連接文件權限都爲rwxrwxrwx

4. 修改任意文件,另外一個都改變

5. 刪除原文件,軟連接不能使用

ln -s /root/xxx.cfg /tmp/軟連接名稱

echo 1111 >> /root/xxx.cfg
cat /tmp/軟連接名稱
cat /tmp/硬連接名稱
echo 2222 >> /tmp/軟連接名稱
cat /tmp/硬連接名稱
cat /root/xxx.cfg
echo 3333 >> /tmp/硬連接名稱
cat /root/xxx.cfg
cat /tmp/軟連接名稱
rm -rf /root/xxx.cfg

這裏不管修改軟、硬連接都會使文件進行改變,都能看到改變的值。刪除原文件,硬連接沒有任何變化,軟連接失效。

ln -s /root/csb /tmp/
ln -s sb /tmp/

前往/tmp/目錄發現,csb能夠,可是sb卻找不到,說明軟連接通常要指定絕對路徑。

3、文件搜索命令

文件搜索命令 locate

locate 文件名
在後臺數據庫中按文件名搜索,搜索速度比較快

/var/lib/mlocate
#locate命令所搜索的後臺數據庫

updatedb
更新數據庫

locate xxx.log ,在mlocate數據庫搜索 xxx.log 文件,能夠找到;可是若是 touch yyy.log,你再使用locate yyy.log 發現找不到對應的文件了,緣由:由於locate命令不會直接在系統中搜索,而是在/var/lib/mlocate這個數據庫進行搜索,又因爲mlocate數據庫不是實時更新的,每一天更新一次,因此新建文件須要使用locate進行搜索,必須使用updatedb進行手動更新mlocate數據庫。

locate locate

搜索跟locate相關的文件。可能根據Linux系統不一樣,locate數據庫的名字可能不一樣:好比 slocate、mlocate、locatedb。

locate 只能按照文件名進行搜索。

touch /tmp/yyy.log
updatedb
locate yyy.log

locate yyy.log 發現只能找到 /root/yyy.log,而找不到 /tmp/yyy.log,緣由:locate 命令是按照 /etc/updatedb.conf 配置文件進行配置搜索的,發現 /tmp 在不搜索路徑裏面。

PRUNE_BIND_MOUNTS = "yes"
# 開啓搜索限制,yes的時候,下面三個配置所有生效,反之亦然
PRUNEFS = 
# 搜索時,不搜索文件系統
PRUNENAMES = 
# 搜索時,不搜索文件類型
PRUNEPATHS = 
# 搜索時,不搜索的路徑

注意了:centos7默認是沒有安裝mlocate的,因此沒法使用這兩個命令 locate,updatedb

yum install mlocate

 

命令搜索命令 whereis 與 which

whereis 和 which  只能搜索外部安裝的一些命令,不能搜索系統命令

whereis 命令名
# 搜索命令所在路徑及幫助文檔所在位置
選項:
    -b : 只查找可執行文件
    -m : 只查找幫助文件

 

[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

ls的運行路徑在 /usr/bin/ls ,幫助文檔:/usr/share/man/man1/ls.1.gz

whoami 查詢我是誰,whatis ls 查看ls命令是幹什麼的

 

which 文件名
# 搜索命令所在路徑及別名

 

[root@localhost ~]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls
[root@localhost ~]# which pwd
/usr/bin/pwd

 

PATH環境變量

PATH環境變量:定義的是系統搜索命令的路徑
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

環境變量就是爲了讓系統能夠去這些路徑去尋找相應可執行命令,若是上述環境變量的路徑中未找到相關命令就會提示 -bash: lsss: command not found

 

文件搜索命令 find

find [搜索範圍] [搜索條件]
# 搜索文件

find / -name install.log
# 避免大範圍搜索,會很是耗費系統資源
# find是在系統當中搜索符合條件的文件名。若是需匹配,使用通配符匹配,通配符是徹底匹配

 

Linux 中的通配符

*   匹配任意內容
?   匹配任意一個字符
[]  匹配任意一箇中括號內的字符

find /root -name "install.log*",會匹配出install.log和install.log.syslog

find /root -name "ab[cd]",會匹配出abc和abd

find /root -name "*[cd]",會匹配出以c或者d結尾的文件

 

find /root -iname install.log
# 不區分大小寫
find /root -user root
# 按照全部者搜索
find /root -nouser
# 查找沒有全部者的文件

find /root -nouser 搜索沒有全部者的文件,通常能夠認爲是垃圾文件,可是有兩種狀況:一是內核產生的文件好比proc和sys裏面的文件可能沒有全部者,二是插入U盤可能會不存在全部者。

find /var/log/ -mtime +10
# 查找10天前修改的文件

-10   10天內修改的文件
10    10天當天修改的文件
+10  10天前修改的文件

atime  文件訪問時間
ctime  改變文件屬性
mtime 修改文件內容

find /var/log -mtime +10 ,搜索10天前的日誌,若是不須要就能夠進行刪除了。

find . -size 25k
# 查找文件大小是25kb的文件

-25K 小於25KB的文件
25K   等於25KB的文件
+25K 大於25KB的文件

find . -inum 262422
# 查找i節點是262422的文件

find . -size 2M,表示查找文件大小是2MB的文件。不能是小寫m,只能是大寫M。並且必須帶單位,若是不帶單位會按照扇區塊512KB進行查找。

find /etc -size +20k -a -size -50k
# 查詢/etc/目錄下,大於20KB而且小於50KB的文件
-a and 邏輯與,兩個條件都知足
-o or   邏輯或,兩個條件知足一個便可


find /etc -size +20k -a -size -50k -exec ls -lh {} \;
# 查找/etc/目錄下,大於20KB而且小於50KB的文件,並顯示詳細信息
# -exec/-ok命令{}\;對搜索結果執行操做

 

字符串搜索命令 grep

grep [選項] 字符串 文件名
# 在文件當中匹配符合條件的字符串
選項:
    -i 忽略大小寫
    -v 排除指定字符串

grep "size" xxx.log,包含size關鍵字的信息

grep -v "size" xxx.log,不包含size關鍵字的信息

 

find 命令與 grep 命令的區別

1. find 命令:在系統當中搜索符合條件的文件名,若是須要匹配,使用通配符匹配,通配符是徹底匹配

2. grep命令:在文件當中搜索符合條件的字符串,若是須要匹配,使用正則表達式進行匹配,正則表達式時包含匹配

4、幫助命令

幫助命令man

man 命令
# 獲取指定命令的幫助

man ls
# 查看ls的幫助

若是要搜索關鍵字,好比這裏搜索 -d,只須要 /-d 進行搜索,而後使用 n 鍵進行下一個,shift+n(也就是大寫 N) 進行上一個。

man命令它幾個幫助級別:

1 : 查看命令的幫助
2 : 查看可被內核調用的函數的幫助
3 : 查看函數和函數庫的幫助
4 : 查看特殊文件的幫助(主要是/dev目錄下的文件)
5 : 查看配置文件的幫助
6 : 查看遊戲的幫助
7 : 查看其餘雜項的幫助
8 : 查看系統管理員可用命令的幫助
9 : 查看和內核相關文件的幫助

查看命令擁有那個級別的幫助

man -f 命令
至關於
whatis 命令


舉例:
man -5 passwd
man -4 null
man -8 ifconfig

查看和命令相關的全部幫助

man -k 命令
至關於
apropos 命令


例如:
apropos passwd

man -k passwd 輸出全部有passwd關鍵字的命令和命令幫助文檔

其餘幫助命令

選項幫助

命令 --help
# 獲取命令選項的幫助

例如:
ls --help

shell內部命令幫助

help shell 內部命令
# 獲取shell 內部命令的幫助

例如:
whereis cd
# 肯定是不是shell內部命令
help cd
# 獲取內部命令幫助

shell 實際上是Linux的解釋器,好比說將 ls 翻譯成 0101進行執行

怎麼判斷一個命令是系統自帶的仍是後來安裝的,只須要使用whereis 命令進行查看,若是找到了就證實是系統自帶的,若是找不到就是後來安裝的。

詳細命令幫助info

info 命令
    - 回車:進入子幫助頁面(帶有*號標記)
    - u:進入上層頁面
    - n:進入下一個幫助小節
    - p:進入上一個幫助小節
    - q:退出

 

5、壓縮和解壓縮命令

經常使用壓縮格式:.zip,.gz,.bz2

.zip格式壓縮

zip 壓縮文件名 源文件
# 壓縮文件

zip -r 壓縮文件名 源目錄
# 壓縮目錄

.zip格式解壓縮

unzip 壓縮文件
# 解壓縮.zip文件

這種格式和windows是通用的,能夠解壓windows下的xxx.zip,windows也能夠解壓縮linux的xxx.zip文件。

centos7mini版沒有zip和unzip命令,須要安裝下:

yum install zip unzip

 

.gz格式壓縮

gzip 源文件
# 壓縮爲.gz格式的壓縮文件,源文件會消失

gzip -c 源文件 > 壓縮文件
# 壓縮爲.gz格式,源文件保留
# 例如:gzip -c xxxx > xxxx.gz

gzip -r 目錄
# 壓縮目錄下全部的子文件,可是不能壓縮目錄

「>」是將命令的結果寫入指定文件

.gz格式解壓縮

gzip -d 壓縮文件
# 解壓縮文件

gunzip 壓縮文件
# 解壓縮文件

gunzip -r 目錄
# 解壓縮目錄下面的文件

 

.bz2格式壓縮

bzip2 源文件
# 壓縮爲.bz2格式,不保留源文件

bzip2 -k 源文件
# 壓縮以後保留源文件

注意:bzip2命令不能壓縮目錄

.bz2格式解壓縮

bzip2 -d 壓縮文件
# 解壓縮,-k保留壓縮文件

bunzip2 壓縮文件
# 解壓縮,-k保留壓縮文件

 

經常使用壓縮格式:.tar.gz,.tar.bz2

打包命令tar

tar -cvf 打包文件名 源文件
選項:
    -c : 打包
    -v : 顯示過程
    -f : 指定打包後的文件名
例如:
    tar -cvf xxxx.tar xxxx

這裏打包後變成xxxx.tar,而後可使用 gzip xxxx.tar 進行壓縮就能夠壓縮成 xxxx.tar.gz 的格式了。而後可使用 bzip2 xxxx.tar 進行壓縮就能夠壓縮成 xxxx.tar.bz2 的格式了。

解打包命令

tar -xvf 打包文件名
選項:
    -x : 解打包
例如:
    tar -xvf xxxx.tar

.tar.gz壓縮格式

其實.tar.gz格式是先打包爲.tar格式,再壓縮爲.gz格式

tar -zcvf 壓縮包名.tar.gz 源文件
選項:
    -z : 壓縮爲.tar.gz格式

tar -zxvf 壓縮包名.tar.gz
選項:
    -x : 解壓縮.tar.gz格式

.tar.bz2壓縮格式

tar -jcvf 壓縮包名.tar.bz2 源文件
選項:
    -z:壓縮爲.tar.bz2格式

tar -jxvf 壓縮包名.tar.bz2
選項:
    -x:解壓縮.tar.bz2格式

能夠指定解壓縮到某個目錄下:

tar -jxvf xxxx.tar.bz2 -C /tmp/

壓縮的時候能夠指定多個目錄和文件:

tar -zcvf test.tar.gz 目錄名 文件名

若是要指定壓縮到某個目錄下:

tar -zcvf /tmp/test.tar.gz 目錄名 文件名

若是隻是想查看下壓縮文件的內容,不解壓出來:

tar -ztvf xxxx.tar.gz

-t 就是測試的意思,不解壓

6、關機和重啓命令

1. shutdown命令

[root@localhost ~]# shutdown [選項] 時間
選項:
    -c : 取消前一個關機命令
    -h : 關機
    -r : 重啓

shutdown -r now 當即重啓,能夠用 date 查看當前系統時間

# 當前05:30進行重啓
shutdwn -r 05:30
# 這裏會一直等待重啓,什麼操做都不能夠了,須要加一個後臺符,讓它在後臺進行運行
shutdown -r 05:30 &

若是我想取消此次重啓操做,就可使用:

shutdown -c

2.其餘關機命令

halt
poweroff
init 0

3.其餘的重啓命令

reboot
init 6

4.系統運行級別

0 關機
1 單用戶
2 不徹底多用戶,不含NFS服務
3 徹底多用戶
4 未分配
5 圖形界面
6 重啓

系統運行級別

cat /etc/inittab
# 修改系統默認運行級別
id:3:initdefault:

runlevel
# 查詢系統運行級別

5.退出登陸命令

logout

 

7、其餘經常使用命令

掛載命令

1.查詢與自動掛載

mount
# 查詢系統中已經掛載的設備

mount -a
# 依據配置文件/etc/fstab的內容,自動掛載

2.掛載命令格式

mount [-t 文件系統] [-o 特殊選項] 設備文件名 掛載點

選項:
    -t 文件系統:加入文件系統類型來指定掛載的類型,能夠ext三、ext四、xfs等文件系統
    -o 特殊選項:能夠指定掛載的額外選項

光盤用的文件系統類型是:iso9660

-o 特殊選項以下:

參數 說明
atime/noatime 更新訪問時間/不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認爲更新
async/sync 異步/同步,默認爲異步
auto/noauto 自動/手動,mount -a命令執行時,是否會自動安裝/etc/fstab文件內容掛載,默認爲自動
defaults 定義默認值,至關於rw,suid,dev,exec,auto,nouser,async這七個選項
exec/noexec 執行/不執行,設定是否容許在文件系統中執行可執行文件,默認是exec容許
remount 從新掛載已經掛載的文件系統,通常用於指定修改特殊權限
rw/ro 讀寫/只讀,文件系統掛載時,是否具備讀寫權限,默認是rw
suid/nosuid 具備/不具備SUID權限,設定文件系統是否具備SUID和SGID權限,默認具備
user/nouser 容許/不容許普通用戶掛載,設定文件系統是否容許普通用戶掛載,默認是不容許,只有root能夠掛載分區
usrquota 寫入表明文件系統支持用戶磁盤配額,默認不支持
grpquota 寫入表明文件系統支持組磁盤配額,默認不支持

 

cd /home/

vi hello.sh

#!/bin/bash

echo "hello world"

賦予執行權限: chmod 755 hello.sh,就能夠直接執行該腳本

mount -o remount,noexec /dev/mapper/centos-home /home/
# 從新掛載 /home 分區,並使用noexec權限

從新掛載/home分區以後,因爲noexec權限,因此前面的hello.sh就不能直接進行執行,權限不夠了。

這裏必須改回來:

mount -o remount,exec /dev/mapper/centos-home /home/

 

3.掛載光盤

mkdir /mnt/cdrom/
# 創建掛載點

mount -t iso9660 /dev/cdrom /mnt/cdrom/
# 掛載光盤

mount /dev/sr0 /mnt/cdrom/
# 因爲 /dev/cdrom 是 /dev/sr0 的軟連接,均可以寫,可是建議寫 /dev/sr0,並且默認系統知道光盤的文件類型爲iso9660,因此能夠不用寫

若是你是真實機就須要找一張光盤放入,這裏用虛擬機進行演示則須要雙擊光盤選項。

 

4. 卸載命令

umount 設備文件名或掛載點

umount /mnt/cdrom

若是當前正在這個目錄進行操做或者在這個目錄中,卸載會報錯:設備正忙。須要退出該目錄再進行卸載。

 

5.掛載U盤

fdisk -l
# 查看硬盤設備文件名

mount -t vfat /dev/sdb1 /mnt/usb/

注意:Linux默認是不支持NTFS文件系統的

vfat 文件系統指的是windows下的fat32文件系統,fat32基本淘汰了,只支持不超過4G的單個文件,若是非要用NTFS文件系統,須要安裝 NTFS-3G 的軟件。

 

用戶登陸查看和用戶交互命令

查看登陸用戶信息

w 用戶名
命令輸出:
    USER : 登陸的用戶名;
    TTY : 登陸終端;
    FROM : 從哪一個IP地址登陸
    LOGIN@ : 登陸時間
    IDLE : 用戶閒置時間
    JCPU : 指的是和該終端鏈接的全部進程佔用的時間。這個時間裏並不包括過去的後臺做業時間,但卻包括當前正在運行的後臺做業所佔用的時間;
    PCPU : 是指當前進程所佔用的時間;
    WHAT : 當前正在運行的命令

who

who
命令輸出:
    -用戶名
    -登陸終端
    -登陸時間(登陸來源IP地址)

查詢當前登陸和過去登陸的用戶信息

last

last命令默認是讀取 /var/log/wtmp文件數據
命令輸出:
    -用戶名
    -登陸終端
    -登陸IP
    -登陸時間
    -退出時間(在線時間)

查詢全部用戶的最後一次登陸時間

lastlog

lastlog命令默認是讀取/var/log/lastlog文件內容
命令輸出:
    -用戶名
    -登陸終端
    -登陸IP
    -最後一次登陸時間

 

yum命令詳解

Yum: 即Yellowdog Update Modifier,是一種基於rpm的包管理工具

yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個、一組甚至所有軟件包的命令,並且命令簡潔而又好記。

yum的命令形式通常是以下:

yum [options] [command] [package ...]
  • 其中的[options]是可選的,選項包括-h(幫助),-y(當安裝過程提示選擇所有爲」yes」),-q(不顯示安裝的過程)等等。
  • [command]爲所要進行的操做
  • [package …]是操做的對象

顯示yum倉庫

顯示全部倉庫

yum repolist all

顯示可用的倉庫

repolist enabled

顯示不可用的倉庫

repolist disabled

顯示應用程序包

顯示全部的程序包

yum list 
或
yum list all

[vathe@localhost ~]$yum list tre?
Installed Packages
tree.x86_64                                         1.6.0-10.el7                                          @base

還支持通配符格式的查詢

顯示可安裝的程序包

yum list available

[vathe@localhost ~]$yum list available php
Available Packages
php.x86_64                                          5.4.16-42.el7                                          base

顯示可更新或已安裝的程序包

yum list updates

yum list installed

顯示倉庫中最近增長的程序包

yum list recent

安裝程序包

#安裝 tree 程序
yum install tree

升級程序包

yum update tree

卸載程序包

yum remove tree
或
yum erase tree

查看程序包信息

yum info tree

查看文件的來源

查看某一文件來自於那個程序包

[vathe@localhost ~]$yum provides /bin/mv 
coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : base
Matched from:
Filename    : /bin/mv

#表示/bin/mv文件來自於coreutils-8.22-18.el7.x86_64程序包

清理本地緩存

yum clean all 

#清楚插件緩存
yum clean plugins

構建緩存

yum makecache

搜索

[vathe@localhost ~]$yum search php
============================================== N/S matched: php ===============================================
graphviz-php.x86_64 : PHP extension for graphviz
php.x86_64 : PHP scripting language for creating dynamic web sites
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
...

查看指定包所依賴的capabilities

[vathe@localhost ~]$yum deplist php
package: php.x86_64 5.4.16-42.el7
  dependency: httpd
   provider: httpd.x86_64 2.4.6-45.el7.centos
...

查看yum事務歷史

[root@localhost ~]# yum history
Repository 'base' is missing name in configuration, using id
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     2 | Vathe Su <vathe>         | 2017-04-17 17:07 | Install        |    1   
     1 | System <unset>           | 2017-03-23 22:19 | Install        | 1405   
history list

包組相關的命令

yum groupinstall    # 安裝包組

yum groupupdate     #更新包組

yum grouplist       #顯示包組

yum groupremove     #移除包組

yum groupinfo       #查看包組信息

這些命令和上面的命令用法相似,只是針對於包組而言

 yum命令使用實戰舉例git的安裝

使用yum安裝git,不必定是最新版本:

yum install -y git

此方法簡單,而且會自動安裝依賴的包,並且會從源裏安裝最新的版本(不過不必定是最新的git)。

源碼安裝能夠參考:http://www.javashuo.com/article/p-cvuvjawi-eq.html

順便講講git的簡單使用:

1.進入某一目錄,Linux直接用命令行,Windows右鍵使用「Git Bash Here」

2.拷貝遠端代碼到本地
git clone 地址

3.解決git pull/push每次都須要輸入密碼問題 和 HttpRequestException encountered
git config --global credential.helper store

安裝git後
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

$ ssh-keygen -t rsa -C "youremail@example.com" 建立ssh key,用於和github通訊
(祕鑰存儲於C:\Users\27634\.ssh,把公鑰id_rsa.pub存儲於github)

建立版本庫
$ pwd 命令用於顯示當前目錄(沒啥用)
$ git init 把這個目錄變成Git能夠管理的倉庫(後續新建提交和ssh克隆須要)    

操做版本庫
$ git add 文件名 添加文件(新增或者更改都須要先add)
$ git commit -m "說明" 提交到本地版本庫

$ git status 查看倉庫狀態
$ git diff 文件名 查看修改的地方

版本回退(從一個commit恢復)
$ git log 查看版本歷史
$ git reset --hard HEAD^ 回退到上個版本
$ git reset --hard 1094a 回退到特定版本號(commit之後回退)
$ git reflog 記錄每一次命令

$ git checkout -- file 直接丟棄工做區的修改(add之前回退)
$ git reset HEAD <file> 添加到了暫存區時,想丟棄修改(add之後回退)

刪除文件
$ git rm file(已經add/commit,在目錄中刪除)

$ git checkout -- file 刪錯了回退

遠程倉庫
$ git remote add origin git@server-name:path/repo-name.git 關聯遠程庫
$ git push -u origin master 第一次的push
$ git push origin master 經常使用的push,本地分支會在服務器上新建分支
$ git pull 須要有關聯的分支,第一次下拉最好新建一個空文件夾
$ git branch --set-upstream-to=origin/遠程分支 本地分支 關聯分支

$ git clone git@server-name:path/repo-name.git 克隆(不須要另建文件夾)

分支
$ git branch -a 查看全部分支
$ git branch -vv 查看分支關聯
$ git branch dev 建立分支
$ git checkout dev 切換分支
$ git merge dev 合併某分支到當前分支
$ git merge --no-ff -m "msg" dev 普通模式合併,合併後的歷史有分支
$ git branch -d dev 刪除分支
$ git checkout -b dev 建立並切換分支


合併分支,沒法merge
$ git stash save 名字 暫存工做狀態
$ git pull origin dev 拉下來 
$ git stash list 查看已經暫存的狀態
$ git stash pop stash@{0} 將暫存狀態merge到當前分支
還有衝突時,手動修改文件,而後add/commit
$ git log --graph 分支合併圖

bug分支issue
$ git stash 暫存工做狀態
$ git stash list 查看暫存工做狀態
$ git stash pop 恢復暫存狀態並刪除狀態

開發分支feature
$ git branch -D <name> 強制刪除未合併的分支

rebase
$ git rebase 本地未push的分叉提交歷史整理成直線

標籤
$ git tag 標籤名 打在最新提交的commit上
$ git tag 查詢全部標籤
$ git tag 標籤名 f52c633 給特定的commit打標籤
$ git tag -a 標籤名 -m "msg" commit的id 給標籤設置說明
$ git show 標籤名 查詢標籤內容
$ git tag -d 標籤名 刪除標籤
$ git push origin 標籤名 推送某個標籤到遠程
$ git push origin --tags 推送全部標籤
$ git push origin :refs/tags/<tagname> 能夠刪除一個遠程標籤。
相關文章
相關標籤/搜索