Linux——基礎命令用法(下)
一、linux用戶
1、什麼是用戶
用戶是用來運行某一些進程、擁有某一些文件或目錄。
在Linux裏面,用戶分成三大類:root用戶、系統用戶、普通用戶。
用戶是用UID來唯一標識身份的,且root用戶UID為0,系統用戶UID範圍為1-999,普通用戶UID從1000開始默認依次往後累加。
什麼是系統用戶?
一般運行的進程屬於系統內核進程,那麼運行這些進程的用戶都是系統用戶,通常不會到系統前台,也就是命令解釋器shell裏面去登錄。
2、用戶有關的命令
useradd命令——創建用戶,通常創建完用戶後要設置一個密碼
[root@localhost ~]# useradd wzg
[root@localhost ~]# passwd wzg
usermod命令——修改用戶屬性
-g -> 為用戶指定主要組
-G -> 為用戶指定從屬組
-c -> 為用戶添加一個注釋字段
-u -> 為用戶指定一個UID
-L -> 鎖定用戶,使用戶密碼不可用,例如連續輸錯密碼
-U -> 解鎖用戶,使用戶密碼恢復可用
userdel命令——刪除用戶
userdel 用戶名 -> 非徹底刪除,宿主目錄被保留
userdel -r 用戶名 -> 徹底刪除,宿主目錄被刪除
附:
sudo 命令 -> 以root身份運行命令(root用戶具有系統全部權限的用戶,如果要執行安裝或刪除軟件以及管理系統文件等任務,必須將特權升級到root用戶)
id命令 -> 查看當前已登錄用戶的信息,也可以查看其他用戶的基本信息。
ps -au -> 查看當前終端下運行的所有進程並顯示與之相關聯的用戶。
ls -l -> 查看某一文件或目錄的用戶所有權。或查看三類用戶對某個文件的訪問權限
[root@localhost /]# ls -l
total 28
lrwxrwxrwx. 1 root root 7 Sep 21 12:53 bin -> usr/bin
dr-xr-xr-x. 3 root root 4096 Sep 21 12:58 boot
drwxr-xr-x. 20 root root 3260 Nov 16 19:51 dev
drwxr-xr-x. 141 root root 8192 Nov 16 19:53 etc
drwxr-xr-x. 6 root root 62 Oct 31 11:09 home
...
第一列第1位:
- l -> link 代表:鏈接文件
- d -> directory 代表:文件夾
- 橫杠 – 代表:普通文件
第一列後9位:(r可讀,w可寫,x可執行)
- 第一組代表所屬用戶對文件的訪問權限
- 第二組代表所屬組對文件的訪問權限
- 第三組代表其他用戶對文件的訪問權限(除了所屬用戶和組以外的其他用戶)
第三列root代表:文件所屬用戶是root
第四列root代表:文件所屬組是root組
3、本地用戶的信息
路徑:/etc/passwd
格式 -> 用戶名:密碼:UID:GID:注釋:宿主目錄:命令環境
- 密碼:用X代替保存在影子文件中
- GID:新建用戶後系統默認一個同名組
- 注釋:可空
- 宿主目錄:/root或者/home/dir
- 命令環境:/bin/bash或者/sbin/nologin
/bin/bash -> 解鎖賬戶,用戶可以使用shell登陸系統
/sbin/nologin -> 鎖定賬戶,用戶不能登陸系統,但可以運行某個程序,如果哪個用戶屬於不安全用戶,就可以將該用戶設置為nologin
# 練習
# 創建一個名為luna的用戶,在系統中沒有可登陸的shell
[root@localhost ~]# useradd luna
[root@localhost ~]# passwd luna
[root@localhost ~]# vim /etc/passwd
找到luna用戶,把/bin/bash 改為:/sbin/nologin
4、用戶密碼的信息
/etc/shadow -> 存放本地用戶的密碼
格式 -> 用戶名:密碼:最後更改密碼日期:密碼最短使用期限:密碼最多使用期限:密碼到期警告期:密碼到期後還可使用時間:密碼到期日:預留空白字段
- 密碼: * -> 代表沒有密碼,是空的,!-> 代表該用戶被禁用
- 密碼最短使用期限:0 -> 表示無限期使用
chage -用戶名 命令——設置賬戶到期時間
-d -> 設置最後一次修改用戶密碼的時間,以距離1970年1月1日開始算起
-E -> 設置賬戶到期日期
-I -> 設置賬戶到期後能繼續登陸系統的時間
-m -> 設置賬戶可以修改密碼的最少天數
-M -> 設置賬戶必須更改密碼前的最多天數
-W -> 設置密碼即將到期的警告天數
二、Linux組
1、什麼是組
主要組的概念:
當系統創建一個用戶的時候,會單獨給這個用戶分配一個組。
在/etc/passwd文件中的第四個字段GID定義。
- 特點:默認情況下,組名與用戶名同名,GID與UID同號,該組裏面只有該成員本身一人
- 特點:每個用戶有且僅有一個主要組,是1:1的數量關係。
從屬組(附加組)的概念:
某個用戶被人為添加到某個額外的組,獲取了這個組的權限,那麼這個組就叫做從屬組,或者附加組,它是非主要組。
在/etc/group文件中的最後一個字段定義。
- 特點:每個用戶的從屬組可以有多個,是1:n的數量關係。
- 特點:反過來,一個組可以有多個用戶成員,即可以是多個用戶的從屬組。
2、組有關的命令
groupadd命令——創建組
-g -> 給新建的組分配一個GID
groupmod命令——修改現有的組 -modify
-g -> 指定新的GID(主組)
-G -> 指定附加組
-n -> 指定新的groupname
groupdel命令——刪除組 (不能刪除屬於其他用戶的主組)
# 練習
# 創建一個名為groupone的組
# 創建一個名為harry的用戶,設置用戶ID為2021,其屬於staff組,且這個組是該用戶的附加組
[root@localhost ~]# groupadd groupone
[root@localhost ~]# useradd -u 2021 -G groupone harry
3、本地組信息
/etc/group -> 存放本地組信息
格式 -> 組名稱:組密碼:GID:從屬組用戶
- 組密碼:用X代替,密碼存放在/etc/gshadow文件中
- 從屬組用戶:即有哪些用戶從屬於這個組
三、Linux軟件包管理器
1、什麼是rpm包和yum源
紅帽有兩款軟件包管理器,分別是rpm和yum。
1、什麼是rpm包?
rpm包,類似於Windows裏面的exe文件,只不過在Linux裏面,一個軟件通常需要由多個rpm才能安裝好,而rpm包之間存在着安裝順序,這種安裝順序就叫做依賴性關係。
2、什麼是yum源?
自動化解析rpm包之間的依賴性關係,實現了安裝包的批量安裝。在Linux裏面,要使用yum,就需要提前配置一個yum源,用來解決rpm包之間的依賴性關係。
2、如何配置本地yum源:
要使用yum軟件包管理器,首先得需要一個yum倉庫,也就是一個yum源,這個是需要我們自己來配置的。
而這個yum倉庫可以使用本地倉庫(file),也可以使用遠程鏈接倉庫(http或ftp)。
具體操作步驟:
(1)先在VMware裏面把系統鏡像文件連接到虛擬機的光驅上;
(2)掛載光驅里的鏡像:
[root@localhost ~]# mount /dev/cdrom /media
(3)修改yum源配置文件local.repo(注意,文件後綴為.repo,文件名可以自定義):
[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[rhel]
name=rhel
baseurl=file:///media
enabled=1 #代表開啟此yum倉庫,0為關閉此倉庫
gpgcheck=0 #代表驗證倉庫軟件包的完整性(安全性),0為不驗證
(4)清空yum源緩存信息:
[root@localhost ~]# yum clean all
(5)檢索當前yum源信息:
[root@localhost ~]# yum repolist
3、軟件包管理器命令
rpm命令用法:
-i -> install -> 安裝某個package dependencies (依賴包)
-e -> erase -> 卸載(刪除)某個package
-v -> 顯示整個安裝過程中的詳細信息
-h -> 以#號顯示安裝進度
-q -> query -> 查詢
-f -> filename -> 文件名
-l -> list -> 羅列文件
常見用法:
[root@localhost ~]# rpm -ivh yum-utils-1.1.31-40.el7.noarch.rpm #安裝某個軟件包並顯示詳細安裝過程,以#號顯示安裝進度
[root@localhost ~]# rpm –qf /etc/chrony.conf #查詢某文件(chrony.conf)是由哪個軟件包安裝的
[root@localhost ~]# rpm -aq httpd #查詢對應的服務所要用到的rpm包
[root@localhost ~]# rpm -ql httpd #查詢對應的服務所涉及到的所有文件,包括數據文件和配置文件
yum命令用法:
[root@localhost ~]# yum clean all #清空yum 緩存
[root@localhost ~]# yum repolist #列表查看本操作系統所有的yum源
[root@localhost ~]# yum list #顯示已安裝和可用的軟件包
[root@localhost ~]# yum provides + 路徑 #查詢某個文件安裝的rpm包
[root@localhost ~]# yum -y install + 軟件名 #安裝某個軟件
[root@localhost ~]# yum -y remove + 軟件名 #卸載某個軟件
[root@localhost ~]# yum -y update + 軟件名 #更新某個軟件
[root@localhost ~]# yum info #提供與軟件包相關的詳細信息,包括安裝所需的磁盤空間
[root@localhost ~]# yum history #查詢yum軟件管理記錄
[root@localhost ~]# yum -y upgrade #升級系統內核
四、Linux的網絡配置與管理
1、網絡基礎命令
1、ifconfig 命令 <=> ip addr show 命令——查看本地所有網卡配置信息
其中,ens32:代表本地以太網網卡,lo:代表本地迴環網卡,virbr0:代表虛擬網卡
2、ping 命令——測試網絡連通性(使用ctrl+c來結束測試)
3、ip route 命令——查看本地路由
4、tracepath 命令——查看到目標ip地址所經的路由器地址
5、netstat 命令——查看網絡連接狀態
netstat -pant -> 查看帶有PID進程信息的tcp協議網絡端口連接狀態
6、ss 命令——獲取系統套接字(sockets)統計信息
ss -lt -> 與netstat -pant 功能類似,也可用來查看網絡連接狀態
2、編輯網絡配置文件
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet #網卡類型是以太網
BOOTPROTO=none #ip地址獲取方式有三種:dhcp動態獲取ip,none或static手動設置固定ip地址
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32 #網卡連接名
UUID=2c22b930-96b9-4ef4-abfb-ff9fbc85ff23 #網卡的系統設備ID號
DEVICE=ens32 #設備名
ONBOOT=yes #是否開機自啟
IPADDR=192.168.100.20 #IPv4地址
PREFIX=24 #子網掩碼,相當於NETMASK=255.255.255.0
GATEWAY=192.168.100.1 #網關
DNS1=192.168.100.254 #DNS地址,一張網卡可以綁定多個DNS
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
3、通過nmcli命令來配置
# 查看所有網卡連接信息
[root@localhost ~]# nmcli connection show
# 刪除已有的網卡連接名ens32
[root@localhost ~]# nmcli connection delete ens32
# 給網卡ens32添加一個新的網卡連接eth0,設置為:以太網類型、開機自啟
[root@localhost ~]# nmcli connection add con-name eth0 ifname ens32 type ethernet autoconnect yes
# 將網卡連接eth0修改為:手動添加IPv4地址,IP地址是:192.168.100.20/24,網關地址:192.168.100.2,對應的dns服務器地址是:119.29.29.29
[root@localhost ~]# nmcli connection modify eth0 ipv4.method man ipv4.addresses 192.168.100.20/24 ipv4.gateway 192.168.100.2 ipv4.dns 119.29.29.29
# 開啟網卡連接eth0
[root@localhost ~]# nmcli connection up eth0
#如果網卡連接起不來,可以先關閉該連接,然後再開啟
[root@localhost ~]#nmcli connection down eth0
# 重新加載所有的網卡連接配置
[root@localhost ~]# nmcli connection reload
# 因為修改了網卡配置,所以需要再重啟一下系統的網絡服務
[root@localhost ~]# systemctl restart network
# 檢查網絡是否配好
[root@localhost ~]# ifconfig
# 或者查看配置文件是否正確
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# 測試新配置好的本地網絡是否ping得通
[root@localhost ~]# ping 192.168.100.20