Linux常用命令
Liunx簡介
Linux,全稱GNU/Linux,是一種免費使用和自由傳播的類UNIX操作系統(tǒng),其內(nèi)核由林納斯·本納第克特·托瓦茲于1991年10月5日首次發(fā)布,它主要受到Minix和Unix思想的啟發(fā),是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統(tǒng)。它能運行主要的Unix工具軟件、應用程序和網(wǎng)絡協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡為核心的設計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡操作系統(tǒng)。Linux有上百種不同的發(fā)行版,如基于社區(qū)開發(fā)的debian、archlinux,和基于商業(yè)開發(fā)的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
2022年11月20日,Linux 提交了最后一批 drm-intel-next 功能補丁,Linux 6.2將迎來對英特爾銳炫獨顯的正式支持。
一、 Linux常用指令
1、vi和vim
(1)vim基本編輯保存步驟
vim data.txt:打開或創(chuàng)建data.txt文件,進入一般模式
輸入i進入編輯模式,并進行文本編輯
按esc,輸入:,①wq保存并退出,②q不保存退出,③q!不保存并強制退出
(2)vi和vim快捷鍵(都在一般模式下)
拷貝當前行yy,拷貝當前行向下的3行3yy,粘貼p
刪除當前行dd,刪除當前行下3行3dd
文件中查找某關鍵字:/關鍵字
設置文件行號:set nu,取消文件行號:set nonu
一般模式下,到最后一行G,到第一行gg
撤銷u
定位到第20行,輸入20,在輸入shift+g
2、關機、重啟、登錄、注銷
(1)關機、重啟
shutdown -h now ? ?立刻進行關機
shutdown -h 1 ? ?1分鐘后關機
shutdown -r now ? ?重啟
halt ? ?關機
reboot ? ?重啟
sync ? ?把內(nèi)存的數(shù)據(jù)同步到磁盤
注意:
不管是重啟還是關機,首先運行sync命令,把內(nèi)存中的數(shù)據(jù)寫到磁盤中;
目前shutdown、reboot、halt都支持在操作之前進行sync,但小心使得萬年船;
(2)登錄與注銷
一般不用系統(tǒng)管理員登錄,實際中都用一般用戶登錄,然后可以通過命令切換到管理員權限,
切換系統(tǒng)管理員:su - root
注銷:logout
3、用戶基本語法
useradd 用戶名 ? ? 添加用戶 ? ?useradd -d /home/test king
passwd 用戶名 ? ? 更改密碼 ? ?
pwd ? ?顯示當前所在目錄 ? ?
userdel 用戶名 ? ?刪除用戶 ? ?
userdel -r 用戶名 ? ?刪除用戶并刪除對應的home目錄 ? ?
id 用戶名 ? ?查詢用戶信息 ? ?
su - 切換用戶名 ? ?切換用戶 ? ?
exit或logout ? ?返回原用戶 ? ?
who am i ? ?顯示登陸的信息 ? ?
4、用戶組
groupadd 組名 ? ?新增組 ? ?
groupdel 組名 ? ?刪除組 ? ?如果創(chuàng)建用戶時,沒有創(chuàng)建組,系統(tǒng)就會默認創(chuàng)建一個組,組名和用戶名一致。
useradd -g 用戶組 用戶名 ? ?新增用戶時直接加上組 ? ?
5、運行級別
(1)指定運行級別
(2)查看
查看當前運行級別:systemctl get-default
指定用戶默認運行級別:system set-default multi-user.target
3:多用戶級別,multi-user.target
5:圖形化界面級別,graphical.target
6、幫助指令
man ? ?獲取幫助信息 ? ?
例如:查看ls命令的幫助信息man ls
在Linux下,隱藏文件是以.開頭,選項可以組合使用,比如ls -al,比如ls -al /root
help ? ?獲取shell內(nèi)置命令的幫助信息 ? ?
7、文件目錄類
?pwd ? ?顯示當前工作目錄的絕對路徑 ? ?
ls ? ?顯示當前目錄下文件 ? ?
ls -lh ? ?顯示目錄下文件的詳細信息(將文件大小由字節(jié)變?yōu)閗,M,G) ? ?
cd~ ? ?回到自己的家目錄 ? ?
cd.. ? ?到上級目錄 ? ?
mkdir ? ?創(chuàng)建目錄 ? ?默認只能創(chuàng)建一級目錄,創(chuàng)建多級目錄:mkdir -p /home/animal/tiger
rmdir ? ?刪除目錄 ? ?
touch ? ?創(chuàng)建空文件 ? ?
cd source dest ? ?拷貝指令cp ? ?
cd -r source dest ? ?遞歸復制整個文件夾 ? ?
rm ? ?刪除目錄 ? ?-r:遞歸刪除整個文件夾,-f:強制刪除不提示;
mv oldNameFile newNameFile ? ?重命名 ? ?
mv /temp/movefile /targetFolder ? ?移動文件 ? ?
less ? ?分屏查看文件內(nèi)容 ? ?
echo ? ?輸出內(nèi)容到控制臺 ? ?
head ? ?顯示文件的開頭部分內(nèi)容 ? ?顯示文件的前五行 ?head -n 5
tail ? ?顯示文件的尾部內(nèi)容
列表的內(nèi)容寫入文件中:ls -l > 文件
列表的內(nèi)容追加到文件的尾部:ls -al >> 文件
將文件1的內(nèi)容覆蓋到文件2:cat 文件1 > 文件2
echo "內(nèi)容" >> 文件
ln ? ?軟鏈接,也成符號鏈接,類似于Windows里的快捷方式 ? ?ln -s [原文件或目錄][軟鏈接名],例如:ln -s /root/ myroot
history ? ?查看已經(jīng)執(zhí)行過的歷史命令 ? ?
1、顯示所有的歷史命令:history
2、顯示最近使用過的10條指令:history 10
3、執(zhí)行歷史編號為5的指令:!5
8、時間日期類
date ? ?顯示當前時間 ? ?
date + %Y ? ?顯示當前年份 ? ?
date + %m ? ?顯示當前月份 ? ?
date + %d ? ?顯示當前是哪一天 ? ?
date + "%Y-%m-%d %H:%M:%S" ? ?顯示年月時分秒 ? ?
date -s 字符串時間 ? ?設置系統(tǒng)當前時間 ? ?date -s "2021-04-11 15:46:00"
cal ? ?日歷指令 ? ?顯示本月日歷
cal 2021 ? ?日歷指令 ? ?
顯示2021年日歷
9、搜索查找類
find ? ?將從指定目錄向下遞歸遍歷其子目錄,將滿足條件的文件或目錄顯示在終端。 ? ?
基本語法:find [搜索范圍][選項]
例子:
1、find /home -name hello.txt
2、find /opt -user jack
分頁顯示:find /home -user jack | more
3、查找整個Linux下大于200M的文件
find / -size +200M
locate ? ?快速定位文件路徑 ? ?需先執(zhí)行updatedb創(chuàng)建locate數(shù)據(jù)庫
which ? ?查看某個指令在哪個目錄下 ? ?例如:which ls
grep ? ?過濾查找 ? ?
基本語法:grep [選項] 查找內(nèi)容 源文件
選項:-n 顯示行號;-i 忽略大小寫
例如:
1、cat /home/hello.txt |grep "yes"
2、grep -n "yes" /home/helo.txt
| ? ?管道 ? ?
10、壓縮和解壓
zip ? ?壓縮文件 ? ?
-r:遞歸壓縮;-d:指定壓縮文件的存放目錄
例如:zip -r myhome.zip /home/
unzip ? ?解壓文件 ? ?例如:unzip -d /opt/temp /home/myhome.zip
tar ? ?壓縮和解壓文件 ? ?
基本語法:tar [選項] xxx.tar.gz 打包的內(nèi)容
選項說明:
選項 ? ?功能
-c ? ?產(chǎn)生.tar打包文件
-v ? ?顯示詳細信息
-f ? ?指定壓縮后的文件名
-z ? ?打包同時壓縮
-x ? ?
解包.tart文件
例如:
1、將/home的文件夾壓縮成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
2、解壓myhome.tar.gz到opt/tmp目錄下
(1)mkdir opt/tmp
(2)tar -zxvf /home/myhome.tar.gz -C /opt/tmp
二、組管理和權限管理
1、文件所有者
查看:ls -ahl
修改文件所有者:chown 用戶名 文件名
2、組的創(chuàng)建
創(chuàng)建組:groupadd 組名
創(chuàng)建一個用戶tom,并將其放入moster組中
useradd -g monster tom
3、權限的基本介紹
ls -l中顯示的內(nèi)容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
r ? ?讀read
w ? ?寫write
x ? ?可被執(zhí)行
0-9位說明
(1)第0位確定文件類型(d,-,l,c,b)
b ? ?表示塊設備,比如硬盤
d ? ?表示目錄,相當于Windows的文件夾
c ? ?表示字符設備文件,比如鍵盤鼠標
l ? ?表示鏈接,相當于Windows的快捷方式
(2)第1-3位確定所有者的權限
(3)第4-6位表示所在組對該文件的權限
(4)第7-9位表示其他用戶對該文件的權限
4、修改權限
通過chmode指令,可以修改文件或目錄的權限
(1)+,-,= 變更權限
u:所有者
q:所在組
o:其它人
a: 所有人
chmod u=rwx,g=rx,o=x 文件/目錄名
chmod o+w 文件/目錄名
chmod a-x 文件/目錄名
(2)通過數(shù)字變更權限
r=4 w=2 x=1 ?rwx = 4+2+1=7
chmod u=rwx,g=rx,o=x 文件/目錄名 相當于 chmod 751文件名
5、修改文件所有者-chown
基本介紹
chown newowner 文件/目錄名 改變所有者
chown newowner:newgroup 文件/目錄名 改變所有者和所在組
-R 如果是目錄 則使其下所有子文件或目錄遞歸生效
例如:
(1)請將/home/abc.txt文件的所有者修改為tom
chown tom /home/abc.txt
(2)請將/home下所有文件的所有者修改為tom
chown -R tom /home
6、修改文件/目錄所在組-chgrp
-chgrp newgroup 文件/目錄 ?改變所在組
三、定時任務調(diào)度與進程服務管理
1、定時任務調(diào)度
(1)簡介
crondtab進行定時任務的設置
基本語法:crontab [選項]
常用選項:
-e ? ?編輯crondtab定時任務
-l ? ?查詢crondtab任務
-r ? ?刪除當前用戶所有的crondtab任務
crond相關指令:
crontab -r :終止任務調(diào)度
crontab -l:列出當前有哪些任務調(diào)度
service crontab restart:重啟任務調(diào)度
(2)舉例說明
/1 * * * * ls -l /etc/ > /tmp/to.txt定時每分鐘執(zhí)行,將etc的ls內(nèi)容重定向到tmp下to.txt文件中。項目 ? ?含義第一個 ? ?一小時中的第幾分鐘
第二個* ? ?一天中的第幾小時
第三個* ? ?一個月中的第幾天
第四個* ? ?一年中的第幾月
第五個* ? ?
一周中的星期幾
特殊符號:
特殊字符 ? ?含義
代表時間,比如第一個*,代表每小時中的每分鐘都執(zhí)行一次
? ? ?代表不連續(xù)的時間,比如0 8,12,16 * * * ?代表每天的8點0分,12點0分,16點0分都執(zhí)行一次
代表連續(xù)的時間范圍,比如0 5 * * 1-6 ?代表在周一到周六的凌晨5點0分執(zhí)行命令
/n ? ?代表每隔多久執(zhí)行一次,比如/10 * * * * ?代表每隔十分鐘執(zhí)行一遍命令
(3)at定時任務
at:一次性定時執(zhí)行任務
at命令格式
at [選項][時間]
Ctrl + D 結束at命令的輸入
2、進程管理
(1)進程號
在Linux中,每個執(zhí)行的程序都稱為一個進程,每一個進程都會分配一個ID號(pid,進程號)。
(2)ps指令
顯示系統(tǒng)執(zhí)行的進程
屬性:
-a:顯示當前終端的所有進程信息
-u:以用戶的格式顯示進程信息
-x:顯示后臺進程運行的參數(shù)
分頁顯示:ps -aux | more
過濾顯示:ps -aux | grep sshd
(3)ps顯示信息詳解
USER:用戶名稱
PID:進程號
%CPU:進程占用CPU的百分比
VSZ:進程占用的虛擬內(nèi)存大?。▎挝唬篕B)
RSS:進程占用的物理內(nèi)存大?。▎挝唬篕B)
TT:終端名稱,縮寫
STAT:進程狀態(tài)(S-睡眠,s-表示該進程是會話的先導進程,N-表示進程擁有比普通優(yōu)先級更低的優(yōu)先級,R-正在運行,D-短期等待,Z-僵死進程,T-被跟蹤或者被停止等等)
STARTED:進程的啟動時間
TIME:CPU時間,即進程使用CPU的總時間
COMMAND:啟動進程所用的命令和參數(shù),如果過長會被截斷顯示
? (4)終止進程
kill和killall
基本語法:
kill [選項] 進程號(功能描述:通過進程號殺死進程)
killall 進程名稱 (功能描述:通過進程名稱殺死進程,也支持通配符,這在系統(tǒng)因負載過大而變得很慢時很有用)
常用選項:-9 表示強制停止進程。
(5)查看進程樹
pstree [選項],可以更加直觀的查看進程信息
常用選項:
-p:顯示進程的pid
-u:顯示進程的所屬用戶
3、服務管理
(1)簡介
服務本質(zhì)就是進程,但是是運行在后臺的,通常都會監(jiān)聽某個端口,等待其它程序的請求,比如mysql、sshd、防火墻等,因此我們又稱之為守護進程,是Linux中非常重要的知識點。
(2)service管理指令
service 服務名[start | stop | restart | reload | status]
在centos7.0后,很多服務不再使用service,而是使用systemctl
service指令管理的服務在/etc/init.d查看
(3)chkconfig指令
通過chkconfig可以給服務的各個運行級別設置自啟動/關閉。
基本語法:
chkconfig --list [| grep xxx]
chkconfig 服務名 --list
chkconfig --level 5 服務名 on/off
(4)systemctl指令
基本語法:
systemctl [start | stop | restart | reload | status] 服務名
systemctl指令管理的服務在/us/lib/systemd/system查看
systemctl設置服務的自啟動狀態(tài)
systemctl list-unit-files [|grep 服務名](查看服務開機啟動狀態(tài),grep可以進行過濾)
systemctl enable 服務名(設置服務開機啟動)
systemctl disable 服務名(關閉服務開機啟動)
systemctl is-enabled 服務名(查詢某個服務示范是自啟動的)
應用案例:
查看當前防火墻的狀況,關閉防火墻和重啟防火墻。
systemctl status firewalld;
systemctl stop firewalld;
systemctl start firewalld;
(5)firewall指令
打開端口:firewall-cmd --permanent --add-port=端口號/協(xié)議
關閉端口:firewall-cmd --permanent --remove-port=端口號/協(xié)議
重新載入,才能生效:firewall-cmd --reload
查詢端口是否開放:firewall-cmd --query-port=端口號/協(xié)議