1困檩、Linux操作系統(tǒng)分類
RHEL ( Redhat enterprise Linux) :紅帽企業(yè)版Linux
CentOS :社區(qū)企業(yè)版Linux ,屬于紅帽公司
Fedora :紅帽公司發(fā)布的桌面版系統(tǒng)套件,基于rhel進行研發(fā)
openSUSE:源自德國的一款Linux
Gentoo:可以自己定義
Debain:服務(wù)器版Linux
ubuntu :桌面版Linux西饵,基于Debain進行研發(fā)
2、Linux安裝軟件包的幾種方式
最早:源碼編譯? 榨呆;
接著出現(xiàn)了:rpm(紅帽軟件包管理器)?
rpm:降低軟件的安裝難度罗标,通過將安裝規(guī)則與源代碼打包到一起,從而降低我們的安裝難度 积蜻;
Yum:通過將大量的常用rpm軟件存放在一起闯割,解決軟件包之間的依賴關(guān)系,進一步來降低軟件的安裝難度竿拆。
3宙拉、Linux命令
1)bash\shell 命令構(gòu)成如下:
命令? ? ? ? ? 參數(shù)? ? ? ? ? ? 對象
ls? ? ? ? ? ? ? ? ?-l? ? ? ? ? ? ? ?/opt
2)參數(shù)分類:
短格式:-字母 ??-l ??-s ???-r ……
長格式:--單詞 ??--all ???--list ???--help ???--sort ??……
短格式參數(shù)可以合并:-zxfv? ? -an……
長格式參數(shù)不能合并,只能分開寫
長格式參數(shù)和短格式參數(shù)也不能合并使用
參數(shù)與參數(shù)之間丙笋,參數(shù)與命令之間谢澈,參數(shù)與對象之間均以空格作為間隔
4煌贴、Linux新手必須掌握的命令
第1個命令:man
第2個命令:echo 將信息輸出到屏幕
第3個命令:date ?查看日期
# ?date ?“+%Y-%m-%d ?%H:%M:%S”? ? ? ? ?#以年月日-時分秒的格式顯示時間
第4個命令:reboot ?
第5個命令:poweroff ?????關(guān)機
第6個命令:wget? ? ? ? ? ?下載
第7個命令: ps ?aux ?????#查看系統(tǒng)進程信息
ps? aux 命令的五種進程狀態(tài):
R:正在為用戶提供服務(wù)
S:等待為用戶服務(wù)
D:不響應(yīng)系統(tǒng)或在為用戶服務(wù)
Z:不受系統(tǒng)控制,沒有為用戶提供進程
T:停止為用戶提供服務(wù)
第8個命令:top????????動態(tài)查看進程信息
pidof??sshd????????#查看某個進程的id號
uptime ???????????#查看系統(tǒng)負載
第9個命令:last? ? ? ? ? ? ?目前與過去登錄系統(tǒng)的用戶的相關(guān)信息
第10個命令:who????????????顯示目前登錄系統(tǒng)的用戶信息
第11個命令:history ????????查看命令的執(zhí)行記錄
锥忿!+命令執(zhí)行序號(該序號去history里邊查看)? ? ? ? ?#重復(fù)執(zhí)行該命令
第11個命令:cd
cd ~ : 回到自己的家目錄
cd - : 回到家目錄
第12個命令:ls
ls -a :查看全部文件(包括隱藏文件)
ls : 查看全部非隱藏文件
ls -al : 查看全部文件的詳細信息
第13個命令:cat
cat 文件名 :查看文件
第14個命令:more
more 文件名:查看文件
第15個命令:head
head? -n? 2? /etc/sysconfig/network-scripts/ifcfg-ens33 ???#查看網(wǎng)卡配置文件的前兩行
第16個命令:tail
tail? -n? 2? /etc/sysconfig/network-scripts/ifcfg-ens33 ???#查看網(wǎng)卡配置文件的后兩行
tail? -f? /var/log/messages ????#實時查看系統(tǒng)日志文件的最新內(nèi)容
第17個命令:|? ? ? ? ? ? ?#管道符
管道符也是用來連接多條命令的牛郑,如"命令1丨命令2"。不過和多命令順序執(zhí)行不同的是敬鬓,用管道符連接的命令淹朋,命令 1 的正確輸出作為命令 2 的操作對象。這里需要注意钉答,命令 1 必須有正確輸出础芍,而命令 2 必須可以處理命令 1 的輸出結(jié)果;而且命令 2 只能處理命令 1 的正確輸出数尿,而不能處理錯誤輸出仑性。
[root@localhost ~]# netstat -an | grep "ESTABLISHED"
#查詢一下本地所有網(wǎng)絡(luò)連接,提取包含 ESTABLISHED(已建立連接)的行
#就可以知道我們的服務(wù)器上有多少已經(jīng)成功連接的網(wǎng)絡(luò)連接
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc-l
#如果想知道具體的網(wǎng)絡(luò)連接數(shù)量右蹦,就可以再使用wc命令統(tǒng)計行數(shù)
# echo? "123456"? ?|? ? passwd? ? ?--stdin? ? ?root? ? ? ? ? #修改root密碼
[root@shell ~]#
[root@shell ~]# cat? sed.txt? |? ?wc -l? ? ? ? ? #統(tǒng)計sed.txt有幾行內(nèi)容
4
[root@shell ~]#
第18個命令:wc? ? ? ? ?#統(tǒng)計文件行數(shù)
?wc? -l? /etc/sysconfig/network-scripts/ifcfg-ens33 ???#統(tǒng)計網(wǎng)卡配置文件有幾行
第19個命令:stat? ? ? ? ? ? ? ? #顯示文件或文件系統(tǒng)的詳細信息
stat命令主要用于顯示文件或文件系統(tǒng)的詳細信息诊杆,stat命令的輸出信息比ls命令的輸出信息要更詳細
Linux下的三個時間:?1. Access Time:簡寫為atime,表示文件的訪問時間嫩实。當文件內(nèi)容被訪問時刽辙,更新這個時間?2. Modify Time:簡寫為mtime窥岩,表示文件內(nèi)容的修改時間甲献,當文件的數(shù)據(jù)內(nèi)容被修改時,更新這個時間颂翼。?3. Change Time:簡寫為ctime晃洒,表示文件的狀態(tài)時間,當文件的狀態(tài)被修改時朦乏,更新這個時間球及,例如文件的鏈接數(shù),大小呻疹,權(quán)限吃引,Blocks數(shù)。
第20個命令:cut
有時我們經(jīng)常會遇到這樣一些問題:有一頁電話號碼薄刽锤,上面按順序規(guī)則地寫著人名镊尺、家庭住址、電話并思、備注等庐氮,此時我們只想取出所有人的名字和其對應(yīng)的電話號碼,你有幾種方法可以實現(xiàn)呢宋彼?
確實這種縱向定位的方式用常規(guī)辦法難以實現(xiàn)弄砍,這時仙畦,cut就可以大顯身手了
cut 命令可以從一個文本文件或者文本流中提取文本中的列
# cut? -d? :? -f? -1? /etc/passwd ???????????#顯示第一列用戶名信息
第21個命令:diff? ? ? ? ? ? ? ?#對比兩個文件的差異
diff分析兩個文件,并輸出兩個文件的不同的行音婶。
# diff? ?1.txt? ?2.txt
# diff? ?-c ?1.txt? ?2.txt? ? ? ? ? ? ? ? ? 比較兩個文件的不同
第22個命令:touch? ? ? ? ? ? ?創(chuàng)建文本
第23個命令:mkdir ?????????創(chuàng)建文件或目錄
# mkdir? ?-p? ?1/2/3???????????????#遞歸創(chuàng)建文件或目錄
第24個命令:cp? ? ? ? ? ? ?#復(fù)制文件或目錄
cp? ?源文件名? ? 目標文件名
cp? ?-r ??原始目錄? ? 目標目錄
第25個命令:mv? ? ? ? 移動或者重命名
第26個命令:rm ????????刪除文件或目錄
rm? ? -f? ? ?文件 ?????????????#強制刪除該文件
rm? ? -rf? ? ?目錄 ????????????#強制刪除目錄
第27個命令:dd????????用指定大小的塊拷貝一個文件慨畸,并在拷貝的同時進行指定的轉(zhuǎn)換。
dd是一個用于實現(xiàn)文件底層復(fù)制的命令
dd? ?if=/PATH/FROM/SRC? ?of=/PATH/TO/DEST
dd應(yīng)用實例:
1.將本地的/dev/hdb整盤備份到/dev/hdd
?dd? ?if=/dev/hdb? ?of=/dev/hdd
2.將/dev/hdb全盤數(shù)據(jù)備份到指定路徑的image文件
?dd? ?if=/dev/hdb? ?of=/root/image
3.將備份文件恢復(fù)到指定盤
?dd? ?if=/root/image? ?of=/dev/hdb
詳情參見博文:https://www.cnblogs.com/fantasyxo/p/10519662.html
第28個命令:tar? ? ? ? ? ? ?#壓縮和打包的命令
1)壓縮
tar ?czvf ?壓縮包名稱.tar.gz ??打包的目錄名稱
其中 z 表示gzip
tar ?cjvf ?壓縮包名稱.tar.bz2 ??打包的目錄名稱
其中 j 表示bzip2
[root@shell ~]# tar? ?czvf? ? etc.tar.gz? ? /etc? ? ? ? ? ? ? ?#壓縮文件
[root@shell ~]# ls? ?etc.tar.gz
etc.tar.gz
[root@shell ~]#
2)解壓
tar ?xzvf ?壓縮包名稱.tar.gz
[root@shell ~]# tar? ?xzvf? ? etc.tar.gz ????????????#解壓文件
第29個命令:unzip? ? ? ? ? ? ?#對以.zip結(jié)尾的壓縮文件進行解壓
unzip? ? ? xxx.zip? ? ? ? ? ? ?#解壓該文件
第30個命令:zip? ? ? ? ? ? ? ? ? ? ?#對某個文件進行壓縮
zip 是個使用廣泛的壓縮程序衣式,壓縮后的文件后綴名為?.zip
1. 把/home目錄下面的mydata目錄壓縮為mydata.zip
zip? ?-r? ?mydata.zip? ? mydata #壓縮mydata目錄
2. 把/home目錄下面的abc文件夾和123.txt壓縮成為abc123.zip
zip? -r? ?abc123.zip? ? abc 123.txt
第31個命令:grep 命令
grep? ?關(guān)鍵詞? ? 文件名稱
grep 用來提取某個關(guān)鍵詞的行
# grep disabled /etc/selinux/config ????#搜索關(guān)鍵詞disabled
# grep -n disabled /etc/selinux/config ??#搜索并顯示關(guān)鍵詞存在的行
# grep -v disabled /etc/selinux/config ???#搜索所有不包含該關(guān)鍵詞的行
第32個命令:>? ? 重定向先口,覆蓋清空原來的內(nèi)容
輸入重定向:<
輸出重定向:??>
[root@shell ~]# >? 1.txt? ? ? ? ?#覆蓋原來的文本內(nèi)容
[root@shell ~]# ls? ?-l? ?/etc/passwd? ?>? ?1.txt
[root@shell ~]# cat? 1.txt
-rw-r--r-- 1 root root 1027 Jul 13 10:55 /etc/passwd
[root@shell ~]#
第33個命令:>>? ? ? ? ? ? 追加,寫入文本最末尾
[root@shell ~]# ls? ? ?-l? ? ? /etc/selinux/config? ? ? >>? ? ?1.txt? ? ? ? ? ? ? ? ?#追加用法
[root@shell ~]# cat? ? 1.txt
-rw-r--r--. 1 root root 544 Jun 29 08:40 /etc/selinux/config
[root@shell ~]#
第34個命令:*? ? ? ? ? ??通配符
[root@shell ~]# ls? ? /dev/sd*? ? ? ? ? ? #模糊匹配
/dev/sda ?/dev/sda1 ?/dev/sda2 ?/dev/sda3
[root@shell ~]#
第35個命令: Linux常用轉(zhuǎn)義字符
反斜杠(\): 使反斜杠后面的一個變量變?yōu)閱渭兊淖址?瞳收;
單引號(' '):轉(zhuǎn)義其中所有的變量為單純的字符串 碉京;
雙引號(" "):保留其中的變量屬性,不進行轉(zhuǎn)義處理 螟深;
反引號(` `):把其中的命令執(zhí)行后返回結(jié)果谐宙。
先定義一個名為PRICE的變量并賦值為5,然后輸出以雙引號括起來的字符串與變量信息:
[root@root ~]# PRICE=5
[root@root ~]# echo "Price is $PRICE"
Price is?5
接下來界弧,我們希望能夠輸出“Price is $5”凡蜻,即價格是5美元的字符串內(nèi)容,但碰巧美元符號與變量提取符號合并后的$$作用是顯示當前程序的進程ID號碼垢箕,于是命令執(zhí)行后輸出的內(nèi)容并不是我們所預(yù)期的:
[root@root ~]# echo "Price is $$PRICE"
Price is 3767PRICE
要想讓第一個“$”乖乖地作為美元符號划栓,那么就需要使用反斜杠(\)來進行轉(zhuǎn)義,將這個命令提取符轉(zhuǎn)義成單純的文本条获,去除其特殊功能忠荞。
[root@root ~]# echo "Price is \$$PRICE"
Price is $5
而如果只需要某個命令的輸出值時,可以像`命令`這樣帅掘,將命令用反引號括起來委煤,達到預(yù)期的效果。例如修档,將反引號與uname -a命令結(jié)合碧绞,然后使用echo命令來查看本機的Linux版本和內(nèi)核信息:
[root@root ~]# echo `uname -a`
Linux root.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2017 x86_64 x86_64 x86_64 GNU/L
第36個命令:?alias? ? ? ? ?別名
[root@shell ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@shell ~]#
第37個命令: du? ? ? ? ? ??顯示文件或目錄所占用的磁盤空間
命令格式:
? ? ?du [option] 文件/目錄
? ? ?-h 輸出文件系統(tǒng)分區(qū)使用的情況,例如:10KB吱窝,10MB讥邻,10GB等
? ? ?-s 顯示文件或整個目錄的大小,默認單位是KB
寫法的區(qū)別:
? ? ? ?du? -sh? ?xxx? ? ? ? ? ? ? ? ? ?#顯示總目錄的大小院峡,但是不會列出目錄中的每一個文件
? ? ? ?du? ?-sh? ? xxx/*? ? ? ? ? ? ? ?#列出xxx下每個目錄和文件所占的容量
第38個命令:vi/vim? ? ? ? ? ? ? ? Linux編輯器
vi 編輯器的三種模式:
命令模式i ??a ???o ???Esc
輸入模式
末行模式
i ??a ???:編輯
o :將光標移動到下一行
yy : 復(fù)制某一行內(nèi)容
p : 粘貼內(nèi)容
dd :刪除
u :還原兴使,撤銷之前的操作
wq :保存退出
wq! :強制保存退出
q :退出
q! :退出
/ :搜索
: set nu? ? ? ? ?顯示行號
: set nonu? ? ? ? 取消顯示行號
刪除光標處以下兩行(包括光標所在的這行):2dd
第39個命令:lsb_release? ? ? ? ?顯示發(fā)行版本信息
LSB是Linux Standard Base的縮寫,?lsb_release命令?用來顯示LSB和特定版本的相關(guān)信息撕予。如果使用該命令時不帶參數(shù)鲫惶,則默認加上-v參數(shù)。
[root@shell ~]#
[root@shell ~]# lsb_release? -a? ? ? ? ? ? ?#顯示全部信息
第39個命令:lsblk? ? ? ? ??列出塊設(shè)備信息
lsblk命令?用于列出所有可用塊設(shè)備的信息实抡,而且還能顯示他們之間的依賴關(guān)系欠母,但是它不會列出RAM盤的信息欢策。塊設(shè)備有硬盤,閃存盤赏淌,cd-ROM等等踩寇。
[root@shell ~]#
[root@shell ~]# lsblk