Linux的常用命令(下)

gzip壓縮和gunzip解壓縮

gzip 文件 (功能描述:壓縮文件,只能將文件壓縮爲.*gz文件)
gunzip 文件.gz (功能描述:解壓縮文件命令)
在這裏插入圖片描述

zip和unzip指令

zip [選項] XXX.zip 將要壓縮的內容 (功能描述:壓縮文件和目錄的命令)
unzip [選項] XXX.zip (功能描述:解壓縮文件)
zip常用選項:
-r:遞歸壓縮,即壓縮目錄
在這裏插入圖片描述
(/home/*與/home/、/home效果相同)
在這裏插入圖片描述
在這裏插入圖片描述

tar指令

tar指令是打包指令,最後打包的文件是tar.gz的文件。
tar [選項] XXX.tar.gz 打包的內容 (功能描述:打包目錄,壓縮後的文件格式.tar.gz)
-c:產生.tar打包文件
-v:顯示詳細信息
-f:指定壓縮後的文件名
-z:打包同時壓縮
-x:解包.tar文件
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
(解壓到當前目錄)
在這裏插入圖片描述
(/home/test這個目錄必須存在,纔可以解壓到指定目錄中)

文件/目錄所有者

一般爲文件的創建者,誰創建了該文件,就自然的成爲該文件的所有者。

查看文件的所有者

ls -ahl
在這裏插入圖片描述

修改文件所有者

chown 新用戶名 文件名
在這裏插入圖片描述

文件/目錄所在組

當某個用戶創建了一個文件後,這個文件的所在組就是該用戶所在的組。

查看文件/目錄所在組

ls -ahl

修改文件所在的組

chgrp 新組名 文件名
在這裏插入圖片描述

其它組

除文件的所有者和所在組的用戶外,系統的其它用戶都是文件的其它組。

改變用戶所在組

在添加用戶時,可以指定將該用戶添加到哪個組中,同樣的用root的管理權限可以改變某個用戶所在的組。

usermod -g 組名 用戶名
在這裏插入圖片描述
usermod -d 目錄名 用戶名 改變該用戶登陸的初始目錄

權限的基本介紹

ls -l中現實的內容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
0-9位說明:
①第0位確定文件類型(d,-,l,c,b)
②第1-3位確定所有者(該文件的所有者)擁有該文件的權限。——User
③第4-6位確定所屬組(同用戶組的)擁有該文件的權限。——Group
④第7-9位確定其他用戶擁有該文件的權限。——Other
在這裏插入圖片描述

rwx作用到文件

[r] 代表可讀(read):可以讀取,查看。
[w] 代表可寫(write):可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對該文件所在的目錄有寫權限,才能刪除該文件。
[x] 代表可執行(execute):可以被執行。

rwx作用到目錄

[r] 代表可讀(read):可以讀取,ls查看目錄內容。
[w] 代表可寫(write):可以修改,目錄內創建+刪除+重命名目錄。
[x] 代表可執行(execute):可以進入該目錄。

一個例子的講解

rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

10個字符確定不同用戶能對文件做什麼
第一個字符代表文件類型:文件(-),目錄(d),鏈接(l)
其餘字符每3個一組(rwx)讀(r)寫(w)執行(x)
第一組rwx:文件擁有者的權限是讀、寫和執行
第二組rw-:與文件擁有者同一組的用戶的權限是讀、寫但不能執行
第三組r–:不與文件擁有者同組的其他用戶的權限是讀不能寫和執行
可用數字表示爲:r=4,w=2,x=1,因此rwx=4+2+1=7
1 —— 文件:硬連接數;目錄:子目錄數
root —— 用戶
root —— 組
1213 —— 文件大小(字節),如果是文件夾,顯示4096字節
Feb 2 09:39 —— 最後修改時間
abc —— 文件名

修改權限

通過chmod指令,可以修改文件或者目錄的權限。

第一種方式:+、-、=變更權限

u:所有者
g:所有組
o:其他人
a:所有人(u、g、o的總和)
chmod u=rwx,g=rx,o=x 文件目錄名
在這裏插入圖片描述
chmod o+w 文件目錄名

chmod a-x 文件目錄名
在這裏插入圖片描述

第二種方式:通過數字變更權限

r=4,w=2,x=1
rwx=4+2+1=7

chmod u=rwx,g=rx,o=x 文件目錄名 相當於 shmod 751 文件目錄名

修改文件所有者—chown

chown newowner file 改變文件的所有者
在這裏插入圖片描述
chown newowner:newgroup file 改變用戶的所有者和所有組

-R 如果是目錄 則使其下所有子文件或目錄遞歸生效
在這裏插入圖片描述

chgrp指令修改文件所在組

chgrp newgroup file 改變文件的所有組
在這裏插入圖片描述

crond進行定時任務的設置

crontab進行定時任務的設置

任務調度:是指系統在某個時間執行的特定的命令或程序。
任務調度分類:1、系統工作:有些重要的工作必須週而復始地執行。如病毒掃描等。
2、個別用戶工作:個別用戶可能希望執行某些程序,比如對mysql數據庫的備份。

crontab [選項]
常用選項:
-e:編輯crontab定時任務
-l:查詢crontab任務
-r:刪除當前用戶所有的crontab任務

快速入門

設置任務調度文件:/etc/crontab
設置個人任務調度。執行crontab -e命令。
接着輸入任務到調度文件
如:*/1 * * * * ls -l /etc/ > /tmp/to.txt
意思是說每小時的每分鐘執行ls -l /etc/ > /tmp/to.txt命令

參數細節說明:
第一個“*”——1小時當中的第幾分鐘——(0-59)
第二個“*”——1天當中的第幾小時——(0-23)
第三個“*”——1個月當中的第幾天——(1-31)
第四個“*”——1年當中的第幾月——(1-12)
第五個“*”——1周當中的星期幾——(0-7,0和7都代表星期日)

cron -e
ls -l /etc/ > /tmp/to.txt
在這裏插入圖片描述
在這裏插入圖片描述
例子:每隔一分鐘,就將當前的日期信息,追加到/tmp/mydate文件中
①先編寫一個文件 /home/task.sh
vim task.sh下寫入——date >> /tmp/mydate
②給task.sh一個可執行權限——chmod 744 /home/task.sh
crontab -e
寫入——*/1 * * * * /home/task.sh
④成功設置定時任務
在這裏插入圖片描述
在這裏插入圖片描述

mbr分區

①最多支持四個主分區
②系統只能安裝在主分區
③擴展分區要佔一個主分區
④MBR最大隻支持2TB,但擁有最好的兼容性

gtp分區

①支持無限多個主分區(但操作系統可能限制,比如Windows下最多128個分區)
②最大支持18EB的大容量(EB=1024PB,PB=1024TB)
③Windows7 64位以後支持gtp

Linux分區

①Linux無論有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構,Linux中每個分區都是用來組成整個文件系統的一部分。

②Linux採用了一種叫“載入”的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯繫起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得。

硬盤說明

①Linux硬盤分IDE硬盤和SCSI硬盤,目前基本上是SCSI硬盤。

②對於IDE硬盤,驅動器標識符爲“hdx~”,其中,“hd”表明分區所在設備的類型,這裏是指IDE硬盤了。“x”爲盤號(a爲基本盤,b爲基本從屬盤,c爲輔助主盤,d爲輔助從屬盤),“~”代表分區,前四個分區用數字1到4表示,它們是主分區或擴展分區,從5開始就是邏輯分區。例,hda3表示爲第一個IDE硬盤上的第三個主分區或擴展分區,hdb2表示爲第二個IDE硬盤上的第二個主分區或擴展分區。

③對於SCSI硬盤則標識爲“sdx~”,SCSI硬盤是用“sd”來表示分區所在設備的類型的,其餘則和IDE硬盤的表示方法一樣。

lsblk指令查看當前系統分區

在這裏插入圖片描述
在這裏插入圖片描述

向Linux系統增加一個新的硬盤,並且掛載到/home/newDisk

如何增加一塊硬盤???

①虛擬機添加硬盤

②分區
fdisk /dev/sdb

③格式化

mkfs -t ext4 /dev/sdb1

④掛載
先創建一個 mkdir /home/newdisk,掛載mount /dev/sdb1 /home/newdisk

⑤設置可以自動掛載(永久掛載,當你重啓系統,仍然可以掛載到/home/newdisk)
vim /etc/fstab

dev/sdb1 /home/newdisk ext4 defaults 0 0

mount -a

reboot

查詢系統整體磁盤使用情況

df -h
在這裏插入圖片描述

查詢指定目錄的磁盤佔用情況

du -h /目錄
默認爲查詢當前目錄
-s:指定目錄佔用大小彙總
-h:帶計量單位
-a:含文件
–max-depth=1:子目錄深度
-c:列出明細的同時,增加彙總量
在這裏插入圖片描述

統計/etc文件下文件的個數

在這裏插入圖片描述

統計/etc文件下目錄的個數

在這裏插入圖片描述

統計/etc文件下文件的個數,包括子文件夾裏的

在這裏插入圖片描述

統計/etc文件下目錄的個數,包括子文件夾裏的

在這裏插入圖片描述

以樹狀顯示目錄結構

yum install tree
在這裏插入圖片描述

Linux網絡配置指定ip地址

網卡中沒有eth0的解決辦法:

參考鏈接:https://www.cnblogs.com/m97i/p/8626545.html

修改成指定ip的辦法

參考鏈接:https://blog.csdn.net/qq_43386754/article/details/85316051

修改主機名

①查看當前主機名
hostname
在這裏插入圖片描述
②修改Linux的主機映射文件
vim /etc/hostname (修改主機名)

③修改vim /etc/hosts增加ip和主機的映射
192.168.210.130 hadoop1

⑤如果希望windows也可以通過主機名來連接centos,進入
C:\Windows\System32\drivers\etc\hosts
192.168.210.130 hadoop1

顯示系統執行的進程

ps命令是用來查看目前系統中,有哪些正在執行,以及它們執行的狀況,可以不加任何參數。

ps

ps -aux

ps -aux | grep xxx

ps顯示的信息選項:
USER:用戶名稱
PID:進程號
%CPU:進程佔用CPU的百分比
%MEM:進程佔用物理內存的百分比
VSZ:進程佔用的虛擬內存大小(單位:KB)
RSS:進程佔用的物理內存大小(單位:KB)
TTY:終端名稱
STAT:進程狀態,其中,s-睡眠,s-表示該進程是會話的先導進程,N-表示進程擁有比普通優先級更低的優先級,R-正在運行,D-短期等待,T-被跟蹤或者被停止等等
STARTED:進程的啓動時間
TIME:CPU時間,即進程使用CPU的總時間
COMMAND:啓動進程所用的命令和參數,如果時間過長會被截斷顯示

ps -a:顯示當前終端的所有進程信息
ps -u:以用戶的格式顯示進程信息
ps -x:顯示後臺進程運行的參數
在這裏插入圖片描述

全格式顯示當前所有的進程,查看進程的父進程

ps -ef | grep xxx
-e:顯示所有進程
-f:全進程
在這裏插入圖片描述
在這裏插入圖片描述
顯示sshd的父進程

終止進程kill和killall

若是某個進程執行一半需要停止時,或是已消耗了很大的系統資源時,此時可以考慮停止該進程。使用kill命令來完成此項任務。

kill [選項] 進程號 (功能描述:通過進程號殺死進程)

killall 進程名稱 (功能描述:通過進程名稱殺死進程,也支持通配符,這在系統因負載過大而變得很慢時很有用)

常用選項:
-9:表示強迫進程立即停止

查看進程樹pstree

pstree [選項]

常用選項:
-p:顯示進程的PID
-u:顯示進程的所屬用戶

pstree未找到命令解決辦法:
yum install psmisc
在這裏插入圖片描述

服務(service)管理

服務(service)本質就是進程,但是是運行在後臺的,通常都會監聽某個端口,等待其他程序的請求,比如(mysql,sshd 防火牆等),因此我們又稱爲守護進程,是Linux中非常重要的知識點。

systemctl 服務名 [start | stop | restart | reload | status]

動態監控進程

top與ps命令很相似,它們都用來顯示正在執行的進程。Top與ps最大的不同之處,在於top在執行一段時間可以更新正在運行的進程。

top [選項]
-d秒數 (功能描述:指定top命令每隔幾秒更新,默認是3秒在top命令的交互模式當中可以執行的命令)
-i (功能描述:使top不顯示任何閒置或者僵死進程)
-p (功能描述:通過指定監控進程ID來僅僅監控某個進程的狀態)

P:以CPU使用率排序,默認就是此項
M:以內存的使用率排序
N:以PID排序
q:退出top

此時,輸入“u”可按用戶名查看進程,輸入“k”可以結束某進程。

查看系統網絡情況

netstat [選項]
-an:按一定順序排列輸出
-p:顯示哪個進程在調用
在這裏插入圖片描述
在這裏插入圖片描述

rpm包的管理

一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.RPM擴展名的文件。RPM是Redhat Package Manager(Redhat軟件包管理工具)的縮寫,類似windows的setup.exe,這一文件格式名稱雖然打上了Redhat的標誌,但理念是通用的。

查詢已安裝的rpm列表

rpm -qa | grep xx

rpm -qa:查詢安裝的所有rpm軟件包
rpm -qa | more
rpm -qa | grep x[rpm -qa | grep python]

rpm -q 軟件包名:查詢軟件包是否安裝
rqm -q python

rqm -qi:軟件包名,查詢軟件包信息
rqm -qi python

rqm -ql 軟件包名:查詢軟件包中的文件
rqm -ql python

rqm -qf 文件全路徑名:查詢文件所屬的軟件包
rqm -qf /etc/passwd
rqm -qf /root/install.log

卸載rpm包

rpm -e RPM包的名稱
注:
①如果其他軟件包依賴於您要卸載的軟件包,卸載時則會產生錯誤信息。
②如果產生了錯誤信息,則增加–nodeps,可以強制刪除,但不建議這麼做,因爲依賴於該軟件包的程序可能會無法運行。
rpm -e --nodeps RPM包的名稱

安裝rpm包

rpm -ivh RPM包全路徑名稱
i=install安裝
v=verbose提示
h=hash進度條

yum

Yum是一個Shell前段軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包。

查詢yum服務器是否有需要安裝的軟件
yum list | grep xx軟件列表
yum install xxx

面試題

1、Linux常用命令

netstat
top
lsblk
find
ps
chkconfig

2、Linux相關命令

查看內存:top
磁盤存儲:df -lh
端口占用:netstat -tunlp
查看進程:ps -aux | grep 進程名
io讀寫:iotop

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章