第1章 命令补充
1.1 diff命令
diff是文本比较的命令,还有一个类似的命令:vimdiff是图形化文本比较。
注意:比较前先将原文件备份,然后在备份的软件里面做些修改,这样方便两个文件比较、检查,后期方便对文件进行恢复。
示例:下边显示的内容就是两文件的差别
[root@oldboyedu ~]$ cp /etc/passwd{,.ori} <===文件备份
[root@oldboyedu ~]$ diff /etc/passwd{,.ori} <===比较文件内容
32c32
< $ oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
---
> oldgirl1:x:8889:8889::/home/oldgirl1:/bin/bash
1.2 rpm命令
rpm命令全称是Red Hat Package Manager(Red Hat包管理器),几乎所有的Linux发行版本都使用这种形式的命令管理、安装、更新和卸载软件。概括地说,rpm命令有五种基本功能(不包括创建rpm包):安装、卸载、升级、查询和验证。
但是rpm安装需要很多包组之间的依赖,安装比较麻烦,工作中一般不用此命令。
1.2.1 参数
| 参数 | 解释 |
|---|---|
| -i | 安装 |
| -v | 显示安装过程 |
| -h | 用“#”显示安装进度条 |
| -U | 升级软件包 |
| -e | 卸载软件包 |
| --nodeps | 忽略依赖 |
| -q | 查询 |
| -a | 查所有 |
| -l | 显示软件包中的所有软件列表 |
| -f | 查询文件或命令属于哪个软件包 |
1.2.2 示例
例1:安装包组
[root@oldboyedu ~]# rpm -ivh dos2unix-6.0.3-7.el7.x86_64.rpm
Preparing... ################################# [100%]
package dos2unix-6.0.3-7.el7.x86_64 is already installed
例2:查询tree命令所在的包组
[root@oldboyedu ~]# rpm -qa tree
tree-1.6.0-10.el7.x86_64
例3:显示软件包中的所有软件列表
[root@oldboyedu ~]$ rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
例4:查询命令属于哪个软件包
[root@oldboyedu ~]$ rpm -qf /sbin/ifconfig
net-tools-2.0-0.24.20131004git.el7.x86_64
1.3 yum命令
yum在安装命令或包组是还是使用的rpm安装,但是帮我们解决了软件包依赖安装麻烦的问题,让安装软件更智能了。
yum主要用于自动安装、升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系。
1.3.1 参数
| 参数 | 说明 |
|---|---|
| install | 安装软件包 |
| list | 获取软件包名 |
| search | 模糊查找软件包名 |
| groupinstall | 安装组包 |
| grouplist | 获取组包名称列表 |
| list installed | 查看已安装的软件 |
| provides | 根据命令或者配置等的路径查属于哪个包 |
| remove | 移除软件包(禁止使用) |
| repolist | 列出启用的YUM源 |
| repolist all | 列出所有的yum,包括禁用的yum源 |
1.3.2 示例
例1:获取组包名称列表
[root@oldboyedu ~]$ yum grouplist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base | 3.6 kB 00:00:00
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
……
例2:获取tree命令软件包名
[root@oldboyedu ~]$ yum list tree <===获取包组名
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Installed Packages
tree.x86_64 1.6.0-10.el7 @base
[root@oldboyedu ~]$ yum install tree -y <===安装包组
例3:根据命令或者配置等的路径查属于哪个包
[root@oldboyedu ~]$ yum provides /etc/my.cnf <===根据配置路径查询
[root@oldboyedu ~]$ yum provides /sbin/ifconfig <===根据命令路径查询
1.4 chattr:设置文件属性 和lsattr:查看文件属性
1.4.1 chattr参数
| 参数 | 说明 |
|---|---|
| +i | 锁定文件 |
| -i | 解锁文件 |
| +a | 只能追加内容,不能删除文件和内容 |
| -a | 解锁 |
1.4.2 示例
例1:加i权限锁定文件
[root@oldboyedu ~]$ lsattr /etc/ passwd <== 查询原权限
---------------- /etc/ passwd
[root@oldboyedu ~]$ chattr +i /etc/passwd <==添加i权限锁定文件,不能删除,不能修改
[root@oldboyedu ~]$ lsattr /etc/passwd <==查询新权限
----i----------- /etc/passwd
[root@oldboyedu ~]$cp /etc/passwd{,.ori} <==拷贝文件
[root@oldboyedu ~]$ rm -f /etc/passwd
rm: cannot remove ‘/etc/passwd’: Operation not permitted <==删除文件,不能成功
[root@oldboyedu ~]$ echo ddd > /etc/passwd
-bash: /etc/passwd: Permission denied <==添加文件内容,不能成功
第2章 CentOS6和ContOS7的对比
| 说明 | CentOS6.X | ContOS7.X |
|---|---|---|
| 最新版 | 6.9 | 7.6 |
| 架构 | 32/64位 | 64位 |
| 启动原理 | 串行(sysvinit 技术) | 并行(systemd 技术) |
| 安装过程 | 按顺序一步步安装模式 | 平台化安装模式 |
| 网卡名称 | eth0 | 类似ens33可修改内核 net.idnames=0 biosdevname=0 参数调整为传统模式 |
| 默认文件系统 | ext4 | xfs |
| 网卡管理服务 | network | NetworkManager network |
| 网络配置 | setup | nmtui |
| 开启关闭服务 | /etc/init.d/sshd start | stop restart srrvice cron start | stop restart |
systemtcl stop | start sshd |
| 查看服务状态 | /etc/init.d/crond status | systemctl status crond |
| 开机自启动 | chkconfig sshd off | on | systemctl disable|enable sshd |
| 查看开机自启动 | /chkconfig --list crond | /systemctl status crond systemctl is-enabled crond.service |
| 服务操作 | 单一管理/etc/init.d/crond.status | 批量systemctl status crond crond.service network |
| 额外基础工具 | tree nmap dos2unix lrzsz nc lsof wget tcpdump htop liotop sysstat nethogs |
额外psmisc net-tools bash-completion vim-enhanced |
| tab补全 | 命令 路径 | 命令 路径 参数 |
| 默认防火墙 | iptables | firewalld |
| 主机名修改 | hostname oldboy | hostnamectl set-hostname ildboy |
| 主机名文件 | /etc/sysconfig/network | /etc/hostname |
| 字符集文件 | /etc/sysconfig/i28n | /etc/locale.conf |
| 字符集命令配置 | export LANG= | export LANG="en_US.UTP-8" localectl set-locale LANG=en_US.UTP-8 |
| 运行级别 | 0-6 runlevel | init | /usr/lib/systemd/system/runlevel*.target |
| 默认数据库 | MySQL | MariaDB |
| IO调度 | cfq | dead line |
| /etc/rc.local | 放置开机启动的命令 | 放置开机启动命令(必须授权执行权限) |
| 查看IP和路由 | ifconfig 和route netstat -rn或route -n |
IP(默认没有 ifconfig或route) netstat -rn或route -n |