第一章 基本操作

1.1 操作系统基本信息

  1. 查看操作系统位数
#uname -i
i686是32位,x86_64则是64位
  1. 查看操作系统版本
#more /etc/redhat-release
(仅对redhat适用)

1.2 查看硬件信息

  1. 查看CPU信息: #cat /proc/cpuinfo
  2. 查看内存信息: #grep MemTotal /proc/meminfo
  3. 查看BIOS:#dmidecode -s bios-version
  4. 查看网卡:#kudzu --probe --class=network
  5. 查看HBA卡:#cat /sys/class/scsi_host/host
  6. 查看其它硬件信息:#dmidecode |more

1.3 时间日期设置

  1. 只修改日期,不修改时间: #date -s 2007-08-03
  2. 只修改时间: #date -s 14:15:00
  3. 同时修改日期时间,注意要加双引号,日期与时间之间有一空格: #date -s "2007-08-03 14:15:00"
  4. 最后,把系统时间写入CMOS #clock -w 或 hwcloc

1.4 时区设置

  1. 修改时区,复制相应的时区文件,替换系统时区文件: #cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime

第二章 进程管理

2.1 进程管理

可以用ps的-l选项,得到更详细的进程信息. F(Flag):一系列数字的和,表示进程的当前状态。
这些数字的含义为:
  00:若单独显示,表示此进程已被终止。
  01:进程是核心进程的一部分,常驻于系统主存。如:sched、 vhand 、bdflush 等。
  02:Parent is tracing process.
  04:Tracing parent’s signal has stopped the process; the parent is waiting ( ptrace(S)).
  10:进程在优先级低于或等于25时,进入休眠状态,而且不能用信号唤醒,例如在等待一个inode被创建时。
  20:进程被装入主存(primary memory)
  40:进程被锁在主存,在事务完成前不能被置换

  S(state of the process )
  T:跟踪状态(Traced)
  O:进程正在处理器运行
  S:休眠状态(sleeping)
  R:等待运行(runable)
  I:空闲状态(idle)
  Z:僵尸状态(zombie)
  B:进程正在等待更多的内存页
  C:cpu利用率的估算值(cpu usage)

2.2 Linux中有两种异常的进程:

  1. 孤儿进程:应用通过fork进程后,父进程被kill或者exit,该父进程的子进程被1号进程接管。linux内核启动时候回启动0号进程,启动完毕后0号进程就处于空闲状态,所有的进程的父进程都是有1号进程fork出来的。
  2. 僵尸进程:fork操作出来的父子进程,子进程收到kil -9的操作或者exit的操作,父进程没有正常回收子进程信息,此时子进程的内存和CPU资源被操作系统回收,但是PCB块还会在内核中。Linux进程的控制是依靠PCB块的,PCB块记录了进程的运行信息,比如时间片,运行时间,内存资源等等。linux内核按照不同的进程状态把进程放到不同的状态的list中,每次内核会遍历这些list执行对应的进程。

2.3 kill -9 无法杀掉进程的原因

kill -9发送SIGKILL信号将其终止,但是以下两种情况不起作用: 1. 该进程处于僵尸进程"Zombie"状态(使用ps命令返回defunct的进程)。此时进程已经释放所有资源,但还未得到其父进程的确认。"zombie"进程要等到下次重启时才会消失,但它的存在不会影响系统性能。 2. 该进程处于"kernel mode"(核心态)且在等待不可获得的资源。处于核心态的进程忽略所有信号处理,因此对于这些一直处于核心态的进程只能通过重启系统实现。进程在AIX 中会处于两种状态,即用户态和核心态。只有处于用户态的进程才可以用“kill”命令将其终止。

第三章 用户组管理

3.1 用户组创建

# groupadd -g 2000 oagrp
# useradd -u 1000 -g 2000 oausr

3.2 主组和组集区别

在使用useradd命令创建用户的时侯可以用-g 和-G 指定用户所属组和附属组。
基本组: 如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组,不可以把用户从基本组搜索中删除。在创建文件时,文件的所属组就是用户的基本组。
附加组: 除了基本组之外,用户所在的其他组,都是附加组,用户是可以从附加组中被删除的。
用户不论为与基本组中还是附加组中,就会拥有该组的权限,一个用户可以属于多个附加组,但是一个用户只能有一个基本组。

第四章 权限管理

4.1 ACL权限管理

当既不能是文件所有者,又不能是文件所属组的成员,但要具有和其它人不一样的权限,使用ACL权限。

1. 查看ACL是否开启

# dumpe2fs -h /dev/mapper/datavg-home  
选项 Default mount options:   user_xattr acl

2. 开启ACL

临时开启: # mount -o remount , acl /home (重新挂载/home目录)
永久开启: 修改/etc/fstab文件,如“UUID=c2ca6f57-b15c-43ea=bca0-f239083d8bd2 / ext4 defaults,acl 1(#启动是否需要检测) 1(#启动是否需要备份)

3. 查看ACL权限

$ getfacl 文件名/目录名

4. 设置ACL权限

$ setfacl 【选项】 文件名/目录名

选项:
-m:设定ACL权限;
-x:删除指定的ACL权限;
-b:删除所有的ACL权限;
-d:设定默认ACL权限;
-k:删除默认ACL权限;
-R:递归设定ACL权限;(递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限,只能对目录设置,不能能文件)

比如:

# setfacl -m u:user:rx /home/test

注意:
mask是用来指定有效权限的,我们赋予用户ACL权限,需要与mask作相与运算才能得到用户的真正权限。
比如:

# setfacl -m m:rx test
# setfacl -m u:user:rwx test
# getfacl test

此时,user对test目录并不是rwx,而是rwx与r-x相与后的r-x权限。

5. 删除ACL权限

# setfacl -x u:user test   //删除用户对test目录的ACL权限
# setfacl -x g:oagrp test  //删除用户组对test目录的ACL权限
# setfacl -b test          //删除所有权限

4.2 sudo权限管理

第五章 网络管理

5.1 RHEL6 IP网络配置

5.2 RHEL7 IP网络配置

导读:

RHEL7里面的网卡命名方式从eth0,1,2的方式变成了enoXXXXX的格式。 en代表的是enthernet (以太网),o 代表的是onboard (内置),那一串数字是主板的某种索引编号自动生成,以便保证其唯一性。和原先的命名方式对比,这种新的方式比较长,难以记忆,不过优点在于编号唯一,做系统迁移的时候不容易出错。

方法一:修改/etc/sysconfig/network-scripts/eno16777736

查看你的网卡名称(本机是eno16777736):

[root@linuxprobe Desktop]# ifconfig
eno16777736: flags=4163  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:feb8:2b07  prefixlen 64  scopeid 0x20
        inet6 fde0:b912:e3a9:0:20c:29ff:feb8:2b07  prefixlen 64  scopeid 0x0
        ether 00:0c:29:b8:2b:07  txqueuelen 1000  (Ethernet)
        RX packets 37  bytes 5428 (5.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 62  bytes 8269 (8.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 134  bytes 10928 (10.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 134  bytes 10928 (10.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@linuxprobe Desktop]#

编辑ifcfg-eno16777736 文件:

红色为需要修改或者添加的内容,保存并退出。
部分释义:

TYPE=Ethernet        #网络接口类型
BOOTPROTO=static     #动态为dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes          #是否支持IPV6       
IPV6_AUTOCONF=yes    
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736    #网卡名称
UUID=72cf53fd-534c-4765-912b-3df575a10a7d
ONBOOT=yes          #开启自动启用网络连接
IPADDRO=192.168.1.20  #设置IP地址
GATEWAY0=192.168.1.1  #设置网关
PREFIX0=24           #设置子网掩码
DNS1=192.168.1.1     #设置DNS
HWADDR=00:0C:29:B8:2B:07
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes  

重启网卡并测试网络:

[root@linuxprobe Desktop]# systemctl restart network  

方法二: 图形工具nmtui

在终端执行命令:

[root@linuxprobe Desktop]# nmtui  



你依然需要重启网卡才能生效,并测试网络。

方法三:图形工具nm-connection-editor

[root@linuxprobe Desktop]# nm-connection-editor  



Editing is enabled. Use the "Save changes" button below the editor to commit modifications to this file.