版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章Linux系統(tǒng)初步了解《Linux實用教程》第三版PPT本章內(nèi)容1.1Linux系統(tǒng)簡介1.2Linux系統(tǒng)的特點和組成1.3Linux版本介紹1.4RedHatLinux系統(tǒng)概述1.1Linux系統(tǒng)簡介1.1.1什么是Linux1.1.2Linux系統(tǒng)的產(chǎn)生1.1.3Linux系統(tǒng)應(yīng)用領(lǐng)域什么是LinuxLinux是一個免費的多用戶、多任務(wù)的操作系統(tǒng),其運行方式、功能和Unix系統(tǒng)很相似,但Linux系統(tǒng)的穩(wěn)定性、安全性與網(wǎng)絡(luò)功能是許多商業(yè)操作系統(tǒng)所無法比擬的。Linux系統(tǒng)最大的特色是源代碼完全公開,在符合GNU/GPL(通用公共許可證)的原則下,任何人都可以自由取得、散布甚至修改源代碼。越來越多的大中型企業(yè)的服務(wù)器選擇了Linux作為其操作系統(tǒng)。近幾年來,Linux系統(tǒng)又以其友好的圖形界面、豐富的應(yīng)用程序及低廉的價格,在桌面領(lǐng)域得到了較好的發(fā)展,受到了普通用戶的歡迎。Linux系統(tǒng)的產(chǎn)生Linux系統(tǒng)的內(nèi)核最早是由芬蘭大學(xué)生LinusTorvalds開發(fā),并于1991年8月發(fā)布。當(dāng)時由于Unix系統(tǒng)的商業(yè)化,AndrewTannebaum教授開發(fā)了Minix操作系統(tǒng),該系統(tǒng)不受AT&T許可協(xié)議的約束,可以發(fā)布在Internet上免費給全世界的學(xué)生使用,這為教學(xué)科研提供了一個操作系統(tǒng)。1991年,LinusTorvalds為了給Minix系統(tǒng)用戶設(shè)計一個比較有效的UnixPC版本,自己動手寫了一個類Minix的操作系統(tǒng),這就是Linux的雛形。Linux的興起可以說是Internet創(chuàng)造的一個奇跡。到1992年1月為止,全世界大約只有1000人在使用Linux系統(tǒng),但由于它發(fā)布在Internet上,互聯(lián)網(wǎng)上的任何人在任何地方都可以得到它。在這眾多熱心人的努力下,Linux系統(tǒng)在不到3年的時間里成為了一個功能完善、穩(wěn)定可靠的操作系統(tǒng)。Linux系統(tǒng)應(yīng)用領(lǐng)域1.Linux服務(wù)器2.嵌入式Linux系統(tǒng)3.軟件開發(fā)平臺4.桌面應(yīng)用1.2Linux系統(tǒng)的特點和組成1.2.1Linux系統(tǒng)的特點1.2.2Linux系統(tǒng)的組成Linux系統(tǒng)的特點1.開放性2.多用戶3.多任務(wù)4.良好的用戶界面5.設(shè)備獨立性6.豐富的網(wǎng)絡(luò)功能7.可靠的系統(tǒng)安全8.良好的可移植性Linux系統(tǒng)的組成1.內(nèi)核2.Shell3.文件系統(tǒng)4.應(yīng)用程序1.3Linux版本介紹1.3.1Linux內(nèi)核版本1.3.2Linux發(fā)行版本Linux內(nèi)核版本內(nèi)核是一個用來和硬件打交道并為用戶程序提供有限服務(wù)集的支撐軟件,是操作系統(tǒng)中最核心的功能框架部分。一個計算機系統(tǒng)是一個硬件和軟件的共生體,它們互相依賴,不可分割。內(nèi)核版本是Linux內(nèi)核在歷次修改或增加相應(yīng)的功能后的版本編號。內(nèi)核版本號是由點分隔的3段數(shù)字組成,比如3.10.0-327。Linux發(fā)行版本一些組織和公司,將Linux系統(tǒng)的內(nèi)核、應(yīng)用軟件和文檔包裝起來,并提供一些系統(tǒng)安裝界面、系統(tǒng)配置設(shè)定管理工具,就構(gòu)成了Linux發(fā)行版本。發(fā)行版本的版本號每一個發(fā)布廠商都不一樣,與Linux系統(tǒng)內(nèi)核的版本號是相對獨立的。根據(jù)GPL準則,這些發(fā)行版本雖然都源自一個內(nèi)核,但都沒有自己的版權(quán)。主流Linux發(fā)行版本(1)RedHat(2)SUSE(3)Oracle(4)CentOS(5)Ubuntu(6)Debian(7)Mandriva(8)Gentoo(9)Slackware(10)Fedora1.4RedHatLinux系統(tǒng)概述1.4.1RedHatLinux系統(tǒng)優(yōu)點1.4.2RHEL7新特性RedHatLinux系統(tǒng)優(yōu)點1.支持和硬件平臺多2.優(yōu)秀的安裝界面3.獨特的RPM升級方式4.豐富的軟件包5.安全性能好6.方便的系統(tǒng)管理界面7.詳細而完整的在線文檔RHEL7新特性(1)包含Kernel3.10版本,支持swap內(nèi)存壓縮可保證顯著減少I/O并提高性能,采用NUMA(統(tǒng)一內(nèi)存訪問)的調(diào)度和內(nèi)存分配,支持APIC(高級程序中斷控制器)虛擬化,全面的DynTick支持,將內(nèi)核模塊列入黑名單,kpatch動態(tài)內(nèi)核補丁等。在存儲和文件系統(tǒng)方面,RHEL7使用LIO內(nèi)核目標子系統(tǒng),支持快速設(shè)備為較慢的塊設(shè)備提供緩存,引進了LVM緩存,將xfs作為默認的文件系統(tǒng)。引進網(wǎng)絡(luò)分組技術(shù)作為鏈路聚集的捆綁備用方法,對NetworkManager進行大量改進,提供動態(tài)防火墻守護進程firewalld,加入DNSSEC域名系統(tǒng)安全擴展,附帶OpenLMI用來管理Linux系統(tǒng)提供常用的基礎(chǔ)設(shè)施,引進了可信網(wǎng)絡(luò)連接功能等。對KVM(基于內(nèi)核的虛擬化)提供了大量改進,諸如使用virtio-blk-data-plane提高快I/O性能(技術(shù)預(yù)覽),支持PCI橋接,QEMU沙箱,多隊列NIC,USB3.0支持等。RHEL7新特性(2)引入Linux容器Docker。編譯工具鏈方面,RHEL7包含GCC4.8.x、glibc2.17、GDB7.6.1。包含PerformanceCo-Pilot、SystemTap2.4、Valgrind3.9.0等性能工具。包含Ruby2.0.0、Python
2.7.5、Java
7等編程語言。包含Apache
2.4、MariaDB5.5、PostgreSQL
9.2等軟件包。在系統(tǒng)和服務(wù)方面,RHEL7使用systemd替換了SysV。引入Pacemaker集群管理器,同時使用keepalived和HAProxy替換了負載均衡程序Piranha。對安裝程序Anaconda進行了重新設(shè)計和增強,并使用GRUB2引導(dǎo)裝載程序。第2章安裝Linux系統(tǒng)《Linux實用教程》第三版PPT本章內(nèi)容2.1準備安裝Linux系統(tǒng)2.2安裝Linux系統(tǒng)2.3注銷、關(guān)閉和重啟Linux系統(tǒng)2.4FirewallD防火墻2.1準備安裝Linux系統(tǒng)2.1.1安裝Linux系統(tǒng)的硬件要求2.1.2交換分區(qū)2.1.3Linux系統(tǒng)硬盤知識安裝Linux系統(tǒng)的硬件要求(1)CPU:主流計算機和服務(wù)器都能達到要求;(2)內(nèi)存:安裝Linux系統(tǒng)至少需要1GB內(nèi)存(建議使用2GB甚至更高內(nèi)存);(3)硬盤空間:若要安裝所有軟件包至少需要10GB以上硬盤空間;(4)顯示器和顯卡;(5)4DVD光驅(qū)。硬件兼容性硬件兼容性在老式電腦和組裝電腦上顯得特別重要。Linux系統(tǒng)與最近幾年廠家生產(chǎn)的多數(shù)硬件相兼容,然而硬件的技術(shù)規(guī)范每天都在改變,很難保證計算機的硬件會百分之百地兼容。要查看RedHat硬件兼容性可以訪問網(wǎng)址,查看眾多廠家的硬件產(chǎn)品。交換分區(qū)
直接從物理內(nèi)存讀寫數(shù)據(jù)要比從硬盤讀寫數(shù)據(jù)快的多,而物理內(nèi)存是有限的,這樣就使用到了虛擬內(nèi)存。虛擬內(nèi)存是為了滿足物理內(nèi)存的不足而提出的一種策略,它是利用磁盤空間虛擬出的一塊邏輯內(nèi)存,用作虛擬內(nèi)存的磁盤空間被稱為交換分區(qū)(swap分區(qū))。內(nèi)核會將暫時不用的內(nèi)存塊信息寫到交換分區(qū),這樣一來,物理內(nèi)存得到了釋放,這塊內(nèi)存就可以用于其它用途,當(dāng)需要用到原始的內(nèi)容時,這些信息會被重新從交換分區(qū)讀入物理內(nèi)存。Linux的內(nèi)存管理采取的是分頁存取機制,為了保證物理內(nèi)存能得到充分的利用,內(nèi)核會在適當(dāng)?shù)臅r候?qū)⑽锢韮?nèi)存中不經(jīng)常使用的數(shù)據(jù)塊自動交換到虛擬內(nèi)存中,而將經(jīng)常使用的信息保留到物理內(nèi)存。Linux系統(tǒng)會不時的進行頁面交換操作,以保持盡可能多的空閑物理內(nèi)存,即使并沒有什么操作需要使用內(nèi)存,Linux也會交換出暫時不用的內(nèi)存頁面,這可以避免等待交換所需的時間。Linux進行頁面交換是有條件的,不是所有頁面在不用時都交換到虛擬內(nèi)存,Linux內(nèi)核根據(jù)“最近最常使用”算法,僅僅將一些不經(jīng)常使用的頁面文件交換到虛擬內(nèi)存。分區(qū)命名方案Linux系統(tǒng)使用字母和數(shù)字的組合來指代硬盤分區(qū),使用一種更加靈活的分區(qū)命名方案,該命名方案是基于文件的,文件名的格式為/dev/xxyN(比如/dev/sda1分區(qū))。/dev:這是Linux系統(tǒng)中所有設(shè)備文件所在的目錄名。因為分區(qū)位于硬盤上,而硬盤是設(shè)備,所以這些文件代表了在/dev上所有可能的分區(qū);xx:分區(qū)名的前兩個字母表示分區(qū)所在設(shè)備的類型,通常是hd(IDE硬盤)或sd(SCSI硬盤)。y:這個字母表示分區(qū)所在的設(shè)備。例如,/dev/hda(第1個IDE硬盤)或/dev/sdb(第2個SCSI硬盤);N:最后的數(shù)字N代表分區(qū)。前4個分區(qū)(主分區(qū)或擴展分區(qū))用數(shù)字1~4表示,邏輯驅(qū)動器從5開始。例如,/dev/hda3是第1個IDE硬盤上的第3個主分區(qū)或擴展分區(qū);/dev/sdb6是第2個SCSI硬盤上的第2個邏輯驅(qū)動器。磁盤分區(qū)和掛載目錄Linux系統(tǒng)中的每一個分區(qū)都是構(gòu)成支持一組文件和目錄所必需的存儲區(qū)的一部分。它是通過掛載來實現(xiàn)的,掛載是將分區(qū)關(guān)聯(lián)到某一目錄的過程,掛載分區(qū)使起始于這個指定目錄(稱為掛載目錄)的存儲區(qū)能夠被使用。例如,如果分區(qū)/dev/sda5被掛載在目錄/usr上,這意味著所有在/usr下的文件和目錄在物理上位于/dev/sda5。因此文件/usr/bin/cal被保存在分區(qū)/dev/sda5上,而文件/etc/passwd卻不是。/usr目錄下的目錄還有可能是其它分區(qū)的掛載目錄。例如,某個分區(qū)(如/dev/sda7)可以被掛載到/usr/local目錄下,這意味著文件/usr/local/man/whatis將位于分區(qū)/dev/sda7上,而不是分區(qū)/dev/sda5上。硬盤分區(qū)規(guī)劃(1)最簡單的分區(qū)規(guī)劃swap分區(qū):即交換分區(qū),實現(xiàn)虛擬內(nèi)存,建議大小是物理內(nèi)存的1~2倍;/boot分區(qū):用來存放與Linux系統(tǒng)啟動有關(guān)的程序,比如引導(dǎo)裝載程序等,最少200MB;/分區(qū):建議大小至少在10GB以上。(2)合理的分區(qū)規(guī)劃swap分區(qū):實現(xiàn)虛擬內(nèi)存,建議大小是物理內(nèi)存的1~2倍。/boot分區(qū):建議大小最少為200MB;/usr分區(qū):用來存放Linux系統(tǒng)中的應(yīng)用程序,其相關(guān)數(shù)據(jù)較多,建議大小最少為8GB;/var分區(qū):用來存放Linux系統(tǒng)中經(jīng)常變化的數(shù)據(jù)以及日志文件,建議大小最少為1GB;/分區(qū):Linux系統(tǒng)的根目錄,所有的目錄都掛在這個目錄下面,建議大小最少為1GB;/home分區(qū):存放普通用戶的數(shù)據(jù),是普通用戶的宿主目錄,建議大小為剩下的空間。2.2安裝Linux系統(tǒng)2.2.1安裝Linux系統(tǒng)的步驟2.2.2Linux安裝后的初始化配置2.2.3登錄Linux系統(tǒng)安裝Linux系統(tǒng)的步驟安裝引導(dǎo)
開始安裝進程
選擇安裝過程語言
安裝信息摘要
日期&時間
鍵盤布局
安全策略
安裝源
軟件選擇
安裝目標位置
手動分區(qū)界面創(chuàng)建分區(qū)最終分區(qū)效果界面KDUMP
設(shè)置計算機主機名設(shè)置IPv4地址開始安裝Linux系統(tǒng)
設(shè)置根用戶密碼
創(chuàng)建用戶
Linux安裝完畢
2.2.2Linux安裝后的初始化配置重新引導(dǎo)系統(tǒng)
初始設(shè)置
許可信息
注冊系統(tǒng)
2.2.3登錄Linux系統(tǒng)登錄Linux系統(tǒng)實際上是一個驗證用戶身份的過程,如果用戶輸入了錯誤的用戶賬戶名或密碼,就會出現(xiàn)錯誤信息從而不能登錄系統(tǒng)。Linux系統(tǒng)使用用戶賬戶來管理特權(quán)和維護安全,不是所有的賬戶都具有相同的權(quán)限,某些賬戶所擁有的文件訪問權(quán)限和服務(wù)要比其它賬戶少。輸入用戶名
輸入密碼GNOME圖形化桌面2.3注銷、關(guān)閉和重啟Linux系統(tǒng)2.3.1注銷Linux系統(tǒng)2.3.2關(guān)閉和重啟Linux系統(tǒng)注銷Linux系統(tǒng)
關(guān)閉和重啟Linux系統(tǒng)
2.4FirewallD防火墻2.4.1FirewallD防火墻簡介2.4.2FirewallD防火墻配置
FirewallD防火墻簡介Linux為增加系統(tǒng)安全性提供了防火墻保護功能。防火墻存在于計算機和網(wǎng)絡(luò)之間,用于判斷網(wǎng)絡(luò)中的遠程用戶的訪問權(quán)限。在RHEL7系統(tǒng)中默認使用FirewallD防火墻,F(xiàn)irewallD提供了支持網(wǎng)絡(luò)/防火墻區(qū)域定義網(wǎng)絡(luò)鏈接以及接口安全等級的動態(tài)防火墻管理工具。它支持IPv4、IPv6防火墻設(shè)置以及以太網(wǎng)橋接,并且擁有運行時配置和永久配置選項。它也支持允許服務(wù)或者應(yīng)用程序直接添加防火墻規(guī)則的接口。以前的iptables防火墻是靜態(tài)的,每次修改都要求防火墻完全重啟?,F(xiàn)在FirewallD可以動態(tài)管理防火墻,支持動態(tài)配置,不用重啟服務(wù)通過將網(wǎng)絡(luò)劃分成不同的區(qū)域,制定出不同區(qū)域之間的訪問控制策略,以此來控制不同程度區(qū)域間傳送的數(shù)據(jù)流。比如互聯(lián)網(wǎng)是不可信任的區(qū)域,而內(nèi)部網(wǎng)絡(luò)是高度信任的區(qū)域。數(shù)據(jù)包進入到內(nèi)核必須要通過區(qū)域,而不同的區(qū)域定義的規(guī)則是不一樣的??梢愿鶕?jù)網(wǎng)卡所連接的網(wǎng)絡(luò)的安全性來判斷,這塊網(wǎng)卡的流量到底使用哪個區(qū)域。可以把這些區(qū)域想象成進入火車站的安檢,不同的入口檢測的嚴格度不一樣。默認情況下FirewallD防火墻的連接區(qū)域為public,public在公共區(qū)域內(nèi)使用,指定外部連接可以進入內(nèi)部網(wǎng)絡(luò)或主機。2.4.2FirewallD防火墻配置【防火墻配置】界面添加可信服務(wù)
添加端口
偽裝
端口轉(zhuǎn)發(fā)
第3章字符界面操作基礎(chǔ)《Linux實用教程》第三版PPT本章內(nèi)容3.1字符界面簡介3.2在Linux系統(tǒng)下獲取幫助3.3Shell基礎(chǔ)知識3.4使用bash3.5Shell實用功能3.6重定向3.7vi編輯器3.1字符界面簡介3.1.1進入Linux字符界面3.1.2關(guān)閉和重啟Linux系統(tǒng)3.1.3目標進入Linux字符界面方式1.Linux字符界面2.使用終端3.使用虛擬控制臺啟動計算機系統(tǒng)后默認進入字符界面
[root@rhel~]#systemctlget-defaultgraphical.target//查看計算機系統(tǒng)啟動后要進入的默認目標,graphical.target表示圖形化界面[root@rhel~]#systemctlset-defaultmulti-user.target//將multi-user.target目標設(shè)置為啟動計算機系統(tǒng)后要進入的默認目標,multi-user.target表示字符界面字符界面登錄提示終端使用虛擬控制臺在字符界面下,虛擬控制臺的選擇可以通過按下[Alt]鍵和一個功能鍵來實現(xiàn),通常使用F1~F6鍵。比如用戶登錄后,按下[Alt+F2]鍵,用戶可以看到“l(fā)ogin:”提示符,說明用戶進入了第二個虛擬控制臺。然后只需按[Alt+F1]鍵,就可以回到第一個虛擬控制臺。如果用戶在圖形界面下,那么可以使用[Ctrl+Alt+F2]~[Ctrl+Alt+F6]鍵切換字符虛擬控制臺,使用[Ctrl+Alt+F1]可以切換到圖形界面。關(guān)閉和重啟Linux系統(tǒng)1.shutdown命令2.halt命令3.reboot命令目標在RHEL7之前的版本,使用運行級別代表特定的操作模式。運行級別被定義為七個級別,用數(shù)字0到6表示,每個運行級別可以啟動特定的一些服務(wù)。RHEL7使用目標(target)替換運行級別。目標使用目標單元文件描述,目標單位文件擴展名是.target,目標單元文件的唯一目標是將其他systemd單元文件通過一連串的依賴關(guān)系組織在一起。比如graphical.target單元,用于啟動一個圖形會話,systemd會啟動像GNOME顯示管理(gdm.service)、帳號服務(wù)(axxounts-daemon)這樣的服務(wù),并且會激活multi-user.target單元。相似的multi-user.target單元,會啟動必不可少的NetworkManager.service、dbus.service服務(wù),并激活basic.target單元。每一個目標都有名字和獨特的功能,并且能夠同時啟用多個。一些目標繼承其他目標的服務(wù),并啟動新服務(wù)。systemd提供了一些模仿SystemVinit啟動級別的目標,仍可以使用舊的telinit啟動級別命令切換。預(yù)定義目標和運行級別對應(yīng)關(guān)系運行級別目標目標的鏈接文件功能0poweroff.targetrunlevel0.target關(guān)閉系統(tǒng)1rescue.targetrunlevel1.target進入救援模式2multi-user.targetrunlevel2.target進入非圖形界面的多用戶方式3multi-user.targetrunlevel3.target進入非圖形界面的多用戶方式4multi-user.targetrunlevel4.target進入非圖形界面的多用戶方式5graphical.targetrunlevel5.target進入圖形界面的多用戶方式6reboot.targetrunlevel6.target重啟系統(tǒng)3.2在Linux系統(tǒng)下獲取幫助3.2.1使用man手冊頁3.2.2使用--help選項獲取幫助man手冊頁一般情況下,Linux系統(tǒng)中所有的資源都會隨操作系統(tǒng)一起發(fā)行,包括內(nèi)核源代碼。而在線手冊是操作系統(tǒng)所有資源的一本很好的使用手冊。有不懂的命令時可以用man查看這個命令,寫程序時有不會用的函數(shù)可以用man查看這個函數(shù),有不懂的文件時也可以用man查看文件。一般情況下man手冊頁的資源主要位于/usr/share/man目錄下。man手冊頁類型類型描述1用戶命令2系統(tǒng)調(diào)用3C語言函數(shù)庫4設(shè)備和特殊文件5文件格式和約定6游戲程序7雜記8系統(tǒng)管理工具9Linux內(nèi)核API(內(nèi)核調(diào)用)man命令man命令格式化并顯示在線的手冊頁。通常使用者只要在命令man后,輸入想要獲取的命令的名稱,man就會列出一份完整的說明,其內(nèi)容包括命令語法、各選項的意義以及相關(guān)命令等。命令語法:man[選項][名稱]使用--help選項獲取幫助使用--help選項可以顯示命令的使用方法以及命令選項的含義。只要在所需要顯示的命令后面輸入“--help”選項,然后就可以看到所查命令的幫助內(nèi)容了。命令語法:[命令]--help3.3Shell基礎(chǔ)知識3.3.1Shell簡介3.3.2bash簡介3.3.3bash命令Shell簡介在AT&T工作的DennisRitchie和KenThompson兩人在設(shè)計Unix操作系統(tǒng)的時候,想要為用戶創(chuàng)建一種與Unix系統(tǒng)交流的方法。那時的操作系統(tǒng)帶有命令解釋器。命令解釋器接受用戶的命令,然后解釋它們,因而計算機可以使用這些命令。Ritchie和Thompson想要提供比當(dāng)時的命令解釋器具備更優(yōu)異功能的工具。這導(dǎo)致了BourneShell(通稱為sh)的開發(fā),由S.R.Bourne創(chuàng)建。自從BourneShell出現(xiàn)以后,其它類型Shell也被一一開發(fā),比如CShell(csh)和KornShell(ksh)。Shell接收用戶命令,然后調(diào)用相應(yīng)的應(yīng)用程序,同時它還是一種程序設(shè)計語言,
是系統(tǒng)管理維護時的重要工具。
作為命令語言,它交互式的解釋和執(zhí)行用戶輸入的命令或者自動地解釋和執(zhí)行預(yù)先設(shè)定好的一連串的命令。作為程序設(shè)計語言,它可以定義各種變量和參數(shù),并提供了許多在高級語言中才具有的控制結(jié)構(gòu)(循環(huán)和分支)。Shell命令重新初始化用戶的登錄會話。當(dāng)給出該命令時,就會重新設(shè)置進程的控制終端的端口特征,并取消對端口的所有訪問。然后Shell命令為用戶把進程憑證和環(huán)境重新設(shè)置為缺省值,并執(zhí)行用戶的初始程序。根據(jù)調(diào)用進程的登錄用戶標識建立所有的憑證和環(huán)境。
目前流行的Shell
有sh、csh、ksh、tcsh
和bash等。大部分Linux系統(tǒng)的默認Shell類型為bash。bash簡介
bash(Bourne-AgainShell)最早是在1987年由布萊恩·福克斯開發(fā)的一個為GNU計劃編寫的UnixShell。bash目前是大多數(shù)Linux系統(tǒng)默認的Shell,它還能運行于大多數(shù)Unix風(fēng)格的操作系統(tǒng)上。bash的命令語法是Bourneshell命令語法的超集。數(shù)量龐大的Bourneshell腳本大多不經(jīng)過修改就可以在bash中執(zhí)行,只有那些引用了Bourne特殊變量或使用了Bourne內(nèi)置命令的腳本才需要修改。bash的命令語法很多來自ksh和csh,比如命令行編輯、命令歷史、目錄棧、$RANDOM變量、$PPID變量以及POSIX命令置換語法。bash命令
Linux系統(tǒng)的標準提示符包括了用戶登錄名、登錄的主機名、當(dāng)前所在的工作目錄路徑和提示符號。以普通用戶zhangsan登錄名為rhel的主機,他的工作目錄是/home/zhangsan。[zhangsan@rhel~]$以root用戶登錄系統(tǒng)的提示符。[root@rhel~]#Shell命令一般格式命令語法:[Shell命令][選項][參數(shù)]所有選項在該命令的man手冊頁中都有詳細的介紹,而參數(shù)則由用戶提供。選項決定命令如何工作,而參數(shù)則用于確定命令作用的目標。選項有短命令行選項和長命令選項兩種。Linux系統(tǒng)命令分類bash
內(nèi)置的命令。應(yīng)用程序。3.4使用bash
3.4.1常用控制組合鍵3.4.2光標操作3.4.3特殊字符3.4.4通配符常用控制組合鍵
控制組合鍵功能Ctrl+l清屏Ctrl+o執(zhí)行當(dāng)前命令,并選擇上一條命令Ctrl+s阻止屏幕輸出Ctrl+q允許屏幕輸出Ctrl+c終止命令Ctrl+z掛起命令Ctrl+m相當(dāng)于按回車鍵Ctrl+d輸入結(jié)束,即EOF的意思,或者注銷Linux系統(tǒng)光標操作(1)組合鍵功能Ctrl+a移動光標到命令行首Ctrl+e移動光標到命令行尾Ctrl+f按字符前移(向右)Ctrl+b按字符后移(向左)Ctrl+xx在命令行首和光標之間移動Ctrl+u刪除從光標到命令行首的部分Ctrl+k刪除從光標到命令行尾的部分Ctrl+w刪除從光標到當(dāng)前單詞開頭的部分Ctrl+d刪除光標處的字符Ctrl+h刪除光標前的一個字符光標操作(2)組合鍵功能Ctrl+y插入最近刪除的單詞Ctrl+t交換光標處字符和光標前面的字符Alt+f按單詞前移(向右)Alt+b按單詞后移(向左)Alt+d從光標處刪除至單詞尾Alt+c從光標處更改單詞為首字母大寫Alt+u從光標處更改單詞為全部大寫Alt+l從光標處更改單詞為全部小寫Alt+t交換光標處單詞和光標前面的單詞Alt+Backspace與Ctrl+w功能類似,分隔符有些差別特殊字符
符號功能~
用戶主目錄
`
反引號,用來命令替代(在Tab鍵上面的那個鍵)#注釋$
變量取值
&后臺進程工作
(子Shell開始
)子Shell結(jié)束
\
使命令持續(xù)到下一行|管道<
輸入重定向
>
輸出重定向
>>追加重定向'單引號(不具有變數(shù)置換的功能)"雙引號(具有置換的功能)/
路徑分隔符;
命令分隔符通配符
符號功能?
代表任何單一字符*
代表任何字符[字符組合]
在中括號中的字符都符合,比如[a-z]代表所有的小寫字母[!字符組合]
不在中括號中的字符都符合,比如[!0-9]代表非數(shù)字的都符合3.5Shell實用功能3.5.1命令行自動補全3.5.2命令歷史記錄3.5.3命令排列3.5.4命令替換3.5.5命令別名3.5.6文件名匹配3.5.7管道命令行自動補全在Linux系統(tǒng)中,有太多的命令和文件名稱需要記憶,使用命令行補全功能可以快速的寫出文件名和命令名。命令歷史記錄在操作Linux系統(tǒng)的時候,每一個操作的命令都會記錄到命令歷史中,在以后可以通過命令歷史查看和使用以前操作的命令。bash啟動的時候會讀取~/.bash_history文件,并將其載入到內(nèi)存中,$HISTFILE變量就用于設(shè)置~/.bash_history文件,bash退出時也會把內(nèi)存中的歷史記錄回寫到~/.bash_history文件中。使用history命令可以查看命令歷史記錄,每一條命令前面都會有一個序列號標示。命令語法:history[選項]使用命令歷史舉例舉例描述!!
運行上一個命令!6運行第6個命令!8
/test
運行第8個命令并在命令后面加上/test!?CF?
運行上一個包含CF字符串的命令!ls
運行上一個ls命令(或以ls開頭的歷史命令)!ls:s/CF/G運行上一個ls命令,其中把CF替換成Gfc
編輯并運行上一個歷史命令fc
6編輯并運行第6條歷史命令^boot^root^快速替換。將最后一個命令中的boot替換為root后運行!-5運行倒數(shù)第5個命令!$運行前一個命令最后的參數(shù)搜索歷史命令快捷鍵描述↑(向上方向箭)查看上一個命令↓(向下方向箭)查看下一個命令Ctrl+p查看歷史列表中的上一個命令Ctrl+n查看歷史列表中的下一個命令Ctrl+r向上搜索歷史列表
Alt+p向上搜索歷史列表
Alt+>移動到歷史列表末尾命令排列
如果希望一次執(zhí)行多個命令,Shell允許在不同的命令之間,放上特殊的排列字符。(1)使用“;”使用“;”命令時先執(zhí)行命令1,不管命令1是否出錯,接下來就執(zhí)行命令2。命令語法:命令1;命令2(2)使用“&&”使用“&&”命令時只有當(dāng)命令1正確運行完畢后,才能執(zhí)行命令2。命令語法:命令1&&命令2命令替換
在Linux系統(tǒng)中,Shell命令的參數(shù)可以由另外一個命令的結(jié)果來替代,這種稱之為命令替換。1.使用“$()”命令語法:命令1$(命令2)2.使用“``”命令語法:命令1`命令2`命令別名
在需要執(zhí)行某一個非常長的命令時,所有的命令以及命令的選項、參數(shù)都要一一輸入,很枯燥也容易出現(xiàn)錯誤??梢詾槌S妹疃x快捷方式,這些快捷方式可以用比較簡單的命令別名來定義。1.創(chuàng)建別名使用alias命令可以為命令定義別名。如果命令中有空格的話,就需要使用雙引號(比如在命令與選項之間就有空格)。命令語法:alias[別名]=[需要定義別名的命令]2.取消別名當(dāng)用戶需要取消別名的定義時,可以使用unalias命令。命令語法:unalias[別名]文件名匹配
文件名匹配使得用戶不必一一寫出文件名稱就可以指定多個文件。這將用到一些特殊的字符,稱之為通配符。1.通配符“*”“*”可匹配一個或多個字符。2.通配符“?”在匹配時,一個問號只能代表一個字符。管道
Linux系統(tǒng)的理念是匯集許多小程序,每個程序都有特殊的專長。復(fù)雜的任務(wù)不是由大型軟件完成,而是運用Shell的機制,組合許多小程序共同完成。管道就在其中發(fā)揮著重要的作用,它可以將某個命令的輸出信息當(dāng)作某個命令的輸入,由管道符號“|”來標識。命令語法:[命令1]|[命令2]|[命令3]3.6重定向3.6.1輸出重定向3.6.2輸入重定向3.6.3錯誤重定向3.6.4同時實現(xiàn)輸出和錯誤重定向重定向簡介希望將命令的輸出結(jié)果保存到文件中,或者以文件內(nèi)容作為命令的參數(shù),這時就需要用到重定向。重定向不使用系統(tǒng)的標準輸入端口、標準輸出端口或是標準錯誤端口,而是進行重新的指定。重定向有四種方式:輸出重定向、輸入重定向、錯誤重定向以及同時實現(xiàn)輸出和錯誤的重定向。輸出重定向輸出重定向,即將某一命令執(zhí)行的輸出保存到文件中,如果已經(jīng)存在相同的文件,那么覆蓋源文件中的內(nèi)容。命令語法:[命令]>[文件]另外一種特殊的輸出重定向是輸出追加重定向,即將某一命令執(zhí)行的輸出添加到已經(jīng)存在的文件中。命令語法:[命令]>>[文件]輸入重定向
輸入重定向,即將某一文件的內(nèi)容作為命令的輸入。命令語法;[命令]<[文件]另外一種特殊的輸入重定向是輸入追加重定向,這種輸入重定向告訴Shell,當(dāng)前標準輸入來自命令行的一對分隔符之間的內(nèi)容。命令語法;[命令]<<[分隔符]>[文本內(nèi)容]>[分隔符]錯誤重定向錯誤重定向,即將某一命令執(zhí)行的出錯信息輸出到指定文件中。命令語法:[命令]2>[文件]另外一種特殊的錯誤重定向是錯誤追加重定向,即將某一命令執(zhí)行的出錯信息添加到已經(jīng)存在的文件中。命令語法:[命令]2>>[文件]同時實現(xiàn)輸出和錯誤重定向同時實現(xiàn)輸出和錯誤的重定向,即可以同時實現(xiàn)輸出重定向和錯誤重定向的功能。命令語法:[命令]&>[文件]3.7vi編輯器3.7.1vi編輯器工作模式3.7.2進入插入模式3.7.3光標移動3.7.4命令模式操作3.7.5末行模式操作vi編輯器簡介vi編輯器是Linux系統(tǒng)字符界面下最常使用的文本編輯器,用于編輯任何ASCII文本,對于編輯源程序尤其有用。vi編輯器功能非常強大,通過使用vi編輯器,可以對文本進行創(chuàng)建、查找、替換、刪除、復(fù)制和粘貼等操作。在Linux系統(tǒng)Shell提示符下輸入vi和文件名稱后,就進入vi編輯界面。如果系統(tǒng)內(nèi)還不存在該文件,就意味著創(chuàng)建文件,如果系統(tǒng)內(nèi)存在該文件,就意味著編輯該文件。vi編輯器工作模式1.命令模式2.插入模式3.末行模式進入插入模式命令命令功能i從光標當(dāng)前所在位置之前開始插入a從光標當(dāng)前所在位置之后開始插入I在光標所在行的行首插入A在光標所在行的行末尾插入o在光標所在的行的下面新開一行插入O在光標所在的行的上面新開一行插入s刪除光標位置的一個字符,然后進入插入模式S刪除光標所在的行,然后進入插入模式光標移動(1)
命令功能↑鍵(向上箭頭)使光標向上移動一行↓鍵(向下箭頭)使光標向下移動一行←鍵(向左箭頭)使光標向左移動一個字符→鍵(向右箭頭)使光標向右移動一個字符k使光標向上移動一行j使光標向下移動一行h使光標向左移動一個字符l使光標向右移動一個字符nk使光標向上移動n行,n代表數(shù)字光標移動(2)nj使光標向下移動n行,n代表數(shù)字nh使光標向左移動n個字符,n代表數(shù)字nl使光標向右移動n個字符,n代表數(shù)字H使光標移動到屏幕的頂部M使光標移動到屏幕的中間L使光標移動到屏幕的底部Ctrl+b使光標往上移動一頁屏幕Ctrl+f使光標往下移動一頁屏幕Ctrl+u使光標往上移動半頁屏幕Ctrl+d使光標往下移動半頁屏幕0(數(shù)字0)使光標移到所在行的行首光標移動(3)$使光標移動到光標所在行的行尾^使光標移動到光標所在行的行首w使光標跳到下一個字的開頭W使光標跳到下一個字的開頭,但會忽略一些標點符號e使光標跳到下一個字的字尾E使光標跳到下一個字的字尾,但會忽略一些標點符號b使光標回到上一個字的開頭B使光標回到上一個字的開頭,但會忽略一些標點符號(使光標移動到上一個句首)使光標移動到下一個句首{使光標移動到上一個段落首}使光標移動到下一個段落首G使光標移動到文件尾(最后一行的第一個非空白字符處)gg使光標移動到文件首(第一行第一個非空白字符處)光標移動(4)space鍵(空格鍵)使光標向右移動一個字符Backspace鍵使光標向左移動一個字符Enter鍵使光標向下移動一行Ctrl+p使光標向上移動一行Ctrl+n使光標向下移動一行n|使光標移動到第n個字符處,n代表數(shù)字nG使光標移動到第n行首,n代表數(shù)字n+使光標向下移動n行,n代表數(shù)字n-使光標向上移動n行,n代表數(shù)字n$使光標移動到以當(dāng)前行算起的第n行尾,n代表數(shù)字命令模式命令(1)類型命令功能刪除x刪除光標所在位置的字符X刪除光標所在位置的前面一個字符nx刪除光標所在位置開始的n個字符,n代表數(shù)字nX刪除光標所在位置前面n個字符,n代表數(shù)字dd刪除光標所在行ndd從光標所在行開始刪除n行,n代表數(shù)字db刪除光標所在位置的前面一個單詞ndb刪除光標所在位置的前面n個單詞,n代表數(shù)字dw從光標所在位置開始刪除一個單詞ndw從光標所在位置開始刪除幾個單詞,n代表數(shù)字d$刪除光標到行尾的內(nèi)容(含光標所在處字符)D刪除光標到行尾的內(nèi)容(含光標所在處字符)dG從光標位置所在行一直刪除到文件尾命令模式命令(2)類型命令功能復(fù)制和粘貼yw復(fù)制光標所在位置到單詞尾的字符nyw復(fù)制光標所在位置開始的n個單詞,n代表數(shù)字yy復(fù)制光標所在行nyy復(fù)制從光標所在行開始的n行,n代表數(shù)字y$復(fù)制光標所在位置到行尾內(nèi)容到緩存區(qū)y^復(fù)制光標前面所在位置到行首內(nèi)容到緩存區(qū)YY將當(dāng)前行復(fù)制到緩沖區(qū)nYY將當(dāng)前開始的n行復(fù)制到緩沖區(qū),n代表數(shù)字p將緩沖區(qū)內(nèi)的內(nèi)容寫到光標所在的位置命令模式命令(3)類型命令功能替換r替換光標所在處的字符,按[r]鍵之后輸入要替換的字符R替換光標所到之處的字符,直到按下[ESC]鍵為止,按[R]鍵之后輸入要替換的字符撤銷和重復(fù)u撤銷上一個操作。按多次u可以執(zhí)行多次撤銷U取消所有操作.再執(zhí)行一次前面剛完成的操作列出行號Ctrl+g列出光標所在行的行號保存和退出ZZ保存退出ZQ不保存退出查找字符/關(guān)鍵字先按[/]鍵,再輸入想查找的字符,如果第一次查找的關(guān)鍵字不是想要的,可以一直按[n]鍵會往后查找下一個關(guān)鍵字,而按[N]鍵會往相反的方向查找?關(guān)鍵字先按[?]鍵,再輸入想查找的字符,如果第一次查找的關(guān)鍵字不是想要的,可以一直按[n]鍵往前查找下一個關(guān)鍵字,而按[N]鍵會往相反的方向查找合并nJ將當(dāng)前行開始的n行進行合并,n代表數(shù)字J清除光標所在行與下一行之間的換行,行尾沒有空格的話會自動添加一個空格末行模式命令(1)類型命令功能運行Shell命令:!command運行Shell命令,command代表命令:r!command將命令運行的結(jié)果信息輸入到當(dāng)前行位置,command代表命令:n1,n2w!command將n1到n2行的內(nèi)容作為命令的輸入,n1和n2代表數(shù)字,command代表命令查找字符:/str/從當(dāng)前光標開始往右移動到有str的地方,str代表字符:?str?從當(dāng)前光標開始往左移動到有str的地方,str代表字符替換字符:s/str1/str2/將光標所在行第一個字符str1替換為str2,str1和str2代表字符:s/str1/str2/g將光標所在行所有的字符str1替換為str2,str1和str2代表字符:n1,n2s/str1/str2/g用str2替換從第n1行到第n2行中出現(xiàn)的str1,str1和str2代表字符,n1和n2代表數(shù)字:%s/str1/str2/g用str2替換文件中所有的str1,str1和str2代表字符:.,$s/str1/str2/g將從當(dāng)前位置到結(jié)尾的所有的str1替換為str2,str1和str2代表字符末行模式命令(2)類型命令功能保存和退出:w保存文件:wfilename將文件另存為filename:wq保存文件并退出vi編輯器:wqfilename將文件另存為filename后退出vi編輯器:wq!保存文件并強制退出vi編輯器:wq!filename將文件另存為filename后強制退出vi編輯器:x保存文件并強制退出vi編輯器,其功能和:wq!相同:q退出vi編輯器:q!如果無法離開vi,強制退出vi編輯器:n1,n2wfilename將從n1行開始到n2行結(jié)束的內(nèi)容保存到文件filename中,n1和n2代表數(shù)字:nwfilename將第n行內(nèi)容保存到文件filename中,n代表數(shù)字:1,.wfilename將從第一行開始到光標當(dāng)前位置的所有內(nèi)容保存到文件filename中:.,$wfilename將從光標當(dāng)前位置開始到文件末尾的所有內(nèi)容保存到文件filename中:rfilename打開另外一個已經(jīng)存在的文件filename:efilename新建名為filename的文件:ffilename把當(dāng)前文件改名為filename文件:/str/wfilename將包含有str的行寫到文件filename中,str代表字符:/str1/,/str2/wfilename將從包含有str1開始到str2結(jié)束的行內(nèi)容寫入到文件filename中,str1和str2代表字符末行模式命令(3)類型命令功能刪除:d刪除當(dāng)前行:nd刪除第n行,n代表數(shù)字:n1,n2d刪除從n1行開始到n2行為止的所有內(nèi)容,n1和n2代表數(shù)字:.,$d刪除從當(dāng)前行開始到文件末尾是所有內(nèi)容:/str1/,/str2/d刪除從str1開始到str2為止的所在行的所有內(nèi)容,str1和str2代表字符復(fù)制和移動:n1,n2con3將從n1行開始到n2行為止的所有內(nèi)容復(fù)制到n3行后面,n1、n2和n3代表數(shù)字:n1,n2mn3將從n1行開始到n2行為止的所有內(nèi)容移動到n3行后面,n1、n2和n3代表數(shù)字跳到某一行:n在冒號后輸入一個數(shù)字,再按回車鍵就會跳到該行,n代表數(shù)字設(shè)置vi環(huán)境:setnumber在文件中的每一行前面列出行號:setnonumber取消在文件中的每一行前面列出行號:setreadonly設(shè)置文件為只讀狀態(tài)第4章目錄和文件管理《Linux實用教程》第三版PPT本章內(nèi)容4.1Linux文件類型4.2Linux目錄結(jié)構(gòu)4.3文件和目錄操作4.4鏈接文件4.1Linux文件類型
在Linux系統(tǒng)中除了一般文件之外,所有的目錄和設(shè)備(如光驅(qū)、硬盤等)都是以文件的形式存在的。Linux文件類型和Linux文件的文件名所代表的意義是兩個不同的概念。通過一般應(yīng)用程序創(chuàng)建的文件,比如file.txt、file.tar.gz,這些文件雖然要用不同的程序來打開,但放在Linux文件類型中衡量的話,大多稱之為普通文件。1.普通文件2.目錄文件3.設(shè)備文件(1)塊設(shè)備文件(2)字符設(shè)備文件4.管道文件5.鏈接文件(1)軟鏈接文件(2)硬鏈接文件4.2Linux目錄結(jié)構(gòu)Linux系統(tǒng)都有根文件系統(tǒng),它包含系統(tǒng)引導(dǎo)和使其它文件系統(tǒng)得以掛載所必要的文件。Linux系統(tǒng)的目錄結(jié)構(gòu)是分層的樹形結(jié)構(gòu),都是掛載在根文件系統(tǒng)“/”下。Linux目錄結(jié)構(gòu)(1)目錄描述/home包含Linux系統(tǒng)上各用戶的主目錄,子目錄名稱默認以該用戶名命名/root是root用戶的主目錄/bin包含常用的命令文件,不能包含子目錄/sbin包含系統(tǒng)管理員和root用戶所使用的命令文件/dev包含大部分的設(shè)備文件,比如磁盤、光驅(qū)等/lib包含Linux系統(tǒng)的共享文件和內(nèi)核模塊文件。/lib/modules目錄存放核心可加載模塊。/lib64包含64位版本Linux系統(tǒng)的共享文件和內(nèi)核模塊文件/tmp包含一些臨時文件/mnt手動為某些設(shè)備(比如硬盤)掛載提供掛載目錄Linux目錄結(jié)構(gòu)(2)目錄描述/boot包含Linux系統(tǒng)的內(nèi)核文件和引導(dǎo)裝載程序(如GRUB)文件/opt包含某些第三方應(yīng)用程序的安裝文件/media由系統(tǒng)自動為某些設(shè)備(一般為光盤、U盤等設(shè)備)掛載提供掛載目錄/var該目錄存放不經(jīng)常變化的數(shù)據(jù),如系統(tǒng)日志、打印隊列、DNS數(shù)據(jù)庫文件等/etc包含Linux系統(tǒng)上大部分的配置文件,建議修改配置文件之前先備份/usr包含可以供所有用戶使用的程序和數(shù)據(jù)/srv存儲一些服務(wù)啟動之后所需要取用的資料目錄/run一個臨時文件系統(tǒng),一些程序或服務(wù)啟動以后,會將他們的PID放置在該目錄中/sys在Linux系統(tǒng)提供熱插拔能力的同時,該目錄包含所檢測到的硬件設(shè)置,它們被轉(zhuǎn)換成/dev目錄中的設(shè)備文件/proc是一個虛擬的文件系統(tǒng),它不存在磁盤上,而是由內(nèi)核在內(nèi)存中產(chǎn)生,用于提供系統(tǒng)的相關(guān)信息。下面說明在/proc目錄下的一些最重要的文件。/proc/cpuinfo:該文件保存計算機CPU信息。/proc/filesystems:該文件保存Linux文件系統(tǒng)信息。/proc/ioports:該文件保存計算機I/O端口號信息。/proc/version:該文件保存Linux系統(tǒng)版本信息。/proc/meminfo:該文件保存計算機內(nèi)存信息。4.3文件和目錄操作4.3.1pwd:顯示工作目錄路徑4.3.2cd:更改工作目錄路徑4.3.3ls:列出目錄和文件信息4.3.4touch:創(chuàng)建空文件、更改文件時間4.3.5mkdir:創(chuàng)建目錄4.3.6rmdir:刪除空目錄4.3.7cp:復(fù)制文件和目錄4.3.8mv:文件和目錄改名、移動文件和目錄路徑4.3.9rm:刪除文件或目錄4.3.10wc:統(tǒng)計文件行數(shù)、單詞數(shù)和字節(jié)數(shù)和字符數(shù)pwd:顯示工作目錄路徑顯示當(dāng)前用戶所處的工作目錄的絕對路徑。命令語法:pwd[選項]cd:更改工作目錄路徑更改用戶的工作目錄路徑。工作目錄路徑可以使用絕對路徑名或相對路徑名,絕對路徑從/(根)開始,然后循序到所需的目錄下,相對路徑從當(dāng)前目錄開始。命令語法:cd[選項][目錄]ls:列出目錄和文件信息對于目錄而言將列出其中的所有子目錄與文件信息;對于文件而言將輸出其文件名以及所要求的其它信息。命令語法:ls[選項][目錄|文件]ls命令顯示的詳細信息列數(shù)描述第1列第1個字符表示文件的類型
第2~4個字符表示文件的用戶所有者對此文件的訪問權(quán)限
第5~7個字符表示文件的組群所有者對此文件的訪問權(quán)限
第8~10個字符表示其他用戶對此文件的訪問權(quán)限第2列文件的鏈接數(shù)第3列文件的用戶所有者第4列文件的組群所有者第5列文件長度(也就是文件大小,不是文件的磁盤占用量)第6~8列文件的更改時間(mtime),或者是文件的最后訪問時間(atime)第9列文件名稱touch:創(chuàng)建空文件、更改文件時間創(chuàng)建空文件以及更改文件的時間(atime和mtime)。命令語法:touch[選項][文件]mkdir:創(chuàng)建目錄在Linux系統(tǒng)中創(chuàng)建目錄。命令語法:mkdir[選項][目錄]rmdir:刪除空目錄在Linux系統(tǒng)中刪除空目錄。命令語法:rmdir[選項][目錄]cp:復(fù)制文件和目錄復(fù)制文件和目錄到其它目錄中。如果同時指定兩個以上的文件或目錄,且最后的目的地是一個已經(jīng)存在的目錄,則它會把前面指定的所有文件或目錄復(fù)制到該目錄中。若同時指定多個文件或目錄,而最后的目的地并非是一個已存在的目錄,則會出現(xiàn)錯誤信息。命令語法:cp[選項][源文件|目錄][目標文件|目錄]mv:文件和目錄改名、移動文件和目錄路徑對文件和目錄更改名稱以及移動文件和目錄的路徑。命令語法:mv[選項][源文件|目錄][目標文件|目錄]rm:刪除文件或目錄刪除系統(tǒng)中的文件或目錄。命令語法:rm[選項][文件|目錄]wc:統(tǒng)計文件行數(shù)、單詞數(shù)和字節(jié)數(shù)和字符數(shù)統(tǒng)計指定文件的行數(shù)、單詞數(shù)、字節(jié)數(shù)和字符數(shù),并將統(tǒng)計結(jié)果顯示輸出到屏幕。如果沒有給出文件名,則從標準輸入讀取。wc同時也給出所有指定文件的總統(tǒng)計數(shù)。單詞是由空格字符區(qū)分開的最大字符串。輸出列的順序和數(shù)目不受選項的順序和數(shù)目的影響??偸前葱袛?shù)、單詞數(shù)、字節(jié)數(shù)、文件的順序顯示每項信息。命令語法:wc[選項][文件]4.4鏈接文件4.4.1鏈接文件簡介4.4.2創(chuàng)建和使用鏈接文件鏈接文件簡介鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯(lián)系的方法。Linux系統(tǒng)中包括硬鏈接和軟鏈接(也被稱為符號鏈接)兩種。硬鏈接硬鏈接是一個指針,指向文件inode,系統(tǒng)并不為它重新分配inode,兩文件具有相同的inode。硬鏈接節(jié)省空間,也是Linux系統(tǒng)整合文件系統(tǒng)的傳統(tǒng)方式。軟鏈接軟鏈接也叫符號鏈接,這個文件包含了另一個文件的路徑名??梢允侨我馕募蚰夸洠梢枣溄硬煌募到y(tǒng)的文件,和Windows下的快捷方式相似。鏈接文件甚至可以鏈接不存在的文件,這就產(chǎn)生一般稱之為“斷鏈”的問題,鏈接文件甚至可以循環(huán)鏈接自己。硬鏈接和軟鏈接的區(qū)別硬鏈接記錄的是目標的inode,軟鏈接記錄的是目標的路徑。軟鏈接就像是快捷方式,而硬鏈接就像是備份。軟鏈接可以做跨分區(qū)的鏈接,而硬鏈接由于inode的緣故,只能在本分區(qū)中做鏈接。所以軟鏈接的使用頻率要高得多。創(chuàng)建和使用鏈接文件使用ln命令可以創(chuàng)建鏈接文件(包括軟鏈接文件和硬鏈接文件)。命令語法:ln[選項][源文件名][鏈接文件名]第5章Linux常用操作命令《Linux實用教程》第三版PPT本章內(nèi)容5.1文本內(nèi)容顯示5.2文本內(nèi)容處理5.3文件和命令查找5.4系統(tǒng)信息顯示5.5日期和時間5.6信息交流5.7其他命令5.1文本內(nèi)容顯示5.1.1cat:顯示文本文件5.1.2more:分頁顯示文本文件5.1.3less:回卷顯示文本文件5.1.4head:顯示指定文件前若干行5.1.5tail:查看文件末尾數(shù)據(jù)cat:顯示文本文件顯示文本文件的內(nèi)容,也可以把幾個文件內(nèi)容附加到另一個文件中。如果沒有指定文件,或者文件為“-”,那么就從標準輸入讀取。命令語法:cat[選項][文件]more:分頁顯示文本文件分頁顯示文本文件的內(nèi)容。類似于cat命令,不過是以分頁方式顯示文件內(nèi)容,方便使用者逐頁閱讀,其最基本的按鍵就是按空格鍵就顯示下一頁內(nèi)容,按[b]鍵返回顯示上一頁內(nèi)容。命令語法:more[選項][文件名]less:回卷顯示文本文件回卷顯示文本文件的內(nèi)容。less命令的作用與more十分相似,都可以用來瀏覽文本文件的內(nèi)容,不同的是less命令允許使用者往回卷動。
命令語法:less[選項][文件名]
head:顯示指定文件前若干行顯示指定文件的前若干行文件內(nèi)容。如果沒有給出具體行數(shù)值,默認缺省設(shè)置為10行。如果沒有指定文件,head就從標準輸入讀取。命令語法:head[選項][文件]tail:查看文件末尾數(shù)據(jù)查看文件的末尾數(shù)據(jù),默認顯示指定文件的最后10行到標準輸出。如果指定了多個文件,tail會在每段輸出的開始添加相應(yīng)文件名作為頭。如果不指定文件或文件為“-”,則從標準輸入讀取數(shù)據(jù)。命令語法:tail[選項][文件名]5.2文本內(nèi)容處理5.2.1sort:對文件中的數(shù)據(jù)進行排序5.2.2uniq:將重復(fù)行從輸出文件中刪除5.2.3cut:從文件每行中顯示出選定的字節(jié)、字符或字段5.2.4comm:逐行比較兩個已排過序的文件5.2.5diff:逐行比較兩個文本文件,列出其不同之處sort:對文件中的數(shù)據(jù)進行排序?qū)ξ募械臄?shù)據(jù)進行排序,并將結(jié)果顯示在標準輸出上。命令語法:sort[選項][文件]uniq:將重復(fù)行從輸出文件中刪除將文件內(nèi)的重復(fù)行數(shù)據(jù)從輸出文件中刪除,只留下每條記錄的惟一樣本。命令語法:uniq[選項][文件]cut:從文件每行中顯示出選定的字節(jié)、字符或字段從文件的每行中輸出選定的字節(jié)、字符或字段(域)。只能使用-b、-c或-f選項中的一個。每一個列表都是專門為一個類別作出的,或者可以用逗號隔開要同時顯示的不同類別。輸入順序?qū)⒆鳛樽x取順序,每個僅能輸入一次。命令語法:cut[選項]
[
文件
]comm:逐行比較兩個已排過序的文件比較兩個已排過序的文件,并將其結(jié)果顯示出來。命令語法:comm
[選項][文件1][文件2]diff:逐行比較兩個文本文件,列出其不同之處逐行比較兩個文本文件,列出其不同之處。它比comm命令能完成更復(fù)雜的檢查,它對給出的文件進行系統(tǒng)的檢查,并顯示出兩個文件中所有不同的行,不要求事先對文件進行排序。命令語法:diff[選項][文件1][文件2]5.3文件和命令查找5.3.1grep:查找文件中符合條件的字符串5.3.2find:列出文件系統(tǒng)內(nèi)符合條件的文件5.3.3locate:在數(shù)據(jù)庫中查找文件grep:查找文件中符合條件的字符串查找文件內(nèi)符合條件的字符串。命令語法:grep[選項][查找模式][文件名]find:列出文件系統(tǒng)內(nèi)符合條件的文件將文件系統(tǒng)內(nèi)符合條件的文件列出來,可以指定文件的名稱、類別、時間、大小以及權(quán)限等不同信息的組合,只有完全相符的文件才會被列出來。命令語法:find[路徑][選項]locate:在數(shù)據(jù)庫中查找文件使用locate命令可以通過數(shù)據(jù)庫(/var/lib/mlocate/mlocate.db文件)來查找文件,這個數(shù)據(jù)庫每天由cron程序來建立。當(dāng)創(chuàng)建好這個數(shù)據(jù)庫后,就可以方便地搜尋所需文件了,它比find命令的搜索速度還要快。命令語法:locate
[選項][范本樣式]5.4系統(tǒng)信息顯示5.4.1uname:顯示計算機及操作系統(tǒng)相關(guān)信息5.4.2hostname:顯示或修改計算機主機名5.4.3free:查看內(nèi)存信息5.4.4du:顯示目錄或文件的磁盤占用量uname:顯示計算機及操作系統(tǒng)相關(guān)信息顯示計算機以及操作系統(tǒng)的相關(guān)信息,比如計算機硬件架構(gòu)、內(nèi)核發(fā)行號、操作系統(tǒng)名稱、計算機主機名等。命令語法:uname[選項]hostname:顯示或修改計算機主機名顯示或修改計算機的主機名。命令語法:hostname[選項][主機名|-F<文件>]設(shè)置主機名hostname[選項]顯示格式化主機名free:查看內(nèi)存信息顯示系統(tǒng)的物理內(nèi)存和swap的使用情況。命令語法:free
[選項]du:顯示目錄或文件的磁盤占用量顯示目錄或文件的磁盤占用量。逐級進入指定目錄的每一個子目錄并顯示該目錄占用文件系統(tǒng)數(shù)據(jù)塊的情況。如果沒有給出文件或目錄名稱,那么就對當(dāng)前目錄進行統(tǒng)計。命令語法:du[選項][文件|目錄]5.5日期和時間5.5.1cal:顯示日歷信息5.5.2date:顯示和設(shè)置系統(tǒng)日期和時間5.5.3hwclock:查看和設(shè)置硬件時鐘cal:顯示日歷信息顯示計算機系統(tǒng)的日歷。命令語法:cal[選項][[[日]月]年]date:顯示和設(shè)置系統(tǒng)日期和時間顯示和設(shè)置計算機系統(tǒng)的日期和時間。只有超級用戶才有權(quán)限使用date命令設(shè)置日期和時間,而一般用戶只能使用date命令顯示日期和時間。命令語法:date[選項][顯示時間格式](以+開頭,后面接格式)hwclock:查看和設(shè)置硬件時鐘查看和設(shè)置硬件時鐘(RTC),可以顯示現(xiàn)在時鐘,調(diào)整硬件時鐘,將系統(tǒng)時間設(shè)置成與硬件時鐘一致,或是把系統(tǒng)時間回存到硬件時鐘。命令語法:hwclock
[選項]5.6信息交流5.6.1echo:在顯示器上顯示文字5.6.2mesg:允許或拒絕寫消息5.6.3wall:對全部已登錄用戶發(fā)送信息5.6.4write:向用戶發(fā)送消息echo:在顯示器上顯示文字在計算機顯示器上顯示一段文字,一般起到一個提示的作用。字符串可以加引號,也可以不加引號。用echo命令輸出加引號的字符串時,將字符串按原樣輸出;用echo命令輸出不加引號的字符串時,將字符串中的各個單詞作為字符串輸出,各字符串之間用一個空格分隔。命令語法:echo[選項][字符串]mesg:允許或拒絕寫消息控制系統(tǒng)中的其它用戶是否能夠用
write
命令或
talk
命令向您發(fā)送消息。不帶選項的情況下,mesg
命令顯示當(dāng)前主機消息許可設(shè)置。命令語法:mesg[選項]wall:對全部已登錄用戶發(fā)送信息對全部已登錄的用戶發(fā)送信息。命令語法:wall[消息]write:向用戶發(fā)送消息向用戶發(fā)送消息。命令語法:write[用戶][終端名稱]5.7其他命令5.7.1clear:清除計算機屏幕信息5.7.2uptime:顯示系統(tǒng)已經(jīng)運行的時間clear:清除計算機屏幕信息清除屏幕上的信息,該命令類似于Windows系統(tǒng)命令行中的cls命令。命令語法:clearuptime:顯示系統(tǒng)已經(jīng)運行的時間顯示系統(tǒng)已經(jīng)運行了多長時間,它依次顯示下列信息:現(xiàn)在時間、系統(tǒng)已經(jīng)運行了多長時間、目前有多少登錄用戶、系統(tǒng)在過去的1分鐘、5分鐘和15分鐘內(nèi)的平均負載。命令語法:uptime[選項]第6章Shell編程《Linux實用教程》第三版PPT6.1熟悉Shell程序的創(chuàng)建6.1.1語法基本介紹6.1.2Shell程序的創(chuàng)建過程語法基本介紹1.開頭2.注釋3.執(zhí)行命令Shell程序的創(chuàng)建過程1.創(chuàng)建文件2.設(shè)置可執(zhí)行權(quán)限3.執(zhí)行Shell程序4.使用bash命令執(zhí)行程序6.2Shell變量6.2.1Shell定義的環(huán)境變量6.2.2用戶定義的變量6.2.3位置參數(shù)6.2.4預(yù)定義變量6.2.5參數(shù)置換的變量Shell定義的環(huán)境變量Shell在開始執(zhí)行時就已經(jīng)定義了一些與系統(tǒng)的工作環(huán)境有關(guān)的變量,用戶還可以重新定義這些變量。常用的Shell環(huán)境變量Shell環(huán)境變量描述HOME用于保存用戶主目錄的完全路徑名PATH用于保存用冒號分隔的目錄路徑名,Shell將按PATH變量中給出的順序搜索這些目錄,找到的第一個與命令名稱一致的可執(zhí)行文件將被執(zhí)行TERM終端的類型UID當(dāng)前用戶的UID,由數(shù)字構(gòu)成PWD當(dāng)前工作目錄的絕對路徑名,該變量的取值隨cd命令的使用而變化PS1主提示符,在root用戶下,默認的主提示符是“#”,在普通用戶下,默認的主提示符是“$”PS2在Shell接收用戶輸入命令的過程中,如果用戶在輸入行的末尾輸入“\”然后按回車鍵,或者當(dāng)用戶按回車鍵時Shell判斷出用戶輸入的命令沒有結(jié)束時,就顯示這個輔助提示符,提示用戶繼續(xù)輸入命令的其余部分,默認的輔助提示符是“>”用戶定義的變量用戶可以按照下面的語法規(guī)則定義自己的變量。變量名=變量值在定義變量時,變量名前不應(yīng)該加符號“$”,在引用變量的內(nèi)容時則應(yīng)在變量名前加符號“$”。在給變量賦值時,等號兩邊一定不能留空格,若變量中本身就包含了空格,則整個字符串都要用雙引號括起來。在編寫Shell程序時,為了使變量名和命令名相區(qū)別,建議所有的變量名都用大寫字母來表示。位置參數(shù)位置參數(shù)是一種在調(diào)用Shell程序的命令行中按照各自的位置決定的變量,是在程序名之后輸入的參數(shù)。位置參數(shù)之間用空格分隔,Shell取第一個位置參數(shù)替換程序文件中的$1,第二個替換$2,依次類推。$0是一個特殊的變量,它的內(nèi)容是當(dāng)前這個Shell程序的文件名,所以$0不是一個位置參數(shù),在顯示當(dāng)前所有的位置參數(shù)時是不包括$0的。預(yù)定義變量預(yù)定義變量和環(huán)境變量相類似,也是在Shell一開始時就定義了的變量。所不同的是,用戶只能根據(jù)Shell的定義來使用這些變量,所有預(yù)定義變量都是由符號“$”和另一個符號組成的。常用的Shell預(yù)定義變量預(yù)定義變量描述$#位置參數(shù)的數(shù)量$*所有位置參數(shù)的內(nèi)容$?命令執(zhí)行后返回的狀態(tài),0表示沒有錯誤,非0表示有錯誤$$當(dāng)前進程的進程號$!后臺運行的最后一個進程號$0當(dāng)前執(zhí)行的進程名參數(shù)置換的變量Shell提供了參數(shù)置換功能以便用戶可以根據(jù)不同的條件來給變量賦不同的值。參數(shù)置換的變量有四種,這些變量通常與某一個位置參數(shù)相聯(lián)系,根據(jù)指定的位置參數(shù)是否已經(jīng)設(shè)置決定變量的取值。1.變量=${參數(shù)-word}2.變量=${參數(shù)=word}3.變量=${參數(shù)?word}4.變量=${參數(shù)+word}6.3變量表達式6.3.1字符串比較6.3.2數(shù)字比較6.3.3邏輯測試6.3.4文件操作測試變量表達式test是Shell程序中的一個表達式,通過和Shell提供的if等條件語句相結(jié)合可以方便地測試字符串、文件狀態(tài)和數(shù)字。其語法如下所示。test[表達式]表達式所代表的操作符有字符串操作符、數(shù)字操作符、邏輯操作符以及文件操作符。其中文件操作符是一種Shell特有的操作符,因為Shell里的變量都是字符串,為了達到對文件進行操作的目的,于是才提供了這樣的一種操作符。字符串比較字符竄比較是用來測試字符串是否相同、長度是否為0、字符串是否為null。字符串比較符號字符串比較符號描述=比較兩個字符串是否相同,相同則為“是”!=比較兩個字符串是否相同,不同則為“是”-n比較字符串的長度是否大于0,如果大于0則為“是”-z比較字符串的長度是否等于0,如果等于0則為“是”數(shù)字比較數(shù)字比較是用來測試數(shù)字的大小。數(shù)字比較符號數(shù)字比較符號描述-eq相等-ge大于等于-le小于等于-ne不等于-gt大于-lt小于邏輯測試邏輯測試是用來測試文件是否存在。邏輯測試符號邏輯測試符號描述!與一個邏輯值相反的邏輯值-a兩個邏輯值為“是”返回值才為“是”,反之為“否”-o兩個邏輯值有一個為“是”,返回值就為“是”文件操作測試文件操作測試表達式通常是為了測試文件的文件操作邏輯。文件操作測試符號文件操作測試符號描述-d對象存在且為目錄則返回值為“是”-f對象存在且為文件則返回值為“是”-L對象存在且為符號鏈接則返回值為“是”-r對象存在且可讀,則返回值為“是”-s對象存在且長度非0則返回值為“是”-w對象存在且可寫,則返回值為“是”-x對象存在且可執(zhí)行,則返回值為“是”!測試條件的否定6.4Shell條件判斷語句6.4.1if條件語句6.4.2case條件語句if條件語句Shell程序中的條件分支是通過if條件語句來實現(xiàn)的,其語法格式有if-then-fi語句和if-then-else-fi語句兩種。if-then-fi語句語法格式:if命令行1then命令行2fiif-then-else-fi語句
語法格式:if命令行1then命令行2else命令行3ficase條件語句
if條件語句用于在兩個選項中選定一項,而case條件選擇為用戶提供了根據(jù)字符串或變量的值從多個選項中選擇一項的方法。語法格式:casestringinexp-1)若干個命令行1;;exp-2)若干個命令行2;;......*)其它命令行esac6.5Shell循環(huán)控制語句6.5.1for循環(huán)語句6.5.2while循環(huán)語句6.5.3 until循環(huán)語句for循環(huán)語句for循環(huán)語句對一個變量的可能的值都執(zhí)行一個命令序列。賦給變量的幾個數(shù)值既可以在程序中以數(shù)值列表的形式提供,也可以在程序以外以位置參數(shù)的形式提供。for循環(huán)語句的語法格式如下所示。for變量名[in數(shù)值列表]do若干個命令行donewhile循環(huán)語句While語句是用命令的返回狀態(tài)值來控制循環(huán)的。語法格式:while若干個命令行1do若干個命令行2doneuntil循環(huán)語句until循環(huán)語句是另外一種循環(huán)結(jié)構(gòu),它和while語句相類似。語句格式:until若干個命令行1do若干個命令行2done第7章用戶和組群賬戶管理《Linux實用教程》第三版PPT本章內(nèi)容7.1用戶賬戶簡介7.2用戶賬戶設(shè)置7.3組群賬戶簡介7.4組群賬戶設(shè)置7.5用戶和組群賬戶維護7.1用戶賬戶簡介7.1.1用戶賬戶分類7.1.2/etc/passwd文件7.1.3/etc/shadow文件用戶賬戶分類
用戶賬戶在Linux系統(tǒng)中是分角色的,由于角色不同,每個用戶的權(quán)限和所能完成的任務(wù)也不同。而在實際的管理中,用戶的角色是通過UID(用戶ID號)來標識的,每個用戶的UID都是不同的。1.root用戶2.系統(tǒng)用戶3.普通用戶/etc/passwd文件
/etc/passwd文件是系統(tǒng)識別用戶的一個重要文件,Linux系統(tǒng)中所有的用戶都記錄在該文件中。假設(shè)用戶以賬戶zhangsan登錄系統(tǒng)時,系統(tǒng)首先會檢查/etc/passwd文件,看是否有zhangsan這個賬戶,然后確定用戶zhangsan的UID,通過UID來確認用戶的身份,如果存在則讀取/etc/shadow文件中所對應(yīng)的密碼。如果密碼核實無誤則登錄系統(tǒng),讀取用戶的配置文件。任何用戶都可以讀取/etc/passwd文件內(nèi)容,在/etc/passwd文件中,每一行表示的是一個用戶賬戶的信息,一行有7個段位,每個段位用“:”分隔。/etc/passwd文件字段含義字段字段含義用戶名也稱為登錄名,在系統(tǒng)內(nèi)用戶名應(yīng)該具有惟一性。在本例中,zhangsan就是用戶名密碼存放加密用戶的密碼,看到的是一個x,其實密碼已被映射到/etc/shadow文件中用戶標識號(UID)在系統(tǒng)內(nèi)用一個整數(shù)標識用戶ID號,每個用戶的UID都是惟一的,root用戶的UID是0,普通用戶的UID默認從1000開始,本例中的用戶zhangsan的UID是1000組群標識號(GID)在系統(tǒng)內(nèi)用一個整數(shù)標識用戶所屬的主要組群ID號,每個組群的GID都是惟一的用戶名全稱用戶名描述,可以不設(shè)置。在本例中,zhangsan用戶的用戶名全稱是張三主目錄用戶登錄系統(tǒng)后首先進入的目錄,zhangsan用戶的主目錄是/home/zhangsan登錄Shell用戶使用的Shell類型,Linux系統(tǒng)默認使用的Shell是/bin/bash用戶UID
UID是用戶的ID值,在系統(tǒng)中每一位用戶的UID值都是惟一的,更確切地說每一位用戶都要對應(yīng)一個惟一的UID。Linux系統(tǒng)用戶的UID值是一個正整數(shù),初始值從0開始,在Linux系統(tǒng)中默認的最大值是60000。root的UID是0,擁有系統(tǒng)最高權(quán)限。UID是確認用戶權(quán)限的標識,用戶登錄系統(tǒng)所處的角色是通過UID來實現(xiàn)的,而不是用戶名。一般情況下,Linux的發(fā)行版本都會預(yù)留一定的UID給系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中暑的健康宣教
- 職業(yè)籃球體能訓(xùn)練課件
- 藍牙打印機定制服務(wù)協(xié)議
- 麻醉科術(shù)后鎮(zhèn)痛評估指南
- 安裝一體化設(shè)備采購服務(wù)協(xié)議
- 安全生產(chǎn)事故應(yīng)急賠償合同
- 工業(yè)設(shè)備租賃合同協(xié)議合同
- 財務(wù)會計報表審計協(xié)議
- 房屋托管服務(wù)合同協(xié)議
- 2025寧夏鐵發(fā)技術(shù)服務(wù)有限公司招聘銀行業(yè)務(wù)助理2人考試筆試備考試題及答案解析
- 利用EXCEL畫風(fēng)機特性曲線-模版
- 基層銷售人員入職培訓(xùn)課程完整版課件
- 2023年郴州職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析word版
- 西南大學(xué)PPT 04 實用版答辯模板
- D500-D505 2016年合訂本防雷與接地圖集
- 顱腦損傷的重癥監(jiān)護
- 《史記》上冊注音版
- JJF 1985-2022直流電焊機焊接電源校準規(guī)范
- GB/T 19867.2-2008氣焊焊接工藝規(guī)程
- 國家開放大學(xué)《刑法學(xué)(1)》形成性考核作業(yè)1-4參考答案
- 商戶類型POS機代碼
評論
0/150
提交評論