linux基礎入門
- linux是一門開源穩(wěn)定性高實用的全文本的操作系統(tǒng),一般實用于服務器,我們國家大多數互聯網公司采用的是
Cent OS
,說起Cent Os
那他和 紅帽(Red Hat)
公司的關聯那就大了,好了不啰嗦了下面正式開始我們的基礎的講解。
- linxu 基礎入門首先是命令,要對命令的了解,活學,活用,當然還有他的當然和發(fā)展史等等,但是篇我們說的是命令,正所謂,萬丈高樓從低起,我們要先打好基,才能成為高手,童鞋們讓我們一起加油吧。
內部命令
- 內部命令那什么叫內部命令,內部命令就是基于shenll 里面的命令,用來執(zhí)行操作,所以我給稱他為內部命令。
shenll
可以說他是個翻譯,我們要和計算機說話肯定需要東西來翻譯啊,我們又不是搞編程的,我們又不認識代碼,這時候shell
就出來了。
shell
分很多種我們默認用的是bash
, 可以用cat /etc/shells
來查看計算機里面的shell 種類,在可以用echo /etc/$SHELL
來查看你的系統(tǒng)用的什么shell
,當然我們默認用的是bash,我們當然說的就是bash啦。
-bash
實際上是一個文件,真實存在于系統(tǒng)里面,可以用ls /bin/bash
來查看路徑,他會顯示綠色,綠色表示是可以執(zhí)行文件,綠色都是可執(zhí)行的,他是一個程序,用ll /bin/bash
命令可以查看bash
的大小,bash
命令是我們系統(tǒng)運行了,會自動啟動,所以一開始我們就能執(zhí)行。
- 那我們怎么知道那些命令是內部命令? , 這樣的話,我們用
cd
這個常用的命令來試試 。 - 在命令行輸入:
type cd
,執(zhí)行命令以后他會顯示cd is a shell builtin
千萬要注意空格哦:builtin
的意思是內置或內鍵的意思,這表示他輸入內部命令。
-type
這個命令表示可以幫我們判斷命令的類型。 - 那外部命令是什么樣子,那我們用
ifconfig
這個命令是用來查看本機的ip 的 輸入:type ifconfig
他會顯示ifconfig is/usr/sbin/ifconfig
他顯示的是一個路徑,那表示他不是bash
自帶的了,他已經獨立出來了,這種就表示他是一個外部命令。 -
shell
是分好幾種類型的如:sh,bash,nologin,csh,tcsh
,等等,每種shell
內置的內部命令都不用,但是有些命令在里面也是相同的,這表示內部命令依賴于shell類型。` - 那系統(tǒng)種中有多少種內部命令或多少個內部命令,那我們可以用 help 命令 來查看,這樣他會顯示,系統(tǒng)所有的內部命令,用
enable
也可以列出所有的內部命令。 - 那怎么去禁用內部命令,可以用 :
enable -n
后面是命令 , 這樣可以禁用命令,禁用命令就是不允許他用了,但是有些命令就算禁用了,但是他也存在于外部命令,存在也外部命令的意思就是他,在外部也有這個命令如 :echo
這個命令就算把他禁用了他在外部也有這個命令他一樣可以執(zhí)行。 - 那這樣就有了個優(yōu)先級之分 ,到底是外部命令還是內部命令,誰先使用,那肯定是內部命令,那為什么不是外部命令,原因很簡單,因為
bash
開機的時候已經集成在內存里面了,而外部命令還在磁盤里面,內存比硬盤速度快多了,那原理上是不是很合理,其實系統(tǒng)上就是這么設定的。 - 那怎么去開機禁用的命令 :
enable
后面接命令,其實就是把-n
去掉這就是啟用內部命令。 - 其實我們怎么看命令既是外部又是內部命令?我們可以用 :
type -a
后面接命令 可以查這個命令是否是外部又屬于內部,我們還可以用 :type -P
選項 后面接命令 , 這樣可以查出命令的路徑,假如什么都不顯示,這表示這個命令沒有外部命令,沒有外部命令他就不顯示路徑。 - 那怎么顯示那些命令被禁用了,我們可以用:
enable -n
選項 后面不接命令來查看,輸入命令以后會顯示所有被禁用的內部命令,而且用 enable -n 選項 后面接命令 , 還可以一次禁用多個命令,當然enable
后面接命令 還可以支持啟用多個命令。 - 最后還告訴大家哥小秘密哦:
enable
還可以自己禁用自己哦,但是童鞋們不要擔心,因為我們用的都是命令行界面所以只有重新打開命令行界面就可以了,他會重新啟用bash
,我們又可以用了,哈哈。
外部命令
- 外部命令,我們在上面用
type
看了他是一個一個的路徑,既然是路徑那就表示他是存在于磁盤里面,也就是硬盤,外部命令既然是一個一個的路徑,那我們輸入命令的時候我們好像沒輸入路徑吧,那他是怎么運行的? ,他是怎么找到這個文件的,磁盤文件這么多他不可能一個一個去找吧,那他是怎么執(zhí)行的,怎么找到路徑的?。
- 外部命令有什么命令來查看,我們可以用:
which
后面加命令,可以來查看外部命令的路徑,一般專用他來查看外部命令的路徑,他和type 很有相似之處,用:which -a
選項 他會把$PATH
里面所有的和命令相同的路徑全找出來,有時候用他會現實出來不是我們想要的東西,其實是別名,他的功能就是查看別名,后面我會介紹。 - 還有一個命令 :
whereis
后面接命令列出外部命令和一些文檔命令 后面在來介紹。 - 其實他是依賴于PATH變量命令:
echo $PATH
可以找到PATH
變量的路徑,他們會一個一個路徑里面找,找不到的話他們就報錯了,注意這些路徑不在內存里面哦,但是他們執(zhí)行過后就緩存在內存里面了 ,緩存了以后他就不需要在去硬盤找PATH變量里面找了,大家注意每個版本的PATH變量都不同哦。
系統(tǒng)別名
- 別名也就是小名吧,作用是把很長的路徑給他定義一個別名以后,用最短的時間來執(zhí)行。
- 那怎么定義別名,比如:
alias cdnet='cd /etc/sysconifg/network-scripts/'
這個路徑長吧,我以后只要輸入cdnet
就會直接切換到 :etc/sysconfig/network-scripts
:這個目錄下面這樣不是很方便嗎。 - 我們用alias 這個命令可以列出系統(tǒng)里面所有的別名,里面有我們已經定義好的別名和系統(tǒng)自帶的別名,每個版本系統(tǒng)定義的別名都不同。
- 但是我們只樣定義的別名都只是臨時的想要永久定義別名需要去修改家目錄下面的一個文件叫:
.bashrc
這個文件去修改這樣才能修改別名,就算以后退出終端了,別名一樣可以用。 - 但是我們是修改文件的,所以我們這個別名不會馬上生效和臨時的別名不同,需要我們用:
. .bashrc
來執(zhí)行 這樣才能馬上執(zhí)行我們修改的別名。 - 我們這個別名只是修改用戶的別名哦,如果你想每個用戶都能用也稱全局別名需要修改:
/etc/.bashrc
修改這個文件才能每個用戶都能用這個別名。 - 刪除別名:
unalias
接想刪除的別名這樣就可以刪除他了,但是這只是臨時刪除,終端退出以后,在登錄的話別名會重新加載別名,想要徹底刪除,需要去家目錄里面的:bashrc
里面去修改,當前你想要刪除全局的別名也要去:/etc/bashrc 里面才能刪除,當然
nalias -a `選項可以取消全部別名,但是只是臨時的,不要緊張。
外部命令
- 外部命令,我們在上面用
type
看了他是一個一個的路徑,既然是路徑那就表示他是存在于磁盤里面,也就是硬盤,外部命令既然是一個一個的路徑,那我們輸入命令的時候我們好像沒輸入路徑吧,那他是怎么運行的? ,他是怎么找到這個文件的,磁盤文件這么多他不可能一個一個去找吧,那他是怎么執(zhí)行的,怎么找到路徑的?。
- 外部命令有什么命令來查看,我們可以用:
which
后面加命令,可以來查看外部命令的路徑,一般專用他來查看外部命令的路徑,他和type 很有相似之處,用:which -a
選項 他會把$PATH
里面所有的和命令相同的路徑全找出來,有時候用他會現實出來不是我們想要的東西,其實是別名,他的功能就是查看別名,后面我會介紹。 - 還有一個命令 :
whereis
后面接命令列出外部命令和一些文檔命令 后面在來介紹。 - 其實他是依賴于PATH變量命令:
echo $PATH
可以找到PATH
變量的路徑,他們會一個一個路徑里面找,找不到的話他們就報錯了,注意這些路徑不在內存里面哦,但是他們執(zhí)行過后就緩存在內存里面了 ,緩存了以后他就不需要在去硬盤找PATH變量里面找了,大家注意每個版本的PATH變量都不同哦。
Hash緩存表
- 緩存表俗稱哈希表用:
hash
命令可以查看,這都是緩存到內存里面的外部命令,輸入命令以后會有英文叫hits
的單詞 這其實就是這個命令執(zhí)行了幾次的意思,1就是這個命令執(zhí)行了一次,3就是這個命令執(zhí)行了三次,當然hits
在單詞里面是命中的意思 ,command
這個相信大家都知道 路徑 ,命令的路徑這就是已經緩存在內存里面的命令。
- 我們用命令
hash -l
后面不接命令 可以詳細的顯示出命令的路徑和命令本身。 - 用命令
hash -p
選項 后面接路徑和命令本身如:hash -p /usr/bin/cd dd
這樣我們就給cd
取了別名 叫dd
一樣可以執(zhí)行 但是臨時的。 - 刪除緩存別名如:
hash -d
選項 后面接你要刪除的命令 ,這樣可以刪除緩存中的命令。 - 清空所有緩存命令是:
hash -r
清除所有的緩存。 - 還有個命令是:
hash -t
選項這個命令是用于顯示出別名的路徑,也叫打印緩存的路徑,也就是打印出外部命令緩存到這里的路徑。
簡單小命令
- date 查看當前系統(tǒng)時間
- date 改時間格式MMDDHHmmYYYY.ss
- MM是月 DD是號 HH小時 mm分鐘 YYYY是年 ss 是秒 ,當前改的只是內存里的時間。
- ckock 硬件時間
- ckock -s 把硬件時間讀取到軟件
- hwckock -w 把軟件時間讀取到硬件時間
- ntpdate 同步時間 但是需要同步的服務器有同步服務
- 輸入 LANG=“zh_CH.UTF-8” 可以切換顯示中文時間
- 輸入 LANG=“en_US.UTF-8” 可以切換為英文模式時間
- UTF-8 是支持所有語言的
- cal 是顯示日歷 修改時間:cal-10-2018 不要加橫杠
- cal 顯示整年:cal 2018 最高9999年 缺點就是不能顯示農歷,有一個特殊的年 09 1752年是一個故事。
- 時區(qū)我們可以在/etc/localtime里面改.CentOS 7里面專有個命令來查看時區(qū),用命令timedatectl list-timezones 列出所有時區(qū),找到我們想要改的時區(qū),讓后我們在設置時區(qū),用命令timedatectl set-timezone 后面接你想設置的時區(qū),記住在timezone后面一定要加 / 斜杠或空格哦 ,這樣我們就改了時區(qū)。(注意這些命令只有
CentOS 7
命令才支持哦) - nano 文本小編輯器
- halt ,poweroff 關機
- reboot 重啟 -f 強制重啟 -p 切斷電源
- shutdown 關機或重啟 -h 10分鐘后關機 -c 取消關機 假如 :shutdown -h 后面跟時間可以定制時間關機1就是1分鐘 10就是10分鐘,但是可以用-c取消關機,。
- shutdown -h 還可以發(fā)消息關機 ,如:shutdown 18.16 "這里填寫消息" ; 他會提前15分鐘提醒你。
echo命令 - echo 回顯的意思也稱打印|
- -n 不換行|
- e 啟用字符功能
- -a 報警 需要-e配合使用
- \b退格的功能 |
- \c 最后不加上換行符號
- \n 換行且光標移至行首
- \r 回車,即光標移至行首
- \t 插入 rab
- \ 插入\字符
系統(tǒng)時間
date
查看當前系統(tǒng)時間
-
date
改時間格式MMDDHHmmYYYY.ss
-
MM
是月DD
是號HH
小時mm
分鐘YYYY
是年ss
是秒 ,當前改的只是內存里的時間。 -
ckock
硬件時間
-ckock -s
把硬件時間讀取到軟件 -
hwckock -w
把軟件時間讀取到硬件時間 -
ntpdate
同步時間 但是需要同步的服務器有同步服務 - 輸入
LANG=“zh_CH.UTF-8”
可以切換顯示中文時間 - 輸入
LANG=“en_US.UTF-8”
可以切換為英文模式時間
- UTF-8 是支持所有語言的
-
cal
是顯示日歷 修改時間:cal
-10-2018 不要加橫杠 -
cal
顯示整年:cal
2018 最高9999年 缺點就是不能顯示農歷,有一個特殊的年 09 1752年是一個故事。 - 時區(qū)我們可以在
/etc/localtime
里面改.CentOS 7
里面專有個命令來查看時區(qū),用命令timedatectl list-timezones
列出所有時區(qū),找到我們想要改的時區(qū),讓后我們在設置時區(qū),用命令timedatectl set-timezone
后面接你想設置的時區(qū),記住在timezone
后面一定要加 / 斜杠或空格哦 ,這樣我們就改了時區(qū)。(注意這些命令只有CentOS 7 命令才支持哦) -
nano
文本小編輯器 -
halt ,poweroff
關機 -
reboot
重啟-f
強制重啟-p
切斷電源 -
shutdown
關機或重啟-h
10分鐘后關機-c
取消關機 假如 :shutdown -h
后面跟時間可以定制時間關機1就是1分鐘 10就是10分鐘,但是可以用-c取消關機,。 -
shutdown -h
還可以發(fā)消息關機 ,如:shutdown
18.16 "這里填寫消息" ; 他會提前15分鐘提醒你。
echo命令
-
echo
回顯的意思也稱打印|
--n
不換行| -
-e
啟用字符功能 -
-a
報警 需要-e配合使用 -
\b
退格的功能 | -
\c
最后不加上換行符號 -
\n
換行且光標移至行首 -
\r
回車,即光標移至行首 -
\t
插入rab
-
\\
插入\字符
使用幫助
- 創(chuàng)建
whatis
數據庫,查命令資料我們有時候會出現一種情況,那就是這個命令明明沒錯但是為什么不能查,呵呵這個情況那是因為,系統(tǒng)剛裝他還沒把資料數據庫裝進去,剛裝的系統(tǒng)要過幾天系統(tǒng)才會把資料數據庫裝進去,所以要執(zhí)行一個命令我們自己裝數據庫這個命令就是:nakewhatis
這個命令才會把數據庫裝好。
-
whatis
這個命令會幫我們來描述命令的用途,和章節(jié)號。 - 內部命令幫助的用法,可以用
help
這個命令是專用來查內部命令的幫助格式是:help enable
。 -
man
是用來查外部命令的,當然他也可以來查內部命令, 在man
里面很多資料是分章節(jié)來分號的,可以用:ls /usr/share/man
可以查看man
:第一章是用來放用戶命令,第二章是用來放系統(tǒng)調用,第三章是用來放C庫調用,第四章是用來放設備文件以及特殊文件,第五章配置文件格式,第六章是用來放游戲,第七章是用來放雜項,第八章是用來放管理類的命令,第九章是用來放linux
內核的API
,對于我們來說只關系第一章。 - 還有個小命令
info
也可以來查,但是用的少 - 查幫的順序是先用
type
來查看命令,屬于外部還是內部命令,如果是外部命令,還要用shatis
來查看他的章節(jié)號,然后在用在用man
來查命令的資料,如果是內部命令,就用help
來查他的資料,查幫助的時候有時候資料不是很全要活學,活用,多看幫助提深你的英語高度,小伙伴們一起加油吧。 - 搜索快捷鍵 【n】是往下搜索【N】大寫N是網上搜索,也可以用/來所說,也可以用?來搜索,/斜線是默認向下搜索,? 問號默認向上搜索。