練習環境
每個學員機上有三臺預先配置好的虛擬機
server —— 作爲練習用服務器 172.25.0.11
desktop —— 作爲練習用客戶機 172.25.0.10
classroom —— 提供網關/DNS/軟件素材等資源 172.25.0.254
虛擬機Server
P地址:172.25.0.11
主機名:server0.example.com
系統版本:RHEL 7.0
虛擬機Desktop
IP地址:172.25.0.10
主機名:desktop0.example.com
系統版本:RHEL 7.0
真機遠程管理
Ctrl+Shift+t : 新開一個終端
ssh -X 登陸對方的用戶名@IP地址
[root@localhost ~]# ssh [email protected]
[root@server0 ~]# exit #退出遠程管理
簡單的軟件包管理
RPM Package Manager,RPM包管理器
rpm -q 軟件名... //查看軟件是否安裝
rpm -ivh 軟件名-版本信息.rpm... //安裝軟件
rpm -e 軟件名... //卸載軟件
舉例:
[root@server0 ~]# rpm -q vsftpd #查看vsftpd軟件包是否安裝
[root@server0 ~]# rpm -ivh /dvd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@server0 ~]# rpm -e vsftpd #卸載軟件包
瞭解內容:導入紅帽光盤包的簽名信息
[root@server0 ~]# rpm --import /dvd/RPM-GPG-KEY-redhat-release
Yum軟件包倉庫配置及使用,自動解決依賴關係
服務:爲客戶端自動解決依賴關係,並且安裝軟件
服務端:虛擬機classroom 搭建完成Web服務,共享光盤所有內容
驗證:瀏覽器中http://classroom.example.com/content/rhel7.0/x86_64/dvd/
客戶端:虛擬機server
修改配置文件,指定服務端位置/etc/yum.repos.d/*.repo
注:正確的文件與錯誤的文件會相互影響
[root@server0 ~]# rm -rf /etc/yum.repos.d/* //清空yum源目錄
[root@server0 ~]# vim /etc/yum.repos.d/dvd.repo
[rhel7] #倉庫標識
name=nsd rhel7 #倉庫描述信息
baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd/ #服務端具體位置路徑
enabled=1 #是否啓用該文件
gpgcheck=0 #是否檢測軟件包簽名信息
[root@server0 ~]# yum repolist #列出倉庫信息
[root@server0 ~]# yum -y install httpd #安裝軟件
[root@server0 ~]# yum list sssd #列軟件
[root@server0 ~]# yum remove 軟件名 #卸載軟件
[root@server0 ~]# yum clean all #清緩存
配置網絡地址
永久配置主機名
[root@server0 ~]# vim /etc/hostname
配置IP地址
網卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
連接管理:nmcli
1.查看nmcli命令識別的網卡名字
[root@A ~]# nmcli connection show
2.配置ip地址
[root@server0 ~]# nmcli connection modify 'System eth0' \
> ipv4.method manual \
> ipv4.addresses '172.25.0.110/24 172.25.0.254' \
> connection.autoconnect yes
格式:
#nmcli 連接網絡配置 '網卡識別的名字'
#ipv4.method 配置ip地址的方法 //auto自動獲取 manual手工配置
#ipv4.addresses 'ip地址/子網掩碼 網關地址'
#connection.autoconnect yes //每次開機自動啓用
3.激活配置
[root@server0 ~]# nmcli connection up 'System eth0'
[root@server0 ~]# ifconfig #查看ip地址
[root@server0 ~]# route #查看網關地址 gateway
DNS-Domain Name Server服務器配置
作用: 域名解析爲對應IP地址
DNS服務器: 虛擬機classroom
配置文件: /etc/resolv.conf
虛擬機Server
[root@server0 ~]# vim /etc/resolv.conf
nameserver 172.25.254.254
[root@server0 ~]# nslookup desktop0.example.com
查找文本內容
根據字符串模式提取文本行
grep [選項] '匹配模式' 文本文件...
-v,取反匹配
-i,忽略大小寫
[root@server0 ~]# grep 'root' /etc/passwd
[root@server0 ~]# grep -i 'ROOT' /etc/passwd #忽略大小寫
[root@server0 ~]# grep -v 'root' /etc/passwd #不要包含root
^word 以字符串word開頭
word$ 以字符串word結尾
[root@server0 ~]# grep '^root' /etc/passwd #以root開頭的行
[root@server0 ~]# grep 'root$' /etc/passwd #以root結尾的行
重定向輸出
> : 覆蓋重定向 #將前面命令的輸出,寫入文本文件中,自帶touch功能
>> : 追加重定向
[root@server0 ~]# grep 'bash$' /etc/passwd > /opt/nsd.txt
[root@server0 ~]# hostname >> /opt/1.txt
echo 字符串輸出
[root@server0 ~]# echo hello world
[root@server0 ~]# echo 123456 > /opt/1.txt
[root@server0 ~]# echo server0.example.com > /etc/hostname
[root@server0 ~]# echo nameserver 172.25.254.254 > /etc/resolv.conf
管理用戶和組
唯一標識: UID 編號 GID 編號
管理員用戶root:UID 0
普通用戶UID:從UID 1000
組:基本組(私有組) 附加組(從屬組 公共組)
添加用戶
用戶基本信息存放在 /etc/passwd 文件
[root@server0 ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用戶名:密碼佔位符:UID:GID:用戶描述信息:家目錄:解釋器程序(shell)
useradd 添加用戶命令
常用命令選項
-u 用戶id、-d 家目錄路徑、-s 登錄Shell解釋器 、-G 附加組、-g 基本組
[root@server0 ~]# useradd -d /mnt/abc nsd06 #指定家目錄創建用戶
[root@server0 ~]# useradd -u 1100 nsd02 #指定UID創建用戶
[root@server0 ~]# useradd -s /sbin/nologin nsd07 #指定解釋器,禁止用戶登陸操作系統
[root@server0 ~]# groupadd tarena #創建tarena組
bc Linux計算器
[root@server0 ~]# bc
1+1 #加法
2*3 #乘法
10/3 #除法
10%3 #取餘數運算,餘數一定小於被除數
[root@server0 ~]# quit #退出計算器
管道操作 |
作用:將前面命令的輸出結果,交由後面命令處理,最後輸出最後命令的結果
[root@server0 ~]# cat -n /etc/passwd | head -12 | tail -5
[root@server0 ~]# ifconfig | head -2
[root@server0 ~]# grep 'root' /etc/passwd | grep 'bash'
passwd:密碼設置命令
用戶密碼信息存放在 /etc/shadow 文件
[root@server0 ~]# passwd harry
[root@server0 ~]# su - harry #臨時切換用戶身份
[harry@server0 ~]$ passwd
[root@server0 ~]# echo 123 | passwd --stdin harry #非交互式設置密碼
usermod 更改用戶信息
-u 用戶id、-d 家目錄路徑、-s 登錄Shell解釋器、-G 附加組、-g 基本組
[root@server0 ~]# usermod -u 1300 -d /opt/abc -s /sbin/nologin -G root natasha
[root@server0 ~]# grep 'natasha' /etc/passwd
[root@server0 ~]# id natasha
補充: 也可以vim修改/etc/passwd 文件內容更改用戶信息
userdel 刪除用戶
-r:連同用戶家目錄一併刪除
[root@server0 ~]# userdel -r nsd01
管理組賬號
組基本信息存放在 /etc/group 文件
[root@server0 ~]# groupadd stugrp
[root@server0 ~]# tail -1 /etc/group
stugrp:x:1002:
組名:組的密碼佔位符:本組的GID編號:本組成員的列表
[root@server0 ~]# useradd kenji
使用gpasswd命令
gpasswd -a 用戶名 組名 #用戶加入組
gpasswd -d 用戶名 組名 #從組中刪除用戶
[root@server0 ~]# gpasswd -a kenji stugrp
[root@server0 ~]# gpasswd -d tom stugrp
[root@server0 ~]# grep 'stugrp' /etc/group
groupdel 刪除組命令
[root@server0 ~]# groupadd stugrp //刪除組stugrp
tar備份與恢復
歸檔的含義
將許多零散的文件整理爲一個文件
文件總的大小基本不變
壓縮的含義
按某種算法減小文件所佔用空間的大小
恢復時按對應的逆向算法解壓
Linux獨有的壓縮工具
gzip -------> *.gz
bzip2 ------> *.bz2
xz ----------> *.xz
[root@server0 opt]# gzip /opt/group
[root@server0 opt]# bzip2 /opt/passwd
[root@server0 opt]# xz /opt/shadow
tar 集成備份工具
tar [選項] tar包名字 被歸檔的文件
[root@server0 /]# tar -cPf test01.tar /home/ /mnt/
[root@server0 /]# tar -xf /opt/file01.tar -C /nsd/
-c:創建歸檔 -P:保持路徑不變進行歸檔 -f:指定歸檔包的名字
-x: 釋放歸檔 -C:指定釋放位置 -t:查看tar包內容
[root@server0 /]# tar -tf /root/test.tar #查看tar包裏面內容
[root@server0 /]# tar -xPf /root/test.tar #絕對路徑釋放
-z、-j、-J : 調用 .gz、.bz2、.xz 格式的工具進行處理
[root@server0 ~]# tar -zcPf /opt/nsd.tar.gz /home/
[root@server0 ~]# tar -jcPf /opt/abc.tar.bz2 /home/
[root@server0 ~]# tar -JcPf /opt/home.tar.xz /home/
[root@server0 ~]# tar -xf /opt/nsd.tar.gz -C /mnt/
查看日期時間
[root@server0 ~]# date
2018年 03月 14日 星期三 17:21:38 CST
[root@server0 ~]# date +%F #顯示年-月-日
[root@server0 ~]# date +%Y #顯示年
[root@server0 ~]# date +%m #顯示月
[root@server0 ~]# date +%d #顯示當天是多少號
[root@server0 ~]# date +%H #顯示時
[root@server0 ~]# date +%M #顯示分
修改時間
[root@server0 ~]# date -s "年-月-日 時:分:秒"
NTP時間同步
NTP-Network Time Protocol網絡時間協議
NTP服務器爲客戶機提供標準時間
NTP客戶機需要與NTP服務器保持溝通
服務端:服務端軟件,classroom.example.com NTP服務器
客戶端:客戶端軟件.虛擬機server
1.安裝客戶端同步時間的軟件chrony
[root@server0 ~]# yum -y install chrony
2.修改配置文件指定服務端位置
[root@server0 ~]# vim /etc/chrony.conf
server classroom.example.com iburst
3.重啓服務
[root@server0 ~]# systemctl restart chronyd #重起服務
[root@server0 ~]# systemctl enable chronyd #開機啓動
4.驗證:
[root@server0 ~]# systemctl restart chronyd
[root@server0 ~]# date
cron計劃任務
用途:按照設置的時間間隔爲用戶反覆執行某一項固定的系統任務
軟件包:cronie、crontabs 系統服務:crond 日誌文件:/var/log/cron
編寫crontab任務記錄
* * * * * COMMAND
分 時 日 月 周 命令
*:匹配範圍內任意時間 ,:分隔多個不連續時間點
-:制定連續的時間範圍 /n:指定時間頻率
使用crontab命令
crontab -e [-u 用戶名]
[root@server0 ~]# crontab -e -u root
* * * * * date >> /opt/time.txt
[root@server0 ~]# cat /opt/time.txt
find 按條件查找文件
根據預設的條件遞歸查找對應的文件
find [目錄] [條件1] [-a|-o] [條件2] ...
-type 類型(f文件、d目錄、l快捷方式)
-name "文檔名稱"
-size +|-文件大小(k、M、G)
-user 所有者
-group 所屬組
[root@server0 ~]# find /boot/ -type l #查找是快捷方式
[root@server0 ~]# find /boot/ -type d #查找是目錄
[root@server0 ~]# find /boot/ -type f #查找是文本文件
[root@server0 ~]# find /root/ -name "nsd*" #文件名稱查找
[root@server0 ~]# find /boot/ -size +300k #文件大小查找
[root@server0 ~]# find / -user wangwu #用戶名稱查找
舉例:請顯示/etc目錄下以.conf結尾的?(包含子目錄)
[root@server0 ~]# find /etc -name "*.conf"
舉例:請顯示/etc目錄下以.conf結尾的?(不包含子目錄)
[root@server0 ~]# ls /etc/*.conf
使用find命令的-exec 操作
find .. .. -exec 處理命令 {} \;
優勢:以{} 代替每一個結果,逐個處理,遇\; 結束
[root@server0 ~]# find /boot/ -size +300k -exec cp -r {} /opt \;
[root@server0 ~]# find / -user student -type f -exec cp {} /root/findfile \;
根據名稱查找,忽略大小寫
-iname
[root@server0 ~]# find /etc/ -name "PASSWD"
[root@server0 ~]# find /etc/ -iname "PASSWD"
根據賬號名稱或所屬組
-user、-group
[root@server0 ~]# find /home/ -group student
限制目錄查找的深度(最大層數)
-maxdepth
[root@server0 ~]# find /etc/ -maxdepth 1 -name "*.conf"
[root@server0 ~]# find /etc/ -maxdepth 2 -name "*.conf"