欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Linux操作系統課程詳細整理(命令、shell編程、軟件安裝等)

第1章 Linux基礎

在大數據從理論到實(shí)際的落地過(guò)程中,Linux早已經(jīng)超出了操作系統的范疇,它在今天甚至被稱(chēng)為大數據運行的平臺。對于學(xué)過(guò)Linux課程的院校,強烈建議把本章復習一下,因為在后續學(xué)習過(guò)程中大數據的軟件、框架全都基于Linux平臺,本章的知識點(diǎn)要求為:

?掌握Linux文件管理常用的命令

?掌握Linux的權限管理常用的命令

?掌握Linux的軟件包管理常用的命令

?掌握Linux的網(wǎng)絡(luò )管理常用的命令

?掌握Linux的進(jìn)程管理常用的命令

?掌握Linux的進(jìn)程管理常用的命令

?熟悉Linux的shell腳本編程

?熟悉Linux環(huán)境下JDK、Tomcat、MySQL軟件的安裝

一、Linux概述

Linux是一套免費使用和自由傳播的,類(lèi)似Unix的操作系統,是一個(gè)基于POSIX和Unix的多用戶(hù)、多任務(wù)、支持多線(xiàn)程和多CPU的操作系統。它能運行主要的Unix工具軟件、應用程序和網(wǎng)絡(luò )協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò )為核心的設計思想,是一個(gè)性能穩定的多用戶(hù)網(wǎng)絡(luò )操作系統。

現在很多企業(yè)都將大數據、云計算平臺部署在Linux操作系統上,所以學(xué)習和使用Linux現在變得意義非常的重大。

目前市面上較知名的發(fā)行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

下面主要介紹下CentOS系列的Linux和Ubuntu系列的Linux,這兩款Linux在學(xué)習和項目實(shí)戰中也是用的比較多的:

1、CentOS操作系統

CentOS 是一個(gè)基于Red Hat Linux 提供的可自由使用源代碼的企業(yè)級Linux發(fā)行版本。每個(gè)版本的 CentOS都會(huì )通過(guò)安全更新方式獲得十年的支持。新版本的 CentOS 大約每?jì)赡臧l(fā)行一次,而每個(gè)版本的 CentOS 會(huì )定期更新一次,以便支持新的硬件,這樣可以建立一個(gè)安全、低維護、穩定、高預測性、高重復性的 Linux 環(huán)境。CentOS是Community Enterprise Operating System的縮寫(xiě)。

CentOS 是RHEL(Red Hat Enterprise Linux)源代碼再編譯的產(chǎn)物,相對于其他 Linux 發(fā)行版,其穩定性值得信賴(lài)。

CentOS 加入紅帽后不變的是:

(1) CentOS 繼續免費

(2)保持贊助內容驅動(dòng)的網(wǎng)絡(luò )中心不變

(3)Bug、Issue 和緊急事件處理策略不變

(4) Red Hat Enterprise Linux 和 CentOS 防火墻也依然存在

變化的是:

(1)我們是為紅帽工作,不是為 RHEL

(2)紅帽提供構建系統和初始內容分發(fā)資源的贊助

(3) 一些開(kāi)發(fā)的資源包括源碼的獲取將更加容易

(4)避免了原來(lái)和紅帽上一些法律的問(wèn)題

現在最新版本為 CentOS 7.6,上個(gè)版本是7.5。上游RHEL 7主要將內核更新至3.10.0;支持Linux容器(Docker),Open VMware Tools及3D圖像能即裝即用,Open JDK7作為缺省JDK,ext4及XFS的LVM快照,轉用systemd、firewalld及GRUB2,XFS作為缺省文件系統,內核空間內的iSCSI及FCoE,支持PTPv2,支持40G網(wǎng)卡等 。

2、Ubuntu操作系統

Ubuntu(又稱(chēng)烏班圖)是一個(gè)以桌面應用為主的開(kāi)源GNU/Linux操作系統,Ubuntu 是基于Debian GNU/Linux,支持x86、amd64(即x64)、ARM和ppc架構,由全球化的專(zhuān)業(yè)開(kāi)發(fā)團隊(Canonical Ltd)打造的。

Ubuntu基于Debian發(fā)行版和GNOME桌面環(huán)境,而從11.04版起,Ubuntu發(fā)行版放棄了Gnome桌面環(huán)境,改為Unity,與Debian的不同在于它每6個(gè)月會(huì )發(fā)布一個(gè)新版本。Ubuntu的目標在于為一般用戶(hù)提供一個(gè)最新的、同時(shí)又相當穩定的主要由自由軟件構建而成的操作系統。Ubuntu具有龐大的社區力量,用戶(hù)可以方便地從社區獲得幫助。Ubuntu對GNU/Linux的普及特別是桌面普及作出了巨大貢獻,由此使更多人共享開(kāi)源的成果與精彩。

ubuntu基于linux的免費開(kāi)源桌面PC操作系統,十分契合英特爾的超極本定位,支持x86、64位和ppc架構。

二、Linux文件系統

操作系統是管理計算機硬件和軟件資源的系統軟件,是硬件與用戶(hù)之間溝通的橋梁。為了使計算機系統能協(xié)調、高效和可靠地進(jìn)行工作,同時(shí)也為了給用戶(hù)一種方便友好地使用計算機的環(huán)境,和Windows操作系統一樣典型的操作系統應該具有:文件管理的功能、網(wǎng)絡(luò )管理的功能、 進(jìn)程管理、內存管理的功能等等。

為了使用這些管理功能,操作系統通常提供給我們兩種人機交互方式:

(1)圖形界面

例如Windows操作系統,優(yōu)點(diǎn)是人性化程度高,缺點(diǎn)也非常明顯:需要開(kāi)發(fā)重量級別、大量級別的人際交互的軟件系統,耗費大量的系統資源,特別可靠性、穩定性、安全性堪憂(yōu),對于專(zhuān)業(yè)技術(shù)人員非常的不適合,對于普通用戶(hù)非常的適合。

(2)命令行終端

我們Linux大多數采取這種方式,和Windows剛好相反。缺點(diǎn)是人性化程度低,但是優(yōu)點(diǎn)點(diǎn)也非常明顯:需要開(kāi)發(fā)輕量級別、少量級別的人際交互的軟件系統,對系統資源消耗極小,特別可靠性、穩定性、安全性非常高,甚至常年不宕機,對于專(zhuān)業(yè)技術(shù)人員非常的適合,對于普通用戶(hù)不適合。

綜上所述,我們主要講解基于命令行終端的Linux操作系統管理的常用命令,至于想深入了解Linux操作系統其它命令請大家查閱更多資料,這里所列舉的在實(shí)際學(xué)習和項目實(shí)戰中基本夠用。

(一)Linux的文件管理

文件管理系統是操作系統及其它大數據系統(例如:hadoop分布式文件系統HDFS)的重要功能,Linux文件系統的目錄結構如下:

文件系統中的根目錄符號為:'/',位于Linux文件系統目錄結構的頂層,一般根目錄下只存放目錄不存放文件。下面對根目錄下的子目錄逐一介紹:

(1)'/bin'和'/usr/bin目錄

該目錄為命令文件目錄,也稱(chēng)為二進(jìn)制目錄。包含了供系統管理員及普通用戶(hù)使用的重要的linux命令和二進(jìn)制(可執行)文件,包含shell解釋器等。

(2)'/boot'目錄

該目錄中存放系統的內核文件和引導裝載程序文件。

(3)'/dev'目錄

設備(device)文件目錄,存放linux系統下的設備文件,訪(fǎng)問(wèn)該目錄下某個(gè)文件,相當于訪(fǎng)問(wèn)某個(gè)設備,存放連接到計算機上的設備(終端、磁盤(pán)驅動(dòng)器、光驅及網(wǎng)卡等)的對應文件,包括字符設備和塊設備等,常用的是掛載光驅mount /dev/cdrom/mnt。

(4)'/etc'目錄

系統配置文件存放的目錄,該目錄存放系統的大部分配置文件和子目錄,不建議在此目錄下存放可執行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11(X Window系統有關(guān))、/etc/sysconfig(與網(wǎng)絡(luò )有關(guān))、/etc/xinetd.d修改配置文件之前記得備份。該目錄下的文件由系統管理員來(lái)使用,普通用戶(hù)對大部分文件有只讀權限。

(5)'/home'目錄

系統默認的用戶(hù)宿主目錄,新增用戶(hù)賬號時(shí),用戶(hù)的宿主目錄都存放在此目錄下,'~'表示當前用戶(hù)的宿主目錄,'~lily'表示用戶(hù)lily的宿主目錄。

(6)'/root'目錄

系統管理員root的宿主目錄,系統第一個(gè)啟動(dòng)的分區為/,所以最好將/root和/放置在一個(gè)分區下。

(7)'/sbin、/usr/sbin、/usr/local/sbin'目錄

放置系統管理員使用的可執行命令,如fdisk、shutdown、mount等。與/bin不同的是,這幾個(gè)目錄是給系統管理員root使用的命令,一般用戶(hù)只能查看而不能設置和使用。

(8)'/tmp'目錄

一般用戶(hù)或正在執行的程序臨時(shí)存放文件的目錄,任何人都可以訪(fǎng)問(wèn),重要數據不可放置在此目錄下。一些命令和應用程序會(huì )用的到這個(gè)目錄,該目錄下的所有文件會(huì )被定時(shí)刪除,以避免臨時(shí)文件占滿(mǎn)整個(gè)磁盤(pán)。

(9)'/usr'目錄

應用程序存放目錄,/usr/bin 存放應用程序, /usr/share 存放共享數據,/usr/lib 存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件,/usr/local 存放軟件升級包,/usr/share/doc 系統說(shuō)明文件存放目錄。

(9)'/var'目錄

放置系統執行過(guò)程中經(jīng)常變化的文件,如隨時(shí)更改的日志文件 /var/log。/var/log/message: 所有的登錄文件存放目錄。/var/spool/mail: 郵件存放的目錄。 /var/run: 程序或服務(wù)啟動(dòng)后。建議單獨分區,設置較大的磁盤(pán)空間。

(10)'/lib、/usr/lib、/usr/local/lib'目錄

系統使用的函數庫的目錄,程序在執行過(guò)程中,需要調用一些額外的參數時(shí)需要函數庫的協(xié)助,該目錄下存放了各種編程語(yǔ)言庫。典型的linux系統包含了C、C++和FORTRAN語(yǔ)言的庫文件。/lib目錄下的庫映像文件可以用來(lái)啟動(dòng)系統并執行一些命令,目錄/lib/modules包含了可加載的內核模塊,/lib目錄存放了所有重要的庫文件,其他的庫文件則大部分存放在/usr/lib目錄下。

其它的目錄簡(jiǎn)介:

(1)'/lost+fount'目錄

在EXT2或EXT3文件系統中,當系統意外崩潰或機器意外關(guān)機,產(chǎn)生的一些文件碎片放在這里。在系統啟動(dòng)的過(guò)程中fsck工具會(huì )檢查這里,并修復已經(jīng)損壞的文件系統。有時(shí)系統發(fā)生問(wèn)題,有很多的文件被移到這個(gè)目錄中,可能會(huì )用手工的方法來(lái)修復,或者移動(dòng)文件到運來(lái)的位置上。

(2)'/mnt,/media'目錄

mnt目錄主要用來(lái)臨時(shí)掛載文件系統,為某些設備提供默認掛載點(diǎn),如floppy,cdrom。這樣當掛載了一個(gè)設備如光驅時(shí),就可以通過(guò)訪(fǎng)問(wèn)目錄/mnt/cdrom下的文件來(lái)訪(fǎng)問(wèn)相應的光驅上的文件了。

(3)'/opt'目錄

給主機額外安裝軟件所擺放的目錄。如:FC4使用的Fedora 社群開(kāi)發(fā)軟件,如果想要自行安裝新的KDE 桌面軟件,可以將該軟件安裝在該目錄下。以前的 Linux 系統中,習慣放置在 /usr/local 目錄下。

三、Linux操作系統管理的常用命令

Linux的常用命令有文件管理、權限管理、軟件包管理、網(wǎng)絡(luò )管理、進(jìn)程管理、進(jìn)程管理等命令。這里只是列舉項目實(shí)戰使用頻度最高的,其它的命令及其參數請大家查閱幫助或者有關(guān)參考書(shū)。

(一)文件管理命令

1、文件管理

(1)ls命令

ls命令的功能是顯示指定目錄下的文件目錄清單。該命令常用格式及其參數說(shuō)明如下:

ls -a 參數-a的功能:顯示隱含文件

ls -l 以長(cháng)格式列表輸出指定目錄中的文件清單

ls -R 遞歸顯示

例如:

[root@localhost dev]# ls -l

crw-rw----. 1 root video 10, 175 Oct 10 22:18 agpgart

drwxr-xr-x. 2 root root 620 Oct 10 22:18 block

lrwxrwxrwx. 1 root root 3 Oct 10 22:18 cdrw -> sr0

lrwxrwxrwx. 1 root root 13 Oct 10 22:18 fd -> /proc/self/fd

srw-rw-rw-. 1 root root 0 Oct 10 22:18 log

brw-rw----. 1 root disk 7, 0 Oct 10 22:18 loop0

下面對顯示的文件進(jìn)行說(shuō)明:

文件基本信息:

文件類(lèi)型 文件權限 文件個(gè)數 屬主 屬組 大小 日期 時(shí)間 文件名

d rwxrwxr-x 2 lily group1 2048 Aug 17 09:10 file

Linux文件有三種權限,即r讀權限、w寫(xiě)權限和x執行權限

屬主 屬組 其他用戶(hù)

rwx rwx r-x

文件的類(lèi)型:

d :表示目錄文件,在Linux中目錄也是文件,不僅如此,實(shí)際上在Linux中任何設備也可以被當作文件處理。

l :表示符號連接文件

b :表示塊設備文件。例如硬盤(pán)的設備文件/dev/hda,其中字母a表示 第一塊,h表示IDE類(lèi)型的硬盤(pán),SCSI類(lèi)型的硬盤(pán)用s表示; 分區也有相對應的設備文件,如/dev/sdb3,表示第2塊SCSI硬盤(pán)上的第3個(gè)分區。

c :表示字符設備文件,如/dev/tty1。

p :表示管道文件。

s :表示套接字文件

(2)cd命令

Cd命令的功能為改變文件的目錄,例如:

(3)pwd命令

pwd的功能為顯示當前目錄,例如:

(4)mkdir命令

mkdir的功能為在當前目錄下創(chuàng )建目錄,其中參數p為遞歸創(chuàng )建目錄。

示例-1:創(chuàng )建d1文件夾

示例-2:遞歸創(chuàng )建文件夾

在'mkdir -p a/b/c'命令 參數-p功能是如果要創(chuàng )建的目錄的父目錄不存在,則先創(chuàng )建其父目錄,再創(chuàng )建該目錄,操作演示如下:

(5)cp命令

語(yǔ)法:

cp 源文件 目標文件

-f:強制執行

-i:若目標文件已經(jīng)存在,在覆蓋時(shí)先詢(xún)問(wèn)操作是否進(jìn)行

-r:遞歸復制,用于目錄的復制行為

示例-1 :將/usr/local/dir1下所有java為擴展名的文件復制到/usr/local/dir2

cp /usr/local/dir1/*.java /usr/local/dir2

示例-2:將/usr/local/dir1下所有內容復制到/usr/local/dir2

cp /usr/local/dir1/* /usr/local/dir2

(6)mv命令

功能:如果mydir1存在且是個(gè)目錄,則將文件myfile移動(dòng)到目錄mydir1中

示例1:將文件移動(dòng)到目錄中

mv  myfile  mydir1

功能:將文件(或目錄)myfile改名為myfile2

示例2:文件改名

mv  myfile  myfile2

(7)rm命令

-r:是遞歸的意思,即可以刪除非空目錄

-f:是強制的意思

示例1:

rm demo.java

示例2:

rm -rf /usr/local/dir1/*

(8)cat命令

功能:顯示文件內容

示例-1:顯示指定文件myfile的內容

cat myfile

(9)more命令

功能: 分屏顯示指定文件httpd.conf的內容

示例-1:

more /etc/httpd/conf/httpd.conf

(10)head命令

功能:默認顯示指定文件的頭10行的內容。使用參數-n設置顯示指定行數

示例-1:

head /etc/httpd/conf/httpd.conf

示例-2:

本例會(huì )顯示文件的頭12行的內容

head -n 12 /etc/httpd/conf/httpd.conf

(二)Linux的vim編輯器

基本上vi可以分為三種狀態(tài),分別是命令模式、插入模式和底行模式。

1、命令模式

用戶(hù)剛剛啟動(dòng) vi/vim,便進(jìn)入了命令模式。此狀態(tài)下敲擊鍵盤(pán)動(dòng)作會(huì )被Vim識別為命令,而非輸入字符。比如我們此時(shí)按下i,并不會(huì )輸入一個(gè)字符,i被當作了一個(gè)命令。以下是常用的幾個(gè)命令:

(1)i 切換到輸入模式,以輸入字符。

(2)x 刪除當前光標所在處的字符。

(3): 切換到底線(xiàn)命令模式,以在最底一行輸入命令

2、插入模式

在命令模式下按下i就進(jìn)入了輸入模式

3、底行模式

在命令模式下按下:(英文冒號)就進(jìn)入了底線(xiàn)命令模式,除冒號外還有:

(1)q 退出程序

(2)w 保存文件

如下圖所示:

示例-1

編輯個(gè)hello文件,操作如下所示:

步驟1:輸入vim hello命令,這時(shí)候默認為命令模式

步驟2:按'i'鍵,轉換為插入模式

步驟3:輸入內容

步驟4:編輯完成后,按'Esc'鍵進(jìn)入命令模式

步驟5:按':wq'保存并退出

步驟6:查看hello的內容

4、vim的刪除功能

(1)dd

刪除光標所在行

5、復制和粘貼

yy 復制光標所在行

p 粘貼輸出

刪除、復制和粘貼總結如下表所示:

5、光標、快捷鍵等操作

6、保存文件的操作

7、查找功能

8、撤銷(xiāo)功能

(三)Linux的權限管理

Linux權限管理常用的命令為chmod權限操作命令,其常用方式如下

(1)chmod字母方式

u--針對屬主

g--針對屬組

o--針對其他用戶(hù)

a--針對所有用戶(hù)

= 表示賦予(設置)指定權限,要注意它會(huì )覆蓋原權限

+ 表示在原有權限的基礎上增加指定權限

- 表示在原有權限的基礎上去掉指定權限

r、w、x三種權限,既可以單獨使用也可以組合使用

示例1: chmod u+x host.conf

功能:為文件host.conf的屬主增加執行權限

示例2: chmod g-w,o=x host.conf

功能:將文件host.conf的屬組去掉寫(xiě)權限,同時(shí)將其他用戶(hù)設置為只有執行權限,而文件屬主的權限不變

(2)chmod:數字方式

r-----4 讀權限

w-----2 寫(xiě)權限

x-----1 執行權限

無(wú)-----0 無(wú)權限

例如:

若要rwx屬性則4+2+1=7;

若要rw-屬性則4+2=6;

若要r-x屬性則4+1=5。

示例-1:

示例-2:

chmod 777 myFile

上述命令等同于chmod a=rwx myFile。

(四)Linux的軟件包管理

在實(shí)際的軟件項目及其大數據項目開(kāi)發(fā)中,tar命令是我們經(jīng)常使用的命令。tar命令是經(jīng)典的備份/還原命令,幾乎所有最新的軟件包都是通過(guò)tar包發(fā)布的。

(1)打包(備份)

參數-c的功能是打包(創(chuàng )建),

參數-v是顯示處理過(guò)程,

參數-f是用來(lái)指定文檔名;

示例:

$ tar -cvf myetc.tar /etc

本例的功能是:將目錄/etc打包為一個(gè)名為myetc.tar的文檔

(2)解壓縮還原

功能:將參數-c換成-x即可實(shí)現還原釋放的功能。

$ tar -zxvf myetc.tar.gz

本例沒(méi)有指明還原的位置,則將會(huì )還原在當前目錄下;如果想指明還原位置可用參數-C,請嘗試如下示例:

$ tar -zxvf myetc.tar.gz -C /tmp

(五)Linux的網(wǎng)絡(luò )管理

Linux操作系統具有強大的網(wǎng)絡(luò )管理功能,除了自身具有很強的網(wǎng)絡(luò )安全性以外,幾乎支持所有主流防火墻等網(wǎng)絡(luò )安全軟件,所有Linux的強大網(wǎng)絡(luò )功能給我們的大數據安全帶來(lái)了極大的方便,在以后的大數據學(xué)習中,我們經(jīng)常使用的網(wǎng)絡(luò )命令如下:

1、 ping命令

ping 將數據包發(fā)向用戶(hù)指定地址。當包被接收,目標機器發(fā)送返回數據包。ping 主要有兩個(gè)作用:

(1) 用來(lái)確認網(wǎng)絡(luò )連接是暢通的。

(2) 用來(lái)查看連接的速度信息。

如果你 ping www.baidu.com 它將返回它的 ip 地址 。你可以通過(guò) ctrl+C 來(lái)停止命令。

2、ifconfig

查看用戶(hù)網(wǎng)絡(luò )配置。它顯示當前網(wǎng)絡(luò )設備配置。對于需要接收或者發(fā)送數據錯誤查找,這個(gè)工具極為好用。

3、netstat命令

netstat命令用于顯示本機上與IP、TCP、UDP和ICMP協(xié)議相關(guān)的統計數據,該命令經(jīng)常被用于檢驗本機各端口的網(wǎng)絡(luò )連接情況。

Netstat常用的命令使用舉例如下:

(1)netstat –a

顯示所有的有效連接信息,包括已建立的連接和監聽(tīng)的連接請求。

(2)netstat -i

顯示系統中所有網(wǎng)絡(luò )接口信息,包括物理網(wǎng)卡、網(wǎng)卡別名和本地回環(huán)網(wǎng)卡。

(3)netstat –n

顯示系統中所有已建立的連接。

(4)netstat –ta

顯示有效的TCP連接。

(5)netstat –ua

顯示有效的UDP連接。

(6)netstat -an | grep 3306

顯示端口號為3306的網(wǎng)絡(luò )連接信息。

(六)Linux的進(jìn)程管理

操作系統的進(jìn)程管理是Linux的重要功能,在我們的大數據項目實(shí)戰中經(jīng)常用到ps、jps、kill命令。

1、ps具體命令解釋如下:

ps a 顯示現行終端機下的所有程序,包括其他用戶(hù)的程序。

ps -A 顯示所有程序。

ps c 列出程序時(shí),顯示每個(gè)程序真正的指令名稱(chēng),而不包含路徑

ps -e 此參數的效果和指定'A'參數相同。

ps e 列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量。

ps f 用ASCII字符顯示樹(shù)狀結構,表達程序間的相互關(guān)系。

ps -H 顯示樹(shù)狀結構,表示程序間的相互關(guān)系。

ps -N 顯示所有的程序,除了執行ps指令終端機下的程序之外。

ps s 采用程序信號的格式顯示程序狀況。

ps S 列出程序時(shí),包括已中斷的子程序資料。

ps -t<終端機編號>

指定終端機編號,并列出屬于該終端機的程序的狀況。

ps u 以用戶(hù)為主的格式來(lái)顯示程序狀況。

ps x 顯示所有程序,不以終端機來(lái)區分。

2、強制殺死進(jìn)程

kill -9 進(jìn)程ID

3、顯示java進(jìn)程jps

Jps是我們以后經(jīng)常用到的命令,前提是你必須安裝jdk,其使用操作如下:

四、Linux的shell腳本編程

Shell 是一個(gè)用 C 語(yǔ)言編寫(xiě)的程序,它是用戶(hù)使用 Linux 的橋梁。Shell 既是一種命令語(yǔ)言,又是一種程序設計語(yǔ)言。

Shell的作用是解釋執行用戶(hù)的命令,用戶(hù)輸入一條命令,Shell就解釋執行一條,這種方式稱(chēng)為交互式(Interactive),Shell還有一種執行命令的方式稱(chēng)為批處理(Batch),用戶(hù)事先寫(xiě)一個(gè)Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執行完,而不必一條一條地敲命令。Shell腳本和編程語(yǔ)言很相似,也有變量和流程控制語(yǔ)句,但Shell腳本是解釋執行的,不需要編譯,Shell程序從腳本中一行一行讀取并執行這些命令,相當于一個(gè)用戶(hù)把腳本中的命令一行一行敲到Shell提示符下執行

由于歷史原因,UNIX系統上有很多種Shell:

(1) sh(Bourne Shell)

由Steve Bourne開(kāi)發(fā),各種UNIX系統都配有sh。

(2) csh(C Shell)

由Bill Joy開(kāi)發(fā),隨BSD UNIX發(fā)布,它的流程控制語(yǔ)句很像C語(yǔ)言,支持很多Bourne Shell所不支持的功能:作業(yè)控制,命令歷史,命令行編輯。

(3)ksh(Korn Shell)

由David Korn開(kāi)發(fā),向后兼容sh的功能,并且添加了csh引入的新功能,是目前很多UNIX系統標準配置的Shell,在這些系統上/bin/sh往往是指向/bin/ksh的符號鏈接。

(4)tcsh(TENEX C Shell)

是csh的增強版本,引入了命令補全等功能,在FreeBSD、MacOS X等系統上替代了csh。

(5)bash(Bourne Again Shell)

由GNU開(kāi)發(fā)的Shell,主要目標是與POSIX標準保持一致,同時(shí)兼顧對sh的兼容,bash從csh和ksh借鑒了很多功能,是各種Linux發(fā)行版標準配置的Shell,在Linux系統上/bin/sh往往是指向/bin/bash的符號鏈接。雖然如此,bash和sh還是有很多不同的,一方面,bash擴展了一些命令和參數,另一方面,bash并不完全和sh兼容,有些行為并不一致,所以bash需要模擬sh的行為:當我們通過(guò)sh這個(gè)程序名啟動(dòng)bash時(shí),bash可以假裝自己是sh,不認擴展的命令,并且行為與sh保持一致。

(一)最簡(jiǎn)單的shell

1、Shell的結構:

(1)、#!指定執行腳本的shell

(2)、#注釋行

(3)、控制結構

2、創(chuàng )建shell的步驟:

(1)、使用vi編輯器創(chuàng )建以.sh結尾的文件 :vi demo.sh

(2)、編輯相關(guān)shell程序,編寫(xiě)完畢后加執行權限:

chmod u+x demo.sh

(3)、執行程序 ./demo.sh

也可以使用sh demo.sh來(lái)執行

使用 sh -x demo.sh中的x表示腳本的執行過(guò)程

使用 sh -n demo.sh不執行腳本,只是檢查語(yǔ)法的錯誤,返回所有錯誤信息

(二)shell的變量

Shell變量包括:臨時(shí)變量和環(huán)境變量,臨時(shí)變量時(shí)shell程序內部定義的,對其他程序不可見(jiàn),包括用戶(hù)自定義變量和位置變量;環(huán)境變量就是全局變量,不隨著(zhù)shell腳本的結束而消失。

在使用變量值的時(shí)候,要在變量名前加前綴'$'

變量賦值用'=',注意兩邊不能有空格

變量賦值舉例:

1、 NUM=1

2、將一個(gè)命令的執行結果賦給變量,例如

time=`date`

time=(date +%F) echo $time

3、將一個(gè)變量賦給另一個(gè)變量:A=$B

查看變量的值:echo $A

字符串用單引號或者雙引號

雙引號有自動(dòng)解析變量的功能

例如:

sum=100

echo 'The total is $sum'

set為顯示所有的環(huán)境變量

刪除變量unset

(三)位置變量和特殊變量

1、位置變量

Shell解釋執行用戶(hù)命令的時(shí)候,將命令行的第一部分作為命令名,其他部分作為參數。有出現在命令行上的位置確定的參數成為位置參數

例如:ls -l file1 file2 file3

$0位置被個(gè)程序的文件名占用,其它剩余位置$1 $2 $3…$9

例如:在test.sh中有如下內容

mkdir files$1_s00$2_class$3

執行時(shí)候./test.sh 001 1 001,表示$0被test.sh占用、$1被001占用、1被$2占用,001被$3占用

2、特殊變量

$*這個(gè)程序的所有參數

$#這個(gè)程序的參數個(gè)數

$$這個(gè)程序的 PID

$!執行上一個(gè)后臺的PID

$?執行上一個(gè)命令的返回值

例如有test.sh程序,內容如下:

echo '$# is:' $#

echo '$* is:' $*

echo '$? is:' $?

echo '$$ is:' $$

echo '$0 is:' $0

運行 ./test.sh p1 p2 p3 后查看結果

(四)shell的一些常用命令

1、Read命令:從鍵盤(pán)讀入數據,賦給變量

例如 read x 100 ; echo $x

如程序test.sh:

read a1 a2 a3

echo 'the a1 value is $a1'

echo 'the a2 value is $a2'

echo 'the a3 value is $a3'

則執行的時(shí)候

./test.sh 100 200 300

2、expr指令:對整型變量進(jìn)行算術(shù)運算

例如expr 100 + 200注意加號左右有空格

del@box:/temp$ expr 100 + 200

300

另外注意乘法為' \*',要有轉義符

例如3 \* 5

復雜的運算:expr `expr 6 + 9` / 3

將運算的結果賦予變量 x=`expr 1 + 2`

3、變量測試語(yǔ)句:

測試變量是否相等、為空等情況。語(yǔ)法:test 測試條件;測試范圍:整數、字符串、文件

(1)字符串測試:

test str1=str2 測試字符串是否相等

test str1!=str2 測試字符串是否不相等

test str1 測試字符串是否不為空

test -n str1 測試字符串是否不為空

test -z str1 測試字符串是否為空

(3)測試整數

test int1 -eq int2 測試int1和int2是否相等

test int1 -ge int2 測試int1是否>=int2

test int1 -gt int2 測試int1是否>int2

test int1 -le int2 測試int1是否<=int2

test int1 -lt int2 測試int1是否<int2

test int1 -ne int2 測試int1和int2是否不相等

(4)文件測試

test -d file 指定文件是否目錄

test -f file 指定文件是否常規文件

test -x file 指定文件是否可執行

test -r file 指定文件是否可讀

test -w file 指定文件是否可寫(xiě)

test -a file 指定文件是否存在

test -s file 文件大小是否非0

測試語(yǔ)句一般不單獨使用,一般配合if語(yǔ)句來(lái)判斷,如:

if test -d $1 then

…….

fi

變量測試語(yǔ)句也可以用[]簡(jiǎn)化,例如:

test -d $1等價(jià)于 [ -d $1 ] 注意:中括號左右的表達式要有空格

(五)流程控制

1、選擇結構if語(yǔ)句

(1) If [ ]; then

fi

(2) If [ ]; then

else

fi

例如:

If [ $# -ne 2 ]; then

echo 'not enough parameters'

exit 0 //0表示正常退出

fi

If[ $1 -eq $2 ];then

echo '$1 equals $2'

fi

(3) If [ ] then

elif [ ]

elif [ ]

else

例如:test.sh內容如下

read file_name

if [ -d $file_name ]

then

echo 'This is directory!!!'

elif [ -f $file_name ]

then

echo 'This is file!!!'

else

echo 'This is nothing!!!'

fi

條件組合查詢(xún):

-a :邏輯與,條件都成立的時(shí)候結果為真

-o :邏輯或,只要有一個(gè)條件成立,結果為真

例如:test.sh內容如下

read file_name

if [ -d $file_name ]

then

echo 'This is directory!!!'

elif [ -f $file_name ]

then

echo 'This is file!!!'

elif [ -c $file_name -o -b $file_name ]

echo 'This is device file!!!'

else

echo 'This is nothing!!!'

fi

2、循環(huán)結構

(1)形式-1:for-in

語(yǔ)法:

for 變量 in 名字表

do

…..

done

例如:

for x in 11 22 33 44 55 66

do

echo 'x value is : $x'

done

(2)形式-2:for

語(yǔ)法:

for ((初始值; 循環(huán)條件; 增量 ))

do

指令…

done

示例-1:輸出1 2 3 4 5

for((i = 1;i <= 5;i++))

do

echo $i

done

示例-2:求1—100的和

for (( i=1; i<=100; i++ ))

do

sum=$(( $sum + $i ))

done

echo '1+2+3+...+100=$sum'

3、case語(yǔ)句

語(yǔ)法:

case '$variable' in

'$condition1' )

command...

;;

'$condition2' )

command...

;;

esac

對變量使用''并不是強制的, 因為不會(huì )發(fā)生單詞分割

每句測試行, 都以右小括號)來(lái)結尾

每個(gè)條件判斷語(yǔ)句塊都以一對分號結尾 ;;

case塊以esac (case的反向拼寫(xiě))結尾

例如,有下列程序test.sh內容如下:

read c

case $c in

a)

echo 'this is a'

;;

b)

echo 'this is b'

;;

c)

echo 'this is c'

;;

*)

echo 'none'

esac

4、while循環(huán)

基本語(yǔ)法:

while [ condition ]

do

command1

command2

command3

done

例如,test.sh中的寫(xiě)法如下:

num=1

while [ $num -le 10 ]

do

sum=`expr $num \* $num`

echo $sum

num=`expr $num+1`

done

5、break和continue語(yǔ)句

break:結束循環(huán)

continue:結束本次循環(huán),開(kāi)始新的一輪循環(huán)

例如:

while true

do

echo '============================'

echo ' 1 add '

echo '2 delete '

echo '3 update'

echo '4 Quit'

read num_op

case $num_op in

1)

echo 'this is add operation'

;;

2)

echo 'this is delete operation'

;;

3)

echo 'this is update operation'

;;

4)

echo 'exit …..'

break

;;

esac

done

6、shift指令

參數左移:每執行一次,參數序列順次左移一個(gè)位置,即$#的值減去1。其用于處理每個(gè)參數,移動(dòng)出去的參數不能再用

例如,test.sh文件內容如下:

If [ $# -le 0 ]

then

echo 'not enough parameters'

exit 0

Fi

Sum=0

While [ $# -gt 0 ]

sum=`expr $sum + $1`

shift

Done

Echo $sum

五、Linux系統下的軟件安裝部署

在Linux環(huán)境下,由于很多傳統的開(kāi)發(fā)工具及大數據軟件、框架離不開(kāi)java虛擬機的環(huán)境,所以在安裝軟件之前必須安裝JDK。為了使軟件能夠在任一路徑運行,還必須要配置環(huán)境變量PATH,筆者在這里很好的總結了環(huán)境變量PATH的應用,如下所示:

1、將可執行文件加入PATH

在/usr/local/img/有個(gè)圖片demo.jpg,請設置個(gè)環(huán)境變量,以便在任何路徑都可以運行demo.jpg的圖片,圖片自己選擇,例如在隨便的路徑運行demo.jpg回車(chē),即可顯示圖片

步驟1:

vim /etc/profile

步驟2:

export PATH=/usr/local/img/demo.jpg:$PATH

步驟3:

:wq保存并退出

最后使文件生效:

source /etc/profile

2、使用export 命令查看PATH值

在命令行輸入:export

3、使用'echo $PATH'顯示環(huán)境變量的值

在命令行輸入:echo $PATH

4、使用'export PATH'添加臨時(shí)的環(huán)境變量,命令行窗口關(guān)閉,臨時(shí)環(huán)境變量失效,例如想要jdk的臨時(shí)環(huán)境變量,操作如下:

export PATH=/usr/local/jdk1.8/bin:$PATH

5、永久添加環(huán)境變量

永久添加環(huán)境變量要求能夠影響當前用戶(hù)和所有用戶(hù)。

(1)影響當前用戶(hù)

vim /root/.bashrc

export PATH='/usr/local/img/demo.jpg:$PATH

source /root/.bashrc

(2)影響所有用戶(hù)

vim /etc/profile

export PATH='/usr/local/img/demo.jpg:$PATH

source /etc/profile

6、使用env指定顯示所有的環(huán)境變量和值

在命令行輸入:env

7、使用set命令指定本地變量

在命令行輸入:set

(一)安裝JDK

步驟1:先查看linux版本是多少位的,在命令行輸入uname –a

步驟2:進(jìn)入官網(wǎng)下載相對應的linux版本,這里我們選擇jdk-8u91-linux-x64.tar.gz

步驟3:將jdk-8u91-linux-x64.tar.gz上傳到/usr/local/

步驟4:將jdk-8u91-linux-x64.tar.gz解壓,命令如下所示:

tar -zxvf jdk-8u91-linux-x64.tar.gz

步驟5:將解壓后的文件jdk1.8.0_91文件改名為jdk1.8

mv jdk1.8.0_91 jdk1.8

步驟6:配置Linux環(huán)境的PATH

vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8

PATH=$JAVA_HOME/bin:$PATH

配置完成后保存并退出,使文件生效:

source /etc/profile

步驟7:在終端輸入'java –version'可以看到你安裝的版本,或者輸入

javac

java

(二)安裝Tomcat

步驟1:下載tomcat

從官網(wǎng)下載tomcat,這里下載apache-tomcat-8.0.20.tar.gz

步驟2:將tomcat上傳到虛擬機

我這里上傳到/usr/local/demo

步驟3:將tar包解壓

tar -zxvf tar -zxvf apache-tomcat-8.0.20.tar.gz

步驟4:改文件夾名稱(chēng)

由于解壓后的文件夾不方便記憶,將解壓縮后的文件夾apache-tomcat-8.0.20改名

mv apache-tomcat-8.0.20 tomcat8

步驟5:配置環(huán)境變量

(1)編輯配置文件/etc/profile

vi /etc/profile

TOMCAT_HOME=/usr/local/demo/tomcat8

PATH=$JAVA_HOME/bin:$TOMCAT_HOME/bin:$PATH

操作截圖如下:

保存并退出:wq,然后使文件生效

source /etc/profile

步驟6:運行tomcat服務(wù)器

catalina.sh run

步驟7:查看8080端口

netstat -anp |grep 8080

(三)安裝MySQL數據庫

如果在 centOS下面可以使用yum指令安裝,這里采用的是ubuntu操作系統,安裝方法和yum類(lèi)似,操作如下:

1、安裝MySQL的服務(wù)端

安裝mysql服務(wù)端的命令: apt-get install mysql-server

2、安裝MySQL的客戶(hù)端

安裝mysql客戶(hù)端的命令: apt-get install mysql-client

3、啟動(dòng)服務(wù)

4、重置root密碼,使用mysql –uroot這種方式可以不用密碼登錄mysql

也可以輸入以下命令重置root密碼為123456

退出mysql

重啟mysql服務(wù)

進(jìn)入mysql密碼為123456 即可進(jìn)入msyql

5、測試MySQL的服務(wù)

步驟1:建立mysql數據庫

create database rg;

步驟2:通過(guò)語(yǔ)句查詢(xún)是否創(chuàng )建成功

show databases;

步驟3:使用數據庫才可以創(chuàng )建表

步驟4:創(chuàng )建表 表名為student 其中有3個(gè)字段id 以及name和age

步驟5:查詢(xún)是否創(chuàng )建成功

show tables

步驟6:下面使用3中格式插入信息 insert into

insert into student(id,Name,Age) values(1,'lily',21)

步驟7:使用select查詢(xún)student表

select * from student

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Linux 教程 - 如何將目錄添加到 PATH 環(huán)境變量
如何設置與查看Linux系統中的環(huán)境變量?
Linux里設置環(huán)境變量的方法(export PATH)
我使用過(guò)的Linux命令之dirname
管理你的 shell 環(huán)境
UC頭條:Linux運維之shell基礎
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久