03 Linux系統組成和獲取命令幫助
遠端連線:
ssh協議:(簡稱:secure shell)
~]# ss -tnl
檢視系統監聽於rcp協議的22號埠
~]# ifconfig 或 ip addr list
檢視本機 ip 地址
在CentOS 7最小化安裝中沒有 ifconfig 這個命令,需要 yum install net-tools 命令來進行下載安裝
確保防火牆處於關閉狀態:
~]# iptables -L -n #檢視一些防火牆規則
~]# iptables -F #臨時清空防火牆的規則
CentOS 7:
~]# systemctl disable firewalld.service #先禁用防火牆
~]# systemctl stop firewalld.service #停止防火牆使用
CentOS 6:
~]# service iptables stop
~]# chkconfig iptables off
檢視所使用的shell型別:
~]# echo $SHELL
終端裝置:terminal
多工、多使用者
物理終端,控制檯:console
鍵盤滑鼠顯示器直接接到電腦上的被稱為物理終端裝置(一般稱為控制檯:console),物理 終端不是我們啟動完系統真正用的終端,只有Linux在啟動過程當中才會被直接使用。啟動完之後 看到的是虛擬終端,因為是用軟體模擬出來的所以被稱為虛擬終端,虛擬終端預設6個虛擬終端
虛擬終端:6個,tty
Ctrl+Alt+F[1-6]
筆記本按鍵有可能對映不一樣
不一定是6個虛擬終端,因為f7是圖形化介面
圖形終端:
CentOS 6:
Ctrl+Alt+F7
CentOS 7:
在哪個虛擬終端啟動,即位於哪個虛擬終端
序列終端:ttys
串列埠輸出
偽終端:pty
偽終端又稱為模擬終端,遠端連線的終端或圖形介面下開啟的終端介面
系統正常啟動,顯示啟動過程資訊輸出到物理終端,當物理終端被系統初始化後,稱為虛擬終端(圖形介面或Ctrl+Alt+F[1-6])開啟圖形介面模擬一個命令視窗就是偽終端,或者遠端登入該系統,該終端也是偽終端
區別當前系統是哪種終端:
使用命令tty,表示當前終端對應的裝置檔案,(以下#表示數字)
1.結果顯示:/dev/pts/# 表示偽終端
2.結果顯示:/dev/tty# 表示虛擬終端
3.結果顯示:/dev/console 表示物理終端(控制檯)
4.結果顯示:/dev/ttys# 表示序列終端
同一使用者登入系統,對應著不同體系/裝置,屬於不同程序下的使用者,有裝置就有對應的裝置檔案。
命令:who 檢視系統登入的所有使用者及其資訊
Linux的哲學思想之一:一切皆檔案
表現之一:硬體裝置也通過檔案表示:
物理終端:/dev/console
虛擬終端:/dev/tty# [1-6]
序列終端:/dev/ttys#
偽終端:/dev/pts/#
注意:在啟動裝置之後,在其上關聯一個使用者介面程式,即可實現與使用者互動:
檢視終端裝置:
~]# tty
檢視介面程式:
~]# echo $SHELL
啟動GUI:圖形介面
第一次啟動圖形化介面時需要在某一虛擬終端介面執行命令:startx & (&符號表示在後臺執行)
GIL介面:
命令列介面:
[[email protected] ~]# command(命令)
prompt:
root:當前登入的使用者
localhost:當前主機的主機名,非完整格式
~:使用者當前所在的目錄(current directory),也稱為工作目錄(working directory);相對路徑
#:命令提示符:
#:管理員賬號,為 root;擁有最高許可權,能執行所有操作
$:普通使用者,非 root;不具有管理許可權,不能執行系統管理類的操作
注意:建議使用非管理員賬號登入;
執行管理操作臨時切換至管理員,操作完成即退回
幾個基礎命令:
tty:檢視當前的終端裝置
ifconfig或 ip addr list:檢視活動介面的ip地址
echo:回顯
ping:探測網路的目標主機與當前主機之間的連通性
Ctrl+c:終止命令執行
關機命令:
CentOS 7:
~]# systemctl poweroff 或直接 poweroff
重啟命令:
~]# systemctl reboot 或直接 reboot
所有系統裡邊都可以執行 poweroff 和 reboot
stallman:
自由含義:自由學習和修改;自由使用;自由分發;自由建立衍生版;
Linux的哲學思想:
1.一切皆檔案
把幾乎所有資源統統抽象為檔案形式;包括硬體裝置,甚至是通訊介面等
open(),read(),write(),close(),delete(),create()
2.由眾多功能單一的程式組成:一個程式只做一件事,並且做好
組合小程式完成複雜任務;
3.儘量避免跟使用者互動
目標:易於以程式設計的方式實現自動化任務
4.使用文字檔案儲存配置資訊:
思考:檔案是什麼?眾多檔案如何有效組織起來?
目錄:路徑對映:
檔案:儲存空間儲存的一段流式資料,對資料可以做到按名存取
檔案系統:層級結構;有索引
/:原初起點
第二層結構
第三層結構
倒置樹狀結構
/dev/pts/2:
最左側 /:表示根目錄
其他的 /:表示路徑分隔符
Linux的路徑分隔符是 /
Windows的是 \
檔案的路徑表示:
絕對路徑:從根開始表示出的路徑
相對路徑:從當前位置開始表示出的路徑
檔名使用法則:
嚴格區分字元大小寫:file1,FILE1,File1,這三個檔案完全不是一個檔案
目錄也是檔案,在同一路徑下,兩個檔案不能同名;
支援使用除了 / 以外的任意字元
最長不能超過255個字元;
使用者有家目錄:home
使用者的起始目錄;普通使用者管理檔案的位置
工作目錄:
/etc/sysconfig/network-scripts/ifcfg-en016777
basename:最右側的檔案或目錄名
dirname(目錄名):basename左側的路徑
命令:
~]# basename /PATH/TO/SOMEFILE
SOMEFILE
~]# dirname /PATH/TO/SOMEFILE
/PATH/TO
回顧:
開源協定:
GPL,LGPL,BSD,Apache
BSD:
1.如果二次釋出的產品中包含原始碼,則在原始碼中必須帶有原來的程式碼中的BSD協定
2.如果二次釋出的產品是二進位制格式的庫或程式,則需要在釋出的文件或版權宣告中說明包含原來的程式碼中的BSD協定
3.不可以用開原始碼的作者或組織,以及原來的產品的名字做市場推廣
程式碼的共產主義運動
檔案系統、檔案、目錄:
倒置樹狀結構:
目錄:
檔案:
檔名:嚴格區分字元大小寫;路徑分隔符 /:
路徑:
絕對路徑
相對路徑
程式的組成部分:二進位制程式檔案、庫檔案、配置檔案、幫助檔案;
二進位制、庫檔案:可執行檔案
庫檔案:不能獨立執行,只能被呼叫時執行
配置檔案、幫助檔案:可被檢視其內容的檔案
人機互動介面:
GUI
CLI
Linux基礎知識
命令的語法通用格式:
# command options arguments
發起一個命令:請求核心某個二進位制程式執行為一個程序;
程式 --》程序
靜態--》動態(有生命週期)
命令本身是一個可執行的程式檔案:二進位制格式的檔案,有可能會呼叫共享庫檔案;
多數程式檔案都存在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
普通命令:/bin,/usr/bin,/usr/local/bin
管理命令:/sbin,/usr/sbin,/usr/local/sbin
共享庫:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
32bits的庫:/lib,/usr/lib,/usr/local/lib
64bits的庫:/lib64,/usr/lib64,/usr/local/lib
在32bits的庫上邊不會出現64bits的庫,因為32位不相容64位的
在64bits的庫上邊會出現32bits的庫,因為64位相容32位的
注意:並非所有的命令有一個在某目錄與之對應的可執行程式檔案
命令必須遵循特定格式規範:exe,msi,ELF(Linux)
~】# file /bin/ls
命令分為兩類:
由shell程式的自帶的命令:內建命令(builtin)
獨立的可執行程式檔案,檔名即命令名:外部命令
shell程式是獨特的程式,負責解析使用者提供的命令:
環境變數:
PATH:從哪些路徑中查詢使用者鍵入的命令字串所對應的命令檔案
~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查詢次序:自左而右
檢視命令型別:
type command
shell內建命令不會在某個路徑下存在一個命令的檔名
OPTIONS(選項):
指定命令的執行特性和不同的功能
選項有兩種表現形式:
短選項:-c,例如-l,-d
注意:有些命令的選項沒有-;
如果同一命令同時使用多個短選項,多數可合併:-l -d = -ld
長選項:--word,例如---help,--human-readable
注意:長選項不能合併
注意:有些選項可以帶引數,此稱為選項引數
ARGUMENTS:
命令作用的物件,命令對什麼生效
注意:不同的命令的引數;有些命令可同時帶多個引數,多個之間以空白字元分隔
例如:ls -l -d /var /etc
獲取命令的使用幫助:
內部命令:
help command
外部命令:
1.命令自帶簡要格式的使用幫助
# command --help
2.使用手冊:manual
位置:/usr/share/man
# man command
SECTION:
NAME:簡要功能性說明
SYNOPSIS:語法格式
DESCRIPTION:描述
OPTIONS:選項
EXAMPLES:使用示例
AUTHOR:作者
BUGS:報告程式BUG的方式
SEE ALSO:參考
SYNOPSIS:
[]:可選內容
<>:必須提供的內容
a|b:多選一
...:同類內容可出現多個
使用手冊:壓縮格式的檔案,有章節之分:
/usr/share/man
man1,man2,...
1:使用者命令:
2:系統呼叫:
3:c庫呼叫
4:裝置檔案及特殊檔案
5:檔案格式(配置檔案格式)
6:遊戲使用幫助
7:雜項
8:管理工具及守護進行
# man CHAPTER command
注意:並非每個command在所有章節下都有手冊:
檢視:~]# whatis command
注意:其執行過程是查詢資料庫進行的
手動更新資料庫:
~]# makewhatis
man命令開啟手冊以後的操作方法:
翻屏:
空格鍵:向檔案尾翻一屏
b:向檔案首部翻一屏
Ctrl+d:向檔案尾部翻半屏
Ctrl+u:向檔案首部翻半屏
↓:向檔案尾部翻一行
↑:向檔案首部翻一行
G:跳轉至檔案最後一行
nG:跳轉至指定行
1G:跳轉至檔案首部
文字搜尋:
/keyword:從檔案首部向檔案尾部依次查詢
?keyword:從檔案尾部向檔案首部依次查詢
n:與查詢命令方向相同
N:與查詢命令方向相反
退出:
q:quit
選項:
-M /PATH/TO/SOMEDIR:到指定目錄下查詢命令手冊並開啟之
練習:獲取useradd命令的用法
(1):新增使用者xing
# useradd xing
# id xing
(2):新增使用者xinchao,要求指定其所用的shell為/bin/bash
# useradd -s /bin/bash xinchao
# tail -1 /etc/passwd
3.info command
獲取命令的線上文件:
4.很多應用程式會自帶幫助文件:/usr/share/doc/APP-VERSION
README:程式的相關的資訊
INSTALL:安裝幫助
CHANGES:版本迭代時的改動資訊
5.主流發行版官方文件
http://www.redhat.com/doc
6.程式官方的文件
官方站點上的“Document”
7.搜尋引擎
keyword filetype:pdf
keyword site:domain.tld
...
書籍的出版社:
O‘Reiley
wrox
機械工業出版社
電子工業出版社
清華大學
水利水電
常用命令:
Linux檔案系統:
1.檔名名稱嚴格區分字元大小寫
2.檔案可以使用除/以外任意字元(不建議使用)
3.檔名長度不能超過255個字元
4.以.開頭的檔案為隱藏檔案
.:當前目錄
..當前目錄的上一級目錄
工作目錄:
家目錄:home
常用命令:
pwd:printing working directory
顯示當前工作目錄
cd:change directory
cd [/path/to/somedir]
cd:不帶任何選項引數的時候是切換回家目錄
注意:bash中,~表示家目錄
cd ~:切換回自己的家目錄
cd ~username:切換至指定使用者家目錄
注意:只有管理員root才能隨便切換至其他家目錄
cd -:在上一次所在目錄與當前目錄之間來回切換
相關的環境變數
$PWD:當前工作目錄
$OLDPWD:上一次的工作目錄
這兩個環境變數會隨時改變的
ls:list,列出指定目錄下的內容
ls [OPTION]... [FILE]...
-a:顯示所有檔案,包括隱藏檔案
-A:顯示除.和..之外的所有檔案
-l:--long,長格式列表,即顯示檔案的詳細屬性資訊
-rw-r--r--. 1 root root 129 12月 25 10:19 .lesshst
-:檔案型別,-,d,b,c,l,s,p
rw-r--r--
rw-:檔案屬主的許可權
r--:檔案屬組的許可權
r--:其他使用者(非屬主、屬組)的許可權
1:數字表示檔案被硬連結的次數
root:檔案的屬主
root:檔案的屬組
129:數字表示檔案的大小,單位是位元組
12月 25 10:19:檔案最近一次被修改的時間
.lesshst:檔名
-h:--human-readable:對檔案大小單位換算,換算後結果可能會非精確值
-d:檢視目錄自身而非其內部的檔案列表
-r:reverse,逆序顯示
-R:recursive,遞迴顯示
cat:concatenate
文字檔案檢視工具
cat /etc/fstab
cat /etc/passwd
cat [OPTION]... [FILE]...
-n:給顯示的文字行編號
-E:顯示行結束符$
tac:和cat顯示內容相反,是逆序顯示
文字檔案檢視工具
cat /etc/fstab
cat /etc/passwd
cat [OPTION]... [FILE]...
-n:給顯示的文字行編號
-E:顯示行結束符$
file:檢視檔案內容型別
file [filename]...
echo:回顯命令
echo [SHORT-OPTION]... [STRING]...
-n:不進行換行
-e:讓轉義符生效
\n:換行
\t:製表符
STRING可以使用引號,單引號和雙引號均可用
單引號:強引用,變數引用不執行替換
雙引號:弱引用,變數引用會被替換
注意:變數引用的正規符號
${name}
關機或重啟命令:shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
OPTIONS:
-h:halt
-r:reboot
-c:cancel
TIME:
now:立刻關機
hh:mm:表示幾點幾分
+m:m表示為數字,例如10表示10分鐘後關機,+0和now一個意思
WALL
日期相關的命令:
Linux:系統啟動時從硬體讀取日期和時間資訊,讀取完成以後,就不再與硬體相關聯
系統時鐘
硬體時鐘
date:系統時鐘
顯示日期時間:date [OPTION]... [+FORMAT]
FORMAT:格式符
%F
%T
%Y
%m
%d
%H
%M
%S
%s:從1970年1月1號(unix元年)0點0分0秒到命令執行的那一刻秒數
...
設定日期時間:date [MMDDhhmm[[CC]YY][.ss]] 月日小時分鐘年份秒數
date 101008082013.08
clock,hwclock:硬體時鐘
顯示或設定硬體時鐘
-s, --hctosys:以硬體為準,把系統調整為與硬體時間相同
-w, --systohc:以系統為準,把硬體時間調整為與系統時鐘相同
cal:calendar(日曆)
cal [month] year]
課外作業:
which,whereis,who,w