- 計算機操作系統
計算機系統由計算機 硬件和 軟件兩部分組成。硬件包括 中央處理機、 存儲器和 外部設備等;軟件是計算機的運行程序和相應的 文檔。計算機系統具有 接收和存儲信息、按程序快速 計算和判斷并輸出處理結果等功能。常見的系統有Windows,Linux等。
特點
計算機系統的特點是能進行精確、快速的計算和判斷,而且通用性好,使用容易,還能聯成網絡。①計算:一切復雜的計算,幾乎都可用計算機通過 算術運算和邏輯運算來實現。②判斷:計算機有判別不同情況、選擇作不同處理的能力,故可用于管理、控制、對抗、 決策、推理等領域。③存儲:計算機能存儲巨量信息。④精確:只要 字長足夠,計算精度理論上不受限制。⑤快速:計算機一次操作所需時間已小到以納秒計。⑥通用:計算機是可編程的,不同程序可實現不同的應用。⑦易用:豐富的高性能軟件及智能化的人-機 接口,大大方便了使用。⑧聯網:多個計算機系統能超越地理界限,借助 通信網絡,共享遠程信息與軟件資源。
計算機的組成
- 硬件
1946年數學家馮·諾依曼于提出 運算器、控制器、存儲器、輸入設備、輸出設備
馮?諾依曼體系結構
主要由 中央處理器、 存儲器、輸入輸出 控制系統和各種 外部設備組成。中央處理器是對信息進行高速運算處理的主要部件,其處理速度可達每秒幾億次以上操作。存儲器用于 存儲程序、數據和文件,常由快速的 主存儲器(容量可達數百 兆字節,甚至數G字節)和慢速海量 輔助存儲器(容量可達數十G或數百G以上)組成。各種輸入輸出外部設備是人機間的信息轉換器,由 輸入-輸出控制系統管理外部設備與主存儲器(中央處理器)之間的 信息交換。
- 軟件
軟件分為系統軟件、支撐軟件和應用軟件。 系統軟件由操作系統、實用程序、 編譯程序等組成。操作系統實施對各種軟硬件資源的管理控制。實用程序是為方便用戶所設,如文本編輯等。編譯程序的功能是把用戶用匯編語言或某種高級語言所編寫的程序,翻譯成機器可執行的機器語言程序。 支撐軟件有 接口軟件、 工具軟件、 環境數據庫等,它能支持用機的環境,提供 軟件研制工具。 支撐軟件也可認為是系統軟件的一部分。應用軟件是用戶按其需要自行編寫的專用程序,它借助系統軟件和支援軟件來運行,是軟件系統的最外層。
- 發展歷史
1946年,世界上 第一臺計算機EAINC,在美國誕生
第一代計算機(1946-1957) 電子管時代
第二代計算機(1958-1964) 晶體管時代
第三代計算機(1965-1970) 集成電路時代
第四代計算機(1971以后) 大規模集成電路時代
- 服務器
?服務器Server是計算機的一種,是網絡中為客戶端計算機提供各種服務的高性 能的計算機,服務器在網絡操作系統的控制下,將與其相連的硬盤、磁帶、打 印機及昂貴的專用通訊設備提供給網絡上的客戶站點共享,也能為網絡用戶提 供集中計算、信息發布及數據管理等服務 ?
服務器按應用功能可分為: Web服務器、數據庫服務器、文件服務器、中間件應用服務器、日志服務器、監控服務 器,程序版本控制服務器、虛擬機服務器、郵件服務器、打印服務器、域控制服務器、 多媒體服務器、通訊服務器、ERP服務器等 ?
服務器按外形分類: 塔式服務器、機架式服務器、刀片式服務器
- CPU
CPU是Central Processing Unit的縮寫,即中央處理器。由控制器和運算器構 成,是整個計算機系統中最重要的部分
1)主頻:主頻是CPU的時鐘頻率(CPU Clock Speed),是CPU運算時的工作的頻 率(1秒內發生的同步脈沖數)的簡稱。單位是Hz。一般說來,主頻越高,CPU 的速度越快,由于內部結構不同,并非所有的時鐘頻率相同的CPU的性能都一 樣 ?
2)外頻:系統總線的工作頻率, CPU與外部(主板芯片組)交換數據、指令的工 作時鐘頻率
3)倍頻:倍頻則是指CPU外頻與主頻相差的倍數 ?
三者關系是:主頻=外頻x倍頻 ?高速緩存(cache):高速交換的存儲器。CPU緩存分為一級,二級,三級緩存, 即L1,L2,L3 ?
內存總線速度(Memory-Bus Speed): 一般等同于CPU的外頻,指CPU與二級 (L2)高速緩存和內存之間的通信速度 ?
地址總線寬度:決定了CPU可以訪問的物理地址空間
CPU類型有x86 ?X64(CISC) ?ARM(Acorn RISC Machine) ?m68000, m68k(moto) ?Power(IBM) ?Powerpc(apple,ibm,moto) ?Ultrasparc (Sun) ?Alpha(HP) ?安騰(compaq)
- 服務器分類
按照CPU體系架構來區分,服務器主要分為兩類: ?
非x86服務器:使用RISC(精簡指令集)或EPIC(并行指令代碼) 處理器,并 且主要采用UNIX和其它專用操作系統的服務器,指令系統相對簡單,它只要求 硬件執行很有限且最常用的那部分執令,CPU主要有Compaq的Alpha、HP的 PA-RISC、IBM的Power PC、MIPS的MIPS和SUN的Sparc、Intel研發的EPIC 安騰處理器等。這種服務器價格昂貴,體系封閉,但是穩定性好,性能強,主 要用在金融、電信等大型企業的核心系統 ?
x86服務器:又稱CISC(復雜指令集)架構服務器,即通常所講的PC服務器, 它是基于PC機體系結構,使用Intel或其它兼容x86指令集的處理器芯片的服務 器。目前主要為intel的Xeon E3,E5,E7系列,價格相對便宜、兼容性好、穩 定性較差、安全性不算太高
- 服務器硬件—CPU分為
4路及4路以上服務器(企業級服務器) ?2路服務器(部門級服務器) ?1路服務器(入門級服務器)
- 主板
主板mainboard、系統板systemboard或母板motherboard,安裝在機箱內, 是計算機最基本的也是最重要的部件之一 ?
主板一般為矩形電路板,上面安裝了組成計算機的主要電路系統,一般有BIOS 芯片、I/O控制芯片、鍵盤和面板控制開關接口、指示燈插接件、擴充插槽、主 板及插卡的直流電源供電接插件等元件
- 內存
內存是介于CPU 和外部存儲之間,是CPU 對外部存儲中程序與數據進行高速運 算時存放程序指令、數據和中間結果的臨時場所,它的物理實質就是一組具備 數據輸入輸出和數據存儲功能的高速集成電路 ?
內存是CPU能直接尋址的存儲空間,由半導體器件制成。內存的特點是存取速 度快 ?計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大。 ?
外存:硬盤,U盤,軟盤,光盤 ?
內存和外存的區別: 內存斷電后數據丟失 外存斷電后數據可以保存
- 硬盤
結構:存儲介質——盤片;讀寫頭——磁頭;馬達
硬盤接口類型:IDE、SCSI、SATA、SAS(主流硬盤接口為后兩種)
服務器支持熱插拔技術(常見設備:硬盤、電源、PCI設備、風扇)
- 存儲
DAS:直接連接存儲;
NAS:網絡連接存儲;
SNA:存儲區域網絡
ISCSI基于以太網網絡實現的,實現SNA,提供磁盤空間
- 操作系統
操作系統OS(Operating? System) ,通用目的的軟件程序(硬件驅動、進程管理、內存管理、網絡管理、安全管理、文件管理)
開發接口標準
ABI(Application Binary? Interface)應用程序與操作系統通信交互的接口
API(Application? Programming?? Interface)定義源碼和庫之間的接口
POSIX:Portable?? Operating?? System?? Interface??? IEEE在操作系統上定義的一系列API標準
- 用戶和內核空間:
user space? 用戶空間:在此處可工作用戶程序,只執行簡單計算
kernel? space? 內核空間:具有訪問硬件的權限,可執行任意命令
Linux基礎知識
linux內核版本:主版本號、次版本號、末版本號、編譯版本號、廠商版本號
- Linux哲學思想:
一切皆文件(包括硬件)
小型,單一用途的程序
鏈接程序,共同完成復雜任務
避免令人困惑的用戶界面(不用圖形界面)
配置數據存儲在文本中(windows中數據大部分放在注冊表中)
- 分區介紹
主分區(1-4):一塊硬盤最多四個,不可分小區,可用來啟動操作系統(系統分區:一定是主分區),直接建文件系統,存放數據
擴展分區:一塊硬盤最多只有1個,加上主分區最多四個,不能建文件系統NTFS,FAT,可以再劃分更小的分區
邏輯分區(5-~):可以創建文件系統,可存放數據,不可再分
啟動分區:安裝操作系統(OS)的分區
活動分區:一個硬盤多個主分區,只有一個是活動分區
- Linux的命令提示符
命令提示符:prompt
[root@localhost ~]#
# 管理員 ?????$ 普通用戶 ?
顯示提示符格式[root@localhost ~]#echo $PS1 ?
修改提示符格式 PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]”
\e \033 ???\u 當前用戶 ??\h 主機名簡稱 ??\H 主機名 ??\w 當前工作目錄 ??\W 當前工作目錄基名 ??\t 24小時時間格式 ???\T ?12小時時間格式? ?\! 命令歷史數 ?\# 開機后命令歷史數
Linux目錄文件的學習:
/為根目錄;
/user(相當于Windows中的windows progrom files文件);
/home(用戶);
/tmp(存放臨時信息);
/var(存放變化數據);
/var/log(存放日志文件);
/etc(存放配置數據);
/boot(存放啟動數據);
/dev(存放硬件)
Linux的常用命令
cat:??? ??指定要連接的文件列表
選項
-n或-number:有1開始對所有輸出的行數編號;
-b或–number-nonblank:和-n相似,只不過對于空白行不編號;
-s或–squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行;
-A:顯示不可打印字符,行尾顯示“$”;
-e:等價于”-vE”選項;
-t:等價于”-vT”選項;
實例
設ml和m2是當前目錄下的兩個文件
cat m1 (在屏幕上顯示文件ml的內容)
cat m1 m2 (同時顯示文件ml和m2的內容)
cat m1 m2 > file (將文件ml和m2合并后放入文件file中)
alias:?? 命令別名設置:定義命令別名,格式為“命令別名=‘實際命令’”。
選項
-p:打印已經設置的命令別名。
實例
alias l=‘ls -lsh’將重新定義ls命令,現在只需輸入l就可以列目錄了。直接輸入 alias 命令會列出當前系統中所有已經定義的命令別名。
unalias:??? 撤消別名
選項
-a:取消所有別名
實例
unalias [-a] name [name …]
如果別名同原命令同名,如果要執行原命令,可使用
\ALIASNAME “ALIASNAME” ’ALIASNAME’ command ALIASNAME /path/command
date:??? 指定顯示時使用的日期時間格式
選項
-d<字符串>:顯示字符串所指的日期與時間。字符串前后必須加上雙引號;
-s<字符串>:根據字符串來設置日期與時間。字符串前后必須加上雙引號;
-u:顯示GMT;
–help:在線幫助;
–version:顯示版本信息。
實例
格式化輸出:
date +”%Y-%m-%d”
2009-12-07
輸出昨天日期:
date -d “1 day ago” +”%Y-%m-%d”
2012-11-19
2秒后輸出:
date -d “2 second” +”%Y-%m-%d %H:%M.%S”
2012-11-20 14:21.31
傳說中的 1234567890 秒:
date -d “1970-01-01 1234567890 seconds” +”%Y-%m-%d %H:%m:%S”
2009-02-13 23:02:30
普通轉格式:
date -d “2009-12-12″ +”%Y/%m/%d %H:%M.%S”
2009/12/12 00:00.00
apache格式轉換:
date -d “Dec 5, 2009 12:00:37 AM” +”%Y-%m-%d %H:%M.%S”
2009-12-05 00:00.37
格式轉換后時間游走:
date -d “Dec 5, 2009 12:00:37 AM 2 year ago” +”%Y-%m-%d %H:%M.%S”
2007-12-05 00:00.37
加減操作:
date +%Y%m%d?????????????????? //顯示前天年月日
date -d “+1 day” +%Y%m%d?????? //顯示前一天的日期
date -d “-1 day” +%Y%m%d?????? //顯示后一天的日期
date -d “-1 month” +%Y%m%d???? //顯示上一月的日期
date -d “+1 month” +%Y%m%d???? //顯示下一月的日期
date -d “-1 year” +%Y%m%d????? //顯示前一年的日期
date -d “+1 year” +%Y%m%d????? //顯示下一年的日期
設定時間:
date -s??????????????????????? //設置當前時間,只有root權限才能設置,其他只能查看
date -s 20120523?????????????? //設置成20120523,這樣會把具體時間設置成空00:00:00
date -s 01:01:01?????????????? //設置具體時間,不會對日期做更改
date -s “01:01:01 2012-05-23”? //這樣可以設置全部時間
echo: ???變量:指定要打印的變量
選項
\a 發出警告聲;
\b 刪除前一個字符;
\c 最后不加上換行符號;
\f 換行但光標仍舊停留在原來的位置;
\n 換行且光標移至行首;
\r 光標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進制)所代表的ASCII字符;
實例
用echo命令打印帶有色彩的文字:
文字色:
echo -e “\e[1;31mThis is red text\e[0m”
This is red text
\e[1;31m 將顏色設置為紅色
\e[0m 將顏色重新置回
顏色碼:重置=0,黑色=30,紅色=31,綠色=32,黃色=33,藍色=34,洋紅=35,青色=36,白色=37
背景色:
echo -e “\e[1;42mGreed Background\e[0m”
Greed Background
顏色碼:重置=0,黑色=40,紅色=41,綠色=42,黃色=43,藍色=44,洋紅=45,青色=46,白色=47
文字閃動:
echo -e “\033[37;31;5mMySQL Server Stop…\033[39;49;0m”
紅色數字處還有其他數字參數:0 關閉所有屬性、1 設置高亮度(加粗)、4 下劃線、5 閃爍、7 反顯、8 消隱
history:???? 打印最近的n條歷史命令
選項
-c:清空當前歷史命令;
-a:將歷史命令緩沖區中命令寫入歷史命令文件中;
-r:將歷史命令文件中的命令讀入當前歷史命令緩沖區;
-w:將當前歷史命令緩沖區命令寫入歷史命令文件中
實例
使用history命令顯示最近使用的10條歷史命令,輸入如下命令:
[root@localhost ~]# history 10
92? ls
93? cd ..
94? ls
95? exit
96? ls -a
97? cd .ssh/
98? ls
99? cat known_hosts
100? exit
101? history 10
help:??? 內部命令:指定需要顯示幫助信息的shell內部命令
選項
-s:輸出短格式的幫助信息。僅包括命令格式
實例
help
whatis:????? 用于查詢一個命令執行什么功能,并將查詢結果打印到終端上
實例
[root@localhost ~]# whatis ls
ls?????????????????? (1)? – list directory contents
ls?????????????????? (1p)? – list directory contents
[root@localhost ~]# whatis cp
cp?????????????????? (1)? – copy files and directories
cp?????????????????? (1p)? – copy files
[root@localhost ~]# whatis chown
chown??????????????? (1)? – change file owner and group
chown??????????????? (1p)? – change the file ownership
chown??????????????? (2)? – change ownership of a file
chown??????????????? (3p)? – change owner and group of a file
[root@localhost ~]# whatis man
man????????????????? (1)? – format and display the on-line manual pages
man????????????????? (1p)? – display system documentation
man????????????????? (7)? – macros to format man pages
man???????????????? (rpm) – A set of documentation tools: man, apropos and whatis.
man-pages?????????? (rpm) – Man (manual) pages from the Linux Documentation Project.
man.config [man]???? (5)? – configuration data for man
man:?????? 以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息
選項
-a:在所有的man幫助手冊中搜索;
-f:等價于whatis指令,顯示給定關鍵字的簡短描述信息;
-P:指定內容時使用分頁程序;
-M:指定man手冊搜索的路徑。
實例
我們輸入man ls,它會在最左上角顯示“LS(1)”,在這里,“LS”表示手冊名稱,而“(1)”表示該手冊位于第一節章,同樣,我們輸man ifconfig它會在最左上角顯示“IFCONFIG(8)”。也可以這樣輸入命令:“man [章節號] 手冊名稱”。
man是按照手冊的章節號的順序進行搜索的,比如:
man sleep
只會顯示sleep命令的手冊,如果想查看庫函數sleep,就要輸入:
man 3 sleep
info:??? Linux下info格式的幫助指令
選項
-d:添加包含info格式幫助文檔的目錄;
-f:指定要讀取的info格式的幫助文檔;
-n:指定首先訪問的info幫助文件的節點;
-o:輸出被選擇的節點內容到指定文件。
實例
在info后面輸入命令的名稱就可以查看該命令的info幫助文檔了:
info info
快捷鍵的使用
?鍵:它就會顯示info的常用快捷鍵。
N鍵:顯示(相對于本節點的)下一節點的文檔內容。
P鍵:顯示(相對于本節點的)前一節點的文檔內容。
U鍵:進入當前命令所在的主題。
M鍵:敲M鍵后輸入命令的名稱就可以查看該命令的幫助文檔了。
G鍵:敲G鍵后輸入主題名稱,進入該主題。
L鍵:回到上一個訪問的頁面。
SPACE鍵:向前滾動一頁。
BACKUP或DEL鍵:向后滾動一頁。
Q:退出info。
命令
????? 顯示幫助窗口
在幫助窗口中:
Ctrl-x 0????????? 關閉幫助窗口
Ctrl-x Ctrl-c??? 關閉整個 Info
q????? 退出 info
n????? 打開與本 Node 關聯的下一個 Node
p????? 打開與本 Node 關聯的前一個 Node
u????? 打開與本 Node 關聯的上一個 Node
l????? 回到上一次訪問的 Node
m或g?? 選擇一個菜單項(Node 的名字)
輸入指定菜單的名字后按回車,打開指定菜單項關聯的 Node
空格鍵 下一頁(PageDown 也可以,下一頁從當前頁的最后兩行開始算起)
下一個 Node (若當前頁在 Node 文檔的末尾)
Del 鍵 上一頁(PageUp 也可以,上一頁從當前頁的開始兩行開始算起)
上一個 Node (若當前頁 Node 文檔的開始)
b 或 t 或 Home?? 文檔的開始(b 是 begining 的意思)
e 或 End???????? 文檔的末尾(b 是 ending 的意思)
Ctrl-l??? 刷新當前頁,若當前文檔顯示情況有問題時
Ctrl-g??? 取消所鍵入的指令
cd:????? 用來切換工作目錄至dirname。 其中dirName表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的home directory(也就是剛login時所在的目錄)。另外,~也表示為home directory的意思,.則是表示目前所在的目錄,..則表示目前目錄位置的上一層目錄。
選項
-p 如果要切換到的目標目錄是一個符號連接,直接切換到符號連接指向的目標目錄
-L 如果要切換的目標目錄是一個符號的連接,直接切換到字符連接名代表的目錄,而非符號連接所指向的目標目錄。
– 當僅實用”-“一個選項時,當前工作目錄將被切換到環境變量”OLDPWD”所表示的目錄。
實例
cd??? 進入用戶主目錄;
cd ~? 進入用戶主目錄;
cd –? 返回進入此目錄之前所在的目錄;
cd ..? 返回上級目錄(若當前目錄為“/“,則執行完后還在“/”;”..”為上級目錄的意思);
cd ../..? 返回上兩級目錄;
cd !$? 把上個命令的參數作為cd參數使用。
cp:?????? 將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。
選項
-a:此參數的效果和同時指定”-dpR”參數相同;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時,才復制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
實例
如果把一個文件復制到一個目標文件中,而目標文件已經存在,那么,該目標文件的內容將被破壞。此命令中所有參數既可以是絕對路徑名,也可以是相對路徑名。通常會用到點.或點點..的形式。例如,下面的命令將指定文件復制到當前目錄下:
cp ../mary/homework/assign .
所有目標文件指定的目錄必須是己經存在的,cp命令不能創建目錄。如果沒有文件復制的權限,則系統會顯示出錯信息。
將文件file復制到目錄/usr/men/tmp下,并改名為file1
cp file /usr/men/tmp/file1
將目錄/usr/men下的所有文件及其子目錄復制到目錄/usr/zh中
cp -r /usr/men /usr/zh
交互式地將目錄/usr/men中的以m打頭的所有.c文件復制到目錄/usr/zh中
cp -i /usr/men m*.c /usr/zh
我們在Linux下使用cp命令復制文件時候,有時候會需要覆蓋一些同名文件,覆蓋文件的時候都會有提示:需要不停的按Y來確定執行覆蓋。文件數量不多還好,但是要是幾百個估計按Y都要吐血了,于是折騰來半天總結了一個方法:
cp aaa/* /bbb
復制目錄aaa下所有到/bbb目錄下,這時如果/bbb目錄下有和aaa同名的文件,需要按Y來確認并且會略過aaa目錄下的子目錄。
cp -r aaa/* /bbb
這次依然需要按Y來確認操作,但是沒有忽略子目錄。
cp -r -a aaa/* /bbb
依然需要按Y來確認操作,并且把aaa目錄以及子目錄和文件屬性也傳遞到了/bbb。
\cp -r -a aaa/* /bbb
成功,沒有提示按Y、傳遞了目錄屬性、沒有略過目錄。
pwd:???? 以絕對路徑的方式顯示用戶當前工作目錄。命令將當前目錄的全路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/分隔。第一個/表示根目錄,最后一個目錄是當前目錄。執行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱
選項
–help:顯示幫助信息;–version:顯示版本信息。
實例
[root@localhost ~]# pwd
/root
rm:?? ??可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。
選項
-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
–preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執行過程。
實例
交互式刪除當前目錄下的文件test和example
rm -i test example
Remove test ?n(不刪除文件test)
Remove example ?y(刪除文件example)
刪除當前目錄下除隱含文件外的所有文件和子目錄
# rm -r *
mv:??? 用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。source表示源文件或目錄,target表示目標文件或目錄。如果將一個文件移到一個已經存在的目標文件中,則目標文件的內容將被覆蓋
選項
–backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當文件存在時,覆蓋前,為其創建一個備份;
-f:若目標文件或目錄與現有的文件或目錄重復,則直接覆蓋現有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標文件或目標目錄中的文件同名,則詢問用戶是否覆蓋目標文件。用戶輸入”y”,表示將覆蓋目標文件;輸入”n”,表示取消對源文件的移動。這樣可以避免誤將文件覆蓋。
–strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<后綴>:為備份文件指定后綴,而不使用默認的后綴;
–target-directory=<目錄>:指定源文件要移動到目標目錄;
-u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。
實例
將文件ex3改名為new1
mv ex3 new1
將目錄/usr/men中的所有文件移到當前目錄(用.表示)中:
mv /usr/men/* .
mkdir: ???用來創建目錄。該命令創建由dirname命名的目錄。如果在目錄名的前面沒有加任何路徑名,則在當前目錄下創建由dirname指定的目錄;如果給出了一個已經存在的路徑,將會在該目錄下創建一個指定的目錄。在創建目錄時,應保證新建的目錄與它所在目錄下的文件沒有重名。
選項
-Z:設置安全上下文,當使用SELinux時有效;
-m<目標屬性>或–mode<目標屬性>建立目錄的同時設置目錄的權限;
-p或–parents 若所要建立目錄的上層目錄目前尚未建立,則會一并建立上層目錄;
–version 顯示版本信息。
實例
在目錄/usr/meng下建立子目錄test,并且只有文件主有讀、寫和執行權限,其他人無權訪問
mkdir -m 700 /usr/meng/test
在當前目錄中建立bin和bin下的os_1目錄,權限設置為文件主可讀、寫、執行,同組用戶可讀和執行,其他用戶無權訪問
mkdir -p-m 750 bin/os_1
ls:???????? 用來顯示目標列表,在Linux中是使用率較高的命令。ls命令的輸出信息可以進行彩色加亮顯示,以分區不同類型的文件
選項
-a:顯示所有檔案及目錄(ls內定將檔案名或目錄名稱為“.”的視為影藏,不會列出);
-A:顯示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列顯示輸出結果。這是默認選項;
-l:與“-C”選項功能相反,所有輸出信息用單列格式輸出,不輸出為多列;
-F:在每個輸出項后追加文件的類型標識符,具體含義:“*”表示具有可執行權限的普通文件,“/”表示目錄,“@”表示符號鏈接,“|”表示命令管道FIFO,“=”表示sockets套接字。當文件為普通文件時,不輸出任何標識符;
-b:將文件中的不可輸出的字符以反斜線“”加字符編碼的方式輸出;
-c:與“-lt”選項連用時,按照文件狀態時間排序輸出目錄內容,排序的依據是文件的索引節點中的ctime字段。與“-l”選項連用時,則排序的一句是文件的狀態改變時間;
-d:僅顯示目錄名,而不顯示目錄下的內容列表。顯示符號鏈接文件本身,而不顯示其所指向的目錄列表;
-f:此參數的效果和同時指定“aU”參數相同,并關閉“lst”參數的效果;
-i:顯示文件索引節點號(inode)。一個索引節點代表一個文件;
–file-type:與“-F”選項的功能相同,但是不顯示“*”;
-k:以KB(千字節)為單位顯示文件大??;
-l:以長格式顯示目錄下的內容列表。輸出的信息從左到右依次包括文件名,文件類型、權限模式、硬連接數、所有者、組、文件大小和文件的最后修改時間等;
-m:用“,”號區隔每個文件和目錄的名稱;
-n:以用戶識別碼和群組識別碼替代其名稱;
-r:以文件名反序排列并輸出目錄內容列表;
-s:顯示文件和目錄的大小,以區塊為單位;
-t:用文件和目錄的更改時間排序;
-L:如果遇到性質為符號鏈接的文件或目錄,直接列出該鏈接所指向的原始文件或目錄;
-R:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;
–full-time:列出完整的日期與時間;
–color[=WHEN]:使用不同的顏色高亮顯示不同類型的
實例
顯示當前目錄下非影藏文件與目錄
[root@localhost ~]# ls
anaconda-ks.cfg? install.log? install.log.syslog? satools
顯示當前目錄下包括影藏文件在內的所有文件列表
root@localhost ~]# ls -a
.?? anaconda-ks.cfg? .bash_logout?? .bashrc? install.log???????? .mysql_history? satools? .tcshrc?? .vimrc
..? .bash_history??? .bash_profile? .cshrc?? install.log.syslog? .rnd??????????? .ssh???? .viminfo
輸出長格式列表
[root@localhost ~]# ls -1
anaconda-ks.cfg
install.log
install.log.syslog
satools
顯示文件的inode信息
索引節點(index inode簡稱為“inode”)是Linux中一個特殊的概念,具有相同的索引節點號的兩個文本本質上是同一個文件(除文件名不同外)。
[root@localhost ~]# ls -i -l anaconda-ks.cfg install.log
2345481 -rw——- 1 root root?? 859 Jun 11 22:49 anaconda-ks.cfg
2345474 -rw-r–r– 1 root root 13837 Jun 11 22:49 install.log
水平輸出文件列表
[root@localhost /]# ls -m
bin, boot, data, dev, etc, home, lib, lost+found, media, misc, mnt, opt, proc, root, sbin, selinux, srv, sys, tmp, usr, var
修改最后一次編輯的文件
最近修改的文件顯示在最上面。
[root@localhost /]# ls -t
tmp? root? etc? dev? lib? boot? sys? proc? data? home? bin? sbin? usr? var? lost+found? media? mnt? opt? selinux? srv? misc
顯示遞歸文件
[root@localhost ~]# ls -R
.:
anaconda-ks.cfg? install.log? install.log.syslog? satools
./satools:
black.txt? freemem.sh? iptables.sh? lnmp.sh? mysql? php502_check.sh? ssh_safe.sh
打印文件的UID和GID
[root@localhost /]# ls -n
total 254
drwxr-xr-x?? 2 0 0? 4096 Jun 12 04:03 bin
drwxr-xr-x?? 4 0 0? 1024 Jun 15 14:45 boot
drwxr-xr-x?? 6 0 0? 4096 Jun 12 10:26 data
drwxr-xr-x? 10 0 0? 3520 Sep 26 15:38 dev
drwxr-xr-x? 75 0 0? 4096 Oct 16 04:02 etc
drwxr-xr-x?? 4 0 0? 4096 Jun 12 10:26 home
drwxr-xr-x? 14 0 0 12288 Jun 16 04:02 lib
drwx——?? 2 0 0 16384 Jun 11 22:46 lost+found
drwxr-xr-x?? 2 0 0? 4096 May 11? 2011 media
drwxr-xr-x?? 2 0 0? 4096 Nov? 8? 2010 misc
drwxr-xr-x?? 2 0 0? 4096 May 11? 2011 mnt
drwxr-xr-x?? 2 0 0? 4096 May 11? 2011 opt
dr-xr-xr-x 232 0 0???? 0 Jun 15 11:04 proc
drwxr-x—?? 4 0 0? 4096 Oct 15 14:43 root
drwxr-xr-x?? 2 0 0 12288 Jun 12 04:03 sbin
drwxr-xr-x?? 2 0 0? 4096 May 11? 2011 selinux
drwxr-xr-x?? 2 0 0? 4096 May 11? 2011 srv
drwxr-xr-x? 11 0 0???? 0 Jun 15 11:04 sys
drwxrwxrwt?? 3 0 0 98304 Oct 16 08:45 tmp
drwxr-xr-x? 13 0 0? 4096 Jun 11 23:38 usr
drwxr-xr-x? 19 0 0? 4096 Jun 11 23:38 var
列出文件和文件夾的詳細信息
[root@localhost /]# ls -l
total 254
drwxr-xr-x?? 2 root root? 4096 Jun 12 04:03 bin
drwxr-xr-x?? 4 root root? 1024 Jun 15 14:45 boot
drwxr-xr-x?? 6 root root? 4096 Jun 12 10:26 data
drwxr-xr-x? 10 root root? 3520 Sep 26 15:38 dev
drwxr-xr-x? 75 root root? 4096 Oct 16 04:02 etc
drwxr-xr-x?? 4 root root? 4096 Jun 12 10:26 home
drwxr-xr-x? 14 root root 12288 Jun 16 04:02 lib
drwx——?? 2 root root 16384 Jun 11 22:46 lost+found
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 media
drwxr-xr-x?? 2 root root? 4096 Nov? 8? 2010 misc
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 mnt
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 opt
dr-xr-xr-x 232 root root???? 0 Jun 15 11:04 proc
drwxr-x—?? 4 root root? 4096 Oct 15 14:43 root
drwxr-xr-x?? 2 root root 12288 Jun 12 04:03 sbin
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 selinux
drwxr-xr-x?? 2 root root? 4096 May 11 ?2011 srv
drwxr-xr-x? 11 root root???? 0 Jun 15 11:04 sys
drwxrwxrwt?? 3 root root 98304 Oct 16 08:48 tmp
drwxr-xr-x? 13 root root? 4096 Jun 11 23:38 usr
drwxr-xr-x? 19 root root? 4096 Jun 11 23:38 var
列出可讀文件和文件夾詳細信息
[root@localhost /]# ls –lh
total 254K
drwxr-xr-x?? 2 root root 4.0K Jun 12 04:03 bin
drwxr-xr-x?? 4 root root 1.0K Jun 15 14:45 boot
drwxr-xr-x?? 6 root root 4.0K Jun 12 10:26 data
drwxr-xr-x? 10 root root 3.5K Sep 26 15:38 dev
drwxr-xr-x? 75 root root 4.0K Oct 16 04:02 etc
drwxr-xr-x?? 4 root root 4.0K Jun 12 10:26 home
drwxr-xr-x? 14 root root? 12K Jun 16 04:02 lib
drwx——?? 2 root root? 16K Jun 11 22:46 lost+found
drwxr-xr-x?? 2 root root 4.0K May 11? 2011 media
drwxr-xr-x?? 2 root root 4.0K Nov? 8? 2010 misc
drwxr-xr-x?? 2 root root 4.0K May 11? 2011 mnt
drwxr-xr-x?? 2 root root 4.0K May 11? 2011 opt
dr-xr-xr-x 235 root root??? 0 Jun 15 11:04 proc
drwxr-x—?? 4 root root 4.0K Oct 15 14:43 root
drwxr-xr-x?? 2 root root? 12K Jun 12 04:03 sbin
drwxr-xr-x?? 2 root root 4.0K May 11? 2011 selinux
drwxr-xr-x?? 2 root root 4.0K May 11? 2011 srv
drwxr-xr-x? 11 root root??? 0 Jun 15 11:04 sys
drwxrwxrwt?? 3 root root? 96K Oct 16 08:49 tmp
drwxr-xr-x? 13 root root 4.0K Jun 11 23:38 usr
drwxr-xr-x? 19 root root 4.0K Jun 11 23:38 var
顯示文件夾信息
[root@localhost /]# ls -ld /etc/
drwxr-xr-x 75 root root 4096 Oct 16 04:02 /etc/
按時間列出文件和文件夾詳細信息
[root@localhost /]# ls -lt
total 254
drwxrwxrwt?? 3 root root 98304 Oct 16 08:53 tmp
drwxr-xr-x? 75 root root? 4096 Oct 16 04:02 etc
drwxr-x—?? 4 root root? 4096 Oct 15 14:43 root
drwxr-xr-x? 10 root root? 3520 Sep 26 15:38 dev
drwxr-xr-x? 14 root root 12288 Jun 16 04:02 lib
drwxr-xr-x?? 4 root root? 1024 Jun 15 14:45 boot
drwxr-xr-x? 11 root root???? 0 Jun 15 11:04 sys
dr-xr-xr-x 232 root root???? 0 Jun 15 11:04 proc
drwxr-xr-x?? 6 root root? 4096 Jun 12 10:26 data
drwxr-xr-x?? 4 root root? 4096 Jun 12 10:26 home
drwxr-xr-x?? 2 root root? 4096 Jun 12 04:03 bin
drwxr-xr-x?? 2 root root 12288 Jun 12 04:03 sbin
drwxr-xr-x? 13 root root? 4096 Jun 11 23:38 usr
drwxr-xr-x? 19 root root? 4096 Jun 11 23:38 var
drwx——?? 2 root root 16384 Jun 11 22:46 lost+found
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 media
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 mnt
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 opt
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 selinux
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 srv
drwxr-xr-x?? 2 root root? 4096 Nov? 8? 2010 misc
按修改時間列出文件和文件夾詳細信息
[root@localhost /]# ls -ltr
total 254
drwxr-xr-x?? 2 root root? 4096 Nov? 8? 2010 misc
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 srv
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 selinux
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 opt
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 mnt
drwxr-xr-x?? 2 root root? 4096 May 11? 2011 media
drwx——?? 2 root root 16384 Jun 11 22:46 lost+found
drwxr-xr-x? 19 root root? 4096 Jun 11 23:38 var
drwxr-xr-x? 13 root root? 4096 Jun 11 23:38 usr
drwxr-xr-x?? 2 root root 12288 Jun 12 04:03 sbin
drwxr-xr-x?? 2 root root? 4096 Jun 12 04:03 bin
drwxr-xr-x?? 4 root root? 4096 Jun 12 10:26 home
drwxr-xr-x?? 6 root root? 4096 Jun 12 10:26 data
dr-xr-xr-x 232 root root???? 0 Jun 15 11:04 proc
drwxr-xr-x? 11 root root???? 0 Jun 15 11:04 sys
drwxr-xr-x?? 4 root root? 1024 Jun 15 14:45 boot
drwxr-xr-x? 14 root root 12288 Jun 16 04:02 lib
drwxr-xr-x? 10 root root? 3520 Sep 26 15:38 dev
drwxr-x—?? 4 root root? 4096 Oct 15 14:43 root
drwxr-xr-x? 75 root root? 4096 Oct 16 04:02 etc
drwxrwxrwt?? 3 root root 98304 Oct 16 08:54 tmp
按照特殊字符對文件進行分類
[root@localhost nginx-1.2.1]# ls -F
auto/? CHANGES? CHANGES.ru? conf/? configure*? contrib/? html/? LICENSE? Makefile? man/? objs/? README? src/
列出文件并標記顏色分類
[root@localhost nginx-1.2.1]# ls –color=auto
auto? CHANGES? CHANGES.ru? conf? configure? contrib? html? LICENSE? Makefile? man? objs? README? src
touch?????? 一是用于把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來;二是用來創建新的空文件
選項
-a:或–time=atime或–time=access或–time=use? 只更改存取時間;
-c:或–no-create? 不建立任何文件;
-d:<時間日期> 使用指定的日期時間,而非現在的時間;
-f:此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題;
-m:或–time=mtime或–time=modify? 只更該變動時間;
-r:<參考文件或目錄>? 把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同;
-t:<日期時間>? 使用指定的日期時間,而非現在的時間;
–help:在線幫助;
–version:顯示版本信息
實例
touch ex2
在當前目錄下建立一個空文件ex2,然后,利用ls -l命令可以發現文件ex2的大小為0,表示它是空文件。
ln???????? 用來為文件創件連接,連接類型分為硬連接和符號連接兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用”-s”選項。
選項
b或–backup:刪除,覆蓋目標文件之前的備份;
-d或-F或——directory:建立目錄的硬連接;
-f或——force:強行建立文件或目錄的連接,不論文件或目錄是否存在;
-i或——interactive:覆蓋既有文件之前先詢問用戶;
-n或–no-dereference:把符號連接的目的目錄視為一般文件;
-s或——symbolic:對源文件建立符號連接,而非硬連接;
-S<字尾備份字符串>或–suffix=<字尾備份字符串>:用”-b”參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,預設的備份字符串是符號“~”,用戶可通過“-S”參數來改變它;
-v或——verbose:顯示指令執行過程;
-V<備份方式>或–version-control=<備份方式>:用“-b”參數備份目標文件后,備份文件的字尾會被加上一個備份字符串,這個字符串不僅可用“-S”參數變更,當使用“-V”參數<備份方式>指定不同備份方式時,也會產生不同字尾的備份字符串;
–help:在線幫助;
–version:顯示版本信息。
實例
將目錄/usr/mengqc/mub1下的文件m2.c鏈接到目錄/usr/liu下的文件a2.c
cd /usr/mengqc
ln /mub1/m2.c /usr/liu/a2.c
在執行ln命令之前,目錄/usr/liu中不存在a2.c文件。執行ln之后,在/usr/liu目錄中才有a2.c這一項,表明m2.c和a2.c鏈接起來(注意,二者在物理上是同一文件),利用ls -l命令可以看到鏈接數的變化。
在目錄/usr/liu下建立一個符號鏈接文件abc,使它指向目錄/usr/mengqc/mub1
ln -s /usr/mengqc/mub1 /usr/liu/abc
執行該命令后,/usr/mengqc/mub1代表的路徑將存放在名為/usr/liu/abc的文件中
dd??????? 用于復制文件并對原文件的內容進行轉換和格式化處理。dd命令功能很強大的,對于一些比較底層的問題,使用dd命令往往可以得到出人意料的效果。用的比較多的還是用dd來備份裸設備。但是不推薦,如果需要備份oracle裸設備,可以使用rman備份,或使用第三方軟件備份,使用dd的話,管理起來不太方便
選項
bs=<字節數>:將ibs(輸入)與歐巴桑(輸出)設成指定的字節數;
cbs=<字節數>:轉換時,每次只轉換指定的字節數;
conv=<關鍵字>:指定文件轉換的方式;
count=<區塊數>:僅讀取指定的區塊數;
ibs=<字節數>:每次讀取的字節數;
obs=<字節數>:每次輸出的字節數;
of=<文件>:輸出到文件;
seek=<區塊數>:一開始輸出時,跳過指定的區塊數;
skip=<區塊數>:一開始讀取時,跳過指定的區塊數;
–help:幫助;
–version:顯示版本信息。
實例
root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s
[root@localhost text]# du -sh sun.txt
1.1M??? sun.txt
rename?????????? 用字符串替換的方式批量改變文件名
選項
原字符串:將文件名需要替換的字符串;
目標字符串:將文件名中含有的原字符替換成目標字符串;
文件:指定要改變文件名的文件列表
實例
將main1.c重命名為main.c
rename main1.c main.c main1.c
rename支持通配符
?? 可替代單個字符
*? 可替代多個字符
[charset]? 可替代charset集中的任意單個字符
文件夾中有這些文件foo1, …, foo9, foo10, …, foo278
如果使用rename foo foo0 foo?,會把foo1到foo9的文件重命名為foo01到foo09,重命名的文件只是有4個字符長度名稱的文件,文件名中的foo被替換為foo0。
如果使用rename foo foo0 foo??,foo01到foo99的所有文件都被重命名為foo001到foo099,只重命名5個字符長度名稱的文件,文件名中的foo被替換為foo0。
如果使用rename foo foo0 foo*,foo001到foo278的所有文件都被重命名為foo0001到foo0278,所有以foo開頭的文件都被重命名。
如果使用rename foo0 foo foo0[2]*,從foo0200到foo0278的所有文件都被重命名為foo200到foo278,文件名中的foo0被替換為foo。
rename支持正則表達式
字母的替換
rename “s/AA/aa/” *? //把文件名中的AA替換成aa
修改文件的后綴
rename “s//.html//.php/” *???? //把.html 后綴的改成 .php后綴
批量添加文件后綴
rename “s/$//.txt/” *???? //把所有的文件名都以txt結尾
批量刪除文件名
rename “s//.txt//” *????? //把所有以.txt結尾的文件名的.txt刪掉
dirname??????? 去除文件名中的非目錄部分,僅顯示與目錄有關的內容。dirname命令讀取指定路徑名保留最后一個/及其后面的字符,刪除其他部分,并寫結果到標準輸出。如果最后一個/后無字符,dirname 命令使用倒數第二個/,并忽略其后的所有字符。dirname 和 basename 通常在 shell 內部命令替換使用,以指定一個與指定輸入文件名略有差異的輸出文件名
選項
–help:顯示幫助;
–version:顯示版本號
實例
dirname //
結果為 /
dirname /a/b/
結果為:/a
dirname a
結果為 .
dirname a/b
結果為路徑名 a
……………………………..
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94451