chown、软链接,硬链接、yum工具、rpm工具

chown命令

chown命令是用来更改一个文件或目录的所有者和所属组的命令。该命令有一个跟chmod用法一样的参数 —R 级联更改所有者和所属组。意思就是使用—R命令会将要更改所属组的目录及该目录下所有文件和目录都执行chown。

其用法如下

chown -R username:groupname filename(dir)

[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的参数再验证一下。

[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。

  • chown user:user filename =chown user,user filename 。中间的符号用:和,是一样的。

useradd 命令

useradd命令是用来添加用户的。 useradd username 这个命令创建用户的时候会一并创建一个相同名字的用户组。

[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这一记录,有了就表示创建成功了。

groupadd命令

groupadd命令是用来添加组的命令的,用法跟useradd一样。

tail 命令

tail命令是用来查看一个文件最后几行的命令,不加参数默认是查看最后十行,可以通过tail -2 filename 用来查看文件最后两行的内容。

id 命令

id命令可以用来查看一个用户属于哪个组,通过该命令的执行结果我们可以看到一个用户不但有一个主组,还有一个附属组。

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

history命令是用来查看命令历史的命令,!XX的用法是可以运行XX开头的最近的一次命令。

[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的查询的用法是比较好用的,但是如果用它来安装或者卸载则会很麻烦,因为它不会自动处理依赖关系,需要我们手动一个一个解决依赖和被依赖包的安装卸载等。

转载于:https://my.oschina.net/u/3731306/blog/3007563

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值