chown、軟連接,硬連接、yum工具、rpm工具

chown命令

chown命令是用來更改一個文件或目錄的全部者和所屬組的命令。該命令有一個跟chmod用法同樣的參數 —R 級聯更改全部者和所屬組。意思就是使用—R命令會將要更改所屬組的目錄及該目錄下全部文件和目錄都執行chown。git

其用法以下

chown -R username:groupname filename(dir)vim

[root@localhost tmp]# ls -la chown/
total 0
drwxr-xr-x. 2 root root  18 Jan 30 03:09 .
drwxrwxrwt. 9 root root 261 Jan 30 03:09 ..
-rw-r--r--. 1 root root   0 Jan 30 03:09 test
[root@localhost tmp]# chown -R user1:user1 chown/
[root@localhost tmp]# ls -la chown/
total 0
drwxr-xr-x. 2 user1 user1  18 Jan 30 03:09 .
drwxrwxrwt. 9 root  root  261 Jan 30 03:09 ..
-rw-r--r--. 1 user1 user1   0 Jan 30 03:09 test

能夠看到上面的執行結果,不但/tmp/chown/目錄的屬主屬組變爲了user1,並且該目錄下的test文件的屬主屬組也變爲了user1。下面咱們不加—R的參數再驗證一下。windows

[root@localhost tmp]# chown root:root chown/
[root@localhost tmp]# ls -la chown/
total 0
drwxr-xr-x. 2 root  root   18 Jan 30 03:09 .
drwxrwxrwt. 9 root  root  261 Jan 30 03:09 ..
-rw-r--r--. 1 user1 user1   0 Jan 30 03:09 test

這個結果能夠明顯看到,不加-R 的參數,chown目錄屬主屬組變爲了root,可是chown/test文件的屬主屬組依然是user1。centos

  • chown user:user filename =chown user,user filename 。中間的符號用:和,是同樣的。

useradd 命令

useradd命令是用來添加用戶的。 useradd username 這個命令建立用戶的時候會一併建立一個相同名字的用戶組。sass

[root@localhost ~]# useradd zhaoyun
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1000:1000::/home/user1:/bin/bash
zhaoyun:x:1001:1001::/home/zhaoyun:/bin/bash

如上面命令所示,useradd zhaoyun 就給系統添加了一個zhaoyun的帳戶,查看是否添加成功,可使用 tail-2 /etc/passwd 命令來查看最後一行是否有了zhaoyun這一記錄,有了就表示建立成功了。bash

groupadd命令

groupadd命令是用來添加組的命令的,用法跟useradd同樣。less

tail 命令

tail命令是用來查看一個文件最後幾行的命令,不加參數默認是查看最後十行,能夠經過tail -2 filename 用來查看文件最後兩行的內容。ide

id 命令

id命令能夠用來查看一個用戶屬於哪一個組,經過該命令的執行結果咱們能夠看到一個用戶不但有一個主組,還有一個附屬組。工具

[root@localhost ~]# id zhaoyun
uid=1001(zhaoyun) gid=1001(zhaoyun) groups=1001(zhaoyun)

history和!

history命令是用來查看命令歷史的命令,!XX的用法是能夠運行XX開頭的最近的一次命令。ui

[root@localhost ~]# history
   79  ls -la chown/
   80  cd 
   81  useradd zhaoyun
   82  tail /etc/passwd
   83  tail -2 /etc/passwd
   84  id zhaoyun
   85  di /tmp/chown/test 
   86  id /tmp/chown/test 
   87  history
[root@localhost ~]# !ls
ls -la chown/
ls: cannot access chown/: No such file or directory

軟連接和硬連接

硬連接

硬連接文件與源文件是同一個iNode號的,因此硬連接文件既不能跨磁盤也不能跨分區。給一個文件作硬連接能夠有防誤刪除的功能,可是由於硬連接文件和源文件裏的內容是同時變動的,沒有錯誤恢復的做用。

  • 方法是ln 源文件 連接文件
[root@localhost chown]# ln test test2
[root@localhost chown]# ls
test  test2

硬連接相似於一個教室的兩個門,無論學生、課桌、工具經過哪一個門進或出,透過兩個門看教室的內容是一致的。

軟連接

軟連接至關於windows裏面的快捷方式,它的命令格式:ln -s 源文件 快捷方式 。作連接跟其餘命令不太同樣的是源文件放在前面。軟連接既能夠做用在目錄上,亦能夠做用在文件上,還能夠跨磁盤跨分區作軟連接。

軟連接的應用

當咱們有一個文件特別比較大,還源源不斷的寫入數據,並且該文件所在的分區要容量不足時咱們能夠作一個軟連接,將文件實際寫入的位置轉移到另外一個分區下。

  • 好比在/123分區下有一個文件aaa,/123分區立刻寫滿了,咱們能夠將使用命令mv /123/aaa /abc/aaa 將文件移動到/abc分區下,而後使用命令ln -s /abc/aaa /123/aaa 這樣原先aaa文件被移動到/abc下,後面寫入的數據也是寫到了/abc/aaa中。

yum工具

yum工具是一個能自動解決依賴關係的工具

  • yum list 列出可用安裝包 (三列顯示,包名、版本平臺、倉庫)
  • yum search vim 搜索與vim有關的包,不精確搜索,會把全部帶vim字符的包全列出來
  • yum list | grep 'vim` 列出包名中含有vim字符的包
  • yum install 包名 安裝
  • yum grouplist 列出可用的分組
  • yum grouplist install 安裝可用的分組
  • yum remove包名 卸載,會直接把依賴關係的包一塊兒卸載
  • yum update包名 升級,若是不加包名,則會把全部的軟件包、系統、內核都升級到最新版本(比較危險)
  • yum provides "/*/vim"搜索一個已知的命令是由哪一個包安裝的
  1. 下面是安裝net-tools包的命令,-y是yes的意思,不用安裝每一個包前提示。
[root@localhost ~]# yum install -y net-tool
  1. yum remove 包名是卸載某個安裝包的命令。
[root@localhost ~]# yum remove net-tools
  1. yum list 命令是用來查看全部安裝包的命令,最右側是倉庫的名字,若是是@開頭的表示這個包已經安裝過了。中間是安裝包的版本信息。
[root@localhost ~]# yum list |grep yum
yum.noarch                                  3.4.3-161.el7.centos       @anaconda
yum-metadata-parser.x86_64                  1.1.4-10.el7               @anaconda
yum-plugin-fastestmirror.noarch             1.1.31-50.el7              @anaconda
PackageKit-yum.x86_64                       1.1.10-1.el7.centos        base     
PackageKit-yum-plugin.x86_64                1.1.10-1.el7.centos        base     
kabi-yum-plugins.noarch                     1.0-3.el7.centos           base     
nextgen-yum4.noarch                         2.7.5-19.el7_6             extras   
yum-NetworkManager-dispatcher.noarch        1.1.31-50.el7              base     
yum-cron.noarch                             3.4.3-161.el7.centos       base     
yum-langpacks.noarch                        0.4.2-7.el7                base     
yum-plugin-aliases.noarch                   1.1.31-50.el7              base     
yum-plugin-auto-update-debug-info.noarch    1.1.31-50.el7              base
  1. yum grouplist列出可用的分組
[root@localhost ~]# yum grouplist
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.jdcloud.com
 * updates: mirror.jdcloud.com
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

5.yum list | grep wget列出包名中含有wget字符的包

[root@localhost ~]#  yum list |grep wget
wget.x86_64                                 1.14-18.el7                base

6 yum provides /*/ifcofnig 搜索一個已知的命令是由哪一個包安裝的

[root@localhost ~]# yum provides /*/ifconfig
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.jdcloud.com
 * extras: mirror.jdcloud.com
 * updates: mirror.jdcloud.com
net-tools-2.0-0.24.20131004git.el7.x86_64 : Basic networking tools
Repo        : base
Matched from:
Filename    : /sbin/ifconfig



net-tools-2.0-0.24.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /sbin/ifconfig

rpm工具

經過一個實驗來看rpm工具的用法。

  1. 虛擬機鏈接光驅,指定安裝時的鏡像盤
  2. mount命令掛載光盤,ls看一下光盤下的目錄和文件 packages 就是軟件包目錄
  3. 使用ls | less 分屏顯示一下packages能夠看到軟件包的列表
[root@localhost Packages]# ls
acl-2.2.51-14.el7.x86_64.rpm                                libndp-1.2-7.el7.x86_64.rpm
aic94xx-firmware-30-6.el7.noarch.rpm                        libnetfilter_conntrack-1.0.6-1.el7_3.x86_64.rpm
aide-0.15.1-13.el7.x86_64.rpm                               libnfnetlink-1.0.1-4.el7.x86_64.rpm
alsa-firmware-1.0.28-2.el7.noarch.rpm                       libnl-1.1.4-3.el7.x86_64.rpm
alsa-lib-1.1.6-2.el7.x86_64.rpm                             libnl3-3.2.28-4.el7.x86_64.rpm
alsa-tools-firmware-1.1.0-1.el7.x86_64.rpm                  libnl3-cli-3.2.28-4.el7.x86_64.rpm
atk-2.28.1-1.el7.x86_64.rpm                                 libnotify-0.7.7-1.el7.x86_64.rpm
audit-2.8.4-4.el7.x86_64.rpm                                libpcap-1.5.3-11.el7.x86_64.rpm
audit-libs-2.8.4-4.el7.x86_64.rpm                           libpciaccess-0.14-1.el7.x86_64.rpm
authconfig-6.2.8-30.el7.x86_64.rpm                          libpipeline-1.2.3-3.el7.x86_64.rpm

軟件包包文件通常是這個格式: teamd(包名)-1.25(主版本.次版本)-4.el7(發佈版本).x86_64(平臺_位數).rpm(後綴名)

使用RMP安裝包

  • 安裝 :rpm -ivh 包文件 i:安裝 v:可視化 h:進程
  • 升級 :rpm -Uvh 包文件 U:update
  • 卸載 :rpm -e 包名(如有依賴包則須要先卸載依賴包,不然會報錯)
  • 查詢 :rpm -qa 查詢已經安裝了哪些包
  • 查詢 :rpm -q 包名 查詢一個包是否已經安裝
  • 查詢 :rpm -qi 包名 查詢指定的rpm的信息
  • rpm -ql 包名 列出安裝該rpm包具體安裝了哪些文件
  • rpm -qf 命令的絕對路徑 查詢該命令由哪一個包安裝的。
  1. 安裝
[root@localhost Packages]# rpm -ivh  spamassassin-3.3.2-18.el7.x86_64.rpm
錯誤:依賴檢測失敗:
	perl(Archive::Tar) 被 spamassassin-3.3.2-18.el7.x86_64 須要
	perl(Archive::Tar) >= 1.23 被 spamassassin-3.3.2-18.el7.x86_64 須要
	perl(DB_File) 被 spamassassin-3.3.2-18.el7.x86_64 須要
  1. 卸載
[root@localhost Packages]# rpm -e ppp
錯誤:依賴檢測失敗:
	ppp = 2.4.5 被 (已安裝) NetworkManager-1:0.9.9.1-13.git20140326.4dba720.el7.x86_64 須要
  1. 查詢
[root@localhost Packages]# rpm -q ppp
ppp-2.4.5-33.el7.x86_64
[root@localhost Packages]# rpm -q /usr/bin/ls
未安裝軟件包 /usr/bin/ls 
[root@localhost Packages]# rpm -qf /usr/bin/ls
coreutils-8.22-11.el7.x86_64
[root@localhost Packages]# rpm -ql ppp
/etc/logrotate.d
/etc/logrotate.d/ppp
/etc/pam.d/ppp

在實際操做中咱們會發現,rpm的查詢的用法是比較好用的,可是若是用它來安裝或者卸載則會很麻煩,由於它不會自動處理依賴關係,須要咱們手動一個一個解決依賴和被依賴包的安裝卸載等。

相關文章
相關標籤/搜索