linux培训-基础篇
一.systemctl
目前创新互联公司已为1000多家的企业提供了网站建设、域名、网络空间、网站托管维护、企业网站设计、雨花台网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
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@rh2 ~]# mkdir -p /var/log/journal
[root@rh2 ~]# chown root:systemd-journal /var/log/journal
[root@rh2 ~]# chmod 2755 /var/log/journal
[root@rh2 ~]# 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:
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:
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:
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:
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:
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
网页名称:linux培训-基础篇
URL地址:http://azwzsj.com/article/pdgppe.html