/bin:
bin是binary的縮寫猜年,這個目錄存放著最經(jīng)常使用的命令根欧。
/boot:
這里存放的是啟動linux時使用的一些核心文件羽杰,包括一些鏈接文件以及鏡像文件渡紫。
/dev
dev是device的縮寫,該目錄下方的是linux的外部設(shè)備考赛,在linux中訪問設(shè)備的方式和訪問文件的方式是相同的惕澎。
/etc:
這個目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄
/home:
用戶的主目錄,在linux中颜骤,每個用戶都有一個自己的目錄唧喉,一般該目錄是以用戶的賬號命名的。
/lib:
這個目錄里存放著系統(tǒng)最基本的動態(tài)鏈接共享庫忍抽,其作用類似于windows里面dll文件八孝,幾乎所有的應(yīng)用程序都需要用到這些共享庫
opt:
這是給主機額外安裝軟件所擺放的目錄,比如你安裝一個orcale數(shù)據(jù)庫則就可以放到這個目錄下鸠项,默認(rèn)是空的唆阿。
/root:
該目錄為系統(tǒng)管理員,也成為超級權(quán)限者的用戶主目錄
/tmp:
這個目錄是用來存放一些臨時文件的锈锤。
/usr:
這是一個非常重要的目錄驯鳖,用戶的很多應(yīng)用程序和文件都放在這個目錄下,類似于windows下的program files目錄久免。
/var:
這是一個非常重要的目錄浅辙,系統(tǒng)上跑了很多程序,
那么每個程序都會有相應(yīng)的日志產(chǎn)生阎姥,而這些日志就被記錄到這個目錄下记舆,具體在/var/log 目錄下,另外mail的預(yù)設(shè)放置也是在這里呼巴。
命令ll:
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Desktop
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Documents
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Downloads
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Music
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Pictures
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Public
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Templates
drwxr-xr-x. 2 jiapf jiapf 4096 Feb 16 08:21 Videos
useradd :該命令是添加用戶
userdel:刪除用戶 (參數(shù)-r 連帶用戶的主目錄一起刪除)
drwxr-xr-x:字母解釋
d:代表該文件是一個目錄文件泽腮,linux中第一個字母代表這個文件是目錄還是文件還是鏈接文件
當(dāng)為-時是文件
當(dāng)為l則表示為鏈接文檔
r:可讀御蒲,w:可寫 x:可執(zhí)行 這三個權(quán)限的位置不會改變,如果沒有權(quán)限就是-號
drwx:屬主權(quán)限
r-x:屬組權(quán)限
r-x:其他用戶權(quán)限
ls -a :列出全部的文件诊赊,連同隱藏檔(開頭為.的文件)一起列出來(常用)
ls -al:列出全部的文件厚满,連同隱藏檔(開頭為.的文件)一起列出來(常用)
ls -d :僅列出目錄本身,而不是列出目錄內(nèi)的文件數(shù)據(jù)
ls -l:長數(shù)據(jù)列出碧磅,包括文件的屬性與權(quán)限等數(shù)據(jù)
cd ~ 回到自己家目錄既是root目錄
二:
yum軟件倉庫
yum list all :列出倉庫中所有軟件包
yum install 軟件包名稱 :安裝軟件包
yum reinstall 軟件包名稱:重新安裝軟件包
yum update 軟件包名稱:升級軟件包
yun remove 軟件包名稱:移除軟件包
命令名稱 命令參數(shù) 命令對象:這三個之間用空格分隔
free -m:查看內(nèi)存使用情況
who 查看當(dāng)前登入主機的用戶情況
linux中以.開頭的文件均代表隱藏文件碘箍,一般會是系統(tǒng)文件
cat 文件名
參數(shù) 作用
-n 顯示行號
-b 顯示行號(不包括空行)
-A 顯示不可見的符號,如空格 tab鍵等等
more -10 文件名 :顯示10行
more -d 文件名 :顯示提示語句與報錯信息
head -n 10 文件名 : 顯示10行
head -n -10 文件名: 正常輸出鲸郊,但不顯示后面10行
tail -n 10 文件名 : 顯示后10行
tail -f 文件名:持續(xù)刷新顯示的內(nèi)容
cat 文件名 | tr [a-z] [A-Z] 把文件中的小寫全部替換成大寫(tr [原始字符] [目標(biāo)字符])
wc -l 文件名:統(tǒng)計文件的行數(shù)
wc -w 文件名:統(tǒng)計文件的單詞數(shù)
wc -c 文件名:統(tǒng)計文件的字節(jié)數(shù)
cut [參數(shù)] 文本
參數(shù) 作用
-d 分隔符 指定分隔符丰榴,默認(rèn)為tab
-f 指定顯示的列數(shù)
-c 單位改為字符
diff [參數(shù)] 文件1 文件2 :比較兩個文件的差異
參數(shù)
-b 忽略空格引起的差異
-B 忽略空行引起的差異
-q 僅報告是否存在差異
-c 使用上下文輸出格式
mkdir -p /a/b/c 連續(xù)創(chuàng)建多層目錄
rm 參數(shù) 文件名
參數(shù) 作用
-f 忽略警告信息
-r 刪除文件夾
-i 刪除前先詢問
rmdir 命令:僅刪除空目錄
passwd :修改當(dāng)前用戶的密碼
passwd [選項] 用戶:修改其他用戶的密碼
選項
-l 鎖定用戶禁止其登錄
-u 解除鎖定允許用戶登錄
-d 使用戶無密碼
--stdin 允許從標(biāo)準(zhǔn)輸入修改用戶密碼
-e 強制用戶下次登錄是修改密碼
-S 顯示用戶的密碼狀態(tài)
tar :對文件壓縮和解壓
tar -czvf 文件名 打包并壓縮文件
tar -xcvf 文件名 解開并解開壓縮包
tar -zxvf 文件名 解壓tar.gz文件
[root@master mysql]# rpm2cpio mysql-community-server-8.0.16-2.el7.x86_64.rpm | cpio -div:解壓rpm文件
參數(shù) 作用
-c 創(chuàng)建壓縮文件
-x 解開壓縮文件
-z 用Gzip壓縮或解壓
-v 顯示解壓或壓縮的過程
-f 目標(biāo)文件名
1.操作系統(tǒng):內(nèi)核,庫秆撮,應(yīng)用程序四濒,
庫也是一個應(yīng)用程序,是一個沒有入口的應(yīng)用程序职辨,是為可提高軟件的運行和開發(fā)效率的
應(yīng)用程序是有執(zhí)行入口的
2.linux的基本原則:一切皆文件
命令格式:
命令 選項 參數(shù) 參數(shù)
選項:
段選項:
多個選項可以組合:-a -b = -ab
長選項:--
參數(shù):命令的作用對象
ps axu | grep bash:查看用戶登錄接口是否啟動
ls -l
-普通文件
d:目錄文件
l:鏈接文件
c:字符文件
ls -a :顯示隱藏文件
ls -R 遞歸顯示峻黍,顯示當(dāng)前文件夾的文件和下面的文件夾的文件
shell:就是用戶接口
[root@ jiapf]# type ls
ls is aliased to `ls --color=auto' 外部命令
[root@ jiapf]# type cd
cd is a shell builtin 內(nèi)部命令
[root@ jiapf]#
printenv;查看環(huán)境變量
內(nèi)部命令查看文檔用 help 命令
外部命令查看文檔用 man 命令
文件有三種時間:1.最后一次訪問時間 2:最后一次修改時間(內(nèi)容的改動為修改) 3:最后一次改變時間(文件的改動是改變)
一個文件有兩種數(shù)據(jù):1.內(nèi)容數(shù)據(jù):文件內(nèi)容本省 2.元數(shù)據(jù):除了內(nèi)容數(shù)據(jù)之外的數(shù)據(jù)(大小拨匆,名字姆涩,擁有者等)
--grep 命令
grep 參數(shù) "查找內(nèi)容" 文件名
參數(shù)
-c 僅顯示找到的次數(shù)
-i 忽略大小寫
-n 顯示行號
-v 反向查詢,僅列出沒有關(guān)鍵詞的行
-r 遞歸查詢
eg: grep -irn "jiaxiansheng" /home/jiapf(目錄)>>/root/lines --查找內(nèi)容并輸出到/root/lines里面
--find 命令
find /etc -name "host*" -print --找出etc目錄下面的所有以host開頭的文件
參數(shù) -exec {} \ --后面可接對搜索的結(jié)果進行進一步處理
| :管道命令
wc -l 統(tǒng)計單詞的數(shù)量
grep "/sbin/nologin" /etc/passwd : 查找不允許登錄系統(tǒng)的用戶
grep "/sbin/nologin" /etc/passwd | wc -l :統(tǒng)計不允許登錄系統(tǒng)的用戶個數(shù)
輸出輸入定向:
命令>文件 將標(biāo)準(zhǔn)輸出重定向到一個文件中(清空原有數(shù)據(jù))
命令>>文件 將標(biāo)準(zhǔn)輸出重定向到一個文件中(追加到原有數(shù)據(jù)內(nèi)容后面)
命令2>文件 將錯誤輸出重定向到一個文件中(清空原有數(shù)據(jù))
命令2>>文件 將錯誤輸出重定向到一個文件中(追加到原有數(shù)據(jù)內(nèi)容后面)
命令>>文件 2>$1 將標(biāo)準(zhǔn)輸出與錯誤輸出共同寫入到文件中(追加到原有內(nèi)容的后面)
命令<文件1>文件2 :將文件1作為命令的標(biāo)準(zhǔn)輸入并將標(biāo)準(zhǔn)輸出到文件2
命令<文件 :將文件作為命令的標(biāo)準(zhǔn)輸入
通配符:
匹配零個或多個字符
? 匹配任意一個字符
[0-9] 匹配范圍內(nèi)的數(shù)字
[abc] 匹配已出的任意字符
\ 轉(zhuǎn)義后面單個字符
'' 轉(zhuǎn)義所有字符
"" 變量依然生效
`` (反引號) 執(zhí)行命令語句
--命令別名:
alias 別名=命令
unalias 別名 --取消變量別名
vim:命令:命令模式:
dd 刪除(剪切光標(biāo)所在行)
5dd 刪除剪切從光標(biāo)處開始的5行
yy 復(fù)制光標(biāo)所在行
5yy 復(fù)制從光標(biāo)處開始的5行
p 將之前刪除過或復(fù)制的數(shù)據(jù)粘貼到光標(biāo)后
/字符串 在文本中從上至下搜索該字符串
惭每?字符串 在文本中從下至上搜索該字符串
n 顯示搜索命令定位到下一個字符串
N 顯示搜索命令定位到的上一個字符串
u 撤銷上一步的命令
末行模式
:w 保存
:q 推出
:q! 強制退出
:wq! 強制保存退出
:set nu 顯示行號
:set nonu 不顯示行號
:命令 執(zhí)行該命令
:整數(shù) 跳轉(zhuǎn)到該行
shell腳本:
!/bin/bash 開頭
執(zhí)行shell腳本: ./test.sh (會提示權(quán)限不足) chomd u+x test.sh 設(shè)置權(quán)限即可執(zhí)行
sh test.sh
source test.sh
shell腳本的變量
1-9,{11}... --參數(shù)的位置變量
* --所有位置變量的值
$? --判斷上一條命令是否執(zhí)行成功骨饿,0為成功,非0為失敗
eg:
/bin/bash
echo "當(dāng)前腳本名稱是#個參數(shù)台腥,分別是1,第五個參數(shù)是$5"
條件表達(dá)式:
文件測試:[操作符宏赘,文件或目錄名] (注意:[] 兩邊都應(yīng)該有一個空格!@璩蕖2焓稹!>骸L簟!P莘汀0夤 !A鼋浮Q舳!)
操作符: 作用
-d 測試是否為目錄
-e 測試文件或目錄是否存在
-f 判斷是否為文件
-r 測試當(dāng)前用戶是否有權(quán)限讀取
-w 測試當(dāng)前用戶是否有權(quán)限寫入
-x 測試當(dāng)前用戶是否有權(quán)限執(zhí)行
邏輯測試:[表達(dá)式1] 操作符 [表達(dá)式2]
操作符
&& 與,而且的意思
|| 或岩调,或者的意思
! 邏輯的否
整數(shù)值比較:[整數(shù)1 操作符 整數(shù)2]
操作符
-eq 判斷是否等于
-ne 判斷是否不等于
-gt 判斷是否大于
-lt 判斷是否小于
-le 判斷是否等于或小于
-ge 判斷是否大于或等于
字符串比較:[字符串1 操作符 字符串2]
操作符 作用
= 比較字符串是否相同
!= 比較字符串是否不同
-z 判斷字符串內(nèi)容是否為空
if語句:
但分支語句:
if
then
fi
雙分支語句
if
then
else
fi
多分支語句
if
then
elif
else
fi
判斷是否存在某個目錄巷燥,不存在創(chuàng)建該目錄
!/bin/bash
dir="/media/cdrom"
if [ ! -e dir
fi
判斷用戶輸入的分?jǐn)?shù)在哪個區(qū)間內(nèi),然后判定為優(yōu)秀号枕,合格或不合格
read命令用于將用戶的輸入?yún)?shù)賦值給指定變量缰揪,格式為: read -p [提示語句] 變量名
!/bin/bash
read -p "請輸入成績" grade
if [ grade -le 100 ]
then echo "優(yōu)秀"
elif [ grade -le 84 ]
then echo "通過"
else echo "失敗"
for條件語句:
for 變量名 in 取值列表
do
命令序列
done
--shell腳本提示用戶輸入想要設(shè)置的密碼并賦值給PASSWD變量,從user.txt文件中讀入用戶名并賦值給UNAME 變量堕澄,
而查看用戶的信息都重定向到/dev/null文件,不顯示到屏幕
!/bin/bash
read -p "請輸入這用戶的密碼:" PASSWD
for UNAME in cat user.txt
do
id ? -eq 0 ]
then
echo "已經(jīng)存在"
else
useradd PASSWD"|passwd --stdin ? -eq 0 ]
then
echo "成功"
else echo "失敗"
fi
fi
done
while條件會重復(fù)測試某個條件霉咨,當(dāng)條件成立時則繼續(xù)重復(fù)執(zhí)行
while 條件測試操作
do
命令序列
done
while條件語句:隨機生成一個0-900的整數(shù)蛙紫,判斷并提示用戶輸入的值過高或過低,只有當(dāng)用戶猜中才結(jié)束程序
腳本中的$RANDOM是一個隨機變量途戒,用于%1000后會得到一個介于0-999的整數(shù)賦值給price變量坑傅,while后面的true代表
該循環(huán)會永久執(zhí)行 (expr 計算整數(shù)變量值)
!/bin/bash
PRICE=RANDOM % 1000)
TIMES=0
echo "商品的實際價格是0-999之間,你猜猜多少"
while true
do
read -p "請輸入你猜的價格數(shù)目:" INT
let TIMES++
if [ PRICE ]
then
echo "恭喜你答對啦喷斋,實際價格是INT -gt $PRICE ]
then
echo "你猜的價格太高啦"
else
echo “你猜的價格太低啦”
fi
done
--case條件語句
case 變量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
esac
提示用戶輸入一個字符給變量key唁毒,并判斷key為何種字符后分別輸出是字母,數(shù)字還是其他字符
!/bin/bash
read -p "請輸入一個字符星爪,并按enter鍵確認(rèn):" KEY
case "$KEY" in [a-z]|[A_Z])
echo "您輸入的是字母"
;;
[0-9])
echo "您輸入的是數(shù)字"
;;
*)
echo "您輸入的是空格浆西,功能鍵或其他制字符"
esac
--計劃任務(wù)服務(wù)(一次性計劃任務(wù),長期性計劃任務(wù))
參數(shù) 作用
at<時間> 安排一次性任務(wù)
atq或at -1 查看任務(wù)列表
at -c 序號 預(yù)覽任務(wù)與設(shè)置環(huán)境
atrm 序號 刪除任務(wù)
一般用at創(chuàng)建計劃任務(wù)有交互式和非交互式兩種
echo "systemctl start httpd" | at 14:25 --創(chuàng)建一個14:25的定時任務(wù)
對于長期可循環(huán)的計劃任務(wù)顽腾,則要用到cron服務(wù)
創(chuàng)建近零,編輯計劃任務(wù):crontab -e [-u 用戶名]
查看計劃任務(wù):crontab -l [-u 用戶名]
刪除計劃任務(wù):crontab -r [-u 用戶名]
字段 說明
分鐘 取值從0到59之間的整數(shù)
小時 取值從0到23之間的整數(shù)
日期 取值1到31之間的整數(shù)
月份 取值1到12之間的整數(shù)
星期 取值為0到7之間的任意整數(shù),其中0與7均為星期日
命令 要執(zhí)行的命令或程序腳本
--文件權(quán)限:
chomd命令用于修改文件或目錄的權(quán)限抄肖,格式為chomd[參數(shù)] 權(quán)限 文件或目錄名稱
chown命令用于修改文件或目錄的所屬組與所屬主久信,格式為:chown[參數(shù)] 所屬主:所屬組 文件或文件目錄
chomd和chown的命令參數(shù)簡單----對于文件不加參數(shù),遇到目錄加大寫的-R(遞歸漓摩,修改目錄下面的所有文件的屬性)
chattr命令用于設(shè)置文件的隱藏權(quán)限裙士,格式為:chattr [參數(shù)] 文件
參數(shù) 作用
i 將無法對文件進行修改,若對目錄設(shè)置后則僅能修改子文件而不能創(chuàng)建新文件
a 僅允許補充內(nèi)容管毙,無法覆蓋
S 文件內(nèi)容變更后立即同步到硬盤
s 徹底從硬盤中刪除腿椎,不可恢復(fù)
A 不再修改這個文件的最后訪問時間
b 不再修改文件或目錄的存取時間
lsattr命令用于顯示文件的隱藏屬性,格式為:lsattr [參數(shù)] 文件
參數(shù) 作用
a 顯示所有文件和目錄
l 顯示隱藏屬性的全稱(默認(rèn)簡寫成一個字母)
R 遞歸處理夭咬,將指定目錄下的所有文件及子目錄一并處理
d 若目標(biāo)文件為目錄酥诽,請加此參數(shù)
sudo命令
參數(shù) 作用
-h 列出幫助信息
-l 列出當(dāng)前用戶可執(zhí)行的命令
-u 用戶名或uid值 以指定的用戶身份執(zhí)行命令
-k 清空安全時間,下次執(zhí)行sudo時需要再次驗證密碼
-b 在后臺執(zhí)行指定的命令
nohup ./start.sh 的意思是在后臺運行皱埠,意思是當(dāng)你執(zhí)行./start.sh $的時候肮帐,即使你使用ctrl C, 那么start.sh照樣運行(因為對SIGINT信號免疫但是要注意,
如果你直接關(guān)掉shell后, 那么训枢,start.sh進程同樣消失托修。 可見, &的后臺并不硬(因為對SIGHUP信號不免疫)
nohup 的意思是忽略sighup信號恒界,所以當(dāng)你運行nohup ./start.sh的時候睦刃,
關(guān)閉shell, 那么start.sh進程還是存在的(對SIGHUP信號免疫)。
但是十酣, 要注意涩拙, 如果你直接在shell中用Ctrl C, 那么start.sh進程也是會消失的(因為對SIGINT信號不免疫)
所以, &和nohup沒有半毛錢的關(guān)系耸采, 要讓進程真正不受shell中Ctrl C和shell關(guān)閉的影響兴泥, 那該怎么辦呢? 那就用nohup ./start.sh &吧虾宇, 兩全其美
如果不將 nohup 命令的輸出重定向搓彻,輸出將附加到當(dāng)前目錄的 nohup.out 文件中。如果當(dāng)前目錄的 nohup.out 文件不可寫嘱朽,輸出重定向到 $HOME/nohup.out 文件中