linux基礎(chǔ)入門
- linux是一門開(kāi)源穩(wěn)定性高實(shí)用的全文本的操作系統(tǒng),一般實(shí)用于服務(wù)器琅关,我們國(guó)家大多數(shù)互聯(lián)網(wǎng)公司采用的是
Cent OS
煮岁,說(shuō)起Cent Os
那他和 紅帽(Red Hat)
公司的關(guān)聯(lián)那就大了,好了不啰嗦了下面正式開(kāi)始我們的基礎(chǔ)的講解涣易。
- linxu 基礎(chǔ)入門首先是命令画机,要對(duì)命令的了解,活學(xué)新症,活用色罚,當(dāng)然還有他的當(dāng)然和發(fā)展史等等,但是篇我們說(shuō)的是命令账劲,正所謂戳护,萬(wàn)丈高樓從低起,我們要先打好基瀑焦,才能成為高手腌且,童鞋們讓我們一起加油吧。
內(nèi)部命令
- 內(nèi)部命令那什么叫內(nèi)部命令榛瓮,內(nèi)部命令就是基于shenll 里面的命令铺董,用來(lái)執(zhí)行操作,所以我給稱他為內(nèi)部命令禀晓。
shenll
可以說(shuō)他是個(gè)翻譯精续,我們要和計(jì)算機(jī)說(shuō)話肯定需要東西來(lái)翻譯啊,我們又不是搞編程的粹懒,我們又不認(rèn)識(shí)代碼重付,這時(shí)候shell
就出來(lái)了。
shell
分很多種我們默認(rèn)用的是bash
, 可以用cat /etc/shells
來(lái)查看計(jì)算機(jī)里面的shell 種類凫乖,在可以用echo /etc/$SHELL
來(lái)查看你的系統(tǒng)用的什么shell
,當(dāng)然我們默認(rèn)用的是bash,我們當(dāng)然說(shuō)的就是bash啦确垫。
-bash
實(shí)際上是一個(gè)文件弓颈,真實(shí)存在于系統(tǒng)里面,可以用ls /bin/bash
來(lái)查看路徑删掀,他會(huì)顯示綠色翔冀,綠色表示是可以執(zhí)行文件,綠色都是可執(zhí)行的披泪,他是一個(gè)程序纤子,用ll /bin/bash
命令可以查看bash
的大小,bash
命令是我們系統(tǒng)運(yùn)行了款票,會(huì)自動(dòng)啟動(dòng)控硼,所以一開(kāi)始我們就能執(zhí)行。
- 那我們?cè)趺粗滥切┟钍莾?nèi)部命令? , 這樣的話徽职,我們用
cd
這個(gè)常用的命令來(lái)試試 象颖。 - 在命令行輸入:
type cd
,執(zhí)行命令以后他會(huì)顯示cd is a shell builtin
千萬(wàn)要注意空格哦:builtin
的意思是內(nèi)置或內(nèi)鍵的意思姆钉,這表示他輸入內(nèi)部命令说订。
-type
這個(gè)命令表示可以幫我們判斷命令的類型。 - 那外部命令是什么樣子,那我們用
ifconfig
這個(gè)命令是用來(lái)查看本機(jī)的ip 的 輸入:type ifconfig
他會(huì)顯示ifconfig is/usr/sbin/ifconfig
他顯示的是一個(gè)路徑潮瓶,那表示他不是bash
自帶的了陶冷,他已經(jīng)獨(dú)立出來(lái)了,這種就表示他是一個(gè)外部命令毯辅。 -
shell
是分好幾種類型的如:sh,bash,nologin,csh,tcsh
,等等埂伦,每種shell
內(nèi)置的內(nèi)部命令都不用,但是有些命令在里面也是相同的思恐,這表示內(nèi)部命令依賴于shell類型沾谜。` - 那系統(tǒng)種中有多少種內(nèi)部命令或多少個(gè)內(nèi)部命令,那我們可以用 help 命令 來(lái)查看胀莹,這樣他會(huì)顯示基跑,系統(tǒng)所有的內(nèi)部命令,用
enable
也可以列出所有的內(nèi)部命令描焰。 - 那怎么去禁用內(nèi)部命令媳否,可以用 :
enable -n
后面是命令 , 這樣可以禁用命令荆秦,禁用命令就是不允許他用了篱竭,但是有些命令就算禁用了,但是他也存在于外部命令步绸,存在也外部命令的意思就是他掺逼,在外部也有這個(gè)命令如 :echo
這個(gè)命令就算把他禁用了他在外部也有這個(gè)命令他一樣可以執(zhí)行。 - 那這樣就有了個(gè)優(yōu)先級(jí)之分 靡努,到底是外部命令還是內(nèi)部命令坪圾,誰(shuí)先使用晓折,那肯定是內(nèi)部命令惑朦,那為什么不是外部命令兽泄,原因很簡(jiǎn)單败玉,因?yàn)?code>bash開(kāi)機(jī)的時(shí)候已經(jīng)集成在內(nèi)存里面了勒极,而外部命令還在磁盤里面,內(nèi)存比硬盤速度快多了辰晕,那原理上是不是很合理梁肿,其實(shí)系統(tǒng)上就是這么設(shè)定的蜓陌。
- 那怎么去開(kāi)機(jī)禁用的命令 :
enable
后面接命令,其實(shí)就是把-n
去掉這就是啟用內(nèi)部命令吩蔑。 - 其實(shí)我們?cè)趺纯疵罴仁峭獠坑质莾?nèi)部命令钮热?我們可以用 :
type -a
后面接命令 可以查這個(gè)命令是否是外部又屬于內(nèi)部,我們還可以用 :type -P
選項(xiàng) 后面接命令 烛芬, 這樣可以查出命令的路徑隧期,假如什么都不顯示,這表示這個(gè)命令沒(méi)有外部命令赘娄,沒(méi)有外部命令他就不顯示路徑仆潮。 - 那怎么顯示那些命令被禁用了,我們可以用:
enable -n
選項(xiàng) 后面不接命令來(lái)查看遣臼,輸入命令以后會(huì)顯示所有被禁用的內(nèi)部命令性置,而且用 enable -n 選項(xiàng) 后面接命令 , 還可以一次禁用多個(gè)命令揍堰,當(dāng)然enable
后面接命令 還可以支持啟用多個(gè)命令鹏浅。 - 最后還告訴大家哥小秘密哦:
enable
還可以自己禁用自己哦,但是童鞋們不要擔(dān)心屏歹,因?yàn)槲覀冇玫亩际敲钚薪缑嫠灾挥兄匦麓蜷_(kāi)命令行界面就可以了隐砸,他會(huì)重新啟用bash
,我們又可以用了西采,哈哈凰萨。
外部命令
- 外部命令,我們?cè)谏厦嬗?
type
看了他是一個(gè)一個(gè)的路徑械馆,既然是路徑那就表示他是存在于磁盤里面胖眷,也就是硬盤,外部命令既然是一個(gè)一個(gè)的路徑霹崎,那我們輸入命令的時(shí)候我們好像沒(méi)輸入路徑吧珊搀,那他是怎么運(yùn)行的? 尾菇,他是怎么找到這個(gè)文件的境析,磁盤文件這么多他不可能一個(gè)一個(gè)去找吧囚枪,那他是怎么執(zhí)行的,怎么找到路徑的劳淆?链沼。
- 外部命令有什么命令來(lái)查看,我們可以用:
which
后面加命令沛鸵,可以來(lái)查看外部命令的路徑括勺,一般專用他來(lái)查看外部命令的路徑,他和type 很有相似之處曲掰,用:which -a
選項(xiàng) 他會(huì)把$PATH
里面所有的和命令相同的路徑全找出來(lái)疾捍,有時(shí)候用他會(huì)現(xiàn)實(shí)出來(lái)不是我們想要的東西,其實(shí)是別名栏妖,他的功能就是查看別名乱豆,后面我會(huì)介紹。 - 還有一個(gè)命令 :
whereis
后面接命令列出外部命令和一些文檔命令 后面在來(lái)介紹吊趾。 - 其實(shí)他是依賴于PATH變量命令:
echo $PATH
可以找到PATH
變量的路徑宛裕,他們會(huì)一個(gè)一個(gè)路徑里面找,找不到的話他們就報(bào)錯(cuò)了趾徽,注意這些路徑不在內(nèi)存里面哦续滋,但是他們執(zhí)行過(guò)后就緩存在內(nèi)存里面了 ,緩存了以后他就不需要在去硬盤找PATH變量里面找了孵奶,大家注意每個(gè)版本的PATH變量都不同哦疲酌。
系統(tǒng)別名
- 別名也就是小名吧,作用是把很長(zhǎng)的路徑給他定義一個(gè)別名以后了袁,用最短的時(shí)間來(lái)執(zhí)行朗恳。
- 那怎么定義別名,比如:
alias cdnet='cd /etc/sysconifg/network-scripts/'
這個(gè)路徑長(zhǎng)吧载绿,我以后只要輸入cdnet
就會(huì)直接切換到 :etc/sysconfig/network-scripts
:這個(gè)目錄下面這樣不是很方便嗎粥诫。 - 我們用alias 這個(gè)命令可以列出系統(tǒng)里面所有的別名,里面有我們已經(jīng)定義好的別名和系統(tǒng)自帶的別名崭庸,每個(gè)版本系統(tǒng)定義的別名都不同怀浆。
- 但是我們只樣定義的別名都只是臨時(shí)的想要永久定義別名需要去修改家目錄下面的一個(gè)文件叫:
.bashrc
這個(gè)文件去修改這樣才能修改別名,就算以后退出終端了怕享,別名一樣可以用执赡。 - 但是我們是修改文件的,所以我們這個(gè)別名不會(huì)馬上生效和臨時(shí)的別名不同函筋,需要我們用:
. .bashrc
來(lái)執(zhí)行 這樣才能馬上執(zhí)行我們修改的別名沙合。 - 我們這個(gè)別名只是修改用戶的別名哦,如果你想每個(gè)用戶都能用也稱全局別名需要修改:
/etc/.bashrc
修改這個(gè)文件才能每個(gè)用戶都能用這個(gè)別名跌帐。 - 刪除別名:
unalias
接想刪除的別名這樣就可以刪除他了首懈,但是這只是臨時(shí)刪除绊率,終端退出以后,在登錄的話別名會(huì)重新加載別名究履,想要徹底刪除滤否,需要去家目錄里面的:bashrc
里面去修改,當(dāng)前你想要?jiǎng)h除全局的別名也要去:/etc/bashrc 里面才能刪除,當(dāng)然
nalias -a `選項(xiàng)可以取消全部別名挎袜,但是只是臨時(shí)的顽聂,不要緊張肥惭。
外部命令
- 外部命令盯仪,我們?cè)谏厦嬗?
type
看了他是一個(gè)一個(gè)的路徑,既然是路徑那就表示他是存在于磁盤里面蜜葱,也就是硬盤全景,外部命令既然是一個(gè)一個(gè)的路徑,那我們輸入命令的時(shí)候我們好像沒(méi)輸入路徑吧牵囤,那他是怎么運(yùn)行的爸黄? ,他是怎么找到這個(gè)文件的揭鳞,磁盤文件這么多他不可能一個(gè)一個(gè)去找吧炕贵,那他是怎么執(zhí)行的,怎么找到路徑的野崇?称开。
- 外部命令有什么命令來(lái)查看,我們可以用:
which
后面加命令乓梨,可以來(lái)查看外部命令的路徑鳖轰,一般專用他來(lái)查看外部命令的路徑,他和type 很有相似之處扶镀,用:which -a
選項(xiàng) 他會(huì)把$PATH
里面所有的和命令相同的路徑全找出來(lái)蕴侣,有時(shí)候用他會(huì)現(xiàn)實(shí)出來(lái)不是我們想要的東西,其實(shí)是別名臭觉,他的功能就是查看別名昆雀,后面我會(huì)介紹。 - 還有一個(gè)命令 :
whereis
后面接命令列出外部命令和一些文檔命令 后面在來(lái)介紹蝠筑。 - 其實(shí)他是依賴于PATH變量命令:
echo $PATH
可以找到PATH
變量的路徑狞膘,他們會(huì)一個(gè)一個(gè)路徑里面找,找不到的話他們就報(bào)錯(cuò)了菱肖,注意這些路徑不在內(nèi)存里面哦客冈,但是他們執(zhí)行過(guò)后就緩存在內(nèi)存里面了 ,緩存了以后他就不需要在去硬盤找PATH變量里面找了稳强,大家注意每個(gè)版本的PATH變量都不同哦场仲。
Hash緩存表
- 緩存表俗稱哈希表用:
hash
命令可以查看和悦,這都是緩存到內(nèi)存里面的外部命令,輸入命令以后會(huì)有英文叫hits
的單詞 這其實(shí)就是這個(gè)命令執(zhí)行了幾次的意思渠缕,1就是這個(gè)命令執(zhí)行了一次鸽素,3就是這個(gè)命令執(zhí)行了三次,當(dāng)然hits
在單詞里面是命中的意思 亦鳞,command
這個(gè)相信大家都知道 路徑 馍忽,命令的路徑這就是已經(jīng)緩存在內(nèi)存里面的命令。
- 我們用命令
hash -l
后面不接命令 可以詳細(xì)的顯示出命令的路徑和命令本身燕差。 - 用命令
hash -p
選項(xiàng) 后面接路徑和命令本身如:hash -p /usr/bin/cd dd
這樣我們就給cd
取了別名 叫dd
一樣可以執(zhí)行 但是臨時(shí)的遭笋。 - 刪除緩存別名如:
hash -d
選項(xiàng) 后面接你要?jiǎng)h除的命令 ,這樣可以刪除緩存中的命令徒探。 - 清空所有緩存命令是:
hash -r
清除所有的緩存瓦呼。 - 還有個(gè)命令是:
hash -t
選項(xiàng)這個(gè)命令是用于顯示出別名的路徑,也叫打印緩存的路徑测暗,也就是打印出外部命令緩存到這里的路徑央串。
簡(jiǎn)單小命令
- date 查看當(dāng)前系統(tǒng)時(shí)間
- date 改時(shí)間格式MMDDHHmmYYYY.ss
- MM是月 DD是號(hào) HH小時(shí) mm分鐘 YYYY是年 ss 是秒 ,當(dāng)前改的只是內(nèi)存里的時(shí)間碗啄。
- ckock 硬件時(shí)間
- ckock -s 把硬件時(shí)間讀取到軟件
- hwckock -w 把軟件時(shí)間讀取到硬件時(shí)間
- ntpdate 同步時(shí)間 但是需要同步的服務(wù)器有同步服務(wù)
- 輸入 LANG=“zh_CH.UTF-8” 可以切換顯示中文時(shí)間
- 輸入 LANG=“en_US.UTF-8” 可以切換為英文模式時(shí)間
- UTF-8 是支持所有語(yǔ)言的
- cal 是顯示日歷 修改時(shí)間:cal-10-2018 不要加橫杠
- cal 顯示整年:cal 2018 最高9999年 缺點(diǎn)就是不能顯示農(nóng)歷质和,有一個(gè)特殊的年 09 1752年是一個(gè)故事。
- 時(shí)區(qū)我們可以在/etc/localtime里面改.CentOS 7里面專有個(gè)命令來(lái)查看時(shí)區(qū)稚字,用命令timedatectl list-timezones 列出所有時(shí)區(qū)饲宿,找到我們想要改的時(shí)區(qū),讓后我們?cè)谠O(shè)置時(shí)區(qū)尉共,用命令timedatectl set-timezone 后面接你想設(shè)置的時(shí)區(qū)褒傅,記住在timezone后面一定要加 / 斜杠或空格哦 ,這樣我們就改了時(shí)區(qū)袄友。(注意這些命令只有
CentOS 7
命令才支持哦) - nano 文本小編輯器
- halt ,poweroff 關(guān)機(jī)
- reboot 重啟 -f 強(qiáng)制重啟 -p 切斷電源
- shutdown 關(guān)機(jī)或重啟 -h 10分鐘后關(guān)機(jī) -c 取消關(guān)機(jī) 假如 :shutdown -h 后面跟時(shí)間可以定制時(shí)間關(guān)機(jī)1就是1分鐘 10就是10分鐘殿托,但是可以用-c取消關(guān)機(jī),。
- shutdown -h 還可以發(fā)消息關(guān)機(jī) 剧蚣,如:shutdown 18.16 "這里填寫消息" ; 他會(huì)提前15分鐘提醒你支竹。
echo命令 - echo 回顯的意思也稱打印|
- -n 不換行|
- e 啟用字符功能
- -a 報(bào)警 需要-e配合使用
- \b退格的功能 |
- \c 最后不加上換行符號(hào)
- \n 換行且光標(biāo)移至行首
- \r 回車,即光標(biāo)移至行首
- \t 插入 rab
- \ 插入\字符
系統(tǒng)時(shí)間
date
查看當(dāng)前系統(tǒng)時(shí)間
-
date
改時(shí)間格式MMDDHHmmYYYY.ss
-
MM
是月DD
是號(hào)HH
小時(shí)mm
分鐘YYYY
是年ss
是秒 鸠按,當(dāng)前改的只是內(nèi)存里的時(shí)間礼搁。 -
ckock
硬件時(shí)間
-ckock -s
把硬件時(shí)間讀取到軟件 -
hwckock -w
把軟件時(shí)間讀取到硬件時(shí)間 -
ntpdate
同步時(shí)間 但是需要同步的服務(wù)器有同步服務(wù) - 輸入
LANG=“zh_CH.UTF-8”
可以切換顯示中文時(shí)間 - 輸入
LANG=“en_US.UTF-8”
可以切換為英文模式時(shí)間
- UTF-8 是支持所有語(yǔ)言的
-
cal
是顯示日歷 修改時(shí)間:cal
-10-2018 不要加橫杠 -
cal
顯示整年:cal
2018 最高9999年 缺點(diǎn)就是不能顯示農(nóng)歷,有一個(gè)特殊的年 09 1752年是一個(gè)故事目尖。 - 時(shí)區(qū)我們可以在
/etc/localtime
里面改.CentOS 7
里面專有個(gè)命令來(lái)查看時(shí)區(qū)馒吴,用命令timedatectl list-timezones
列出所有時(shí)區(qū),找到我們想要改的時(shí)區(qū),讓后我們?cè)谠O(shè)置時(shí)區(qū)饮戳,用命令timedatectl set-timezone
后面接你想設(shè)置的時(shí)區(qū)豪治,記住在timezone
后面一定要加 / 斜杠或空格哦 ,這樣我們就改了時(shí)區(qū)扯罐。(注意這些命令只有CentOS 7 命令才支持哦) -
nano
文本小編輯器 -
halt ,poweroff
關(guān)機(jī) -
reboot
重啟-f
強(qiáng)制重啟-p
切斷電源 -
shutdown
關(guān)機(jī)或重啟-h
10分鐘后關(guān)機(jī)-c
取消關(guān)機(jī) 假如 :shutdown -h
后面跟時(shí)間可以定制時(shí)間關(guān)機(jī)1就是1分鐘 10就是10分鐘负拟,但是可以用-c取消關(guān)機(jī),。 -
shutdown -h
還可以發(fā)消息關(guān)機(jī) 歹河,如:shutdown
18.16 "這里填寫消息" ; 他會(huì)提前15分鐘提醒你掩浙。
echo命令
-
echo
回顯的意思也稱打印|
--n
不換行| -
-e
啟用字符功能 -
-a
報(bào)警 需要-e配合使用 -
\b
退格的功能 | -
\c
最后不加上換行符號(hào) -
\n
換行且光標(biāo)移至行首 -
\r
回車,即光標(biāo)移至行首 -
\t
插入rab
-
\\
插入\字符
使用幫助
- 創(chuàng)建
whatis
數(shù)據(jù)庫(kù)秸歧,查命令資料我們有時(shí)候會(huì)出現(xiàn)一種情況厨姚,那就是這個(gè)命令明明沒(méi)錯(cuò)但是為什么不能查,呵呵這個(gè)情況那是因?yàn)榱让#到y(tǒng)剛裝他還沒(méi)把資料數(shù)據(jù)庫(kù)裝進(jìn)去遣蚀,剛裝的系統(tǒng)要過(guò)幾天系統(tǒng)才會(huì)把資料數(shù)據(jù)庫(kù)裝進(jìn)去,所以要執(zhí)行一個(gè)命令我們自己裝數(shù)據(jù)庫(kù)這個(gè)命令就是:nakewhatis
這個(gè)命令才會(huì)把數(shù)據(jù)庫(kù)裝好纱耻。
-
whatis
這個(gè)命令會(huì)幫我們來(lái)描述命令的用途,和章節(jié)號(hào)。 - 內(nèi)部命令幫助的用法险耀,可以用
help
這個(gè)命令是專用來(lái)查內(nèi)部命令的幫助格式是:help enable
弄喘。 -
man
是用來(lái)查外部命令的,當(dāng)然他也可以來(lái)查內(nèi)部命令甩牺, 在man
里面很多資料是分章節(jié)來(lái)分號(hào)的蘑志,可以用:ls /usr/share/man
可以查看man
:第一章是用來(lái)放用戶命令,第二章是用來(lái)放系統(tǒng)調(diào)用贬派,第三章是用來(lái)放C庫(kù)調(diào)用急但,第四章是用來(lái)放設(shè)備文件以及特殊文件,第五章配置文件格式搞乏,第六章是用來(lái)放游戲波桩,第七章是用來(lái)放雜項(xiàng),第八章是用來(lái)放管理類的命令请敦,第九章是用來(lái)放linux
內(nèi)核的API
镐躲,對(duì)于我們來(lái)說(shuō)只關(guān)系第一章。 - 還有個(gè)小命令
info
也可以來(lái)查侍筛,但是用的少 - 查幫的順序是先用
type
來(lái)查看命令萤皂,屬于外部還是內(nèi)部命令,如果是外部命令匣椰,還要用shatis
來(lái)查看他的章節(jié)號(hào)裆熙,然后在用在用man
來(lái)查命令的資料,如果是內(nèi)部命令,就用help
來(lái)查他的資料入录,查幫助的時(shí)候有時(shí)候資料不是很全要活學(xué)齐媒,活用,多看幫助提深你的英語(yǔ)高度纷跛,小伙伴們一起加油吧喻括。 - 搜索快捷鍵 【n】是往下搜索【N】大寫N是網(wǎng)上搜索,也可以用/來(lái)所說(shuō)贫奠,也可以用?來(lái)搜索唬血,/斜線是默認(rèn)向下搜索,? 問(wèn)號(hào)默認(rèn)向上搜索唤崭。