Linux——基礎命令用法(下)

王智剛發表於2021-12-03

一、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

相關文章