第二章: 主機(jī)規(guī)劃與磁盤分區(qū)
在Linux系統(tǒng)中,每個設(shè)備都被當(dāng)成一個文件來對待,位于/dev/文件夾下观堂,有自己的命名方式。
關(guān)于文件系統(tǒng)的具體結(jié)構(gòu)呀忧,以及作用师痕,參看之前的筆記。
第四章:線上求助
命令格式:
command [-options] parameter1 parameter2 ...
重要的快捷鍵
[Tab] “命令補(bǔ)全”與“文件補(bǔ)齊”:連按兩下而账,顯示所有命令胰坟。
[ctrl]-c 指令中斷
[Ctrl]-d 直接離開了,相當(dāng)于輸入exit泞辐。
[Shift]+[Page Up] 來往前翻頁笔横,也能夠使用
[Shift]+[Page Down] 來往后翻頁竞滓!
幫助指令
//指令使用幫助
--help
man command
info command
/string 向“下”搜尋 string 這個字串
?string 向“上”搜尋 string 這個字串
q 結(jié)束這次的 man page
// 利用 / 或 ? 來搜尋字串時,可以用 n 來繼續(xù)下一個搜尋吹缔,N 來進(jìn)行“反向”搜尋
// 關(guān)機(jī)常用指令
sync 將數(shù)據(jù)同步寫入硬盤中的指令
shutdown 慣用的關(guān)機(jī)指令
reboot, halt, poweroff 重新開機(jī)商佑,關(guān)機(jī):
第五章:文件權(quán)限與目錄配置
擁有者、群組涛菠、其他人:u,g,o
chgrp 改變文件所屬群組
chown 改變文件擁有者
chmod 改變文件的權(quán)限
// 權(quán)限與數(shù)字之間的對應(yīng)關(guān)系
r:4 w:2 x:1
// 示例
chmod 777 file
chmod u=rwx,go=rx file
// 所有人都加上相應(yīng)指令
chmod a+w file
chmod a-x file
./ 代表“本目錄”的意思
uname -r 查看核心版本
第六章:文件與目錄管理
. 代表此層目錄
.. 代表上一層目錄
- 代表前一個工作目錄
~ 代表“目前使用者身份”所在的主文件夾
~account 代表 account 這個使用者的主文件夾(account是個帳號名稱)
// 目錄相關(guān)
cd:變換目錄
pwd:顯示目前的目錄
mkdir:創(chuàng)建一個新的目錄
rmdir:刪除一個空的目錄
// 系統(tǒng)路徑變量:
$PATH
PATH="${PATH}:/root"
// 文件與目錄的檢視: ls
ls -ls
ls -ah
// 復(fù)制莉御、刪除與移動:
cp source target
rm source target
mv source target
// 望名知意
basename /etc/sysconfig/network
dirname /etc/sysconfig/network
// 瀏覽文本內(nèi)容相關(guān)
cat 由第一行開始顯示文件內(nèi)容
head 只看頭幾行
tail 只看尾巴幾行
// 以下不常用
tac 從最后一行開始顯示,可以看出 tac 是 cat 的倒著寫俗冻!
nl 顯示的時候礁叔,順道輸出行號!
more 一頁一頁的顯示文件內(nèi)容
less 與 more 類似迄薄,他可以往前翻頁琅关!
od 以二進(jìn)制的方式讀取文件內(nèi)容!
// 查看日志必學(xué):
tail -f /var/log/messages
head -n 20 /etc/man_db.conf | tail -n 10
// 這樣就可以得到第 11 到第 20 行之間的內(nèi)容了
touch 修改文件時間或創(chuàng)建新文件
umask 文件默認(rèn)權(quán)限
file 觀察文件類型
目前先知道有這么兩個命令就好
chattr (設(shè)置文件隱藏屬性)
lsattr (顯示文件隱藏屬性)
SUID 讥蔽, SGID涣易, SBIT
指令與文件的搜尋
which 尋找“可執(zhí)行文件”
whereis 文件或目錄名
find
第八章:打包與備份
*.Z compress 程序壓縮的文件;
*.zip zip 程序壓縮的文件冶伞;
*.gz gzip 程序壓縮的文件新症;
*.bz2 bzip2 程序壓縮的文件;
*.xz xz 程序壓縮的文件响禽;
*.tar tar 程序打包的數(shù)據(jù)徒爹,并沒有壓縮過;
*.tar.gz tar 程序打包的文件芋类,其中并且經(jīng)過 gzip 的壓縮
*.tar.bz2 tar 程序打包的文件隆嗅,其中并且經(jīng)過 bzip2 的壓縮
*.tar.xz tar 程序打包的文件,其中并且經(jīng)過 xz 的壓縮
tar 可以將很多文件“打包”成為一個文件
gzip [-cdtv#] 文件名
bzip2 [-cdkzv#] 文件名
壓 縮:tar -j<u>c</u>v -f filename.tar.bz2 要被壓縮的文件或目錄名稱
查 詢:tar -j<u>t</u>v -f filename.tar.bz2
解壓縮:tar -j<u>x</u>v -f filename.tar.bz2 -C 欲解壓縮的目錄
第十章侯繁、認(rèn)識與學(xué)習(xí)BASH
//命令別名設(shè)置功能:
alias lm='ls -al'
//查詢指令是否為 Bash shell 的內(nèi)置命令:
type command
env //觀察環(huán)境變量與常見環(huán)境變量說明
$ //關(guān)于本 shell 的 PID
echo $$ //打印當(dāng)前用戶的你的 PID 號碼胖喳。
?: //關(guān)于上個執(zhí)行指令的回傳值
// 如果成功的執(zhí)行該指令, 則會回傳一個 0 值贮竟,錯誤返回非0值
export: 自訂變量轉(zhuǎn)成環(huán)境變量
export 變量名稱 // 導(dǎo)出對應(yīng)變量
export // 導(dǎo)出所有變量
影響顯示結(jié)果的語系變量 (locale)
read 讀取來自鍵盤輸入
declare [-aixr] variable
選項(xiàng)與參數(shù):
-a :將后面名為 variable 的變量定義成為 array類型
-i :將后面名為 variable 的變量定義成為integer 類型
-x :用法與 export 一樣丽焊,就是將后面的 variable 變成環(huán)境變量;
-r :將變量設(shè)置成為 readonly 類型坝锰,該變量不可被更改內(nèi)容粹懒,也不能 unset
array 數(shù)組變量類型
與文件系統(tǒng)及程序的限制關(guān)系: ulimit
可以考慮用 ulimit 來限制使用者可以創(chuàng)建的文件大小。
變量相關(guān)的一些處理符號
alias, unalias 命令別名設(shè)置
history 歷史命令
~/.bash_history //記錄歷史命令顷级,所以要小心你在命令中輸入的密碼被盜取哦凫乖。
路徑與指令搜尋順序
- 以相對/絕對路徑執(zhí)行指令,例如“ /bin/ls ”或“ ./ls ”;
- 由 alias 找到該指令來執(zhí)行帽芽;
- 由 bash 內(nèi)置的 (builtin) 指令來執(zhí)行删掀;
- 通過 $PATH 這個變量的順序搜尋到的第一個指令來執(zhí)行。
bash 的進(jìn)站與歡迎訊息: /etc/issue, /etc/motd
比如阿里云服務(wù)器的進(jìn)站歡迎信息导街。
包含PATH的系統(tǒng)配置信息:
/etc/profile:這是系統(tǒng)整體的設(shè)置披泪,你最好不要修改這個文件;
-
~/.bash_profile 或 ~/.bash_login 或 ~/.profile:屬于使用者個人設(shè)置搬瑰,
// 一般只有以下一個 1. ~/.bash_profile 2. ~/.bash_login 3. ~/.profile
source 或者 . :配置的環(huán)境變量馬上生效款票。
萬用字符與特殊符號
// 示例
ll -d /etc/*[0-9]* <==記得中括號左右兩邊均需 *
ll -d /etc/????? <==由于 ? 一定有一個,所以五個 ? 就對了
ll -d /etc/cron* <==加上 -d 是為了僅顯示目錄而已
輸入與輸出
- 標(biāo)準(zhǔn)輸入 ≡舐邸(stdin) :代碼為 0 艾少,使用 < 或 << ;
- 標(biāo)準(zhǔn)輸出 ∫磴病(stdout):代碼為 1 缚够,使用 > 或 >> ;
- 標(biāo)準(zhǔn)錯誤輸出(stderr):代碼為 2 鹦赎,使用 2> 或 2>> 谍椅;
幾個很常用的命令
cmd ; cmd // ; 連接多個命令
$? (指令回傳值) 與 && 或 ||
| 管線命令 (pipe)
擷取命令: cut, grep
cut 是將一行訊息當(dāng)中,取出某部分我們想要的
grep 則是分析一行訊息古话, 若當(dāng)中有我們所需要的信息雏吭,就將該行拿出來。
后處理命令
sort 排序
uniq 去重
wc 統(tǒng)計(jì)行陪踩,字思恐,字符
雙向重導(dǎo)向: tee
split將大文件分區(qū)成為小文件了
//范例一:我的 /etc/services 有六百多K,若想要分成 300K 一個文件時膊毁?
$ cd /tmp; split -b 300k /etc/services services
第十一章:正則表達(dá)式
比較文件差異。
diff [-bBi] from-file to-file
cmp passwd.old passwd.new
diff主要是以“行”為單位比對基跑, cmp 則是以“字節(jié)”為單位去比對婚温,這并不相同!)
第十二章:Shell Scripts
本章的學(xué)習(xí)可以參看之前的shell筆記媳否,并且理解shell只是命令行的封裝栅螟。最好的學(xué)習(xí)方式應(yīng)該是知道基礎(chǔ)后參考別人的程序?qū)懗鲎约合胍某绦颉?/p>
第十三章:Linux 帳號管理與 ACL 權(quán)限設(shè)置
/etc/passwd // 存放用戶
/etc/group // 存放組
/etc/shadow // 存放用戶密碼
/etc/gshadow // 存放組密碼
root 密碼忘記了:重新開機(jī)進(jìn)入單人維護(hù)模式,此時再以 passwd 修改密碼即可篱竭×ν迹或以 Live CD 開機(jī)后掛載根目錄去修改/etc/shadow,將里面的 root 的密碼字段清空掺逼, 再重新開機(jī)后 root 將不用密碼即可登陸吃媒。然后修改密碼。
用戶組相關(guān)的命令
groups 查看當(dāng)前用戶所屬組,可以有多個赘那。
newgrp: 有效群組的切換
// 用戶相關(guān)
useradd
passwd
usermod:修改用戶屬性刑桑,修改組就靠你了。
userdel
// 以下命令參考user類似
groupadd
groupmod
groupdel
id 這個指令則可以查詢某人或自己的相關(guān) UID/GID 等等的信息
chage提供比passwd -S 更詳細(xì)的密碼參數(shù)顯示功能募舟。
su 切換用戶
sudo 獲取root權(quán)限祠斧,sudo 的執(zhí)行則僅需要自己的密碼即可!
需要在/etc/sudoers中配置拱礁,或者直接使用命令visudo琢锋。
使用者帳號 登陸者的來源主機(jī)名稱=(可切換的身份) 可下達(dá)的指令
root ALL=(ALL) ALL //這是默認(rèn)值
vbird1 ALL=(ALL) ALL //這一行是你要新增的!
但是一般不建議這么做呢灶,除非你需要很細(xì)粒度的控制吴超。可采用加入組的方式
在最左邊加上 % 填抬,代表“群組”
%wheel ALL=(ALL) ALL <==大約在 106 行左右烛芬,請將這行的 # 拿掉!
%wheel ALL=(ALL) NOPASSWD: ALL
NOPASSWD:sudo時候免除輸入密碼
這樣在該群組中的用戶就可以獲取root權(quán)限了飒责。
主機(jī)上的使用者訊息傳遞
w
who
last
lastlog
如果您想要知道每個帳號的最近登陸的時間赘娄,則可以使用 lastlog
第十五章:例行性工作調(diào)度(crontab)
本章的內(nèi)容與shell一樣,參看之前的筆記宏蛉,同時遣臼,對于其他幾個工作調(diào)度功能,等實(shí)際用到的時候再學(xué)習(xí)拾并。
第十六章揍堰、程序管理
cp file1 file2 &
//這個 & 代表:“將工作丟到背景中去執(zhí)行”
[ctrl]-z 丟到背景中,且暫停
jobs 觀察目前的背景工作狀態(tài):
fg:fg %jobnumber 將背景工作拿到前景來處理:
bg:bg %jobnumber 讓工作在背景下的狀態(tài)變成運(yùn)行中
kill 管理背景當(dāng)中的工作:
// 示例
kill -9 %2 強(qiáng)制關(guān)閉
kill -15 %2 優(yōu)雅關(guān)閉
kill 后面接的數(shù)字默認(rèn)會是 PID 嗅义,如果想要管理 bash 的工作控制屏歹,就得要加上 %數(shù)字
程序的觀察---靜態(tài)的 ps 、動態(tài)的 top
ps :將某個時間點(diǎn)的程序運(yùn)行情況擷取下來
top 則可以持續(xù)偵測程序運(yùn)行的狀
top: top -d 2 每兩秒鐘更新一次
top 默認(rèn)使用 CPU 使用率 (%CPU) 作為排序的重點(diǎn)之碗,如果你想要使用內(nèi)存使用率排序蝙眶,則可以按下“M”, 若要回復(fù)則按下“P”即可褪那。如果想要離開 top 則按下“ q ”吧幽纷!
pstree: 要找程序之間的相關(guān)性
killall [-iIe] [command name]
最簡單的方法就是利用 killall , 因?yàn)樗梢詫⑾到y(tǒng)當(dāng)中所有以某個指令名
稱啟動的程序全部刪除博敬。
關(guān)于程序的執(zhí)行順序(優(yōu)先級)
PRI(new) = PRI(old) + nice
我們只能改變nice值:
nice [-n 數(shù)字] command
nice 值可調(diào)整的范圍為 -20 ~ 19 友浸;
root 可隨意調(diào)整自己或他人程序的 Nice 值,且范圍為 -20 ~ 19 偏窝;
一般使用者僅可調(diào)整自己程序的 Nice 值收恢,且范圍僅為 0 ~ 19 (避免一般用戶搶占系統(tǒng)資源)武学;
-
一般使用者僅可將 nice 值越調(diào)越高,例如本來 nice 為 5 派诬,則未來僅能調(diào)整到大于 5劳淆;
// 已存在程序的 nice 重新調(diào)整
renice [number] PIDfree 觀察內(nèi)存使用情況
uname 查閱系統(tǒng)與核心相關(guān)信息
netstat 追蹤網(wǎng)絡(luò)或插槽檔
uptime 觀察系統(tǒng)啟動時間與工作負(fù)載
vmstat 偵測系統(tǒng)資源變化
認(rèn)識系統(tǒng)服務(wù) (daemons)
service: http
serviced: httpd
daemons
systemctl [command] [unit]
command 主要有:
start :立刻啟動后面接的 unit
stop :立刻關(guān)閉后面接的 unit
restart :立刻關(guān)閉后啟動后面接的 unit,亦即執(zhí)行 stop 再 start 的意思
reload :不關(guān)閉后面接的 unit 的情況下默赂,重新載入配置文件沛鸵,讓設(shè)置生效
enable :設(shè)置下次開機(jī)時,后面接的 unit 會被啟動
disable :設(shè)置下次開機(jī)時缆八,后面接的 unit 不會被啟動
status :目前后面接的這個 unit 的狀態(tài)曲掰,會列出有沒有正在執(zhí)行、開機(jī)默認(rèn)執(zhí)行否奈辰、登錄等信息等栏妖!
is-active :目前有沒有正在運(yùn)行中
is-enable :開機(jī)時有沒有默認(rèn)要啟用這個 unit