日常工作必备之 linux 常用命令分类归纳
??點(diǎn)擊上方?好好學(xué)java?,選擇?星標(biāo)?公眾號
重磅資訊、干貨,第一時間送達(dá) 今日推薦:從入門到拿大廠offer,必須看的數(shù)據(jù)結(jié)構(gòu)與算法書籍推薦,不好不推薦!個人原創(chuàng)+1博客:點(diǎn)擊前往,查看更多 作者:吳小風(fēng) 鏈接:https://segmentfault.com/a/1190000022560834前言
Linux基礎(chǔ)命令整理,這里不包含shell部分知識
基礎(chǔ)命令
shell(命令解釋器)自帶的命令稱為內(nèi)部命令,其它的是外部命令 內(nèi)部命令使用help幫助:help cd外部命令使用help幫助:ls --helptype命令:用于區(qū)分是內(nèi)部命令還是外部命令:
#type ls ls is aliased to `ls --color=auto' #外部命令 #type cd cd is a shell builtin #內(nèi)部命令pwd命令:顯示當(dāng)前目錄
ls命令:查看目錄和文件名稱
ls -l 查看目錄各個字段含義
第一字段:首字母代表的是文件類型 ,其中"-"為普通文件、"d"為目錄文件、"c"為字符設(shè)備文件、"b"為塊設(shè)備文件、"p"為管道文件、"l"為鏈接文件、"s"為socket文件。“rwx”分別代表擁有讀、寫和執(zhí)行權(quán)限,"-代表無對應(yīng)權(quán)限。三個"rwx"依次代表文件所有者、文件所有者所在用戶組、其它用戶對文件擁有的權(quán)限。
第二字段:文件硬連接數(shù)量?
第三字段:文件擁有者?
第四字段:文件擁有者所在組?
第五字段:文件大小(以字節(jié)為單位)?
第六字段:文件最后更改時間?
第七字段:文件名(若為鏈接文件則追加顯示其鏈接的原文件的路徑)
ls命令其它參數(shù)含義:
-a顯示隱藏文件(.開頭的文件)?
-r逆序排序 -t按照時間順序顯示?
-R遞歸顯示ls -lartR : 按照時間順序倒序顯示所有文件及其文件夾的文件
cd命令:更改當(dāng)前的工作目錄
cd /path/... 絕對路徑
cd ./path/... 相對路徑(./可以省略)
cd ../path/... 相對路徑
mkdir命令:建立目錄mkdir -p 遞歸目錄:遞歸創(chuàng)建目錄
rmdir命令:刪除目錄
rmdir a/b/c/d/e/ #刪除空目錄
rm -r a/b/c/d/ #遞歸刪除目錄,但是系統(tǒng)會做多次詢問
rm -rf a/b/c/d/ #刪除目錄,不做任何詢問
cp命令:復(fù)制文件和目錄 -r 復(fù)制目錄 -p 保留用戶、權(quán)限、時間等文件屬性
mv命令:移動文件和重命名
mv *.log 目標(biāo)目錄
通配符:*匹配任何字符串 ?匹配一個字符串 [xyz]任何一個字符串 [a-z]匹配一個范圍
cat命令:文本內(nèi)容顯示到終端
head命令:查看文件開頭
head -3 文件名稱 #顯示文件開頭3行
tail命令:查看文件末尾
tail -3 文件名稱 #顯示文件末尾3行?
tail常用參數(shù)-f,文件內(nèi)容更新后,同步顯示更新的文件信息
tail -f 文件名稱
wc命令:統(tǒng)計文件內(nèi)容信息
wc 文件名稱
壓縮和解壓縮
tar打包命令(只有打包功能,并不具備壓縮功能)?
壓縮命令是gzip和bzip2,bzip2壓縮的文件更小,但是速度比較慢?
-c 打包?
-x解包?
-f指定操作類型為文件
tar cf ./etc-backup.tar /etc tar czf ./etc-backup.tar.gz /etc tar cjf ./etc-backup.tar.bz2 /etctar xf ./etc-backup.tar tar xzf ./etc-backup.tar.gz tar xjf ./etc-backup.tar.bz2vi命令
vi命令的三種模式
命令模式:命令模式是vim打開文件后默認(rèn)進(jìn)入的模式,可以進(jìn)行文件的快速定位,文件的處理操作
插入模式:編輯文件
行模式:文件的保存退出
命令模式操作:
輸入i鍵:光標(biāo)當(dāng)前位置輸入?
輸入I鍵:光標(biāo)當(dāng)前行開頭位置輸入?
輸入a鍵:光標(biāo)當(dāng)前下個字符位置輸入
輸入A鍵:光標(biāo)當(dāng)前行末尾位置輸入?
輸入o鍵:光標(biāo)當(dāng)前行下一行新建空行位置輸入?
輸入O鍵:光標(biāo)當(dāng)前行上一行新建空行位置輸入?
hjkl:方向鍵盤,上右下左移動光標(biāo),注意終端的上下左右鍵有可能會亂碼 yy:復(fù)制當(dāng)前行?
p:粘貼復(fù)制的內(nèi)容?
3yy:復(fù)制當(dāng)前行開頭的連續(xù)3行?
y光標(biāo)當(dāng)前位置復(fù)制到光標(biāo)當(dāng)前行末尾:剪切當(dāng)前行:剪切光標(biāo)當(dāng)前位置至本行末尾?
u:撤銷鍵?
ctrl+r:重做鍵盤?
G:光標(biāo)快速切換到哪一行。例如 :11G 光標(biāo)會切換到11行?
^:光標(biāo)快速切換到當(dāng)前行行首?
$:光標(biāo)快速切換到當(dāng)前行末尾
末行模式操作:
:w 保存?
:q 退出編輯?
:wq 保存并且退出編輯?
:q! 不保存退出?
/要查找的內(nèi)容:全局查找內(nèi)容,n查找的內(nèi)容下一次位置,N查找的內(nèi)容上一次位置?
:s/原來的內(nèi)容/要替換的內(nèi)容:只在當(dāng)前行內(nèi)容替換生效?
:%s/原來的內(nèi)容/要替換的內(nèi)容/g:所有內(nèi)容都替換生效 :11,15s/原來的內(nèi)容/要替換的內(nèi)容
:11,15行內(nèi)容替換生效?
:set nu 設(shè)置顯示行號?
:set nonu 設(shè)置不顯示行號
配置/etc/virc設(shè)置默認(rèn)使用vi命令就顯示行號的辦法:
1、vi /etc/virc?
2、在文件最后一行添加:set nu 并且保存退出
用戶管理和組管理
useradd命令:新建用戶
useradd 用戶名
userdel命令:刪除用戶
userdel 用戶名 用戶所在的家目錄不會被刪除
userdel -r 用戶名 用戶相關(guān)的所有配置都會被刪除
passwd命令:修改用戶密碼
passwd 用戶名
usermod命令:修改用戶屬性
/etc/passwd文件:查看用戶文件
tail /etc/passwd
/etc/shadow文件:查看用戶密碼
tail /etc/shadow
groupadd命令:添加用戶組
groupadd 用戶組
groupdel命令:刪除用戶組
groupdel 用戶組
用戶切換su 用戶名 切換用戶,但是用戶所在環(huán)境不變,即pwd路徑不會變化
su - 用戶名 切換用戶,同時會切換到用戶家目錄,即/home/用戶名
sudo命令:普通用戶需要執(zhí)行root用戶權(quán)限的解決方案
用戶和用戶組配置文件介紹/etc/passwd文件
/etc/shadow
1、賬戶名稱?
2、加密后的密碼,如果這一欄的第一個字符為!或者*的話,說明這是一個不能登錄的賬戶,從上面可以看出,ubuntu默認(rèn)的就不啟用root賬戶。
/etc/group
文件類型ls -l查看文件類型 -普通字符 d目錄文件 b塊特殊文件 c字符特殊文件 l符號鏈接 f命名管道 s套接字文件
文件權(quán)限表示法r讀(數(shù)字4)、w寫(數(shù)字2)、x執(zhí)行(數(shù)字1)
目錄權(quán)限表示法x進(jìn)入目錄 rx顯示目錄內(nèi)的文件名 wx修改目錄內(nèi)的文件名
chmod命令:修改文件權(quán)限 用字符的方式添加和修改權(quán)限 u:修改用戶權(quán)限 g:修改用戶組權(quán)限 o:修改其它用戶權(quán)限 +:添加權(quán)限 -:減少權(quán)限 =:設(shè)置權(quán)限
chmod u+r aaa.log #給aaa.log文件的所屬用戶添加讀的權(quán)限
用數(shù)字的方式添加權(quán)限
chmod 666 aaa.log #給aaa.log文件設(shè)置讀寫權(quán)限 需要注意的是不過root用戶的權(quán)限是什么都不會受到影響
chown命令:更改屬主,屬組
chown 用戶名 文件名chown 用戶名:組名 文件名
網(wǎng)絡(luò)配置命令
配置ip地址eth0表示第一塊網(wǎng)卡,網(wǎng)卡的名稱還可能是eno1(板載網(wǎng)卡)、ens33(PEC-E網(wǎng)卡)、enp0s3(無線PEC-E網(wǎng)卡)
ifconfig 接口 ip地址 [netmask 子網(wǎng)掩碼] #配置IP地址
ifup 接口 #開啟網(wǎng)卡
ifdown 接口 #關(guān)閉網(wǎng)卡
添加網(wǎng)關(guān)
route add default gw 網(wǎng)關(guān)ip?
route add -host 指定ip gw 網(wǎng)關(guān)ip?
route add -net 網(wǎng)段 netmask 子網(wǎng)掩碼 gw?
網(wǎng)關(guān)ip 案例:route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.1.1.1
檢查網(wǎng)絡(luò)
ping命令 #查看網(wǎng)絡(luò)是否通
traceroute命令 #網(wǎng)絡(luò)不好的時候分析網(wǎng)絡(luò)哪個部分出現(xiàn)問題
mt命令r #網(wǎng)絡(luò)不好的時候分析網(wǎng)絡(luò)哪個部分出現(xiàn)問題
nslookup命令 根據(jù)域名解析獲取ip
網(wǎng)絡(luò)沒問題后分析服務(wù)
telnet 域名 端口(端口關(guān)閉Connection refused和端口開啟Connected to ...)
tcpdump命令 #抓取網(wǎng)卡的傳輸數(shù)據(jù)(即抓包的作用)
netstat命令 #查看本地網(wǎng)絡(luò)服務(wù)
hostname命令 #查看和修改主機(jī)名稱
hostname 新的主機(jī)名(注意修改/etc/hosts文件配置127.0.0.1 主機(jī)名)
配置網(wǎng)卡信息
網(wǎng)卡文件位置:/etc/sysconfig/network-scripts/ifcfg-eth0?
ONBOOT=yes 開機(jī)自啟動配置?
BOOTPROTO=dhcp 動態(tài)獲取ip地址
軟件包管理
包管理器是方便軟件安裝、卸載、解決軟件依賴關(guān)系的重要工具 centos、Redhat使用yum包管理器,軟件安裝包格式rpm debian、ubuntu使用apt包管理器,軟件安裝包格式為deb
rpm軟件包和命令
rpm軟件包格式:
-q 查詢軟件包
rpm -q 安裝包名稱(不需要全名稱) #查詢單個軟件包
rpm -qa #查詢所有安裝包
-i 安裝軟件包
rpm -i 軟件包的全名稱
-e 卸載軟件包
rpm -e 安裝包名稱(不需要全名稱)
yum安裝軟件包
rpm安裝軟件包的時候經(jīng)常會出現(xiàn)依賴包找不到的情況,需要手動解決依賴的安裝包,比較麻煩,這個時候使用yum安裝更加合適,它能自動解決依賴的軟件包阿里云rpm鏡像網(wǎng)址和使用yum常用參數(shù)yum install 軟件包名稱yum remove 軟件包名稱yum list 查看安裝的軟件包yum update 軟件包名稱
源代碼安裝軟件
有的時候我們需要安裝軟件的最新版本,這個時候yum庫可能沒有最新的,就需要手動編譯軟件源代碼安裝軟件,并且需要自己去解決編譯源碼時各種各樣的依賴?
第一步:./configure --prefix = /usr/local/軟件名稱?
第二步:make (有的時候看到gmake -j2,gmake指的是跨平臺的方式安裝,-j2指的是用連個cpu來進(jìn)行編譯,加快編譯速度)?
第三步:make install (安裝軟件到--prefix指定目錄,好處是刪除軟件的時候刪除整個包就可以,否則還需要到/usr/bin等各個目錄下刪除一堆文件)
進(jìn)程管理
查看命令
ps -ef #查看進(jìn)程
pstree #查看進(jìn)程樹
top命令:top下按1可以查看各塊cpu(多核情況)的資源使用情況;
top -p 進(jìn)程id #單獨(dú)查看進(jìn)程的資源使用情況
調(diào)整進(jìn)程優(yōu)先級nice范圍從-20到19,值越小優(yōu)先級越高,搶占資源就越多
nice -n 10 腳本名稱renice重新設(shè)置已經(jīng)運(yùn)行的程序優(yōu)先級
renice -n 15 進(jìn)程id
進(jìn)程作業(yè)控制&符號,讓進(jìn)程在后臺運(yùn)行 jobs 查看后臺運(yùn)行的進(jìn)程 根據(jù)jobs第一列的結(jié)果fg [序號],能夠?qū)⒑笈_進(jìn)程移到前臺
kill命令:
kill -l #列出進(jìn)程相關(guān)的所有信號類型
ctrl + c #通知前臺進(jìn)程終止進(jìn)程
kill -9 進(jìn)程id #立即結(jié)束進(jìn)程
nohup與&符號配合使進(jìn)程在退出終端后能夠繼續(xù)運(yùn)行守護(hù)進(jìn)程指的是系統(tǒng)開機(jī)自啟動的相關(guān)進(jìn)程,可以通過/proc/進(jìn)程id/目錄查看進(jìn)程運(yùn)行詳細(xì)信息,通過/var/log目錄下的日志文件查看更多的進(jìn)程運(yùn)行信息,messages系統(tǒng)日志信息,secure日志信息,cron定時任務(wù)信息 screen可以使進(jìn)程在斷開網(wǎng)絡(luò)的情況下,恢復(fù)后依然能夠繼續(xù)執(zhí)行 進(jìn)程管理工具service(配置文件路徑/etc/init.d)和systemctl(service的進(jìn)化版)
內(nèi)存和磁盤管理
top命令查看內(nèi)存剩余的時候要看free內(nèi)存,不能看buffers,因為有些程序比如jar程序會占用很大內(nèi)存作為緩存,可以通過命令釋放掉這部分緩存;當(dāng)程序開始使用Swap的時候就得考慮內(nèi)存是否足夠的問題,當(dāng)內(nèi)存不足的時候系統(tǒng)會隨機(jī)殺掉占用內(nèi)存大的進(jìn)程,導(dǎo)致不可控;
free命令free -m #使用M作為單位查看內(nèi)存,注意如果使用free -g查看內(nèi)存會偏小,系統(tǒng)會把不足的g內(nèi)存顯示的時候刪除掉
查看磁盤查詢系統(tǒng)整體磁盤使用情況
df -h查詢指定目錄的磁盤占用情況
du -h /目錄 #默認(rèn)為當(dāng)前目錄 -s 指定目錄占用大小匯總 -h 帶計量單位 -a 含文件 --max-depth=1 子目錄深度 -c 列出明細(xì)的同時,增加匯總值
增加一塊硬盤步驟:
1、添加硬盤?
2、分區(qū)fdisk:fdisk /dev/sdb (假設(shè)新增的磁盤名稱為sdb)?
3、格式化mkfs:mkfs -t ext4 /dev/sdb1
4、掛載目錄:先創(chuàng)建一個/newdisk掛在目錄 , 掛載mount /dev/sdb1 /newdisk
5、設(shè)置可以永久掛載:修改/etc/fstab文件
最后,再附上我歷時三個月總結(jié)的?Java 面試 + Java 后端技術(shù)學(xué)習(xí)指南,這是本人這幾年及春招的總結(jié),目前,已經(jīng)拿到了騰訊等大廠offer,拿去不謝,github 地址:https://github.com/OUYANGSIHAI/JavaInterview
這么辛苦總結(jié),給個star好不好。?點(diǎn)擊閱讀原文,直達(dá)
總結(jié)
以上是生活随笔為你收集整理的日常工作必备之 linux 常用命令分类归纳的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA 真牛逼,900行 又臭又长 的
- 下一篇: 面试官:关于负载均衡你了解多少