ITPub博客

linux 培训-基础篇

原创 Linux操作系统 作者:wwjfeng 时间:2018-08-02 21:00:14 0 删除 编辑

一.systemctl

1.服务器启动过程

redhat 7以前启动方式,init: 按顺序启动 1 2 3 4。  启动慢

redhat 7 systemd:并行化启动 按依赖关系启动。 1 2 3 4(network) 5 6 7 依赖于4则直接不启动。 启动快


运行等级

init     0 关机

1 单用户模式

2 无网络模式

3 无图形化模式

4 用户自定义模式

5 GUI

6 reboot


2.systemctl 使用说明

-启动服务

old: service xxxx start 

new: systemctl start xxx.service

systemctl restart xxx.service 服务会瞬断

systemctl reload xxx.service 服务不会中断


-设置开机启动

old:chkconfig xxx on   

new:systemctl enable xxx.service 


-显示当前的运行等级

# systemctl get-default

graphical.target

切换运行等级

systemctl isolate multi-user.target/emergency.target/graphical.target


-总结


二. SSH

1.SSH概念

shell 每一个用户都有一个自己的壳包含权限,个性化设置,环境变量等

用户需要通过shell 才能跟内核交互

SSH 就是secure Shell


用户必须要通过shell来与os内核交互

user

-----

shell

-----

kernel

-----

hardware


2.SSH种类

(1).ssh user@ip

不信任方式,服务器将自己的公钥给客户端


(2).配置基于秘钥/公钥的身份验证方式

加密方式:

-对称加密  same key

-非对称加密  公钥加密,私钥解密

信任的方式:客户端将自己的公钥发送给服务器,客户端的公钥是受信任的则不需要密码


(3).配置过程

linux

-ssh-keygens

生成客户端自己的公钥和私钥

-ssh-copy-id -i 指定公钥 user/hostname --将客户端公钥上传给服务器端

将客户端公钥上传至服务器端


windows

-secureCRT 在客户端生成公钥/秘钥

tool -> create public key


-将公钥上传到目标服务器,cat 公钥 >> ~/.ssh/authorized_keys


3.自定义SSH服务配置

vi /etc/ssh/sshd_config

#LoginGraceTime 2m。   --2分钟不操作 断开ssh连接

#PermitRootLogin yes  --是否允许root登陆

#StrictModes yes

#MaxAuthTries 6      --允许尝试登陆的次数

#MaxSessions 10

#PasswordAuthentication yes  --允许密码登陆


三.Linux日志系统

1.常规系统日志结构

cd /var/log

messages --通用日志

secure  --和安全及身份验证相关

maillog  --和邮件相关

cron    --计划任务相关

boot.log     --系统启动log


2.常规日志服务配置

(1).日志配置文件

vim /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

*.info 所有类别的info等级以上的日志记录在messages中。  

mail.none mail 类别的日志不记录

mail.*                                                  -/var/log/maillog 异步


(2).日志优先集


3.分析一个日志条目

4.系统审查日志systemd journal

(1)

systemd journal 默认情况下存储在/run/log,系统重新启动后内容会被清除。要求转换角色为rootq进行查看。

-a 所有

-n 5 最后5行

-p 优先级(err,info)

-b 启动消息

-f 监控

--since “2014-02-10 20:30:00” --until “2014-02-10 21:30:00” 指定范围

--since today 显示今天

-o 更改日志的输出模式


(2).常用命令

# journalctl --priority err

# journalctl _UID=1000 -n 5

# journalctl --since 13:00:00 --until 14:00:00 _SYSTEMD_UNIT="sshd.service"


(3).永久保存journal日志

[root@rh1 ~]# mkdir -p /var/log/journal

[root@rh1 ~]# chown root:systemd-journal /var/log/journal

[root@rh1 ~]# chmod 2755 /var/log/journal

[root@rh1 ~]# systemctl restart systemd-journald.service


日志将永久保存在/var/log/journal


四.时间

1.时间命令

# timedatectl

      Local time: Mon 2018-07-30 14:22:32 CST

  Universal time: Mon 2018-07-30 06:22:32 UTC

        RTC time: Mon 2018-07-30 06:22:32

       Time zone: Asia/Shanghai (CST, +0800)

     NTP enabled: no

NTP synchronized: yes

 RTC in local TZ: no

      DST active: n/a


timedatectl set-time 15:00:00 设置本地时间


2.ntp

(1).安装包chrony.x86_64

yum -install -y chrony.x86_64


(2).开启ntp服务器支持

timedatectl set-ntp true


(3).配置ntp服务器

vi /etc/chrony.conf
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst


(4).重启服务

systemctl restart chronyd
systemctl enable chronyd
# timedatectl
      Local time: Mon 2018-07-30 14:49:16 CST
  Universal time: Mon 2018-07-30 06:49:16 UTC
        RTC time: Mon 2018-07-30 06:49:16
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a


(5).查看ntp时间状态

# chronyc sources -v
210 Number of sources = 2
  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^+ 120.25.115.20                 2  10   377   643  +4362us[+4362us] +/-   50ms
^* 203.107.6.88                  2  10   377   704    -27ms[  -29ms] +/-   68ms


五.网络

1.常规网络配置

RHEL6 : network service network restart  管理的是设备名 ifcfg-设备名

RHEL7 : NetworkManager  --> nmcli          管理的是连接名 ifcfg-连接名 

相关服务:systemctl start NetworkManager

网卡的配置文件: /etc/sysconfig/network-scripts/ifcfg-xxxx


2.nmcli

(1).显示链接名和设备名

# nmcli connection show 
NAME       UUID                                  TYPE            DEVICE 
Profile 1  105c22e6-d4be-4a1b-978d-a53b81b60d33  802-3-ethernet  ens38  
ens33      e11de05d-64d8-421e-97f5-bd9cfbc9f647  802-3-ethernet  ens33  
virbr0     3728e459-2ed5-405b-8f2c-f56c9c22a16d  bridge          virbr0 
eth0       bd139d4f-d603-47a1-8ee6-95f883cddcf2  802-3-ethernet  --


(2).查看连接名信息

# nmcli connection show Profile\ 1
connection.id:                          Profile 1
connection.uuid:                        105c22e6-d4be-4a1b-978d-a53b81b60d33
connection.stable-id:                   --
connection.interface-name:              --
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.timestamp:                   1532948503
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        -1 (default)
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          no
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            manual
ipv4.dns:                               114.114.114.114
ipv4.dns-search:                        --
ipv4.dns-options:                       (default)
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.1.100/24, 1.1.1.1/8
ipv4.gateway:                           192.168.1.1
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       (default)
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           Profile 1
GENERAL.UUID:                           105c22e6-d4be-4a1b-978d-a53b81b60d33
GENERAL.DEVICES:                        ens38
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        no
GENERAL.DEFAULT6:                       no
GENERAL.VPN:                            no
GENERAL.ZONE:                           --
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/224
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/2
GENERAL.SPEC-OBJECT:                    --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         1.1.1.1/8
IP4.ADDRESS[2]:                         192.168.1.100/24
IP4.GATEWAY:                            192.168.1.1
IP4.DNS[1]:                             114.114.114.114
IP6.ADDRESS[1]:                         fe80::f434:5dd6:8419:fc87/64
IP6.GATEWAY:                            --


(3).创建网络连接

# nmcli connection modify ens33 ipv4.addresses 192.168.1.100/24 ipv4.gateway xxx ipv4.dns xxx ipv4.method manual connection.autoconnect yes

rhel 7.0 : # nmcli connection modify ens33 ipv4.addresses “192.168.1.100/24 192.168.1.1” ipv4.dns xxx ipv4.method manual connection.autoconnect yes ifname eth0 type ethernet


说明:

ipv4.addresses  ip地址

ipv4.gateway     网关

ipv4.dns            dns地址

ipv4.method      静态/动态ip

connection.autoconnect   系统启动自动连接

ifname              指定硬件设备名称

type                  网络类型


(4).激活连接

# nmcli connection up  Profile\ 1


(5).删除连接

# nmcli connection delete ens33


(6).配置多个ip地址条件

- 第一个ip必须为静态ip

- nmcli connection modify Profile\ 1 +ipv4.addresses 1.1.1.1/8


# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:50:56:2f:8a:54 brd ff:ff:ff:ff:ff:ff

    inet 172.20.10.9/28 brd 172.20.10.15 scope global dynamic ens33

       valid_lft 77270sec preferred_lft 77270sec

    inet6 fe80::9fbb:474d:f8bb:fcb2/64 scope link 

       valid_lft forever preferred_lft forever

3: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:50:56:36:d0:6c brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.100/24 brd 192.168.1.255 scope global ens38

       valid_lft forever preferred_lft forever

    inet 1.1.1.1/8 brd 1.255.255.255 scope global ens38

       valid_lft forever preferred_lft forever

    inet6 fe80::f434:5dd6:8419:fc87/64 scope link 

       valid_lft forever preferred_lft forever

4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000

    link/ether 52:54:00:e2:ac:76 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

       valid_lft forever preferred_lft forever

5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000

    link/ether 52:54:00:e2:ac:76 brd ff:ff:ff:ff:ff:ff


(7).总结nmcli命令


(8).网络图形化配置工具

nmtui

nm-connection-editor


(9).修改网卡设备名

/etc/udev/rules.d/70-persistent-ipoib.rules


(10).配置文件结构


3.主机名配置

RHEL6: /etc/sysconfig/network

RHEL7:/etc/hostname

hostnamectl set-hostname hostname


4.DNS配置文件

/etc/resolv.conf

更推荐使用ifcfg-xxx文件进行dns配置

nmcli con mod ID +ipv4.dns IP


5.服务端口配置文件

/etc/services


6.分析路由问题

tracepath IP


7.查看服务所监听的端口情况

# netstat -tunpl 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1579/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1199/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1200/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1507/master         
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::22                   :::*                    LISTEN      1199/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1200/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1507/master         
udp        0      0 0.0.0.0:38435           0.0.0.0:*                           807/avahi-daemon: r 
udp        0      0 192.168.122.1:53        0.0.0.0:*                           1579/dnsmasq        
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1579/dnsmasq        
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           807/avahi-daemon: r 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           54003/chronyd       
udp6       0      0 ::1:323                 :::*                                54003/chronyd


六.yum和rpm

1.yum客户端配置

yum install httpd  

systemctl start httpd

systemctl enable httpd

mkdir -p /var/www/html/iso

访问地址: http://IP/iso


2.yum 客户端配置

cd /etc/yum.repos.d/

vim aaa.repo

[test]

name=test

baseurl=http://IP/iso

gpgcheck=0  #不启用秘钥检查

enable=1


3.yum 常用命令

yum install -y
yum localinstall package_name   #使用yum源来解析本地安装包,来处理该包的依赖关系。
yum remove                      #移除软件包
yum search                      #按照关键字来搜索
yum provides ls                 #搜索命令是哪些软件包提供的
yum reinstall                   #损坏后重新安装
yum clean all                   #软件包下载错误,解析依赖关系错误时,可以将缓存及本地源数据清空。
yum repolist                    #查看可用yum源
yum list                        #列出当前仓库中的软件包信息
yum list installed              #列出已经安装的软件包的情况
yum grouplist                   #列出包组
yum groupinstall                #安装包组
yum info                        #查看软件包的信息
yum update                      #升级软件包
yum install http://xxxx/xxx.rpm #在互联网中直接安装package
yum-config-manager --add-repo http://xxxx --nogpgcheck    #自动生成yum源配置文件


4.使用第三方软件仓库(记得要安装httpd,并启动服务) 

-下载epel安装包

https://fedoraproject.org/wiki/EPEL


-yum localinstall 

# yum localinstall epel-release-latest-7.noarch.rpm


5.rpm

rpm的安装和管理工具
rpm -ivh                        #安装软件包
rpm -qa                         #查询已安装的软件包
rpm -ql                         #查看软件包安装路径
rpm -qf /usr/bin/ls             #查询ls命令是由哪个软件包提供的
rpm -qc                         #查询安装软件的配置文件
rpm -qd                         #查询安装软件的帮助文件
rpm -qi                         #查询软件包中的信息
rpm -e                          #卸载软件包
rpm --import                    #在互联网中直接安装package


七.分区

1.分区类型

MBR -> fdisk

每块盘可以分最多4个 主分区+扩展分区。 总共可以分15个分区(主分区+扩展分区+逻辑分区)

GPT -> gdisk


2.fdisk 常用参数

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

* partprobe 扫描分区表,强制内核建立设备文件。多路径使用kpartx命令。


3.格式化分区

mkfs.文件系统格式 /dev/sda5


4.swap分区

(1).流程:fdisk -> mkswap -> swapon -a -> /etc/fstab

需要修改文件系统id号 为82
Command (m for help): l
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix

(2).查看优先级

# swapon -s

Filename                                Type            Size    Used    Priority

/dev/dm-1                               partition       2097148 6168    -1


(3).设置优先级fstab

/dev/mapper/rhel-swap   swap                    swap    defaults,pri=2        0 0


八.RHEL引导过程控制和故障排除

1.系统加载模式


2.切换系统加载模式

# systemctl isolate multi-user.target


3.配置默认加载模式

# systemctl get-default

# systemctl set-default graphical.target


4.在启动时更改加载模式

选择一个不同目标的RHEL7 系统使用以下过程:

1、重新启动系统 

2、按任何键打断引导加载程序菜单开始倒计时 

3、将光标移动到要启动的项

4、按 e 键编辑当前条目

5、将光标移动到该以 linux16 开头的行

6、追加 systemd.unit=desired.target (内核传导) 

7、按 Ctrl + x 来启动这些更改


5.修改root密码

参考:http://blog.itpub.net/15412087/viewspace-2168822/


6./bin/bash丢失问题恢复

参考:http://blog.itpub.net/15412087/viewspace-2168823/


7.引导区恢复

网址


8.使用journalctl查看启动日志

# journalctl -b -1 -p err


九.防火墙

1.种类

RHEL6:iptables     没有明确的拒绝,就是允许。 

RHEL7:firewalld    没有明确的允许,就是拒绝。  默认只有22端口和dhcp可用。

二者任选其一。


2.GUI配置工具

firewall-config

# firewall-config

(firewall-config:2734): Gtk-WARNING **: cannot open display:


十.其他小工具

1.rsync

-全备份

rsync -av test1/ test2/    #第一次做为全备份

-增量备份

rsync -av test1/ test2/    #第二次做为增量备份

-差异备份

rsync -av --delete test1/ test2/

rsync -avP 同步所有的属性,显示完整的进度


2.winscp



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15412087/viewspace-2168653/,如需转载,请注明出处,否则将追究法律责任。

下一篇: RHEL7修改root密码
请登录后发表评论 登录
全部评论

注册时间:2010-03-27

  • 博文量
    138
  • 访问量
    55405