01
開篇詞
不管你是從事開發(fā)還是運(yùn)維工作荠呐,都要懂Linux基本命令赛蔫,Linux命令是Linux系統(tǒng)正常運(yùn)行的核心。
如果是運(yùn)維直秆,那Linux命令是必備技能濒募,因?yàn)橐?jīng)常和服務(wù)器打交道鞭盟。
如果是開發(fā)圾结,那Linux命令是中堅(jiān)力量,因?yàn)橐€(wěn)定高效運(yùn)行應(yīng)用程序齿诉。
Linux中的命令大致分為兩類:內(nèi)部命令和外部命令筝野。
內(nèi)部命令也稱shell內(nèi)嵌命令,這些命令是寫在bash源碼的builtins里面的粤剧,由shell 程序識(shí)別并在 shell 程序內(nèi)部完成運(yùn)行歇竟,通常在 Linux 系統(tǒng)加載運(yùn)行時(shí) shell 就被加載并駐留在系統(tǒng)內(nèi)存中,不需要臨時(shí)去磁盤加載命令抵恋。而且解析內(nèi)部命令 shell 不需要?jiǎng)?chuàng)建子進(jìn)程焕议,因此其執(zhí)行速度比外部命令快。
外部命令存放在一個(gè)文件中弧关,需要時(shí)候在文件中查找盅安,這些文件定義在$PATH中,通常放在/bin世囊,/usr/bin别瞭,/sbin,/usr/sbin目錄中株憾。
那內(nèi)部命令有哪些呢蝙寨?我們可以通過enable命令來查看
enable
1enable .
2enable :
3enable [
4enable alias
5enable bg
6enable bind
7enable break
8enable builtin
9enable caller
10enable cd
11enable command
12enable compgen
13enable complete
14enable compopt
15enable continue
16enable declare
17enable dirs
18enable disown
19enable echo
20enable enable
21enable eval
22enable exec
23enable exit
24enable export
25enable false
26enable fc
27enable fg
28enable getopts
29enable hash
30enable help
31enable history
32enable jobs
33enable kill
34enable let
35enable local
36enable logout
37enable mapfile
38enable popd
39enable printf
40enable pushd
41enable pwd
42enable read
43enable readarray
44enable readonly
45enable return
46enable set
47enable shift
48enable shopt
49enable source
50enable suspend
51enable test
52enable times
53enable trap
54enable true
55enable type
56enable typeset
57enable ulimit
58enable umask
59enable unalias
60enable unset
61enable wait
外部命令表現(xiàn)為一個(gè)磁盤文件晒衩,存放在某一個(gè)目錄下,我們可以通過which命令來查看具體位置墙歪。
1root@DESKTOP-KV8R5US:~# which ls //查看外部命令的磁盤路徑
2/bin/ls
3root@DESKTOP-KV8R5US:~# whereis ls //whereis 不僅能查看文件路徑听系,還能查看幫助文檔的路徑
4ls: /bin/ls /usr/share/man/man1/ls.1.gz
那如何更快速,準(zhǔn)確的確定某一個(gè)命令到底是屬于內(nèi)部命令還是外部命令虹菲,我們可以通過type命令來查看具體位置跛锌。
1root@DESKTOP-KV8R5US:~# type help
2help is a shell builtin
3root@DESKTOP-KV8R5US:~# type ls
4ls is aliased to `ls --color=auto'
5root@DESKTOP-KV8R5US:~# type pwd
6pwd is a shell builtin
執(zhí)行過的命令都通過hash存在內(nèi)存中,我們可以通過hash命令查看緩存的路徑。
1hash
02
幫助命令
1.1 help
獲取shell內(nèi)置命令的幫助信息届惋,不能用于外部命令髓帽。
help [-dms] [pattern ...]
1.2 man
獲取幫助信息,沒有內(nèi)部命令與外部命令的區(qū)分脑豹。
man [OPTION...] [SECTION] PAGE...
1.3 info
info [OPTION]... [MENU-ITEM...]
相比man來說郑藏,info獲取到的幫助文檔更加完整詳細(xì)。
我們最常用的一種情況是-h, --help
基本命令 --help
03
組與用戶類
2.1 group
添加組
groupadd [options] GROUP
創(chuàng)建一個(gè)新的組groupbdc瘩欺,并添加組 ID:325必盖。
# groupadd -g 325 groupbdc
-
-g:指定新建用戶組的ID
-
-r:創(chuàng)建系統(tǒng)賬戶(系統(tǒng)賬戶GID小于500)
刪除組
groupdel [options] GROUP
刪除組groupbdc。
# groupdel groupbdc
修改組
groupmod [options] GROUP
刪除組groupbdc為groupbdc+俱饿。倘若該群組中仍包括某些用戶歌粥,則必須先刪除這些用戶后,方能刪除群組拍埠。
# groupmod -n newgroupbdc groupbdc
-
-n:指定某組的新組名
查看組
查看組賬戶信息
cat /etc/group
查看安全組賬戶信息
# cat /etc/gshadow
查看密碼套件配置失驶。
cat /etc/login.defs Shadow
2.2 user
添加用戶
useradd [options] LOGIN
添加用戶userbdc。
# useradd userbdc
為添加用戶指定用戶組枣购。
# useradd -g groupbdc userbdc
創(chuàng)建一個(gè)系統(tǒng)用戶嬉探。
# useradd -r userbdc
刪除用戶
userdel [options] LOGIN
刪除userbdc用戶以及與此用戶相關(guān)的所有文件。
# userdel -r userbdc
- -r 刪除用戶的同時(shí)棉圈,刪除與用戶相關(guān)的所有文件涩堤。
判斷用戶是否存在
id [OPTION]... [USER]
判斷用戶userbdc是否存在
id userbdc
設(shè)置用戶密碼
passwd [options] [LOGIN]
為userbdc用戶設(shè)置密碼。
# passwd userbdc
修改用戶
usermod [options] LOGIN
修改userbdc用戶為root用戶組
# usermod –g root userbdc
切換用戶
su [options] [LOGIN]
切換用戶分瘾,只能獲得用戶的執(zhí)行權(quán)限胎围,不能獲得環(huán)境變量
su userbdc
切換到用戶并獲得該用戶的環(huán)境變量及執(zhí)行權(quán)限
su - userbdc
查看登錄用戶信息
查看創(chuàng)建了哪些組
cat /etc/passwd
顯示自身用戶名稱
whoami
顯示登錄用戶的用戶名
who am i
顯示有哪些用戶登錄到了本臺(tái)機(jī)器上
who
sudo
修改配置文件/etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
userbdc ALL=(ALL) ALL或 NOPASSWD:ALL(不需要輸入密碼)
04
文件目錄類
3.1 pwd
基本語法
pwd顯示您目前所在的工作目錄的絕對(duì)路徑
pwd [-LP]
- -L 如果指定當(dāng)前工作目錄,則打印
PWD 默認(rèn)就是 -L
- -P 打印物理目錄白魂,不包含任何符號(hào)鏈接
常用實(shí)例
# pwd
/home/wang
3.2 ls
基本語法
顯示指定工作目錄下的內(nèi)
ls [-alrtAFR] [目錄or文件]
|文件類型以及權(quán)限|鏈接數(shù)|文件屬主|文件屬組|文件大小(單位:Byte)|
最后一次操作的時(shí)間|文件名稱
- -r 將文件以相反次序顯示(原定依英文字母次序)
- -t 將文件按照建立時(shí)間之先后次序列出
- -A 不列出 "." (目前目錄) 及 ".." (父目錄)
- -F 在列出的文件名稱后加一符號(hào)氏捞;例如可執(zhí)行檔則加 "*", 目錄則加 "/"
- -R 遞歸顯示層級(jí)目錄
- -a 顯示所有文件及目錄碧聪,包括以"."開頭的隱藏檔
- -l 除文件名稱外,亦將文件型態(tài)液茎、權(quán)限逞姿、擁有者辞嗡、文件大小等資訊詳細(xì)列出
實(shí)例
Null
3.3 mkdir
基本語法
創(chuàng)建一個(gè)新的目錄
mkdir [-p] dirName
- -p 遞歸創(chuàng)建多層目錄
- dirName 目錄名稱(可以是多個(gè))
實(shí)例
mkdir -p a/b/c
3.4 rmdir
基本語法
刪除一個(gè)空的目錄
rmdir [-p] dirName
- -p 遞歸創(chuàng)建多層目錄
- dirName 目錄名稱(可以是多個(gè))
實(shí)例
rmdir -p a/b/c
3.5 touch
基本語法
創(chuàng)建新的空白文件
touch fileName
實(shí)例
touch new.txt
3.6 cd
基本語法
切換目錄
cd [dirName]
dirName 相對(duì)路徑或絕對(duì)路徑都支持
實(shí)例
cd ~或者cd # 回到自己的家目錄
cd - # 回到自己上一次所在目錄
cd .. # 回到當(dāng)前目錄的上一級(jí)目錄
cd -P # 跳轉(zhuǎn)到實(shí)際物理路徑,而非快捷方式路徑
3.7 cp
基本用法
復(fù)制文件或目錄
cp [options] source dest 或 cp [options] source... directory
實(shí)例
使用指令"cp"將當(dāng)前目錄"test/"下的所有文件復(fù)制到新目錄"newDir"下
cp –r test/ newDir
3.8 rm
基本語法
刪除文件或目錄
rm [options] fileName或dirName...
- -i 刪除前逐一詢問確認(rèn)滞造。
- -r 遞歸刪除目錄中所有內(nèi)容
- -f 強(qiáng)制執(zhí)行刪除操作续室,而不提示用于進(jìn)行確認(rèn)。
- -v 顯示指令的詳細(xì)執(zhí)行過程
常用案例
遞歸刪目錄中所有內(nèi)容
rm -rf dirName
刪除當(dāng)前目錄下的所有文件及目錄
rm -r *
需要注意
文件一旦通過rm命令刪除谒养,則無法恢復(fù)挺狰,所以必須格外小心地使用該命令。
3.9 mv
基本語法
移動(dòng)文件买窟、目錄或重命名
mv [options] source dest #重命名
mv [options] source... directory #移動(dòng)
常用案例
將文件oldFileName.txt重命名為newFileName.txt
mv oldFileName.txt newFileName.txt
將文件fileName移動(dòng)到目錄dir
mv fileName.txt dir
需要注意
如果目錄存在丰泊,則該命令執(zhí)行移動(dòng)操作。
如果目錄不存在始绍,則該命令執(zhí)行修改操作瞳购。
3.10 cat
基本語法
查看文件內(nèi)容,正序
cat [options] fileName
- -n 或 -number : 對(duì)輸出的內(nèi)容進(jìn)行編號(hào)
- -b 或 --number-nonblank:和 -n 相似亏推,只不過對(duì)于空白行不編號(hào)学赛。
常用案例
root@DESKTOP-KV8R5US:/# cat -number a.txt
3.11 tac
基本用法
查看文件內(nèi)容,倒序
tac [options] fileName
常用實(shí)例
root@DESKTOP-KV8R5US:/# tac a.txt
3.12 more
基本用法
more [options] fileName
- 空白鍵 (space):代表向下翻一頁吞杭;
- Enter:代表向下翻『一行』盏浇;
- q:代表立刻離開 more ,不再顯示該文件內(nèi)容芽狗。
- Ctrl+F 向下滾動(dòng)一屏
- Ctrl+B 返回上一屏
- = 輸出當(dāng)前行的行號(hào)
- :f 輸出文件名和當(dāng)前行的行號(hào)
常用實(shí)例
root@DESKTOP-KV8R5US:/# more a.txt
3.13 less
基本用法
less 的作用與 more 十分相似绢掰,都可以用來瀏覽文字檔案的內(nèi)容,不同的是 less 允許使用[pageup] [pagedown]往回滾動(dòng)译蒂。
less [options] fileName
- 空白鍵 :向下翻動(dòng)一頁曼月;
- [pagedown]:向下翻動(dòng)一頁谊却;
- [pageup] :向上翻動(dòng)一頁柔昼;
- /字串 :向下搜尋『字串』的功能;n:向下查找炎辨;N:向上查找捕透;
- ?字串 :向上搜尋『字串』的功能;n:向上查找碴萧;N:向下查找乙嘀;
- q :離開 less 這個(gè)程序;
常用實(shí)例
root@DESKTOP-KV8R5US:/# less a.txt
3.14 head
基本用法
head [options] fileName
- -n x 查看文件頭x行內(nèi)容
常用實(shí)例
root@DESKTOP-KV8R5US:/# head -n 1 a.txt
total 580
3.15 tail
基本用法
tail [options] fileName
- -f 實(shí)時(shí)追蹤該文檔的所有更新
- -n x 查看文件末尾x行內(nèi)容
常用實(shí)例
root@DESKTOP-KV8R5US:/# tail -n 1 a.txt
drwxr-xr-x 1 root root 512 Mar 5 00:02 var
3.16 echo
基本用法
顯示一行文本破喻,用于字符串的輸出虎谢。
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
常用案例
顯示普通字符串
root@DESKTOP-KV8R5US:/# echo "hello bdc+"
hello bdc+
顯示轉(zhuǎn)義字符
root@DESKTOP-KV8R5US:/# echo "\"It is echo\""
"It is echo"
顯示變量
root@DESKTOP-KV8R5US:/# echo $PWD
/
顯示換行
root@DESKTOP-KV8R5US:/# echo -e "OK! \n"
OK!
輸出結(jié)構(gòu)到文件
root@DESKTOP-KV8R5US:/# echo "It is echo" > myfile
root@DESKTOP-KV8R5US:/# cat myfile
It is echo
顯示命令內(nèi)容
root@DESKTOP-KV8R5US:/# echo `date`
Tue Jun 23 10:44:48 CST 2020
3.17 >>
基本語法
重定向
> 列表的內(nèi)容寫入文件中(覆蓋寫)
>> 列表的內(nèi)容追加到文件末尾
常用案例
root@DESKTOP-KV8R5US:/# ls -l > a.txt
root@DESKTOP-KV8R5US:/# ls -l >> a.txt
3.18 ln
基本用法
Linux ln命令是一個(gè)非常重要命令,它的功能是為某一個(gè)文件在另外一個(gè)位置建立一個(gè)同步的鏈接曹质。
當(dāng)我們需要在不同的目錄婴噩,用到相同的文件時(shí)擎场,我們不需要在每一個(gè)需要的目錄下都放一個(gè)必須相同的文件,我們只要在某個(gè)固定的目錄几莽,放上該文件迅办,然后在 其它的目錄下用ln命令鏈接(link)它就可以,不必重復(fù)的占用磁盤空間章蚣。
Linux文件系統(tǒng)中站欺,有所謂的鏈接(link),我們可以將其視為檔案的別名纤垂,而鏈接又可分為兩種 : 硬鏈接(hard link)與軟鏈接(symbolic link)矾策,硬鏈接的意思是一個(gè)檔案可以有多個(gè)名稱,而軟鏈接的方式則是產(chǎn)生一個(gè)特殊的檔案峭沦,該檔案的內(nèi)容是指向另一個(gè)檔案的位置蝴韭。硬鏈接是存在同一個(gè)文件系統(tǒng)中,而軟鏈接卻可以跨越不同的文件系統(tǒng)熙侍。
不論是硬鏈接或軟鏈接都不會(huì)將原本的檔案復(fù)制一份榄鉴,只會(huì)占用非常少量的磁碟空間。
軟鏈接蛉抓,以路徑的形式存在汗销。類似于Windows操作系統(tǒng)中的快捷方式
軟鏈接可以 跨文件系統(tǒng) 囚灼,硬鏈接不可以
軟鏈接可以對(duì)一個(gè)不存在的文件名進(jìn)行鏈接
軟鏈接可以對(duì)目錄進(jìn)行鏈接
硬鏈接,以文件副本的形式存在。但不占用實(shí)際空間颤殴。
不允許給目錄創(chuàng)建硬鏈接
硬鏈接只有在同一個(gè)文件系統(tǒng)中才能創(chuàng)建
ln [options] [source/dir] [dest/dir]
- -s 軟鏈接(符號(hào)鏈接)
- -b 刪除,覆蓋以前建立的鏈接
- -d 允許超級(jí)用戶制作目錄的硬鏈接
- -f 強(qiáng)制執(zhí)行
- -i 交互模式琅捏,文件存在則提示用戶是否覆蓋
- -n 把符號(hào)鏈接視為一般目錄
- -v 顯示詳細(xì)的處理過程
常用實(shí)例
給hadoop目錄創(chuàng)建軟鏈接/ln/hadoop逢渔,如果hadoop丟失,/ln/hadoop將失效:
ln -s hadoop /ln/hadoop
cd不加參數(shù)進(jìn)入是軟鏈接的地址
cd hadoop
cd加參數(shù)進(jìn)入是實(shí)際的物理地址
cd -P hadoop
3.19 history
基本用法
顯示所操作歷史記錄列表飞蹂。
history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
常用案例
history
** **
05
文件權(quán)限類
4.1 文件屬性
Linux系統(tǒng)是一種典型的多用戶系統(tǒng)几苍,不同的用戶處于不同的地位,擁有不同的權(quán)限陈哑。為了保護(hù)系統(tǒng)的安全性妻坝,Linux系統(tǒng)對(duì)不同的用戶訪問同一文件(包括目錄文件)的權(quán)限做了不同的規(guī)定。在Linux中我們可以使用ll或者ls –l命令來顯示一個(gè)文件的屬性以及文件所屬的用戶和組惊窖。
文件類型 | 屬主權(quán)限 | 屬組權(quán)限 | 其他用戶權(quán)限 |
---|---|---|---|
0 | 1 2 3 | 4 5 6 | 7 8 9 |
d | R w x | R - x | R - x |
目錄文件 | 讀 寫 執(zhí)行 | 讀 寫 執(zhí)行 | 讀 寫 執(zhí)行 |
0首位表示類型
在Linux中第一個(gè)字符代表這個(gè)文件是目錄刽宪、文件或鏈接文件等等
- - 代表文件
- d 代表目錄
- c 字符流,裝置文件里面的串行端口設(shè)備界酒,例如鍵盤圣拄、鼠標(biāo)(一次性讀取裝置)
- s socket
- p 管道
- l 鏈接文檔(link file);
- b 設(shè)備文件毁欣,裝置文件里面的可供儲(chǔ)存的接口設(shè)備(可隨機(jī)存取裝置)
第1-3位確定屬主(該文件的所有者)擁有該文件的權(quán)限庇谆。---User
第4-6位確定屬組(所有者的同組用戶)擁有該文件的權(quán)限赁遗,---Group
第7-9位確定其他用戶擁有該文件的權(quán)限 ---Other
rxw作用文件和目錄的不同解釋
作用到文件:
- [ r ]代表可讀(read): 可以讀取,查看
- [ w ]代表可寫(write): 可以修改族铆,但是不代表可以刪除該文件,刪除一個(gè)文件的前提條件是對(duì)該文件所在的目錄有寫權(quán)限岩四,才能刪除該文件.
- [ x ]代表可執(zhí)行(execute):可以被系統(tǒng)執(zhí)行
作用到目錄:
- [ r ]代表可讀(read): 可以讀取,ls查看目錄內(nèi)容
- [ w ]代表可寫(write): 可以修改哥攘,目錄內(nèi)創(chuàng)建+刪除+重命名目錄
- [ x ]代表可執(zhí)行(execute):可以進(jìn)入該目錄
4.2 chmod改變權(quán)限
基本用法
文件類型 | 屬主權(quán)限 u | 屬組權(quán)限 g | 其他用戶權(quán)限 o |
---|---|---|---|
0 | 1 2 3 | 4 5 6 | 7 8 9 |
d | R w x | R - x | R - x |
目錄文件 | 讀 寫 執(zhí)行 | 讀 寫 執(zhí)行 | 讀 寫 執(zhí)行 |
u:所有者 g:所有組 o:其他人 a:所有人(u剖煌、g、o的總和)
chmod [{ugoa}{+-=}{rwx}] [文件或目錄] [mode=421 ] [文件或目錄]
chmod [mode=421 ] [文件或目錄]
功能描述
改變文件或者目錄權(quán)限
文件: r-查看逝淹;w-修改耕姊;x-執(zhí)行文件
目錄: r-列出目錄內(nèi)容;w-在目錄中創(chuàng)建和刪除栅葡;x-進(jìn)入目錄
刪除一個(gè)文件的前提條件:該文件所在的目錄有寫權(quán)限茉兰,你才能刪除該文件。
4.3 chown改變所有者
基本語法
chown [最終用戶] [文件或目錄] (功能描述:改變文件或者目錄的所有者)
- -R 遞歸操作
4.4 chgrp改變所屬組
基本語法
chgrp [最終用戶組] [文件或目錄] (功能描述:改變文件或者目錄的所屬組)
06
時(shí)間日期類
5.1 date顯示當(dāng)前時(shí)間
data 顯示當(dāng)前時(shí)間
Tue Jun 16 20:03:43 CST 2020
date +%Y 顯示當(dāng)前年份 (Y是4位的年/y是2位的年)
2020
date +%m 顯示當(dāng)前月份
06
date +%Y%m%d date +%Y-%m-%d date +%Y/%m/%d 顯示當(dāng)前年月日各種格式
20200616 2020-06-16 2020/06/16
date "+%Y-%m-%d %H:%M:%S" 顯示年月日時(shí)分秒
2020-06-16 20:10:08
5.2 date 顯示非當(dāng)前時(shí)間
date -d yesterday +%Y%m%d 或 date -d '1 days ago' 顯示昨天當(dāng)下時(shí)間
20200615 或 Tue Jun 15 20:12:55 CST 2020
date -d next-day +%Y%m%d 或 date -d 'next monday' 顯示明天當(dāng)下時(shí)間
20200617 或 Tue Jun 17 20:15:15 CST 2020
5.3 date 設(shè)置系統(tǒng)時(shí)間
date -s 字符串時(shí)間
date -s "xxxx-xx-xx xx:xx:xx"
在設(shè)置完時(shí)間之后我們可以將其寫入到BIOS欣簇,避免重啟失效
hwclock -w 強(qiáng)制把系統(tǒng)時(shí)間寫入CMOS
在計(jì)算機(jī)領(lǐng)域规脸,CMOS常指保存計(jì)算機(jī)基本啟動(dòng)信息(如日期、時(shí)間熊咽、啟動(dòng)設(shè)置等)的芯片莫鸭。有時(shí)人們會(huì)把CMOS和BIOS混稱,其實(shí)CMOS是主板上的一塊可讀寫的并行或串行FLASH芯片横殴,是用來保存BIOS的硬件配置和用戶對(duì)某些參數(shù)的設(shè)定被因。
5.4 cal 查看日歷
cal 顯示本月日歷
June 2020
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
cal 2000 顯示某年(2000)日歷
2000
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 1 2 3 4
2 3 4 5 6 7 8 6 7 8 9 10 11 12 5 6 7 8 9 10 11
9 10 11 12 13 14 15 13 14 15 16 17 18 19 12 13 14 15 16 17 18
16 17 18 19 20 21 22 20 21 22 23 24 25 26 19 20 21 22 23 24 25
23 24 25 26 27 28 29 27 28 29 26 27 28 29 30 31
30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 6 1 2 3
2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 1 2
2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9
9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16
16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23
23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30
30 31
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1 2
8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16
22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23
29 30 31 26 27 28 29 30 24 25 26 27 28 29 30
31
cal -3 顯示系統(tǒng)前一個(gè)月,當(dāng)前月衫仑,下一個(gè)月的日歷
May 2020 June 2020 July 2020
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 1 2 3 4 5 6 1 2 3 4
3 4 5 6 7 8 9 7 8 9 10 11 12 13 5 6 7 8 9 10 11
10 11 12 13 14 15 16 14 15 16 17 18 19 20 12 13 14 15 16 17 18
17 18 19 20 21 22 23 21 22 23 24 25 26 27 19 20 21 22 23 24 25
24 25 26 27 28 29 30 28 29 30 26 27 28 29 30 31
31
*01*
07
搜索查找類
6.1 find
基本語法
find 查找文件或者目錄
find指令將從指定目錄向下遞歸地遍歷其各個(gè)子目錄梨与,將滿足條件的文件顯示在終端。
find [搜索范圍] [匹配條件]
選項(xiàng) | 功能 |
---|---|
-name<查詢方式> | 按照指定的文件名查找模式查找文件 |
-user<用戶名> | 查找屬于指定用戶名所有文件 |
常用實(shí)例
按文件名:根據(jù)名稱查找/opt目錄下的filename.txt文件文狱。
find /opt/ -name filename.txt
按擁有者:查找/opt目錄下粥鞋,用戶名稱為userbdc的文件。
find /opt/ -user userbdc
按文件大腥绱:在/home目錄下查找大于200m的文件(+n 大于 -n小于 n等于)陷虎。
find /home –size +204800
6.2 grep
基本語法
grep 在文件內(nèi)搜索字符串匹配的行并輸出
管道符,“|”杠袱,表示將前一個(gè)命令的處理結(jié)果輸出傳遞給后面的命令處理
grep+參數(shù)+查找內(nèi)容+源文件
- -c:只輸出匹配行的計(jì)數(shù)。
- -I:不區(qū)分大小寫(只適用于單字符)窝稿。
- -h(huán):查詢多文件時(shí)不顯示文件名楣富。
- -l:查詢多文件時(shí)只輸出包含匹配字符的文件名。
- -n:顯示匹配行及行號(hào)伴榔。
- -s:不顯示不存在或無匹配文本的錯(cuò)誤信息纹蝴。
- -v:顯示不包含匹配文本的所有行庄萎。
6.3 which
基本用法
文件搜索命令
搜索命令所在目錄及別名信息
which + 命令
08
進(jìn)程線程類
進(jìn)程是正在執(zhí)行的一個(gè)程序或命令,每一個(gè)進(jìn)程都是一個(gè)運(yùn)行的實(shí)體塘安,都有自己的地址空間糠涛,并占用一定的系統(tǒng)資源。
7.1 ps
基本語法
ps 即 process status 進(jìn)程狀態(tài)縮寫
查看系統(tǒng)中所有進(jìn)程
ps –aux|grep xxx
查看父子進(jìn)程之間的關(guān)系
ps -ef|grep xxx
- -a 選擇所有進(jìn)程
- -u 顯示所有用戶的所有進(jìn)程
- -x 顯示沒有終端的進(jìn)程
特點(diǎn)
如果想查看進(jìn)程的CPU****占用率和內(nèi)存占用率兼犯,可以使用aux;
如果想查看進(jìn)程的父進(jìn)程****ID可以使用ef;
常用實(shí)例
ps –aux
USER:該進(jìn)程是由哪個(gè)用戶產(chǎn)生的
PID:進(jìn)程的ID號(hào)
%CPU:該進(jìn)程占用CPU資源的百分比忍捡,占用越高,進(jìn)程越耗費(fèi)資源切黔;
%MEM:該進(jìn)程占用物理內(nèi)存的百分比砸脊,占用越高,進(jìn)程越耗費(fèi)資源纬霞;
VSZ:該進(jìn)程占用虛擬內(nèi)存的大小凌埂,單位KB;
RSS:該進(jìn)程占用實(shí)際物理內(nèi)存的大小诗芜,單位KB瞳抓;
TTY:該進(jìn)程是在哪個(gè)終端中運(yùn)行的。其中tty1-tty7代表本地控制臺(tái)終端伏恐,tty1-tty6是本地的字符界面終端挨下,tty7是圖形終端。pts/0-255代表虛擬終端脐湾。
STAT:進(jìn)程狀態(tài)臭笆。常見的狀態(tài)有:R:運(yùn)行、S:睡眠秤掌、T:停止?fàn)顟B(tài)愁铺、s:包含子進(jìn)程、+:位于后臺(tái)
START:該進(jìn)程的啟動(dòng)時(shí)間
TIME:該進(jìn)程占用CPU的運(yùn)算時(shí)間闻鉴,注意不是系統(tǒng)時(shí)間
COMMAND:產(chǎn)生此進(jìn)程的命令名
ps -ef
UID:用戶ID
PID:進(jìn)程ID
PPID:父進(jìn)程ID
C:CPU用于計(jì)算執(zhí)行優(yōu)先級(jí)的因子茵乱。數(shù)值越大,表明進(jìn)程是CPU密集型運(yùn)算孟岛,執(zhí)行優(yōu)先級(jí)會(huì)降低瓶竭;數(shù)值越小,表明進(jìn)程是I/O密集型運(yùn)算渠羞,執(zhí)行優(yōu)先級(jí)會(huì)提高
STIME:進(jìn)程啟動(dòng)的時(shí)間
TTY:完整的終端名稱
TIME:CPU時(shí)間
CMD:?jiǎn)?dòng)進(jìn)程所用的命令和參數(shù)
7.2 top
基本語法
查看系統(tǒng)基本狀態(tài)
top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
- -d 秒數(shù):指定top命令每隔幾秒更新斤贰。默認(rèn)是3秒在top命令的交互模式當(dāng)中可以執(zhí)行的命令:
- -i:使top不顯示任何閑置或者僵死進(jìn)程。
- -p:通過指定監(jiān)控進(jìn)程ID來僅僅監(jiān)控某個(gè)進(jìn)程的狀態(tài)次询。
- -s :使top命令在安全模式中運(yùn)行荧恍。這將去除交互命令所帶來的潛在危險(xiǎn)。
操作選項(xiàng)
- P:以CPU使用率排序,默認(rèn)就是此項(xiàng)
- M:以內(nèi)存的使用率排序
- N:以PID排序
- q:退出top
查詢結(jié)果字段解釋
第一行信息為任務(wù)隊(duì)列信息
內(nèi)容 | 說明 |
---|---|
12:26:46 | 系統(tǒng)當(dāng)前時(shí)間 |
up 1 day, 13:32 | 系統(tǒng)的運(yùn)行時(shí)間送巡,本機(jī)已經(jīng)運(yùn)行1天 13小時(shí)32分鐘 |
2 users | 當(dāng)前登錄了兩個(gè)用戶 |
load average: 0.00, 0.00, 0.00 | 系統(tǒng)在之前1分鐘摹菠,5分鐘骗爆,15分鐘的平均負(fù)載次氨。一般認(rèn)為小于1時(shí),負(fù)載較小摘投。如果大于1煮寡,系統(tǒng)已經(jīng)超出負(fù)荷。 |
第二行為進(jìn)程信息
Tasks: 95 total | 系統(tǒng)中的進(jìn)程總數(shù) |
---|---|
1 running | 正在運(yùn)行的進(jìn)程數(shù) |
94 sleeping | 睡眠的進(jìn)程 |
0 stopped | 正在停止的進(jìn)程 |
0 zombie | 僵尸進(jìn)程谷朝。如果不是0洲押,需要手工檢 查僵尸進(jìn)程 |
第三行為CPU信息
Cpu(s): 0.1%us | 用戶模式占用的CPU百分比 |
---|---|
0.1%sy | 系統(tǒng)模式占用的CPU百分比 |
0.0%ni | 改變過優(yōu)先級(jí)的用戶進(jìn)程占用的CPU百分比 |
99.7%id | 空閑CPU的CPU百分比 |
0.1%wa | 等待輸入/輸出的進(jìn)程的占用CPU百分比 |
0.0%hi | 硬中斷請(qǐng)求服務(wù)占用的CPU百分比 |
0.1%si | 軟中斷請(qǐng)求服務(wù)占用的CPU百分比 |
0.0%st | st(Steal time)虛擬時(shí)間百分比。就是當(dāng)有虛擬機(jī)時(shí)圆凰,虛擬CPU等待實(shí)際CPU的時(shí)間百分比杈帐。 |
第四行為物理內(nèi)存信息
Mem: 625344k total | 物理內(nèi)存的總量,單位KB |
---|---|
571504k used | 已經(jīng)使用的物理內(nèi)存數(shù)量 |
53840k free | 空閑的物理內(nèi)存數(shù)量专钉,我們使用的是虛擬機(jī)挑童,總共只分配了628MB內(nèi)存,所以只有53MB的空閑內(nèi)存了 |
65800k buffers | 作為緩沖的內(nèi)存數(shù)量 |
第五行為交換分區(qū)(swap)信息
Swap: 524280k total | 交換分區(qū)(虛擬內(nèi)存)的總大小 |
---|---|
0k used | 已經(jīng)使用的交互分區(qū)的大小 |
524280k free | 空閑交換分區(qū)的大小 |
409280k cached | 作為緩存的交互分區(qū)的大小 |
7.3 pstree
基本語法
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
- -p 顯示進(jìn)程的PID
- -u 顯示進(jìn)程的所屬用戶
常用實(shí)例
pstree -u
pstree -p
7.4 kill
基本用法
終止進(jìn)程
強(qiáng)迫進(jìn)程立即停止執(zhí)行
kill -9 pid進(jìn)程號(hào)
常用案例
根據(jù)進(jìn)程號(hào)
kill -9 xxxxx
根據(jù)進(jìn)程名稱
killall firefox
7.5 netstat
基本語法
查看該進(jìn)程網(wǎng)絡(luò)信息&查看端口號(hào)占用情況
netstat –anp|grep 端口號(hào)
(功能描述:此命令用來顯示整個(gè)系統(tǒng)目前的網(wǎng)絡(luò)情況跃须。例如目前的連接站叼、數(shù)據(jù)包傳遞數(shù)據(jù)、或是路由表內(nèi)容)
netstat -nlp | grep 端口號(hào)
(功能描述:查看網(wǎng)絡(luò)端口號(hào)占用情況)
- -an 按一定順序排列輸出
- -p 表示顯示哪個(gè)進(jìn)程在調(diào)用
- nltp 查看tcp協(xié)議進(jìn)程端口號(hào)
常用實(shí)例
netstat -anp | grep 50070
09
打包壓縮類
8.1 gzip/gunzip
基本語法
壓縮文件菇民,只能將文件壓縮為*.gz文件
gzip file
解壓縮文件命令
gunzip file.zip
特點(diǎn)
只能壓縮文件不能壓縮目錄
不保留原來的文件
8.2 zip/unzip
基本語法
zip + 參數(shù) + XXX.zip + 將要壓縮的文件或目錄
- -r 壓縮目錄
特點(diǎn)
- 文件和目錄皆可壓縮
- window/linux通用且可以壓縮目錄且保留源文件
8.3 tar
基本語法
tar + 參數(shù) + XXX.tar.gz + 將要打包進(jìn)去的內(nèi)容
- -c 產(chǎn)生.tar打包文件
- -v 顯示詳細(xì)信息
- -f 指定壓縮后的文件名
- -z 打包同時(shí)壓縮
- -x 解包.tar文件
常用實(shí)例
解壓
tar -zxvf test.tar.gz –C /dir
壓縮
tar -zcvf test
10
軟件包類
9.1 rpm
概述
RPM(RedHat Package Manager)尽楔,Rethat軟件包管理工具,類似windows里面的setup.exe是Linux這系列操作系統(tǒng)里面的打包安裝工具第练,它雖然是RedHat的標(biāo)志阔馋,但理念是通用的。
RPM包的名稱格式
-
Apache-1.3.23-11.i386.rpm
-
“apache” 軟件名稱
-
“1.3.23-11”軟件的版本號(hào)娇掏,主版本和此版本
-
“i386”是軟件所運(yùn)行的硬件平臺(tái)
-
“rpm”文件擴(kuò)展名呕寝,代表RPM包
查詢命令
查詢所安裝的所有rpm軟件包
rpm –qa
由于軟件包比較多,一般都會(huì)采取過濾
rpm –qa | grep rpm軟件包
安裝命令
rpm –ivh RPM包全名
-
-i=install婴梧,安裝
-
-v=verbose下梢,顯示詳細(xì)信息
-
-h=hash,進(jìn)度條
-
--nodeps塞蹭,不檢測(cè)依賴進(jìn)度
卸載命令
一般常規(guī)卸載
rpm -e RPM軟件包
如果該RPM包的安裝依賴其它包孽江,即使其它包沒裝,也強(qiáng)迫安裝浮还。
rpm -e --nodeps rpm軟件包
9.2 yum
概述
在Linux上使用源碼的方式安裝軟件非常麻煩竟坛,使用yum可以簡(jiǎn)化安裝的過程
基本語法
yum [options] [command] [package ...]
選項(xiàng) | 功能 |
---|---|
-y | 對(duì)所有提問都回答“yes” |
參數(shù) | 功能 |
---|---|
install | 安裝rpm軟件包 |
update | 更新rpm軟件包 |
check-update | 檢查是否有可用的更新rpm軟件包 |
remove | 刪除指定的rpm軟件包 |
list | 顯示軟件包信息 |
clean | 清理yum過期的緩存 |
deplist | 顯示yum軟件包的所有依賴關(guān)系 |
常用實(shí)例
安裝指定軟件并確認(rèn)安裝
yum install -y <package_name>
刪除指定軟件并確認(rèn)刪除
yum remove -y <package_name>
列出所有可安裝的軟件清單命令
yum list
列出一個(gè)包所有依賴的包
yum deplist httpd
列出所有可更新的軟件清單命令
yum check-update
更新所有軟件命令
yum update
僅更新指定的軟件命令
yum update <package_name>
查找軟件包 命令
yum search <keyword>
清除緩存目錄下的軟件包及舊的headers
yum clean
11
正確使用一些快捷鍵可以讓你更高效的完成任務(wù)。
- ctrl + c:停止進(jìn)程
- ctrl+l:清屏
- ctrl + q:退出
- ctrl +alt:linux和Windows之間切換
- 上下鍵:查找執(zhí)行過的命令
- tab鍵:自動(dòng)補(bǔ)全