Linux系統命令行基礎
-
Linux必知必會基礎知識
-
什么是Bash shell(殼)
-
BashShell是一個命令解釋器,它在操作系統的最外層,負責用戶程序與內核進行交互操作的一種接口,將用戶輸入的命令翻譯給操作系統,並將處理后的結果輸出至屏幕。
當我們使用遠程連接工具連接linux服務,系統則會給打開一個默認的shell,我們可在這個界面執行命令、比如:獲取系統當前時間,創建一個用戶等等...
-
Bash Shell能干什么?
使用Shell實現對Linux系統的大部分管理,例如:
1.文件管理
2.權限管理
3.用戶管理
4.磁盤管理
5.網絡管理
6.軟件管理
等等.
-
Bash shell執行方式
輸入命令方式 --->效率低--->適合少量的工作
shell script --->效率高--->適合復雜的工作
-
Linux命令行的作用和意義
眾所周知,Linux是一個主要通過命令行來進行管理的操作系統,即通過鍵盤輸入指令來管理的相關操作,包括但不限於編輯文件、啟動和停止服務等。這和大家所使用的Windows系統使用鼠標點擊這類可視化管理大不相同。
使用鼠標可視化管理的優勢是簡單、容易上手,但缺點是不能方便快速、批量、自動化的管理系統,而且感覺系統也很臃腫,這個時候Linux系統的命令行管理優勢就凸顯出來了。使用Linux 命令行管理,不但可以實現批量、自動化管理,還可以實現智能化、可視化管理,當然,后者需要開發人員配合開發管理界面來完成,但無論如何,Linux系統的優勢還是快速、批量、自動化、智能化管理系統及處理業務。
-
Linux命令行介紹
安裝Linux系統時,無論是使用文本模式安裝,還是使用圖形模式安裝,最終管理系統的任務都會落到命令行上。
多數互聯網企業在安裝系統時甚至不會安裝圖形管理軟件包,而是直接使用文本模式安裝,因此登錄后直接面對的就是命令行的界面(如下圖所示)
圖-通過SSH客戶端(xshell)連接linux系統后的命令行
-
Linux命令行的登錄及退出
在開啟主機時,Linux系統經過一系列的引導和程序加載后,最終會出現登錄前的提示界面(如下圖所示)。
圖-CentOS Linux系統登錄后的命令行界面
在上圖中,將光標定位到login:字符后面,輸入超級用戶管理員root后,按回車鍵,彈出密碼提示框后,再輸入密碼,注意密碼是不顯示的。輸入正確的密碼后,再按回車鍵就可以登錄到Linux系統中了(如下圖所示)。
圖-CentOS Linux系統登錄后的命令行界面
在命令行界面,執行exit或logout命令可退出命令行(如下圖所示),當然也可以使用快捷鍵Ctrl+d鍵退出命令行。退出命令行后,如果要再次登錄,還是需要輸入用戶名和密碼的(除非使用SSH客戶端將用戶名和密碼保存)。
圖-CentOS Linux命令行退出操作界面
-
命令行提示符介紹
Linux命令行結尾的提示符有"#"和"$"兩種,如下所示:
[root@oldboy ~]# #<==這是超級管理員root用戶對應的命令行
[root@oldboy ~]$ #<==這是普通用戶oldboy對應的命令行
其中:
1)root,表示當前登錄的用戶(可用whoami命令查詢查詢)
2)@符,表示分隔符
3)oldboy,表示主機名(可用hostname命令查詢)
4)~號,表示當前用戶所在的路徑(可用pwd命令查看,默認用戶登錄之后所在的路徑是當前用戶的家目錄)
5)#號,表示超級用戶root登錄后的命令行結尾提示符,而$號是使用普通用戶登錄后的命令行結尾提示符。超級用戶具有管理系統的所有權限,普通用戶的權限比較小,只能進行基本的系統信息查看等操作,無法更改系統配置和管理服務。
6)Linux命令行提示符由PS1環境變量所控制的。
[root@web ~]# set |grep PS1 #注意,這里的PS是大寫的。這里的PS1='[\u@\h \W]\$ ',可以通過命令export進行修改,永久生效的話通過全局配置文件/etc/bashrc或/etc/profile按需進行配置和調整。在這里,我們可以給命令行提示符加上顏色。
PS1='\[\e[32;1m\][\u@\h \W]\$ \[\e[0m\]'
-
Linux命令組成結構
在企業里,絕大多數使用Linux的管理員都是通過命令行操作Linux的,學會如何通過命令行操作Linux是一個Linux管理員的必須課。
在操作Linux命令之前,先看下命令操作語法格式(如下圖所示)。Linux系統命令操作語法的格式為:
#命令 [選項] [參數/路徑]
command [-options] [arguments]
[root@oldboy ~]# ls #命令
[root@oldboy ~]# ls -a #命令+選項
[root@oldboy ~]# ls -a /home/ #命令+選項+參數
#命令: 整條shell命令的主體
#選項: 用於調節命令的具體功能
#以
"-"引導短格式選項(單個字符),例如"-a"
#以"--"引導長格式選項(多個字符),例如"--all"
#多個短格式選項可以寫在一起,只用一個"-"引導,例如"-al"
#參數: 命令操作的對象,如文件、目錄名等
PS1:中括號表示可選,即命令的選項即參數是可選的。
PS2:選項表示使用一個命令的不同功能。
PS3:命令、選項、參數兩兩之間至少要有一個空格。一個整體的命令、選項、參數不能有空格。
PS4: 選項和參數在有些命令的時候時,位置可以發生變化.
PS5: 命令必須放在開頭,
選項和參數位置可以發生變化
圖-命令的組成結構
-
執行命令的常見報錯
[root@oldboy ~]# ls-a
bash: ls-a: command not found... 找不到命令(要么命令寫錯了,要么就真的沒有該命令)
[root@oldboy ~]# ls /.bashrc
ls: cannot access /.bashrc: No such file or directory 沒有這個文件或目錄
PS:相信電腦,電腦是不會出錯的,如果電腦的出現的結果和你想像的不一樣,那么一定是你錯了。
-
Bash shell特性
1. tab鍵補全支持
命令補全
選項補全
參數補全
在實際生產中tab補全往往是我們使用的最多的, 因為可以減少執行命令以及路徑出錯率
命令補全: 按一下tab鍵沒有任何反應,因為以user開頭的命令有很多,系統並不知道你需要使用哪一個
[root@oldboy ~]# user
useradd userdel userhelper usermod usernetctl users
選項補全:
[root@web 20:39:54 ~]# ls --
--all --format= --quote-name
--almost-all --group-directories-first --quoting-
--author --help --recursive
--block-size= --hide= --reverse
3.路徑補全:
[root@web 20:39:54 ~]# ls /root/
1.sh .bash_profile etc/ filename.bz2 .lesshst .pki/ .tcshrc
2. base shell常用快捷鍵
ctrl + c cancel 取消當前的操作
ctrl + l (小寫字母L) clear(命令)清空當前屏幕
ctrl + d 退出當前用戶
ctrl + r 查找(歷史命令)。 history|grep
ctrl + a 把光標移動到行首
ctrl + e 把光標移動到行尾
ctrl + u 把光標到行首的內容刪除/剪切
ctrl + y 粘貼
delete 光標所在處從前往后刪除內容
ctrl + k 把光標到行尾的內容刪除/剪切
ctrl + → 向右移動一個單詞 Xshell工具提供的
ctrl + ← 向左移動一個單詞 Xshell工具提供的
ctrl + s 鎖屏
ctrl + q 解鎖
ctrl + w 刪除當前位置至上一個空格的字符
Esc + . 獲取上一條命令最后的部分(空格分割)
!號開頭的快捷命令
!! 執行上一條命令
!cd 執行最近以cd開頭的命令
!num 執行歷史命令列表的第num(數字)條命令
注意:有些的快捷命令是基於Xshell和SecureCRT遠程連接工具實現的。
- 小練習:
命令行輸入oldboyedu,然后讓光標移動到行首
加上注釋符號和I am studying,然后讓光標移動到行尾,加上 linux.site:www.oldboyedu.com 剪切這一行內容。粘貼3次。
3.歷史記錄history
history #命令直接查看當前的shell所執行過的命令
!100 #調用history歷史命令中編號為100
!! #執行上一次執行過的指令
選項
-w #保存命令歷史到歷史文件 write #寫入到當前用戶的家目錄下.bash_history
-c #清空命令歷史記錄, 不會情況文件 clear
-d #刪除命令歷史的第 N 條行 delete
Ecs + . #獲取上一個命令的參數
4.命令別名alias
4.1.如何設定別名
alias oldboy='ping www.baidu.com'
4.2.如何取消別名
unalias oldboy
4.3.為什么系統默認存在一些別名:
防止在執行危險指令時,發生誤操作的情況,比如:
alias rm='rm -i'
PS: 當前的別名全部都是針對當前的Shell生效,臨時生效.
4.4.永久生效{擴展}
將內容寫入到 /etc/bashrc 所有的shell都生效
-
在Linux命令行下查看命令幫助
-
使用man獲取命令幫助信息
-
man命令是Linux下的幫助指令,通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。示例:
-
使用help參數獲取命令幫助信息
大多數的命令都會有個幫助信息的參數--help。示例如下:
-
使用help命令獲取bash內置命令幫助
help命令用於顯示shell內部命令的幫助信息。help命令只能顯示shell內部的命令幫助信息。示例:
那么如何查看當前系統的所有內置命令呢:使用help命令即可,那么有如何查看單個命令是否是內置命令呢:使用type 命令即可,如:type cd
-
使用info獲取幫助信息
就內容來說,info頁面比man page編寫得要更好、更容易理解,也更友好,但man page使用起來確實要更容易得多。一個man page只有一頁,而info頁面幾乎總是將它們的內容組織成多個區段(稱為節點),每個區段也可能包含子區段(稱為子節點)。理解這個命令的竅門就是不僅要學習如何在單獨的Info頁面中瀏覽導航,還要學習如何在節點和子節點之間切換。可能剛開始會一時很難在info頁面的節點之間移動和找到你要的東西,真是具有諷刺意味:原本以為對於新手來說,某個東西比man命令會更好些,但實際上學習和使用起來更困難。
-
從互聯網搜索獲取命令幫助信息
除了Linux系統自帶的幫助功能以外,可以通過搜索引擎網站來獲取命令幫助信息。如:百度,谷歌,搜狐等。
下面幾個網址是一些命令詳解的地址
http://man.linuxde.net
http://liunx.web3.xin
http://linux.51yip.com
-
Linux關機重啟注銷命令
-
重啟或關機命令:shutdown
-
- 重啟
shutdown -r 10 #10分鍾之后重啟
shutdown -r 0 #立刻重啟
shutdown -r now #立刻重啟
- 關機
shutdown -h 10 #10分鍾之后關機
shutdown -h 0 #立刻關機
shutdown -h now #立刻關機
- 取消當前關機或重啟
shutdown -c #取消正在進行的
關機或重啟
(shutdown )
-
關機與重啟命令
- 重啟
reboot #立刻重啟
- 關機
poweroff #立即停止系統,並且關閉電源
halt #立即停止系統,需要人工關閉電源,是reboot的鏈接文件
-
關機、重啟和注銷的命令列表
命令 | 說明 |
關機命令 | |
shutdown -h now | 立刻關機(生產常用) |
shutdown -h +1 | 1分鍾以后關機,1可以是別的數字或時間點,例如:11:00 |
halt | 立即停止系統,需要人工關閉電源,是reboot的鏈接文件 |
init 0 | 切換運行級別到0,0表示關機,因此此命令作用就是關機 |
poweroff | 立即停止系統,並且關閉電源 |
重啟命令 | |
reboot | 立即重啟(生產常用) |
shutdown -r now | 立即重啟(生產常用) |
shutdown -r +1 | 1分鍾后重啟 |
init 6 | 切換運行級別到6,6表示重啟,因此此命令作用就是重啟 |
注銷命令 | |
logout | 注銷退出當前用戶窗口 |
exit | 注銷退出當前用戶窗口 |
-
Linux顯示系統IP地址
-
使用ifconfig查看IP地址
-
ifconfig #顯示所有網卡IP地址
ifconfig eth0 #顯示某塊網卡IP地址
-
使用ip查看IP地址
ip address (簡寫ip a) #顯示所有網卡IP地址
ip address show eth0 (簡寫ip a s eth0 ) #顯示某一塊網卡IP地址。
-
使用hostname查看IP地址(不常用)
hostname -I #顯示所有IP地址(沒有網卡詳細信息,只有ip信息)
hostname -i #顯示外網IP地址(沒有網卡詳細信息,只有ip信息)