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的查询的用法是比较好用的,可是若是用它来安装或者卸载则会很麻烦,由于它不会自动处理依赖关系,须要咱们手动一个一个解决依赖和被依赖包的安装卸载等。

相关文章
相关标签/搜索