./a.sh會用你腳本中第一行的那個#!XXX的shell來執(zhí)行語句
為企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)站優(yōu)化、營銷型網(wǎng)站、競價托管、品牌運營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認可!
而sh
a.sh則是用sh來執(zhí)行語句
還有一種可能就是./a.sh確定了文件路徑,而sh
a.sh一定要在a.sh所在目錄
Linux是一個命令行組成的操作系統(tǒng),精髓在命令行,無論圖形界面發(fā)展到什么水平這個原理都是無法改變的,Linux命令有許多強大功能:從簡單的磁盤操作、文件存取以及復(fù)雜的多媒體圖像和媒體文件都會使用到命令。
Linux常用的命令有哪些?老男孩教育為大家總結(jié)一下:
安裝和登錄命令:login 、shutdown 、halt 、reboot 、mount 、umount 、chsh
文件處理命令:file 、mkdir 、grep 、dd 、find 、mv 、ls 、diff 、cat 、ln
網(wǎng)絡(luò)操作命令:ifconfig 、ip 、ping 、netstat 、telnet 、ftp 、route 、rlogin rcp 、finger
、mail 、nslookup
系統(tǒng)安全相關(guān)命令:passwd 、su 、umask 、chgrp 、chmod 、chown 、chattr、sudo、pswho
系統(tǒng)管理相關(guān)命令:df 、top 、free 、quota 、at 、lp 、 adduser 、groupadd kill 、 crontab 、tar、unzip 、gunzip 、last
| 線上查詢及幫助命令 |
man:全稱為manual,用于查看系統(tǒng)中自帶的各種參考手冊;
help:用于顯示shell內(nèi)部命令的幫助信息;
| 文件和目錄操作命令 |
ls:全拼list,列出目錄的內(nèi)容及其內(nèi)容屬性信息;
cd:全拼change directory,切換當前工作目錄至dirName(目錄參數(shù));
cp:全稱copy,復(fù)制文件或目錄;
find:用于在指定目錄及目錄下查找文件;
mkdir:全拼make directories,創(chuàng)建目錄;
mv:全拼move,移動或重命名文件;
pwd:全拼print working directory,顯示當前工作目錄的絕對路徑;
rename:可用字符串替換的方式批量改變文件名;
rm:全拼remove,刪除一個或多個文件或目錄。必須格外小心地使用該命令;
rmdir:全拼remove empty directories,刪除空目錄;
touch:修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統(tǒng)會建立一個新的文件;
| 查看文件及內(nèi)容處理命令 |
cat:全拼concatenate,用于連接多個文件并且打印到屏幕輸出或重定向到指定文件中,可查看文件內(nèi)容;
tac:cat的反向拼寫,因此命令的功能為反向顯示文件內(nèi)容。文件內(nèi)容的最后一行先顯示,第一行最后顯示;
less:可以隨意瀏覽文件,而more僅能向前移動,卻不能向后移動,而且less在查看之前不會加載整個文件;
head:顯示文件的開頭的內(nèi)容。在默認情況下,head命令顯示文件的頭10行內(nèi)容;
tail:查看文件尾部內(nèi)容,有一個常用的參數(shù)-f常用于查閱正在改變的文件??梢钥吹阶钚碌奈募?nèi)容;
| 文件壓縮及解壓縮命令 |
tar:tar命令是用來建立,還原備份文件的工具程序,它可以加入,解開備份文件內(nèi)的文件;
unzip:用于解壓縮zip文件;
gzip:用于壓縮文件。gzip是個使用廣泛的壓縮程序,文件經(jīng)它壓縮過后,其名稱后面會多出".gz"的擴展名;
zip:用來將文件壓縮成為常用的zip格式。
查看CPU信息可以使用lscpu命令
從命令的輸出結(jié)果可以看得出來CPU的型號是 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz,CPU(s)是4表示同時可以執(zhí)行四個任務(wù)。
如果想要同時執(zhí)行更多的任務(wù),可以在VMware WorkStation中修改,修改完成以后會立即生效。
除了lscpu以外,還可以使用cat /proc/cpuinfo命令查看CPU信息,不過它是以每核分開顯示的。
使用free或者是cat /proc/meminfo可以查看當前系統(tǒng)的內(nèi)存信息,包括總內(nèi)存、已經(jīng)使用內(nèi)存以及可用內(nèi)存信息
Linux和Windows不同的是Linux的圖形界面只是它的一個程序,而不是必備組件。我們之前安裝CentOS8.4選擇的Server With GUI包含GNOME桌面的圖形環(huán)境,我們可以使用init 3命令關(guān)閉圖形,CentOS8會出現(xiàn)一個字符登錄界面。
然后再使用free -h觀察已經(jīng)使用的內(nèi)存只有334M,相比圖形界面的730M 減少了接近400M內(nèi)存,為了節(jié)省內(nèi)存,生產(chǎn)環(huán)境一般不會安裝和使用圖形界面。
想要再切回圖形界面使用init 5命令即可。
還可以使用runlevel命令查看當前系統(tǒng)運行的模式,其中輸出結(jié)果的3表示之前是字符界面,5表示當前系統(tǒng)運行的是圖形界面
使用lsblk命令可以查看磁盤信息,包括有幾塊磁盤以及每塊磁盤的分區(qū)、容量信息
通過命令的執(zhí)行結(jié)果可以得知目前CentOS8系統(tǒng)上有三塊磁盤,分別是sda,sdb,sdc,其中sdb和sdc沒有分區(qū),
而sda磁盤是在安裝系統(tǒng)時創(chuàng)建了四個分區(qū),具體信息如下表格所示
除此以外還可以使用 cat /proc/partitions命令查看磁盤信息,從命令的執(zhí)行結(jié)果可以看出容量還是以KB為單位。
通過arch命令可以查看當前系統(tǒng)架構(gòu)為x86_64,這也是目前主流的系統(tǒng)架構(gòu)。
不同的Linux發(fā)行版使用的Linux內(nèi)核版本不同,通過uname -r可以查看Linux系統(tǒng)的內(nèi)核版本
通過 cat /etc/os-release 命令或者是lsb_release -a命令可以查看操作系統(tǒng)的版本,后期在開發(fā)程序時不同的操作系統(tǒng)版本需要做不同的處理。
查看Ubuntu Server的版本
查看CentOS8的版本
CentOS還可以使用 cat /etc/redhat-release版本
Linux中的時間有系統(tǒng)時間和硬件時間兩種
date和clock可以使用分號隔開后同時執(zhí)行看系統(tǒng)時間和硬件時間
目前我的系統(tǒng)時間和硬件時間相差了18秒
如果硬件時間是準確的,那么就通過命令clock -s以硬件時間為準,同步校正系統(tǒng)時間。
如果系統(tǒng)時間是準確的,那么通過clock -w命令以系統(tǒng)時間為準,同步校正硬件時間
不同的國家在同一時刻所處的時間是不同的,因為時區(qū)不同。
例如中國就是東八區(qū),東八區(qū)和格林威治的時區(qū)相比相差8個小時(也就是比北京時間慢了8個小時),之前在安裝操作系統(tǒng)的時候設(shè)置的時區(qū)就是Asia/Shanghai,,通過timedatectl status查看當前時間狀態(tài),其中 Universal time就是格林威治時間,而Local Time就是系統(tǒng)設(shè)置時區(qū)(Asia/Shanghai)的時間,它們兩者剛好相差了8個小時。 Time zone: Asia/Shanghai (CST, +0800) 表示當前的時區(qū)是亞洲上海。
如果現(xiàn)在你去了法國巴黎,可以通過timectl set-timezone 設(shè)置時區(qū)為歐洲巴黎,當修改時區(qū)后使用date命令查看系統(tǒng)時間顯示的就是當前法國的巴黎時間,相比北京時間慢了6個小時。
修改時區(qū)最終影響的是 /etc/localtime文件
不過目前我在中國,因此還是改回亞洲上海
timedatectl list-timezones可以查看所有時區(qū)
cal命令可以查看當前月份的日歷,例如今天是2021年10月5號
查看指定月份的日歷
還可以查看指定年份的日歷
生產(chǎn)環(huán)境不能隨便關(guān)機和重啟!!! 因為服務(wù)器基本都是 7*24 對外提供服務(wù)
測試環(huán)境或者是本地虛擬機安裝的Linux服務(wù)器可以按需求關(guān)機或者重啟
關(guān)機可以使用halt或者poweroff命令
而shutdown可以實現(xiàn)關(guān)機或者重啟,shutdown -r表示重啟,即reboot,shutdown -h表示關(guān)機,即halt。 -c表示取消關(guān)機或重啟。
除此以外shutdown 還可以指定時間來關(guān)機或重啟,默認是1分鐘后執(zhí)行。
關(guān)機和重啟命令的常見用法
Linux下有nano和vim等文本編輯器,目前我們先使用nano來編輯文本。
如果系統(tǒng)上沒有安裝nano文本編輯器,那么在使用之前首先需要使用yum install -y nano命令來安裝nano文本編輯器
在使用nano進行文本編輯時,nano后面跟文件路徑即可打開文件,然后可以直接修改文件,類似于windows的記事本,修改完成后然后按Ctrl+x退出,接著按y保存修改,回車后退出nano。
然后使用nano /etc/motd來修改該文件,motd文件是用戶登錄之后提示的內(nèi)容
然后輸入Welcome to my class
之后按Ctrl+x退出nano編輯器,按y保存到文件匯中,然后按回車鍵確認修改。
再重新登錄CentOS8.4
登錄成功之后就會看到/etc/motd文件內(nèi)容顯示在終端上
我這里準備了一個motd文件,首先使用MobaXterm終端上傳到/etc目錄下覆蓋現(xiàn)有的motd文件,在使用MobaXterm終端登錄CentOS8.4-1后,首先將SSH Broswer的路徑切換到/etc目錄下
然后點擊上傳文件的按鈕
選擇提前準備好的motd文件上傳到/etc目錄下
然后再次重新登錄系統(tǒng)就會看到一個大佛
大家可以自行訪問 在線生成ASCII(圖)藝術(shù)字,然后將內(nèi)容復(fù)制到motd文件即可。
當我們登錄Linux打開一個終端窗口,然后輸入命令,用戶與計算機的這種臨時交互被稱為一次會話(Session)、會話的一個重要的特點就是窗口與其中啟動的進程是連接在一起的,打開窗口則會話開始,關(guān)閉窗口則會話結(jié)束,而且會話內(nèi)部的進程也會隨之而終止,不管有沒有運行完成。
這里舉一個例子,我們首先使用XShell遠程登錄CentOS8.4-1,然后使用ping 10.0.0.103命令檢測是否能夠連接10.0.0.103,也就是Ubuntu Server 20.04.3-1那臺機器
命令執(zhí)行的結(jié)果顯示能夠連接,而且只要你不關(guān)閉窗口會一直顯示收到數(shù)據(jù)以及耗時。
然后我們復(fù)制一個會話
然后使用ps aux|grep ping 查看ping的進程信息,因為沒有關(guān)閉會話窗口所以進程還在
當我們關(guān)閉之前開啟的會話窗口之后
再次使用ps aux|grep ping查看進程會發(fā)現(xiàn)ping進程不存在了
為了解決上述的問題,我們就可以將會話與窗口解綁,也就是窗口關(guān)閉時會話并不會終止,而是繼續(xù)運行,等到以后需要的時候,再讓會話綁定其他窗口。
而終端復(fù)用器程序(例如screen,tmux)就是將會話與窗口的解綁工具,將它們徹底分離。
首次運行screen時會發(fā)現(xiàn)Shell提示command not found
我們需要使用yum install -y screen 來安裝screen,但是執(zhí)行之后發(fā)現(xiàn)提示錯誤:: Unable to find a match: screen
Centos8安裝screen需要使用epel來安裝,安裝epel后,再安裝screen,解決centos8無法安裝screen的問題
然后再執(zhí)行yum install -y screen 便可安裝成功
Screen安裝成功
在安裝完screen后就可以使用了,首先在終端輸入screen,然后你就會看到屏幕好像是刷新了一下,本質(zhì)就是一個會話
然后再次運行ping 10.0.0.103
由于開啟了screen,即使關(guān)閉了所有的會話窗口,你會發(fā)現(xiàn)使用ps aux |grep ping 命令查看ping命令的進程也還在。
如果后期在做運維工作,有些命令很耗時又怕誤操作關(guān)閉會話導(dǎo)致命令的進程關(guān)閉就可以使用screen。
screen除了創(chuàng)建會話,能讓命令關(guān)閉窗口后繼續(xù)在后臺執(zhí)行的功能以外,還能夠?qū)崿F(xiàn)遠程桌面共享,從而實現(xiàn)遠程協(xié)助的功能。
實現(xiàn)該功能必須滿足兩個條件,兩個用戶必須使用同一個賬號登錄同一臺機器。
例如這里小紅和小明同時使用root賬號登錄了CentOS8.4,其中左邊的窗口是小紅,右邊的窗口是小明
然后小紅使用screen -S help開啟一個遠程會話,會話的名稱叫help
然后小明使用screen -x help加入小紅開啟的會話
此時小明可以看到小紅窗口的內(nèi)容
當小明解決小紅的問題后,可以使用ctrl a,d退出當前會話
如果小明不知道小紅的會話名稱,可以使用screen -ls獲取當前會話
echo就是用于輸出信息
echo輸出固定字符串
echo輸出變量值
echo輸出轉(zhuǎn)義字符
echo 默認可以實現(xiàn)換行
echo輸出信息還可以帶顏色
echo還可以清除屏幕,等價于clear命令或者是快捷鍵Ctrl+l
摘要:Linux系統(tǒng)的架構(gòu)基礎(chǔ)就是文件,就是系統(tǒng)中的所有都歸結(jié)為一個個文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進程等等對于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類型的一個個的文件。
1、系統(tǒng)管理
(1)、日期管理: date
顯示系統(tǒng)的當前時間和日期:timedatectl
(2)、顯示用戶: logname
(3)、切換賬戶: su
(4)、查看當前賬號的ID等詳細信息: id
(5)、查看服務(wù)器上運行的程序占用資源的情況: top
(6)、顯示當前進程的狀態(tài)信息: ps
(7)、刪除執(zhí)行中的程序或工作: kill
(8)、關(guān)機重啟指令: shutdown
關(guān)機指令:shutdown –h now
重啟指令:shutdown –r
(9)、清除屏幕信息: clear
(10)、退出終端: exit
2、目錄文件管理
(1)、列出目錄的指令: ls
(2)、切換目錄的指令: cd
(3)、顯示當前目錄的指令: pwd
(4)、創(chuàng)建目錄的指令: mkdir
(5)、刪除空目錄的指令: rmdir
(6)、復(fù)制目錄或者文件的指令: cp
(7)、移動目錄或者文件的指令: mv
(8)、移除目錄或者文件的指令: rm
(9)、變更文件或目錄的所屬群組的指令: chgrp
比如將原本屬于user組的目錄abc變更為root組:chgrp –v root abc
(10)、更改文件的屬主和屬組的指令: chown
比如將原本屬于user用戶的文件test變更為root用戶:chown root test
(11)、更文件或目錄的權(quán)限的指令: chmod
比如將文件test123.txt權(quán)限變更為讀寫和執(zhí)行的指令:chmod –R 777 test23.txt
3、磁盤CPU內(nèi)存管理
(1)、查看整體磁盤空間占用情況的指令: df –h
(2)、查看磁盤分區(qū)及文件系統(tǒng)的指令: df –T
(3)、查看cpu信息的指令: cat /proc/cpuinfo
(4)、查看內(nèi)存信息的指令: cat /proc/meminfo
(5)、查看剩余內(nèi)存的指令: free -m
sh或是執(zhí)行腳本,或是切換到sh這個bash里,默認的shell是bash,你可以試試tcsh啊,csh啊,ksh,zsh什么的,看看別的shell是什么樣子的。當然,linux中sh是鏈接到bash上的,所以sh與bash在功能上是沒有區(qū)別的。
還有就是在執(zhí)行腳本的時候是用sh
+
腳本名的方式來執(zhí)行,其實,大部分的時候,簡單腳本只要權(quán)限設(shè)置正確,可以直接執(zhí)行,不需要sh命令的