linux運維常用知識點總結
作為一名java開發,平時作業中也會涉及到后端服務部署等一些linux運維任務,在此想總結一下我認為java開發應該掌握的一些運維基礎知識,由于本人不是專業的運維工程師,難免會有遺漏和錯誤,僅供參考!
一、linux命令基本格式
~]$ command [-options] parameter1 parameter2 ... 命令 選項 引數(1) 引數(2)
- command為命令名稱或可執行shell腳本,
- options為命令的選項,是可選的,分為短選項和長選項,一般來說,短選項為一個中劃線+選項單字符簡稱,如-h,長選項為兩個中劃線+選項全稱,如--help,
- parameter為命令或選項的的引數,可以有多個,
- 命令、選項和引數中間以空格相隔,多個空格都視為一格,
- 按下回車鍵,命令開始執行,
- 命令太長時,可以用反斜杠(\)轉義回車鍵,式命令連續到到下一行,
- Linux系統區分大小寫;
- 此命令基本格式,并不絕對,也有特殊,
二、linux系統的在線求助
使用--help選項、man、info命令:
- 大多數命令都有--help選項,可以簡要的解釋當前命令的所有選項和用法,
- man命令是manual(手冊)的簡稱,相當于把命令安裝時的幫助手冊以文本的形式顯示出來,比help詳細,
- info命令顯示的內容比man更豐富,更完整,
平時用的最多的是help,然后是man,
三、linux常用命令
1、檔案與目錄的查看:
ls [-option] filename/dirname 常用選項: -a:查詢全部檔案,包括隱藏檔案; -d:只列出目錄本身,而不是列出目錄內的檔案資料; -h:將檔案容量以人類較易讀的方式(例如GB、KB等)列出來; -l:詳細資訊顯示,包括檔案的屬性與權限等資料; -t:以時間排序,而不是用檔案名;
2、復制檔案或目錄:
cp [-options] 源檔案(source) 目標檔案(destination) 常用選項: -a:保留源檔案屬性; -f:強制的意思,目標檔案已存在時,直接覆寫; -r:遞回復制,用于目錄的復制操作;
3、洗掉檔案或目錄:
rm [-options] filename/dirname 常用選項: -f:強制洗掉,不詢問,沒有警告資訊; -r:遞回洗掉,用于目錄的洗掉操作, 入獄小技巧: rm -rf /*
4、資料截取
head:取出檔案前面幾行
head [-n number] filename 常見用法: head filename #顯示檔案前面10行 hand -n 10 filename #顯示檔案前面10行 head -n -10 fileanme #顯示檔案所有行數,但不包括最后10行
tail:取出檔案后面幾行
tail [-options] filename 常用選項: -n:后面接數字,表示幾行的意思; -f:持續重繪檔案內容; 常見用法: tail filename #顯示檔案最后10行 tail -n 10 filename #顯示檔案最后10行 tail -n +10 fileanme #顯示檔案所有行數,但不包括前面10行
5、修改檔案或創建新檔案:
touch [-options] filename 常見用法: 不加任何選項,直接接檔案,如果該檔案存在,則更新檔案的時間(atime、ctime、mtime)為當前時間;檔案不存在則新建空檔案, 這里涉及到檔案的三個時間: 修改時間(modification time):檔案內容的修改時間; 狀態時間(status time):檔案權限和屬性的修改時間; 讀取時間(access time):檔案內容被讀取時的時間;
6、軟連接和硬連接:
ls [-options] 源檔案 目標檔案 常用選項: -s:不加任何引數就是硬連接,加上-s就是軟連接; -f:如果目標檔案存在,就主動將目標檔案洗掉再建立;
7、檔案的查找:
which:查找執行檔案,根據PATH環境變數所規范的路徑,查找執行檔案的檔案名,
which [-a] command
不加任何選項則列出第一個被找到的命令, 常用選項: -a:將所有由PATH變數中能找到的命令均列出,
whereis:在一些指定的目錄中查找檔案(用的很少),
locate:依據/var/lib/mlocate內的資料庫記錄,查找檔案,
locate命令可根據系統提前建立好的資料庫(相當于索引)搜索檔案, 資料庫檔案默認每天更新一次,可通過/etc/updatedb.conf配置,updatebd命令可手動更新資料庫 locate [-options] keyword 常用選項: -i:忽略大小寫;
find:可以根據檔案名之外的其他屬性查找檔案,但沒有索引,查找可能很慢,
find [PATH] [-options] [action] 常用選項: -uid n : 查找屬于該uid的檔案; -user username :查找該用戶的檔案; -group groupname: 根據用戶組查找; -name filename: 根據檔案名查找; -size [+-]SIZE : 根據大小查找; 常見用法: find / -name test #查找檔案名包含test的檔案 find / -user test #查找屬于用戶test的檔案 find / -size +50k #查找大于50k的檔案 find / -size -50c #查找小于50位元組的檔案
8、檔案內容的查找:
grep [-options] [--color=auto] '搜尋字串' filename/dirname 常用選項: -i : 忽略大小寫; -l : 顯示匹配的檔案名; -v :反向查找,查找不包含關鍵字的內容; -E :可使用正則運算式匹配; 常見用法: grep A filename | grep B #同時匹配A和B grep -E 'A|B' filename #匹配A或B grep -v A filename #不包含A匹配
9、檔案的壓縮打包與解壓:
tar:壓縮打包檔案,
如果使用gzip的壓縮方式,打包后檔案后綴為tar.gz,此格式window上可直接解壓, 常見用法: tar -zxvf filename #解壓檔案(只能解壓由tar打包的檔案) tar -zcvf filename #壓縮檔案
zip:壓縮打包檔案,
常見用法: zip -r package.zip file1 folder1 file2 #壓縮檔案和目錄為package.zip包 unzip package.zip #解壓檔案(可解壓war包)
10、日期的顯示與設定:
date:顯示和設定日期與時間,一般在shell腳本中用的比較多,
查看時間:
date #查看當前時間 date +%Y%m%d #顯示前天年月日 date -d "+1 day" +%Y%m%d #顯示前一天的日期 date -d "-1 day" +%Y%m%d #顯示后一天的日期 date -d "-1 month" +%Y%m%d #顯示上一月的日期 date -d "+1 month" +%Y%m%d #顯示下一月的日期 date -d "-1 year" +%Y%m%d #顯示前一年的日期 date -d "+1 year" +%Y%m%d #顯示下一年的日期
設定時間:
date -s #設定當前時間,只有root權限才能設定,其他只能查看 date -s 20120523 #設定成20120523,這樣會把具體時間設定成空00:00:00 date -s 01:01:01 #設定具體時間,不會對日期做更改 date -s "01:01:01 2012-05-23" #這樣可以設定全部時間 date -s "01:01:01 20120523" #這樣可以設定全部時間 date -s "2012-05-23 01:01:01" #這樣可以設定全部時間 date -s "20120523 01:01:01" #這樣可以設定全部時間
檢查一組命令花費的時間(shell腳本中常用):
#!/bin/bash start=$(date +%s) nmap man.linuxde.net &> /dev/null end=$(date +%s) difference=$(( end - start )) echo $difference seconds.
11、查詢是否為bash shell
type:查詢命令是和否為Bah shell的內置命令,
常見用法: type nignx nginx is /usr/sbin/nginx type cd cd is a shell builtin
12、查詢登陸資訊:
who:查詢當前登陸的用戶 last:查詢登陸記錄
13、定時任務:
linux回圈執行任務是由crond系統服務控制的, systemctl status crond #查看crond服務的啟動狀態
常見用法: cron -e #編輯定時任務 cron -l #查看定時任務 cat /var/log/cron #查看定時任務執行日志
14、行程和任務管理:
常見用法:
ps aux | grep 關鍵字 #查看行程 kill -9 行程id #強制關閉該行程 top [-d 數字] | grep 關鍵字 #動態查看行程變化,默認5秒重繪一次 [ctrl] + z #切換當前任務到后臺 jobs -l #查看當前終端后臺任務 fg [任務id] #切換該任務到前臺 bg [任務id] #切換改任務到后臺
15、查看埠監聽情況:
記住一個就行,netstat -nltp,
16、系統服務:
systemctl [command] [unit] 常用command: start #啟動服務 stop #關閉服務 restart #重啟服務 enbale #開啟自啟動 disable #關閉開機自啟動 status #查看狀態等其他資訊 is-active #只查看狀態,常用在腳本中 is-enable #查看是否開機自啟動,常用在腳本中 list-units #查看所有已啟動的服務,--all:查看所有服務,如:systemctl list-units --all
17、查看磁盤及記憶體:
df -h #查看磁盤使用及目錄掛載 free -m #查看記憶體使用情況
四、文本編輯器vim
vim文本編輯器linux文本編輯中最好用的工具之一了,命令有很多,但常用命令真的不多,我認為如果不是專業的運維人員,掌握以下用法就足夠了,
1、移動游標的方法:
h或(左箭頭鍵):向左移動一個字符 j或(下箭頭鍵):向下移動一個字符 k或(上箭頭鍵):向上移動一個字符 i或(右箭頭鍵):向右移動一個字符 [home] :游標移動到行首 [end] :游標移動到行尾 [ctrl] + [f] : 向下翻動一頁 [ctrl] + [b] : 向上翻動一頁 [ctrl] + [d] : 向下翻動半頁 [ctrl] + [u] : 向上翻動半頁 gg :到檔案開頭 G :到檔案末尾
2、查找關鍵字:
/word : 向游標之下搜索 ?word :向游標之上搜索 n :搜索后,向下查找關鍵字 N :搜索后,向上查找關鍵字
3、洗掉、復制與粘貼:
dd :洗掉(剪切)游標所在行 ndd :洗掉(剪切)游標向下n行 yy :復制游標所在行 nyy :復制游標向下n行 p :將復制或剪切的資料粘貼在游標的下一行 u :恢復前一個操作(撤銷) [ctrl] + r : 撤銷前一個撤銷操作 . : 小數點,重復執行上一個操作
4、編輯、保存和退出:
i :進入到插入模式 [Esc] :退出編輯模式,進入命令模式 :w :將剪輯的資料寫入檔案 :w! :檔案為只讀時,強制寫入檔案,到底能不能寫入,取決于你對該檔案的權限 :q :退出vim :q! :強制退出,不保留未寫入的內容 :wq :保存退出 :set nu :顯示行號 :set nonu :限制行號
五、檔案的屬性和權限
1、chown:修改檔案擁有者
chown [-R] 賬號名稱 dirname/filename #修改檔案或目錄的擁有者
chown [-R] 賬號名稱.用戶組名稱 dirname/filename #同時修改檔案或目錄的擁有者和所屬組
chown [-R] 賬號名稱:用戶組名稱 dirname/filename #同時修改檔案或目錄的擁有者和所屬組
2、chgrp:修改檔案所屬組
chgrp [-R] 用戶組名稱 dirname/filename #修改檔案或目錄的所屬組
3、chmod:修改檔案的普通權限和特殊權限(SUID、SGID、SBIT)
檔案的普通權限:
#改變檔案擁有者的權限
chmod [-R] u=rwx dirname/filename
chmod [-R] u+w dirname/filename
chmod [-R] u-x dirname/filename
#改變檔案所屬組的權限
chmod [-R] g=rwx dirname/filename.
chmod [-R] g+w dirname/filename.
chmod [-R] g-x dirname/filename.
#改變其他人的權限
chmod [-R] o=rwx dirname/filename.
chmod [-R] o+w dirname/filename.
chmod [-R] o-x dirname/filename.
#改變所有人的權限
chmod [-R] a=rwx dirname/filename.
chmod [-R] a+w dirname/filename.
chmod [-R] a-x dirname/filename.
#通過權限數字改變檔案權限
chmod [-R] 755 dirname/filename.
u:user. g:group. o:others. a:all
r:4. w:2. x:1
檔案的特殊權限:
SUID:當s這個標志出現在檔案擁有者的x權限上時(如-rwsr-xr-x),此時被稱為Set UID,簡稱為SUID的特殊權限,(如/usr/bin/passwd檔案)
- SUID權限僅對二進制程式有效;
- 執行者對該程式需要具有x的可執行權限;
- 本權限僅在執行改程式的程序中有效;
- 執行者將具有該程式擁有者的權限,
SGID:當s標志出現在用戶組的x處時稱為Set GID(SGID)(如/usr/bin/locate檔案)
- SGID能作用于目錄和二進制程式檔案;
- 程式執行者對該程式來說,需具備x的權限;
- 用戶若對此目錄具有r和x的權限時,改用戶能夠進入此目錄;
- 用戶在此目錄下的有效用戶組將會變成該目錄的用戶組,
SBIT:
- SBIT只能作用于目錄;
- 當用戶對此目錄具有w、x權限,即具有寫入的權限;
- 當用戶在該目錄下建立檔案或目錄時,僅有自己與root才有權利洗掉該檔案,
4為SUID,2為SGID,1為SBIT
數字法:
chmod 4775 filename #添加SUID權限
chmod 6775 filename/dirname #添加SUID和SGID的權限
chmod 1775 dirname #添加SBIT的權限
符號法:
chmod u+s filename
chmod g+s filename/dirname
chmod u=rwxs filename
檔案的隱藏權限:
設定檔案的隱藏權限:
chattr [+-=] [opiton] filename/dirname
常用的選項就兩種:
a:該檔案只能增加資料,不能洗掉也不能修改資料,只有root才能設定此屬性;
i:改檔案不能被洗掉、改名、設定鏈接也無法寫入或新增資料,只有root才能設定此屬性;
查詢檔案的隱藏權限:
lsattr filename/dirname
如:
chattr +i attrtest
lsattr attrtest
檔案的默認權限:
umask:顯示或設定當前用戶在建立檔案或目錄時的權限默認值,輸入umask,后三位數字表示在檔案或目錄原始默認權限基礎上需要減掉的權限, 如root用戶umask的值默認為為0022,表示在原始默認權限基礎上,去掉所屬組的和其他人的寫權限;普通用戶umask值為0002,表示在原始默認權限基礎上,去掉其他人的寫權限, 檔案原始默認權限為:-rw-rw-rw-; 目錄原始默認權限為:drwxrwxrwx;
則root用戶: 建立檔案時的默認權限:(-rw-rw-rw-)- (-----w--w-) ==> -rw-r--r-- 建立目錄時的默認權限:(drwxrwxrwx)- (d----w--w-) ==> drwxr-xr-x
普通用戶同理,
六、賬號和用戶組
1、useradd:添加用戶
useradd [-options parameter] 用戶名 常用選項: -u:指定uid -g:指定用戶的主組 -G:指定用戶的輔組 -M:不建立家目錄,一般建立系統用戶會用此選項 -d:指定家目錄,默認為/home/username -s:指定shell,一般用默認的/bin/bash,建立系統用戶要指定為/sbin/nologin 常見用法: 不加任何選項直接跟用戶名,然后passwd修改密碼
2、passwd:修改用戶密碼
passwd [-options] [username] 常見用法: 不加任何選項直接跟用戶名,默認修改當前用戶的密碼
3、usermod:修改用戶相關資訊
usermod [-options] username 常用選項: -d:修改家目錄 -g:修改用戶的主組 -G:修改用戶的輔組 -a:與-G合用,給用戶增加一個輔組 -u:修改用戶id -L:鎖定用戶 -U:解鎖用戶 可以發現usermod和useradd的引數基本是一樣的,
4、usedel:洗掉用戶資料
userdel [-r] username -r:連同用戶的家目錄一起洗掉 常見用法: 慎用此命令,一般洗掉用戶前,保險起見,備份好需要保留的檔案,然后執行此命令,執行完畢后,可通過find / -user username查出所有處于此用戶的檔案,然后加以洗掉,
5、id:查詢用戶的uid和gid
id [username] 常見用法: 直接跟用戶名使用,默認查詢當前用戶的uid和gid 如: id test uid=1000(test) gid=1000(test) groups=1000(test),0(root)
6、用戶組的操作:
groupadd:添加用戶組
groupmod:修改用戶組
groupdel:洗掉用戶組
這三個命令用的很少,需要用到的時候man一下吧!
7、su:切換用戶身份
常見用法: 直接使用su:切換至root用戶 su - username : 切換用戶 root切換至普通用戶不需要密碼,
8、sudo:可以使當前用戶臨時切換為任何用戶執行命令
通過visudo命令修改/etc/sudoers檔案,模仿root添加一行資料,即開通了sudo權限

常見用法:
一般給普通用戶添加sudo權限后,普通用戶執行任何命令之前加上sudo,可臨時擁有root用戶的身份,擁有root權限
還有一些命令和用法在shell腳本中用的比較多,這里就不列出來了,有時間會總結linux中shell腳本的常見用法,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/288563.html
標籤:其他
上一篇:串列訪問匯總(上)
