標籤:linux
電腦基礎一、電腦系統組成
電腦系統由硬體(Hardware)和系統軟體(Software)系統兩大部分組成
二、馮·諾依曼體系
三、伺服器儲存類型
DAS:直接連接儲存,儲存直接與伺服器相連,類似於在伺服器上直接加個儲存,用IDE、SATA線等線纜進行串連.
NAS:網路連接儲存裝置,通過區域網路,在多個伺服器直接實現了檔案分享權限設定,類似於NFS、windows共用的模式.
SAN:存放區域網路,有SAN的服務端和SAN的用戶端,用戶端通過網路連接到儲存上,效果類似在本地加上一塊磁碟,通過光纖或者網線相連.
四、ABI和API:
ABI:應用程式二進位介面,在應用程式和作業系統之間.
API:應用程式調用介面,在底層和作業系統之間.
五、檔案系統:
ntfs、fat、iso9660
ext2、3、4、CentOS6.X系統預設的檔案系統
xfs、btrfs CentOS7預設的是xfs檔案系統
六、資料分割配置:
MBR:
主要磁碟分割:一個磁碟主要磁碟分割的數量<=4,系統要裝在主要磁碟分割上,如果伺服器上有兩塊磁碟,那麼其中一塊磁碟可以沒有主要磁碟分割;
擴充分區:一個磁碟只能有一個擴充分區,擴充分區數量+主要磁碟分割數量<=4,擴充分區不能儲存資料,只能又來劃分邏輯分區;
邏輯分區:邏輯分區分區號從5開始編號,sda5;
主要磁碟分割和擴充分區的編號可以認為指定,但是擴充分區裡面的邏輯分區的編號是系統自動指定的;
分區後需要掛載後才能使用;
swap分區在以前記憶體小的情況下,通常是實際記憶體的兩倍,但目前伺服器記憶體比較大,一般測試環境給2G就夠了,生產環境中8G以上的記憶體,可以分10G左右就夠了.
七、Linux哲學思想:
1.一切皆檔案;
2.小型、單一用途的程式;
3、連結程式,共同完成複雜的任務;
4、避免令人困惑的使用者介面;
5、配置資料存放區在文本中.
八、shell類型
shell:功能可以理解為將命令翻譯成電腦能夠識別的0101(二進位) 代碼,翻譯器.
shell的種類:sh、csh、tcsh、ksh、bash、zsh
/etc/shell設定檔中儲存了當前系統支援的shell類型
九、用到的一些命令
lscpu 可以查看cpu的資訊
md5sum /dev/sr0 可以計算出來指定檔案的md5值
whoami 可以顯示當前是哪個使用者登入
tty 可以顯示當前登入的是哪個終端
chvt 1-6 表示利用終端切換介面
hostname 可顯示完整的主機名稱
lsb_release -a 查看當前作業系統的版本資訊
uname -r 查看核心版本
id -u 可以查看當前登入使用者的UID
id -u USERNAME 可以查看指定使用者的UID
echo $SHELL 可查看預設的shell類型
getent passwd ftp 可以查看ftp使用者的/etc/passwd中的條目
type COMMAND 可以查看指定的命令是外部命令還是內部命令
hash 可以將外部命令的路徑結果緩衝下來
十、相關命令詳解
cd 改變工作目錄
文法: cd /PATH/TO/SOMEDIR 切換到指定目錄
cd 切換回家目錄
cd ~ 切換回自己的家目錄
cd ~USERNAME 切換到指定使用者的家目錄(只有管理員才有許可權切換到其他使用者的家目錄)
cd – 在上一次所在目錄與目前的目錄之間來回切換
PWD 用來記錄當前工作目錄的環境變數
OLDPWD 用來記錄上一次工作目錄的環境變數
ls:列出指定目錄下的內容
文法:ls [OPTION]…[FILE]…
常用選項:
-a 顯示所有檔案,包括隱藏檔案
-A 顯示除.和..之外的所有檔案
-l 長格式列表,表示顯示檔案的詳細屬性資訊
顯示出來的資訊為
-rw-r-x— 1 root root 8827 10月15 20:34 testa.log
-rw-r-x—該檔案的檔案類型和相應的許可權
最前面一個-表示檔案的類型,後面9位表示相應的許可權
檔案類型:
-:表示是普通檔案,
d:表示是目錄
b:表示是塊裝置檔案,支援以“block”為單位進行隨機訪問
c:表示是字元裝置檔案,支援以“character”為單位進行線性訪問
l:表示是符號連結(軟連結)檔案
p:表示是管道檔案,有名字的管道檔案
s:表示是通訊端檔案
1 表示檔案被永久連結的次數
root 表示檔案的屬主
root 表示檔案的屬組
8827 表示檔案的大小
但是如果對ll /dev 該處顯示的是兩個數字,類似brw-rw—-. 1 root cdrom 11, 0 7月13 00:34 sr0
這裡的數字前一個表示主裝置號,後一個表示次裝置號,一個標識裝置類型,後一個標識同一類不同裝置
10月15 20:34 表示檔案最後一次被修改的時間
-h 表示對檔案大小做單位換算,換算後的結果可能為非精確值(1000和1024的區別)
-d 表示僅顯示目錄自身,而不是目錄下面每個檔案的屬性,要與-l一起使用,顯示目錄自身的屬性資訊
-r ,–reverse 表示顯示時以逆序的方式進行顯示,預設是升序顯示
-R ,–recursive 表示遞迴顯示
cat:顯示文字檔的檔案內容
文法:cat [OPTION]…[FILE]…
選項:
-n 給顯示的文本行編號
-E 顯示行結束符,Linux行結束符為$
FILE可以有多個,顯示的時候將多個檔案全部列出來
echo:回顯命令
文法:echo [OPTION]…[STRING]…
選項:
-n 顯示完成後不自動進行換行
-e 讓轉意符生效,而不是顯示出來
轉意符:\n 表示換行
1. \b 表示退格
2. \t 表示定位字元
3. \0nnn插入nnn(八進位)代表的ASCII編碼
利用上述的可以改顏色,色彩設定檔在/etc/DIR_COLORS
echo -e “\033[背景顏色;字型顏色m字串\033[0m” 背景顏色可省略
echo -e “\033[43;31m nihao \033[0m”
43;31表示前景色彩和背景色
字型顏色:30-37分別表示:黑、紅、綠、黃、藍、紫、天藍、白色
背景顏色:40-47分別表示:黑、紅、綠、黃、藍、紫、天藍、白色
\033[0m是控制選項,0m表示無屬性,1m表示高亮度,4m表示底線,5m表示閃爍,7m表示反顯,8m表示隱藏顯示
echo -e “\033[5m\033[44;32m*\033[0m” 顯示為*號閃爍,如果寫到最後面\033[0m這裡,則會變成顯示完成後換行後的命令提示字元閃爍
STRING:可以使用引號,單引號和雙引號均可使用
單引號:強引用,變數引用不執行替換;
雙引號:弱引用,變數引用執行替換;
如:echo “SHELL’
顯示出來的資訊為 USER結果為echo root
echo ‘echo USER
echo “echo $USER”結果為 echo root
echo echo $USER結果為root
注意:變數引用中的正規參考資料表示法為 ${SHELL},只是很多時候{}可以被省略
shutdown: 關機或重啟命令
文法:shutdown [OPTIONS…][TIME][WARNING…]
選項:
-h:表示關機
-r:表示重啟
-c:表示取消之前定義的關機或重啟操作
TIME:
now:表立即
hh:mm 表示指定的時間點
+m 表示在當前時刻的多少分鐘之後
WARNING:表示提示資訊
例如:shutdown -r +10 “system is going to reboot after 10 minutes”
日期相關的命令:date、clock、hwclock、cal
Linux有兩套時間,一套是硬體時鐘,一套是系統時鐘,系統啟動時,從硬體讀取日期和時間資訊;讀取完成以後,就不在與硬體相關
date:顯示或設定系統時間(顯示和設定系統時鐘)
文法:date [OPTION]… [+FORMAT] 用來顯示時間日期
date [MMDDhhmm[[CC]YY][.ss]] 用來設定時間日期
date -d “STRING” :顯示指定字串的日期
例如:date -d yesterday
date -d “10 days ago” 顯示10天以前的日期
date -d “1 month 10 days ago” 顯示1個月10天之前的日期
date -d “20 days” 顯示20天之後的日期
date –set 20160725 可以將日期設定為2016年7月25日
date –set “20160726 17:25:26”可以設定日期和時間
+FORMAT:表示顯示為指定格式的日期,+為固定格式
FORMAT支援的常用格式有:
%F:顯示為例如2016-07-20的日期格式
%T:顯示為例如08:58:15這樣的時間顯示格式
%Y:顯示年
%m:顯示月
%d:顯示日
%H:顯示幾點
%M:顯示幾分
%S:顯示幾秒
%j:顯示當前數一年中的第多少天,值為1-356
%D:顯示為07/22/16這樣月/日/年格式
%s:顯示時間戳記,也就是從1970年1月1號0點0分0秒到目前時間所經曆的秒數
多個格式之間用空格分隔,可以將整個格式用雙引號引起來
例如:date +“%F %T”
例如:date +“%Y%m%d %H%M%S”
date +“YEAR:%Y Month:%m”
設定時間的例子:
date 072008522016.25 表示修改時間為07月20日08點52分鐘2016年 25秒
clock,hwclock:查詢和設定硬體時鐘(硬體時鐘,可理解為BIOS時鐘)
clock和hwclock為同一套命令,clock是hwclock的永久連結
clock不跟任何資訊,表示顯示硬體時鐘
-s,–hctosys 表示將系統時間設定為跟硬體時間一樣的時間
-w,–systohc 表示將硬體時間設定為跟系統時間一樣的時間
cal:顯示日曆
cal 表示顯示當前這個月的日曆
cal 2016 表示顯示指定年的全年的日曆
cal 07 2016 表示顯示指定年的指定月的日曆
type:顯示命令的類型,是內建命令還是外部命令
例如:type ls
如果原始命令被隱藏,要想使用原始命令,可以使用\ls
whatis COMMAND可以顯示命令的大致功能說明
which:用來顯示命令的完整路徑
文法:which [OPTION]…COMMAND
例如:which ls
選項:
–skip-alias 忽略命令別名,而直接顯示命令本身
whereis:顯示命令的路徑以及相關協助檔案的路徑資訊
文法:whereis [OPTIONS] NAME
例如:whereis ls
選項:
-b僅顯示二進位檔案程式的路徑
-m僅顯示協助檔案的程式的路徑
who:顯示當天系統的有哪些登入使用者
文法:who [OPTIONS]…
who 顯示當前系統的所有登入使用者的資訊
who 顯示當前系統的所有登入使用者的資訊
who -b 顯示系統啟動的時間
who -r 顯示系統啟動的時間,以及當前的系統運行層級
who -d 顯示系統死亡進程的資訊
who -u 顯示各個登入使用者的資訊,包括顯示登入持續時常和登入的進程號
w:增強版的who命令,用於顯示當前所有登入的使用者,及其在操作的動作等詳細資料
命令別名:
alias 可以顯示當前系統上的命令別名資訊
定義命令別名:
alias NAME=’COMMAND’ 只對當前shell有效,立即生效,重啟後失效
例如 alias cds=‘cd /etc/sysconfig/network-scripts/’
撤銷別名:
umalias NAME
例如 unalias cds
hash命令:可以對命令的路徑緩衝至記憶體中
hash 可以查看緩衝的列表
hash -d COMMAND 可以將hash緩衝中包含COMMAND的條目刪除
hash -r 可以清空hash路徑緩衝的緩衝表
screen命令:字元介面實現遠程協助(前提是:連到同一台機器,使用同一個帳號)需要安裝該screen軟體,yum install screen
開啟新共用案頭:screen -S 共用工作階段的名稱
顯示共用案頭會話列表:screen -ls
對方連到建立的共用工作階段上:screen -x 會話名稱
退出會話ctrl+a,d
退出後再次串連上 screen -r 會話的進程號
退出並完全關閉會話exit
在遠程登入的時候,運行一個執行過程比較長的程式(例如備份),為了防止斷網後,
程式斷開,無法知道程式啟動並執行狀態,可以單獨開個screen來運行該程式
命令執行的優先順序:命令別名>內部>外部命令緩衝(hash)>外部命令
十一、課後作業
1、 用echo顯示閃爍的,帶顏色的倒三角
echo -e “\033[背景顏色;字型顏色m字串\033[0m” 背景顏色可省略
echo -e “\033[43;31m nihao \033[0m”
43;31表示前景色彩和背景色
字型顏色:30-37分別表示:黑、紅、綠、黃、藍、紫、天藍、白色
背景顏色:40-47分別表示:黑、紅、綠、黃、藍、紫、天藍、白色
\033[0m是控制選項,0m表示無屬性,1m表示高亮度,4m表示底線,5m表示閃爍,7m表示反顯,8m表示隱藏顯示
echo -e “\033[5m\033[44;32m*\033[0m” 顯示為*號閃爍,如果寫到最後面\033[0m這裡,則會變成顯示完成後換行後的命令提示字元閃爍,故可以:
1.[[email protected] ~]# echo -e "\033[5m\033[31m*******\n ***** \n * \033[0m" #顯示為一個紅色,閃爍的倒三角
2、date顯示前十天前的日期,後20天的日期資訊
date -d “10 days ago” +%F 顯示10天前的日期
date -d “20 days” +%F 顯示20天后的日期
3、screen命令:字元介面實現遠程協助(前提是:連到同一台機器,使用同一個帳號)需要安裝該screen軟體,yum install screen
開啟新共用案頭:screen -S 共用工作階段的名稱
顯示共用案頭會話列表:screen -ls
對方連到建立的共用工作階段上:screen -x 會話名稱
退出會話ctrl+a,d
退出後再次串連上 screen -r 會話的進程號
退出並完全關閉會話exit
在遠程登入的時候,運行一個執行過程比較長的程式(例如備份),為了防止斷網後,
程式斷開,無法知道程式啟動並執行狀態,可以單獨開個screen來運行該程式
探秘linux-電腦基礎